diff --git a/.gitignore b/.gitignore index 1369b61..d7f0adf 100644 --- a/.gitignore +++ b/.gitignore @@ -60,3 +60,5 @@ /petsc4py-3.17.4.tar.gz /petsc-with-docs-3.18.5.tar.gz /petsc4py-3.18.5.tar.gz +/petsc-with-docs-3.19.4.tar.gz +/petsc4py-3.19.4.tar.gz diff --git a/petsc-3.18.0-fix_metis64.patch b/petsc-3.19.4-fix_metis64.patch similarity index 96% rename from petsc-3.18.0-fix_metis64.patch rename to petsc-3.19.4-fix_metis64.patch index 91f66b3..2971fac 100644 --- a/petsc-3.18.0-fix_metis64.patch +++ b/petsc-3.19.4-fix_metis64.patch @@ -10,8 +10,8 @@ + self.liblist = [['libmetis64.a'],['libmetis64.a','libexecinfo.a']] self.hastests = 1 self.useddirectly = 0 - return -@@ -47,7 +47,7 @@ + self.downloadonWindows = 1 +@@ -50,7 +50,7 @@ config.package.Package.configureLibrary(self) oldFlags = self.compilers.CPPFLAGS self.compilers.CPPFLAGS += ' '+self.headers.toString(self.include) diff --git a/petsc-3.18.0-fix_mumps_includes.patch b/petsc-3.19.4-fix_mumps_includes.patch similarity index 83% rename from petsc-3.18.0-fix_mumps_includes.patch rename to petsc-3.19.4-fix_mumps_includes.patch index e04588c..8321d23 100644 --- a/petsc-3.18.0-fix_mumps_includes.patch +++ b/petsc-3.19.4-fix_mumps_includes.patch @@ -1,11 +1,11 @@ --- a/config/BuildSystem/config/packages/MUMPS.orig.py 2020-03-30 05:33:12.000000000 +0200 +++ b/config/BuildSystem/config/packages/MUMPS.py 2020-04-03 17:01:49.237255499 +0200 -@@ -55,7 +55,7 @@ +@@ -54,7 +54,7 @@ if self.scalartypes.scalartype == 'real': l = 'd' else: l = 'z' self.functions = [l+'mumps_c'] - self.includes = [l+'mumps_c.h'] + self.includes = ['MUMPS/dmumps_c.h'] liblist_common = [['libmumps_common.a','libpord.a','libpthread.a'], + ['libmumps_common.a','libpord.a'], ['libmumps_common.a','libpord.a','libmpiseq.a'], - ['libmumps_common.a','libpord.a','libpthread.a','libmpiseq.a']] diff --git a/petsc-PETSc_api_cython0.29.36.h b/petsc-PETSc_api_cython0.29.36.h new file mode 100644 index 0000000..80cd780 --- /dev/null +++ b/petsc-PETSc_api_cython0.29.36.h @@ -0,0 +1,448 @@ +/* Generated by Cython 0.29.36 */ + +#ifndef __PYX_HAVE_API__petsc4py__PETSc +#define __PYX_HAVE_API__petsc4py__PETSc +#ifdef __MINGW64__ +#define MS_WIN64 +#endif +#include "Python.h" +#include "PETSc.h" + +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Comm = 0; +#define PyPetscComm_Type (*__pyx_ptype_8petsc4py_5PETSc_Comm) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Object = 0; +#define PyPetscObject_Type (*__pyx_ptype_8petsc4py_5PETSc_Object) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Viewer = 0; +#define PyPetscViewer_Type (*__pyx_ptype_8petsc4py_5PETSc_Viewer) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Random = 0; +#define PyPetscRandom_Type (*__pyx_ptype_8petsc4py_5PETSc_Random) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Device = 0; +#define PyPetscDevice_Type (*__pyx_ptype_8petsc4py_5PETSc_Device) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DeviceContext = 0; +#define PyPetscDeviceContext_Type (*__pyx_ptype_8petsc4py_5PETSc_DeviceContext) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_IS = 0; +#define PyPetscIS_Type (*__pyx_ptype_8petsc4py_5PETSc_IS) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LGMap = 0; +#define PyPetscLGMap_Type (*__pyx_ptype_8petsc4py_5PETSc_LGMap) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SF = 0; +#define PyPetscSF_Type (*__pyx_ptype_8petsc4py_5PETSc_SF) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Vec = 0; +#define PyPetscVec_Type (*__pyx_ptype_8petsc4py_5PETSc_Vec) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Space = 0; +#define PyPetscSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_Space) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DualSpace = 0; +#define PyPetscDualSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_DualSpace) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_FE = 0; +#define PyPetscFE_Type (*__pyx_ptype_8petsc4py_5PETSc_FE) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Quad = 0; +#define PyPetscQuad_Type (*__pyx_ptype_8petsc4py_5PETSc_Quad) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Scatter = 0; +#define PyPetscScatter_Type (*__pyx_ptype_8petsc4py_5PETSc_Scatter) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Section = 0; +#define PyPetscSection_Type (*__pyx_ptype_8petsc4py_5PETSc_Section) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Mat = 0; +#define PyPetscMat_Type (*__pyx_ptype_8petsc4py_5PETSc_Mat) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_MatPartitioning = 0; +#define PyPetscMatPartitioning_Type (*__pyx_ptype_8petsc4py_5PETSc_MatPartitioning) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_NullSpace = 0; +#define PyPetscNullSpace_Type (*__pyx_ptype_8petsc4py_5PETSc_NullSpace) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_PC = 0; +#define PyPetscPC_Type (*__pyx_ptype_8petsc4py_5PETSc_PC) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_KSP = 0; +#define PyPetscKSP_Type (*__pyx_ptype_8petsc4py_5PETSc_KSP) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SNES = 0; +#define PyPetscSNES_Type (*__pyx_ptype_8petsc4py_5PETSc_SNES) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TS = 0; +#define PyPetscTS_Type (*__pyx_ptype_8petsc4py_5PETSc_TS) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TAO = 0; +#define PyPetscTAO_Type (*__pyx_ptype_8petsc4py_5PETSc_TAO) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_AO = 0; +#define PyPetscAO_Type (*__pyx_ptype_8petsc4py_5PETSc_AO) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DM = 0; +#define PyPetscDM_Type (*__pyx_ptype_8petsc4py_5PETSc_DM) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = 0; +#define PyPetscDMPlexTransform_Type (*__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DS = 0; +#define PyPetscDS_Type (*__pyx_ptype_8petsc4py_5PETSc_DS) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Partitioner = 0; +#define PyPetscPartitioner_Type (*__pyx_ptype_8petsc4py_5PETSc_Partitioner) +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMLabel = 0; +#define PyPetscDMLabel_Type (*__pyx_ptype_8petsc4py_5PETSc_DMLabel) + +static int (*__pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set)(PetscErrorCode) = 0; +#define PyPetscError_Set __pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New)(MPI_Comm) = 0; +#define PyPetscComm_New __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New +static MPI_Comm (*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get)(PyObject *) = 0; +#define PyPetscComm_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get +static MPI_Comm *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr)(PyObject *) = 0; +#define PyPetscComm_GetPtr __pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New)(PetscObject) = 0; +#define PyPetscObject_New __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New +static PetscObject (*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get)(PyObject *) = 0; +#define PyPetscObject_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get +static PetscObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr)(PyObject *) = 0; +#define PyPetscObject_GetPtr __pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New)(PetscViewer) = 0; +#define PyPetscViewer_New __pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New +static PetscViewer (*__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get)(PyObject *) = 0; +#define PyPetscViewer_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New)(PetscRandom) = 0; +#define PyPetscRandom_New __pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New +static PetscRandom (*__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get)(PyObject *) = 0; +#define PyPetscRandom_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get +static struct PyPetscDeviceObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New)(PetscDevice) = 0; +#define PyPetscDevice_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New +static PetscDevice (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get)(PyObject *) = 0; +#define PyPetscDevice_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get +static struct PyPetscDeviceContextObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New)(PetscDeviceContext) = 0; +#define PyPetscDeviceContext_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New +static PetscDeviceContext (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get)(PyObject *) = 0; +#define PyPetscDeviceContext_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New)(IS) = 0; +#define PyPetscIS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New +static IS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get)(PyObject *) = 0; +#define PyPetscIS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New)(ISLocalToGlobalMapping) = 0; +#define PyPetscLGMap_New __pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New +static ISLocalToGlobalMapping (*__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get)(PyObject *) = 0; +#define PyPetscLGMap_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New)(PetscSF) = 0; +#define PyPetscSF_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New +static PetscSF (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get)(PyObject *) = 0; +#define PyPetscSF_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New)(Vec) = 0; +#define PyPetscVec_New __pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New +static Vec (*__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get)(PyObject *) = 0; +#define PyPetscVec_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New)(VecScatter) = 0; +#define PyPetscScatter_New __pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New +static VecScatter (*__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get)(PyObject *) = 0; +#define PyPetscScatter_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New)(PetscSection) = 0; +#define PyPetscSection_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New +static PetscSection (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get)(PyObject *) = 0; +#define PyPetscSection_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New)(Mat) = 0; +#define PyPetscMat_New __pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New +static Mat (*__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get)(PyObject *) = 0; +#define PyPetscMat_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New)(MatPartitioning) = 0; +#define PyPetscMatPartitioning_New __pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New +static MatPartitioning (*__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get)(PyObject *) = 0; +#define PyPetscMatPartitioning_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New)(PC) = 0; +#define PyPetscPC_New __pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New +static PC (*__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get)(PyObject *) = 0; +#define PyPetscPC_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New)(KSP) = 0; +#define PyPetscKSP_New __pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New +static KSP (*__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get)(PyObject *) = 0; +#define PyPetscKSP_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New)(SNES) = 0; +#define PyPetscSNES_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New +static SNES (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get)(PyObject *) = 0; +#define PyPetscSNES_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New)(TS) = 0; +#define PyPetscTS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New +static TS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get)(PyObject *) = 0; +#define PyPetscTS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New)(Tao) = 0; +#define PyPetscTAO_New __pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New +static Tao (*__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get)(PyObject *) = 0; +#define PyPetscTAO_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New)(AO) = 0; +#define PyPetscAO_New __pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New +static AO (*__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get)(PyObject *) = 0; +#define PyPetscAO_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New)(DM) = 0; +#define PyPetscDM_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New +static DM (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get)(PyObject *) = 0; +#define PyPetscDM_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New)(PetscDS) = 0; +#define PyPetscDS_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New +static PetscDS (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get)(PyObject *) = 0; +#define PyPetscDS_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New)(PetscPartitioner) = 0; +#define PyPetscPartitioner_New __pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New +static PetscPartitioner (*__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get)(PyObject *) = 0; +#define PyPetscPartitioner_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New)(PetscFE) = 0; +#define PyPetscFE_New __pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New +static PetscFE (*__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get)(PyObject *) = 0; +#define PyPetscFE_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New)(PetscQuadrature) = 0; +#define PyPetscQuad_New __pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New +static PetscQuadrature (*__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get)(PyObject *) = 0; +#define PyPetscQuad_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New)(DMLabel) = 0; +#define PyPetscDMLabel_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New +static DMLabel (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get)(PyObject *) = 0; +#define PyPetscDMLabel_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New)(PetscSpace) = 0; +#define PyPetscSpace_New __pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New +static PetscSpace (*__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get)(PyObject *) = 0; +#define PyPetscSpace_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get +static PyObject *(*__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New)(PetscDualSpace) = 0; +#define PyPetscDualSpace_New __pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New +static PetscDualSpace (*__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_Get)(PyObject *) = 0; +#define PyPetscDualSpace_Get __pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_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_0_29_36 +#define __PYX_HAVE_RT_ImportFunction_0_29_36 +static int __Pyx_ImportFunction_0_29_36(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_0_29_36 +#define __PYX_HAVE_RT_ImportType_proto_0_29_36 +#if __STDC_VERSION__ >= 201112L +#include +#endif +#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L +#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) alignof(s) +#else +#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) sizeof(void*) +#endif +enum __Pyx_ImportType_CheckSize_0_29_36 { + __Pyx_ImportType_CheckSize_Error_0_29_36 = 0, + __Pyx_ImportType_CheckSize_Warn_0_29_36 = 1, + __Pyx_ImportType_CheckSize_Ignore_0_29_36 = 2 +}; +static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size); +#endif + +#ifndef __PYX_HAVE_RT_ImportType_0_29_36 +#define __PYX_HAVE_RT_ImportType_0_29_36 +static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject *module, const char *module_name, const char *class_name, + size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size) +{ + PyObject *result = 0; + char warning[200]; + Py_ssize_t basicsize; + Py_ssize_t itemsize; +#ifdef Py_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; + } +#ifndef Py_LIMITED_API + basicsize = ((PyTypeObject *)result)->tp_basicsize; + itemsize = ((PyTypeObject *)result)->tp_itemsize; +#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; + 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); + goto bad; + } + if (check_size == __Pyx_ImportType_CheckSize_Error_0_29_36 && (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_0_29_36 && (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_petsc4py__PETSc(void) { + PyObject *module = 0; + module = PyImport_ImportModule("petsc4py.PETSc"); + if (!module) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscError_Set", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscError_Set, "int (PetscErrorCode)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_New, "PyObject *(MPI_Comm)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_Get, "MPI_Comm (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscComm_GetPtr", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscComm_GetPtr, "MPI_Comm *(PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_New, "PyObject *(PetscObject)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_Get, "PetscObject (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscObject_GetPtr", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscObject_GetPtr, "PetscObject *(PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscViewer_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_New, "PyObject *(PetscViewer)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscViewer_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscViewer_Get, "PetscViewer (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscRandom_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_New, "PyObject *(PetscRandom)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscRandom_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscRandom_Get, "PetscRandom (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDevice_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_New, "struct PyPetscDeviceObject *(PetscDevice)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDevice_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDevice_Get, "PetscDevice (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDeviceContext_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_New, "struct PyPetscDeviceContextObject *(PetscDeviceContext)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDeviceContext_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get, "PetscDeviceContext (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscIS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_New, "PyObject *(IS)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscIS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscIS_Get, "IS (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscLGMap_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_New, "PyObject *(ISLocalToGlobalMapping)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscLGMap_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscLGMap_Get, "ISLocalToGlobalMapping (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSF_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_New, "PyObject *(PetscSF)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSF_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSF_Get, "PetscSF (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscVec_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_New, "PyObject *(Vec)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscVec_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscVec_Get, "Vec (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscScatter_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_New, "PyObject *(VecScatter)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscScatter_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscScatter_Get, "VecScatter (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSection_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_New, "PyObject *(PetscSection)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSection_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSection_Get, "PetscSection (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMat_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_New, "PyObject *(Mat)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMat_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMat_Get, "Mat (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMatPartitioning_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New, "PyObject *(MatPartitioning)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscMatPartitioning_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get, "MatPartitioning (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPC_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_New, "PyObject *(PC)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPC_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPC_Get, "PC (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscKSP_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_New, "PyObject *(KSP)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscKSP_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscKSP_Get, "KSP (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSNES_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_New, "PyObject *(SNES)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSNES_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSNES_Get, "SNES (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_New, "PyObject *(TS)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTS_Get, "TS (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTAO_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_New, "PyObject *(Tao)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscTAO_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscTAO_Get, "Tao (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscAO_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_New, "PyObject *(AO)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscAO_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscAO_Get, "AO (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDM_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_New, "PyObject *(DM)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDM_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDM_Get, "DM (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDS_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_New, "PyObject *(PetscDS)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDS_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDS_Get, "PetscDS (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPartitioner_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_New, "PyObject *(PetscPartitioner)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscPartitioner_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscPartitioner_Get, "PetscPartitioner (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscFE_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_New, "PyObject *(PetscFE)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscFE_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscFE_Get, "PetscFE (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscQuad_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_New, "PyObject *(PetscQuadrature)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscQuad_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscQuad_Get, "PetscQuadrature (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDMLabel_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_New, "PyObject *(DMLabel)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDMLabel_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDMLabel_Get, "DMLabel (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSpace_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_New, "PyObject *(PetscSpace)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscSpace_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscSpace_Get, "PetscSpace (PyObject *)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDualSpace_New", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_New, "PyObject *(PetscDualSpace)") < 0) goto bad; + if (__Pyx_ImportFunction_0_29_36(module, "PyPetscDualSpace_Get", (void (**)(void))&__pyx_api_f_8petsc4py_5PETSc_PyPetscDualSpace_Get, "PetscDualSpace (PyObject *)") < 0) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Comm = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Comm", sizeof(struct PyPetscCommObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscCommObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Comm) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Object = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Object", sizeof(struct PyPetscObjectObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscObjectObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Object) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Viewer = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Viewer", sizeof(struct PyPetscViewerObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscViewerObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Viewer) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Random = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Random", sizeof(struct PyPetscRandomObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscRandomObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Random) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Device = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Device", sizeof(struct PyPetscDeviceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDeviceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Device) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DeviceContext = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DeviceContext", sizeof(struct PyPetscDeviceContextObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDeviceContextObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DeviceContext) goto bad; + __pyx_ptype_8petsc4py_5PETSc_IS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "IS", sizeof(struct PyPetscISObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscISObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_IS) goto bad; + __pyx_ptype_8petsc4py_5PETSc_LGMap = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "LGMap", sizeof(struct PyPetscLGMapObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscLGMapObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_LGMap) goto bad; + __pyx_ptype_8petsc4py_5PETSc_SF = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "SF", sizeof(struct PyPetscSFObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSFObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_SF) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Vec = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Vec", sizeof(struct PyPetscVecObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscVecObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Vec) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Space = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Space", sizeof(struct PyPetscSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Space) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DualSpace = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DualSpace", sizeof(struct PyPetscDualSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDualSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DualSpace) goto bad; + __pyx_ptype_8petsc4py_5PETSc_FE = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "FE", sizeof(struct PyPetscFEObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscFEObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_FE) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Quad = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Quad", sizeof(struct PyPetscQuadObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscQuadObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Quad) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Scatter = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Scatter", sizeof(struct PyPetscScatterObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscScatterObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Scatter) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Section = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Section", sizeof(struct PyPetscSectionObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSectionObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Section) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Mat = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Mat", sizeof(struct PyPetscMatObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscMatObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Mat) goto bad; + __pyx_ptype_8petsc4py_5PETSc_MatPartitioning = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "MatPartitioning", sizeof(struct PyPetscMatPartitioningObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscMatPartitioningObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_MatPartitioning) goto bad; + __pyx_ptype_8petsc4py_5PETSc_NullSpace = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "NullSpace", sizeof(struct PyPetscNullSpaceObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscNullSpaceObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_NullSpace) goto bad; + __pyx_ptype_8petsc4py_5PETSc_PC = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "PC", sizeof(struct PyPetscPCObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscPCObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_PC) goto bad; + __pyx_ptype_8petsc4py_5PETSc_KSP = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "KSP", sizeof(struct PyPetscKSPObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscKSPObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_KSP) goto bad; + __pyx_ptype_8petsc4py_5PETSc_SNES = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "SNES", sizeof(struct PyPetscSNESObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscSNESObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_SNES) goto bad; + __pyx_ptype_8petsc4py_5PETSc_TS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "TS", sizeof(struct PyPetscTSObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscTSObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_TS) goto bad; + __pyx_ptype_8petsc4py_5PETSc_TAO = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "TAO", sizeof(struct PyPetscTAOObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscTAOObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_TAO) goto bad; + __pyx_ptype_8petsc4py_5PETSc_AO = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "AO", sizeof(struct PyPetscAOObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscAOObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_AO) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DM = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DM", sizeof(struct PyPetscDMObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DM) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DMPlexTransform", sizeof(struct PyPetscDMPlexTransformObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMPlexTransformObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DS = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DS", sizeof(struct PyPetscDSObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDSObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DS) goto bad; + __pyx_ptype_8petsc4py_5PETSc_Partitioner = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "Partitioner", sizeof(struct PyPetscPartitionerObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscPartitionerObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_Partitioner) goto bad; + __pyx_ptype_8petsc4py_5PETSc_DMLabel = __Pyx_ImportType_0_29_36(module, "petsc4py.PETSc", "DMLabel", sizeof(struct PyPetscDMLabelObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(struct PyPetscDMLabelObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_DMLabel) goto bad; + Py_DECREF(module); module = 0; + return 0; + bad: + Py_XDECREF(module); + return -1; +} + +#endif /* !__PYX_HAVE_API__petsc4py__PETSc */ diff --git a/petsc-PETSc_cython0.29.36.c b/petsc-PETSc_cython0.29.36.c new file mode 100644 index 0000000..483d7f4 --- /dev/null +++ b/petsc-PETSc_cython0.29.36.c @@ -0,0 +1,464763 @@ +/* Generated by Cython 0.29.36 */ + +#ifndef PY_SSIZE_T_CLEAN +#define PY_SSIZE_T_CLEAN +#endif /* PY_SSIZE_T_CLEAN */ +#include "Python.h" +#ifndef Py_PYTHON_H + #error Python headers needed to compile C extensions, please install development version of Python. +#elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) + #error Cython requires Python 2.6+ or Python 3.3+. +#else +#define CYTHON_ABI "0_29_36" +#define CYTHON_HEX_VERSION 0x001D24F0 +#define CYTHON_FUTURE_DIVISION 1 +#include +#ifndef offsetof + #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) +#endif +#if !defined(WIN32) && !defined(MS_WINDOWS) + #ifndef __stdcall + #define __stdcall + #endif + #ifndef __cdecl + #define __cdecl + #endif + #ifndef __fastcall + #define __fastcall + #endif +#endif +#ifndef DL_IMPORT + #define DL_IMPORT(t) t +#endif +#ifndef DL_EXPORT + #define DL_EXPORT(t) t +#endif +#define __PYX_COMMA , +#ifndef HAVE_LONG_LONG + #if PY_VERSION_HEX >= 0x02070000 + #define HAVE_LONG_LONG + #endif +#endif +#ifndef PY_LONG_LONG + #define PY_LONG_LONG LONG_LONG +#endif +#ifndef Py_HUGE_VAL + #define Py_HUGE_VAL HUGE_VAL +#endif +#ifdef PYPY_VERSION + #define CYTHON_COMPILING_IN_PYPY 1 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 + #undef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 0 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #if PY_VERSION_HEX < 0x03050000 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #undef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 0 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #undef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 1 + #undef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 0 + #undef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 0 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #if PY_VERSION_HEX < 0x03090000 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #elif !defined(CYTHON_PEP489_MULTI_PHASE_INIT) + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1 && PYPY_VERSION_NUM >= 0x07030C00) + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PYSTON_VERSION) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 1 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #undef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 0 + #undef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 0 + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 0 + #endif +#elif defined(PY_NOGIL) + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 0 + #define CYTHON_COMPILING_IN_NOGIL 1 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #ifndef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #undef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 0 + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #undef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL 0 + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT 1 + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE 1 + #endif + #undef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS 0 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 +#else + #define CYTHON_COMPILING_IN_PYPY 0 + #define CYTHON_COMPILING_IN_PYSTON 0 + #define CYTHON_COMPILING_IN_CPYTHON 1 + #define CYTHON_COMPILING_IN_NOGIL 0 + #ifndef CYTHON_USE_TYPE_SLOTS + #define CYTHON_USE_TYPE_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYTYPE_LOOKUP + #define CYTHON_USE_PYTYPE_LOOKUP 0 + #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) + #define CYTHON_USE_PYTYPE_LOOKUP 1 + #endif + #if PY_MAJOR_VERSION < 3 + #undef CYTHON_USE_ASYNC_SLOTS + #define CYTHON_USE_ASYNC_SLOTS 0 + #elif !defined(CYTHON_USE_ASYNC_SLOTS) + #define CYTHON_USE_ASYNC_SLOTS 1 + #endif + #if PY_VERSION_HEX < 0x02070000 + #undef CYTHON_USE_PYLONG_INTERNALS + #define CYTHON_USE_PYLONG_INTERNALS 0 + #elif !defined(CYTHON_USE_PYLONG_INTERNALS) + #define CYTHON_USE_PYLONG_INTERNALS (PY_VERSION_HEX < 0x030C00A5) + #endif + #ifndef CYTHON_USE_PYLIST_INTERNALS + #define CYTHON_USE_PYLIST_INTERNALS 1 + #endif + #ifndef CYTHON_USE_UNICODE_INTERNALS + #define CYTHON_USE_UNICODE_INTERNALS 1 + #endif + #if PY_VERSION_HEX < 0x030300F0 || PY_VERSION_HEX >= 0x030B00A2 + #undef CYTHON_USE_UNICODE_WRITER + #define CYTHON_USE_UNICODE_WRITER 0 + #elif !defined(CYTHON_USE_UNICODE_WRITER) + #define CYTHON_USE_UNICODE_WRITER 1 + #endif + #ifndef CYTHON_AVOID_BORROWED_REFS + #define CYTHON_AVOID_BORROWED_REFS 0 + #endif + #ifndef CYTHON_ASSUME_SAFE_MACROS + #define CYTHON_ASSUME_SAFE_MACROS 1 + #endif + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_FAST_THREAD_STATE + #define CYTHON_FAST_THREAD_STATE 0 + #elif !defined(CYTHON_FAST_THREAD_STATE) + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL + #define CYTHON_FAST_PYCALL (PY_VERSION_HEX < 0x030A0000) + #endif + #ifndef CYTHON_PEP489_MULTI_PHASE_INIT + #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) + #endif + #ifndef CYTHON_USE_TP_FINALIZE + #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) + #endif + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS ((PY_VERSION_HEX >= 0x030600B1) && (PY_VERSION_HEX < 0x030C00A5)) + #endif + #if PY_VERSION_HEX >= 0x030B00A4 + #undef CYTHON_USE_EXC_INFO_STACK + #define CYTHON_USE_EXC_INFO_STACK 0 + #elif !defined(CYTHON_USE_EXC_INFO_STACK) + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif + #ifndef CYTHON_UPDATE_DESCRIPTOR_DOC + #define CYTHON_UPDATE_DESCRIPTOR_DOC 1 + #endif +#endif +#if !defined(CYTHON_FAST_PYCCALL) +#define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) +#endif +#if CYTHON_USE_PYLONG_INTERNALS + #if PY_MAJOR_VERSION < 3 + #include "longintrepr.h" + #endif + #undef SHIFT + #undef BASE + #undef MASK + #ifdef SIZEOF_VOID_P + enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; + #endif +#endif +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif +#ifndef __has_cpp_attribute + #define __has_cpp_attribute(x) 0 +#endif +#ifndef CYTHON_RESTRICT + #if defined(__GNUC__) + #define CYTHON_RESTRICT __restrict__ + #elif defined(_MSC_VER) && _MSC_VER >= 1400 + #define CYTHON_RESTRICT __restrict + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_RESTRICT restrict + #else + #define CYTHON_RESTRICT + #endif +#endif +#ifndef CYTHON_UNUSED +# if defined(__GNUC__) +# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) +# define CYTHON_UNUSED __attribute__ ((__unused__)) +# else +# define CYTHON_UNUSED +# endif +#endif +#ifndef CYTHON_MAYBE_UNUSED_VAR +# if defined(__cplusplus) + template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } +# else +# define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) +# endif +#endif +#ifndef CYTHON_NCP_UNUSED +# if CYTHON_COMPILING_IN_CPYTHON +# define CYTHON_NCP_UNUSED +# else +# define CYTHON_NCP_UNUSED CYTHON_UNUSED +# endif +#endif +#define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) +#ifdef _MSC_VER + #ifndef _MSC_STDINT_H_ + #if _MSC_VER < 1300 + typedef unsigned char uint8_t; + typedef unsigned int uint32_t; + #else + typedef unsigned __int8 uint8_t; + typedef unsigned __int32 uint32_t; + #endif + #endif +#else + #include +#endif +#ifndef CYTHON_FALLTHROUGH + #if defined(__cplusplus) && __cplusplus >= 201103L + #if __has_cpp_attribute(fallthrough) + #define CYTHON_FALLTHROUGH [[fallthrough]] + #elif __has_cpp_attribute(clang::fallthrough) + #define CYTHON_FALLTHROUGH [[clang::fallthrough]] + #elif __has_cpp_attribute(gnu::fallthrough) + #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] + #endif + #endif + #ifndef CYTHON_FALLTHROUGH + #if __has_attribute(fallthrough) + #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) + #else + #define CYTHON_FALLTHROUGH + #endif + #endif + #if defined(__clang__ ) && defined(__apple_build_version__) + #if __apple_build_version__ < 7000000 + #undef CYTHON_FALLTHROUGH + #define CYTHON_FALLTHROUGH + #endif + #endif +#endif + +#ifndef CYTHON_INLINE + #if defined(__clang__) + #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) + #elif defined(__GNUC__) + #define CYTHON_INLINE __inline__ + #elif defined(_MSC_VER) + #define CYTHON_INLINE __inline + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define CYTHON_INLINE inline + #else + #define CYTHON_INLINE + #endif +#endif + +#define __PYX_BUILD_PY_SSIZE_T "n" +#define CYTHON_FORMAT_SSIZE_T "z" +#if PY_MAJOR_VERSION < 3 + #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) + #define __Pyx_DefaultClassType PyClass_Type +#else + #define __Pyx_BUILTIN_MODULE_NAME "builtins" + #define __Pyx_DefaultClassType PyType_Type +#if PY_VERSION_HEX >= 0x030B00A1 + static CYTHON_INLINE PyCodeObject* __Pyx_PyCode_New(int a, int k, int l, int s, int f, + PyObject *code, PyObject *c, PyObject* n, PyObject *v, + PyObject *fv, PyObject *cell, PyObject* fn, + PyObject *name, int fline, PyObject *lnos) { + PyObject *kwds=NULL, *argcount=NULL, *posonlyargcount=NULL, *kwonlyargcount=NULL; + PyObject *nlocals=NULL, *stacksize=NULL, *flags=NULL, *replace=NULL, *call_result=NULL, *empty=NULL; + const char *fn_cstr=NULL; + const char *name_cstr=NULL; + PyCodeObject* co=NULL; + PyObject *type, *value, *traceback; + PyErr_Fetch(&type, &value, &traceback); + if (!(kwds=PyDict_New())) goto end; + if (!(argcount=PyLong_FromLong(a))) goto end; + if (PyDict_SetItemString(kwds, "co_argcount", argcount) != 0) goto end; + if (!(posonlyargcount=PyLong_FromLong(0))) goto end; + if (PyDict_SetItemString(kwds, "co_posonlyargcount", posonlyargcount) != 0) goto end; + if (!(kwonlyargcount=PyLong_FromLong(k))) goto end; + if (PyDict_SetItemString(kwds, "co_kwonlyargcount", kwonlyargcount) != 0) goto end; + if (!(nlocals=PyLong_FromLong(l))) goto end; + if (PyDict_SetItemString(kwds, "co_nlocals", nlocals) != 0) goto end; + if (!(stacksize=PyLong_FromLong(s))) goto end; + if (PyDict_SetItemString(kwds, "co_stacksize", stacksize) != 0) goto end; + if (!(flags=PyLong_FromLong(f))) goto end; + if (PyDict_SetItemString(kwds, "co_flags", flags) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_code", code) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_consts", c) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_names", n) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_varnames", v) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_freevars", fv) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_cellvars", cell) != 0) goto end; + if (PyDict_SetItemString(kwds, "co_linetable", lnos) != 0) goto end; + if (!(fn_cstr=PyUnicode_AsUTF8AndSize(fn, NULL))) goto end; + if (!(name_cstr=PyUnicode_AsUTF8AndSize(name, NULL))) goto end; + if (!(co = PyCode_NewEmpty(fn_cstr, name_cstr, fline))) goto end; + if (!(replace = PyObject_GetAttrString((PyObject*)co, "replace"))) goto cleanup_code_too; + if (!(empty = PyTuple_New(0))) goto cleanup_code_too; // unfortunately __pyx_empty_tuple isn't available here + if (!(call_result = PyObject_Call(replace, empty, kwds))) goto cleanup_code_too; + Py_XDECREF((PyObject*)co); + co = (PyCodeObject*)call_result; + call_result = NULL; + if (0) { + cleanup_code_too: + Py_XDECREF((PyObject*)co); + co = NULL; + } + end: + Py_XDECREF(kwds); + Py_XDECREF(argcount); + Py_XDECREF(posonlyargcount); + Py_XDECREF(kwonlyargcount); + Py_XDECREF(nlocals); + Py_XDECREF(stacksize); + Py_XDECREF(replace); + Py_XDECREF(call_result); + Py_XDECREF(empty); + if (type) { + PyErr_Restore(type, value, traceback); + } + return co; + } +#else + #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ + PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) +#endif + #define __Pyx_DefaultClassType PyType_Type +#endif +#if PY_VERSION_HEX >= 0x030900F0 && !CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyObject_GC_IsFinalized(o) PyObject_GC_IsFinalized(o) +#else + #define __Pyx_PyObject_GC_IsFinalized(o) _PyGC_FINALIZED(o) +#endif +#ifndef Py_TPFLAGS_CHECKTYPES + #define Py_TPFLAGS_CHECKTYPES 0 +#endif +#ifndef Py_TPFLAGS_HAVE_INDEX + #define Py_TPFLAGS_HAVE_INDEX 0 +#endif +#ifndef Py_TPFLAGS_HAVE_NEWBUFFER + #define Py_TPFLAGS_HAVE_NEWBUFFER 0 +#endif +#ifndef Py_TPFLAGS_HAVE_FINALIZE + #define Py_TPFLAGS_HAVE_FINALIZE 0 +#endif +#ifndef METH_STACKLESS + #define METH_STACKLESS 0 +#endif +#if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) + #ifndef METH_FASTCALL + #define METH_FASTCALL 0x80 + #endif + typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); + typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, + Py_ssize_t nargs, PyObject *kwnames); +#else + #define __Pyx_PyCFunctionFast _PyCFunctionFast + #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords +#endif +#if CYTHON_FAST_PYCCALL +#define __Pyx_PyFastCFunction_Check(func)\ + ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) +#else +#define __Pyx_PyFastCFunction_Check(func) 0 +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) + #define PyObject_Malloc(s) PyMem_Malloc(s) + #define PyObject_Free(p) PyMem_Free(p) + #define PyObject_Realloc(p) PyMem_Realloc(p) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 + #define PyMem_RawMalloc(n) PyMem_Malloc(n) + #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) + #define PyMem_RawFree(p) PyMem_Free(p) +#endif +#if CYTHON_COMPILING_IN_PYSTON + #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) +#else + #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) + #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) +#endif +#if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#elif PY_VERSION_HEX >= 0x03060000 + #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() +#elif PY_VERSION_HEX >= 0x03000000 + #define __Pyx_PyThreadState_Current PyThreadState_GET() +#else + #define __Pyx_PyThreadState_Current _PyThreadState_Current +#endif +#if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) +#include "pythread.h" +#define Py_tss_NEEDS_INIT 0 +typedef int Py_tss_t; +static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { + *key = PyThread_create_key(); + return 0; +} +static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { + Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); + *key = Py_tss_NEEDS_INIT; + return key; +} +static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { + PyObject_Free(key); +} +static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { + return *key != Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { + PyThread_delete_key(*key); + *key = Py_tss_NEEDS_INIT; +} +static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { + return PyThread_set_key_value(*key, value); +} +static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { + return PyThread_get_key_value(*key); +} +#endif +#if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) +#define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) +#else +#define __Pyx_PyDict_NewPresized(n) PyDict_New() +#endif +#if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION + #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) +#else + #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) + #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS +#define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) +#else +#define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) +#endif +#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) + #define CYTHON_PEP393_ENABLED 1 + #if PY_VERSION_HEX >= 0x030C0000 + #define __Pyx_PyUnicode_READY(op) (0) + #else + #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ + 0 : _PyUnicode_Ready((PyObject *)(op))) + #endif + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) + #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) + #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) + #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) + #if PY_VERSION_HEX >= 0x030C0000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) + #else + #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x03090000 + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : ((PyCompactUnicodeObject *)(u))->wstr_length)) + #else + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) + #endif + #endif +#else + #define CYTHON_PEP393_ENABLED 0 + #define PyUnicode_1BYTE_KIND 1 + #define PyUnicode_2BYTE_KIND 2 + #define PyUnicode_4BYTE_KIND 4 + #define __Pyx_PyUnicode_READY(op) (0) + #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) + #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) + #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) + #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) + #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) + #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) + #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) + #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) +#endif +#if CYTHON_COMPILING_IN_PYPY + #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) +#else + #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) + #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ + PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) + #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) + #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) +#endif +#if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) + #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) +#endif +#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) +#define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) +#else + #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) +#endif +#if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) + #define PyObject_ASCII(o) PyObject_Repr(o) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBaseString_Type PyUnicode_Type + #define PyStringObject PyUnicodeObject + #define PyString_Type PyUnicode_Type + #define PyString_Check PyUnicode_Check + #define PyString_CheckExact PyUnicode_CheckExact +#ifndef PyObject_Unicode + #define PyObject_Unicode PyObject_Str +#endif +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) + #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) +#else + #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) + #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) +#endif +#ifndef PySet_CheckExact + #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) +#endif +#if PY_VERSION_HEX >= 0x030900A4 + #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) +#else + #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) + #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) +#endif +#if CYTHON_ASSUME_SAFE_MACROS + #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) +#else + #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyIntObject PyLongObject + #define PyInt_Type PyLong_Type + #define PyInt_Check(op) PyLong_Check(op) + #define PyInt_CheckExact(op) PyLong_CheckExact(op) + #define PyInt_FromString PyLong_FromString + #define PyInt_FromUnicode PyLong_FromUnicode + #define PyInt_FromLong PyLong_FromLong + #define PyInt_FromSize_t PyLong_FromSize_t + #define PyInt_FromSsize_t PyLong_FromSsize_t + #define PyInt_AsLong PyLong_AsLong + #define PyInt_AS_LONG PyLong_AS_LONG + #define PyInt_AsSsize_t PyLong_AsSsize_t + #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask + #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask + #define PyNumber_Int PyNumber_Long +#endif +#if PY_MAJOR_VERSION >= 3 + #define PyBoolObject PyLongObject +#endif +#if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY + #ifndef PyUnicode_InternFromString + #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) + #endif +#endif +#if PY_VERSION_HEX < 0x030200A4 + typedef long Py_hash_t; + #define __Pyx_PyInt_FromHash_t PyInt_FromLong + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsHash_t +#else + #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t + #define __Pyx_PyInt_AsHash_t __Pyx_PyIndex_AsSsize_t +#endif +#if PY_MAJOR_VERSION >= 3 + #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) +#else + #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) +#endif +#if CYTHON_USE_ASYNC_SLOTS + #if PY_VERSION_HEX >= 0x030500B1 + #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods + #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) + #else + #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) + #endif +#else + #define __Pyx_PyType_AsAsync(obj) NULL +#endif +#ifndef __Pyx_PyAsyncMethodsStruct + typedef struct { + unaryfunc am_await; + unaryfunc am_aiter; + unaryfunc am_anext; + } __Pyx_PyAsyncMethodsStruct; +#endif + +#if defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS) + #if !defined(_USE_MATH_DEFINES) + #define _USE_MATH_DEFINES + #endif +#endif +#include +#ifdef NAN +#define __PYX_NAN() ((float) NAN) +#else +static CYTHON_INLINE float __PYX_NAN() { + float value; + memset(&value, 0xFF, sizeof(value)); + return value; +} +#endif +#if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) +#define __Pyx_truncl trunc +#else +#define __Pyx_truncl truncl +#endif + +#define __PYX_MARK_ERR_POS(f_index, lineno) \ + { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } +#define __PYX_ERR(f_index, lineno, Ln_error) \ + { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#define __PYX_HAVE__petsc4py__PETSc +#define __PYX_HAVE_API__petsc4py__PETSc +/* Early includes */ +#include + + #include "lib-petsc/compat.h" + #include "lib-petsc/custom.h" + +#include +#include +#include +#include +#include "cython.h" +#include +#include +#include +#include + + #include "lib-petsc/initpkg.h" + +#include "pythread.h" +#include "pystate.h" +#ifdef _OPENMP +#include +#endif /* _OPENMP */ + +#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) +#define CYTHON_WITHOUT_ASSERTIONS +#endif + +typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; + const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; + +#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 +#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) +#define __PYX_DEFAULT_STRING_ENCODING "" +#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString +#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#define __Pyx_uchar_cast(c) ((unsigned char)c) +#define __Pyx_long_cast(x) ((long)x) +#define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ + (sizeof(type) < sizeof(Py_ssize_t)) ||\ + (sizeof(type) > sizeof(Py_ssize_t) &&\ + likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX) &&\ + (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ + v == (type)PY_SSIZE_T_MIN))) ||\ + (sizeof(type) == sizeof(Py_ssize_t) &&\ + (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ + v == (type)PY_SSIZE_T_MAX))) ) +static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { + return (size_t) i < (size_t) limit; +} +#if defined (__cplusplus) && __cplusplus >= 201103L + #include + #define __Pyx_sst_abs(value) std::abs(value) +#elif SIZEOF_INT >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) abs(value) +#elif SIZEOF_LONG >= SIZEOF_SIZE_T + #define __Pyx_sst_abs(value) labs(value) +#elif defined (_MSC_VER) + #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + #define __Pyx_sst_abs(value) llabs(value) +#elif defined (__GNUC__) + #define __Pyx_sst_abs(value) __builtin_llabs(value) +#else + #define __Pyx_sst_abs(value) ((value<0) ? -value : value) +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); +#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) +#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) +#define __Pyx_PyBytes_FromString PyBytes_FromString +#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); +#if PY_MAJOR_VERSION < 3 + #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize +#else + #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString + #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize +#endif +#define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) +#define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) +#define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) +#define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) +#define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) +#define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) +#define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) +static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { + const Py_UNICODE *u_end = u; + while (*u_end++) ; + return (size_t)(u_end - u - 1); +} +#define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) +#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode +#define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode +#define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) +#define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); +#define __Pyx_PySequence_Tuple(obj)\ + (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*); +#if CYTHON_ASSUME_SAFE_MACROS +#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) +#else +#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) +#endif +#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) +#else +#define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) +#endif +#define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII +static int __Pyx_sys_getdefaultencoding_not_ascii; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + PyObject* ascii_chars_u = NULL; + PyObject* ascii_chars_b = NULL; + const char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + if (strcmp(default_encoding_c, "ascii") == 0) { + __Pyx_sys_getdefaultencoding_not_ascii = 0; + } else { + char ascii_chars[128]; + int c; + for (c = 0; c < 128; c++) { + ascii_chars[c] = c; + } + __Pyx_sys_getdefaultencoding_not_ascii = 1; + ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); + if (!ascii_chars_u) goto bad; + ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); + if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { + PyErr_Format( + PyExc_ValueError, + "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", + default_encoding_c); + goto bad; + } + Py_DECREF(ascii_chars_u); + Py_DECREF(ascii_chars_b); + } + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + Py_XDECREF(ascii_chars_u); + Py_XDECREF(ascii_chars_b); + return -1; +} +#endif +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) +#else +#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) +#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +static char* __PYX_DEFAULT_STRING_ENCODING; +static int __Pyx_init_sys_getdefaultencoding_params(void) { + PyObject* sys; + PyObject* default_encoding = NULL; + char* default_encoding_c; + sys = PyImport_ImportModule("sys"); + if (!sys) goto bad; + default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); + Py_DECREF(sys); + if (!default_encoding) goto bad; + default_encoding_c = PyBytes_AsString(default_encoding); + if (!default_encoding_c) goto bad; + __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); + if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; + strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); + Py_DECREF(default_encoding); + return 0; +bad: + Py_XDECREF(default_encoding); + return -1; +} +#endif +#endif + + +/* Test for GCC > 2.95 */ +#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) + #define likely(x) __builtin_expect(!!(x), 1) + #define unlikely(x) __builtin_expect(!!(x), 0) +#else /* !__GNUC__ or GCC < 2.95 */ + #define likely(x) (x) + #define unlikely(x) (x) +#endif /* __GNUC__ */ +static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } + +static PyObject *__pyx_m = NULL; +static PyObject *__pyx_d; +static PyObject *__pyx_b; +static PyObject *__pyx_cython_runtime = NULL; +static PyObject *__pyx_empty_tuple; +static PyObject *__pyx_empty_bytes; +static PyObject *__pyx_empty_unicode; +static int __pyx_lineno; +static int __pyx_clineno = 0; +static const char * __pyx_cfilenm= __FILE__; +static const char *__pyx_filename; + + +static const char *__pyx_f[] = { + "petsc4py/PETSc/Const.pyx", + "petsc4py/PETSc/Error.pyx", + "petsc4py/PETSc/Device.pyx", + "petsc4py/PETSc/petscdef.pxi", + "petsc4py/PETSc/petscopt.pxi", + "petsc4py/PETSc/petscdevice.pxi", + "petsc4py/PETSc/petscis.pxi", + "petsc4py/PETSc/petscvec.pxi", + "petsc4py/PETSc/petscpc.pxi", + "petsc4py/PETSc/petscdmda.pxi", + "petsc4py/PETSc/Comm.pyx", + "petsc4py/PETSc/libpetsc4py.pyx", + "petsc4py/PETSc/PETSc.pyx", + "petsc4py/PETSc/arraynpy.pxi", + "petsc4py/PETSc/dlpack.pxi", + "petsc4py/PETSc/petscmpi.pxi", + "petsc4py/PETSc/petscsys.pxi", + "petsc4py/PETSc/petsclog.pxi", + "petsc4py/PETSc/petscobj.pxi", + "petsc4py/PETSc/petscvwr.pxi", + "petsc4py/PETSc/petscmat.pxi", + "petsc4py/PETSc.pyx", + "petsc4py/PETSc/petscksp.pxi", + "petsc4py/PETSc/petscsnes.pxi", + "petsc4py/PETSc/petscts.pxi", + "petsc4py/PETSc/petsctao.pxi", + "petsc4py/PETSc/petscdm.pxi", + "petsc4py/PETSc/petscdmstag.pxi", + "petsc4py/PETSc/petscdmcomposite.pxi", + "petsc4py/PETSc/petscdmshell.pxi", + "petsc4py/PETSc/petscpyappctx.pxi", + "petsc4py/PETSc/Options.pyx", + "petsc4py/PETSc/Sys.pyx", + "petsc4py/PETSc/Log.pyx", + "petsc4py/PETSc/Object.pyx", + "petsc4py/PETSc/cyclicgc.pxi", + "petsc4py/PETSc/Viewer.pyx", + "petsc4py/PETSc/Random.pyx", + "petsc4py/PETSc/IS.pyx", + "petsc4py/PETSc/SF.pyx", + "petsc4py/PETSc/Vec.pyx", + "petsc4py/PETSc/DT.pyx", + "petsc4py/PETSc/FE.pyx", + "petsc4py/PETSc/Scatter.pyx", + "petsc4py/PETSc/Section.pyx", + "petsc4py/PETSc/Mat.pyx", + "petsc4py/PETSc/MatPartitioning.pyx", + "petsc4py/PETSc/PC.pyx", + "petsc4py/PETSc/KSP.pyx", + "petsc4py/PETSc/SNES.pyx", + "petsc4py/PETSc/TS.pyx", + "petsc4py/PETSc/TAO.pyx", + "petsc4py/PETSc/AO.pyx", + "petsc4py/PETSc/DM.pyx", + "petsc4py/PETSc/DS.pyx", + "petsc4py/PETSc/DMDA.pyx", + "petsc4py/PETSc/DMPlex.pyx", + "petsc4py/PETSc/DMStag.pyx", + "petsc4py/PETSc/DMComposite.pyx", + "petsc4py/PETSc/DMShell.pyx", + "petsc4py/PETSc/DMLabel.pyx", + "petsc4py/PETSc/DMSwarm.pyx", + "petsc4py/PETSc/Partitioner.pyx", + "petsc4py/PETSc/Space.pyx", + "petsc4py/PETSc/DMUtils.pyx", + "petsc4py/PETSc/CAPI.pyx", + "stringsource", +}; +/* ForceInitThreads.proto */ +#ifndef __PYX_FORCE_INIT_THREADS + #define __PYX_FORCE_INIT_THREADS 0 +#endif + +/* NoFastGil.proto */ +#define __Pyx_PyGILState_Ensure PyGILState_Ensure +#define __Pyx_PyGILState_Release PyGILState_Release +#define __Pyx_FastGIL_Remember() +#define __Pyx_FastGIL_Forget() +#define __Pyx_FastGilFuncInit() + +/* MemviewSliceStruct.proto */ +struct __pyx_memoryview_obj; +typedef struct { + struct __pyx_memoryview_obj *memview; + char *data; + Py_ssize_t shape[8]; + Py_ssize_t strides[8]; + Py_ssize_t suboffsets[8]; +} __Pyx_memviewslice; +#define __Pyx_MemoryView_Len(m) (m.shape[0]) + +/* Atomics.proto */ +#include +#ifndef CYTHON_ATOMICS + #define CYTHON_ATOMICS 1 +#endif +#define __PYX_CYTHON_ATOMICS_ENABLED() CYTHON_ATOMICS +#define __pyx_atomic_int_type int +#if CYTHON_ATOMICS && (__GNUC__ >= 5 || (__GNUC__ == 4 &&\ + (__GNUC_MINOR__ > 1 ||\ + (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 2)))) + #define __pyx_atomic_incr_aligned(value) __sync_fetch_and_add(value, 1) + #define __pyx_atomic_decr_aligned(value) __sync_fetch_and_sub(value, 1) + #ifdef __PYX_DEBUG_ATOMICS + #warning "Using GNU atomics" + #endif +#elif CYTHON_ATOMICS && defined(_MSC_VER) && CYTHON_COMPILING_IN_NOGIL + #include + #undef __pyx_atomic_int_type + #define __pyx_atomic_int_type long + #pragma intrinsic (_InterlockedExchangeAdd) + #define __pyx_atomic_incr_aligned(value) _InterlockedExchangeAdd(value, 1) + #define __pyx_atomic_decr_aligned(value) _InterlockedExchangeAdd(value, -1) + #ifdef __PYX_DEBUG_ATOMICS + #pragma message ("Using MSVC atomics") + #endif +#else + #undef CYTHON_ATOMICS + #define CYTHON_ATOMICS 0 + #ifdef __PYX_DEBUG_ATOMICS + #warning "Not using atomics" + #endif +#endif +typedef volatile __pyx_atomic_int_type __pyx_atomic_int; +#if CYTHON_ATOMICS + #define __pyx_add_acquisition_count(memview)\ + __pyx_atomic_incr_aligned(__pyx_get_slice_count_pointer(memview)) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_atomic_decr_aligned(__pyx_get_slice_count_pointer(memview)) +#else + #define __pyx_add_acquisition_count(memview)\ + __pyx_add_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) + #define __pyx_sub_acquisition_count(memview)\ + __pyx_sub_acquisition_count_locked(__pyx_get_slice_count_pointer(memview), memview->lock) +#endif + +/* BufferFormatStructs.proto */ +#define IS_UNSIGNED(type) (((type) -1) > 0) +struct __Pyx_StructField_; +#define __PYX_BUF_FLAGS_PACKED_STRUCT (1 << 0) +typedef struct { + const char* name; + struct __Pyx_StructField_* fields; + size_t size; + size_t arraysize[8]; + int ndim; + char typegroup; + char is_unsigned; + int flags; +} __Pyx_TypeInfo; +typedef struct __Pyx_StructField_ { + __Pyx_TypeInfo* type; + const char* name; + size_t offset; +} __Pyx_StructField; +typedef struct { + __Pyx_StructField* field; + size_t parent_offset; +} __Pyx_BufFmt_StackElem; +typedef struct { + __Pyx_StructField root; + __Pyx_BufFmt_StackElem* head; + size_t fmt_offset; + size_t new_count, enc_count; + size_t struct_alignment; + int is_complex; + char enc_type; + char new_packmode; + char enc_packmode; + char is_valid_array; +} __Pyx_BufFmt_Context; + + +/*--- Type declarations ---*/ +struct PyPetscCommObject; +struct PyPetscObjectObject; +struct PyPetscViewerObject; +struct PyPetscRandomObject; +struct PyPetscDeviceObject; +struct PyPetscDeviceContextObject; +struct PyPetscISObject; +struct PyPetscLGMapObject; +struct PyPetscSFObject; +struct PyPetscVecObject; +struct PyPetscSpaceObject; +struct PyPetscDualSpaceObject; +struct PyPetscFEObject; +struct PyPetscQuadObject; +struct PyPetscScatterObject; +struct PyPetscSectionObject; +struct PyPetscMatObject; +struct PyPetscMatPartitioningObject; +struct PyPetscNullSpaceObject; +struct PyPetscPCObject; +struct PyPetscKSPObject; +struct PyPetscSNESObject; +struct PyPetscTSObject; +struct PyPetscTAOObject; +struct PyPetscAOObject; +struct PyPetscDMObject; +struct PyPetscDMPlexTransformObject; +struct PyPetscDSObject; +struct PyPetscPartitionerObject; +struct PyPetscDMLabelObject; +struct __pyx_obj_8petsc4py_5PETSc__IS_buffer; +struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer; +struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm; +struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil; +struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array; +struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access; +struct __pyx_obj_8petsc4py_5PETSc_Options; +struct __pyx_obj_8petsc4py_5PETSc_Sys; +struct __pyx_obj_8petsc4py_5PETSc_Log; +struct __pyx_obj_8petsc4py_5PETSc_LogStage; +struct __pyx_obj_8petsc4py_5PETSc_LogClass; +struct __pyx_obj_8petsc4py_5PETSc_LogEvent; +struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5; +struct __pyx_obj_8petsc4py_5PETSc_DMDA; +struct __pyx_obj_8petsc4py_5PETSc_DMPlex; +struct __pyx_obj_8petsc4py_5PETSc_DMStag; +struct __pyx_obj_8petsc4py_5PETSc_DMComposite; +struct __pyx_obj_8petsc4py_5PETSc_DMShell; +struct __pyx_obj_8petsc4py_5PETSc_DMSwarm; +struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation; +struct __pyx_obj_8petsc4py_5PETSc__PyObj; +struct __pyx_obj_8petsc4py_5PETSc__PyMat; +struct __pyx_obj_8petsc4py_5PETSc__PyPC; +struct __pyx_obj_8petsc4py_5PETSc__PyKSP; +struct __pyx_obj_8petsc4py_5PETSc__PySNES; +struct __pyx_obj_8petsc4py_5PETSc__PyTS; +struct __pyx_obj_8petsc4py_5PETSc__PyTao; +struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator; +struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator; +struct __pyx_array_obj; +struct __pyx_MemviewEnum_obj; +struct __pyx_memoryview_obj; +struct __pyx_memoryviewslice_obj; +struct __pyx_t_8petsc4py_5PETSc_DLDataType; +struct __pyx_t_8petsc4py_5PETSc_DLContext; +typedef struct __pyx_t_8petsc4py_5PETSc_DLContext __pyx_t_8petsc4py_5PETSc_DLContext; +struct __pyx_t_8petsc4py_5PETSc_DLTensor; +struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor; +struct __pyx_opt_args_8petsc4py_5PETSc_getprefix; + +/* "petsc4py/PETSc/dlpack.pxi":24 + * uint16_t lanes + * + * cdef enum PetscDLDeviceType: # <<<<<<<<<<<<<< + * kDLCPU = 1 + * kDLCUDA = 2 + */ +enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType { + + /* "petsc4py/PETSc/dlpack.pxi":35 + * kDLROCMHost = 11 + * #kDLExtDev = 12 + * kDLCUDAManaged = 13 # <<<<<<<<<<<<<< + * #kDLOneAPI = 14 + * + */ + __pyx_e_8petsc4py_5PETSc_kDLCPU = ((unsigned int)1), + __pyx_e_8petsc4py_5PETSc_kDLCUDA = ((unsigned int)2), + __pyx_e_8petsc4py_5PETSc_kDLCUDAHost = ((unsigned int)3), + __pyx_e_8petsc4py_5PETSc_kDLROCM = ((unsigned int)10), + __pyx_e_8petsc4py_5PETSc_kDLROCMHost = ((unsigned int)11), + __pyx_e_8petsc4py_5PETSc_kDLCUDAManaged = ((unsigned int)13) +}; + +/* "petsc4py/PETSc/dlpack.pxi":42 + * int device_id + * + * cdef enum DLDataTypeCode: # <<<<<<<<<<<<<< + * kDLInt = 0 + * kDLUInt = 1 + */ +enum __pyx_t_8petsc4py_5PETSc_DLDataTypeCode { + + /* "petsc4py/PETSc/dlpack.pxi":45 + * kDLInt = 0 + * kDLUInt = 1 + * kDLFloat = 2 # <<<<<<<<<<<<<< + * + * cdef struct DLTensor: + */ + __pyx_e_8petsc4py_5PETSc_kDLInt = ((unsigned int)0), + __pyx_e_8petsc4py_5PETSc_kDLUInt = ((unsigned int)1), + __pyx_e_8petsc4py_5PETSc_kDLFloat = ((unsigned int)2) +}; + +/* "petsc4py/PETSc/petscopt.pxi":103 + * + * + * cdef enum PetscOptType: # <<<<<<<<<<<<<< + * OPT_BOOL + * OPT_INT + */ +enum __pyx_t_8petsc4py_5PETSc_PetscOptType { + __pyx_e_8petsc4py_5PETSc_OPT_BOOL, + __pyx_e_8petsc4py_5PETSc_OPT_INT, + __pyx_e_8petsc4py_5PETSc_OPT_REAL, + __pyx_e_8petsc4py_5PETSc_OPT_SCALAR, + __pyx_e_8petsc4py_5PETSc_OPT_STRING +}; + +/* "petsc4py/PETSc/dlpack.pxi":19 + * void* malloc(size_t size) + * + * cdef struct DLDataType: # <<<<<<<<<<<<<< + * uint8_t code + * uint8_t bits + */ +struct __pyx_t_8petsc4py_5PETSc_DLDataType { + uint8_t code; + uint8_t bits; + uint16_t lanes; +}; + +/* "petsc4py/PETSc/dlpack.pxi":38 + * #kDLOneAPI = 14 + * + * ctypedef struct DLContext: # <<<<<<<<<<<<<< + * PetscDLDeviceType device_type + * int device_id + */ +struct __pyx_t_8petsc4py_5PETSc_DLContext { + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType device_type; + int device_id; +}; + +/* "petsc4py/PETSc/dlpack.pxi":47 + * kDLFloat = 2 + * + * cdef struct DLTensor: # <<<<<<<<<<<<<< + * void* data + * DLContext ctx + */ +struct __pyx_t_8petsc4py_5PETSc_DLTensor { + void *data; + __pyx_t_8petsc4py_5PETSc_DLContext ctx; + int ndim; + struct __pyx_t_8petsc4py_5PETSc_DLDataType dtype; + int64_t *shape; + int64_t *strides; + uint64_t byte_offset; +}; + +/* "petsc4py/PETSc/dlpack.pxi":56 + * uint64_t byte_offset + * + * ctypedef int (*dlpack_manager_del_obj)(void*) nogil # <<<<<<<<<<<<<< + * + * cdef struct DLManagedTensor: + */ +typedef int (*__pyx_t_8petsc4py_5PETSc_dlpack_manager_del_obj)(void *); + +/* "petsc4py/PETSc/dlpack.pxi":58 + * ctypedef int (*dlpack_manager_del_obj)(void*) nogil + * + * cdef struct DLManagedTensor: # <<<<<<<<<<<<<< + * DLTensor dl_tensor + * void* manager_ctx + */ +struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor { + struct __pyx_t_8petsc4py_5PETSc_DLTensor dl_tensor; + void *manager_ctx; + void (*manager_deleter)(struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *); + __pyx_t_8petsc4py_5PETSc_dlpack_manager_del_obj del_obj; +}; + +/* "petsc4py/PETSc/petscopt.pxi":38 + * # + * + * cdef getprefix(prefix, deft=None): # <<<<<<<<<<<<<< + * if prefix is None: + * prefix = deft + */ +struct __pyx_opt_args_8petsc4py_5PETSc_getprefix { + int __pyx_n; + PyObject *deft; +}; + +/* "petsc4py/PETSc/petscmpi.pxi":39 + * void *Cython_ImportFunction(object, char[], char[]) except? NULL + * + * ctypedef MPI_Comm* PyMPICommGet(object) except NULL # <<<<<<<<<<<<<< + * ctypedef object PyMPICommNew(MPI_Comm) + * ctypedef MPI_Datatype* PyMPIDatatypeGet(object) except NULL + */ +typedef MPI_Comm *__pyx_t_8petsc4py_5PETSc_PyMPICommGet(PyObject *); + +/* "petsc4py/PETSc/petscmpi.pxi":40 + * + * ctypedef MPI_Comm* PyMPICommGet(object) except NULL + * ctypedef object PyMPICommNew(MPI_Comm) # <<<<<<<<<<<<<< + * ctypedef MPI_Datatype* PyMPIDatatypeGet(object) except NULL + * ctypedef MPI_Op* PyMPIOpGet(object) except NULL + */ +typedef PyObject *__pyx_t_8petsc4py_5PETSc_PyMPICommNew(MPI_Comm); + +/* "petsc4py/PETSc/petscmpi.pxi":41 + * ctypedef MPI_Comm* PyMPICommGet(object) except NULL + * ctypedef object PyMPICommNew(MPI_Comm) + * ctypedef MPI_Datatype* PyMPIDatatypeGet(object) except NULL # <<<<<<<<<<<<<< + * ctypedef MPI_Op* PyMPIOpGet(object) except NULL + * + */ +typedef MPI_Datatype *__pyx_t_8petsc4py_5PETSc_PyMPIDatatypeGet(PyObject *); + +/* "petsc4py/PETSc/petscmpi.pxi":42 + * ctypedef object PyMPICommNew(MPI_Comm) + * ctypedef MPI_Datatype* PyMPIDatatypeGet(object) except NULL + * ctypedef MPI_Op* PyMPIOpGet(object) except NULL # <<<<<<<<<<<<<< + * + * cdef inline MPI_Comm mpi4py_Comm_Get(object comm) except *: + */ +typedef MPI_Op *__pyx_t_8petsc4py_5PETSc_PyMPIOpGet(PyObject *); + +/* "petsc4py/PETSc/petscvec.pxi":340 + * # -------------------------------------------------------------------- + * + * ctypedef PetscErrorCode VecSetValuesFcn(PetscVec, # <<<<<<<<<<<<<< + * PetscInt,const PetscInt*, + * const PetscScalar*,PetscInsertMode) + */ +typedef PetscErrorCode __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn(Vec, PetscInt, PetscInt const *, PetscScalar const *, InsertMode); + +/* "petsc4py/PETSc/petscmat.pxi":858 + * # ----------------------------------------------------------------------------- + * + * ctypedef PetscErrorCode MatSetValuesFcn(PetscMat, # <<<<<<<<<<<<<< + * PetscInt,const PetscInt*, + * PetscInt,const PetscInt*, + */ +typedef PetscErrorCode __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn(Mat, PetscInt, PetscInt const *, PetscInt, PetscInt const *, PetscScalar const *, InsertMode); + +/* "petsc4py/PETSc/petscdmshell.pxi":1 + * ctypedef PetscErrorCode (*PetscDMShellXToYFunction)(PetscDM, # <<<<<<<<<<<<<< + * PetscVec, + * PetscInsertMode, + */ +typedef PetscErrorCode (*__pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction)(DM, Vec, InsertMode, Vec); + +/* "petsc4py/PETSc.pxd":112 + * # -------------------------------------------------------------------- + * + * ctypedef public api class Comm [ # <<<<<<<<<<<<<< + * type PyPetscComm_Type, + * object PyPetscCommObject, + */ +struct PyPetscCommObject { + PyObject_HEAD + MPI_Comm comm; + int isdup; + PyObject *base; +}; +typedef struct PyPetscCommObject PyPetscCommObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscComm_Type; + +/* "petsc4py/PETSc.pxd":120 + * cdef object base + * + * ctypedef public api class Object [ # <<<<<<<<<<<<<< + * type PyPetscObject_Type, + * object PyPetscObjectObject, + */ +struct PyPetscObjectObject { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *__pyx_vtab; + PyObject *__weakref__; + PyObject *__pyx___dummy__; + PetscObject oval; + PetscObject *obj; +}; +typedef struct PyPetscObjectObject PyPetscObjectObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscObject_Type; + +/* "petsc4py/PETSc.pxd":132 + * cdef object get_dict(self) + * + * ctypedef public api class Viewer(Object) [ # <<<<<<<<<<<<<< + * type PyPetscViewer_Type, + * object PyPetscViewerObject, + */ +struct PyPetscViewerObject { + struct PyPetscObjectObject __pyx_base; + PetscViewer vwr; +}; +typedef struct PyPetscViewerObject PyPetscViewerObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscViewer_Type; + +/* "petsc4py/PETSc.pxd":138 + * cdef PetscViewer vwr + * + * ctypedef public api class Random(Object) [ # <<<<<<<<<<<<<< + * type PyPetscRandom_Type, + * object PyPetscRandomObject, + */ +struct PyPetscRandomObject { + struct PyPetscObjectObject __pyx_base; + PetscRandom rnd; +}; +typedef struct PyPetscRandomObject PyPetscRandomObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscRandom_Type; + +/* "petsc4py/PETSc.pxd":144 + * cdef PetscRandom rnd + * + * ctypedef public api class Device [ # <<<<<<<<<<<<<< + * type PyPetscDevice_Type, + * object PyPetscDeviceObject, + */ +struct PyPetscDeviceObject { + PyObject_HEAD + PetscDevice device; + PyObject *__weakref__; +}; +typedef struct PyPetscDeviceObject PyPetscDeviceObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDevice_Type; + +/* "petsc4py/PETSc.pxd":151 + * cdef object __weakref__ + * + * ctypedef public api class DeviceContext(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDeviceContext_Type, + * object PyPetscDeviceContextObject, + */ +struct PyPetscDeviceContextObject { + struct PyPetscObjectObject __pyx_base; + PetscDeviceContext dctx; +}; +typedef struct PyPetscDeviceContextObject PyPetscDeviceContextObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDeviceContext_Type; + +/* "petsc4py/PETSc.pxd":157 + * cdef PetscDeviceContext dctx + * + * ctypedef public api class IS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscIS_Type, + * object PyPetscISObject, + */ +struct PyPetscISObject { + struct PyPetscObjectObject __pyx_base; + IS iset; +}; +typedef struct PyPetscISObject PyPetscISObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscIS_Type; + +/* "petsc4py/PETSc.pxd":163 + * cdef PetscIS iset + * + * ctypedef public api class LGMap(Object) [ # <<<<<<<<<<<<<< + * type PyPetscLGMap_Type, + * object PyPetscLGMapObject, + */ +struct PyPetscLGMapObject { + struct PyPetscObjectObject __pyx_base; + ISLocalToGlobalMapping lgm; +}; +typedef struct PyPetscLGMapObject PyPetscLGMapObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscLGMap_Type; + +/* "petsc4py/PETSc.pxd":169 + * cdef PetscLGMap lgm + * + * ctypedef public api class SF(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSF_Type, + * object PyPetscSFObject, + */ +struct PyPetscSFObject { + struct PyPetscObjectObject __pyx_base; + PetscSF sf; +}; +typedef struct PyPetscSFObject PyPetscSFObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSF_Type; + +/* "petsc4py/PETSc.pxd":175 + * cdef PetscSF sf + * + * ctypedef public api class Vec(Object) [ # <<<<<<<<<<<<<< + * type PyPetscVec_Type, + * object PyPetscVecObject, + */ +struct PyPetscVecObject { + struct PyPetscObjectObject __pyx_base; + Vec vec; +}; +typedef struct PyPetscVecObject PyPetscVecObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscVec_Type; + +/* "petsc4py/PETSc.pxd":181 + * cdef PetscVec vec + * + * ctypedef public api class Space(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSpace_Type, + * object PyPetscSpaceObject, + */ +struct PyPetscSpaceObject { + struct PyPetscObjectObject __pyx_base; + PetscSpace space; +}; +typedef struct PyPetscSpaceObject PyPetscSpaceObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSpace_Type; + +/* "petsc4py/PETSc.pxd":187 + * cdef PetscSpace space + * + * ctypedef public api class DualSpace(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDualSpace_Type, + * object PyPetscDualSpaceObject, + */ +struct PyPetscDualSpaceObject { + struct PyPetscObjectObject __pyx_base; + PetscDualSpace dualspace; +}; +typedef struct PyPetscDualSpaceObject PyPetscDualSpaceObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDualSpace_Type; + +/* "petsc4py/PETSc.pxd":193 + * cdef PetscDualSpace dualspace + * + * ctypedef public api class FE(Object) [ # <<<<<<<<<<<<<< + * type PyPetscFE_Type, + * object PyPetscFEObject, + */ +struct PyPetscFEObject { + struct PyPetscObjectObject __pyx_base; + PetscFE fe; +}; +typedef struct PyPetscFEObject PyPetscFEObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscFE_Type; + +/* "petsc4py/PETSc.pxd":199 + * cdef PetscFE fe + * + * ctypedef public api class Quad(Object) [ # <<<<<<<<<<<<<< + * type PyPetscQuad_Type, + * object PyPetscQuadObject, + */ +struct PyPetscQuadObject { + struct PyPetscObjectObject __pyx_base; + PetscQuadrature quad; +}; +typedef struct PyPetscQuadObject PyPetscQuadObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscQuad_Type; + +/* "petsc4py/PETSc.pxd":205 + * cdef PetscQuadrature quad + * + * ctypedef public api class Scatter(Object) [ # <<<<<<<<<<<<<< + * type PyPetscScatter_Type, + * object PyPetscScatterObject, + */ +struct PyPetscScatterObject { + struct PyPetscObjectObject __pyx_base; + VecScatter sct; +}; +typedef struct PyPetscScatterObject PyPetscScatterObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscScatter_Type; + +/* "petsc4py/PETSc.pxd":211 + * cdef PetscScatter sct + * + * ctypedef public api class Section(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSection_Type, + * object PyPetscSectionObject, + */ +struct PyPetscSectionObject { + struct PyPetscObjectObject __pyx_base; + PetscSection sec; +}; +typedef struct PyPetscSectionObject PyPetscSectionObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSection_Type; + +/* "petsc4py/PETSc.pxd":217 + * cdef PetscSection sec + * + * ctypedef public api class Mat(Object) [ # <<<<<<<<<<<<<< + * type PyPetscMat_Type, + * object PyPetscMatObject, + */ +struct PyPetscMatObject { + struct PyPetscObjectObject __pyx_base; + Mat mat; +}; +typedef struct PyPetscMatObject PyPetscMatObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscMat_Type; + +/* "petsc4py/PETSc.pxd":223 + * cdef PetscMat mat + * + * ctypedef public api class MatPartitioning(Object) [ # <<<<<<<<<<<<<< + * type PyPetscMatPartitioning_Type, + * object PyPetscMatPartitioningObject, + */ +struct PyPetscMatPartitioningObject { + struct PyPetscObjectObject __pyx_base; + MatPartitioning part; +}; +typedef struct PyPetscMatPartitioningObject PyPetscMatPartitioningObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscMatPartitioning_Type; + +/* "petsc4py/PETSc.pxd":229 + * cdef PetscMatPartitioning part + * + * ctypedef public api class NullSpace(Object) [ # <<<<<<<<<<<<<< + * type PyPetscNullSpace_Type, + * object PyPetscNullSpaceObject, + */ +struct PyPetscNullSpaceObject { + struct PyPetscObjectObject __pyx_base; + MatNullSpace nsp; +}; +typedef struct PyPetscNullSpaceObject PyPetscNullSpaceObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscNullSpace_Type; + +/* "petsc4py/PETSc.pxd":235 + * cdef PetscNullSpace nsp + * + * ctypedef public api class PC(Object) [ # <<<<<<<<<<<<<< + * type PyPetscPC_Type, + * object PyPetscPCObject, + */ +struct PyPetscPCObject { + struct PyPetscObjectObject __pyx_base; + PC pc; +}; +typedef struct PyPetscPCObject PyPetscPCObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscPC_Type; + +/* "petsc4py/PETSc.pxd":241 + * cdef PetscPC pc + * + * ctypedef public api class KSP(Object) [ # <<<<<<<<<<<<<< + * type PyPetscKSP_Type, + * object PyPetscKSPObject, + */ +struct PyPetscKSPObject { + struct PyPetscObjectObject __pyx_base; + KSP ksp; +}; +typedef struct PyPetscKSPObject PyPetscKSPObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscKSP_Type; + +/* "petsc4py/PETSc.pxd":247 + * cdef PetscKSP ksp + * + * ctypedef public api class SNES(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSNES_Type, + * object PyPetscSNESObject, + */ +struct PyPetscSNESObject { + struct PyPetscObjectObject __pyx_base; + SNES snes; +}; +typedef struct PyPetscSNESObject PyPetscSNESObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSNES_Type; + +/* "petsc4py/PETSc.pxd":253 + * cdef PetscSNES snes + * + * ctypedef public api class TS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscTS_Type, + * object PyPetscTSObject, + */ +struct PyPetscTSObject { + struct PyPetscObjectObject __pyx_base; + TS ts; +}; +typedef struct PyPetscTSObject PyPetscTSObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscTS_Type; + +/* "petsc4py/PETSc.pxd":259 + * cdef PetscTS ts + * + * ctypedef public api class TAO(Object) [ # <<<<<<<<<<<<<< + * type PyPetscTAO_Type, + * object PyPetscTAOObject, + */ +struct PyPetscTAOObject { + struct PyPetscObjectObject __pyx_base; + Tao tao; +}; +typedef struct PyPetscTAOObject PyPetscTAOObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscTAO_Type; + +/* "petsc4py/PETSc.pxd":265 + * cdef PetscTAO tao + * + * ctypedef public api class AO(Object) [ # <<<<<<<<<<<<<< + * type PyPetscAO_Type, + * object PyPetscAOObject, + */ +struct PyPetscAOObject { + struct PyPetscObjectObject __pyx_base; + AO ao; +}; +typedef struct PyPetscAOObject PyPetscAOObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscAO_Type; + +/* "petsc4py/PETSc.pxd":271 + * cdef PetscAO ao + * + * ctypedef public api class DM(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDM_Type, + * object PyPetscDMObject, + */ +struct PyPetscDMObject { + struct PyPetscObjectObject __pyx_base; + DM dm; +}; +typedef struct PyPetscDMObject PyPetscDMObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDM_Type; + +/* "petsc4py/PETSc.pxd":277 + * cdef PetscDM dm + * + * ctypedef public api class DMPlexTransform(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDMPlexTransform_Type, + * object PyPetscDMPlexTransformObject, + */ +struct PyPetscDMPlexTransformObject { + struct PyPetscObjectObject __pyx_base; + DMPlexTransform tr; +}; +typedef struct PyPetscDMPlexTransformObject PyPetscDMPlexTransformObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDMPlexTransform_Type; + +/* "petsc4py/PETSc.pxd":283 + * cdef PetscDMPlexTransform tr + * + * ctypedef public api class DS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDS_Type, + * object PyPetscDSObject, + */ +struct PyPetscDSObject { + struct PyPetscObjectObject __pyx_base; + PetscDS ds; +}; +typedef struct PyPetscDSObject PyPetscDSObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDS_Type; + +/* "petsc4py/PETSc.pxd":289 + * cdef PetscDS ds + * + * ctypedef public api class Partitioner(Object) [ # <<<<<<<<<<<<<< + * type PyPetscPartitioner_Type, + * object PyPetscPartitionerObject, + */ +struct PyPetscPartitionerObject { + struct PyPetscObjectObject __pyx_base; + PetscPartitioner part; +}; +typedef struct PyPetscPartitionerObject PyPetscPartitionerObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscPartitioner_Type; + +/* "petsc4py/PETSc.pxd":295 + * cdef PetscPartitioner part + * + * ctypedef public api class DMLabel(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDMLabel_Type, + * object PyPetscDMLabelObject, + */ +struct PyPetscDMLabelObject { + struct PyPetscObjectObject __pyx_base; + DMLabel dmlabel; +}; +typedef struct PyPetscDMLabelObject PyPetscDMLabelObject; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDMLabel_Type; + +/* "petsc4py/PETSc/petscis.pxi":111 + * # -------------------------------------------------------------------- + * + * cdef class _IS_buffer: # <<<<<<<<<<<<<< + * + * cdef PetscIS iset + */ +struct __pyx_obj_8petsc4py_5PETSc__IS_buffer { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *__pyx_vtab; + IS iset; + PetscInt size; + PetscInt const *data; + int hasarray; +}; + + +/* "petsc4py/PETSc/petscvec.pxi":489 + * return 0 + * + * cdef class _Vec_buffer: # <<<<<<<<<<<<<< + * + * cdef PetscVec vec + */ +struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *__pyx_vtab; + Vec vec; + PetscInt size; + PetscScalar *data; + int readonly; + int hasarray; +}; + + +/* "petsc4py/PETSc/petscvec.pxi":609 + * # -------------------------------------------------------------------- + * + * cdef class _Vec_LocalForm: # <<<<<<<<<<<<<< + * + * "Context manager for `Vec` local form" + */ +struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm { + PyObject_HEAD + struct PyPetscVecObject *gvec; + struct PyPetscVecObject *lvec; +}; + + +/* "petsc4py/PETSc/petscmat.pxi":1138 + * + * #@cython.internal + * cdef class _Mat_Stencil: # <<<<<<<<<<<<<< + * cdef PetscMatStencil stencil + * property i: + */ +struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil { + PyObject_HEAD + MatStencil stencil; +}; + + +/* "petsc4py/PETSc/petscdmda.pxi":198 + * # -------------------------------------------------------------------- + * + * cdef class _DMDA_Vec_array(object): # <<<<<<<<<<<<<< + * + * cdef _Vec_buffer vecbuf + */ +struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_vtab; + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *vecbuf; + PyObject *starts; + PyObject *sizes; + PyObject *shape; + PyObject *strides; + PyArrayObject *array; +}; + + +/* "petsc4py/PETSc/petscdmcomposite.pxi":17 + * PetscErrorCode DMCompositeGetISLocalToGlobalMappings(PetscDM,PetscLGMap**) + * + * cdef class _DMComposite_access: # <<<<<<<<<<<<<< + * cdef PetscDM dm + * cdef PetscVec gvec + */ +struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access { + PyObject_HEAD + DM dm; + Vec gvec; + PetscInt nlocs; + PetscInt *locs; + Vec *vecs; + PyObject *locs_mem; + PyObject *vecs_mem; + PyObject *access; +}; + + +/* "petsc4py/PETSc/Options.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class Options: # <<<<<<<<<<<<<< + * + * cdef PetscOptions opt + */ +struct __pyx_obj_8petsc4py_5PETSc_Options { + PyObject_HEAD + PetscOptions opt; + PyObject *_prefix; +}; + + +/* "petsc4py/PETSc/Sys.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class Sys: # <<<<<<<<<<<<<< + * + * @classmethod + */ +struct __pyx_obj_8petsc4py_5PETSc_Sys { + PyObject_HEAD +}; + + +/* "petsc4py/PETSc/Log.pyx":5 + * + * + * cdef class Log: # <<<<<<<<<<<<<< + * + * @classmethod + */ +struct __pyx_obj_8petsc4py_5PETSc_Log { + PyObject_HEAD +}; + + +/* "petsc4py/PETSc/Log.pyx":129 + * # -------------------------------------------------------------------- + * + * cdef class LogStage: # <<<<<<<<<<<<<< + * + * cdef readonly PetscLogStage id + */ +struct __pyx_obj_8petsc4py_5PETSc_LogStage { + PyObject_HEAD + PetscLogStage id; +}; + + +/* "petsc4py/PETSc/Log.pyx":225 + * # -------------------------------------------------------------------- + * + * cdef class LogClass: # <<<<<<<<<<<<<< + * + * cdef readonly PetscLogClass id + */ +struct __pyx_obj_8petsc4py_5PETSc_LogClass { + PyObject_HEAD + PetscClassId id; +}; + + +/* "petsc4py/PETSc/Log.pyx":287 + * # -------------------------------------------------------------------- + * + * cdef class LogEvent: # <<<<<<<<<<<<<< + * + * cdef readonly PetscLogEvent id + */ +struct __pyx_obj_8petsc4py_5PETSc_LogEvent { + PyObject_HEAD + PetscLogEvent id; +}; + + +/* "petsc4py/PETSc/Viewer.pyx":374 + * # -------------------------------------------------------------------- + * + * cdef class ViewerHDF5(Viewer): # <<<<<<<<<<<<<< + * + * def create(self, name, mode=None, comm=None): + */ +struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 { + struct PyPetscViewerObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMDA.pyx":17 + * # -------------------------------------------------------------------- + * + * cdef class DMDA(DM): # <<<<<<<<<<<<<< + * + * StencilType = DMDAStencilType + */ +struct __pyx_obj_8petsc4py_5PETSc_DMDA { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMPlex.pyx":10 + * # -------------------------------------------------------------------- + * + * cdef class DMPlex(DM): # <<<<<<<<<<<<<< + * + * ReorderDefaultFlag = DMPlexReorderDefaultFlag + */ +struct __pyx_obj_8petsc4py_5PETSc_DMPlex { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMStag.pyx":40 + * # -------------------------------------------------------------------- + * + * cdef class DMStag(DM): # <<<<<<<<<<<<<< + * + * StencilType = DMStagStencilType + */ +struct __pyx_obj_8petsc4py_5PETSc_DMStag { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMComposite.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class DMComposite(DM): # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ +struct __pyx_obj_8petsc4py_5PETSc_DMComposite { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMShell.pyx":1 + * cdef class DMShell(DM): # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ +struct __pyx_obj_8petsc4py_5PETSc_DMShell { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMSwarm.pyx":25 + * + * + * cdef class DMSwarm(DM): # <<<<<<<<<<<<<< + * + * Type = DMSwarmType + */ +struct __pyx_obj_8petsc4py_5PETSc_DMSwarm { + struct PyPetscDMObject __pyx_base; +}; + + +/* "petsc4py/PETSc/DMUtils.pyx":2 + * + * cdef class DMInterpolation: # <<<<<<<<<<<<<< + * + * cdef PetscDMInterpolation dminterp + */ +struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation { + PyObject_HEAD + DMInterpolationInfo dminterp; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":172 + * + * @cython.internal + * cdef class _PyObj: # <<<<<<<<<<<<<< + * + * cdef object self + */ +struct __pyx_obj_8petsc4py_5PETSc__PyObj { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj *__pyx_vtab; + PyObject *self; + PyObject *name; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":343 + * + * @cython.internal + * cdef class _PyMat(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyMat PyMat(PetscMat mat): + * if mat != NULL and mat.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PyMat { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1251 + * + * @cython.internal + * cdef class _PyPC(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyPC PyPC(PetscPC pc): + * if pc != NULL and pc.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PyPC { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1548 + * + * @cython.internal + * cdef class _PyKSP(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyKSP PyKSP(PetscKSP ksp): + * if ksp != NULL and ksp.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PyKSP { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1910 + * + * @cython.internal + * cdef class _PySNES(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PySNES PySNES(PetscSNES snes): + * if snes != NULL and snes.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PySNES { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":2261 + * + * @cython.internal + * cdef class _PyTS(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyTS PyTS(PetscTS ts): + * if ts != NULL and ts.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PyTS { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":2682 + * + * @cython.internal + * cdef class _PyTao(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyTao PyTao(PetscTAO tao): + * if tao != NULL and tao.data != NULL: + */ +struct __pyx_obj_8petsc4py_5PETSc__PyTao { + struct __pyx_obj_8petsc4py_5PETSc__PyObj __pyx_base; +}; + + +/* "petsc4py/PETSc/Log.pyx":92 + * + * @classmethod + * def EventDecorator(cls, name=None, klass=None): # <<<<<<<<<<<<<< + * """Decorate a function with a PETSc event. + * + */ +struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator { + PyObject_HEAD + PyTypeObject *__pyx_v_cls; + PyObject *__pyx_v_klass; + PyObject *__pyx_v_name; +}; + + +/* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ +struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator { + PyObject_HEAD + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *__pyx_outer_scope; + PyObject *__pyx_v_func; +}; + + +/* "View.MemoryView":106 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ +struct __pyx_array_obj { + PyObject_HEAD + struct __pyx_vtabstruct_array *__pyx_vtab; + char *data; + Py_ssize_t len; + char *format; + int ndim; + Py_ssize_t *_shape; + Py_ssize_t *_strides; + Py_ssize_t itemsize; + PyObject *mode; + PyObject *_format; + void (*callback_free_data)(void *); + int free_data; + int dtype_is_object; +}; + + +/* "View.MemoryView":280 + * + * @cname('__pyx_MemviewEnum') + * cdef class Enum(object): # <<<<<<<<<<<<<< + * cdef object name + * def __init__(self, name): + */ +struct __pyx_MemviewEnum_obj { + PyObject_HEAD + PyObject *name; +}; + + +/* "View.MemoryView":331 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ +struct __pyx_memoryview_obj { + PyObject_HEAD + struct __pyx_vtabstruct_memoryview *__pyx_vtab; + PyObject *obj; + PyObject *_size; + PyObject *_array_interface; + PyThread_type_lock lock; + __pyx_atomic_int acquisition_count[2]; + __pyx_atomic_int *acquisition_count_aligned_p; + Py_buffer view; + int flags; + int dtype_is_object; + __Pyx_TypeInfo *typeinfo; +}; + + +/* "View.MemoryView":967 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ +struct __pyx_memoryviewslice_obj { + struct __pyx_memoryview_obj __pyx_base; + __Pyx_memviewslice from_slice; + PyObject *from_object; + PyObject *(*to_object_func)(char *); + int (*to_dtype_func)(char *, PyObject *); +}; + + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscObject_Type; + +/* "petsc4py/PETSc/Object.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class Object: # <<<<<<<<<<<<<< + * + * # --- special methods --- + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Object { + PyObject *(*get_attr)(struct PyPetscObjectObject *, char *); + PyObject *(*set_attr)(struct PyPetscObjectObject *, char *, PyObject *); + PyObject *(*get_dict)(struct PyPetscObjectObject *); +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *__pyx_vtabptr_8petsc4py_5PETSc_Object; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscViewer_Type; + +/* "petsc4py/PETSc/Viewer.pyx":84 + * # -------------------------------------------------------------------- + * + * cdef class Viewer(Object): # <<<<<<<<<<<<<< + * + * Type = ViewerType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Viewer { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Viewer *__pyx_vtabptr_8petsc4py_5PETSc_Viewer; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscRandom_Type; + +/* "petsc4py/PETSc/Random.pyx":12 + * # -------------------------------------------------------------------- + * + * cdef class Random(Object): # <<<<<<<<<<<<<< + * + * Type = RandomType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Random { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Random *__pyx_vtabptr_8petsc4py_5PETSc_Random; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDeviceContext_Type; + +/* "petsc4py/PETSc/Device.pyx":109 + * # -------------------------------------------------------------------- + * + * cdef class DeviceContext(Object): # <<<<<<<<<<<<<< + * + * JoinMode = DeviceJoinMode + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DeviceContext { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DeviceContext *__pyx_vtabptr_8petsc4py_5PETSc_DeviceContext; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscIS_Type; + +/* "petsc4py/PETSc/IS.pyx":10 + * # -------------------------------------------------------------------- + * + * cdef class IS(Object): # <<<<<<<<<<<<<< + * + * Type = ISType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_IS { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_IS *__pyx_vtabptr_8petsc4py_5PETSc_IS; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscLGMap_Type; + +/* "petsc4py/PETSc/IS.pyx":369 + * # -------------------------------------------------------------------- + * + * cdef class LGMap(Object): # <<<<<<<<<<<<<< + * + * MapMode = GLMapMode + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_LGMap { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_LGMap *__pyx_vtabptr_8petsc4py_5PETSc_LGMap; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSF_Type; + +/* "petsc4py/PETSc/SF.pyx":15 + * # -------------------------------------------------------------------- + * + * cdef class SF(Object): # <<<<<<<<<<<<<< + * + * Type = SFType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_SF { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_SF *__pyx_vtabptr_8petsc4py_5PETSc_SF; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscVec_Type; + +/* "petsc4py/PETSc/Vec.pyx":28 + * # -------------------------------------------------------------------- + * + * cdef class Vec(Object): # <<<<<<<<<<<<<< + * + * Type = VecType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *__pyx_vtabptr_8petsc4py_5PETSc_Vec; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSpace_Type; + +/* "petsc4py/PETSc/Space.pyx":14 + * # -------------------------------------------------------------------- + * + * cdef class Space(Object): # <<<<<<<<<<<<<< + * + * Type = SpaceType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Space { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Space *__pyx_vtabptr_8petsc4py_5PETSc_Space; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDualSpace_Type; + +/* "petsc4py/PETSc/Space.pyx":192 + * # -------------------------------------------------------------------- + * + * cdef class DualSpace(Object): # <<<<<<<<<<<<<< + * + * Type = DualSpaceType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DualSpace { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DualSpace *__pyx_vtabptr_8petsc4py_5PETSc_DualSpace; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscFE_Type; + +/* "petsc4py/PETSc/FE.pyx":10 + * # -------------------------------------------------------------------- + * + * cdef class FE(Object): # <<<<<<<<<<<<<< + * + * Type = FEType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_FE { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_FE *__pyx_vtabptr_8petsc4py_5PETSc_FE; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscQuad_Type; + +/* "petsc4py/PETSc/DT.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class Quad(Object): # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Quad { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Quad *__pyx_vtabptr_8petsc4py_5PETSc_Quad; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscScatter_Type; + +/* "petsc4py/PETSc/Scatter.pyx":15 + * # -------------------------------------------------------------------- + * + * cdef class Scatter(Object): # <<<<<<<<<<<<<< + * + * Type = ScatterType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Scatter { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Scatter *__pyx_vtabptr_8petsc4py_5PETSc_Scatter; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSection_Type; + +/* "petsc4py/PETSc/Section.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class Section(Object): # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Section { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Section *__pyx_vtabptr_8petsc4py_5PETSc_Section; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscMat_Type; + +/* "petsc4py/PETSc/Mat.pyx":206 + * # -------------------------------------------------------------------- + * + * cdef class Mat(Object): # <<<<<<<<<<<<<< + * + * Type = MatType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *__pyx_vtabptr_8petsc4py_5PETSc_Mat; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscMatPartitioning_Type; + +/* "petsc4py/PETSc/MatPartitioning.pyx":15 + * # -------------------------------------------------------------------- + * + * cdef class MatPartitioning(Object): # <<<<<<<<<<<<<< + * + * Type = MatPartitioningType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_MatPartitioning { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_MatPartitioning *__pyx_vtabptr_8petsc4py_5PETSc_MatPartitioning; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscNullSpace_Type; + +/* "petsc4py/PETSc/Mat.pyx":2011 + * # -------------------------------------------------------------------- + * + * cdef class NullSpace(Object): # <<<<<<<<<<<<<< + * + * # + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace *__pyx_vtabptr_8petsc4py_5PETSc_NullSpace; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscPC_Type; + +/* "petsc4py/PETSc/PC.pyx":146 + * # -------------------------------------------------------------------- + * + * cdef class PC(Object): # <<<<<<<<<<<<<< + * + * Type = PCType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_PC { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *__pyx_vtabptr_8petsc4py_5PETSc_PC; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscKSP_Type; + +/* "petsc4py/PETSc/KSP.pyx":94 + * # -------------------------------------------------------------------- + * + * cdef class KSP(Object): # <<<<<<<<<<<<<< + * + * Type = KSPType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *__pyx_vtabptr_8petsc4py_5PETSc_KSP; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscSNES_Type; + +/* "petsc4py/PETSc/SNES.pyx":65 + * # -------------------------------------------------------------------- + * + * cdef class SNES(Object): # <<<<<<<<<<<<<< + * + * Type = SNESType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *__pyx_vtabptr_8petsc4py_5PETSc_SNES; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscTS_Type; + +/* "petsc4py/PETSc/TS.pyx":103 + * # ----------------------------------------------------------------------------- + * + * cdef class TS(Object): # <<<<<<<<<<<<<< + * + * Type = TSType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_TS { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *__pyx_vtabptr_8petsc4py_5PETSc_TS; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscTAO_Type; + +/* "petsc4py/PETSc/TAO.pyx":66 + * # -------------------------------------------------------------------- + * + * cdef class TAO(Object): # <<<<<<<<<<<<<< + * + * """ + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *__pyx_vtabptr_8petsc4py_5PETSc_TAO; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscAO_Type; + +/* "petsc4py/PETSc/AO.pyx":11 + * # -------------------------------------------------------------------- + * + * cdef class AO(Object): # <<<<<<<<<<<<<< + * + * Type = AOType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_AO { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_AO *__pyx_vtabptr_8petsc4py_5PETSc_AO; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDM_Type; + +/* "petsc4py/PETSc/DM.pyx":46 + * # -------------------------------------------------------------------- + * + * cdef class DM(Object): # <<<<<<<<<<<<<< + * + * Type = DMType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DM { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *__pyx_vtabptr_8petsc4py_5PETSc_DM; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDMPlexTransform_Type; + +/* "petsc4py/PETSc/DMPlex.pyx":1007 + * TRANSFORMFILTER = S_(DMPLEXTRANSFORMFILTER) + * + * cdef class DMPlexTransform(Object): # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlexTransform { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlexTransform *__pyx_vtabptr_8petsc4py_5PETSc_DMPlexTransform; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDS_Type; + +/* "petsc4py/PETSc/DS.pyx":8 + * # -------------------------------------------------------------------- + * + * cdef class DS(Object): # <<<<<<<<<<<<<< + * + * Type = DSType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DS { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DS *__pyx_vtabptr_8petsc4py_5PETSc_DS; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscPartitioner_Type; + +/* "petsc4py/PETSc/Partitioner.pyx":14 + * # -------------------------------------------------------------------- + * + * cdef class Partitioner(Object): # <<<<<<<<<<<<<< + * + * Type = PartitionerType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_Partitioner { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Partitioner *__pyx_vtabptr_8petsc4py_5PETSc_Partitioner; + +__PYX_EXTERN_C DL_EXPORT(PyTypeObject) PyPetscDMLabel_Type; + +/* "petsc4py/PETSc/DMLabel.pyx":2 + * + * cdef class DMLabel(Object): # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMLabel { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMLabel *__pyx_vtabptr_8petsc4py_5PETSc_DMLabel; + + +/* "petsc4py/PETSc/petscis.pxi":111 + * # -------------------------------------------------------------------- + * + * cdef class _IS_buffer: # <<<<<<<<<<<<<< + * + * cdef PetscIS iset + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer { + int (*acquire)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *); + int (*release)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *); + int (*acquirebuffer)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, Py_buffer *, int); + int (*releasebuffer)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, Py_buffer *); + PyObject *(*enter)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *); + PyObject *(*exit)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *); + Py_ssize_t (*getbuffer)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, void **); +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *__pyx_vtabptr_8petsc4py_5PETSc__IS_buffer; + + +/* "petsc4py/PETSc/petscvec.pxi":489 + * return 0 + * + * cdef class _Vec_buffer: # <<<<<<<<<<<<<< + * + * cdef PetscVec vec + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer { + int (*acquire)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *); + int (*release)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *); + int (*acquirebuffer)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, Py_buffer *, int); + int (*releasebuffer)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, Py_buffer *); + PyObject *(*enter)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *); + PyObject *(*exit)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *); + Py_ssize_t (*getbuffer)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, void **); +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *__pyx_vtabptr_8petsc4py_5PETSc__Vec_buffer; + + +/* "petsc4py/PETSc/petscdmda.pxi":198 + * # -------------------------------------------------------------------- + * + * cdef class _DMDA_Vec_array(object): # <<<<<<<<<<<<<< + * + * cdef _Vec_buffer vecbuf + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array { + int (*acquire)(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *); + int (*release)(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *); +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_vtabptr_8petsc4py_5PETSc__DMDA_Vec_array; + + +/* "petsc4py/PETSc/Viewer.pyx":374 + * # -------------------------------------------------------------------- + * + * cdef class ViewerHDF5(Viewer): # <<<<<<<<<<<<<< + * + * def create(self, name, mode=None, comm=None): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_ViewerHDF5 { + struct __pyx_vtabstruct_8petsc4py_5PETSc_Viewer __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_ViewerHDF5 *__pyx_vtabptr_8petsc4py_5PETSc_ViewerHDF5; + + +/* "petsc4py/PETSc/DMDA.pyx":17 + * # -------------------------------------------------------------------- + * + * cdef class DMDA(DM): # <<<<<<<<<<<<<< + * + * StencilType = DMDAStencilType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMDA { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMDA *__pyx_vtabptr_8petsc4py_5PETSc_DMDA; + + +/* "petsc4py/PETSc/DMPlex.pyx":10 + * # -------------------------------------------------------------------- + * + * cdef class DMPlex(DM): # <<<<<<<<<<<<<< + * + * ReorderDefaultFlag = DMPlexReorderDefaultFlag + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlex { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlex *__pyx_vtabptr_8petsc4py_5PETSc_DMPlex; + + +/* "petsc4py/PETSc/DMStag.pyx":40 + * # -------------------------------------------------------------------- + * + * cdef class DMStag(DM): # <<<<<<<<<<<<<< + * + * StencilType = DMStagStencilType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMStag { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMStag *__pyx_vtabptr_8petsc4py_5PETSc_DMStag; + + +/* "petsc4py/PETSc/DMComposite.pyx":3 + * # -------------------------------------------------------------------- + * + * cdef class DMComposite(DM): # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMComposite { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMComposite *__pyx_vtabptr_8petsc4py_5PETSc_DMComposite; + + +/* "petsc4py/PETSc/DMShell.pyx":1 + * cdef class DMShell(DM): # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *__pyx_vtabptr_8petsc4py_5PETSc_DMShell; + + +/* "petsc4py/PETSc/DMSwarm.pyx":25 + * + * + * cdef class DMSwarm(DM): # <<<<<<<<<<<<<< + * + * Type = DMSwarmType + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc_DMSwarm { + struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMSwarm *__pyx_vtabptr_8petsc4py_5PETSc_DMSwarm; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":172 + * + * @cython.internal + * cdef class _PyObj: # <<<<<<<<<<<<<< + * + * cdef object self + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj { + int (*setcontext)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, void *, struct PyPetscObjectObject *); + int (*getcontext)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, void **); + int (*setname)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, char *); + char *(*getname)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *); +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":343 + * + * @cython.internal + * cdef class _PyMat(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyMat PyMat(PetscMat mat): + * if mat != NULL and mat.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *__pyx_vtabptr_8petsc4py_5PETSc__PyMat; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1251 + * + * @cython.internal + * cdef class _PyPC(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyPC PyPC(PetscPC pc): + * if pc != NULL and pc.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *__pyx_vtabptr_8petsc4py_5PETSc__PyPC; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1548 + * + * @cython.internal + * cdef class _PyKSP(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyKSP PyKSP(PetscKSP ksp): + * if ksp != NULL and ksp.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *__pyx_vtabptr_8petsc4py_5PETSc__PyKSP; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":1910 + * + * @cython.internal + * cdef class _PySNES(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PySNES PySNES(PetscSNES snes): + * if snes != NULL and snes.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *__pyx_vtabptr_8petsc4py_5PETSc__PySNES; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":2261 + * + * @cython.internal + * cdef class _PyTS(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyTS PyTS(PetscTS ts): + * if ts != NULL and ts.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *__pyx_vtabptr_8petsc4py_5PETSc__PyTS; + + +/* "petsc4py/PETSc/libpetsc4py.pyx":2682 + * + * @cython.internal + * cdef class _PyTao(_PyObj): pass # <<<<<<<<<<<<<< + * cdef inline _PyTao PyTao(PetscTAO tao): + * if tao != NULL and tao.data != NULL: + */ + +struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao { + struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_base; +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *__pyx_vtabptr_8petsc4py_5PETSc__PyTao; + + +/* "View.MemoryView":106 + * + * @cname("__pyx_array") + * cdef class array: # <<<<<<<<<<<<<< + * + * cdef: + */ + +struct __pyx_vtabstruct_array { + PyObject *(*get_memview)(struct __pyx_array_obj *); +}; +static struct __pyx_vtabstruct_array *__pyx_vtabptr_array; + + +/* "View.MemoryView":331 + * + * @cname('__pyx_memoryview') + * cdef class memoryview(object): # <<<<<<<<<<<<<< + * + * cdef object obj + */ + +struct __pyx_vtabstruct_memoryview { + char *(*get_item_pointer)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*is_slice)(struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_slice_assignment)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*setitem_slice_assign_scalar)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *); + PyObject *(*setitem_indexed)(struct __pyx_memoryview_obj *, PyObject *, PyObject *); + PyObject *(*convert_item_to_object)(struct __pyx_memoryview_obj *, char *); + PyObject *(*assign_item_from_object)(struct __pyx_memoryview_obj *, char *, PyObject *); +}; +static struct __pyx_vtabstruct_memoryview *__pyx_vtabptr_memoryview; + + +/* "View.MemoryView":967 + * + * @cname('__pyx_memoryviewslice') + * cdef class _memoryviewslice(memoryview): # <<<<<<<<<<<<<< + * "Internal class for passing memoryview slices to Python" + * + */ + +struct __pyx_vtabstruct__memoryviewslice { + struct __pyx_vtabstruct_memoryview __pyx_base; +}; +static struct __pyx_vtabstruct__memoryviewslice *__pyx_vtabptr__memoryviewslice; + +/* --- Runtime support code (head) --- */ +/* Refnanny.proto */ +#ifndef CYTHON_REFNANNY + #define CYTHON_REFNANNY 0 +#endif +#if CYTHON_REFNANNY + typedef struct { + void (*INCREF)(void*, PyObject*, int); + void (*DECREF)(void*, PyObject*, int); + void (*GOTREF)(void*, PyObject*, int); + void (*GIVEREF)(void*, PyObject*, int); + void* (*SetupContext)(const char*, int, const char*); + void (*FinishContext)(void**); + } __Pyx_RefNannyAPIStruct; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; + static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); + #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; +#ifdef WITH_THREAD + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + if (acquire_gil) {\ + PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + PyGILState_Release(__pyx_gilstate_save);\ + } else {\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ + } +#else + #define __Pyx_RefNannySetupContext(name, acquire_gil)\ + __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) +#endif + #define __Pyx_RefNannyFinishContext()\ + __Pyx_RefNanny->FinishContext(&__pyx_refnanny) + #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) + #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) + #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) + #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) + #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) +#else + #define __Pyx_RefNannyDeclarations + #define __Pyx_RefNannySetupContext(name, acquire_gil) + #define __Pyx_RefNannyFinishContext() + #define __Pyx_INCREF(r) Py_INCREF(r) + #define __Pyx_DECREF(r) Py_DECREF(r) + #define __Pyx_GOTREF(r) + #define __Pyx_GIVEREF(r) + #define __Pyx_XINCREF(r) Py_XINCREF(r) + #define __Pyx_XDECREF(r) Py_XDECREF(r) + #define __Pyx_XGOTREF(r) + #define __Pyx_XGIVEREF(r) +#endif +#define __Pyx_XDECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_XDECREF(tmp);\ + } while (0) +#define __Pyx_DECREF_SET(r, v) do {\ + PyObject *tmp = (PyObject *) r;\ + r = v; __Pyx_DECREF(tmp);\ + } while (0) +#define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) +#define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) + +/* PyObjectGetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) +#endif + +/* GetBuiltinName.proto */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name); + +/* KeywordStringCheck.proto */ +static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); + +/* decode_c_string_utf16.proto */ +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 0; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16LE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = -1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} +static CYTHON_INLINE PyObject *__Pyx_PyUnicode_DecodeUTF16BE(const char *s, Py_ssize_t size, const char *errors) { + int byteorder = 1; + return PyUnicode_DecodeUTF16(s, size, errors, &byteorder); +} + +/* decode_c_bytes.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes( + const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + +/* decode_bytes.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_bytes( + PyObject* string, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + return __Pyx_decode_c_bytes( + PyBytes_AS_STRING(string), PyBytes_GET_SIZE(string), + start, stop, encoding, errors, decode_func); +} + +/* PyFunctionFastCall.proto */ +#if CYTHON_FAST_PYCALL +#define __Pyx_PyFunction_FastCall(func, args, nargs)\ + __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); +#else +#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) +#endif +#define __Pyx_BUILD_ASSERT_EXPR(cond)\ + (sizeof(char [1 - 2*!(cond)]) - 1) +#ifndef Py_MEMBER_SIZE +#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) +#endif +#if CYTHON_FAST_PYCALL + static size_t __pyx_pyframe_localsplus_offset = 0; + #include "frameobject.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif + #define __Pxy_PyFrame_Initialize_Offsets()\ + ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ + (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) + #define __Pyx_PyFrame_GetLocalsplus(frame)\ + (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) +#endif // CYTHON_FAST_PYCALL +#endif + +/* PyObjectCall.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); +#else +#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) +#endif + +/* PyObjectCallMethO.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); +#endif + +/* PyObjectCallNoArg.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); +#else +#define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) +#endif + +/* PyCFunctionFastCall.proto */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); +#else +#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) +#endif + +/* PyObjectCallOneArg.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); + +/* PyThreadStateGet.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; +#define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; +#define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type +#else +#define __Pyx_PyThreadState_declare +#define __Pyx_PyThreadState_assign +#define __Pyx_PyErr_Occurred() PyErr_Occurred() +#endif + +/* PyErrFetchRestore.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) +#define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) +#else +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#endif +#else +#define __Pyx_PyErr_Clear() PyErr_Clear() +#define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) +#define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) +#define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) +#define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) +#endif + +/* WriteUnraisableException.proto */ +static void __Pyx_WriteUnraisable(const char *name, int clineno, + int lineno, const char *filename, + int full_traceback, int nogil); + +/* GetTopmostException.proto */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); +#endif + +/* SaveResetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); +#else +#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) +#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) +#endif + +/* PyErrExceptionMatches.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) +static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); +#else +#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) +#endif + +/* GetException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* IncludeStringH.proto */ +#include + +/* BytesEquals.proto */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); + +/* UnicodeEquals.proto */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); + +/* StrEquals.proto */ +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals +#else +#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals +#endif + +/* RaiseException.proto */ +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); + +/* PyObjectCall2Args.proto */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); + +/* ListAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + __Pyx_SET_SIZE(list, len + 1); + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_PyList_Append(L,x) PyList_Append(L,x) +#endif + +/* SwapException.proto */ +#if CYTHON_FAST_THREAD_STATE +#define __Pyx_ExceptionSwap(type, value, tb) __Pyx__ExceptionSwap(__pyx_tstate, type, value, tb) +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); +#endif + +/* PyObjectGetMethod.proto */ +static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method); + +/* PyObjectCallMethod1.proto */ +static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg); + +/* pop_index.proto */ +static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix); +static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix); +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix); +#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ + (likely(PyList_CheckExact(L) && __Pyx_fits_Py_ssize_t(ix, type, is_signed))) ?\ + __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ + (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ + __Pyx__PyObject_PopIndex(L, py_ix))) +#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ + __Pyx_fits_Py_ssize_t(ix, type, is_signed) ?\ + __Pyx__PyList_PopIndex(L, py_ix, ix) : (\ + (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ + __Pyx__PyObject_PopIndex(L, py_ix))) +#else +#define __Pyx_PyList_PopIndex(L, py_ix, ix, is_signed, type, to_py_func)\ + __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) +#define __Pyx_PyObject_PopIndex(L, py_ix, ix, is_signed, type, to_py_func) (\ + (unlikely((py_ix) == Py_None)) ? __Pyx__PyObject_PopNewIndex(L, to_py_func(ix)) :\ + __Pyx__PyObject_PopIndex(L, py_ix)) +#endif + +/* SliceObject.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice( + PyObject* obj, Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** py_start, PyObject** py_stop, PyObject** py_slice, + int has_cstart, int has_cstop, int wraparound); + +/* GetItemInt.proto */ +#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ + (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ + __Pyx_GetItemInt_Generic(o, to_py_func(i)))) +#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ + (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + int wraparound, int boundscheck); +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, + int is_list, int wraparound, int boundscheck); + +/* Import.proto */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); + +/* ImportFrom.proto */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); + +/* ExtTypeTest.proto */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); + +/* RaiseTooManyValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected); + +/* RaiseNeedMoreValuesToUnpack.proto */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index); + +/* IterFinish.proto */ +static CYTHON_INLINE int __Pyx_IterFinish(void); + +/* UnpackItemEndCheck.proto */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); + +/* GetAttr.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); + +/* ObjectGetItem.proto */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key); +#else +#define __Pyx_PyObject_GetItem(obj, key) PyObject_GetItem(obj, key) +#endif + +/* RaiseDoubleKeywords.proto */ +static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); + +/* ParseKeywords.proto */ +static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ + PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ + const char* function_name); + +/* RaiseArgTupleInvalid.proto */ +static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, + Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); + +/* ArgTypeTest.proto */ +#define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ + ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ + __Pyx__ArgTypeTest(obj, type, name, exact)) +static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); + +/* PyObjectSetAttrStr.proto */ +#if CYTHON_USE_TYPE_SLOTS +#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o, n, NULL) +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value); +#else +#define __Pyx_PyObject_DelAttrStr(o,n) PyObject_DelAttr(o,n) +#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) +#endif + +/* dict_getitem_default.proto */ +static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); + +/* UnpackUnboundCMethod.proto */ +typedef struct { + PyObject *type; + PyObject **method_name; + PyCFunction func; + PyObject *method; + int flag; +} __Pyx_CachedCFunction; + +/* CallUnboundCMethod1.proto */ +static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg); +#else +#define __Pyx_CallUnboundCMethod1(cfunc, self, arg) __Pyx__CallUnboundCMethod1(cfunc, self, arg) +#endif + +/* CallUnboundCMethod2.proto */ +static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2); +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 +static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2); +#else +#define __Pyx_CallUnboundCMethod2(cfunc, self, arg1, arg2) __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2) +#endif + +/* AssertionsEnabled.proto */ +#define __Pyx_init_assertions_enabled() +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) + #define __pyx_assertions_enabled() (1) +#elif PY_VERSION_HEX < 0x03080000 || CYTHON_COMPILING_IN_PYPY || defined(Py_LIMITED_API) + #define __pyx_assertions_enabled() (!Py_OptimizeFlag) +#elif CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030900A6 + static int __pyx_assertions_enabled_flag; + #define __pyx_assertions_enabled() (__pyx_assertions_enabled_flag) + #undef __Pyx_init_assertions_enabled + static void __Pyx_init_assertions_enabled(void) { + __pyx_assertions_enabled_flag = ! _PyInterpreterState_GetConfig(__Pyx_PyThreadState_Current->interp)->optimization_level; + } +#else + #define __pyx_assertions_enabled() (!Py_OptimizeFlag) +#endif + +/* py_dict_pop.proto */ +static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value); + +/* py_dict_keys.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d); + +/* CallUnboundCMethod0.proto */ +static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self); +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_CallUnboundCMethod0(cfunc, self)\ + (likely((cfunc)->func) ?\ + (likely((cfunc)->flag == METH_NOARGS) ? (*((cfunc)->func))(self, NULL) :\ + (PY_VERSION_HEX >= 0x030600B1 && likely((cfunc)->flag == METH_FASTCALL) ?\ + (PY_VERSION_HEX >= 0x030700A0 ?\ + (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0) :\ + (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL)) :\ + (PY_VERSION_HEX >= 0x030700A0 && (cfunc)->flag == (METH_FASTCALL | METH_KEYWORDS) ?\ + (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, &__pyx_empty_tuple, 0, NULL) :\ + (likely((cfunc)->flag == (METH_VARARGS | METH_KEYWORDS)) ? ((*(PyCFunctionWithKeywords)(void*)(PyCFunction)(cfunc)->func)(self, __pyx_empty_tuple, NULL)) :\ + ((cfunc)->flag == METH_VARARGS ? (*((cfunc)->func))(self, __pyx_empty_tuple) :\ + __Pyx__CallUnboundCMethod0(cfunc, self)))))) :\ + __Pyx__CallUnboundCMethod0(cfunc, self)) +#else +#define __Pyx_CallUnboundCMethod0(cfunc, self) __Pyx__CallUnboundCMethod0(cfunc, self) +#endif + +/* PySequenceContains.proto */ +static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { + int result = PySequence_Contains(seq, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + +/* MemviewSliceInit.proto */ +#define __Pyx_BUF_MAX_NDIMS %(BUF_MAX_NDIMS)d +#define __Pyx_MEMVIEW_DIRECT 1 +#define __Pyx_MEMVIEW_PTR 2 +#define __Pyx_MEMVIEW_FULL 4 +#define __Pyx_MEMVIEW_CONTIG 8 +#define __Pyx_MEMVIEW_STRIDED 16 +#define __Pyx_MEMVIEW_FOLLOW 32 +#define __Pyx_IS_C_CONTIG 1 +#define __Pyx_IS_F_CONTIG 2 +static int __Pyx_init_memviewslice( + struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference); +static CYTHON_INLINE int __pyx_add_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +static CYTHON_INLINE int __pyx_sub_acquisition_count_locked( + __pyx_atomic_int *acquisition_count, PyThread_type_lock lock); +#define __pyx_get_slice_count_pointer(memview) (memview->acquisition_count_aligned_p) +#define __pyx_get_slice_count(memview) (*__pyx_get_slice_count_pointer(memview)) +#define __PYX_INC_MEMVIEW(slice, have_gil) __Pyx_INC_MEMVIEW(slice, have_gil, __LINE__) +#define __PYX_XDEC_MEMVIEW(slice, have_gil) __Pyx_XDEC_MEMVIEW(slice, have_gil, __LINE__) +static CYTHON_INLINE void __Pyx_INC_MEMVIEW(__Pyx_memviewslice *, int, int); +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *, int, int); + +/* PyIntCompare.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace); + +/* PyDictVersioning.proto */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +#define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) +#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ + (version_var) = __PYX_GET_DICT_VERSION(dict);\ + (cache_var) = (value); +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ + (VAR) = __pyx_dict_cached_value;\ + } else {\ + (VAR) = __pyx_dict_cached_value = (LOOKUP);\ + __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ + }\ +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); +#else +#define __PYX_GET_DICT_VERSION(dict) (0) +#define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) +#define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); +#endif + +/* GetModuleGlobalName.proto */ +#if CYTHON_USE_DICT_VERSIONS +#define __Pyx_GetModuleGlobalName(var, name) do {\ + static PY_UINT64_T __pyx_dict_version = 0;\ + static PyObject *__pyx_dict_cached_value = NULL;\ + (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ + (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ + __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} while(0) +#define __Pyx_GetModuleGlobalNameUncached(var, name) do {\ + PY_UINT64_T __pyx_dict_version;\ + PyObject *__pyx_dict_cached_value;\ + (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ +} while(0) +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); +#else +#define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) +#define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); +#endif + +/* SetItemInt.proto */ +#define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ + (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ + __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ + (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ + __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) +static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); +static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, + int is_list, int wraparound, int boundscheck); + +/* PyIntBinop.proto */ +#if !CYTHON_COMPILING_IN_PYPY +static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, long intval, int inplace, int zerodivision_check); +#else +#define __Pyx_PyInt_AddObjC(op1, op2, intval, inplace, zerodivision_check)\ + (inplace ? PyNumber_InPlaceAdd(op1, op2) : PyNumber_Add(op1, op2)) +#endif + +/* ListCompAppend.proto */ +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE int __Pyx_ListComp_Append(PyObject* list, PyObject* x) { + PyListObject* L = (PyListObject*) list; + Py_ssize_t len = Py_SIZE(list); + if (likely(L->allocated > len)) { + Py_INCREF(x); + PyList_SET_ITEM(list, len, x); + __Pyx_SET_SIZE(list, len + 1); + return 0; + } + return PyList_Append(list, x); +} +#else +#define __Pyx_ListComp_Append(L,x) PyList_Append(L,x) +#endif + +/* pyfrozenset_new.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it); + +/* PySetContains.proto */ +static CYTHON_INLINE int __Pyx_PySet_ContainsTF(PyObject* key, PyObject* set, int eq); + +/* StringJoin.proto */ +#if PY_MAJOR_VERSION < 3 +#define __Pyx_PyString_Join __Pyx_PyBytes_Join +#define __Pyx_PyBaseString_Join(s, v) (PyUnicode_CheckExact(s) ? PyUnicode_Join(s, v) : __Pyx_PyBytes_Join(s, v)) +#else +#define __Pyx_PyString_Join PyUnicode_Join +#define __Pyx_PyBaseString_Join PyUnicode_Join +#endif +#if CYTHON_COMPILING_IN_CPYTHON + #if PY_MAJOR_VERSION < 3 + #define __Pyx_PyBytes_Join _PyString_Join + #else + #define __Pyx_PyBytes_Join _PyBytes_Join + #endif +#else +static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values); +#endif + +/* append.proto */ +static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x); + +/* None.proto */ +static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname); + +/* GetAttr3.proto */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); + +/* PyObjectLookupSpecial.proto */ +#if CYTHON_USE_PYTYPE_LOOKUP && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_LookupSpecial(PyObject* obj, PyObject* attr_name) { + PyObject *res; + PyTypeObject *tp = Py_TYPE(obj); +#if PY_MAJOR_VERSION < 3 + if (unlikely(PyInstance_Check(obj))) + return __Pyx_PyObject_GetAttrStr(obj, attr_name); +#endif + res = _PyType_Lookup(tp, attr_name); + if (likely(res)) { + descrgetfunc f = Py_TYPE(res)->tp_descr_get; + if (!f) { + Py_INCREF(res); + } else { + res = f(res, obj, (PyObject *)tp); + } + } else { + PyErr_SetObject(PyExc_AttributeError, attr_name); + } + return res; +} +#else +#define __Pyx_PyObject_LookupSpecial(o,n) __Pyx_PyObject_GetAttrStr(o,n) +#endif + +/* FetchCommonType.proto */ +static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type); + +/* CythonFunctionShared.proto */ +#define __Pyx_CyFunction_USED 1 +#define __Pyx_CYFUNCTION_STATICMETHOD 0x01 +#define __Pyx_CYFUNCTION_CLASSMETHOD 0x02 +#define __Pyx_CYFUNCTION_CCLASS 0x04 +#define __Pyx_CyFunction_GetClosure(f)\ + (((__pyx_CyFunctionObject *) (f))->func_closure) +#define __Pyx_CyFunction_GetClassObj(f)\ + (((__pyx_CyFunctionObject *) (f))->func_classobj) +#define __Pyx_CyFunction_Defaults(type, f)\ + ((type *)(((__pyx_CyFunctionObject *) (f))->defaults)) +#define __Pyx_CyFunction_SetDefaultsGetter(f, g)\ + ((__pyx_CyFunctionObject *) (f))->defaults_getter = (g) +typedef struct { + PyCFunctionObject func; +#if PY_VERSION_HEX < 0x030500A0 + PyObject *func_weakreflist; +#endif + PyObject *func_dict; + PyObject *func_name; + PyObject *func_qualname; + PyObject *func_doc; + PyObject *func_globals; + PyObject *func_code; + PyObject *func_closure; + PyObject *func_classobj; + void *defaults; + int defaults_pyobjects; + size_t defaults_size; // used by FusedFunction for copying defaults + int flags; + PyObject *defaults_tuple; + PyObject *defaults_kwdict; + PyObject *(*defaults_getter)(PyObject *); + PyObject *func_annotations; +} __pyx_CyFunctionObject; +static PyTypeObject *__pyx_CyFunctionType = 0; +#define __Pyx_CyFunction_Check(obj) (__Pyx_TypeCheck(obj, __pyx_CyFunctionType)) +static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject* op, PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *self, + PyObject *module, PyObject *globals, + PyObject* code); +static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *m, + size_t size, + int pyobjects); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *m, + PyObject *tuple); +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *m, + PyObject *dict); +static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *m, + PyObject *dict); +static int __pyx_CyFunction_init(void); + +/* CythonFunction.proto */ +static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, + int flags, PyObject* qualname, + PyObject *closure, + PyObject *module, PyObject *globals, + PyObject* code); + +/* PyObjectCallMethod0.proto */ +static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name); + +/* pop.proto */ +static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L); +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L); +#define __Pyx_PyObject_Pop(L) (likely(PyList_CheckExact(L)) ?\ + __Pyx_PyList_Pop(L) : __Pyx__PyObject_Pop(L)) +#else +#define __Pyx_PyList_Pop(L) __Pyx__PyObject_Pop(L) +#define __Pyx_PyObject_Pop(L) __Pyx__PyObject_Pop(L) +#endif + +/* PyDictContains.proto */ +static CYTHON_INLINE int __Pyx_PyDict_ContainsTF(PyObject* item, PyObject* dict, int eq) { + int result = PyDict_Contains(dict, item); + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + +/* DictGetItem.proto */ +#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY +static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key); +#define __Pyx_PyObject_Dict_GetItem(obj, name)\ + (likely(PyDict_CheckExact(obj)) ?\ + __Pyx_PyDict_GetItem(obj, name) : PyObject_GetItem(obj, name)) +#else +#define __Pyx_PyDict_GetItem(d, key) PyObject_GetItem(d, key) +#define __Pyx_PyObject_Dict_GetItem(obj, name) PyObject_GetItem(obj, name) +#endif + +/* SliceObject.proto */ +#define __Pyx_PyObject_DelSlice(obj, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound)\ + __Pyx_PyObject_SetSlice(obj, (PyObject*)NULL, cstart, cstop, py_start, py_stop, py_slice, has_cstart, has_cstop, wraparound) +static CYTHON_INLINE int __Pyx_PyObject_SetSlice( + PyObject* obj, PyObject* value, Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** py_start, PyObject** py_stop, PyObject** py_slice, + int has_cstart, int has_cstop, int wraparound); + +/* CallableCheck.proto */ +#if CYTHON_USE_TYPE_SLOTS && PY_MAJOR_VERSION >= 3 +#define __Pyx_PyCallable_Check(obj) (Py_TYPE(obj)->tp_call != NULL) +#else +#define __Pyx_PyCallable_Check(obj) PyCallable_Check(obj) +#endif + +/* SliceTupleAndList.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); +static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice(PyObject* src, Py_ssize_t start, Py_ssize_t stop); +#else +#define __Pyx_PyList_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) +#define __Pyx_PyTuple_GetSlice(seq, start, stop) PySequence_GetSlice(seq, start, stop) +#endif + +/* PyExec.proto */ +static PyObject* __Pyx_PyExec3(PyObject*, PyObject*, PyObject*); +static CYTHON_INLINE PyObject* __Pyx_PyExec2(PyObject*, PyObject*); + +/* None.proto */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname); + +/* HasAttr.proto */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); + +/* decode_c_string.proto */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)); + +/* py_dict_clear.proto */ +#define __Pyx_PyDict_Clear(d) (PyDict_Clear(d), 0) + +/* UnaryNegOverflows.proto */ +#define UNARY_NEG_WOULD_OVERFLOW(x)\ + (((x) < 0) & ((unsigned long)(x) == 0-(unsigned long)(x))) + +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *); /*proto*/ +/* RaiseNoneIterError.proto */ +static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); + +/* FastTypeChecks.proto */ +#if CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); +static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); +#else +#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) +#define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) +#define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) +#endif +#define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) + +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +/* ListExtend.proto */ +static CYTHON_INLINE int __Pyx_PyList_Extend(PyObject* L, PyObject* v) { +#if CYTHON_COMPILING_IN_CPYTHON + PyObject* none = _PyList_Extend((PyListObject*)L, v); + if (unlikely(!none)) + return -1; + Py_DECREF(none); + return 0; +#else + return PyList_SetSlice(L, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, v); +#endif +} + +/* PyObject_Unicode.proto */ +#if PY_MAJOR_VERSION >= 3 +#define __Pyx_PyObject_Unicode(obj)\ + (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Str(obj)) +#else +#define __Pyx_PyObject_Unicode(obj)\ + (likely(PyUnicode_CheckExact(obj)) ? __Pyx_NewRef(obj) : PyObject_Unicode(obj)) +#endif + +/* PyObject_GenericGetAttrNoDict.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr +#endif + +/* PyObject_GenericGetAttr.proto */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); +#else +#define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr +#endif + +/* SetVTable.proto */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable); + +/* TypeImport.proto */ +#ifndef __PYX_HAVE_RT_ImportType_proto_0_29_36 +#define __PYX_HAVE_RT_ImportType_proto_0_29_36 +#if __STDC_VERSION__ >= 201112L +#include +#endif +#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L +#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) alignof(s) +#else +#define __PYX_GET_STRUCT_ALIGNMENT_0_29_36(s) sizeof(void*) +#endif +enum __Pyx_ImportType_CheckSize_0_29_36 { + __Pyx_ImportType_CheckSize_Error_0_29_36 = 0, + __Pyx_ImportType_CheckSize_Warn_0_29_36 = 1, + __Pyx_ImportType_CheckSize_Ignore_0_29_36 = 2 +}; +static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject* module, const char *module_name, const char *class_name, size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size); +#endif + +/* PyObjectGetAttrStrNoError.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); + +/* SetupReduce.proto */ +static int __Pyx_setup_reduce(PyObject* type_obj); + +/* CalculateMetaclass.proto */ +static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); + +/* SetNameInClass.proto */ +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? _PyDict_SetItem_KnownHash(ns, name, value, ((PyASCIIObject *) name)->hash) : PyObject_SetItem(ns, name, value)) +#elif CYTHON_COMPILING_IN_CPYTHON +#define __Pyx_SetNameInClass(ns, name, value)\ + (likely(PyDict_CheckExact(ns)) ? PyDict_SetItem(ns, name, value) : PyObject_SetItem(ns, name, value)) +#else +#define __Pyx_SetNameInClass(ns, name, value) PyObject_SetItem(ns, name, value) +#endif + +/* Py3ClassCreate.proto */ +static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, + PyObject *mkw, PyObject *modname, PyObject *doc); +static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, + PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); + +/* ClassMethod.proto */ +#include "descrobject.h" +static CYTHON_UNUSED PyObject* __Pyx_Method_ClassMethod(PyObject *method); + +/* GetNameInClass.proto */ +#define __Pyx_GetNameInClass(var, nmspace, name) (var) = __Pyx__GetNameInClass(nmspace, name) +static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name); + +/* RegisterModuleCleanup.proto */ +static void __pyx_module_cleanup(PyObject *self); +#if PY_MAJOR_VERSION < 3 || CYTHON_COMPILING_IN_PYPY +static int __Pyx_RegisterCleanup(void); +#else +#define __Pyx_RegisterCleanup() (0) +#endif + +/* CLineInTraceback.proto */ +#ifdef CYTHON_CLINE_IN_TRACEBACK +#define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) +#else +static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); +#endif + +/* CodeObjectCache.proto */ +typedef struct { + PyCodeObject* code_object; + int code_line; +} __Pyx_CodeObjectCacheEntry; +struct __Pyx_CodeObjectCache { + int count; + int max_count; + __Pyx_CodeObjectCacheEntry* entries; +}; +static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); +static PyCodeObject *__pyx_find_code_object(int code_line); +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); + +/* AddTraceback.proto */ +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename); + +#if PY_MAJOR_VERSION < 3 + static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags); + static void __Pyx_ReleaseBuffer(Py_buffer *view); +#else + #define __Pyx_GetBuffer PyObject_GetBuffer + #define __Pyx_ReleaseBuffer PyBuffer_Release +#endif + + +/* BufferStructDeclare.proto */ +typedef struct { + Py_ssize_t shape, strides, suboffsets; +} __Pyx_Buf_DimInfo; +typedef struct { + size_t refcount; + Py_buffer pybuffer; +} __Pyx_Buffer; +typedef struct { + __Pyx_Buffer *rcbuffer; + char *data; + __Pyx_Buf_DimInfo diminfo[8]; +} __Pyx_LocalBuf_ND; + +/* MemviewSliceIsContig.proto */ +static int __pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim); + +/* OverlappingSlices.proto */ +static int __pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize); + +/* Capsule.proto */ +static CYTHON_INLINE PyObject *__pyx_capsule_create(void *p, const char *sig); + +/* GCCDiagnostics.proto */ +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) +#define __Pyx_HAS_GCC_DIAGNOSTIC +#endif + +/* IsLittleEndian.proto */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); + +/* BufferFormatCheck.proto */ +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts); +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type); + +/* TypeInfoCompare.proto */ +static int __pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b); + +/* MemviewSliceValidateAndInit.proto */ +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj); + +/* ObjectToMemviewSlice.proto */ +static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(PyObject *, int writable_flag); + +/* MemviewDtypeToObject.proto */ +static CYTHON_INLINE PyObject *__pyx_memview_get_nn_PetscInt(const char *itemp); +static CYTHON_INLINE int __pyx_memview_set_nn_PetscInt(const char *itemp, PyObject *obj); + +static PyObject* __pyx_convert__to_py_PetscEventPerfInfo(PetscEventPerfInfo s); +struct __pyx_t_8petsc4py_5PETSc_DLDataType; +static PyObject* __pyx_convert__to_py_struct____pyx_t_8petsc4py_5PETSc_DLDataType(struct __pyx_t_8petsc4py_5PETSc_DLDataType s); +static PyObject* __pyx_convert__to_py_MatInfo(MatInfo s); +/* MemviewSliceCopyTemplate.proto */ +static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_InsertMode(InsertMode value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_ScatterMode(ScatterMode value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_NormType(NormType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscViewerFormat(PetscViewerFormat value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscFileMode(PetscFileMode value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscDeviceType(PetscDeviceType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscStreamType(PetscStreamType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscDeviceContextJoinMode(PetscDeviceContextJoinMode value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscInt __Pyx_PyInt_As_PetscInt(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_ISGlobalToLocalMappingMode(ISGlobalToLocalMappingMode value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_VecOption(VecOption value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatOption(MatOption value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatAssemblyType(MatAssemblyType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatInfoType(MatInfoType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatStructure(MatStructure value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatDuplicateOption(MatDuplicateOption value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatFactorShiftType(MatFactorShiftType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatSORType(MatSORType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCSide(PCSide value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCASMType(PCASMType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCGASMType(PCGASMType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCMGType(PCMGType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCMGCycleType(PCMGCycleType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCCompositeType(PCCompositeType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFieldSplitSchurPreType(PCFieldSplitSchurPreType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFieldSplitSchurFactType(PCFieldSplitSchurFactType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCPatchConstructType(PCPatchConstructType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(PCHPDDMCoarseCorrectionType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCDeflationSpaceType(PCDeflationSpaceType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFailedReason(PCFailedReason value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_KSPNormType(KSPNormType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_KSPConvergedReason(KSPConvergedReason value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_SNESNormSchedule(SNESNormSchedule value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_SNESConvergedReason(SNESConvergedReason value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSProblemType(TSProblemType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSEquationType(TSEquationType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSExactFinalTimeOption(TSExactFinalTimeOption value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSConvergedReason(TSConvergedReason value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TaoConvergedReason(TaoConvergedReason value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMBoundaryType(DMBoundaryType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMPolytopeType(DMPolytopeType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAStencilType(DMDAStencilType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAInterpolationType(DMDAInterpolationType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAElementType(DMDAElementType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMPlexReorderDefaultFlag(DMPlexReorderDefaultFlag value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscBool __Pyx_PyInt_As_PetscBool(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMStagStencilType(DMStagStencilType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMStagStencilLocation(DMStagStencilLocation value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmType(DMSwarmType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmMigrateType(DMSwarmMigrateType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmCollectType(DMSwarmCollectType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmPICLayoutType(DMSwarmPICLayoutType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscInt(PetscInt value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE InsertMode __Pyx_PyInt_As_InsertMode(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE ScatterMode __Pyx_PyInt_As_ScatterMode(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscFileMode __Pyx_PyInt_As_PetscFileMode(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscDeviceType __Pyx_PyInt_As_PetscDeviceType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscStreamType __Pyx_PyInt_As_PetscStreamType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscDeviceContextJoinMode __Pyx_PyInt_As_PetscDeviceContextJoinMode(PyObject *); + +/* TypeInfoToFormat.proto */ +struct __pyx_typeinfo_string { + char string[3]; +}; +static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type); + +/* CIntFromPy.proto */ +static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscMemType(PetscMemType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE MatStructure __Pyx_PyInt_As_MatStructure(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE MatAssemblyType __Pyx_PyInt_As_MatAssemblyType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE MatInfoType __Pyx_PyInt_As_MatInfoType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE MatFactorShiftType __Pyx_PyInt_As_MatFactorShiftType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE KSPConvergedReason __Pyx_PyInt_As_KSPConvergedReason(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE SNESConvergedReason __Pyx_PyInt_As_SNESConvergedReason(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TaoConvergedReason __Pyx_PyInt_As_TaoConvergedReason(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMBoundaryType __Pyx_PyInt_As_DMBoundaryType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMDAStencilType __Pyx_PyInt_As_DMDAStencilType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMDAInterpolationType __Pyx_PyInt_As_DMDAInterpolationType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMDAElementType __Pyx_PyInt_As_DMDAElementType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMStagStencilType __Pyx_PyInt_As_DMStagStencilType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMStagStencilLocation __Pyx_PyInt_As_DMStagStencilLocation(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscClassId __Pyx_PyInt_As_PetscClassId(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscLogStage(PetscLogStage value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscClassId(PetscClassId value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscLogEvent(PetscLogEvent value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MPI_Fint(MPI_Fint value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PetscViewerFormat __Pyx_PyInt_As_PetscViewerFormat(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE ISGlobalToLocalMappingMode __Pyx_PyInt_As_ISGlobalToLocalMappingMode(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __Pyx_PyInt_As_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE VecOption __Pyx_PyInt_As_VecOption(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscOffloadMask(PetscOffloadMask value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE NormType __Pyx_PyInt_As_NormType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE MatOption __Pyx_PyInt_As_MatOption(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCFailedReason __Pyx_PyInt_As_PCFailedReason(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCASMType __Pyx_PyInt_As_PCASMType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCGASMType __Pyx_PyInt_As_PCGASMType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCCompositeType __Pyx_PyInt_As_PCCompositeType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCFieldSplitSchurFactType __Pyx_PyInt_As_PCFieldSplitSchurFactType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCFieldSplitSchurPreType __Pyx_PyInt_As_PCFieldSplitSchurPreType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCMGType __Pyx_PyInt_As_PCMGType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCMGCycleType __Pyx_PyInt_As_PCMGCycleType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCPatchConstructType __Pyx_PyInt_As_PCPatchConstructType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCHPDDMCoarseCorrectionType __Pyx_PyInt_As_PCHPDDMCoarseCorrectionType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCDeflationSpaceType __Pyx_PyInt_As_PCDeflationSpaceType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE PCSide __Pyx_PyInt_As_PCSide(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE KSPNormType __Pyx_PyInt_As_KSPNormType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE SNESNormSchedule __Pyx_PyInt_As_SNESNormSchedule(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TSProblemType __Pyx_PyInt_As_TSProblemType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TSEquationType __Pyx_PyInt_As_TSEquationType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TSExactFinalTimeOption __Pyx_PyInt_As_TSExactFinalTimeOption(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE TSConvergedReason __Pyx_PyInt_As_TSConvergedReason(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscBool(PetscBool value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMPolytopeType __Pyx_PyInt_As_DMPolytopeType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMPlexReorderDefaultFlag __Pyx_PyInt_As_DMPlexReorderDefaultFlag(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMSwarmType __Pyx_PyInt_As_DMSwarmType(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE DMSwarmPICLayoutType __Pyx_PyInt_As_DMSwarmPICLayoutType(PyObject *); + +/* CIntToPy.proto */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatProductType(MatProductType value); + +/* CIntFromPy.proto */ +static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); + +/* CIntFromPy.proto */ +static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *); + +/* CheckBinaryVersion.proto */ +static int __Pyx_check_binary_version(void); + +/* FunctionExport.proto */ +static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); + +/* InitStrings.proto */ +static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); + +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquire(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_release(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquirebuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_releasebuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_10_IS_buffer_enter(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_10_IS_buffer_exit(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto*/ +static Py_ssize_t __pyx_f_8petsc4py_5PETSc_10_IS_buffer_getbuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, void **__pyx_v_p); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquire(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_release(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquirebuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_releasebuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_enter(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_exit(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto*/ +static Py_ssize_t __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_getbuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, void **__pyx_v_p); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_acquire(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_release(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_get_attr(struct PyPetscObjectObject *__pyx_v_self, char *__pyx_v_name); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_set_attr(struct PyPetscObjectObject *__pyx_v_self, char *__pyx_v_name, PyObject *__pyx_v_attr); /* proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_get_dict(struct PyPetscObjectObject *__pyx_v_self); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_setcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, void *__pyx_v_ctx, struct PyPetscObjectObject *__pyx_v_base); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_getcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, void **__pyx_v_ctx); /* proto*/ +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_setname(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, char *__pyx_v_name); /* proto*/ +static char *__pyx_f_8petsc4py_5PETSc_6_PyObj_getname(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self); /* proto*/ +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self); /* proto*/ +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto*/ +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src); /* proto*/ +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp); /* proto*/ +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value); /* proto*/ + +/* Module declarations from 'cython.view' */ +static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ + +/* Module declarations from 'cython' */ + +/* Module declarations from 'numpy' */ + +/* Module declarations from 'petsc4py.PETSc' */ +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Comm = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Object = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Viewer = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Random = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Device = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DeviceContext = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_IS = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LGMap = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SF = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Vec = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Space = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DualSpace = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_FE = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Quad = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Scatter = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Section = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Mat = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_MatPartitioning = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_NullSpace = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_PC = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_KSP = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_SNES = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TS = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_TAO = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_AO = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DM = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DS = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Partitioner = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMLabel = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_dtype = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_ndarray = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__IS_buffer = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__Vec_buffer = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__Vec_LocalForm = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__Mat_Stencil = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__DMDA_Vec_array = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__DMComposite_access = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Options = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Sys = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_Log = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LogStage = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LogClass = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_LogEvent = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_ViewerHDF5 = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMDA = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMPlex = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMStag = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMComposite = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMShell = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMSwarm = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc_DMInterpolation = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyObj = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyMat = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyPC = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyKSP = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PySNES = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyTS = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc__PyTao = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator = 0; +static PyTypeObject *__pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct_1_decorator = 0; +static PyTypeObject *__pyx_array_type = 0; +static PyTypeObject *__pyx_MemviewEnum_type = 0; +static PyTypeObject *__pyx_memoryview_type = 0; +static PyTypeObject *__pyx_memoryviewslice_type = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_PetscError = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_appctx_registry = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_citations_registry = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_stage_registry = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_class_registry = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_event_registry = 0; +static struct PyPetscCommObject *__pyx_v_8petsc4py_5PETSc___COMM_NULL__ = 0; +static struct PyPetscCommObject *__pyx_v_8petsc4py_5PETSc___COMM_SELF__ = 0; +static struct PyPetscCommObject *__pyx_v_8petsc4py_5PETSc___COMM_WORLD__ = 0; +static MPI_Comm __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT; +static PyObject *__pyx_v_8petsc4py_5PETSc_type_registry = 0; +static char *__pyx_v_8petsc4py_5PETSc_FUNCT; +static char *__pyx_v_8petsc4py_5PETSc_fstack[0x400]; +static int __pyx_v_8petsc4py_5PETSc_istack; +static PyObject *__pyx_v_8petsc4py_5PETSc_module_cache = 0; +static PyObject *__pyx_v_8petsc4py_5PETSc_dMatOps = 0; +static PetscInt __pyx_v_8petsc4py_5PETSc_matmatid; +static PyObject *__pyx_v_8petsc4py_5PETSc_tracebacklist = 0; +static int __pyx_v_8petsc4py_5PETSc_PyPetsc_Argc; +static char **__pyx_v_8petsc4py_5PETSc_PyPetsc_Argv; +static PetscErrorCode (*__pyx_v_8petsc4py_5PETSc_prevfprintf)(FILE *, char const *, va_list); +static int __pyx_v_8petsc4py_5PETSc_registercalled; +static char const *__pyx_v_8petsc4py_5PETSc_citation; +static PyObject *generic = 0; +static PyObject *strided = 0; +static PyObject *indirect = 0; +static PyObject *contiguous = 0; +static PyObject *indirect_contiguous = 0; +static int __pyx_memoryview_thread_locks_used; +static PyThread_type_lock __pyx_memoryview_thread_locks[8]; +static MPI_Comm __pyx_f_8petsc4py_5PETSc_GetComm(PyObject *, MPI_Comm); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(int, PyTypeObject *); /*proto*/ +static PyTypeObject *__pyx_f_8petsc4py_5PETSc_PyPetscType_Lookup(int); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_CHKERR(PetscErrorCode); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_bytes2str(char const *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_str2bytes(PyObject *, char const **); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_S_(char const *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SETERR(PetscErrorCode); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_SETERRMPI(int); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toBool(PetscBool); /*proto*/ +static CYTHON_INLINE PetscBool __pyx_f_8petsc4py_5PETSc_asBool(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toInt(PetscInt); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asInt(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toReal(PetscReal); /*proto*/ +static CYTHON_INLINE PetscReal __pyx_f_8petsc4py_5PETSc_asReal(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toScalar(PetscScalar); /*proto*/ +static CYTHON_INLINE PetscScalar __pyx_f_8petsc4py_5PETSc_asScalar(PyObject *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_asarray(PyObject *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_arange(PyObject *, PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_i(PetscInt); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_r(PetscInt); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_s(PetscInt); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_c(PetscInt); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_p(PetscInt); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_i(PetscInt, PetscInt const *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_r(PetscInt, PetscReal const *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_s(PetscInt, PetscScalar const *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray(PyObject *, int); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_i(PyObject *, PetscInt *, PetscInt **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_r(PyObject *, PetscInt *, PetscReal **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_b(PyObject *, PetscInt *, PetscBool **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_s(PyObject *, PetscInt *, PetscScalar **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray(PyObject *, int); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_i(PyObject *, PetscInt *, PetscInt **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_r(PyObject *, PetscInt *, PetscReal **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_s(PyObject *, PetscInt *, PetscScalar **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_p(PyObject *, PetscInt *, void **); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_ofarray_s(PyObject *, PetscInt *, PetscScalar **); /*proto*/ +static void __pyx_f_8petsc4py_5PETSc_pycapsule_deleter(PyObject *); /*proto*/ +static void __pyx_f_8petsc4py_5PETSc_manager_deleter(struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *); /*proto*/ +static CYTHON_INLINE InsertMode __pyx_f_8petsc4py_5PETSc_insertmode(PyObject *); /*proto*/ +static CYTHON_INLINE ScatterMode __pyx_f_8petsc4py_5PETSc_scattermode(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getprefix(PyObject *, struct __pyx_opt_args_8petsc4py_5PETSc_getprefix *__pyx_optional_args); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_opt2str(char const *, char const *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Bool(PetscOptions, char const *, char const *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Int(PetscOptions, char const *, char const *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Real(PetscOptions, char const *, char const *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Scalar(PetscOptions, char const *, char const *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_String(PetscOptions, char const *, char const *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getpair(PyObject *, PyObject *, char const **, char const **); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt(PetscOptions, enum __pyx_t_8petsc4py_5PETSc_PetscOptType, PyObject *, PyObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_tokenize(PyObject *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_iskey(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_gettok(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_getkey(PyObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_parseopt(PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE MPI_Comm __pyx_f_8petsc4py_5PETSc_mpi4py_Comm_Get(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_mpi4py_Comm_New(MPI_Comm); /*proto*/ +static CYTHON_INLINE MPI_Datatype __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(PyObject *); /*proto*/ +static CYTHON_INLINE MPI_Op __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(PyObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscCommDEALLOC(MPI_Comm *); /*proto*/ +static CYTHON_INLINE MPI_Comm __pyx_f_8petsc4py_5PETSc_def_Comm(PyObject *, MPI_Comm); /*proto*/ +static CYTHON_INLINE struct PyPetscCommObject *__pyx_f_8petsc4py_5PETSc_new_Comm(MPI_Comm); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_comm_size(MPI_Comm); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_comm_rank(MPI_Comm); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Sys_Sizes(PyObject *, PyObject *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Sys_Layout(MPI_Comm, PetscInt, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_event_args2objs(PyObject *, PetscObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscINCREF(PetscObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscCLEAR(PetscObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscDEALLOC(PetscObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscINCSTATE(PetscObject *); /*proto*/ +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_Py_DecRef(PyObject *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscDelPyDict(void *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscGetPyDict(PetscObject, int); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscGetPyObj(PetscObject, char *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscSetPyObj(PetscObject, char *, PyObject *); /*proto*/ +static CYTHON_INLINE Py_intptr_t __pyx_f_8petsc4py_5PETSc_Object_toFortran(PetscObject); /*proto*/ +static CYTHON_INLINE PyTypeObject *__pyx_f_8petsc4py_5PETSc_subtype_DM(DM); /*proto*/ +static CYTHON_INLINE PyTypeObject *__pyx_f_8petsc4py_5PETSc_subtype_Object(PetscObject); /*proto*/ +static CYTHON_INLINE PetscFileMode __pyx_f_8petsc4py_5PETSc_filemode(PyObject *); /*proto*/ +static CYTHON_INLINE PetscDeviceType __pyx_f_8petsc4py_5PETSc_asDeviceType(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDeviceType(PetscDeviceType); /*proto*/ +static CYTHON_INLINE PetscStreamType __pyx_f_8petsc4py_5PETSc_asStreamType(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStreamType(PetscStreamType); /*proto*/ +static CYTHON_INLINE PetscDeviceContextJoinMode __pyx_f_8petsc4py_5PETSc_asJoinMode(PyObject *); /*proto*/ +static CYTHON_INLINE struct PyPetscISObject *__pyx_f_8petsc4py_5PETSc_ref_IS(IS); /*proto*/ +static CYTHON_INLINE struct PyPetscLGMapObject *__pyx_f_8petsc4py_5PETSc_ref_LGMap(ISLocalToGlobalMapping); /*proto*/ +static CYTHON_INLINE struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_ref_Vec(Vec); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_pos(struct PyPetscVecObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_neg(struct PyPetscVecObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_abs(struct PyPetscVecObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_iadd(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_isub(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_imul(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_idiv(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_add(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_sub(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_mul(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_div(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_radd(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rsub(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rmul(struct PyPetscVecObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rdiv(struct PyPetscVecObject *, PyObject *); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_Vec_Sizes(PyObject *, PyObject *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn *__pyx_f_8petsc4py_5PETSc_vecsetvalues_fcn(int, int); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_vecsetvalues(Vec, PyObject *, PyObject *, PyObject *, int, int); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_vecgetvalues(Vec, PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_f_8petsc4py_5PETSc_vec_getbuffer_r(struct PyPetscVecObject *); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_f_8petsc4py_5PETSc_vec_getbuffer_w(struct PyPetscVecObject *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_vec_getarray_r(struct PyPetscVecObject *); /*proto*/ +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_vec_getarray_w(struct PyPetscVecObject *); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_vec_setarray(struct PyPetscVecObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_vec_getitem(struct PyPetscVecObject *, PyObject *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_vec_setitem(struct PyPetscVecObject *, PyObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_vec_get_dlpack_ctx(struct PyPetscVecObject *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_Vec_AcquireArray(Vec, PetscScalar **, int); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_Vec_ReleaseArray(Vec, PetscScalar **, int); /*proto*/ +static CYTHON_INLINE struct PyPetscNullSpaceObject *__pyx_f_8petsc4py_5PETSc_ref_NullSpace(MatNullSpace); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_NullSpace_Function(MatNullSpace, Vec, void *); /*proto*/ +static CYTHON_INLINE struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_ref_Mat(Mat); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_pos(struct PyPetscMatObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_neg(struct PyPetscMatObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_iadd(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_isub(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_imul(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_idiv(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_add(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_sub(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_mul(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_mat_mul_vec(struct PyPetscMatObject *, struct PyPetscVecObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_div(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_radd(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rsub(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rmul(struct PyPetscMatObject *, PyObject *); /*proto*/ +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rdiv(struct PyPetscMatObject *, PyObject *); /*proto*/ +static CYTHON_INLINE MatStructure __pyx_f_8petsc4py_5PETSc_matstructure(PyObject *); /*proto*/ +static CYTHON_INLINE MatAssemblyType __pyx_f_8petsc4py_5PETSc_assemblytype(PyObject *); /*proto*/ +static CYTHON_INLINE MatInfoType __pyx_f_8petsc4py_5PETSc_infotype(PyObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_Sizes(PyObject *, PyObject *, PetscInt *, PetscInt *, PetscInt *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_Create(MatType, PyObject *, PyObject *, PyObject *, Mat *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_NNZ(Mat, PyObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_CSR(Mat, PyObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(Mat, PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_Mat_AllocDense(Mat, PyObject *); /*proto*/ +static CYTHON_INLINE __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_f_8petsc4py_5PETSc_matsetvalues_fcn(int, int); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues(Mat, PyObject *, PyObject *, PyObject *, PyObject *, int, int); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(Mat, PyObject *, PyObject *, PyObject *, PyObject *, int, int); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(Mat, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, int); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(Mat, PyObject *, PyObject *, PyObject *, PyObject *, int, int); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_matgetvalues(Mat, PyObject *, PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE MatFactorShiftType __pyx_f_8petsc4py_5PETSc_matfactorshifttype(PyObject *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_matfactorinfo(PetscBool, PetscBool, PyObject *, MatFactorInfo *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_mat_getitem(struct PyPetscMatObject *, PyObject *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_mat_setitem(struct PyPetscMatObject *, PyObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_matsetvaluestencil(Mat, struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *, struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *, PyObject *, InsertMode, int); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_mat_get_dlpack_ctx(struct PyPetscMatObject *); /*proto*/ +static CYTHON_INLINE struct PyPetscPCObject *__pyx_f_8petsc4py_5PETSc_ref_PC(PC); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperator(PC, PetscInt, Vec, Mat, IS, PetscInt, PetscInt const *, PetscInt const *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunction(PC, PetscInt, Vec, Vec, IS, PetscInt, PetscInt const *, PetscInt const *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperatorInteriorFacets(PC, PetscInt, Vec, Mat, IS, PetscInt, PetscInt const *, PetscInt const *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunctionInteriorFacets(PC, PetscInt, Vec, Vec, IS, PetscInt, PetscInt const *, PetscInt const *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_UserConstructOperator(PC, PetscInt *, IS **, IS *, void *); /*proto*/ +static CYTHON_INLINE struct PyPetscKSPObject *__pyx_f_8petsc4py_5PETSc_ref_KSP(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_Converged(KSP, PetscInt, PetscReal, KSPConvergedReason *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_Monitor(KSP, PetscInt, PetscReal, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_ComputeRHS(KSP, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_ComputeOps(KSP, Mat, Mat, void *); /*proto*/ +static CYTHON_INLINE struct PyPetscSNESObject *__pyx_f_8petsc4py_5PETSc_ref_SNES(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_InitialGuess(SNES, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_PreCheck(SNESLineSearch, Vec, Vec, PetscBool *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Function(SNES, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Update(SNES, PetscInt); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Jacobian(SNES, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Objective(SNES, Vec, PetscReal *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_NGS(SNES, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Converged(SNES, PetscInt, PetscReal, PetscReal, PetscReal, SNESConvergedReason *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Monitor(SNES, PetscInt, PetscReal, void *); /*proto*/ +static CYTHON_INLINE struct PyPetscTSObject *__pyx_f_8petsc4py_5PETSc_ref_TS(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSFunction(TS, PetscReal, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSJacobian(TS, PetscReal, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IFunction(TS, PetscReal, Vec, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IJacobian(TS, PetscReal, Vec, Vec, PetscReal, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IJacobianP(TS, PetscReal, Vec, Vec, PetscReal, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_I2Function(TS, PetscReal, Vec, Vec, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_I2Jacobian(TS, PetscReal, Vec, Vec, Vec, PetscReal, PetscReal, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_Monitor(TS, PetscInt, PetscReal, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_EventHandler(TS, PetscReal, Vec, PetscScalar *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PostEvent(TS, PetscInt, PetscInt *, PetscReal, Vec, PetscBool, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PreStep(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PostStep(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSJacobianP(TS, PetscReal, Vec, Mat, void *); /*proto*/ +static CYTHON_INLINE struct PyPetscTAOObject *__pyx_f_8petsc4py_5PETSc_ref_TAO(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Objective(Tao, Vec, PetscReal *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Residual(Tao, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Gradient(Tao, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_ObjGrad(Tao, Vec, PetscReal *, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegObjGrad(Tao, Vec, PetscReal *, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Constraints(Tao, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_VarBounds(Tao, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Hessian(Tao, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegHessian(Tao, Vec, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Jacobian(Tao, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianResidual(Tao, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianState(Tao, Vec, Mat, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianDesign(Tao, Vec, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_EqualityConstraints(Tao, Vec, Vec, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianEquality(Tao, Vec, Mat, Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Update(Tao, PetscInt, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Converged(Tao, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Monitor(Tao, void *); /*proto*/ +static CYTHON_INLINE DMBoundaryType __pyx_f_8petsc4py_5PETSc_asBoundaryType(PyObject *); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asBoundary(PyObject *, DMBoundaryType *, DMBoundaryType *, DMBoundaryType *); /*proto*/ +static CYTHON_INLINE struct PyPetscDMObject *__pyx_f_8petsc4py_5PETSc_ref_DM(DM); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DM_PyCoarsenHook(DM, DM, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DM_PyRestrictHook(DM, Mat, Vec, Mat, DM, void *); /*proto*/ +static CYTHON_INLINE DMDAStencilType __pyx_f_8petsc4py_5PETSc_asStencil(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStencil(DMDAStencilType); /*proto*/ +static CYTHON_INLINE DMDAInterpolationType __pyx_f_8petsc4py_5PETSc_dainterpolationtype(PyObject *); /*proto*/ +static CYTHON_INLINE DMDAElementType __pyx_f_8petsc4py_5PETSc_daelementtype(PyObject *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMDAGetDim(DM, PetscInt *); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asDims(PyObject *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDims(PetscInt, PetscInt, PetscInt, PetscInt); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_asOwnershipRanges(PyObject *, PetscInt, PetscInt *, PetscInt *, PetscInt *, PetscInt **, PetscInt **, PetscInt **); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toOwnershipRanges(PetscInt, PetscInt, PetscInt, PetscInt, PetscInt const *, PetscInt const *, PetscInt const *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_adjust_index_exp(PyObject *, PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_adjust_index(PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE DMStagStencilType __pyx_f_8petsc4py_5PETSc_asStagStencil(PyObject *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagStencil(DMStagStencilType); /*proto*/ +static CYTHON_INLINE DMStagStencilLocation __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(PyObject *); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asStagDims(PyObject *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagDims(PetscInt, PetscInt, PetscInt, PetscInt); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asDofs(PyObject *, PetscInt *, PetscInt *, PetscInt *, PetscInt *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDofs(PetscInt, PetscInt, PetscInt, PetscInt, PetscInt); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_asStagOwnershipRanges(PyObject *, PetscInt, PetscInt *, PetscInt *, PetscInt *, PetscInt **, PetscInt **, PetscInt **); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagOwnershipRanges(PetscInt, PetscInt, PetscInt, PetscInt, PetscInt const *, PetscInt const *, PetscInt const *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagBoundary(DMBoundaryType); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagBoundaryTypes(PetscInt, DMBoundaryType, DMBoundaryType, DMBoundaryType); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateGlobalVector(DM, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateLocalVector(DM, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalBegin(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalEnd(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalBegin(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalEnd(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalBegin(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalEnd(DM, Vec, InsertMode, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateMatrix(DM, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_Coarsen(DM, MPI_Comm, DM *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_Refine(DM, MPI_Comm, DM *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInterpolation(DM, DM, Mat *, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInjection(DM, DM, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateRestriction(DM, DM, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateFieldDecomposition(DM, PetscInt *, char ***, IS **, DM **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecomposition(DM, PetscInt *, char ***, IS **, IS **, DM **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecompositionScatters(DM, PetscInt, DM *, VecScatter **, VecScatter **, VecScatter **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateSubDM(DM, PetscInt, PetscInt const *, IS *, DM *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_registerAppCtx(void *); /*proto*/ +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toAppCtx(void *); /*proto*/ +static PetscBool __pyx_f_8petsc4py_5PETSc_get_citation(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_set_citation(PyObject *, int); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_f_8petsc4py_5PETSc_get_LogStage(PyObject *); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_f_8petsc4py_5PETSc_reg_LogStage(PyObject *, PetscLogStage); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_f_8petsc4py_5PETSc_get_LogClass(PyObject *); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_f_8petsc4py_5PETSc_reg_LogClass(PyObject *, PetscClassId); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_f_8petsc4py_5PETSc_get_LogEvent(PyObject *); /*proto*/ +static struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_f_8petsc4py_5PETSc_reg_LogEvent(PyObject *, PetscLogEvent); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_tp_traverse(PyObject *, visitproc, void *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_tp_clear(PyObject *); /*proto*/ +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_TypeEnableGC(PyTypeObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_make_enum_class(PyObject *, PyObject *); /*proto*/ +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_setref(void *, void *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_PyPetscError_Set(PetscErrorCode); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscComm_New(MPI_Comm); /*proto*/ +static MPI_Comm __pyx_f_8petsc4py_5PETSc_PyPetscComm_Get(PyObject *); /*proto*/ +static MPI_Comm *__pyx_f_8petsc4py_5PETSc_PyPetscComm_GetPtr(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscObject_New(PetscObject); /*proto*/ +static PetscObject __pyx_f_8petsc4py_5PETSc_PyPetscObject_Get(PyObject *); /*proto*/ +static PetscObject *__pyx_f_8petsc4py_5PETSc_PyPetscObject_GetPtr(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscViewer_New(PetscViewer); /*proto*/ +static PetscViewer __pyx_f_8petsc4py_5PETSc_PyPetscViewer_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscRandom_New(PetscRandom); /*proto*/ +static PetscRandom __pyx_f_8petsc4py_5PETSc_PyPetscRandom_Get(PyObject *); /*proto*/ +static struct PyPetscDeviceObject *__pyx_f_8petsc4py_5PETSc_PyPetscDevice_New(PetscDevice); /*proto*/ +static PetscDevice __pyx_f_8petsc4py_5PETSc_PyPetscDevice_Get(PyObject *); /*proto*/ +static struct PyPetscDeviceContextObject *__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New(PetscDeviceContext); /*proto*/ +static PetscDeviceContext __pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscIS_New(IS); /*proto*/ +static IS __pyx_f_8petsc4py_5PETSc_PyPetscIS_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscLGMap_New(ISLocalToGlobalMapping); /*proto*/ +static ISLocalToGlobalMapping __pyx_f_8petsc4py_5PETSc_PyPetscLGMap_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSF_New(PetscSF); /*proto*/ +static PetscSF __pyx_f_8petsc4py_5PETSc_PyPetscSF_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscVec_New(Vec); /*proto*/ +static Vec __pyx_f_8petsc4py_5PETSc_PyPetscVec_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscScatter_New(VecScatter); /*proto*/ +static VecScatter __pyx_f_8petsc4py_5PETSc_PyPetscScatter_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSection_New(PetscSection); /*proto*/ +static PetscSection __pyx_f_8petsc4py_5PETSc_PyPetscSection_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscMat_New(Mat); /*proto*/ +static Mat __pyx_f_8petsc4py_5PETSc_PyPetscMat_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New(MatPartitioning); /*proto*/ +static MatPartitioning __pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscPC_New(PC); /*proto*/ +static PC __pyx_f_8petsc4py_5PETSc_PyPetscPC_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscKSP_New(KSP); /*proto*/ +static KSP __pyx_f_8petsc4py_5PETSc_PyPetscKSP_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSNES_New(SNES); /*proto*/ +static SNES __pyx_f_8petsc4py_5PETSc_PyPetscSNES_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscTS_New(TS); /*proto*/ +static TS __pyx_f_8petsc4py_5PETSc_PyPetscTS_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscTAO_New(Tao); /*proto*/ +static Tao __pyx_f_8petsc4py_5PETSc_PyPetscTAO_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscAO_New(AO); /*proto*/ +static AO __pyx_f_8petsc4py_5PETSc_PyPetscAO_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDM_New(DM); /*proto*/ +static DM __pyx_f_8petsc4py_5PETSc_PyPetscDM_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDS_New(PetscDS); /*proto*/ +static PetscDS __pyx_f_8petsc4py_5PETSc_PyPetscDS_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_New(PetscPartitioner); /*proto*/ +static PetscPartitioner __pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscFE_New(PetscFE); /*proto*/ +static PetscFE __pyx_f_8petsc4py_5PETSc_PyPetscFE_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscQuad_New(PetscQuadrature); /*proto*/ +static PetscQuadrature __pyx_f_8petsc4py_5PETSc_PyPetscQuad_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_New(DMLabel); /*proto*/ +static DMLabel __pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSpace_New(PetscSpace); /*proto*/ +static PetscSpace __pyx_f_8petsc4py_5PETSc_PyPetscSpace_Get(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_New(PetscDualSpace); /*proto*/ +static PetscDualSpace __pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_Get(PyObject *); /*proto*/ +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_FunctionBegin(char *); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_FunctionEnd(void); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscSETERR(PetscErrorCode, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(char *); /*proto*/ +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_getRef(void *); /*proto*/ +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_addRef(void *); /*proto*/ +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_delRef(void *); /*proto*/ +static CYTHON_INLINE PetscObject __pyx_f_8petsc4py_5PETSc_newRef(void *); /*proto*/ +static CYTHON_INLINE char const *__pyx_f_8petsc4py_5PETSc_getPrefix(void *); /*proto*/ +static CYTHON_INLINE struct PyPetscViewerObject *__pyx_f_8petsc4py_5PETSc_Viewer_(PetscViewer); /*proto*/ +static CYTHON_INLINE struct PyPetscISObject *__pyx_f_8petsc4py_5PETSc_IS_(IS); /*proto*/ +static CYTHON_INLINE struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_Vec_(Vec); /*proto*/ +static CYTHON_INLINE struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_Mat_(Mat); /*proto*/ +static CYTHON_INLINE struct PyPetscPCObject *__pyx_f_8petsc4py_5PETSc_PC_(PC); /*proto*/ +static CYTHON_INLINE struct PyPetscKSPObject *__pyx_f_8petsc4py_5PETSc_KSP_(KSP); /*proto*/ +static CYTHON_INLINE struct PyPetscSNESObject *__pyx_f_8petsc4py_5PETSc_SNES_(SNES); /*proto*/ +static CYTHON_INLINE struct PyPetscTSObject *__pyx_f_8petsc4py_5PETSc_TS_(TS); /*proto*/ +static CYTHON_INLINE struct PyPetscTAOObject *__pyx_f_8petsc4py_5PETSc_TAO_(Tao); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_parse_url(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_load_module(PyObject *); /*proto*/ +static PyObject *__pyx_f_8petsc4py_5PETSc_createcontext(char *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_viewcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, PetscViewer); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyMat *__pyx_f_8petsc4py_5PETSc_PyMat(Mat); /*proto*/ +__PYX_EXTERN_C PetscErrorCode MatPythonGetContext(Mat, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode MatPythonSetContext(Mat, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatPythonSetType_PYTHON(Mat, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatPythonGetType_PYTHON(Mat, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreate_Python(Mat); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDestroy_Python_inner(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDestroy_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetFromOptions_Python(Mat, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatView_Python(Mat, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDuplicate_Python(Mat, MatDuplicateOption, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCopy_Python(Mat, Mat, MatStructure); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatGetDiagonalBlock_Python(Mat, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreateSubMatrix_Python(Mat, IS, IS, MatReuse, Mat *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetOption_Python(Mat, MatOption, PetscBool); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetUp_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatAssemblyBegin_Python(Mat, MatAssemblyType); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatAssemblyEnd_Python(Mat, MatAssemblyType); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatZeroEntries_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatZeroRowsColumns_Python(Mat, PetscInt, PetscInt const *, PetscScalar, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatScale_Python(Mat, PetscScalar); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatShift_Python(Mat, PetscScalar); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreateVecs_Python(Mat, Vec *, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMult_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultTranspose_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultHermitian_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultAdd_Python(Mat, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultTransposeAdd_Python(Mat, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultHermitianAdd_Python(Mat, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultDiagonalBlock_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolve_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveTranspose_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveAdd_Python(Mat, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveTransposeAdd_Python(Mat, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSOR_Python(Mat, Vec, PetscReal, MatSORType, PetscReal, PetscInt, PetscInt, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatGetDiagonal_Python(Mat, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetDiagonal_Python(Mat, Vec, InsertMode); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDiagonalScale_Python(Mat, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMissingDiagonal_Python(Mat, PetscBool *, PetscInt *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatNorm_Python(Mat, NormType, PetscReal *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatRealPart_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatImagPart_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatConjugate_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatHasOperation_Python(Mat, MatOperation, PetscBool *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductNumeric_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductSymbolic_Python(Mat); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductSetFromOptions_Python(Mat); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyPC *__pyx_f_8petsc4py_5PETSc_PyPC(PC); /*proto*/ +__PYX_EXTERN_C PetscErrorCode PCPythonGetContext(PC, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode PCPythonSetContext(PC, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPythonSetType_PYTHON(PC, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPythonGetType_PYTHON(PC, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCCreate_Python(PC); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCDestroy_Python_inner(PC); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCDestroy_Python(PC); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCSetUp_Python(PC); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCReset_Python_inner(PC); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCReset_Python(PC); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCSetFromOptions_Python(PC, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCView_Python(PC, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPreSolve_Python(PC, KSP, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPostSolve_Python(PC, KSP, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApply_Python(PC, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplyTranspose_Python(PC, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplySymmetricLeft_Python(PC, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplySymmetricRight_Python(PC, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCMatApply_Python(PC, Mat, Mat); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyKSP *__pyx_f_8petsc4py_5PETSc_PyKSP(KSP); /*proto*/ +__PYX_EXTERN_C PetscErrorCode KSPPythonGetContext(KSP, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode KSPPythonSetContext(KSP, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPythonSetType_PYTHON(KSP, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPythonGetType_PYTHON(KSP, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPCreate_Python(KSP); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python_inner(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSetUp_Python(KSP); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPReset_Python_inner(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPReset_Python(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSetFromOptions_Python(KSP, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPView_Python(KSP, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPBuildSolution_Python(KSP, Vec, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPBuildResidual_Python(KSP, Vec, Vec, Vec *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSolve_Python(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSolve_Python_default(KSP, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPreStep_Python(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPostStep_Python(KSP); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPStep_Python(KSP, Vec, Vec); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PySNES *__pyx_f_8petsc4py_5PETSc_PySNES(SNES); /*proto*/ +__PYX_EXTERN_C PetscErrorCode SNESPythonGetContext(SNES, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode SNESPythonSetContext(SNES, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPythonSetType_PYTHON(SNES, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPythonGetType_PYTHON(SNES, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESCreate_Python(SNES); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python_inner(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSetUp_Python(SNES); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESReset_Python_inner(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESReset_Python(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSetFromOptions_Python(SNES, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESView_Python(SNES, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSolve_Python(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSolve_Python_default(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPreStep_Python(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPostStep_Python(SNES); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESStep_Python(SNES, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESStep_Python_default(SNES, Vec, Vec, Vec); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyTS *__pyx_f_8petsc4py_5PETSc_PyTS(TS); /*proto*/ +__PYX_EXTERN_C PetscErrorCode TSPythonGetContext(TS, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode TSPythonSetContext(TS, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSPythonSetType_PYTHON(TS, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSPythonGetType_PYTHON(TS, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSCreate_Python(TS); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSDestroy_Python_inner(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSDestroy_Python(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSetUp_Python(TS); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSReset_Python_inner(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSReset_Python(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSetFromOptions_Python(TS, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSView_Python(TS, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSStep_Python(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSRollBack_Python(TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSInterpolate_Python(TS, PetscReal, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSEvaluateStep_Python(TS, PetscInt, Vec, PetscBool *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESTSFormFunction_Python(SNES, Vec, Vec, TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESTSFormJacobian_Python(SNES, Vec, Mat, Mat, TS); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSolveStep_Python(TS, PetscReal, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSAdaptStep_Python(TS, PetscReal, Vec, PetscReal *, PetscBool *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSStep_Python_default(TS); /*proto*/ +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyTao *__pyx_f_8petsc4py_5PETSc_PyTao(Tao); /*proto*/ +__PYX_EXTERN_C PetscErrorCode TaoPythonGetContext(Tao, void **); /*proto*/ +__PYX_EXTERN_C PetscErrorCode TaoPythonSetContext(Tao, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPythonSetType_PYTHON(Tao, char *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPythonGetType_PYTHON(Tao, char const **); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoCreate_Python(Tao); /*proto*/ +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python_inner(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSetUp_Python(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSetFromOptions_Python(Tao, PetscOptionItems *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoView_Python(Tao, PetscViewer); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSolve_Python(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSolve_Python_default(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoStep_Python(Tao, Vec, Vec, Vec); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPreStep_Python(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPostStep_Python(Tao); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscPythonMonitorSet_Python(PetscObject, char const *); /*proto*/ +__PYX_EXTERN_C PetscErrorCode PetscPythonRegisterAll(void); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_traceback(MPI_Comm, int, char const *, char const *, PetscErrorCode, PetscErrorType, char const *, void *); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscPythonErrorHandler(MPI_Comm, int, char const *, char const *, PetscErrorCode, PetscErrorType, char const *, void *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_getinitargs(PyObject *, int *, char ***); /*proto*/ +static void __pyx_f_8petsc4py_5PETSc_delinitargs(int *, char ***); /*proto*/ +static void __pyx_f_8petsc4py_5PETSc_finalize(void); /*proto*/ +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscVFPrintf_PythonStdStream(FILE *, char const *, va_list); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc__push_vfprintf(PetscErrorCode (*)(FILE *, char const *, va_list)); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc__pop_vfprintf(void); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_initialize(PyObject *, PyObject *); /*proto*/ +static int __pyx_f_8petsc4py_5PETSc_register(void); /*proto*/ +static struct __pyx_array_obj *__pyx_array_new(PyObject *, Py_ssize_t, char *, char *, char *); /*proto*/ +static void *__pyx_align_pointer(void *, size_t); /*proto*/ +static PyObject *__pyx_memoryview_new(PyObject *, int, int, __Pyx_TypeInfo *); /*proto*/ +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *); /*proto*/ +static PyObject *_unellipsify(PyObject *, int); /*proto*/ +static PyObject *assert_direct_dimensions(Py_ssize_t *, int); /*proto*/ +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *, PyObject *); /*proto*/ +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int *, Py_ssize_t, Py_ssize_t, Py_ssize_t, int, int, int, int); /*proto*/ +static char *__pyx_pybuffer_index(Py_buffer *, char *, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memslice_transpose(__Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice, int, PyObject *(*)(char *), int (*)(char *, PyObject *), int); /*proto*/ +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *); /*proto*/ +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *, __Pyx_memviewslice *); /*proto*/ +static Py_ssize_t abs_py_ssize_t(Py_ssize_t); /*proto*/ +static char __pyx_get_best_slice_order(__Pyx_memviewslice *, int); /*proto*/ +static void _copy_strided_to_strided(char *, Py_ssize_t *, char *, Py_ssize_t *, Py_ssize_t *, Py_ssize_t *, int, size_t); /*proto*/ +static void copy_strided_to_strided(__Pyx_memviewslice *, __Pyx_memviewslice *, int, size_t); /*proto*/ +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *, int); /*proto*/ +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *, Py_ssize_t *, Py_ssize_t, int, char); /*proto*/ +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *, __Pyx_memviewslice *, char, int); /*proto*/ +static int __pyx_memoryview_err_extents(int, Py_ssize_t, Py_ssize_t); /*proto*/ +static int __pyx_memoryview_err_dim(PyObject *, char *, int); /*proto*/ +static int __pyx_memoryview_err(PyObject *, char *); /*proto*/ +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice, __Pyx_memviewslice, int, int, int); /*proto*/ +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *, int, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_refcount_objects_in_slice(char *, Py_ssize_t *, Py_ssize_t *, int, int); /*proto*/ +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *, int, size_t, void *, int); /*proto*/ +static void __pyx_memoryview__slice_assign_scalar(char *, Py_ssize_t *, Py_ssize_t *, int, size_t, void *); /*proto*/ +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *, PyObject *); /*proto*/ +static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *); /*proto*/ +static __Pyx_TypeInfo __Pyx_TypeInfo_nn_PetscInt = { "PetscInt", NULL, sizeof(PetscInt), { 0 }, 0, IS_UNSIGNED(PetscInt) ? 'U' : 'I', IS_UNSIGNED(PetscInt), 0 }; +#define __Pyx_MODULE_NAME "petsc4py.PETSc" +extern int __pyx_module_is_main_petsc4py__PETSc; +int __pyx_module_is_main_petsc4py__PETSc = 0; + +/* Implementation of 'petsc4py.PETSc' */ +static PyObject *__pyx_builtin_object; +static PyObject *__pyx_builtin_RuntimeError; +static PyObject *__pyx_builtin_property; +static PyObject *__pyx_builtin_staticmethod; +static PyObject *__pyx_builtin_ValueError; +static PyObject *__pyx_builtin_TypeError; +static PyObject *__pyx_builtin_KeyError; +static PyObject *__pyx_builtin_AttributeError; +static PyObject *__pyx_builtin_NotImplementedError; +static PyObject *__pyx_builtin_SystemError; +static PyObject *__pyx_builtin_Ellipsis; +static PyObject *__pyx_builtin_range; +static PyObject *__pyx_builtin_enumerate; +static PyObject *__pyx_builtin_NotImplemented; +static PyObject *__pyx_builtin_open; +static PyObject *__pyx_builtin_compile; +static PyObject *__pyx_builtin_MemoryError; +static PyObject *__pyx_builtin_id; +static PyObject *__pyx_builtin_IndexError; +static const char __pyx_k_[] = " "; +static const char __pyx_k_A[] = "A"; +static const char __pyx_k_B[] = "B"; +static const char __pyx_k_C[] = "C"; +static const char __pyx_k_D[] = "D"; +static const char __pyx_k_G[] = "G"; +static const char __pyx_k_H[] = "H"; +static const char __pyx_k_I[] = "I"; +static const char __pyx_k_J[] = "J"; +static const char __pyx_k_L[] = "L"; +static const char __pyx_k_O[] = "O"; +static const char __pyx_k_P[] = "P"; +static const char __pyx_k_R[] = "R"; +static const char __pyx_k_S[] = "S"; +static const char __pyx_k_T[] = "T"; +static const char __pyx_k_U[] = "U"; +static const char __pyx_k_V[] = "V"; +static const char __pyx_k_W[] = "W"; +static const char __pyx_k_X[] = "X"; +static const char __pyx_k_a[] = "a"; +static const char __pyx_k_b[] = "b"; +static const char __pyx_k_c[] = "c"; +static const char __pyx_k_e[] = "e"; +static const char __pyx_k_f[] = "f"; +static const char __pyx_k_g[] = "g"; +static const char __pyx_k_i[] = "i"; +static const char __pyx_k_j[] = "j"; +static const char __pyx_k_k[] = "k"; +static const char __pyx_k_l[] = "l"; +static const char __pyx_k_n[] = "n"; +static const char __pyx_k_p[] = "p"; +static const char __pyx_k_r[] = "r"; +static const char __pyx_k_s[] = "%s"; +static const char __pyx_k_t[] = "t"; +static const char __pyx_k_u[] = "u"; +static const char __pyx_k_v[] = "v"; +static const char __pyx_k_w[] = "w"; +static const char __pyx_k_x[] = "x"; +static const char __pyx_k_y[] = "y"; +static const char __pyx_k_AB[] = "AB"; +static const char __pyx_k_AO[] = "AO"; +static const char __pyx_k_AU[] = "AU"; +static const char __pyx_k_BE[] = "BE"; +static const char __pyx_k_CG[] = "CG"; +static const char __pyx_k_CN[] = "CN"; +static const char __pyx_k_CP[] = "CP"; +static const char __pyx_k_CR[] = "CR"; +static const char __pyx_k_DA[] = "DA"; +static const char __pyx_k_DM[] = "DM"; +static const char __pyx_k_DS[] = "DS"; +static const char __pyx_k_FE[] = "FE"; +static const char __pyx_k_IS[] = "IS"; +static const char __pyx_k_LU[] = "LU"; +static const char __pyx_k_MG[] = "MG"; +static const char __pyx_k_ML[] = "ML"; +static const char __pyx_k_MS[] = "MS"; +static const char __pyx_k_N1[] = "N1"; +static const char __pyx_k_N2[] = "N2"; +static const char __pyx_k_ND[] = "ND"; +static const char __pyx_k_NM[] = "NM"; +static const char __pyx_k_NN[] = "NN"; +static const char __pyx_k_NO[] = "NO"; +static const char __pyx_k_NZ[] = "NZ"; +static const char __pyx_k_P1[] = "P1"; +static const char __pyx_k_PC[] = "PC"; +static const char __pyx_k_PD[] = "PD"; +static const char __pyx_k_Q0[] = "Q0"; +static const char __pyx_k_Q1[] = "Q1"; +static const char __pyx_k_QN[] = "QN"; +static const char __pyx_k_QR[] = "QR"; +static const char __pyx_k_RK[] = "RK"; +static const char __pyx_k_SF[] = "SF"; +static const char __pyx_k_TH[] = "TH"; +static const char __pyx_k_TS[] = "TS"; +static const char __pyx_k_UA[] = "UA"; +static const char __pyx_k_UP[] = "UP"; +static const char __pyx_k_VU[] = "VU"; +static const char __pyx_k__4[] = "-"; +static const char __pyx_k__7[] = ""; +static const char __pyx_k_au[] = "au"; +static const char __pyx_k_bs[] = "bs"; +static const char __pyx_k_da[] = "da"; +static const char __pyx_k_dm[] = "dm"; +static const char __pyx_k_dt[] = "dt"; +static const char __pyx_k_gv[] = "gv"; +static const char __pyx_k_id[] = "id"; +static const char __pyx_k_is[] = "is_"; +static const char __pyx_k_lv[] = "lv"; +static const char __pyx_k_na[] = "na"; +static const char __pyx_k_nc[] = "nc"; +static const char __pyx_k_op[] = "op"; +static const char __pyx_k_p1[] = "p1"; +static const char __pyx_k_pc[] = "pc"; +static const char __pyx_k_pd[] = "pd"; +static const char __pyx_k_pi[] = "pi"; +static const char __pyx_k_pj[] = "pj"; +static const char __pyx_k_q0[] = "q0"; +static const char __pyx_k_q1[] = "q1"; +static const char __pyx_k_rw[] = "rw"; +static const char __pyx_k_sf[] = "sf"; +static const char __pyx_k_sp[] = "sp"; +static const char __pyx_k_sx[] = "sx"; +static const char __pyx_k_ua[] = "ua"; +static const char __pyx_k_up[] = "up"; +static const char __pyx_k_vg[] = "vg"; +static const char __pyx_k_vl[] = "vl"; +static const char __pyx_k_vm[] = "vm"; +static const char __pyx_k_vn[] = "vn"; +static const char __pyx_k_xl[] = "xl"; +static const char __pyx_k_xu[] = "xu"; +static const char __pyx_k_A11[] = "A11"; +static const char __pyx_k_ABC[] = "ABC"; +static const char __pyx_k_ABt[] = "ABt"; +static const char __pyx_k_ADD[] = "ADD"; +static const char __pyx_k_AGG[] = "AGG"; +static const char __pyx_k_AIJ[] = "AIJ"; +static const char __pyx_k_AMD[] = "AMD"; +static const char __pyx_k_ASM[] = "ASM"; +static const char __pyx_k_AtB[] = "AtB"; +static const char __pyx_k_BAS[] = "BAS"; +static const char __pyx_k_BDF[] = "BDF"; +static const char __pyx_k_BDM[] = "BDM"; +static const char __pyx_k_BOX[] = "BOX"; +static const char __pyx_k_CGS[] = "CGS"; +static const char __pyx_k_DB2[] = "DB2"; +static const char __pyx_k_DB4[] = "DB4"; +static const char __pyx_k_DB8[] = "DB8"; +static const char __pyx_k_DOF[] = "DOF"; +static const char __pyx_k_Dup[] = "Dup"; +static const char __pyx_k_FAS[] = "FAS"; +static const char __pyx_k_FCG[] = "FCG"; +static const char __pyx_k_FFT[] = "FFT"; +static const char __pyx_k_FRB[] = "FRB"; +static const char __pyx_k_GCR[] = "GCR"; +static const char __pyx_k_GEO[] = "GEO"; +static const char __pyx_k_HIP[] = "HIP"; +static const char __pyx_k_HMG[] = "HMG"; +static const char __pyx_k_ICC[] = "ICC"; +static const char __pyx_k_ILU[] = "ILU"; +static const char __pyx_k_INF[] = "INF"; +static const char __pyx_k_IPM[] = "IPM"; +static const char __pyx_k_KLU[] = "KLU"; +static const char __pyx_k_KSP[] = "KSP"; +static const char __pyx_k_LCD[] = "LCD"; +static const char __pyx_k_LCL[] = "LCL"; +static const char __pyx_k_LRC[] = "LRC"; +static const char __pyx_k_LSC[] = "LSC"; +static const char __pyx_k_Log[] = "Log"; +static const char __pyx_k_MAT[] = "MAT"; +static const char __pyx_k_MAX[] = "MAX"; +static const char __pyx_k_MPI[] = "MPI"; +static const char __pyx_k_Mat[] = "Mat"; +static const char __pyx_k_N12[] = "N12"; +static const char __pyx_k_NCG[] = "NCG"; +static const char __pyx_k_NGS[] = "NGS"; +static const char __pyx_k_NLS[] = "NLS"; +static const char __pyx_k_NTL[] = "NTL"; +static const char __pyx_k_NTR[] = "NTR"; +static const char __pyx_k_OWD[] = "OWD"; +static const char __pyx_k_PIC[] = "PIC"; +static const char __pyx_k_QCG[] = "QCG"; +static const char __pyx_k_QMD[] = "QMD"; +static const char __pyx_k_RCM[] = "RCM"; +static const char __pyx_k_RK3[] = "RK3"; +static const char __pyx_k_RK4[] = "RK4"; +static const char __pyx_k_SEQ[] = "SEQ"; +static const char __pyx_k_SOR[] = "SOR"; +static const char __pyx_k_SPD[] = "SPD"; +static const char __pyx_k_SSP[] = "SSP"; +static const char __pyx_k_SUM[] = "SUM"; +static const char __pyx_k_SVD[] = "SVD"; +static const char __pyx_k_Sys[] = "Sys"; +static const char __pyx_k_TAO[] = "TAO"; +static const char __pyx_k_TFS[] = "TFS"; +static const char __pyx_k_T_2[] = "T{"; + static const char __pyx_k_VTK[] = "VTK"; + static const char __pyx_k_Vec[] = "Vec"; + static const char __pyx_k_WBM[] = "WBM"; + static const char __pyx_k_WXY[] = "WXY"; + static const char __pyx_k__13[] = "\n"; + static const char __pyx_k__14[] = ","; + static const char __pyx_k__20[] = "."; + static const char __pyx_k__57[] = ":"; + static const char __pyx_k__78[] = "^"; +static const char __pyx_k__79[] = "}"; +static const char __pyx_k_a_2[] = "a+"; +static const char __pyx_k_adj[] = "adj"; +static const char __pyx_k_all[] = "all"; +static const char __pyx_k_app[] = "app"; +static const char __pyx_k_aux[] = "aux"; +static const char __pyx_k_box[] = "box"; +static const char __pyx_k_c_d[] = "=%c%d"; +static const char __pyx_k_col[] = "col"; +static const char __pyx_k_csr[] = "csr"; +static const char __pyx_k_d_s[] = "[%*d] %s"; +static const char __pyx_k_dim[] = "dim"; +static const char __pyx_k_div[] = "div"; +static const char __pyx_k_dmf[] = "dmf"; +static const char __pyx_k_dms[] = "dms"; +static const char __pyx_k_doc[] = "__doc__"; +static const char __pyx_k_dof[] = "dof"; +static const char __pyx_k_end[] = "end"; +static const char __pyx_k_eta[] = "eta"; +static const char __pyx_k_fix[] = "fix"; +static const char __pyx_k_flg[] = "flg"; +static const char __pyx_k_get[] = "__get__"; +static const char __pyx_k_has[] = "has"; +static const char __pyx_k_idx[] = "idx"; +static const char __pyx_k_int[] = "int"; +static const char __pyx_k_its[] = "its"; +static const char __pyx_k_ksp[] = "ksp"; +static const char __pyx_k_l2l[] = "l2l"; +static const char __pyx_k_lda[] = "lda"; +static const char __pyx_k_loc[] = "loc"; +static const char __pyx_k_mat[] = "mat"; +static const char __pyx_k_max[] = "max"; +static const char __pyx_k_min[] = "min"; +static const char __pyx_k_mit[] = "mit"; +static const char __pyx_k_msg[] = "msg"; +static const char __pyx_k_new[] = "__new__"; +static const char __pyx_k_ngs[] = "ngs"; +static const char __pyx_k_nnz[] = "nnz"; +static const char __pyx_k_nsd[] = "nsd"; +static const char __pyx_k_nsp[] = "nsp"; +static const char __pyx_k_obj[] = "obj"; +static const char __pyx_k_out[] = "out"; +static const char __pyx_k_ozz[] = "ozz"; +static const char __pyx_k_pop[] = "pop"; +static const char __pyx_k_pre[] = "pre"; +static const char __pyx_k_r_2[] = "r+"; +static const char __pyx_k_red[] = "red"; +static const char __pyx_k_res[] = "res"; +static const char __pyx_k_rhs[] = "rhs"; +static const char __pyx_k_row[] = "row"; +static const char __pyx_k_s_2[] = "s"; +static const char __pyx_k_s_3[] = "(%s)"; +static const char __pyx_k_s_s[] = "-%s%s"; +static const char __pyx_k_sec[] = "sec"; +static const char __pyx_k_sep[] = "sep"; +static const char __pyx_k_str[] = "__str__"; +static const char __pyx_k_sub[] = "sub"; +static const char __pyx_k_sym[] = "sym"; +static const char __pyx_k_sys[] = "sys"; +static const char __pyx_k_tab[] = "tab"; +static const char __pyx_k_tol[] = "tol"; +static const char __pyx_k_typ[] = "typ"; +static const char __pyx_k_uis[] = "uis"; +static const char __pyx_k_val[] = "val"; +static const char __pyx_k_vec[] = "vec"; +static const char __pyx_k_vlg[] = "vlg"; +static const char __pyx_k_w_2[] = "w+"; +static const char __pyx_k_zoz[] = "zoz"; +static const char __pyx_k_zzo[] = "zzo"; +static const char __pyx_k_ADMM[] = "ADMM"; +static const char __pyx_k_ALMM[] = "ALMM"; +static const char __pyx_k_BACK[] = "BACK"; +static const char __pyx_k_BAIJ[] = "BAIJ"; +static const char __pyx_k_BCGS[] = "BCGS"; +static const char __pyx_k_BDDC[] = "BDDC"; +static const char __pyx_k_BFBT[] = "BFBT"; +static const char __pyx_k_BICG[] = "BICG"; +static const char __pyx_k_BMRM[] = "BMRM"; +static const char __pyx_k_BNCG[] = "BNCG"; +static const char __pyx_k_BNLS[] = "BNLS"; +static const char __pyx_k_BNTL[] = "BNTL"; +static const char __pyx_k_BNTR[] = "BNTR"; +static const char __pyx_k_BRGN[] = "BRGN"; +static const char __pyx_k_CGLS[] = "CGLS"; +static const char __pyx_k_CGNE[] = "CGNE"; +static const char __pyx_k_CUDA[] = "CUDA"; +static const char __pyx_k_Comm[] = "Comm"; +static const char __pyx_k_DB16[] = "DB16"; +static const char __pyx_k_DIAG[] = "DIAG"; +static const char __pyx_k_DMDA[] = "DMDA"; +static const char __pyx_k_DOWN[] = "DOWN"; +static const char __pyx_k_DRAW[] = "DRAW"; +static const char __pyx_k_DROP[] = "DROP"; +static const char __pyx_k_ESSL[] = "ESSL"; +static const char __pyx_k_FFTW[] = "FFTW"; +static const char __pyx_k_FULL[] = "FULL"; +static const char __pyx_k_Free[] = "Free"; +static const char __pyx_k_GAMG[] = "GAMG"; +static const char __pyx_k_GASM[] = "GASM"; +static const char __pyx_k_GLEE[] = "GLEE"; +static const char __pyx_k_GLLE[] = "GLLE"; +static const char __pyx_k_GLTR[] = "GLTR"; +static const char __pyx_k_GPCG[] = "GPCG"; +static const char __pyx_k_HAAR[] = "HAAR"; +static const char __pyx_k_HALF[] = "HALF"; +static const char __pyx_k_HASH[] = "HASH"; +static const char __pyx_k_HDF5[] = "HDF5"; +static const char __pyx_k_HOST[] = "HOST"; +static const char __pyx_k_KAIJ[] = "KAIJ"; +static const char __pyx_k_LEFT[] = "LEFT"; +static const char __pyx_k_LMVM[] = "LMVM"; +static const char __pyx_k_LSQR[] = "LSQR"; +static const char __pyx_k_Left[] = "Left"; +static const char __pyx_k_MAIJ[] = "MAIJ"; +static const char __pyx_k_MASK[] = "MASK"; +static const char __pyx_k_MFFD[] = "MFFD"; +static const char __pyx_k_MOAB[] = "MOAB"; +static const char __pyx_k_MPRK[] = "MPRK"; +static const char __pyx_k_Mode[] = "Mode"; +static const char __pyx_k_NASH[] = "NASH"; +static const char __pyx_k_NASM[] = "NASM"; +static const char __pyx_k_NEST[] = "NEST"; +static const char __pyx_k_NONE[] = "NONE"; +static const char __pyx_k_PFMG[] = "PFMG"; +static const char __pyx_k_PLEX[] = "PLEX"; +static const char __pyx_k_PtAP[] = "PtAP"; +static const char __pyx_k_Quad[] = "Quad"; +static const char __pyx_k_RAND[] = "RAND"; +static const char __pyx_k_RARt[] = "RARt"; +static const char __pyx_k_READ[] = "READ"; +static const char __pyx_k_RK2A[] = "RK2A"; +static const char __pyx_k_RK2B[] = "RK2B"; +static const char __pyx_k_RK5F[] = "RK5F"; +static const char __pyx_k_ROSW[] = "ROSW"; +static const char __pyx_k_SAME[] = "SAME"; +static const char __pyx_k_SAWS[] = "SAWS"; +static const char __pyx_k_SELF[] = "SELF"; +static const char __pyx_k_SELL[] = "SELL"; +static const char __pyx_k_SNES[] = "SNES"; +static const char __pyx_k_SPAI[] = "SPAI"; +static const char __pyx_k_SPQR[] = "SPQR"; +static const char __pyx_k_STAG[] = "STAG"; +static const char __pyx_k_STAR[] = "STAR"; +static const char __pyx_k_STCG[] = "STCG"; +static const char __pyx_k_SYCL[] = "SYCL"; +static const char __pyx_k_SYNC[] = "SYNC"; +static const char __pyx_k_Side[] = "Side"; +static const char __pyx_k_Size[] = "Size"; +static const char __pyx_k_TRON[] = "TRON"; +static const char __pyx_k_TRUE[] = "TRUE"; +static const char __pyx_k_Type[] = "Type"; +static const char __pyx_k_USER[] = "USER"; +static const char __pyx_k_addv[] = "addv"; +static const char __pyx_k_args[] = "args"; +static const char __pyx_k_atol[] = "atol"; +static const char __pyx_k_attr[] = "attr"; +static const char __pyx_k_axpy[] = "axpy"; +static const char __pyx_k_back[] = "back"; +static const char __pyx_k_base[] = "base"; +static const char __pyx_k_beta[] = "beta"; +static const char __pyx_k_bits[] = "bits"; +static const char __pyx_k_bndr[] = "bndr"; +static const char __pyx_k_cell[] = "cell"; +static const char __pyx_k_cgid[] = "cgid"; +static const char __pyx_k_cmap[] = "cmap"; +static const char __pyx_k_code[] = "code"; +static const char __pyx_k_cols[] = "cols"; +static const char __pyx_k_comm[] = "comm"; +static const char __pyx_k_comp[] = "comp"; +static const char __pyx_k_cone[] = "cone"; +static const char __pyx_k_copy[] = "copy"; +static const char __pyx_k_data[] = "data"; +static const char __pyx_k_date[] = "date"; +static const char __pyx_k_dctx[] = "dctx"; +static const char __pyx_k_diag[] = "diag"; +static const char __pyx_k_dict[] = "__dict__"; +static const char __pyx_k_dims[] = "dims"; +static const char __pyx_k_disc[] = "disc"; +static const char __pyx_k_dist[] = "dist"; +static const char __pyx_k_dmTo[] = "dmTo"; +static const char __pyx_k_dofs[] = "dofs"; +static const char __pyx_k_down[] = "down"; +static const char __pyx_k_drop[] = "drop"; +static const char __pyx_k_exec[] = "exec"; +static const char __pyx_k_exit[] = "__exit__"; +static const char __pyx_k_fact[] = "fact"; +static const char __pyx_k_fget[] = "fget"; +static const char __pyx_k_file[] = "__file__"; +static const char __pyx_k_fill[] = "fill"; +static const char __pyx_k_flag[] = "flag"; +static const char __pyx_k_flip[] = "flip"; +static const char __pyx_k_func[] = "func"; +static const char __pyx_k_gord[] = "gord"; +static const char __pyx_k_gsec[] = "gsec"; +static const char __pyx_k_gtol[] = "gtol"; +static const char __pyx_k_gvec[] = "gvec"; +static const char __pyx_k_hmax[] = "hmax"; +static const char __pyx_k_hmin[] = "hmin"; +static const char __pyx_k_idxm[] = "idxm"; +static const char __pyx_k_ierr[] = "ierr"; +static const char __pyx_k_imag[] = "imag"; +static const char __pyx_k_imex[] = "imex"; +static const char __pyx_k_info[] = "info"; +static const char __pyx_k_init[] = "__init__"; +static const char __pyx_k_iset[] = "iset"; +static const char __pyx_k_ival[] = "ival"; +static const char __pyx_k_join[] = "join"; +static const char __pyx_k_keys[] = "keys"; +static const char __pyx_k_kind[] = "kind"; +static const char __pyx_k_left[] = "left"; +static const char __pyx_k_lits[] = "lits"; +static const char __pyx_k_locC[] = "locC"; +static const char __pyx_k_locX[] = "locX"; +static const char __pyx_k_locs[] = "locs"; +static const char __pyx_k_ltog[] = "ltog"; +static const char __pyx_k_ltol[] = "ltol"; +static const char __pyx_k_lvec[] = "lvec"; +static const char __pyx_k_main[] = "__main__"; +static const char __pyx_k_mats[] = "mats"; +static const char __pyx_k_memo[] = "memo"; +static const char __pyx_k_mode[] = "mode"; +static const char __pyx_k_mult[] = "mult"; +static const char __pyx_k_name[] = "name"; +static const char __pyx_k_ndim[] = "ndim"; +static const char __pyx_k_nmax[] = "nmax"; +static const char __pyx_k_nmin[] = "nmin"; +static const char __pyx_k_none[] = "none"; +static const char __pyx_k_norm[] = "norm"; +static const char __pyx_k_null[] = "null"; +static const char __pyx_k_onnz[] = "onnz"; +static const char __pyx_k_open[] = "open"; +static const char __pyx_k_opts[] = "opts"; +static const char __pyx_k_pEnd[] = "pEnd"; +static const char __pyx_k_pack[] = "pack"; +static const char __pyx_k_part[] = "part"; +static const char __pyx_k_perm[] = "perm"; +static const char __pyx_k_ptap[] = "ptap"; +static const char __pyx_k_push[] = "push"; +static const char __pyx_k_quad[] = "quad"; +static const char __pyx_k_rank[] = "rank"; +static const char __pyx_k_read[] = "read"; +static const char __pyx_k_real[] = "real"; +static const char __pyx_k_repr[] = "__repr__"; +static const char __pyx_k_rmap[] = "rmap"; +static const char __pyx_k_rows[] = "rows"; +static const char __pyx_k_rtol[] = "rtol"; +static const char __pyx_k_seed[] = "seed"; +static const char __pyx_k_self[] = "self"; +static const char __pyx_k_sfxc[] = "sfxc"; +static const char __pyx_k_side[] = "side"; +static const char __pyx_k_size[] = "size"; +static const char __pyx_k_skip[] = "skip"; +static const char __pyx_k_snes[] = "snes"; +static const char __pyx_k_star[] = "star"; +static const char __pyx_k_step[] = "step"; +static const char __pyx_k_stol[] = "stol"; +static const char __pyx_k_stop[] = "stop"; +static const char __pyx_k_supp[] = "supp"; +static const char __pyx_k_tabs[] = "tabs"; +static const char __pyx_k_time[] = "time"; +static const char __pyx_k_uaux[] = "uaux"; +static const char __pyx_k_unit[] = "unit"; +static const char __pyx_k_vecs[] = "vecs"; +static const char __pyx_k_view[] = "view"; +static const char __pyx_k_vtol[] = "vtol"; +static const char __pyx_k_xdot[] = "xdot"; +static const char __pyx_k_xmax[] = "xmax"; +static const char __pyx_k_xmin[] = "xmin"; +static const char __pyx_k_ymax[] = "ymax"; +static const char __pyx_k_ymin[] = "ymin"; +static const char __pyx_k_zmax[] = "zmax"; +static const char __pyx_k_zmin[] = "zmin"; +static const char __pyx_k_ADIOS[] = "ADIOS"; +static const char __pyx_k_ALPHA[] = "ALPHA"; +static const char __pyx_k_ASCII[] = "ASCII"; +static const char __pyx_k_ASFLS[] = "ASFLS"; +static const char __pyx_k_ASILS[] = "ASILS"; +static const char __pyx_k_ASPIN[] = "ASPIN"; +static const char __pyx_k_BASIC[] = "BASIC"; +static const char __pyx_k_BCGSL[] = "BCGSL"; +static const char __pyx_k_BLMVM[] = "BLMVM"; +static const char __pyx_k_BLOCK[] = "BLOCK"; +static const char __pyx_k_BQNLS[] = "BQNLS"; +static const char __pyx_k_BQPIP[] = "BQPIP"; +static const char __pyx_k_CHACO[] = "CHACO"; +static const char __pyx_k_Class[] = "Class"; +static const char __pyx_k_Clone[] = "Clone"; +static const char __pyx_k_DENSE[] = "DENSE"; +static const char __pyx_k_DUMMY[] = "DUMMY"; +static const char __pyx_k_EIMEX[] = "EIMEX"; +static const char __pyx_k_EULER[] = "EULER"; +static const char __pyx_k_Error[] = "Error"; +static const char __pyx_k_Event[] = "Event"; +static const char __pyx_k_FALSE[] = "FALSE"; +static const char __pyx_k_FBCGS[] = "FBCGS"; +static const char __pyx_k_FINAL[] = "FINAL"; +static const char __pyx_k_FLUSH[] = "FLUSH"; +static const char __pyx_k_FRONT[] = "FRONT"; +static const char __pyx_k_GLVIS[] = "GLVIS"; +static const char __pyx_k_GMRES[] = "GMRES"; +static const char __pyx_k_HPDDM[] = "HPDDM"; +static const char __pyx_k_HYPRE[] = "HYPRE"; +static const char __pyx_k_IBCGS[] = "IBCGS"; +static const char __pyx_k_LGMap[] = "LGMap"; +static const char __pyx_k_LOCAL[] = "LOCAL"; +static const char __pyx_k_LOWER[] = "LOWER"; +static const char __pyx_k_LUSOL[] = "LUSOL"; +static const char __pyx_k_MEYER[] = "MEYER"; +static const char __pyx_k_MIMEX[] = "MIMEX"; +static const char __pyx_k_MUMPS[] = "MUMPS"; +static const char __pyx_k_ND_Pi[] = "ND_Pi"; +static const char __pyx_k_OWLQN[] = "OWLQN"; +static const char __pyx_k_P4EST[] = "P4EST"; +static const char __pyx_k_P8EST[] = "P8EST"; +static const char __pyx_k_PARMS[] = "PARMS"; +static const char __pyx_k_PATCH[] = "PATCH"; +static const char __pyx_k_PDIPM[] = "PDIPM"; +static const char __pyx_k_PETSC[] = "PETSC"; +static const char __pyx_k_POINT[] = "POINT"; +static const char __pyx_k_Print[] = "Print"; +static const char __pyx_k_RIGHT[] = "RIGHT"; +static const char __pyx_k_RK1FE[] = "RK1FE"; +static const char __pyx_k_RK3BS[] = "RK3BS"; +static const char __pyx_k_RK5BS[] = "RK5BS"; +static const char __pyx_k_RK5DP[] = "RK5DP"; +static const char __pyx_k_RK6VR[] = "RK6VR"; +static const char __pyx_k_RK7VR[] = "RK7VR"; +static const char __pyx_k_RK8VR[] = "RK8VR"; +static const char __pyx_k_RT_Pi[] = "RT_Pi"; +static const char __pyx_k_Right[] = "Right"; +static const char __pyx_k_SBAIJ[] = "SBAIJ"; +static const char __pyx_k_SCHUR[] = "SCHUR"; +static const char __pyx_k_SELFP[] = "SELFP"; +static const char __pyx_k_SHELL[] = "SHELL"; +static const char __pyx_k_SPRNG[] = "SPRNG"; +static const char __pyx_k_SSFLS[] = "SSFLS"; +static const char __pyx_k_SSILS[] = "SSILS"; +static const char __pyx_k_SWARM[] = "SWARM"; +static const char __pyx_k_Space[] = "Space"; +static const char __pyx_k_Stage[] = "Stage"; +static const char __pyx_k_TCQMR[] = "TCQMR"; +static const char __pyx_k_TFQMR[] = "TFQMR"; +static const char __pyx_k_THETA[] = "THETA"; +static const char __pyx_k_THIRD[] = "THIRD"; +static const char __pyx_k_TSIRM[] = "TSIRM"; +static const char __pyx_k_TWIST[] = "TWIST"; +static const char __pyx_k_UPPER[] = "UPPER"; +static const char __pyx_k_VANKA[] = "VANKA"; +static const char __pyx_k_WRITE[] = "WRITE"; +static const char __pyx_k_a_max[] = "a_max"; +static const char __pyx_k_abort[] = "abort"; +static const char __pyx_k_alpha[] = "alpha"; +static const char __pyx_k_apply[] = "apply"; +static const char __pyx_k_array[] = "array"; +static const char __pyx_k_begin[] = "begin"; +static const char __pyx_k_bsize[] = "bsize"; +static const char __pyx_k_catol[] = "catol"; +static const char __pyx_k_ccomm[] = "ccomm"; +static const char __pyx_k_cdctx[] = "cdctx"; +static const char __pyx_k_cells[] = "cells"; +static const char __pyx_k_class[] = "__class__"; +static const char __pyx_k_cnorm[] = "cnorm"; +static const char __pyx_k_comms[] = "comms"; +static const char __pyx_k_count[] = "count"; +static const char __pyx_k_crank[] = "crank"; +static const char __pyx_k_crtol[] = "crtol"; +static const char __pyx_k_csize[] = "csize"; +static const char __pyx_k_ctype[] = "ctype"; +static const char __pyx_k_dense[] = "dense"; +static const char __pyx_k_devel[] = "devel"; +static const char __pyx_k_dtcol[] = "dtcol"; +static const char __pyx_k_dtype[] = "dtype"; +static const char __pyx_k_emacs[] = "emacs"; +static const char __pyx_k_enter[] = "__enter__"; +static const char __pyx_k_entry[] = "entry"; +static const char __pyx_k_error[] = "error"; +static const char __pyx_k_exoid[] = "exoid"; +static const char __pyx_k_faces[] = "faces"; +static const char __pyx_k_field[] = "field"; +static const char __pyx_k_first[] = "first"; +static const char __pyx_k_flags[] = "flags"; +static const char __pyx_k_flops[] = "flops"; +static const char __pyx_k_flush[] = "flush"; +static const char __pyx_k_fnorm[] = "fnorm"; +static const char __pyx_k_force[] = "force"; +static const char __pyx_k_front[] = "front"; +static const char __pyx_k_gamma[] = "gamma"; +static const char __pyx_k_gatol[] = "gatol"; +static const char __pyx_k_getDM[] = "getDM"; +static const char __pyx_k_getDS[] = "getDS"; +static const char __pyx_k_getPC[] = "getPC"; +static const char __pyx_k_get_2[] = "get"; +static const char __pyx_k_group[] = "group"; +static const char __pyx_k_grtol[] = "grtol"; +static const char __pyx_k_gttol[] = "gttol"; +static const char __pyx_k_h_max[] = "h_max"; +static const char __pyx_k_h_min[] = "h_min"; +static const char __pyx_k_hausd[] = "hausd"; +static const char __pyx_k_icntl[] = "icntl"; +static const char __pyx_k_imode[] = "imode"; +static const char __pyx_k_index[] = "index"; +static const char __pyx_k_is_to[] = "is_to"; +static const char __pyx_k_iscol[] = "iscol"; +static const char __pyx_k_isets[] = "isets"; +static const char __pyx_k_isrow[] = "isrow"; +static const char __pyx_k_kargs[] = "kargs"; +static const char __pyx_k_klass[] = "klass"; +static const char __pyx_k_label[] = "label"; +static const char __pyx_k_lanes[] = "lanes"; +static const char __pyx_k_level[] = "level"; +static const char __pyx_k_lgmap[] = "lgmap"; +static const char __pyx_k_local[] = "local"; +static const char __pyx_k_lower[] = "lower"; +static const char __pyx_k_lvecs[] = "lvecs"; +static const char __pyx_k_major[] = "major"; +static const char __pyx_k_minor[] = "minor"; +static const char __pyx_k_model[] = "model"; +static const char __pyx_k_omega[] = "omega"; +static const char __pyx_k_order[] = "order"; +static const char __pyx_k_other[] = "other"; +static const char __pyx_k_otype[] = "otype"; +static const char __pyx_k_petsc[] = "petsc"; +static const char __pyx_k_point[] = "point"; +static const char __pyx_k_primv[] = "primv"; +static const char __pyx_k_ptype[] = "ptype"; +static const char __pyx_k_range[] = "range"; +static const char __pyx_k_ready[] = "ready"; +static const char __pyx_k_reset[] = "reset"; +static const char __pyx_k_reuse[] = "reuse"; +static const char __pyx_k_right[] = "right"; +static const char __pyx_k_rnorm[] = "rnorm"; +static const char __pyx_k_scale[] = "scale"; +static const char __pyx_k_setDM[] = "setDM"; +static const char __pyx_k_setDS[] = "setDS"; +static const char __pyx_k_setUp[] = "setUp"; +static const char __pyx_k_setup[] = "setup"; +static const char __pyx_k_shape[] = "shape"; +static const char __pyx_k_shift[] = "shift"; +static const char __pyx_k_sizes[] = "sizes"; +static const char __pyx_k_sleep[] = "sleep"; +static const char __pyx_k_solve[] = "solve"; +static const char __pyx_k_split[] = "split"; +static const char __pyx_k_stage[] = "stage"; +static const char __pyx_k_start[] = "start"; +static const char __pyx_k_state[] = "state"; +static const char __pyx_k_strip[] = "strip"; +static const char __pyx_k_subdm[] = "subdm"; +static const char __pyx_k_subsp[] = "subsp"; +static const char __pyx_k_theta[] = "theta"; +static const char __pyx_k_title[] = "title"; +static const char __pyx_k_toAll[] = "toAll"; +static const char __pyx_k_trans[] = "trans"; +static const char __pyx_k_tspan[] = "tspan"; +static const char __pyx_k_twist[] = "twist"; +static const char __pyx_k_upper[] = "upper"; +static const char __pyx_k_value[] = "value"; +static const char __pyx_k_vecTo[] = "vecTo"; +static const char __pyx_k_width[] = "width"; +static const char __pyx_k_wraps[] = "wraps"; +static const char __pyx_k_write[] = "write"; +static const char __pyx_k_xnorm[] = "xnorm"; +static const char __pyx_k_ynorm[] = "ynorm"; +static const char __pyx_k_ADD_BC[] = "ADD_BC"; +static const char __pyx_k_AIJCRL[] = "AIJCRL"; +static const char __pyx_k_AIJMKL[] = "AIJMKL"; +static const char __pyx_k_ALPHA2[] = "ALPHA2"; +static const char __pyx_k_ALWAYS[] = "ALWAYS"; +static const char __pyx_k_AOType[] = "AOType"; +static const char __pyx_k_APPEND[] = "APPEND"; +static const char __pyx_k_BEULER[] = "BEULER"; +static const char __pyx_k_BINARY[] = "BINARY"; +static const char __pyx_k_BQNKLS[] = "BQNKLS"; +static const char __pyx_k_BQNKTL[] = "BQNKTL"; +static const char __pyx_k_BQNKTR[] = "BQNKTR"; +static const char __pyx_k_DECIDE[] = "DECIDE"; +static const char __pyx_k_DGMRES[] = "DGMRES"; +static const char __pyx_k_DMPlex[] = "DMPlex"; +static const char __pyx_k_DMStag[] = "DMStag"; +static const char __pyx_k_DMType[] = "DMType"; +static const char __pyx_k_DSType[] = "DSType"; +static const char __pyx_k_Device[] = "Device"; +static const char __pyx_k_EXOTIC[] = "EXOTIC"; +static const char __pyx_k_FAILED[] = "FAILED"; +static const char __pyx_k_FBCGSR[] = "FBCGSR"; +static const char __pyx_k_FETIDP[] = "FETIDP"; +static const char __pyx_k_FEType[] = "FEType"; +static const char __pyx_k_FGMRES[] = "FGMRES"; +static const char __pyx_k_FOREST[] = "FOREST"; +static const char __pyx_k_Format[] = "Format"; +static const char __pyx_k_GATHER[] = "GATHER"; +static const char __pyx_k_H2OPUS[] = "H2OPUS"; +static const char __pyx_k_INSERT[] = "INSERT"; +static const char __pyx_k_ISType[] = "ISType"; +static const char __pyx_k_JACOBI[] = "JACOBI"; +static const char __pyx_k_KOKKOS[] = "KOKKOS"; +static const char __pyx_k_LGMRES[] = "LGMRES"; +static const char __pyx_k_LINEAR[] = "LINEAR"; +static const char __pyx_k_MATLAB[] = "MATLAB"; +static const char __pyx_k_MGType[] = "MGType"; +static const char __pyx_k_MINRES[] = "MINRES"; +static const char __pyx_k_MIRROR[] = "MIRROR"; +static const char __pyx_k_MPIADJ[] = "MPIADJ"; +static const char __pyx_k_MPIAIJ[] = "MPIAIJ"; +static const char __pyx_k_MPIHIP[] = "MPIHIP"; +static const char __pyx_k_NATIVE[] = "NATIVE"; +static const char __pyx_k_NGMRES[] = "NGMRES"; +static const char __pyx_k_NORMAL[] = "NORMAL"; +static const char __pyx_k_NORM_1[] = "NORM_1"; +static const char __pyx_k_NORM_2[] = "NORM_2"; +static const char __pyx_k_NOTSET[] = "NOTSET"; +static const char __pyx_k_OPENCL[] = "OPENCL"; +static const char __pyx_k_Object[] = "Object"; +static const char __pyx_k_Option[] = "Option"; +static const char __pyx_k_PASTIX[] = "PASTIX"; +static const char __pyx_k_PCSide[] = "PCSide"; +static const char __pyx_k_PCType[] = "PCType"; +static const char __pyx_k_PGMRES[] = "PGMRES"; +static const char __pyx_k_PIPECG[] = "PIPECG"; +static const char __pyx_k_PIPECR[] = "PIPECR"; +static const char __pyx_k_PSEUDO[] = "PSEUDO"; +static const char __pyx_k_PYTHON[] = "PYTHON"; +static const char __pyx_k_QMRCGS[] = "QMRCGS"; +static const char __pyx_k_RADAU5[] = "RADAU5"; +static const char __pyx_k_RAND48[] = "RAND48"; +static const char __pyx_k_RKType[] = "RKType"; +static const char __pyx_k_Random[] = "Random"; +static const char __pyx_k_Reason[] = "Reason"; +static const char __pyx_k_SEQAIJ[] = "SEQAIJ"; +static const char __pyx_k_SEQHIP[] = "SEQHIP"; +static const char __pyx_k_SFType[] = "SFType"; +static const char __pyx_k_SHARED[] = "SHARED"; +static const char __pyx_k_SIMPLE[] = "SIMPLE"; +static const char __pyx_k_SLICED[] = "SLICED"; +static const char __pyx_k_SOCKET[] = "SOCKET"; +static const char __pyx_k_STDERR[] = "STDERR"; +static const char __pyx_k_STDOUT[] = "STDOUT"; +static const char __pyx_k_STRIDE[] = "STRIDE"; +static const char __pyx_k_STRING[] = "STRING"; +static const char __pyx_k_SUBSET[] = "SUBSET"; +static const char __pyx_k_SYMMLQ[] = "SYMMLQ"; +static const char __pyx_k_TENSOR[] = "TENSOR"; +static const char __pyx_k_TSType[] = "TSType"; +static const char __pyx_k_UPDATE[] = "UPDATE"; +static const char __pyx_k_Viewer[] = "Viewer"; +static const char __pyx_k_WINDOW[] = "WINDOW"; +static const char __pyx_k_alpha2[] = "alpha2"; +static const char __pyx_k_alphas[] = "alphas"; +static const char __pyx_k_amount[] = "amount"; +static const char __pyx_k_appctx[] = "appctx"; +static const char __pyx_k_append[] = "append"; +static const char __pyx_k_atexit[] = "atexit"; +static const char __pyx_k_author[] = "author"; +static const char __pyx_k_buffer[] = "buffer"; +static const char __pyx_k_column[] = "column"; +static const char __pyx_k_coords[] = "coords"; +static const char __pyx_k_cratio[] = "cratio"; +static const char __pyx_k_create[] = "create"; +static const char __pyx_k_decode[] = "decode"; +static const char __pyx_k_decomp[] = "decomp"; +static const char __pyx_k_degree[] = "degree"; +static const char __pyx_k_design[] = "design"; +static const char __pyx_k_device[] = "device"; +static const char __pyx_k_divtol[] = "divtol"; +static const char __pyx_k_dlpack[] = "__dlpack__"; +static const char __pyx_k_dmtype[] = "dmtype"; +static const char __pyx_k_dosort[] = "dosort"; +static const char __pyx_k_dspace[] = "dspace"; +static const char __pyx_k_encode[] = "encode"; +static const char __pyx_k_eqtype[] = "eqtype"; +static const char __pyx_k_fields[] = "fields"; +static const char __pyx_k_format[] = "format"; +static const char __pyx_k_getDim[] = "getDim"; +static const char __pyx_k_getDof[] = "getDof"; +static const char __pyx_k_getKSP[] = "getKSP"; +static const char __pyx_k_getNPC[] = "getNPC"; +static const char __pyx_k_getRhs[] = "getRhs"; +static const char __pyx_k_ghosts[] = "ghosts"; +static const char __pyx_k_handle[] = "handle"; +static const char __pyx_k_ignore[] = "ignore"; +static const char __pyx_k_import[] = "__import__"; +static const char __pyx_k_intdim[] = "intdim"; +static const char __pyx_k_invert[] = "invert"; +static const char __pyx_k_iscols[] = "iscols"; +static const char __pyx_k_isperm[] = "isperm"; +static const char __pyx_k_isrows[] = "isrows"; +static const char __pyx_k_kwargs[] = "kwargs"; +static const char __pyx_k_lambda[] = ""; +static const char __pyx_k_length[] = "length"; +static const char __pyx_k_levels[] = "levels"; +static const char __pyx_k_lgmapc[] = "lgmapc"; +static const char __pyx_k_lgmapr[] = "lgmapr"; +static const char __pyx_k_max_it[] = "max_it"; +static const char __pyx_k_maxval[] = "maxval"; +static const char __pyx_k_memory[] = "memory"; +static const char __pyx_k_metric[] = "metric"; +static const char __pyx_k_mgtype[] = "mgtype"; +static const char __pyx_k_mirror[] = "mirror"; +static const char __pyx_k_module[] = "__module__"; +static const char __pyx_k_mpi4py[] = "mpi4py"; +static const char __pyx_k_name_2[] = "__name__"; +static const char __pyx_k_name_3[] = "name_"; +static const char __pyx_k_newsec[] = "newsec"; +static const char __pyx_k_newvec[] = "newvec"; +static const char __pyx_k_nlocal[] = "nlocal"; +static const char __pyx_k_noMove[] = "noMove"; +static const char __pyx_k_noSurf[] = "noSurf"; +static const char __pyx_k_noSwap[] = "noSwap"; +static const char __pyx_k_nroots[] = "nroots"; +static const char __pyx_k_numDof[] = "numDof"; +static const char __pyx_k_nzdiag[] = "nzdiag"; +static const char __pyx_k_object[] = "object"; +static const char __pyx_k_offset[] = "offset"; +static const char __pyx_k_option[] = "option"; +static const char __pyx_k_output[] = "output"; +static const char __pyx_k_pStart[] = "pStart"; +static const char __pyx_k_parent[] = "parent"; +static const char __pyx_k_pickle[] = "pickle"; +static const char __pyx_k_points[] = "points"; +static const char __pyx_k_prefix[] = "prefix"; +static const char __pyx_k_python[] = "python"; +static const char __pyx_k_qorder[] = "qorder"; +static const char __pyx_k_radius[] = "radius"; +static const char __pyx_k_random[] = "random"; +static const char __pyx_k_ranges[] = "ranges"; +static const char __pyx_k_reason[] = "reason"; +static const char __pyx_k_reduce[] = "__reduce__"; +static const char __pyx_k_refine[] = "refine"; +static const char __pyx_k_remote[] = "remote"; +static const char __pyx_k_remove[] = "remove"; +static const char __pyx_k_result[] = "result"; +static const char __pyx_k_rowmap[] = "rowmap"; +static const char __pyx_k_rscale[] = "rscale"; +static const char __pyx_k_rsplit[] = "rsplit"; +static const char __pyx_k_rtol_0[] = "rtol_0"; +static const char __pyx_k_setKSP[] = "setKSP"; +static const char __pyx_k_setNPC[] = "setNPC"; +static const char __pyx_k_solver[] = "solver"; +static const char __pyx_k_starts[] = "starts"; +static const char __pyx_k_stderr[] = "stderr"; +static const char __pyx_k_stdout[] = "stdout"; +static const char __pyx_k_strata[] = "strata"; +static const char __pyx_k_stream[] = "stream"; +static const char __pyx_k_string[] = "string"; +static const char __pyx_k_struct[] = "struct"; +static const char __pyx_k_submat[] = "submat"; +static const char __pyx_k_subvec[] = "subvec"; +static const char __pyx_k_svalue[] = "svalue"; +static const char __pyx_k_swidth[] = "swidth"; +static const char __pyx_k_tbline[] = "tbline"; +static const char __pyx_k_tblist[] = "tblist"; +static const char __pyx_k_tensor[] = "tensor"; +static const char __pyx_k_toZero[] = "toZero"; +static const char __pyx_k_toindx[] = "toindx"; +static const char __pyx_k_unpack[] = "unpack"; +static const char __pyx_k_update[] = "update"; +static const char __pyx_k_values[] = "values"; +static const char __pyx_k_vec_to[] = "vec_to"; +static const char __pyx_k_viewer[] = "viewer"; +static const char __pyx_k_weight[] = "weight"; +static const char __pyx_k_ADD_ALL[] = "ADD_ALL"; +static const char __pyx_k_AIJPERM[] = "AIJPERM"; +static const char __pyx_k_AIJSELL[] = "AIJSELL"; +static const char __pyx_k_ARKIMEX[] = "ARKIMEX"; +static const char __pyx_k_ASMType[] = "ASMType"; +static const char __pyx_k_BACK_UP[] = "BACK_UP"; +static const char __pyx_k_BAIJMKL[] = "BAIJMKL"; +static const char __pyx_k_BJACOBI[] = "BJACOBI"; +static const char __pyx_k_Barrier[] = "Barrier"; +static const char __pyx_k_CHOLMOD[] = "CHOLMOD"; +static const char __pyx_k_DEFAULT[] = "DEFAULT"; +static const char __pyx_k_DESTROY[] = "DESTROY"; +static const char __pyx_k_DMLabel[] = "DMLabel"; +static const char __pyx_k_DMShell[] = "DMShell"; +static const char __pyx_k_DMSwarm[] = "DMSwarm"; +static const char __pyx_k_DRAW_LG[] = "DRAW_LG"; +static const char __pyx_k_ELEMENT[] = "ELEMENT"; +static const char __pyx_k_EXTRUDE[] = "EXTRUDE"; +static const char __pyx_k_FORWARD[] = "FORWARD"; +static const char __pyx_k_GATHERV[] = "GATHERV"; +static const char __pyx_k_GENERAL[] = "GENERAL"; +static const char __pyx_k_GHOSTED[] = "GHOSTED"; +static const char __pyx_k_GROPPCG[] = "GROPPCG"; +static const char __pyx_k_IntType[] = "IntType"; +static const char __pyx_k_KASKADE[] = "KASKADE"; +static const char __pyx_k_KSPONLY[] = "KSPONLY"; +static const char __pyx_k_KSPType[] = "KSPType"; +static const char __pyx_k_LMVMDFP[] = "LMVMDFP"; +static const char __pyx_k_LMVMSR1[] = "LMVMSR1"; +static const char __pyx_k_MAPPING[] = "MAPPING"; +static const char __pyx_k_METISND[] = "METISND"; +static const char __pyx_k_MPIBAIJ[] = "MPIBAIJ"; +static const char __pyx_k_MPICUDA[] = "MPICUDA"; +static const char __pyx_k_MPIKAIJ[] = "MPIKAIJ"; +static const char __pyx_k_MPIMAIJ[] = "MPIMAIJ"; +static const char __pyx_k_MPISELL[] = "MPISELL"; +static const char __pyx_k_MapMode[] = "MapMode"; +static const char __pyx_k_MatType[] = "MatType"; +static const char __pyx_k_NATURAL[] = "NATURAL"; +static const char __pyx_k_NETWORK[] = "NETWORK"; +static const char __pyx_k_NOERROR[] = "NOERROR"; +static const char __pyx_k_NONZERO[] = "NONZERO"; +static const char __pyx_k_NO_SYNC[] = "NO_SYNC"; +static const char __pyx_k_NULLLOC[] = "NULLLOC"; +static const char __pyx_k_Options[] = "Options"; +static const char __pyx_k_PIPECG2[] = "PIPECG2"; +static const char __pyx_k_PIPEFCG[] = "PIPEFCG"; +static const char __pyx_k_PIPEGCR[] = "PIPEGCR"; +static const char __pyx_k_PIPELCG[] = "PIPELCG"; +static const char __pyx_k_PREONLY[] = "PREONLY"; +static const char __pyx_k_PRODUCT[] = "PRODUCT"; +static const char __pyx_k_PYRAMID[] = "PYRAMID"; +static const char __pyx_k_QUARTER[] = "QUARTER"; +static const char __pyx_k_REFINED[] = "REFINED"; +static const char __pyx_k_REVERSE[] = "REVERSE"; +static const char __pyx_k_SAME_NZ[] = "SAME_NZ"; +static const char __pyx_k_SCATTER[] = "SCATTER"; +static const char __pyx_k_SEGMENT[] = "SEGMENT"; +static const char __pyx_k_SEQBAIJ[] = "SEQBAIJ"; +static const char __pyx_k_SEQCUDA[] = "SEQCUDA"; +static const char __pyx_k_SEQKAIJ[] = "SEQKAIJ"; +static const char __pyx_k_SEQMAIJ[] = "SEQMAIJ"; +static const char __pyx_k_SEQSELL[] = "SEQSELL"; +static const char __pyx_k_SORType[] = "SORType"; +static const char __pyx_k_SPECIAL[] = "SPECIAL"; +static const char __pyx_k_SUPERLU[] = "SUPERLU"; +static const char __pyx_k_SYSPFMG[] = "SYSPFMG"; +static const char __pyx_k_Scatter[] = "Scatter"; +static const char __pyx_k_Section[] = "Section"; +static const char __pyx_k_Stencil[] = "Stencil"; +static const char __pyx_k_TAOType[] = "TAOType"; +static const char __pyx_k_UMFPACK[] = "UMFPACK"; +static const char __pyx_k_UNKNOWN[] = "UNKNOWN"; +static const char __pyx_k_UP_LEFT[] = "UP_LEFT"; +static const char __pyx_k_VTK_VTR[] = "VTK_VTR"; +static const char __pyx_k_VTK_VTS[] = "VTK_VTS"; +static const char __pyx_k_VTK_VTU[] = "VTK_VTU"; +static const char __pyx_k_VecType[] = "VecType"; +static const char __pyx_k_alpha_f[] = "alpha_f"; +static const char __pyx_k_alpha_m[] = "alpha_m"; +static const char __pyx_k_array_w[] = "array_w"; +static const char __pyx_k_asmtype[] = "asmtype"; +static const char __pyx_k_back_up[] = "back_up"; +static const char __pyx_k_barrier[] = "barrier"; +static const char __pyx_k_bcComps[] = "bcComps"; +static const char __pyx_k_bcField[] = "bcField"; +static const char __pyx_k_bdLabel[] = "bdLabel"; +static const char __pyx_k_bdlabel[] = "bdlabel"; +static const char __pyx_k_bdvalue[] = "bdvalue"; +static const char __pyx_k_coarsen[] = "coarsen"; +static const char __pyx_k_compile[] = "compile"; +static const char __pyx_k_conePos[] = "conePos"; +static const char __pyx_k_context[] = "context"; +static const char __pyx_k_default[] = "default"; +static const char __pyx_k_destroy[] = "destroy"; +static const char __pyx_k_display[] = "display"; +static const char __pyx_k_dm_type[] = "dm_type"; +static const char __pyx_k_ds_type[] = "ds_type"; +static const char __pyx_k_dtcount[] = "dtcount"; +static const char __pyx_k_element[] = "element"; +static const char __pyx_k_epsilon[] = "epsilon"; +static const char __pyx_k_fe_type[] = "fe_type"; +static const char __pyx_k_fortran[] = "fortran"; +static const char __pyx_k_forward[] = "forward"; +static const char __pyx_k_getComm[] = "getComm"; +static const char __pyx_k_getInfo[] = "getInfo"; +static const char __pyx_k_getName[] = "getName"; +static const char __pyx_k_getRank[] = "getRank"; +static const char __pyx_k_getSNES[] = "getSNES"; +static const char __pyx_k_getSeed[] = "getSeed"; +static const char __pyx_k_getSize[] = "getSize"; +static const char __pyx_k_getTime[] = "getTime"; +static const char __pyx_k_getType[] = "getType"; +static const char __pyx_k_getVecs[] = "getVecs"; +static const char __pyx_k_ghosted[] = "ghosted"; +static const char __pyx_k_hasName[] = "hasName"; +static const char __pyx_k_hessian[] = "hessian"; +static const char __pyx_k_indices[] = "indices"; +static const char __pyx_k_is_from[] = "is_from"; +static const char __pyx_k_is_type[] = "is_type"; +static const char __pyx_k_mallocs[] = "mallocs"; +static const char __pyx_k_matMult[] = "matMult"; +static const char __pyx_k_maxrank[] = "maxrank"; +static const char __pyx_k_memview[] = "memview"; +static const char __pyx_k_metric1[] = "metric1"; +static const char __pyx_k_metric2[] = "metric2"; +static const char __pyx_k_metric3[] = "metric3"; +static const char __pyx_k_monitor[] = "monitor"; +static const char __pyx_k_multAdd[] = "multAdd"; +static const char __pyx_k_nbsteps[] = "nbsteps"; +static const char __pyx_k_nlevels[] = "nlevels"; +static const char __pyx_k_nonzero[] = "nonzero"; +static const char __pyx_k_npoints[] = "npoints"; +static const char __pyx_k_numComp[] = "numComp"; +static const char __pyx_k_numIter[] = "numIter"; +static const char __pyx_k_nz_used[] = "nz_used"; +static const char __pyx_k_objgrad[] = "objgrad"; +static const char __pyx_k_ometric[] = "ometric"; +static const char __pyx_k_options[] = "options"; +static const char __pyx_k_overlap[] = "overlap"; +static const char __pyx_k_package[] = "package"; +static const char __pyx_k_pc_type[] = "pc_type"; +static const char __pyx_k_preStep[] = "preStep"; +static const char __pyx_k_prepare[] = "__prepare__"; +static const char __pyx_k_prestep[] = "prestep"; +static const char __pyx_k_py_type[] = "py_type"; +static const char __pyx_k_release[] = "release"; +static const char __pyx_k_replace[] = "replace"; +static const char __pyx_k_reshape[] = "reshape"; +static const char __pyx_k_restart[] = "restart"; +static const char __pyx_k_reverse[] = "reverse"; +static const char __pyx_k_rgLabel[] = "rgLabel"; +static const char __pyx_k_scatter[] = "scatter"; +static const char __pyx_k_seconds[] = "seconds"; +static const char __pyx_k_setName[] = "setName"; +static const char __pyx_k_setSeed[] = "setSeed"; +static const char __pyx_k_setTime[] = "setTime"; +static const char __pyx_k_setType[] = "setType"; +static const char __pyx_k_sf_type[] = "sf_type"; +static const char __pyx_k_simplex[] = "simplex"; +static const char __pyx_k_smooths[] = "smooths"; +static const char __pyx_k_sortype[] = "sortype"; +static const char __pyx_k_stratum[] = "stratum"; +static const char __pyx_k_strides[] = "strides"; +static const char __pyx_k_subcomm[] = "subcomm"; +static const char __pyx_k_submats[] = "submats"; +static const char __pyx_k_tr_type[] = "tr_type"; +static const char __pyx_k_trimmed[] = "trimmed"; +static const char __pyx_k_ts_type[] = "ts_type"; +static const char __pyx_k_typestr[] = "typestr"; +static const char __pyx_k_uniform[] = "uniform"; +static const char __pyx_k_unnamed[] = "unnamed"; +static const char __pyx_k_up_left[] = "up_left"; +static const char __pyx_k_useCone[] = "useCone"; +static const char __pyx_k_vectors[] = "vectors"; +static const char __pyx_k_version[] = "version"; +static const char __pyx_k_xdotdot[] = "xdotdot"; +static const char __pyx_k_ADDITIVE[] = "ADDITIVE"; +static const char __pyx_k_ADVANCED[] = "ADVANCED"; +static const char __pyx_k_ALLTOALL[] = "ALLTOALL"; +static const char __pyx_k_ANDERSON[] = "ANDERSON"; +static const char __pyx_k_ARKIMEX3[] = "ARKIMEX3"; +static const char __pyx_k_ARKIMEX4[] = "ARKIMEX4"; +static const char __pyx_k_ARKIMEX5[] = "ARKIMEX5"; +static const char __pyx_k_BALANCED[] = "BALANCED"; +static const char __pyx_k_BIORTH22[] = "BIORTH22"; +static const char __pyx_k_BLOCKMAT[] = "BLOCKMAT"; +static const char __pyx_k_CHOLESKY[] = "CHOLESKY"; +static const char __pyx_k_CUSPARSE[] = "CUSPARSE"; +static const char __pyx_k_DEFLATED[] = "DEFLATED"; +static const char __pyx_k_DISCGRAD[] = "DISCGRAD"; +static const char __pyx_k_DrawSize[] = "DrawSize"; +static const char __pyx_k_EXODUSII[] = "EXODUSII"; +static const char __pyx_k_EXPLICIT[] = "EXPLICIT"; +static const char __pyx_k_Ellipsis[] = "Ellipsis"; +static const char __pyx_k_FRONT_UP[] = "FRONT_UP"; +static const char __pyx_k_FV_GHOST[] = "FV_GHOST"; +static const char __pyx_k_FileMode[] = "FileMode"; +static const char __pyx_k_GALERKIN[] = "GALERKIN"; +static const char __pyx_k_GAMGType[] = "GAMGType"; +static const char __pyx_k_GASMType[] = "GASMType"; +static const char __pyx_k_GIT_Date[] = "GIT Date:"; +static const char __pyx_k_Get_rank[] = "Get_rank"; +static const char __pyx_k_Get_size[] = "Get_size"; +static const char __pyx_k_HDF5_MAT[] = "HDF5_MAT"; +static const char __pyx_k_HDF5_VIZ[] = "HDF5_VIZ"; +static const char __pyx_k_IMPLICIT[] = "IMPLICIT"; +static const char __pyx_k_INBLOCKS[] = "INBLOCKS"; +static const char __pyx_k_INFINITY[] = "INFINITY"; +static const char __pyx_k_InfoType[] = "InfoType"; +static const char __pyx_k_JoinMode[] = "JoinMode"; +static const char __pyx_k_KACZMARZ[] = "KACZMARZ"; +static const char __pyx_k_KeyError[] = "KeyError"; +static const char __pyx_k_LAGRANGE[] = "LAGRANGE"; +static const char __pyx_k_LMVMBFGS[] = "LMVMBFGS"; +static const char __pyx_k_LOCALREF[] = "LOCALREF"; +static const char __pyx_k_LogClass[] = "LogClass"; +static const char __pyx_k_LogEvent[] = "LogEvent"; +static const char __pyx_k_LogStage[] = "LogStage"; +static const char __pyx_k_MPIDENSE[] = "MPIDENSE"; +static const char __pyx_k_MPISBAIJ[] = "MPISBAIJ"; +static const char __pyx_k_NEIGHBOR[] = "NEIGHBOR"; +static const char __pyx_k_NEWTONLS[] = "NEWTONLS"; +static const char __pyx_k_NEWTONTR[] = "NEWTONTR"; +static const char __pyx_k_NOFORMAT[] = "NOFORMAT"; +static const char __pyx_k_NORM_MAX[] = "NORM_MAX"; +static const char __pyx_k_NormType[] = "NormType"; +static const char __pyx_k_PARMETIS[] = "PARMETIS"; +static const char __pyx_k_PBJACOBI[] = "PBJACOBI"; +static const char __pyx_k_PCMGType[] = "PCMGType"; +static const char __pyx_k_PERIODIC[] = "PERIODIC"; +static const char __pyx_k_PIPEBCGS[] = "PIPEBCGS"; +static const char __pyx_k_PIPECGRR[] = "PIPECGRR"; +static const char __pyx_k_PIPEPRCG[] = "PIPEPRCG"; +static const char __pyx_k_POUNDERS[] = "POUNDERS"; +static const char __pyx_k_PTRIMMED[] = "PTRIMMED"; +static const char __pyx_k_PTSCOTCH[] = "PTSCOTCH"; +static const char __pyx_k_RANDER48[] = "RANDER48"; +static const char __pyx_k_REFINE1D[] = "REFINE1D"; +static const char __pyx_k_RESTRICT[] = "RESTRICT"; +static const char __pyx_k_RealType[] = "RealType"; +static const char __pyx_k_SEQCUFFT[] = "SEQCUFFT"; +static const char __pyx_k_SEQDENSE[] = "SEQDENSE"; +static const char __pyx_k_SEQSBAIJ[] = "SEQSBAIJ"; +static const char __pyx_k_SNESType[] = "SNESType"; +static const char __pyx_k_SPECTRAL[] = "SPECTRAL"; +static const char __pyx_k_STANDARD[] = "STANDARD"; +static const char __pyx_k_STEPOVER[] = "STEPOVER"; +static const char __pyx_k_SUBSPACE[] = "SUBSPACE"; +static const char __pyx_k_SUNDIALS[] = "SUNDIALS"; +static const char __pyx_k_TRIANGLE[] = "TRIANGLE"; +static const char __pyx_k_TSRKType[] = "TSRKType"; +static const char __pyx_k_UP_RIGHT[] = "UP_RIGHT"; +static const char __pyx_k_VIENNACL[] = "VIENNACL"; +static const char __pyx_k_addFlops[] = "addFlops"; +static const char __pyx_k_assembly[] = "assembly"; +static const char __pyx_k_bcPoints[] = "bcPoints"; +static const char __pyx_k_boundary[] = "boundary"; +static const char __pyx_k_buffer_w[] = "buffer_w"; +static const char __pyx_k_builtins[] = "__builtins__"; +static const char __pyx_k_citation[] = "citation"; +static const char __pyx_k_constant[] = "constant"; +static const char __pyx_k_cpuarray[] = "cpuarray"; +static const char __pyx_k_debugger[] = "debugger"; +static const char __pyx_k_delValue[] = "delValue"; +static const char __pyx_k_dltensor[] = "dltensor"; +static const char __pyx_k_end_args[] = "end_args"; +static const char __pyx_k_enum2str[] = "__enum2str"; +static const char __pyx_k_filename[] = "filename"; +static const char __pyx_k_finalize[] = "_finalize"; +static const char __pyx_k_front_up[] = "front_up"; +static const char __pyx_k_function[] = "function"; +static const char __pyx_k_gamgtype[] = "gamgtype"; +static const char __pyx_k_gasmtype[] = "gasmtype"; +static const char __pyx_k_getArray[] = "getArray"; +static const char __pyx_k_getFlops[] = "getFlops"; +static const char __pyx_k_getSizes[] = "getSizes"; +static const char __pyx_k_getUseEW[] = "getUseEW"; +static const char __pyx_k_getUseFD[] = "getUseFD"; +static const char __pyx_k_getUseMF[] = "getUseMF"; +static const char __pyx_k_getValue[] = "getValue"; +static const char __pyx_k_getstate[] = "__getstate__"; +static const char __pyx_k_gradient[] = "gradient"; +static const char __pyx_k_hasLabel[] = "hasLabel"; +static const char __pyx_k_imagPart[] = "imagPart"; +static const char __pyx_k_inblocks[] = "inblocks"; +static const char __pyx_k_interior[] = "interior"; +static const char __pyx_k_interval[] = "interval"; +static const char __pyx_k_isActive[] = "isActive"; +static const char __pyx_k_isSorted[] = "isSorted"; +static const char __pyx_k_is_local[] = "is_local"; +static const char __pyx_k_isfields[] = "isfields"; +static const char __pyx_k_itemsize[] = "itemsize"; +static const char __pyx_k_jacobian[] = "jacobian"; +static const char __pyx_k_ksp_type[] = "ksp_type"; +static const char __pyx_k_leafdata[] = "leafdata"; +static const char __pyx_k_leafsize[] = "leafsize"; +static const char __pyx_k_localsec[] = "localsec"; +static const char __pyx_k_logFlops[] = "logFlops"; +static const char __pyx_k_matApply[] = "matApply"; +static const char __pyx_k_mat_type[] = "mat_type"; +static const char __pyx_k_max_time[] = "max_time"; +static const char __pyx_k_mpiabort[] = "mpiabort"; +static const char __pyx_k_noInsert[] = "noInsert"; +static const char __pyx_k_normtype[] = "normtype"; +static const char __pyx_k_nsubcomm[] = "nsubcomm"; +static const char __pyx_k_numProcs[] = "numProcs"; +static const char __pyx_k_only_and[] = "only '==' and '!='"; +static const char __pyx_k_operator[] = "operator"; +static const char __pyx_k_ord_type[] = "ord_type"; +static const char __pyx_k_parallel[] = "parallel"; +static const char __pyx_k_periodic[] = "periodic"; +static const char __pyx_k_plexname[] = "plexname"; +static const char __pyx_k_position[] = "position"; +static const char __pyx_k_postStep[] = "postStep"; +static const char __pyx_k_poststep[] = "poststep"; +static const char __pyx_k_preSolve[] = "preSolve"; +static const char __pyx_k_precheck[] = "precheck"; +static const char __pyx_k_property[] = "property"; +static const char __pyx_k_pyx_type[] = "__pyx_type"; +static const char __pyx_k_qualname[] = "__qualname__"; +static const char __pyx_k_readonly[] = "readonly"; +static const char __pyx_k_realPart[] = "realPart"; +static const char __pyx_k_refine_x[] = "refine_x"; +static const char __pyx_k_refine_y[] = "refine_y"; +static const char __pyx_k_refine_z[] = "refine_z"; +static const char __pyx_k_register[] = "register"; +static const char __pyx_k_residual[] = "residual"; +static const char __pyx_k_rnd_type[] = "rnd_type"; +static const char __pyx_k_rollback[] = "rollback"; +static const char __pyx_k_rootdata[] = "rootdata"; +static const char __pyx_k_rtol_max[] = "rtol_max"; +static const char __pyx_k_s_at_s_d[] = "%s() at %s:%d"; +static const char __pyx_k_selected[] = "selected"; +static const char __pyx_k_setSizes[] = "setSizes"; +static const char __pyx_k_setUseEW[] = "setUseEW"; +static const char __pyx_k_setUseFD[] = "setUseFD"; +static const char __pyx_k_setUseMF[] = "setUseMF"; +static const char __pyx_k_setValue[] = "setValue"; +static const char __pyx_k_setstate[] = "__setstate__"; +static const char __pyx_k_solveAdd[] = "solveAdd"; +static const char __pyx_k_stderr_2[] = "__stderr__"; +static const char __pyx_k_stdout_2[] = "__stdout__"; +static const char __pyx_k_subminor[] = "subminor"; +static const char __pyx_k_tao_type[] = "tao_type"; +static const char __pyx_k_timestep[] = "timestep"; +static const char __pyx_k_toDLPack[] = "toDLPack"; +static const char __pyx_k_up_right[] = "up_right"; +static const char __pyx_k_vec_from[] = "vec_from"; +static const char __pyx_k_vec_type[] = "vec_type"; +static const char __pyx_k_vwr_type[] = "vwr_type"; +static const char __pyx_k_ALLGATHER[] = "ALLGATHER"; +static const char __pyx_k_ARKIMEX2C[] = "ARKIMEX2C"; +static const char __pyx_k_ARKIMEX2D[] = "ARKIMEX2D"; +static const char __pyx_k_ARKIMEX2E[] = "ARKIMEX2E"; +static const char __pyx_k_ARKIMEXA2[] = "ARKIMEXA2"; +static const char __pyx_k_ARKIMEXL2[] = "ARKIMEXL2"; +static const char __pyx_k_ASCII_CSV[] = "ASCII_CSV"; +static const char __pyx_k_ASCII_VTK[] = "ASCII_VTK"; +static const char __pyx_k_ASCII_XML[] = "ASCII_XML"; +static const char __pyx_k_BACK_DOWN[] = "BACK_DOWN"; +static const char __pyx_k_BACK_LEFT[] = "BACK_LEFT"; +static const char __pyx_k_CHEBYSHEV[] = "CHEBYSHEV"; +static const char __pyx_k_CLASSICAL[] = "CLASSICAL"; +static const char __pyx_k_COMM_NULL[] = "COMM_NULL"; +static const char __pyx_k_COMM_SELF[] = "COMM_SELF"; +static const char __pyx_k_COMPOSITE[] = "COMPOSITE"; +static const char __pyx_k_DEFLATION[] = "DEFLATION"; +static const char __pyx_k_DENSECUDA[] = "DENSECUDA"; +static const char __pyx_k_DETERMINE[] = "DETERMINE"; +static const char __pyx_k_DIFFERENT[] = "DIFFERENT"; +static const char __pyx_k_DOWN_LEFT[] = "DOWN_LEFT"; +static const char __pyx_k_DualSpace[] = "DualSpace"; +static const char __pyx_k_EISENSTAT[] = "EISENSTAT"; +static const char __pyx_k_ELEMENTAL[] = "ELEMENTAL"; +static const char __pyx_k_FROBENIUS[] = "FROBENIUS"; +static const char __pyx_k_FULL_SIZE[] = "FULL_SIZE"; +static const char __pyx_k_GLMapMode[] = "GLMapMode"; +static const char __pyx_k_HALF_SIZE[] = "HALF_SIZE"; +static const char __pyx_k_HDF5_XDMF[] = "HDF5_XDMF"; +static const char __pyx_k_HERMITIAN[] = "HERMITIAN"; +static const char __pyx_k_INSERT_BC[] = "INSERT_BC"; +static const char __pyx_k_IS_buffer[] = "_IS_buffer"; +static const char __pyx_k_ITERATING[] = "ITERATING"; +static const char __pyx_k_LGMapType[] = "LGMapType"; +static const char __pyx_k_MATCHSTEP[] = "MATCHSTEP"; +static const char __pyx_k_MPIAIJCRL[] = "MPIAIJCRL"; +static const char __pyx_k_MPIAIJMKL[] = "MPIAIJMKL"; +static const char __pyx_k_MPIKOKKOS[] = "MPIKOKKOS"; +static const char __pyx_k_MPI_Error[] = "MPI Error "; +static const char __pyx_k_MatOption[] = "MatOption"; +static const char __pyx_k_NINFINITY[] = "NINFINITY"; +static const char __pyx_k_NONLINEAR[] = "NONLINEAR"; +static const char __pyx_k_NORM_NONE[] = "NORM_NONE"; +static const char __pyx_k_NullSpace[] = "NullSpace"; +static const char __pyx_k_PARDECOMP[] = "PARDECOMP"; +static const char __pyx_k_PCASMType[] = "PCASMType"; +static const char __pyx_k_PINFINITY[] = "PINFINITY"; +static const char __pyx_k_RANDOM123[] = "RANDOM123"; +static const char __pyx_k_REDUNDANT[] = "REDUNDANT"; +static const char __pyx_k_REFINESBR[] = "REFINESBR"; +static const char __pyx_k_ROWLENGTH[] = "ROWLENGTH"; +static const char __pyx_k_SCALAPACK[] = "SCALAPACK"; +static const char __pyx_k_SEQAIJCRL[] = "SEQAIJCRL"; +static const char __pyx_k_SEQAIJMKL[] = "SEQAIJMKL"; +static const char __pyx_k_SEQKOKKOS[] = "SEQKOKKOS"; +static const char __pyx_k_STRUMPACK[] = "STRUMPACK"; +static const char __pyx_k_SUBMATRIX[] = "SUBMATRIX"; +static const char __pyx_k_SUBSET_NZ[] = "SUBSET_NZ"; +static const char __pyx_k_SYMMETRIC[] = "SYMMETRIC"; +static const char __pyx_k_SpaceType[] = "SpaceType"; +static const char __pyx_k_Structure[] = "Structure"; +static const char __pyx_k_TELESCOPE[] = "TELESCOPE"; +static const char __pyx_k_TRANSPOSE[] = "TRANSPOSE"; +static const char __pyx_k_TRI_PRISM[] = "TRI_PRISM"; +static const char __pyx_k_TypeError[] = "TypeError"; +static const char __pyx_k_VPBJACOBI[] = "VPBJACOBI"; +static const char __pyx_k_VecOption[] = "VecOption"; +static const char __pyx_k_adaptStep[] = "adaptStep"; +static const char __pyx_k_back_down[] = "back_down"; +static const char __pyx_k_back_left[] = "back_left"; +static const char __pyx_k_batchSize[] = "batchSize"; +static const char __pyx_k_blockSize[] = "blockSize"; +static const char __pyx_k_blocksize[] = "blocksize"; +static const char __pyx_k_col_bsize[] = "col_bsize"; +static const char __pyx_k_conePoint[] = "conePoint"; +static const char __pyx_k_conjugate[] = "conjugate"; +static const char __pyx_k_converged[] = "converged"; +static const char __pyx_k_createMat[] = "createMat"; +static const char __pyx_k_decorator[] = "decorator"; +static const char __pyx_k_device_id[] = "device_id"; +static const char __pyx_k_direction[] = "direction"; +static const char __pyx_k_down_left[] = "down_left"; +static const char __pyx_k_duplicate[] = "duplicate"; +static const char __pyx_k_elem_type[] = "elem_type"; +static const char __pyx_k_end_kargs[] = "end_kargs"; +static const char __pyx_k_enumerate[] = "enumerate"; +static const char __pyx_k_fieldName[] = "fieldName"; +static const char __pyx_k_fieldname[] = "fieldname"; +static const char __pyx_k_functools[] = "functools"; +static const char __pyx_k_getActive[] = "getActive"; +static const char __pyx_k_getAppCtx[] = "getAppCtx"; +static const char __pyx_k_getBuffer[] = "getBuffer"; +static const char __pyx_k_getDevice[] = "getDevice"; +static const char __pyx_k_getMatrix[] = "getMatrix"; +static const char __pyx_k_getNumber[] = "getNumber"; +static const char __pyx_k_getPCSide[] = "getPCSide"; +static const char __pyx_k_getRanges[] = "getRanges"; +static const char __pyx_k_getString[] = "getString"; +static const char __pyx_k_globalsec[] = "globalsec"; +static const char __pyx_k_hiphandle[] = "hiphandle"; +static const char __pyx_k_hypretype[] = "hypretype"; +static const char __pyx_k_indicator[] = "indicator"; +static const char __pyx_k_infoAllow[] = "infoAllow"; +static const char __pyx_k_isSimplex[] = "isSimplex"; +static const char __pyx_k_isotropic[] = "isotropic"; +static const char __pyx_k_jacobianp[] = "jacobianp"; +static const char __pyx_k_join_mode[] = "join_mode"; +static const char __pyx_k_labelName[] = "labelName"; +static const char __pyx_k_maxDegree[] = "maxDegree"; +static const char __pyx_k_max_fails[] = "max_fails"; +static const char __pyx_k_max_funcs[] = "max_funcs"; +static const char __pyx_k_max_steps[] = "max_steps"; +static const char __pyx_k_metaclass[] = "__metaclass__"; +static const char __pyx_k_metricAvg[] = "metricAvg"; +static const char __pyx_k_metricInt[] = "metricInt"; +static const char __pyx_k_nonzero_2[] = "__nonzero__"; +static const char __pyx_k_norm_type[] = "norm_type"; +static const char __pyx_k_normsched[] = "normsched"; +static const char __pyx_k_numBlocks[] = "numBlocks"; +static const char __pyx_k_numFields[] = "numFields"; +static const char __pyx_k_objective[] = "objective"; +static const char __pyx_k_operators[] = "operators"; +static const char __pyx_k_package_2[] = "__package__"; +static const char __pyx_k_part_type[] = "part_type"; +static const char __pyx_k_postSolve[] = "postSolve"; +static const char __pyx_k_postevent[] = "postevent"; +static const char __pyx_k_pyx_state[] = "__pyx_state"; +static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; +static const char __pyx_k_redundant[] = "redundant"; +static const char __pyx_k_row_bsize[] = "row_bsize"; +static const char __pyx_k_sectiondm[] = "sectiondm"; +static const char __pyx_k_setActive[] = "setActive"; +static const char __pyx_k_setAppCtx[] = "setAppCtx"; +static const char __pyx_k_setDevice[] = "setDevice"; +static const char __pyx_k_setOption[] = "setOption"; +static const char __pyx_k_setPCSide[] = "setPCSide"; +static const char __pyx_k_shifttype[] = "shifttype"; +static const char __pyx_k_snes_type[] = "snes_type"; +static const char __pyx_k_solveStep[] = "solveStep"; +static const char __pyx_k_structure[] = "structure"; +static const char __pyx_k_symmetric[] = "symmetric"; +static const char __pyx_k_syncFlush[] = "syncFlush"; +static const char __pyx_k_syncPrint[] = "syncPrint"; +static const char __pyx_k_terminate[] = "terminate"; +static const char __pyx_k_threshold[] = "threshold"; +static const char __pyx_k_time_step[] = "time_step"; +static const char __pyx_k_traceback[] = "_traceback_"; +static const char __pyx_k_transpose[] = "transpose"; +static const char __pyx_k_varbounds[] = "varbounds"; +static const char __pyx_k_verbosity[] = "verbosity"; +static const char __pyx_k_zeropivot[] = "zeropivot"; +static const char __pyx_k_ADD_VALUES[] = "ADD_VALUES"; +static const char __pyx_k_ALLGATHERV[] = "ALLGATHERV"; +static const char __pyx_k_ASCII_IMPL[] = "ASCII_IMPL"; +static const char __pyx_k_ASCII_INFO[] = "ASCII_INFO"; +static const char __pyx_k_BACK_RIGHT[] = "BACK_RIGHT"; +static const char __pyx_k_COMM_WORLD[] = "COMM_WORLD"; +static const char __pyx_k_DOWN_RIGHT[] = "DOWN_RIGHT"; +static const char __pyx_k_DRAW_BASIC[] = "DRAW_BASIC"; +static const char __pyx_k_DRAW_PORTS[] = "DRAW_PORTS"; +static const char __pyx_k_DeviceType[] = "DeviceType"; +static const char __pyx_k_FIELDSPLIT[] = "FIELDSPLIT"; +static const char __pyx_k_FINAL_ONLY[] = "FINAL_ONLY"; +static const char __pyx_k_FRONT_DOWN[] = "FRONT_DOWN"; +static const char __pyx_k_FRONT_LEFT[] = "FRONT_LEFT"; +static const char __pyx_k_GLOBAL_MAX[] = "GLOBAL_MAX"; +static const char __pyx_k_GLOBAL_SUM[] = "GLOBAL_SUM"; +static const char __pyx_k_HDF5_PETSC[] = "HDF5_PETSC"; +static const char __pyx_k_HEXAHEDRON[] = "HEXAHEDRON"; +static const char __pyx_k_INSERT_ALL[] = "INSERT_ALL"; +static const char __pyx_k_IndexError[] = "IndexError"; +static const char __pyx_k_InsertMode[] = "InsertMode"; +static const char __pyx_k_MAX_VALUES[] = "MAX_VALUES"; +static const char __pyx_k_MPIAIJPERM[] = "MPIAIJPERM"; +static const char __pyx_k_MPIAIJSELL[] = "MPIAIJSELL"; +static const char __pyx_k_MPIBAIJMKL[] = "MPIBAIJMKL"; +static const char __pyx_k_MatSORType[] = "MatSORType"; +static const char __pyx_k_ND_Pi_Full[] = "ND_Pi_Full"; +static const char __pyx_k_OPTION_MAX[] = "OPTION_MAX"; +static const char __pyx_k_OPTION_MIN[] = "OPTION_MIN"; +static const char __pyx_k_PCGAMGType[] = "PCGAMGType"; +static const char __pyx_k_PCGASMType[] = "PCGASMType"; +static const char __pyx_k_PIPEFGMRES[] = "PIPEFGMRES"; +static const char __pyx_k_POLYNOMIAL[] = "POLYNOMIAL"; +static const char __pyx_k_RICHARDSON[] = "RICHARDSON"; +static const char __pyx_k_RT_Pi_Full[] = "RT_Pi_Full"; +static const char __pyx_k_RandomType[] = "RandomType"; +static const char __pyx_k_SAVIENNACL[] = "SAVIENNACL"; +static const char __pyx_k_SEQAIJPERM[] = "SEQAIJPERM"; +static const char __pyx_k_SEQAIJSELL[] = "SEQAIJSELL"; +static const char __pyx_k_SEQBAIJMKL[] = "SEQBAIJMKL"; +static const char __pyx_k_ScalarType[] = "ScalarType"; +static const char __pyx_k_SolverType[] = "SolverType"; +static const char __pyx_k_StreamType[] = "StreamType"; +static const char __pyx_k_THIRD_SIZE[] = "THIRD_SIZE"; +static const char __pyx_k_UNKNOWN_NZ[] = "UNKNOWN_NZ"; +static const char __pyx_k_USE_INODES[] = "USE_INODES"; +static const char __pyx_k_ValueError[] = "ValueError"; +static const char __pyx_k_Vec_buffer[] = "_Vec_buffer"; +static const char __pyx_k_ViewerHDF5[] = "ViewerHDF5"; +static const char __pyx_k_ViewerType[] = "ViewerType"; +static const char __pyx_k_assemblies[] = "assemblies"; +static const char __pyx_k_authorinfo[] = "authorinfo"; +static const char __pyx_k_back_right[] = "back_right"; +static const char __pyx_k_begin_args[] = "begin_args"; +static const char __pyx_k_block_size[] = "block_size"; +static const char __pyx_k_compressed[] = "compressed"; +static const char __pyx_k_conforming[] = "conforming"; +static const char __pyx_k_continuous[] = "continuous"; +static const char __pyx_k_createVecs[] = "createVecs"; +static const char __pyx_k_cudahandle[] = "cudahandle"; +static const char __pyx_k_cycle_type[] = "cycle_type"; +static const char __pyx_k_down_right[] = "down_right"; +static const char __pyx_k_empty_name[] = "empty name"; +static const char __pyx_k_errhandler[] = "errhandler"; +static const char __pyx_k_fieldnames[] = "fieldnames"; +static const char __pyx_k_fill_param[] = "fill_param"; +static const char __pyx_k_formDegree[] = "formDegree"; +static const char __pyx_k_front_down[] = "front_down"; +static const char __pyx_k_front_left[] = "front_left"; +static const char __pyx_k_functional[] = "functional"; +static const char __pyx_k_getCPUTime[] = "getCPUTime"; +static const char __pyx_k_getClassId[] = "getClassId"; +static const char __pyx_k_getCorners[] = "getCorners"; +static const char __pyx_k_getCurrent[] = "getCurrent"; +static const char __pyx_k_getIndices[] = "getIndices"; +static const char __pyx_k_getMaxTime[] = "getMaxTime"; +static const char __pyx_k_getSection[] = "getSection"; +static const char __pyx_k_getStencil[] = "getStencil"; +static const char __pyx_k_getVecLeft[] = "getVecLeft"; +static const char __pyx_k_getVersion[] = "getVersion"; +static const char __pyx_k_getVisible[] = "getVisible"; +static const char __pyx_k_initialize[] = "_initialize"; +static const char __pyx_k_isIdentity[] = "isIdentity"; +static const char __pyx_k_layoutType[] = "layoutType"; +static const char __pyx_k_leafupdate[] = "leafupdate"; +static const char __pyx_k_lgmap_type[] = "lgmap_type"; +static const char __pyx_k_linear_its[] = "linear_its"; +static const char __pyx_k_mpi4py_MPI[] = "mpi4py.MPI"; +static const char __pyx_k_numBatches[] = "numBatches"; +static const char __pyx_k_proc_sizes[] = "proc_sizes"; +static const char __pyx_k_pyx_result[] = "__pyx_result"; +static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; +static const char __pyx_k_reciprocal[] = "reciprocal"; +static const char __pyx_k_setCurrent[] = "setCurrent"; +static const char __pyx_k_setInitial[] = "setInitial"; +static const char __pyx_k_setMaxTime[] = "setMaxTime"; +static const char __pyx_k_setMonitor[] = "setMonitor"; +static const char __pyx_k_setSection[] = "setSection"; +static const char __pyx_k_setVisible[] = "setVisible"; +static const char __pyx_k_shift_type[] = "shift_type"; +static const char __pyx_k_space_type[] = "space_type"; +static const char __pyx_k_startswith[] = "startswith"; +static const char __pyx_k_useAnchors[] = "useAnchors"; +static const char __pyx_k_useClosure[] = "useClosure"; +static const char __pyx_k_AGGERGATION[] = "AGGERGATION"; +static const char __pyx_k_AIJCUSPARSE[] = "AIJCUSPARSE"; +static const char __pyx_k_AIJVIENNACL[] = "AIJVIENNACL"; +static const char __pyx_k_APPLY_LOWER[] = "APPLY_LOWER"; +static const char __pyx_k_APPLY_UPPER[] = "APPLY_UPPER"; +static const char __pyx_k_ARKIMEX1BEE[] = "ARKIMEX1BEE"; +static const char __pyx_k_ARKIMEXBPR3[] = "ARKIMEXBPR3"; +static const char __pyx_k_ARKIMEXType[] = "ARKIMEXType"; +static const char __pyx_k_ASCII_DENSE[] = "ASCII_DENSE"; +static const char __pyx_k_ASCII_GLVIS[] = "ASCII_GLVIS"; +static const char __pyx_k_ASCII_INDEX[] = "ASCII_INDEX"; +static const char __pyx_k_ASCII_LATEX[] = "ASCII_LATEX"; +static const char __pyx_k_ASCII_PCICE[] = "ASCII_PCICE"; +static const char __pyx_k_COPY_VALUES[] = "COPY_VALUES"; +static const char __pyx_k_CollectType[] = "CollectType"; +static const char __pyx_k_ComplexType[] = "ComplexType"; +static const char __pyx_k_DMComposite[] = "DMComposite"; +static const char __pyx_k_DMSwarmType[] = "DMSwarmType"; +static const char __pyx_k_ElementType[] = "ElementType"; +static const char __pyx_k_Error___str[] = "Error.__str__"; +static const char __pyx_k_FRONT_RIGHT[] = "FRONT_RIGHT"; +static const char __pyx_k_HYPRESTRUCT[] = "HYPRESTRUCT"; +static const char __pyx_k_INTERPOLATE[] = "INTERPOLATE"; +static const char __pyx_k_KSPNormType[] = "KSPNormType"; +static const char __pyx_k_LMVMBROYDEN[] = "LMVMBROYDEN"; +static const char __pyx_k_MATHEMATICA[] = "MATHEMATICA"; +static const char __pyx_k_MGCycleType[] = "MGCycleType"; +static const char __pyx_k_MKL_PARDISO[] = "MKL_PARDISO"; +static const char __pyx_k_MPIVIENNACL[] = "MPIVIENNACL"; +static const char __pyx_k_MatInfoType[] = "MatInfoType"; +static const char __pyx_k_Mat_Stencil[] = "_Mat_Stencil"; +static const char __pyx_k_MemoryError[] = "MemoryError"; +static const char __pyx_k_MigrateType[] = "MigrateType"; +static const char __pyx_k_NORM_ALWAYS[] = "NORM_ALWAYS"; +static const char __pyx_k_NRICHARDSON[] = "NRICHARDSON"; +static const char __pyx_k_Partitioner[] = "Partitioner"; +static const char __pyx_k_PickleError[] = "PickleError"; +static const char __pyx_k_ProblemType[] = "ProblemType"; +static const char __pyx_k_REFINETOBOX[] = "REFINETOBOX"; +static const char __pyx_k_RUNGE_KUTTA[] = "RUNGE_KUTTA"; +static const char __pyx_k_SEQVIENNACL[] = "SEQVIENNACL"; +static const char __pyx_k_SETUP_ERROR[] = "SETUP_ERROR"; +static const char __pyx_k_SORTED_FULL[] = "SORTED_FULL"; +static const char __pyx_k_SUBPC_ERROR[] = "SUBPC_ERROR"; +static const char __pyx_k_ScatterMode[] = "ScatterMode"; +static const char __pyx_k_ScatterType[] = "ScatterType"; +static const char __pyx_k_StencilType[] = "StencilType"; +static const char __pyx_k_SystemError[] = "SystemError"; +static const char __pyx_k_TETRAHEDRON[] = "TETRAHEDRON"; +static const char __pyx_k_UNSPECIFIED[] = "UNSPECIFIED"; +static const char __pyx_k_assemblyEnd[] = "assemblyEnd"; +static const char __pyx_k_begin_kargs[] = "begin_kargs"; +static const char __pyx_k_coarsenhook[] = "coarsenhook"; +static const char __pyx_k_concatenate[] = "concatenate"; +static const char __pyx_k_constraints[] = "constraints"; +static const char __pyx_k_coordinates[] = "coordinates"; +static const char __pyx_k_createLabel[] = "createLabel"; +static const char __pyx_k_create_gvec[] = "create_gvec"; +static const char __pyx_k_create_lvec[] = "create_lvec"; +static const char __pyx_k_determinant[] = "determinant"; +static const char __pyx_k_device_type[] = "device_type"; +static const char __pyx_k_entityDepth[] = "entityDepth"; +static const char __pyx_k_front_right[] = "front_right"; +static const char __pyx_k_getDeviceId[] = "getDeviceId"; +static const char __pyx_k_getDiagonal[] = "getDiagonal"; +static const char __pyx_k_getGradient[] = "getGradient"; +static const char __pyx_k_getInterval[] = "getInterval"; +static const char __pyx_k_getMaxSteps[] = "getMaxSteps"; +static const char __pyx_k_getNormType[] = "getNormType"; +static const char __pyx_k_getNumberDM[] = "getNumberDM"; +static const char __pyx_k_getRefCount[] = "getRefCount"; +static const char __pyx_k_getSolution[] = "getSolution"; +static const char __pyx_k_getTimeStep[] = "getTimeStep"; +static const char __pyx_k_getVecRight[] = "getVecRight"; +static const char __pyx_k_hasLagrange[] = "hasLagrange"; +static const char __pyx_k_interp_type[] = "interp_type"; +static const char __pyx_k_interpolate[] = "interpolate"; +static const char __pyx_k_isAssembled[] = "isAssembled"; +static const char __pyx_k_isFinalized[] = "isFinalized"; +static const char __pyx_k_isHermitian[] = "isHermitian"; +static const char __pyx_k_isSymmetric[] = "isSymmetric"; +static const char __pyx_k_leafSection[] = "leafSection"; +static const char __pyx_k_numMessages[] = "numMessages"; +static const char __pyx_k_nz_unneeded[] = "nz_unneeded"; +static const char __pyx_k_orientation[] = "orientation"; +static const char __pyx_k_permutation[] = "permutation"; +static const char __pyx_k_py_sub_ctxs[] = "py_sub_ctxs"; +static const char __pyx_k_rootSection[] = "rootSection"; +static const char __pyx_k_setDiagonal[] = "setDiagonal"; +static const char __pyx_k_setInterval[] = "setInterval"; +static const char __pyx_k_setMaxSteps[] = "setMaxSteps"; +static const char __pyx_k_setNormType[] = "setNormType"; +static const char __pyx_k_setParamsEW[] = "setParamsEW"; +static const char __pyx_k_setSolution[] = "setSolution"; +static const char __pyx_k_setTimeStep[] = "setTimeStep"; +static const char __pyx_k_shiftamount[] = "shiftamount"; +static const char __pyx_k_stenciltype[] = "stenciltype"; +static const char __pyx_k_step_number[] = "step_number"; +static const char __pyx_k_stream_type[] = "stream_type"; +static const char __pyx_k_traceback_2[] = "traceback"; +static const char __pyx_k_zeroEntries[] = "zeroEntries"; +static const char __pyx_k_ASCII_COMMON[] = "ASCII_COMMON"; +static const char __pyx_k_ASCII_MATLAB[] = "ASCII_MATLAB"; +static const char __pyx_k_ASCII_PYTHON[] = "ASCII_PYTHON"; +static const char __pyx_k_AssemblyType[] = "AssemblyType"; +static const char __pyx_k_BACK_UP_LEFT[] = "BACK_UP_LEFT"; +static const char __pyx_k_BoundaryType[] = "BoundaryType"; +static const char __pyx_k_COLLECT_USER[] = "COLLECT_USER"; +static const char __pyx_k_DIFFERENT_NZ[] = "DIFFERENT_NZ"; +static const char __pyx_k_DIVERGED_NAN[] = "DIVERGED_NAN"; +static const char __pyx_k_DRAW_CONTOUR[] = "DRAW_CONTOUR"; +static const char __pyx_k_EquationType[] = "EquationType"; +static const char __pyx_k_Error___init[] = "Error.__init__"; +static const char __pyx_k_Error___repr[] = "Error.__repr__"; +static const char __pyx_k_FACTOR_OTHER[] = "FACTOR_OTHER"; +static const char __pyx_k_FailedReason[] = "FailedReason"; +static const char __pyx_k_HYPRESSTRUCT[] = "HYPRESSTRUCT"; +static const char __pyx_k_INITIAL_ONLY[] = "INITIAL_ONLY"; +static const char __pyx_k_LAYOUT_GAUSS[] = "LAYOUT_GAUSS"; +static const char __pyx_k_LOAD_BALANCE[] = "LOAD_BALANCE"; +static const char __pyx_k_MIGRATE_USER[] = "MIGRATE_USER"; +static const char __pyx_k_MKL_CPARDISO[] = "MKL_CPARDISO"; +static const char __pyx_k_MPIDENSECUDA[] = "MPIDENSECUDA"; +static const char __pyx_k_MatStructure[] = "MatStructure"; +static const char __pyx_k_NORM_1_AND_2[] = "NORM_1_AND_2"; +static const char __pyx_k_NORM_DEFAULT[] = "NORM_DEFAULT"; +static const char __pyx_k_NORM_NATURAL[] = "NORM_NATURAL"; +static const char __pyx_k_NormSchedule[] = "NormSchedule"; +static const char __pyx_k_Not_for_type[] = "Not for type {}"; +static const char __pyx_k_ODE_EXPLICIT[] = "ODE_EXPLICIT"; +static const char __pyx_k_ODE_IMPLICIT[] = "ODE_IMPLICIT"; +static const char __pyx_k_OrderingType[] = "OrderingType"; +static const char __pyx_k_PREALLOCATOR[] = "PREALLOCATOR"; +static const char __pyx_k_PolytopeType[] = "PolytopeType"; +static const char __pyx_k_QUARTER_SIZE[] = "QUARTER_SIZE"; +static const char __pyx_k_REDISTRIBUTE[] = "REDISTRIBUTE"; +static const char __pyx_k_REFINEALFELD[] = "REFINEALFELD"; +static const char __pyx_k_ROW_ORIENTED[] = "ROW_ORIENTED"; +static const char __pyx_k_RuntimeError[] = "RuntimeError"; +static const char __pyx_k_SEQDENSECUDA[] = "SEQDENSECUDA"; +static const char __pyx_k_SUPERLU_DIST[] = "SUPERLU_DIST"; +static const char __pyx_k_SchurPreType[] = "SchurPreType"; +static const char __pyx_k_VINEWTONRSLS[] = "VINEWTONRSLS"; +static const char __pyx_k_VINEWTONSSLS[] = "VINEWTONSSLS"; +static const char __pyx_k_ViewerFormat[] = "ViewerFormat"; +static const char __pyx_k_back_up_left[] = "back_up_left"; +static const char __pyx_k_cdevice_type[] = "cdevice_type"; +static const char __pyx_k_cellNodeMaps[] = "cellNodeMaps"; +static const char __pyx_k_createMatrix[] = "createMatrix"; +static const char __pyx_k_create_subdm[] = "create_subdm"; +static const char __pyx_k_dmswarm_type[] = "dmswarm_type"; +static const char __pyx_k_error_code_d[] = "error code %d"; +static const char __pyx_k_evaluatestep[] = "evaluatestep"; +static const char __pyx_k_eventhandler[] = "eventhandler"; +static const char __pyx_k_garbage_view[] = "garbage_view"; +static const char __pyx_k_getActiveAll[] = "getActiveAll"; +static const char __pyx_k_getBlockInfo[] = "getBlockInfo"; +static const char __pyx_k_getBlockSize[] = "getBlockSize"; +static const char __pyx_k_getClassName[] = "getClassName"; +static const char __pyx_k_getDefaultSF[] = "getDefaultSF"; +static const char __pyx_k_getDimension[] = "getDimension"; +static const char __pyx_k_getLocalSize[] = "getLocalSize"; +static const char __pyx_k_getOperators[] = "getOperators"; +static const char __pyx_k_getProcSizes[] = "getProcSizes"; +static const char __pyx_k_getSectionSF[] = "getSectionSF"; +static const char __pyx_k_ghostBcNodes[] = "ghostBcNodes"; +static const char __pyx_k_initialguess[] = "initialguess"; +static const char __pyx_k_numSumSpaces[] = "numSumSpaces"; +static const char __pyx_k_nz_allocated[] = "nz_allocated"; +static const char __pyx_k_partitioning[] = "partitioning"; +static const char __pyx_k_pre_finalize[] = "_pre_finalize"; +static const char __pyx_k_pyx_checksum[] = "__pyx_checksum"; +static const char __pyx_k_restricthook[] = "restricthook"; +static const char __pyx_k_rhsjacobianp[] = "rhsjacobianp"; +static const char __pyx_k_scatter_type[] = "scatter_type"; +static const char __pyx_k_setActiveAll[] = "setActiveAll"; +static const char __pyx_k_setDefaultSF[] = "setDefaultSF"; +static const char __pyx_k_setDimension[] = "setDimension"; +static const char __pyx_k_setSectionSF[] = "setSectionSF"; +static const char __pyx_k_staticmethod[] = "staticmethod"; +static const char __pyx_k_stencil_type[] = "stencil_type"; +static const char __pyx_k_stringsource[] = "stringsource"; +static const char __pyx_k_wrapped_func[] = "wrapped_func"; +static const char __pyx_k_ADD_BC_VALUES[] = "ADD_BC_VALUES"; +static const char __pyx_k_APPEND_UPDATE[] = "APPEND_UPDATE"; +static const char __pyx_k_ARKIMEXARS122[] = "ARKIMEXARS122"; +static const char __pyx_k_ARKIMEXARS443[] = "ARKIMEXARS443"; +static const char __pyx_k_ARKIMEXPRSSP2[] = "ARKIMEXPRSSP2"; +static const char __pyx_k_ASCII_SYMMODU[] = "ASCII_SYMMODU"; +static const char __pyx_k_BACK_UP_RIGHT[] = "BACK_UP_RIGHT"; +static const char __pyx_k_BINARY_MATLAB[] = "BINARY_MATLAB"; +static const char __pyx_k_COLLECT_BASIC[] = "COLLECT_BASIC"; +static const char __pyx_k_CONVERGED_ITS[] = "CONVERGED_ITS"; +static const char __pyx_k_CompositeType[] = "CompositeType"; +static const char __pyx_k_DIVERGED_DTOL[] = "DIVERGED_DTOL"; +static const char __pyx_k_DIVERGED_NULL[] = "DIVERGED_NULL"; +static const char __pyx_k_DIVERGED_USER[] = "DIVERGED_USER"; +static const char __pyx_k_DeviceContext[] = "DeviceContext"; +static const char __pyx_k_DualSpaceType[] = "DualSpaceType"; +static const char __pyx_k_FORWARD_LOCAL[] = "FORWARD_LOCAL"; +static const char __pyx_k_FORWARD_SWEEP[] = "FORWARD_SWEEP"; +static const char __pyx_k_FRONT_UP_LEFT[] = "FRONT_UP_LEFT"; +static const char __pyx_k_INSERT_VALUES[] = "INSERT_VALUES"; +static const char __pyx_k_MIGRATE_BASIC[] = "MIGRATE_BASIC"; +static const char __pyx_k_MatSolverType[] = "MatSolverType"; +static const char __pyx_k_NORM_INFINITY[] = "NORM_INFINITY"; +static const char __pyx_k_PCMGCycleType[] = "PCMGCycleType"; +static const char __pyx_k_PETSc_Error_d[] = "PETSc.Error(%d)"; +static const char __pyx_k_PICLayoutType[] = "PICLayoutType"; +static const char __pyx_k_QUADRILATERAL[] = "QUADRILATERAL"; +static const char __pyx_k_REFINEREGULAR[] = "REFINEREGULAR"; +static const char __pyx_k_REVERSE_LOCAL[] = "REVERSE_LOCAL"; +static const char __pyx_k_SchurFactType[] = "SchurFactType"; +static const char __pyx_k_TSARKIMEXType[] = "TSARKIMEXType"; +static const char __pyx_k_TSProblemType[] = "TSProblemType"; +static const char __pyx_k_Vec_LocalForm[] = "_Vec_LocalForm"; +static const char __pyx_k_adjoint_steps[] = "adjoint_steps"; +static const char __pyx_k_assemblyBegin[] = "assemblyBegin"; +static const char __pyx_k_back_up_right[] = "back_up_right"; +static const char __pyx_k_boundary_type[] = "boundary_type"; +static const char __pyx_k_buildResidual[] = "buildResidual"; +static const char __pyx_k_buildSolution[] = "buildSolution"; +static const char __pyx_k_cancelMonitor[] = "cancelMonitor"; +static const char __pyx_k_createVecLeft[] = "createVecLeft"; +static const char __pyx_k_create_matrix[] = "create_matrix"; +static const char __pyx_k_diagonalScale[] = "diagonalScale"; +static const char __pyx_k_diagonal_fill[] = "diagonal_fill"; +static const char __pyx_k_front_up_left[] = "front_up_left"; +static const char __pyx_k_getBlockSizes[] = "getBlockSizes"; +static const char __pyx_k_getDeviceType[] = "getDeviceType"; +static const char __pyx_k_getLocalSizes[] = "getLocalSizes"; +static const char __pyx_k_getStepNumber[] = "getStepNumber"; +static const char __pyx_k_getStreamType[] = "getStreamType"; +static const char __pyx_k_getTolerances[] = "getTolerances"; +static const char __pyx_k_globalBcNodes[] = "globalBcNodes"; +static const char __pyx_k_isInitialized[] = "isInitialized"; +static const char __pyx_k_isPermutation[] = "isPermutation"; +static const char __pyx_k_messageLength[] = "messageLength"; +static const char __pyx_k_monitorCancel[] = "monitorCancel"; +static const char __pyx_k_multHermitian[] = "multHermitian"; +static const char __pyx_k_multTranspose[] = "multTranspose"; +static const char __pyx_k_multirootdata[] = "multirootdata"; +static const char __pyx_k_numReductions[] = "numReductions"; +static const char __pyx_k_numTensSpaces[] = "numTensSpaces"; +static const char __pyx_k_pyx_getbuffer[] = "__pyx_getbuffer"; +static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; +static const char __pyx_k_remoteOffsets[] = "remoteOffsets"; +static const char __pyx_k_restrictSizes[] = "restrictSizes"; +static const char __pyx_k_setStepNumber[] = "setStepNumber"; +static const char __pyx_k_setStreamType[] = "setStreamType"; +static const char __pyx_k_setTolerances[] = "setTolerances"; +static const char __pyx_k_stencil_width[] = "stencil_width"; +static const char __pyx_k_stepTranspose[] = "stepTranspose"; +static const char __pyx_k_type_registry[] = "__type_registry__"; +static const char __pyx_k_ADD_ALL_VALUES[] = "ADD_ALL_VALUES"; +static const char __pyx_k_ASCII_VTK_CELL[] = "ASCII_VTK_CELL"; +static const char __pyx_k_AttributeError[] = "AttributeError"; +static const char __pyx_k_BACKWARD_SWEEP[] = "BACKWARD_SWEEP"; +static const char __pyx_k_BACK_DOWN_LEFT[] = "BACK_DOWN_LEFT"; +static const char __pyx_k_CONVERGED_ATOL[] = "CONVERGED_ATOL"; +static const char __pyx_k_CONVERGED_MINF[] = "CONVERGED_MINF"; +static const char __pyx_k_CONVERGED_RTOL[] = "CONVERGED_RTOL"; +static const char __pyx_k_CONVERGED_TIME[] = "CONVERGED_TIME"; +static const char __pyx_k_CONVERGED_USER[] = "CONVERGED_USER"; +static const char __pyx_k_CRANK_NICOLSON[] = "CRANK_NICOLSON"; +static const char __pyx_k_DIVERGED_INNER[] = "DIVERGED_INNER"; +static const char __pyx_k_DMBoundaryType[] = "DMBoundaryType"; +static const char __pyx_k_DMDA_Vec_array[] = "_DMDA_Vec_array"; +static const char __pyx_k_DMPolytopeType[] = "DMPolytopeType"; +static const char __pyx_k_DRAW_LG_XRANGE[] = "DRAW_LG_XRANGE"; +static const char __pyx_k_DeviceJoinMode[] = "DeviceJoinMode"; +static const char __pyx_k_EventDecorator[] = "EventDecorator"; +static const char __pyx_k_ExactFinalTime[] = "ExactFinalTime"; +static const char __pyx_k_FINAL_ASSEMBLY[] = "FINAL_ASSEMBLY"; +static const char __pyx_k_FLUSH_ASSEMBLY[] = "FLUSH_ASSEMBLY"; +static const char __pyx_k_FRONT_UP_RIGHT[] = "FRONT_UP_RIGHT"; +static const char __pyx_k_INTERIOR_GHOST[] = "INTERIOR_GHOST"; +static const char __pyx_k_LAYOUT_REGULAR[] = "LAYOUT_REGULAR"; +static const char __pyx_k_LMVMBADBROYDEN[] = "LMVMBADBROYDEN"; +static const char __pyx_k_LMVMSYMBROYDEN[] = "LMVMSYMBROYDEN"; +static const char __pyx_k_MEMORYSCALABLE[] = "MEMORYSCALABLE"; +static const char __pyx_k_MPIAIJCUSPARSE[] = "MPIAIJCUSPARSE"; +static const char __pyx_k_MPIAIJVIENNACL[] = "MPIAIJVIENNACL"; +static const char __pyx_k_MULTIPLICATIVE[] = "MULTIPLICATIVE"; +static const char __pyx_k_NORM_FROBENIUS[] = "NORM_FROBENIUS"; +static const char __pyx_k_NOT_SET_VALUES[] = "NOT_SET_VALUES"; +static const char __pyx_k_NotImplemented[] = "NotImplemented"; +static const char __pyx_k_PCFailedReason[] = "PCFailedReason"; +static const char __pyx_k_PRECONDITIONED[] = "PRECONDITIONED"; +static const char __pyx_k_SEQAIJCUSPARSE[] = "SEQAIJCUSPARSE"; +static const char __pyx_k_SEQAIJVIENNACL[] = "SEQAIJVIENNACL"; +static const char __pyx_k_STRUCTURE_ONLY[] = "STRUCTURE_ONLY"; +static const char __pyx_k_SYMMETRY_SWEEP[] = "SYMMETRY_SWEEP"; +static const char __pyx_k_TSEquationType[] = "TSEquationType"; +static const char __pyx_k_USE_HASH_TABLE[] = "USE_HASH_TABLE"; +static const char __pyx_k_applyTranspose[] = "applyTranspose"; +static const char __pyx_k_back_down_left[] = "back_down_left"; +static const char __pyx_k_boundary_types[] = "boundary_types"; +static const char __pyx_k_createLocalVec[] = "createLocalVec"; +static const char __pyx_k_createVecRight[] = "createVecRight"; +static const char __pyx_k_dualspace_type[] = "dualspace_type"; +static const char __pyx_k_empty_citation[] = "empty citation"; +static const char __pyx_k_factor_mallocs[] = "factor_mallocs"; +static const char __pyx_k_front_up_right[] = "front_up_right"; +static const char __pyx_k_getDefaultComm[] = "getDefaultComm"; +static const char __pyx_k_getGhostRanges[] = "getGhostRanges"; +static const char __pyx_k_getGlobalSizes[] = "getGlobalSizes"; +static const char __pyx_k_getKSPFailures[] = "getKSPFailures"; +static const char __pyx_k_getProblemType[] = "getProblemType"; +static const char __pyx_k_getStencilType[] = "getStencilType"; +static const char __pyx_k_getVersionInfo[] = "getVersionInfo"; +static const char __pyx_k_jacobian_state[] = "jacobian_state"; +static const char __pyx_k_petsc4py_PETSc[] = "petsc4py.PETSc"; +static const char __pyx_k_productNumeric[] = "productNumeric"; +static const char __pyx_k_setDefaultComm[] = "setDefaultComm"; +static const char __pyx_k_setDefaultType[] = "setDefaultType"; +static const char __pyx_k_setFromOptions[] = "setFromOptions"; +static const char __pyx_k_setProblemType[] = "setProblemType"; +static const char __pyx_k_solveTranspose[] = "solveTranspose"; +static const char __pyx_k_splitOwnership[] = "splitOwnership"; +static const char __pyx_k_staticproperty[] = "staticproperty"; +static const char __pyx_k_BACK_DOWN_RIGHT[] = "BACK_DOWN_RIGHT"; +static const char __pyx_k_BASICSYMPLECTIC[] = "BASICSYMPLECTIC"; +static const char __pyx_k_CHOWILUVIENNACL[] = "CHOWILUVIENNACL"; +static const char __pyx_k_COLLECT_GENERAL[] = "COLLECT_GENERAL"; +static const char __pyx_k_CONVERGED_EVENT[] = "CONVERGED_EVENT"; +static const char __pyx_k_CONVERGED_GATOL[] = "CONVERGED_GATOL"; +static const char __pyx_k_CONVERGED_GRTOL[] = "CONVERGED_GRTOL"; +static const char __pyx_k_CONVERGED_GTTOL[] = "CONVERGED_GTTOL"; +static const char __pyx_k_ConvergedReason[] = "ConvergedReason"; +static const char __pyx_k_DIVERGED_MAXFCN[] = "DIVERGED_MAXFCN"; +static const char __pyx_k_DIVERGED_MAXITS[] = "DIVERGED_MAXITS"; +static const char __pyx_k_DIVERGED_MAX_IT[] = "DIVERGED_MAX_IT"; +static const char __pyx_k_DMDAElementType[] = "DMDAElementType"; +static const char __pyx_k_DMDAStencilType[] = "DMDAStencilType"; +static const char __pyx_k_DMInterpolation[] = "DMInterpolation"; +static const char __pyx_k_DMPlexTransform[] = "DMPlexTransform"; +static const char __pyx_k_DuplicateOption[] = "DuplicateOption"; +static const char __pyx_k_Error___nonzero[] = "Error.__nonzero__"; +static const char __pyx_k_FRONT_DOWN_LEFT[] = "FRONT_DOWN_LEFT"; +static const char __pyx_k_FactorShiftType[] = "FactorShiftType"; +static const char __pyx_k_GLOBAL_BLOCKING[] = "GLOBAL_BLOCKING"; +static const char __pyx_k_MATPARTITIONING[] = "MATPARTITIONING"; +static const char __pyx_k_MatAssemblyType[] = "MatAssemblyType"; +static const char __pyx_k_MatOrderingType[] = "MatOrderingType"; +static const char __pyx_k_MatPartitioning[] = "MatPartitioning"; +static const char __pyx_k_NORMALHERMITIAN[] = "NORMALHERMITIAN"; +static const char __pyx_k_NORM_FINAL_ONLY[] = "NORM_FINAL_ONLY"; +static const char __pyx_k_PCCompositeType[] = "PCCompositeType"; +static const char __pyx_k_PartitionerType[] = "PartitionerType"; +static const char __pyx_k_REFINETOSIMPLEX[] = "REFINETOSIMPLEX"; +static const char __pyx_k_SCATTER_FORWARD[] = "SCATTER_FORWARD"; +static const char __pyx_k_SCATTER_REVERSE[] = "SCATTER_REVERSE"; +static const char __pyx_k_SCHURCOMPLEMENT[] = "SCHURCOMPLEMENT"; +static const char __pyx_k_SPARSEELEMENTAL[] = "SPARSEELEMENTAL"; +static const char __pyx_k_SUBMAT_SINGLEIS[] = "SUBMAT_SINGLEIS"; +static const char __pyx_k_StencilLocation[] = "StencilLocation"; +static const char __pyx_k_TRANSFORMFILTER[] = "TRANSFORMFILTER"; +static const char __pyx_k_View_MemoryView[] = "View.MemoryView"; +static const char __pyx_k_allocate_buffer[] = "allocate_buffer"; +static const char __pyx_k_array_interface[] = "__array_interface__"; +static const char __pyx_k_back_down_right[] = "back_down_right"; +static const char __pyx_k_coneOrientation[] = "coneOrientation"; +static const char __pyx_k_correction_type[] = "correction_type"; +static const char __pyx_k_createDefaultSF[] = "createDefaultSF"; +static const char __pyx_k_createGlobalVec[] = "createGlobalVec"; +static const char __pyx_k_createSectionSF[] = "createSectionSF"; +static const char __pyx_k_createSubMatrix[] = "createSubMatrix"; +static const char __pyx_k_dtype_is_object[] = "dtype_is_object"; +static const char __pyx_k_front_down_left[] = "front_down_left"; +static const char __pyx_k_garbage_cleanup[] = "garbage_cleanup"; +static const char __pyx_k_getBlockIndices[] = "getBlockIndices"; +static const char __pyx_k_getBoundaryType[] = "getBoundaryType"; +static const char __pyx_k_getEquationType[] = "getEquationType"; +static const char __pyx_k_getFunctionNorm[] = "getFunctionNorm"; +static const char __pyx_k_getGhostCorners[] = "getGhostCorners"; +static const char __pyx_k_getLocalSection[] = "getLocalSection"; +static const char __pyx_k_getResidualNorm[] = "getResidualNorm"; +static const char __pyx_k_getSolutionNorm[] = "getSolutionNorm"; +static const char __pyx_k_getStencilWidth[] = "getStencilWidth"; +static const char __pyx_k_getStepFailures[] = "getStepFailures"; +static const char __pyx_k_jacobian_design[] = "jacobian_design"; +static const char __pyx_k_missingDiagonal[] = "missingDiagonal"; +static const char __pyx_k_popErrorHandler[] = "popErrorHandler"; +static const char __pyx_k_prefix_s_name_s[] = "(prefix:%s, name:%s)"; +static const char __pyx_k_productSymbolic[] = "productSymbolic"; +static const char __pyx_k_pyx_PickleError[] = "__pyx_PickleError"; +static const char __pyx_k_redundantPoints[] = "redundantPoints"; +static const char __pyx_k_refinementLimit[] = "refinementLimit"; +static const char __pyx_k_setEquationType[] = "setEquationType"; +static const char __pyx_k_setFunctionNorm[] = "setFunctionNorm"; +static const char __pyx_k_setLocalSection[] = "setLocalSection"; +static const char __pyx_k_setResidualNorm[] = "setResidualNorm"; +static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; +static const char __pyx_k_subspaceOffsets[] = "subspaceOffsets"; +static const char __pyx_k_useInitialGuess[] = "useInitialGuess"; +static const char __pyx_k_zeroRowsColumns[] = "zeroRowsColumns"; +static const char __pyx_k_ASCII_VTK_COORDS[] = "ASCII_VTK_COORDS"; +static const char __pyx_k_CONSTANTDIAGONAL[] = "CONSTANTDIAGONAL"; +static const char __pyx_k_DEFAULT_BLOCKING[] = "DEFAULT_BLOCKING"; +static const char __pyx_k_FACTOR_OUTMEMORY[] = "FACTOR_OUTMEMORY"; +static const char __pyx_k_FRONT_DOWN_RIGHT[] = "FRONT_DOWN_RIGHT"; +static const char __pyx_k_INSERT_BC_VALUES[] = "INSERT_BC_VALUES"; +static const char __pyx_k_KSPTRANSPOSEONLY[] = "KSPTRANSPOSEONLY"; +static const char __pyx_k_LMVMDIAGBBROYDEN[] = "LMVMDIAGBBROYDEN"; +static const char __pyx_k_SEG_PRISM_TENSOR[] = "SEG_PRISM_TENSOR"; +static const char __pyx_k_SNESNormSchedule[] = "SNESNormSchedule"; +static const char __pyx_k_SYMMETRY_ETERNAL[] = "SYMMETRY_ETERNAL"; +static const char __pyx_k_TAO_Solver_Types[] = "\n TAO Solver Types\n "; +static const char __pyx_k_TRI_PRISM_TENSOR[] = "TRI_PRISM_TENSOR"; +static const char __pyx_k_TSExactFinalTime[] = "TSExactFinalTime"; +static const char __pyx_k_UNPRECONDITIONED[] = "UNPRECONDITIONED"; +static const char __pyx_k_createNaturalVec[] = "createNaturalVec"; +static const char __pyx_k_create_injection[] = "create_injection"; +static const char __pyx_k_fill_ratio_given[] = "fill_ratio_given"; +static const char __pyx_k_formSNESFunction[] = "formSNESFunction"; +static const char __pyx_k_formSNESJacobian[] = "formSNESJacobian"; +static const char __pyx_k_front_down_right[] = "front_down_right"; +static const char __pyx_k_getBoundaryTypes[] = "getBoundaryTypes"; +static const char __pyx_k_getDiagonalBlock[] = "getDiagonalBlock"; +static const char __pyx_k_getFunctionValue[] = "getFunctionValue"; +static const char __pyx_k_getGlobalSection[] = "getGlobalSection"; +static const char __pyx_k_getOptionsPrefix[] = "getOptionsPrefix"; +static const char __pyx_k_multHermitianAdd[] = "multHermitianAdd"; +static const char __pyx_k_multTransposeAdd[] = "multTransposeAdd"; +static const char __pyx_k_ownership_ranges[] = "ownership_ranges"; +static const char __pyx_k_popSignalHandler[] = "popSignalHandler"; +static const char __pyx_k_pushErrorHandler[] = "pushErrorHandler"; +static const char __pyx_k_registerCitation[] = "registerCitation"; +static const char __pyx_k_setGlobalSection[] = "setGlobalSection"; +static const char __pyx_k_setOptionsPrefix[] = "setOptionsPrefix"; +static const char __pyx_k_stdout_is_stderr[] = "_stdout_is_stderr"; +static const char __pyx_k_targetComplexity[] = "targetComplexity"; +static const char __pyx_k_ASCII_FACTOR_INFO[] = "ASCII_FACTOR_INFO"; +static const char __pyx_k_ASCII_INFO_DETAIL[] = "ASCII_INFO_DETAIL"; +static const char __pyx_k_ASCII_MATHEMATICA[] = "ASCII_MATHEMATICA"; +static const char __pyx_k_CONVERGED_STEPTOL[] = "CONVERGED_STEPTOL"; +static const char __pyx_k_DIVERGED_NANORINF[] = "DIVERGED_NANORINF"; +static const char __pyx_k_DIVERGED_TR_DELTA[] = "DIVERGED_TR_DELTA"; +static const char __pyx_k_DMStagStencilType[] = "DMStagStencilType"; +static const char __pyx_k_INSERT_ALL_VALUES[] = "INSERT_ALL_VALUES"; +static const char __pyx_k_InterpolationType[] = "InterpolationType"; +static const char __pyx_k_LMVMSYMBADBROYDEN[] = "LMVMSYMBADBROYDEN"; +static const char __pyx_k_NORM_INITIAL_ONLY[] = "NORM_INITIAL_ONLY"; +static const char __pyx_k_PARTITIONINGCHACO[] = "PARTITIONINGCHACO"; +static const char __pyx_k_PARTITIONINGPARTY[] = "PARTITIONINGPARTY"; +static const char __pyx_k_POSITIVE_DEFINITE[] = "POSITIVE_DEFINITE"; +static const char __pyx_k_QUAD_PRISM_TENSOR[] = "QUAD_PRISM_TENSOR"; +static const char __pyx_k_REFINEPOWELLSABIN[] = "REFINEPOWELLSABIN"; +static const char __pyx_k_TSConvergedReason[] = "TSConvergedReason"; +static const char __pyx_k_createLocalVector[] = "createLocalVector"; +static const char __pyx_k_fill_ratio_needed[] = "fill_ratio_needed"; +static const char __pyx_k_getDefaultSection[] = "getDefaultSection"; +static const char __pyx_k_getMaxKSPFailures[] = "getMaxKSPFailures"; +static const char __pyx_k_getObjectiveValue[] = "getObjectiveValue"; +static const char __pyx_k_getOwnershipRange[] = "getOwnershipRange"; +static const char __pyx_k_getSolutionUpdate[] = "getSolutionUpdate"; +static const char __pyx_k_jacobian_equality[] = "jacobian_equality"; +static const char __pyx_k_multDiagonalBlock[] = "multDiagonalBlock"; +static const char __pyx_k_null_communicator[] = "null communicator"; +static const char __pyx_k_positive_definite[] = "positive_definite"; +static const char __pyx_k_pyx_unpickle_Enum[] = "__pyx_unpickle_Enum"; +static const char __pyx_k_refinementUniform[] = "refinementUniform"; +static const char __pyx_k_setDefaultSection[] = "setDefaultSection"; +static const char __pyx_k_setMaxKSPFailures[] = "setMaxKSPFailures"; +static const char __pyx_k_solveTransposeAdd[] = "solveTransposeAdd"; +static const char __pyx_k_unknown_options_s[] = "unknown options: %s"; +static const char __pyx_k_viennaclvechandle[] = "viennaclvechandle"; +static const char __pyx_k_ASCII_MATRIXMARKET[] = "ASCII_MATRIXMARKET"; +static const char __pyx_k_CONTINUE_ITERATING[] = "CONTINUE_ITERATING"; +static const char __pyx_k_DIVERGED_BREAKDOWN[] = "DIVERGED_BREAKDOWN"; +static const char __pyx_k_DIVERGED_FNORM_NAN[] = "DIVERGED_FNORM_NAN"; +static const char __pyx_k_DIVERGED_LOCAL_MIN[] = "DIVERGED_LOCAL_MIN"; +static const char __pyx_k_DMComposite_access[] = "_DMComposite_access"; +static const char __pyx_k_DMSwarmCollectType[] = "DMSwarmCollectType"; +static const char __pyx_k_DMSwarmMigrateType[] = "DMSwarmMigrateType"; +static const char __pyx_k_DO_NOT_COPY_VALUES[] = "DO_NOT_COPY_VALUES"; +static const char __pyx_k_DeflationSpaceType[] = "DeflationSpaceType"; +static const char __pyx_k_GLOBAL_NONBLOCKING[] = "GLOBAL_NONBLOCKING"; +static const char __pyx_k_HERMITIANTRANSPOSE[] = "HERMITIANTRANSPOSE"; +static const char __pyx_k_INITIAL_FINAL_ONLY[] = "INITIAL_FINAL_ONLY"; +static const char __pyx_k_KSPConvergedReason[] = "KSPConvergedReason"; +static const char __pyx_k_LAYOUT_SUBDIVISION[] = "LAYOUT_SUBDIVISION"; +static const char __pyx_k_MatDuplicateOption[] = "MatDuplicateOption"; +static const char __pyx_k_MatFactorShiftType[] = "MatFactorShiftType"; +static const char __pyx_k_PARTITIONINGSQUARE[] = "PARTITIONINGSQUARE"; +static const char __pyx_k_POINT_PRISM_TENSOR[] = "POINT_PRISM_TENSOR"; +static const char __pyx_k_PatchConstructType[] = "PatchConstructType"; +static const char __pyx_k_ROWSCALINGVIENNACL[] = "ROWSCALINGVIENNACL"; +static const char __pyx_k_ReorderDefaultFlag[] = "ReorderDefaultFlag"; +static const char __pyx_k_TAOConvergedReason[] = "TAOConvergedReason"; +static const char __pyx_k_ZERO_INITIAL_GUESS[] = "ZERO_INITIAL_GUESS"; +static const char __pyx_k_applySymmetricLeft[] = "applySymmetricLeft"; +static const char __pyx_k_block_size_not_set[] = "block size not set"; +static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_createGlobalVector[] = "createGlobalVector"; +static const char __pyx_k_create_restriction[] = "create_restriction"; +static const char __pyx_k_getConvergedReason[] = "getConvergedReason"; +static const char __pyx_k_getIterationNumber[] = "getIterationNumber"; +static const char __pyx_k_getMaxStepFailures[] = "getMaxStepFailures"; +static const char __pyx_k_getOwnershipRanges[] = "getOwnershipRanges"; +static const char __pyx_k_hasExternalPackage[] = "hasExternalPackage"; +static const char __pyx_k_readonly_attribute[] = "readonly attribute"; +static const char __pyx_k_remove_sent_points[] = "remove_sent_points"; +static const char __pyx_k_restrictAnisotropy[] = "restrictAnisotropy"; +static const char __pyx_k_setConvergedReason[] = "setConvergedReason"; +static const char __pyx_k_setIterationNumber[] = "setIterationNumber"; +static const char __pyx_k_setMaxStepFailures[] = "setMaxStepFailures"; +static const char __pyx_k_strided_and_direct[] = ""; +static const char __pyx_k_CONVERGED_FNORM_ABS[] = "CONVERGED_FNORM_ABS"; +static const char __pyx_k_CONVERGED_ITERATING[] = "CONVERGED_ITERATING"; +static const char __pyx_k_CONVERGED_NEG_CURVE[] = "CONVERGED_NEG_CURVE"; +static const char __pyx_k_DAE_IMPLICIT_INDEX1[] = "DAE_IMPLICIT_INDEX1"; +static const char __pyx_k_DAE_IMPLICIT_INDEX2[] = "DAE_IMPLICIT_INDEX2"; +static const char __pyx_k_DAE_IMPLICIT_INDEX3[] = "DAE_IMPLICIT_INDEX3"; +static const char __pyx_k_DIVERGED_LS_FAILURE[] = "DIVERGED_LS_FAILURE"; +static const char __pyx_k_DMPlexTransformType[] = "DMPlexTransformType"; +static const char __pyx_k_IGNORE_ZERO_ENTRIES[] = "IGNORE_ZERO_ENTRIES"; +static const char __pyx_k_I_0_is_d_expected_d[] = "I[0] is %d, expected %d"; +static const char __pyx_k_LOCAL_FORWARD_SWEEP[] = "LOCAL_FORWARD_SWEEP"; +static const char __pyx_k_MIGRATE_DMCELLEXACT[] = "MIGRATE_DMCELLEXACT"; +static const char __pyx_k_MatPartitioningType[] = "MatPartitioningType"; +static const char __pyx_k_NORM_PRECONDITIONED[] = "NORM_PRECONDITIONED"; +static const char __pyx_k_NO_OFF_PROC_ENTRIES[] = "NO_OFF_PROC_ENTRIES"; +static const char __pyx_k_NotImplementedError[] = "NotImplementedError"; +static const char __pyx_k_PARTITIONINGAVERAGE[] = "PARTITIONINGAVERAGE"; +static const char __pyx_k_PARTITIONINGCURRENT[] = "PARTITIONINGCURRENT"; +static const char __pyx_k_REFINEBOUNDARYLAYER[] = "REFINEBOUNDARYLAYER"; +static const char __pyx_k_SNESConvergedReason[] = "SNESConvergedReason"; +static const char __pyx_k_applySymmetricRight[] = "applySymmetricRight"; +static const char __pyx_k_createNaturalVector[] = "createNaturalVector"; +static const char __pyx_k_ignoreOutsideDomain[] = "ignoreOutsideDomain"; +static const char __pyx_k_pop_python_vfprintf[] = "_pop_python_vfprintf"; +static const char __pyx_k_unknown_join_mode_s[] = "unknown join mode: %s"; +static const char __pyx_k_DAE_IMPLICIT_INDEXHI[] = "DAE_IMPLICIT_INDEXHI"; +static const char __pyx_k_DIVERGED_LINE_SEARCH[] = "DIVERGED_LINE_SEARCH"; +static const char __pyx_k_DMSwarmPICLayoutType[] = "DMSwarmPICLayoutType"; +static const char __pyx_k_ExactFinalTimeOption[] = "ExactFinalTimeOption"; +static const char __pyx_k_KEEP_NONZERO_PATTERN[] = "KEEP_NONZERO_PATTERN"; +static const char __pyx_k_LOCAL_BACKWARD_SWEEP[] = "LOCAL_BACKWARD_SWEEP"; +static const char __pyx_k_PARTITIONINGHIERARCH[] = "PARTITIONINGHIERARCH"; +static const char __pyx_k_PARTITIONINGPARMETIS[] = "PARTITIONINGPARMETIS"; +static const char __pyx_k_PARTITIONINGPTSCOTCH[] = "PARTITIONINGPTSCOTCH"; +static const char __pyx_k_PCDeflationSpaceType[] = "PCDeflationSpaceType"; +static const char __pyx_k_PCPatchConstructType[] = "PCPatchConstructType"; +static const char __pyx_k_SAME_NONZERO_PATTERN[] = "SAME_NONZERO_PATTERN"; +static const char __pyx_k_create_interpolation[] = "create_interpolation"; +static const char __pyx_k_equality_constraints[] = "equality_constraints"; +static const char __pyx_k_getEntriesPerElement[] = "getEntriesPerElement"; +static const char __pyx_k_getInitialGuessKnoll[] = "getInitialGuessKnoll"; +static const char __pyx_k_matpartitioning_type[] = "matpartitioning_type"; +static const char __pyx_k_push_python_vfprintf[] = "_push_python_vfprintf"; +static const char __pyx_k_setInitialGuessKnoll[] = "setInitialGuessKnoll"; +static const char __pyx_k_staticproperty___get[] = "staticproperty.__get__"; +static const char __pyx_k_strided_and_indirect[] = ""; +static const char __pyx_k_unknown_shift_type_s[] = "unknown shift type: %s"; +static const char __pyx_k_CONVERGED_ATOL_NORMAL[] = "CONVERGED_ATOL_NORMAL"; +static const char __pyx_k_CONVERGED_RTOL_NORMAL[] = "CONVERGED_RTOL_NORMAL"; +static const char __pyx_k_CONVERGED_STEP_LENGTH[] = "CONVERGED_STEP_LENGTH"; +static const char __pyx_k_DIVERGED_LINEAR_SOLVE[] = "DIVERGED_LINEAR_SOLVE"; +static const char __pyx_k_DIVERGED_NONSYMMETRIC[] = "DIVERGED_NONSYMMETRIC"; +static const char __pyx_k_DIVERGED_TR_REDUCTION[] = "DIVERGED_TR_REDUCTION"; +static const char __pyx_k_DMDAInterpolationType[] = "DMDAInterpolationType"; +static const char __pyx_k_DMStagStencilLocation[] = "DMStagStencilLocation"; +static const char __pyx_k_LOCAL_SYMMETRIC_SWEEP[] = "LOCAL_SYMMETRIC_SWEEP"; +static const char __pyx_k_NEW_NONZERO_LOCATIONS[] = "NEW_NONZERO_LOCATIONS"; +static const char __pyx_k_NORM_UNPRECONDITIONED[] = "NORM_UNPRECONDITIONED"; +static const char __pyx_k_NO_OFF_PROC_ZERO_ROWS[] = "NO_OFF_PROC_ZERO_ROWS"; +static const char __pyx_k_SCATTER_FORWARD_LOCAL[] = "SCATTER_FORWARD_LOCAL"; +static const char __pyx_k_SCATTER_REVERSE_LOCAL[] = "SCATTER_REVERSE_LOCAL"; +static const char __pyx_k_SHARE_NONZERO_PATTERN[] = "SHARE_NONZERO_PATTERN"; +static const char __pyx_k_contiguous_and_direct[] = ""; +static const char __pyx_k_getApplicationContext[] = "getApplicationContext"; +static const char __pyx_k_getConvergenceHistory[] = "getConvergenceHistory"; +static const char __pyx_k_getFunctionTolerances[] = "getFunctionTolerances"; +static const char __pyx_k_getGradientTolerances[] = "getGradientTolerances"; +static const char __pyx_k_productSetFromOptions[] = "productSetFromOptions"; +static const char __pyx_k_setApplicationContext[] = "setApplicationContext"; +static const char __pyx_k_setFunctionTolerances[] = "setFunctionTolerances"; +static const char __pyx_k_side_r_not_understood[] = "side '%r' not understood"; +static const char __pyx_k_unknown_device_type_s[] = "unknown device type: %s"; +static const char __pyx_k_unknown_stream_type_s[] = "unknown stream type: %s"; +static const char __pyx_k_DIVERGED_INDEFINITE_PC[] = "DIVERGED_INDEFINITE_PC"; +static const char __pyx_k_DIVERGED_STEP_REJECTED[] = "DIVERGED_STEP_REJECTED"; +static const char __pyx_k_ERROR_LOWER_TRIANGULAR[] = "ERROR_LOWER_TRIANGULAR"; +static const char __pyx_k_FORCE_DIAGONAL_ENTRIES[] = "FORCE_DIAGONAL_ENTRIES"; +static const char __pyx_k_GETROW_UPPERTRIANGULAR[] = "GETROW_UPPERTRIANGULAR"; +static const char __pyx_k_MIGRATE_DMCELLNSCATTER[] = "MIGRATE_DMCELLNSCATTER"; +static const char __pyx_k_MemoryView_of_r_object[] = ""; +static const char __pyx_k_Object_is_not_writable[] = "Object is not writable."; +static const char __pyx_k_STRUCTURALLY_SYMMETRIC[] = "STRUCTURALLY_SYMMETRIC"; +static const char __pyx_k_SUBSET_NONZERO_PATTERN[] = "SUBSET_NONZERO_PATTERN"; +static const char __pyx_k_communicator_not_owned[] = "communicator not owned"; +static const char __pyx_k_getDefaultLocalSection[] = "getDefaultLocalSection"; +static const char __pyx_k_getInitialGuessNonzero[] = "getInitialGuessNonzero"; +static const char __pyx_k_getLinearSolveFailures[] = "getLinearSolveFailures"; +static const char __pyx_k_petsc4py_PETSc_Log_pyx[] = "petsc4py/PETSc/Log.pyx"; +static const char __pyx_k_setDefaultLocalSection[] = "setDefaultLocalSection"; +static const char __pyx_k_setInitialGuessNonzero[] = "setInitialGuessNonzero"; +static const char __pyx_k_size_I_is_d_expected_d[] = "size(I) is %d, expected %d"; +static const char __pyx_k_size_J_is_d_expected_d[] = "size(J) is %d, expected %d"; +static const char __pyx_k_size_V_is_d_expected_d[] = "size(V) is %d, expected %d"; +static const char __pyx_k_unknown_element_type_s[] = "unknown element type: %s"; +static const char __pyx_k_unknown_scatter_mode_s[] = "unknown scatter mode: %s"; +static const char __pyx_k_unknown_stencil_type_s[] = "unknown stencil type: %s"; +static const char __pyx_k_COLLECT_DMDABOUNDINGBOX[] = "COLLECT_DMDABOUNDINGBOX"; +static const char __pyx_k_DIVERGED_BREAKDOWN_BICG[] = "DIVERGED_BREAKDOWN_BICG"; +static const char __pyx_k_DIVERGED_FUNCTION_COUNT[] = "DIVERGED_FUNCTION_COUNT"; +static const char __pyx_k_DIVERGED_INDEFINITE_MAT[] = "DIVERGED_INDEFINITE_MAT"; +static const char __pyx_k_DIVERGED_PCSETUP_FAILED[] = "DIVERGED_PCSETUP_FAILED"; +static const char __pyx_k_FACTOR_STRUCT_ZEROPIVOT[] = "FACTOR_STRUCT_ZEROPIVOT"; +static const char __pyx_k_IGNORE_LOWER_TRIANGULAR[] = "IGNORE_LOWER_TRIANGULAR"; +static const char __pyx_k_IGNORE_NEGATIVE_INDICES[] = "IGNORE_NEGATIVE_INDICES"; +static const char __pyx_k_IGNORE_OFF_PROC_ENTRIES[] = "IGNORE_OFF_PROC_ENTRIES"; +static const char __pyx_k_MemoryView_of_r_at_0x_x[] = ""; +static const char __pyx_k_NORM_INITIAL_FINAL_ONLY[] = "NORM_INITIAL_FINAL_ONLY"; +static const char __pyx_k_SUBSET_OFF_PROC_ENTRIES[] = "SUBSET_OFF_PROC_ENTRIES"; +static const char __pyx_k_UNKNOWN_NONZERO_PATTERN[] = "UNKNOWN_NONZERO_PATTERN"; +static const char __pyx_k_contiguous_and_indirect[] = ""; +static const char __pyx_k_getConstraintTolerances[] = "getConstraintTolerances"; +static const char __pyx_k_getDefaultGlobalSection[] = "getDefaultGlobalSection"; +static const char __pyx_k_isStructurallySymmetric[] = "isStructurallySymmetric"; +static const char __pyx_k_restrictAnisotropyFirst[] = "restrictAnisotropyFirst"; +static const char __pyx_k_setDefaultGlobalSection[] = "setDefaultGlobalSection"; +static const char __pyx_k_unknown_boundary_type_s[] = "unknown boundary type: %s"; +static const char __pyx_k_unknown_error_handler_s[] = "unknown error handler: %s"; +static const char __pyx_k_CONVERGED_FNORM_RELATIVE[] = "CONVERGED_FNORM_RELATIVE"; +static const char __pyx_k_CONVERGED_SNORM_RELATIVE[] = "CONVERGED_SNORM_RELATIVE"; +static const char __pyx_k_Cannot_index_with_type_s[] = "Cannot index with type '%s'"; +static const char __pyx_k_DAE_SEMI_EXPLICIT_INDEX1[] = "DAE_SEMI_EXPLICIT_INDEX1"; +static const char __pyx_k_DAE_SEMI_EXPLICIT_INDEX2[] = "DAE_SEMI_EXPLICIT_INDEX2"; +static const char __pyx_k_DAE_SEMI_EXPLICIT_INDEX3[] = "DAE_SEMI_EXPLICIT_INDEX3"; +static const char __pyx_k_DIVERGED_FUNCTION_DOMAIN[] = "DIVERGED_FUNCTION_DOMAIN"; +static const char __pyx_k_DIVERGED_JACOBIAN_DOMAIN[] = "DIVERGED_JACOBIAN_DOMAIN"; +static const char __pyx_k_DIVERGED_NONLINEAR_SOLVE[] = "DIVERGED_NONLINEAR_SOLVE"; +static const char __pyx_k_DMPlexReorderDefaultFlag[] = "DMPlexReorderDefaultFlag"; +static const char __pyx_k_FACTOR_NUMERIC_ZEROPIVOT[] = "FACTOR_NUMERIC_ZEROPIVOT"; +static const char __pyx_k_Missing_input_parameters[] = "Missing input parameters"; +static const char __pyx_k_NEW_NONZERO_LOCATION_ERR[] = "NEW_NONZERO_LOCATION_ERR"; +static const char __pyx_k_PCFieldSplitSchurPreType[] = "PCFieldSplitSchurPreType"; +static const char __pyx_k_SYMMETRIC_MULTIPLICATIVE[] = "SYMMETRIC_MULTIPLICATIVE"; +static const char __pyx_k_getNonlinearStepFailures[] = "getNonlinearStepFailures"; +static const char __pyx_k_incompatible_array_sizes[] = "incompatible array sizes"; +static const char __pyx_k_petsc4py_PETSc_Error_pyx[] = "petsc4py/PETSc/Error.pyx"; +static const char __pyx_k_petsc4py_PETSc_PETSc_pyx[] = "petsc4py/PETSc/PETSc.pyx"; +static const char __pyx_k_CONVERGED_HAPPY_BREAKDOWN[] = "CONVERGED_HAPPY_BREAKDOWN"; +static const char __pyx_k_DAE_SEMI_EXPLICIT_INDEXHI[] = "DAE_SEMI_EXPLICIT_INDEXHI"; +static const char __pyx_k_DIFFERENT_NONZERO_PATTERN[] = "DIFFERENT_NONZERO_PATTERN"; +static const char __pyx_k_Device_type_not_supported[] = "Device type {} not supported"; +static const char __pyx_k_HPDDMCoarseCorrectionType[] = "HPDDMCoarseCorrectionType"; +static const char __pyx_k_Invalid_shape_in_axis_d_d[] = "Invalid shape in axis %d: %d."; +static const char __pyx_k_PCFieldSplitSchurFactType[] = "PCFieldSplitSchurFactType"; +static const char __pyx_k_getMaxFunctionEvaluations[] = "getMaxFunctionEvaluations"; +static const char __pyx_k_getMaxLinearSolveFailures[] = "getMaxLinearSolveFailures"; +static const char __pyx_k_petsc4py_PETSc_Device_pyx[] = "petsc4py/PETSc/Device.pyx"; +static const char __pyx_k_setMaxFunctionEvaluations[] = "setMaxFunctionEvaluations"; +static const char __pyx_k_setMaxLinearSolveFailures[] = "setMaxLinearSolveFailures"; +static const char __pyx_k_NEW_NONZERO_ALLOCATION_ERR[] = "NEW_NONZERO_ALLOCATION_ERR"; +static const char __pyx_k_size_d_nnz_is_d_expected_d[] = "size(d_nnz) is %d, expected %d"; +static const char __pyx_k_size_o_nnz_is_d_expected_d[] = "size(o_nnz) is %d, expected %d"; +static const char __pyx_k_PCHPDDMCoarseCorrectionType[] = "PCHPDDMCoarseCorrectionType"; +static const char __pyx_k_UNUSED_NONZERO_LOCATION_ERR[] = "UNUSED_NONZERO_LOCATION_ERR"; +static const char __pyx_k_getMaxNonlinearStepFailures[] = "getMaxNonlinearStepFailures"; +static const char __pyx_k_itemsize_0_for_cython_array[] = "itemsize <= 0 for cython.array"; +static const char __pyx_k_petsc4py_PETSc_cyclicgc_pxi[] = "petsc4py/PETSc/cyclicgc.pxi"; +static const char __pyx_k_setMaxNonlinearStepFailures[] = "setMaxNonlinearStepFailures"; +static const char __pyx_k_unhandled_PetscDeviceType_d[] = "unhandled PetscDeviceType %d"; +static const char __pyx_k_unhandled_PetscStreamType_d[] = "unhandled PetscStreamType %d"; +static const char __pyx_k_Not_for_rectangular_matrices[] = "Not for rectangular matrices"; +static const char __pyx_k_Unsupported_PetscScalar_type[] = "Unsupported PetscScalar type"; +static const char __pyx_k_expecting_tuple_list_or_dict[] = "expecting tuple/list or dict"; +static const char __pyx_k_option_prefix_must_be_string[] = "option prefix must be string"; +static const char __pyx_k_unknown_interpolation_type_s[] = "unknown interpolation type: %s"; +static const char __pyx_k_block_size_d_must_be_positive[] = "block size %d must be positive"; +static const char __pyx_k_incompatible_array_sizes_nv_d[] = "incompatible array sizes: nv=%d"; +static const char __pyx_k_unable_to_allocate_array_data[] = "unable to allocate array data."; +static const char __pyx_k_TAO_Solver_Termination_Reasons[] = "\n TAO Solver Termination Reasons\n "; +static const char __pyx_k_expecting_a_C_contiguous_array[] = "expecting a C-contiguous array"; +static const char __pyx_k_strided_and_direct_or_indirect[] = ""; +static const char __pyx_k_A_matrix_with_d_rows_requires_a[] = "A matrix with %d rows requires a row pointer of length %d (given: %d)"; +static const char __pyx_k_EventDecorator_locals_decorator[] = "EventDecorator..decorator..wrapped_func"; +static const char __pyx_k_Invalid_mode_expected_r_w_or_rw[] = "Invalid mode: expected 'r', 'w' or 'rw'"; +static const char __pyx_k_Invalid_mode_expected_rw_r_or_w[] = "Invalid mode: expected 'rw', 'r', or 'w'"; +static const char __pyx_k_Portable_Extensible_Toolkit_for[] = "\nPortable, Extensible Toolkit for Scientific Computation\n"; +static const char __pyx_k_bcPoints_is_a_required_argument[] = "bcPoints is a required argument"; +static const char __pyx_k_cannot_place_input_array_size_d[] = "cannot place input array size %d, vector size %d"; +static const char __pyx_k_key_d_cannot_register_s_already[] = "key: %d, cannot register: %s, already registered: %s"; +static const char __pyx_k_size_array_is_d_expected_dx_d_d[] = "size(array) is %d, expected %dx%d=%d"; +static const char __pyx_k_unknown_stencil_location_type_s[] = "unknown stencil location type: %s"; +static const char __pyx_k_Buffer_view_does_not_expose_stri[] = "Buffer view does not expose strides"; +static const char __pyx_k_Can_only_create_a_buffer_that_is[] = "Can only create a buffer that is contiguous in memory."; +static const char __pyx_k_Cannot_assign_to_read_only_memor[] = "Cannot assign to read-only memoryview"; +static const char __pyx_k_Cannot_create_writable_memory_vi[] = "Cannot create writable memory view from read-only memoryview"; +static const char __pyx_k_Empty_shape_tuple_for_cython_arr[] = "Empty shape tuple for cython.array"; +static const char __pyx_k_Expect_a_dltensor_field_pycapsul[] = "Expect a dltensor field, pycapsule.PyCapsule can only be consumed once"; +static const char __pyx_k_Expect_a_dltensor_or_used_dltens[] = "Expect a dltensor or used_dltensor field"; +static const char __pyx_k_Given_d_column_indices_but_d_non[] = "Given %d column indices but %d non-zero values"; +static const char __pyx_k_Incompatible_checksums_0x_x_vs_0[] = "Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))"; +static const char __pyx_k_Indirect_dimensions_not_supporte[] = "Indirect dimensions not supported"; +static const char __pyx_k_Input_vector_has_no_tensor_infor[] = "Input vector has no tensor information"; +static const char __pyx_k_Invalid_mode_expected_c_or_fortr[] = "Invalid mode, expected 'c' or 'fortran', got %s"; +static const char __pyx_k_Must_provide_as_many_communicato[] = "Must provide as many communicators as levels"; +static const char __pyx_k_Must_provide_both_sizes_and_poin[] = "Must provide both sizes and points arrays"; +static const char __pyx_k_Must_provide_operator_for_USER_o[] = "Must provide operator for USER or PYTHON type"; +static const char __pyx_k_Out_of_bounds_on_buffer_access_a[] = "Out of bounds on buffer access (axis %d)"; +static const char __pyx_k_Out_of_memory_Allocated_d_Used_b[] = "Out of memory. Allocated: %d, Used by process: %d"; +static const char __pyx_k_Tensor_dtype_does_not_match_PETS[] = "Tensor dtype = {} does not match PETSc precision"; +static const char __pyx_k_Unable_to_convert_item_to_object[] = "Unable to convert item to object"; +static const char __pyx_k_Vector_local_size_d_is_not_compa[] = "Vector local size %d is not compatible with DMDA local sizes %s"; +static const char __pyx_k_accessing_non_existent_buffer_se[] = "accessing non-existent buffer segment"; +static const char __pyx_k_array_size_d_and_vector_local_si[] = "array size %d and vector local size %d block size %d"; +static const char __pyx_k_array_size_d_incompatible_with_v[] = "array size %d incompatible with vector local size %d"; +static const char __pyx_k_cell_indices_must_have_two_dimen[] = "cell indices must have two dimensions: cells.ndim=%d"; +static const char __pyx_k_column_indices_must_have_two_dim[] = "column indices must have two dimensions: cols.ndim=%d"; +static const char __pyx_k_coordinates_must_have_two_dimens[] = "coordinates must have two dimensions: coordinates.ndim=%d"; +static const char __pyx_k_coordinates_size_must_be_at_leas[] = "coordinates size must be at least %d"; +static const char __pyx_k_coords_vertices_must_have_two_di[] = "coords vertices must have two dimensions: coords.ndim=%d"; +static const char __pyx_k_get1dCoordinatecArrays_for_DMSta[] = "get1dCoordinatecArrays for DMStag not yet implemented in petsc4py"; +static const char __pyx_k_getValuesStagStencil_not_yet_imp[] = "getValuesStagStencil not yet implemented in petsc4py"; +static const char __pyx_k_getVecArray_for_DMStag_not_yet_i[] = "getVecArray for DMStag not yet implemented in petsc4py"; +static const char __pyx_k_ghosts_size_d_array_size_d_and_v[] = "ghosts size %d, array size %d, and vector local size %d block size %d"; +static const char __pyx_k_global_size_d_not_divisible_by_b[] = "global size %d not divisible by block size %d"; +static const char __pyx_k_got_differing_extents_in_dimensi[] = "got differing extents in dimension %d (got %d and %d)"; +static const char __pyx_k_incompatible_array_sizes_ni_d_nj[] = "incompatible array sizes: ni=%d, nj=%d, nv=%d"; +static const char __pyx_k_incompatible_array_sizes_ni_d_nv[] = "incompatible array sizes: ni=%d, nv=%d, bs=%d"; +static const char __pyx_k_input_arrays_have_incompatible_s[] = "input arrays have incompatible shapes: rows.shape=%s, cols.shape=%s, vals.shape=%s"; +static const char __pyx_k_local_and_global_sizes_cannot_be[] = "local and global sizes cannot be both 'DECIDE'"; +static const char __pyx_k_local_size_d_not_divisible_by_bl[] = "local size %d not divisible by block size %d"; +static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +static const char __pyx_k_number_of_dimensions_d_and_numbe[] = "number of dimensions %d and number ownership ranges %d"; +static const char __pyx_k_option_prefix_should_not_have_sp[] = "option prefix should not have spaces"; +static const char __pyx_k_option_prefix_should_not_start_w[] = "option prefix should not start with a hyphen"; +static const char __pyx_k_ownership_range_size_d_and_numbe[] = "ownership range size %d and number or processors %d"; +static const char __pyx_k_row_indices_must_have_two_dimens[] = "row indices must have two dimensions: rows.ndim=%d"; +static const char __pyx_k_setValueBlockedStagStencil_not_y[] = "setValueBlockedStagStencil not yet implemented in petsc4py"; +static const char __pyx_k_setValueStagStencil_not_yet_impl[] = "setValueStagStencil not yet implemented in petsc4py"; +static const char __pyx_k_setValuesStagStencil_not_yet_imp[] = "setValuesStagStencil not yet implemented in petsc4py"; +static const char __pyx_k_sizes_array_should_have_d_entrie[] = "sizes array should have %d entries (has %d)"; +static const char __pyx_k_unable_to_allocate_shape_and_str[] = "unable to allocate shape and strides."; +static const char __pyx_k_unhandled_PetscDeviceContextJoin[] = "unhandled PetscDeviceContextJoinMode %d"; +static const char __pyx_k_values_must_have_two_or_more_dim[] = "values must have two or more dimensions: vals.ndim=%d"; +static const char __pyx_k_EventDecorator_locals_decorator_2[] = "EventDecorator..decorator"; +static const char __pyx_k_incompatible_array_sizes_ni_d_nv_2[] = "incompatible array sizes: ni=%d, nv=%d"; +static PyObject *__pyx_kp_s_; +static PyObject *__pyx_n_s_A; +static PyObject *__pyx_n_s_A11; +static PyObject *__pyx_n_s_AB; +static PyObject *__pyx_n_s_ABC; +static PyObject *__pyx_n_s_ABt; +static PyObject *__pyx_n_s_ADD; +static PyObject *__pyx_n_s_ADDITIVE; +static PyObject *__pyx_n_s_ADD_ALL; +static PyObject *__pyx_n_s_ADD_ALL_VALUES; +static PyObject *__pyx_n_s_ADD_BC; +static PyObject *__pyx_n_s_ADD_BC_VALUES; +static PyObject *__pyx_n_s_ADD_VALUES; +static PyObject *__pyx_n_s_ADIOS; +static PyObject *__pyx_n_s_ADMM; +static PyObject *__pyx_n_s_ADVANCED; +static PyObject *__pyx_n_s_AGG; +static PyObject *__pyx_n_s_AGGERGATION; +static PyObject *__pyx_n_s_AIJ; +static PyObject *__pyx_n_s_AIJCRL; +static PyObject *__pyx_n_s_AIJCUSPARSE; +static PyObject *__pyx_n_s_AIJMKL; +static PyObject *__pyx_n_s_AIJPERM; +static PyObject *__pyx_n_s_AIJSELL; +static PyObject *__pyx_n_s_AIJVIENNACL; +static PyObject *__pyx_n_s_ALLGATHER; +static PyObject *__pyx_n_s_ALLGATHERV; +static PyObject *__pyx_n_s_ALLTOALL; +static PyObject *__pyx_n_s_ALMM; +static PyObject *__pyx_n_s_ALPHA; +static PyObject *__pyx_n_s_ALPHA2; +static PyObject *__pyx_n_s_ALWAYS; +static PyObject *__pyx_n_s_AMD; +static PyObject *__pyx_n_s_ANDERSON; +static PyObject *__pyx_n_s_AO; +static PyObject *__pyx_n_s_AOType; +static PyObject *__pyx_n_s_APPEND; +static PyObject *__pyx_n_s_APPEND_UPDATE; +static PyObject *__pyx_n_s_APPLY_LOWER; +static PyObject *__pyx_n_s_APPLY_UPPER; +static PyObject *__pyx_n_s_ARKIMEX; +static PyObject *__pyx_n_s_ARKIMEX1BEE; +static PyObject *__pyx_n_s_ARKIMEX2C; +static PyObject *__pyx_n_s_ARKIMEX2D; +static PyObject *__pyx_n_s_ARKIMEX2E; +static PyObject *__pyx_n_s_ARKIMEX3; +static PyObject *__pyx_n_s_ARKIMEX4; +static PyObject *__pyx_n_s_ARKIMEX5; +static PyObject *__pyx_n_s_ARKIMEXA2; +static PyObject *__pyx_n_s_ARKIMEXARS122; +static PyObject *__pyx_n_s_ARKIMEXARS443; +static PyObject *__pyx_n_s_ARKIMEXBPR3; +static PyObject *__pyx_n_s_ARKIMEXL2; +static PyObject *__pyx_n_s_ARKIMEXPRSSP2; +static PyObject *__pyx_n_s_ARKIMEXType; +static PyObject *__pyx_n_s_ASCII; +static PyObject *__pyx_n_s_ASCII_COMMON; +static PyObject *__pyx_n_s_ASCII_CSV; +static PyObject *__pyx_n_s_ASCII_DENSE; +static PyObject *__pyx_n_s_ASCII_FACTOR_INFO; +static PyObject *__pyx_n_s_ASCII_GLVIS; +static PyObject *__pyx_n_s_ASCII_IMPL; +static PyObject *__pyx_n_s_ASCII_INDEX; +static PyObject *__pyx_n_s_ASCII_INFO; +static PyObject *__pyx_n_s_ASCII_INFO_DETAIL; +static PyObject *__pyx_n_s_ASCII_LATEX; +static PyObject *__pyx_n_s_ASCII_MATHEMATICA; +static PyObject *__pyx_n_s_ASCII_MATLAB; +static PyObject *__pyx_n_s_ASCII_MATRIXMARKET; +static PyObject *__pyx_n_s_ASCII_PCICE; +static PyObject *__pyx_n_s_ASCII_PYTHON; +static PyObject *__pyx_n_s_ASCII_SYMMODU; +static PyObject *__pyx_n_s_ASCII_VTK; +static PyObject *__pyx_n_s_ASCII_VTK_CELL; +static PyObject *__pyx_n_s_ASCII_VTK_COORDS; +static PyObject *__pyx_n_s_ASCII_XML; +static PyObject *__pyx_n_s_ASFLS; +static PyObject *__pyx_n_s_ASILS; +static PyObject *__pyx_n_s_ASM; +static PyObject *__pyx_n_s_ASMType; +static PyObject *__pyx_n_s_ASPIN; +static PyObject *__pyx_n_s_AU; +static PyObject *__pyx_kp_s_A_matrix_with_d_rows_requires_a; +static PyObject *__pyx_n_s_AssemblyType; +static PyObject *__pyx_n_s_AtB; +static PyObject *__pyx_n_s_AttributeError; +static PyObject *__pyx_n_s_B; +static PyObject *__pyx_n_s_BACK; +static PyObject *__pyx_n_s_BACKWARD_SWEEP; +static PyObject *__pyx_n_s_BACK_DOWN; +static PyObject *__pyx_n_s_BACK_DOWN_LEFT; +static PyObject *__pyx_n_s_BACK_DOWN_RIGHT; +static PyObject *__pyx_n_s_BACK_LEFT; +static PyObject *__pyx_n_s_BACK_RIGHT; +static PyObject *__pyx_n_s_BACK_UP; +static PyObject *__pyx_n_s_BACK_UP_LEFT; +static PyObject *__pyx_n_s_BACK_UP_RIGHT; +static PyObject *__pyx_n_s_BAIJ; +static PyObject *__pyx_n_s_BAIJMKL; +static PyObject *__pyx_n_s_BALANCED; +static PyObject *__pyx_n_s_BAS; +static PyObject *__pyx_n_s_BASIC; +static PyObject *__pyx_n_s_BASICSYMPLECTIC; +static PyObject *__pyx_n_s_BCGS; +static PyObject *__pyx_n_s_BCGSL; +static PyObject *__pyx_n_s_BDDC; +static PyObject *__pyx_n_s_BDF; +static PyObject *__pyx_n_s_BDM; +static PyObject *__pyx_n_s_BE; +static PyObject *__pyx_n_s_BEULER; +static PyObject *__pyx_n_s_BFBT; +static PyObject *__pyx_n_s_BICG; +static PyObject *__pyx_n_s_BINARY; +static PyObject *__pyx_n_s_BINARY_MATLAB; +static PyObject *__pyx_n_s_BIORTH22; +static PyObject *__pyx_n_s_BJACOBI; +static PyObject *__pyx_n_s_BLMVM; +static PyObject *__pyx_n_s_BLOCK; +static PyObject *__pyx_n_s_BLOCKMAT; +static PyObject *__pyx_n_s_BMRM; +static PyObject *__pyx_n_s_BNCG; +static PyObject *__pyx_n_s_BNLS; +static PyObject *__pyx_n_s_BNTL; +static PyObject *__pyx_n_s_BNTR; +static PyObject *__pyx_n_s_BOX; +static PyObject *__pyx_n_s_BQNKLS; +static PyObject *__pyx_n_s_BQNKTL; +static PyObject *__pyx_n_s_BQNKTR; +static PyObject *__pyx_n_s_BQNLS; +static PyObject *__pyx_n_s_BQPIP; +static PyObject *__pyx_n_s_BRGN; +static PyObject *__pyx_n_s_Barrier; +static PyObject *__pyx_n_s_BoundaryType; +static PyObject *__pyx_kp_s_Buffer_view_does_not_expose_stri; +static PyObject *__pyx_n_s_C; +static PyObject *__pyx_n_s_CG; +static PyObject *__pyx_n_s_CGLS; +static PyObject *__pyx_n_s_CGNE; +static PyObject *__pyx_n_s_CGS; +static PyObject *__pyx_n_s_CHACO; +static PyObject *__pyx_n_s_CHEBYSHEV; +static PyObject *__pyx_n_s_CHOLESKY; +static PyObject *__pyx_n_s_CHOLMOD; +static PyObject *__pyx_n_s_CHOWILUVIENNACL; +static PyObject *__pyx_n_s_CLASSICAL; +static PyObject *__pyx_n_s_CN; +static PyObject *__pyx_n_s_COLLECT_BASIC; +static PyObject *__pyx_n_s_COLLECT_DMDABOUNDINGBOX; +static PyObject *__pyx_n_s_COLLECT_GENERAL; +static PyObject *__pyx_n_s_COLLECT_USER; +static PyObject *__pyx_n_s_COMM_NULL; +static PyObject *__pyx_n_s_COMM_SELF; +static PyObject *__pyx_n_s_COMM_WORLD; +static PyObject *__pyx_n_s_COMPOSITE; +static PyObject *__pyx_n_s_CONSTANTDIAGONAL; +static PyObject *__pyx_n_s_CONTINUE_ITERATING; +static PyObject *__pyx_n_s_CONVERGED_ATOL; +static PyObject *__pyx_n_s_CONVERGED_ATOL_NORMAL; +static PyObject *__pyx_n_s_CONVERGED_EVENT; +static PyObject *__pyx_n_s_CONVERGED_FNORM_ABS; +static PyObject *__pyx_n_s_CONVERGED_FNORM_RELATIVE; +static PyObject *__pyx_n_s_CONVERGED_GATOL; +static PyObject *__pyx_n_s_CONVERGED_GRTOL; +static PyObject *__pyx_n_s_CONVERGED_GTTOL; +static PyObject *__pyx_n_s_CONVERGED_HAPPY_BREAKDOWN; +static PyObject *__pyx_n_s_CONVERGED_ITERATING; +static PyObject *__pyx_n_s_CONVERGED_ITS; +static PyObject *__pyx_n_s_CONVERGED_MINF; +static PyObject *__pyx_n_s_CONVERGED_NEG_CURVE; +static PyObject *__pyx_n_s_CONVERGED_RTOL; +static PyObject *__pyx_n_s_CONVERGED_RTOL_NORMAL; +static PyObject *__pyx_n_s_CONVERGED_SNORM_RELATIVE; +static PyObject *__pyx_n_s_CONVERGED_STEPTOL; +static PyObject *__pyx_n_s_CONVERGED_STEP_LENGTH; +static PyObject *__pyx_n_s_CONVERGED_TIME; +static PyObject *__pyx_n_s_CONVERGED_USER; +static PyObject *__pyx_n_s_COPY_VALUES; +static PyObject *__pyx_n_s_CP; +static PyObject *__pyx_n_s_CR; +static PyObject *__pyx_n_s_CRANK_NICOLSON; +static PyObject *__pyx_n_s_CUDA; +static PyObject *__pyx_n_s_CUSPARSE; +static PyObject *__pyx_kp_s_Can_only_create_a_buffer_that_is; +static PyObject *__pyx_kp_s_Cannot_assign_to_read_only_memor; +static PyObject *__pyx_kp_s_Cannot_create_writable_memory_vi; +static PyObject *__pyx_kp_s_Cannot_index_with_type_s; +static PyObject *__pyx_n_s_Class; +static PyObject *__pyx_n_s_Clone; +static PyObject *__pyx_n_s_CollectType; +static PyObject *__pyx_n_s_Comm; +static PyObject *__pyx_n_s_ComplexType; +static PyObject *__pyx_n_s_CompositeType; +static PyObject *__pyx_n_s_ConvergedReason; +static PyObject *__pyx_n_s_D; +static PyObject *__pyx_n_s_DA; +static PyObject *__pyx_n_s_DAE_IMPLICIT_INDEX1; +static PyObject *__pyx_n_s_DAE_IMPLICIT_INDEX2; +static PyObject *__pyx_n_s_DAE_IMPLICIT_INDEX3; +static PyObject *__pyx_n_s_DAE_IMPLICIT_INDEXHI; +static PyObject *__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX1; +static PyObject *__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX2; +static PyObject *__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX3; +static PyObject *__pyx_n_s_DAE_SEMI_EXPLICIT_INDEXHI; +static PyObject *__pyx_n_s_DB16; +static PyObject *__pyx_n_s_DB2; +static PyObject *__pyx_n_s_DB4; +static PyObject *__pyx_n_s_DB8; +static PyObject *__pyx_n_s_DECIDE; +static PyObject *__pyx_n_s_DEFAULT; +static PyObject *__pyx_n_s_DEFAULT_BLOCKING; +static PyObject *__pyx_n_s_DEFLATED; +static PyObject *__pyx_n_s_DEFLATION; +static PyObject *__pyx_n_s_DENSE; +static PyObject *__pyx_n_s_DENSECUDA; +static PyObject *__pyx_n_s_DESTROY; +static PyObject *__pyx_n_s_DETERMINE; +static PyObject *__pyx_n_s_DGMRES; +static PyObject *__pyx_n_s_DIAG; +static PyObject *__pyx_n_s_DIFFERENT; +static PyObject *__pyx_n_s_DIFFERENT_NONZERO_PATTERN; +static PyObject *__pyx_n_s_DIFFERENT_NZ; +static PyObject *__pyx_n_s_DISCGRAD; +static PyObject *__pyx_n_s_DIVERGED_BREAKDOWN; +static PyObject *__pyx_n_s_DIVERGED_BREAKDOWN_BICG; +static PyObject *__pyx_n_s_DIVERGED_DTOL; +static PyObject *__pyx_n_s_DIVERGED_FNORM_NAN; +static PyObject *__pyx_n_s_DIVERGED_FUNCTION_COUNT; +static PyObject *__pyx_n_s_DIVERGED_FUNCTION_DOMAIN; +static PyObject *__pyx_n_s_DIVERGED_INDEFINITE_MAT; +static PyObject *__pyx_n_s_DIVERGED_INDEFINITE_PC; +static PyObject *__pyx_n_s_DIVERGED_INNER; +static PyObject *__pyx_n_s_DIVERGED_JACOBIAN_DOMAIN; +static PyObject *__pyx_n_s_DIVERGED_LINEAR_SOLVE; +static PyObject *__pyx_n_s_DIVERGED_LINE_SEARCH; +static PyObject *__pyx_n_s_DIVERGED_LOCAL_MIN; +static PyObject *__pyx_n_s_DIVERGED_LS_FAILURE; +static PyObject *__pyx_n_s_DIVERGED_MAXFCN; +static PyObject *__pyx_n_s_DIVERGED_MAXITS; +static PyObject *__pyx_n_s_DIVERGED_MAX_IT; +static PyObject *__pyx_n_s_DIVERGED_NAN; +static PyObject *__pyx_n_s_DIVERGED_NANORINF; +static PyObject *__pyx_n_s_DIVERGED_NONLINEAR_SOLVE; +static PyObject *__pyx_n_s_DIVERGED_NONSYMMETRIC; +static PyObject *__pyx_n_s_DIVERGED_NULL; +static PyObject *__pyx_n_s_DIVERGED_PCSETUP_FAILED; +static PyObject *__pyx_n_s_DIVERGED_STEP_REJECTED; +static PyObject *__pyx_n_s_DIVERGED_TR_DELTA; +static PyObject *__pyx_n_s_DIVERGED_TR_REDUCTION; +static PyObject *__pyx_n_s_DIVERGED_USER; +static PyObject *__pyx_n_s_DM; +static PyObject *__pyx_n_s_DMBoundaryType; +static PyObject *__pyx_n_s_DMComposite; +static PyObject *__pyx_n_s_DMComposite_access; +static PyObject *__pyx_n_s_DMDA; +static PyObject *__pyx_n_s_DMDAElementType; +static PyObject *__pyx_n_s_DMDAInterpolationType; +static PyObject *__pyx_n_s_DMDAStencilType; +static PyObject *__pyx_n_s_DMDA_Vec_array; +static PyObject *__pyx_n_s_DMInterpolation; +static PyObject *__pyx_n_s_DMLabel; +static PyObject *__pyx_n_s_DMPlex; +static PyObject *__pyx_n_s_DMPlexReorderDefaultFlag; +static PyObject *__pyx_n_s_DMPlexTransform; +static PyObject *__pyx_n_s_DMPlexTransformType; +static PyObject *__pyx_n_s_DMPolytopeType; +static PyObject *__pyx_n_s_DMShell; +static PyObject *__pyx_n_s_DMStag; +static PyObject *__pyx_n_s_DMStagStencilLocation; +static PyObject *__pyx_n_s_DMStagStencilType; +static PyObject *__pyx_n_s_DMSwarm; +static PyObject *__pyx_n_s_DMSwarmCollectType; +static PyObject *__pyx_n_s_DMSwarmMigrateType; +static PyObject *__pyx_n_s_DMSwarmPICLayoutType; +static PyObject *__pyx_n_s_DMSwarmType; +static PyObject *__pyx_n_s_DMType; +static PyObject *__pyx_n_s_DOF; +static PyObject *__pyx_n_s_DOWN; +static PyObject *__pyx_n_s_DOWN_LEFT; +static PyObject *__pyx_n_s_DOWN_RIGHT; +static PyObject *__pyx_n_s_DO_NOT_COPY_VALUES; +static PyObject *__pyx_n_s_DRAW; +static PyObject *__pyx_n_s_DRAW_BASIC; +static PyObject *__pyx_n_s_DRAW_CONTOUR; +static PyObject *__pyx_n_s_DRAW_LG; +static PyObject *__pyx_n_s_DRAW_LG_XRANGE; +static PyObject *__pyx_n_s_DRAW_PORTS; +static PyObject *__pyx_n_s_DROP; +static PyObject *__pyx_n_s_DS; +static PyObject *__pyx_n_s_DSType; +static PyObject *__pyx_n_s_DUMMY; +static PyObject *__pyx_n_s_DeflationSpaceType; +static PyObject *__pyx_n_s_Device; +static PyObject *__pyx_n_s_DeviceContext; +static PyObject *__pyx_n_s_DeviceJoinMode; +static PyObject *__pyx_n_s_DeviceType; +static PyObject *__pyx_kp_s_Device_type_not_supported; +static PyObject *__pyx_n_s_DrawSize; +static PyObject *__pyx_n_s_DualSpace; +static PyObject *__pyx_n_s_DualSpaceType; +static PyObject *__pyx_n_s_Dup; +static PyObject *__pyx_n_s_DuplicateOption; +static PyObject *__pyx_n_s_EIMEX; +static PyObject *__pyx_n_s_EISENSTAT; +static PyObject *__pyx_n_s_ELEMENT; +static PyObject *__pyx_n_s_ELEMENTAL; +static PyObject *__pyx_n_s_ERROR_LOWER_TRIANGULAR; +static PyObject *__pyx_n_s_ESSL; +static PyObject *__pyx_n_s_EULER; +static PyObject *__pyx_n_s_EXODUSII; +static PyObject *__pyx_n_s_EXOTIC; +static PyObject *__pyx_n_s_EXPLICIT; +static PyObject *__pyx_n_s_EXTRUDE; +static PyObject *__pyx_n_s_ElementType; +static PyObject *__pyx_n_s_Ellipsis; +static PyObject *__pyx_kp_s_Empty_shape_tuple_for_cython_arr; +static PyObject *__pyx_n_s_EquationType; +static PyObject *__pyx_n_s_Error; +static PyObject *__pyx_n_s_Error___init; +static PyObject *__pyx_n_s_Error___nonzero; +static PyObject *__pyx_n_s_Error___repr; +static PyObject *__pyx_n_s_Error___str; +static PyObject *__pyx_n_s_Event; +static PyObject *__pyx_n_s_EventDecorator; +static PyObject *__pyx_n_s_EventDecorator_locals_decorator; +static PyObject *__pyx_n_s_EventDecorator_locals_decorator_2; +static PyObject *__pyx_n_s_ExactFinalTime; +static PyObject *__pyx_n_s_ExactFinalTimeOption; +static PyObject *__pyx_kp_s_Expect_a_dltensor_field_pycapsul; +static PyObject *__pyx_kp_s_Expect_a_dltensor_or_used_dltens; +static PyObject *__pyx_n_s_FACTOR_NUMERIC_ZEROPIVOT; +static PyObject *__pyx_n_s_FACTOR_OTHER; +static PyObject *__pyx_n_s_FACTOR_OUTMEMORY; +static PyObject *__pyx_n_s_FACTOR_STRUCT_ZEROPIVOT; +static PyObject *__pyx_n_s_FAILED; +static PyObject *__pyx_n_s_FALSE; +static PyObject *__pyx_n_s_FAS; +static PyObject *__pyx_n_s_FBCGS; +static PyObject *__pyx_n_s_FBCGSR; +static PyObject *__pyx_n_s_FCG; +static PyObject *__pyx_n_s_FE; +static PyObject *__pyx_n_s_FETIDP; +static PyObject *__pyx_n_s_FEType; +static PyObject *__pyx_n_s_FFT; +static PyObject *__pyx_n_s_FFTW; +static PyObject *__pyx_n_s_FGMRES; +static PyObject *__pyx_n_s_FIELDSPLIT; +static PyObject *__pyx_n_s_FINAL; +static PyObject *__pyx_n_s_FINAL_ASSEMBLY; +static PyObject *__pyx_n_s_FINAL_ONLY; +static PyObject *__pyx_n_s_FLUSH; +static PyObject *__pyx_n_s_FLUSH_ASSEMBLY; +static PyObject *__pyx_n_s_FORCE_DIAGONAL_ENTRIES; +static PyObject *__pyx_n_s_FOREST; +static PyObject *__pyx_n_s_FORWARD; +static PyObject *__pyx_n_s_FORWARD_LOCAL; +static PyObject *__pyx_n_s_FORWARD_SWEEP; +static PyObject *__pyx_n_s_FRB; +static PyObject *__pyx_n_s_FROBENIUS; +static PyObject *__pyx_n_s_FRONT; +static PyObject *__pyx_n_s_FRONT_DOWN; +static PyObject *__pyx_n_s_FRONT_DOWN_LEFT; +static PyObject *__pyx_n_s_FRONT_DOWN_RIGHT; +static PyObject *__pyx_n_s_FRONT_LEFT; +static PyObject *__pyx_n_s_FRONT_RIGHT; +static PyObject *__pyx_n_s_FRONT_UP; +static PyObject *__pyx_n_s_FRONT_UP_LEFT; +static PyObject *__pyx_n_s_FRONT_UP_RIGHT; +static PyObject *__pyx_n_s_FULL; +static PyObject *__pyx_n_s_FULL_SIZE; +static PyObject *__pyx_n_s_FV_GHOST; +static PyObject *__pyx_n_s_FactorShiftType; +static PyObject *__pyx_n_s_FailedReason; +static PyObject *__pyx_n_s_FileMode; +static PyObject *__pyx_n_s_Format; +static PyObject *__pyx_n_s_Free; +static PyObject *__pyx_n_s_G; +static PyObject *__pyx_n_s_GALERKIN; +static PyObject *__pyx_n_s_GAMG; +static PyObject *__pyx_n_s_GAMGType; +static PyObject *__pyx_n_s_GASM; +static PyObject *__pyx_n_s_GASMType; +static PyObject *__pyx_n_s_GATHER; +static PyObject *__pyx_n_s_GATHERV; +static PyObject *__pyx_n_s_GCR; +static PyObject *__pyx_n_s_GENERAL; +static PyObject *__pyx_n_s_GEO; +static PyObject *__pyx_n_s_GETROW_UPPERTRIANGULAR; +static PyObject *__pyx_n_s_GHOSTED; +static PyObject *__pyx_kp_s_GIT_Date; +static PyObject *__pyx_n_s_GLEE; +static PyObject *__pyx_n_s_GLLE; +static PyObject *__pyx_n_s_GLMapMode; +static PyObject *__pyx_n_s_GLOBAL_BLOCKING; +static PyObject *__pyx_n_s_GLOBAL_MAX; +static PyObject *__pyx_n_s_GLOBAL_NONBLOCKING; +static PyObject *__pyx_n_s_GLOBAL_SUM; +static PyObject *__pyx_n_s_GLTR; +static PyObject *__pyx_n_s_GLVIS; +static PyObject *__pyx_n_s_GMRES; +static PyObject *__pyx_n_s_GPCG; +static PyObject *__pyx_n_s_GROPPCG; +static PyObject *__pyx_n_s_Get_rank; +static PyObject *__pyx_n_s_Get_size; +static PyObject *__pyx_kp_s_Given_d_column_indices_but_d_non; +static PyObject *__pyx_n_s_H; +static PyObject *__pyx_n_s_H2OPUS; +static PyObject *__pyx_n_s_HAAR; +static PyObject *__pyx_n_s_HALF; +static PyObject *__pyx_n_s_HALF_SIZE; +static PyObject *__pyx_n_s_HASH; +static PyObject *__pyx_n_s_HDF5; +static PyObject *__pyx_n_s_HDF5_MAT; +static PyObject *__pyx_n_s_HDF5_PETSC; +static PyObject *__pyx_n_s_HDF5_VIZ; +static PyObject *__pyx_n_s_HDF5_XDMF; +static PyObject *__pyx_n_s_HERMITIAN; +static PyObject *__pyx_n_s_HERMITIANTRANSPOSE; +static PyObject *__pyx_n_s_HEXAHEDRON; +static PyObject *__pyx_n_s_HIP; +static PyObject *__pyx_n_s_HMG; +static PyObject *__pyx_n_s_HOST; +static PyObject *__pyx_n_s_HPDDM; +static PyObject *__pyx_n_s_HPDDMCoarseCorrectionType; +static PyObject *__pyx_n_s_HYPRE; +static PyObject *__pyx_n_s_HYPRESSTRUCT; +static PyObject *__pyx_n_s_HYPRESTRUCT; +static PyObject *__pyx_n_s_I; +static PyObject *__pyx_n_s_IBCGS; +static PyObject *__pyx_n_s_ICC; +static PyObject *__pyx_n_s_IGNORE_LOWER_TRIANGULAR; +static PyObject *__pyx_n_s_IGNORE_NEGATIVE_INDICES; +static PyObject *__pyx_n_s_IGNORE_OFF_PROC_ENTRIES; +static PyObject *__pyx_n_s_IGNORE_ZERO_ENTRIES; +static PyObject *__pyx_n_s_ILU; +static PyObject *__pyx_n_s_IMPLICIT; +static PyObject *__pyx_n_s_INBLOCKS; +static PyObject *__pyx_n_s_INF; +static PyObject *__pyx_n_s_INFINITY; +static PyObject *__pyx_n_s_INITIAL_FINAL_ONLY; +static PyObject *__pyx_n_s_INITIAL_ONLY; +static PyObject *__pyx_n_s_INSERT; +static PyObject *__pyx_n_s_INSERT_ALL; +static PyObject *__pyx_n_s_INSERT_ALL_VALUES; +static PyObject *__pyx_n_s_INSERT_BC; +static PyObject *__pyx_n_s_INSERT_BC_VALUES; +static PyObject *__pyx_n_s_INSERT_VALUES; +static PyObject *__pyx_n_s_INTERIOR_GHOST; +static PyObject *__pyx_n_s_INTERPOLATE; +static PyObject *__pyx_n_s_IPM; +static PyObject *__pyx_n_s_IS; +static PyObject *__pyx_n_s_ISType; +static PyObject *__pyx_n_s_IS_buffer; +static PyObject *__pyx_n_s_ITERATING; +static PyObject *__pyx_kp_s_I_0_is_d_expected_d; +static PyObject *__pyx_kp_s_Incompatible_checksums_0x_x_vs_0; +static PyObject *__pyx_n_s_IndexError; +static PyObject *__pyx_kp_s_Indirect_dimensions_not_supporte; +static PyObject *__pyx_n_s_InfoType; +static PyObject *__pyx_kp_s_Input_vector_has_no_tensor_infor; +static PyObject *__pyx_n_s_InsertMode; +static PyObject *__pyx_n_s_IntType; +static PyObject *__pyx_n_s_InterpolationType; +static PyObject *__pyx_kp_s_Invalid_mode_expected_c_or_fortr; +static PyObject *__pyx_kp_s_Invalid_mode_expected_r_w_or_rw; +static PyObject *__pyx_kp_s_Invalid_mode_expected_rw_r_or_w; +static PyObject *__pyx_kp_s_Invalid_shape_in_axis_d_d; +static PyObject *__pyx_n_s_J; +static PyObject *__pyx_n_s_JACOBI; +static PyObject *__pyx_n_s_JoinMode; +static PyObject *__pyx_n_s_KACZMARZ; +static PyObject *__pyx_n_s_KAIJ; +static PyObject *__pyx_n_s_KASKADE; +static PyObject *__pyx_n_s_KEEP_NONZERO_PATTERN; +static PyObject *__pyx_n_s_KLU; +static PyObject *__pyx_n_s_KOKKOS; +static PyObject *__pyx_n_s_KSP; +static PyObject *__pyx_n_s_KSPConvergedReason; +static PyObject *__pyx_n_s_KSPNormType; +static PyObject *__pyx_n_s_KSPONLY; +static PyObject *__pyx_n_s_KSPTRANSPOSEONLY; +static PyObject *__pyx_n_s_KSPType; +static PyObject *__pyx_n_s_KeyError; +static PyObject *__pyx_n_s_L; +static PyObject *__pyx_n_s_LAGRANGE; +static PyObject *__pyx_n_s_LAYOUT_GAUSS; +static PyObject *__pyx_n_s_LAYOUT_REGULAR; +static PyObject *__pyx_n_s_LAYOUT_SUBDIVISION; +static PyObject *__pyx_n_s_LCD; +static PyObject *__pyx_n_s_LCL; +static PyObject *__pyx_n_s_LEFT; +static PyObject *__pyx_n_s_LGMRES; +static PyObject *__pyx_n_s_LGMap; +static PyObject *__pyx_n_s_LGMapType; +static PyObject *__pyx_n_s_LINEAR; +static PyObject *__pyx_n_s_LMVM; +static PyObject *__pyx_n_s_LMVMBADBROYDEN; +static PyObject *__pyx_n_s_LMVMBFGS; +static PyObject *__pyx_n_s_LMVMBROYDEN; +static PyObject *__pyx_n_s_LMVMDFP; +static PyObject *__pyx_n_s_LMVMDIAGBBROYDEN; +static PyObject *__pyx_n_s_LMVMSR1; +static PyObject *__pyx_n_s_LMVMSYMBADBROYDEN; +static PyObject *__pyx_n_s_LMVMSYMBROYDEN; +static PyObject *__pyx_n_s_LOAD_BALANCE; +static PyObject *__pyx_n_s_LOCAL; +static PyObject *__pyx_n_s_LOCALREF; +static PyObject *__pyx_n_s_LOCAL_BACKWARD_SWEEP; +static PyObject *__pyx_n_s_LOCAL_FORWARD_SWEEP; +static PyObject *__pyx_n_s_LOCAL_SYMMETRIC_SWEEP; +static PyObject *__pyx_n_s_LOWER; +static PyObject *__pyx_n_s_LRC; +static PyObject *__pyx_n_s_LSC; +static PyObject *__pyx_n_s_LSQR; +static PyObject *__pyx_n_s_LU; +static PyObject *__pyx_n_s_LUSOL; +static PyObject *__pyx_n_s_Left; +static PyObject *__pyx_n_s_Log; +static PyObject *__pyx_n_s_LogClass; +static PyObject *__pyx_n_s_LogEvent; +static PyObject *__pyx_n_s_LogStage; +static PyObject *__pyx_n_s_MAIJ; +static PyObject *__pyx_n_s_MAPPING; +static PyObject *__pyx_n_s_MASK; +static PyObject *__pyx_n_s_MAT; +static PyObject *__pyx_n_s_MATCHSTEP; +static PyObject *__pyx_n_s_MATHEMATICA; +static PyObject *__pyx_n_s_MATLAB; +static PyObject *__pyx_n_s_MATPARTITIONING; +static PyObject *__pyx_n_s_MAX; +static PyObject *__pyx_n_s_MAX_VALUES; +static PyObject *__pyx_n_s_MEMORYSCALABLE; +static PyObject *__pyx_n_s_METISND; +static PyObject *__pyx_n_s_MEYER; +static PyObject *__pyx_n_s_MFFD; +static PyObject *__pyx_n_s_MG; +static PyObject *__pyx_n_s_MGCycleType; +static PyObject *__pyx_n_s_MGType; +static PyObject *__pyx_n_s_MIGRATE_BASIC; +static PyObject *__pyx_n_s_MIGRATE_DMCELLEXACT; +static PyObject *__pyx_n_s_MIGRATE_DMCELLNSCATTER; +static PyObject *__pyx_n_s_MIGRATE_USER; +static PyObject *__pyx_n_s_MIMEX; +static PyObject *__pyx_n_s_MINRES; +static PyObject *__pyx_n_s_MIRROR; +static PyObject *__pyx_n_s_MKL_CPARDISO; +static PyObject *__pyx_n_s_MKL_PARDISO; +static PyObject *__pyx_n_s_ML; +static PyObject *__pyx_n_s_MOAB; +static PyObject *__pyx_n_s_MPI; +static PyObject *__pyx_n_s_MPIADJ; +static PyObject *__pyx_n_s_MPIAIJ; +static PyObject *__pyx_n_s_MPIAIJCRL; +static PyObject *__pyx_n_s_MPIAIJCUSPARSE; +static PyObject *__pyx_n_s_MPIAIJMKL; +static PyObject *__pyx_n_s_MPIAIJPERM; +static PyObject *__pyx_n_s_MPIAIJSELL; +static PyObject *__pyx_n_s_MPIAIJVIENNACL; +static PyObject *__pyx_n_s_MPIBAIJ; +static PyObject *__pyx_n_s_MPIBAIJMKL; +static PyObject *__pyx_n_s_MPICUDA; +static PyObject *__pyx_n_s_MPIDENSE; +static PyObject *__pyx_n_s_MPIDENSECUDA; +static PyObject *__pyx_n_s_MPIHIP; +static PyObject *__pyx_n_s_MPIKAIJ; +static PyObject *__pyx_n_s_MPIKOKKOS; +static PyObject *__pyx_n_s_MPIMAIJ; +static PyObject *__pyx_n_s_MPISBAIJ; +static PyObject *__pyx_n_s_MPISELL; +static PyObject *__pyx_n_s_MPIVIENNACL; +static PyObject *__pyx_kp_s_MPI_Error; +static PyObject *__pyx_n_s_MPRK; +static PyObject *__pyx_n_s_MS; +static PyObject *__pyx_n_s_MULTIPLICATIVE; +static PyObject *__pyx_n_s_MUMPS; +static PyObject *__pyx_n_s_MapMode; +static PyObject *__pyx_n_s_Mat; +static PyObject *__pyx_n_s_MatAssemblyType; +static PyObject *__pyx_n_s_MatDuplicateOption; +static PyObject *__pyx_n_s_MatFactorShiftType; +static PyObject *__pyx_n_s_MatInfoType; +static PyObject *__pyx_n_s_MatOption; +static PyObject *__pyx_n_s_MatOrderingType; +static PyObject *__pyx_n_s_MatPartitioning; +static PyObject *__pyx_n_s_MatPartitioningType; +static PyObject *__pyx_n_s_MatSORType; +static PyObject *__pyx_n_s_MatSolverType; +static PyObject *__pyx_n_s_MatStructure; +static PyObject *__pyx_n_s_MatType; +static PyObject *__pyx_n_s_Mat_Stencil; +static PyObject *__pyx_n_s_MemoryError; +static PyObject *__pyx_kp_s_MemoryView_of_r_at_0x_x; +static PyObject *__pyx_kp_s_MemoryView_of_r_object; +static PyObject *__pyx_n_s_MigrateType; +static PyObject *__pyx_kp_s_Missing_input_parameters; +static PyObject *__pyx_n_s_Mode; +static PyObject *__pyx_kp_s_Must_provide_as_many_communicato; +static PyObject *__pyx_kp_s_Must_provide_both_sizes_and_poin; +static PyObject *__pyx_kp_s_Must_provide_operator_for_USER_o; +static PyObject *__pyx_n_s_N1; +static PyObject *__pyx_n_s_N12; +static PyObject *__pyx_n_s_N2; +static PyObject *__pyx_n_s_NASH; +static PyObject *__pyx_n_s_NASM; +static PyObject *__pyx_n_s_NATIVE; +static PyObject *__pyx_n_s_NATURAL; +static PyObject *__pyx_n_s_NCG; +static PyObject *__pyx_n_s_ND; +static PyObject *__pyx_n_s_ND_Pi; +static PyObject *__pyx_n_s_ND_Pi_Full; +static PyObject *__pyx_n_s_NEIGHBOR; +static PyObject *__pyx_n_s_NEST; +static PyObject *__pyx_n_s_NETWORK; +static PyObject *__pyx_n_s_NEWTONLS; +static PyObject *__pyx_n_s_NEWTONTR; +static PyObject *__pyx_n_s_NEW_NONZERO_ALLOCATION_ERR; +static PyObject *__pyx_n_s_NEW_NONZERO_LOCATIONS; +static PyObject *__pyx_n_s_NEW_NONZERO_LOCATION_ERR; +static PyObject *__pyx_n_s_NGMRES; +static PyObject *__pyx_n_s_NGS; +static PyObject *__pyx_n_s_NINFINITY; +static PyObject *__pyx_n_s_NLS; +static PyObject *__pyx_n_s_NM; +static PyObject *__pyx_n_s_NN; +static PyObject *__pyx_n_s_NO; +static PyObject *__pyx_n_s_NOERROR; +static PyObject *__pyx_n_s_NOFORMAT; +static PyObject *__pyx_n_s_NONE; +static PyObject *__pyx_n_s_NONLINEAR; +static PyObject *__pyx_n_s_NONZERO; +static PyObject *__pyx_n_s_NORMAL; +static PyObject *__pyx_n_s_NORMALHERMITIAN; +static PyObject *__pyx_n_s_NORM_1; +static PyObject *__pyx_n_s_NORM_1_AND_2; +static PyObject *__pyx_n_s_NORM_2; +static PyObject *__pyx_n_s_NORM_ALWAYS; +static PyObject *__pyx_n_s_NORM_DEFAULT; +static PyObject *__pyx_n_s_NORM_FINAL_ONLY; +static PyObject *__pyx_n_s_NORM_FROBENIUS; +static PyObject *__pyx_n_s_NORM_INFINITY; +static PyObject *__pyx_n_s_NORM_INITIAL_FINAL_ONLY; +static PyObject *__pyx_n_s_NORM_INITIAL_ONLY; +static PyObject *__pyx_n_s_NORM_MAX; +static PyObject *__pyx_n_s_NORM_NATURAL; +static PyObject *__pyx_n_s_NORM_NONE; +static PyObject *__pyx_n_s_NORM_PRECONDITIONED; +static PyObject *__pyx_n_s_NORM_UNPRECONDITIONED; +static PyObject *__pyx_n_s_NOTSET; +static PyObject *__pyx_n_s_NOT_SET_VALUES; +static PyObject *__pyx_n_s_NO_OFF_PROC_ENTRIES; +static PyObject *__pyx_n_s_NO_OFF_PROC_ZERO_ROWS; +static PyObject *__pyx_n_s_NO_SYNC; +static PyObject *__pyx_n_s_NRICHARDSON; +static PyObject *__pyx_n_s_NTL; +static PyObject *__pyx_n_s_NTR; +static PyObject *__pyx_n_s_NULLLOC; +static PyObject *__pyx_n_s_NZ; +static PyObject *__pyx_n_s_NormSchedule; +static PyObject *__pyx_n_s_NormType; +static PyObject *__pyx_n_s_NotImplemented; +static PyObject *__pyx_n_s_NotImplementedError; +static PyObject *__pyx_kp_s_Not_for_rectangular_matrices; +static PyObject *__pyx_kp_s_Not_for_type; +static PyObject *__pyx_n_s_NullSpace; +static PyObject *__pyx_n_b_O; +static PyObject *__pyx_n_s_ODE_EXPLICIT; +static PyObject *__pyx_n_s_ODE_IMPLICIT; +static PyObject *__pyx_n_s_OPENCL; +static PyObject *__pyx_n_s_OPTION_MAX; +static PyObject *__pyx_n_s_OPTION_MIN; +static PyObject *__pyx_n_s_OWD; +static PyObject *__pyx_n_s_OWLQN; +static PyObject *__pyx_n_s_Object; +static PyObject *__pyx_kp_s_Object_is_not_writable; +static PyObject *__pyx_n_s_Option; +static PyObject *__pyx_n_s_Options; +static PyObject *__pyx_n_s_OrderingType; +static PyObject *__pyx_kp_s_Out_of_bounds_on_buffer_access_a; +static PyObject *__pyx_kp_s_Out_of_memory_Allocated_d_Used_b; +static PyObject *__pyx_n_s_P; +static PyObject *__pyx_n_s_P1; +static PyObject *__pyx_n_s_P4EST; +static PyObject *__pyx_n_s_P8EST; +static PyObject *__pyx_n_s_PARDECOMP; +static PyObject *__pyx_n_s_PARMETIS; +static PyObject *__pyx_n_s_PARMS; +static PyObject *__pyx_n_s_PARTITIONINGAVERAGE; +static PyObject *__pyx_n_s_PARTITIONINGCHACO; +static PyObject *__pyx_n_s_PARTITIONINGCURRENT; +static PyObject *__pyx_n_s_PARTITIONINGHIERARCH; +static PyObject *__pyx_n_s_PARTITIONINGPARMETIS; +static PyObject *__pyx_n_s_PARTITIONINGPARTY; +static PyObject *__pyx_n_s_PARTITIONINGPTSCOTCH; +static PyObject *__pyx_n_s_PARTITIONINGSQUARE; +static PyObject *__pyx_n_s_PASTIX; +static PyObject *__pyx_n_s_PATCH; +static PyObject *__pyx_n_s_PBJACOBI; +static PyObject *__pyx_n_s_PC; +static PyObject *__pyx_n_s_PCASMType; +static PyObject *__pyx_n_s_PCCompositeType; +static PyObject *__pyx_n_s_PCDeflationSpaceType; +static PyObject *__pyx_n_s_PCFailedReason; +static PyObject *__pyx_n_s_PCFieldSplitSchurFactType; +static PyObject *__pyx_n_s_PCFieldSplitSchurPreType; +static PyObject *__pyx_n_s_PCGAMGType; +static PyObject *__pyx_n_s_PCGASMType; +static PyObject *__pyx_n_s_PCHPDDMCoarseCorrectionType; +static PyObject *__pyx_n_s_PCMGCycleType; +static PyObject *__pyx_n_s_PCMGType; +static PyObject *__pyx_n_s_PCPatchConstructType; +static PyObject *__pyx_n_s_PCSide; +static PyObject *__pyx_n_s_PCType; +static PyObject *__pyx_n_s_PD; +static PyObject *__pyx_n_s_PDIPM; +static PyObject *__pyx_n_s_PERIODIC; +static PyObject *__pyx_n_s_PETSC; +static PyObject *__pyx_kp_s_PETSc_Error_d; +static PyObject *__pyx_n_s_PFMG; +static PyObject *__pyx_n_s_PGMRES; +static PyObject *__pyx_n_s_PIC; +static PyObject *__pyx_n_s_PICLayoutType; +static PyObject *__pyx_n_s_PINFINITY; +static PyObject *__pyx_n_s_PIPEBCGS; +static PyObject *__pyx_n_s_PIPECG; +static PyObject *__pyx_n_s_PIPECG2; +static PyObject *__pyx_n_s_PIPECGRR; +static PyObject *__pyx_n_s_PIPECR; +static PyObject *__pyx_n_s_PIPEFCG; +static PyObject *__pyx_n_s_PIPEFGMRES; +static PyObject *__pyx_n_s_PIPEGCR; +static PyObject *__pyx_n_s_PIPELCG; +static PyObject *__pyx_n_s_PIPEPRCG; +static PyObject *__pyx_n_s_PLEX; +static PyObject *__pyx_n_s_POINT; +static PyObject *__pyx_n_s_POINT_PRISM_TENSOR; +static PyObject *__pyx_n_s_POLYNOMIAL; +static PyObject *__pyx_n_s_POSITIVE_DEFINITE; +static PyObject *__pyx_n_s_POUNDERS; +static PyObject *__pyx_n_s_PREALLOCATOR; +static PyObject *__pyx_n_s_PRECONDITIONED; +static PyObject *__pyx_n_s_PREONLY; +static PyObject *__pyx_n_s_PRODUCT; +static PyObject *__pyx_n_s_PSEUDO; +static PyObject *__pyx_n_s_PTRIMMED; +static PyObject *__pyx_n_s_PTSCOTCH; +static PyObject *__pyx_n_s_PYRAMID; +static PyObject *__pyx_n_s_PYTHON; +static PyObject *__pyx_n_s_Partitioner; +static PyObject *__pyx_n_s_PartitionerType; +static PyObject *__pyx_n_s_PatchConstructType; +static PyObject *__pyx_n_s_PickleError; +static PyObject *__pyx_n_s_PolytopeType; +static PyObject *__pyx_kp_u_Portable_Extensible_Toolkit_for; +static PyObject *__pyx_n_s_Print; +static PyObject *__pyx_n_s_ProblemType; +static PyObject *__pyx_n_s_PtAP; +static PyObject *__pyx_n_s_Q0; +static PyObject *__pyx_n_s_Q1; +static PyObject *__pyx_n_s_QCG; +static PyObject *__pyx_n_s_QMD; +static PyObject *__pyx_n_s_QMRCGS; +static PyObject *__pyx_n_s_QN; +static PyObject *__pyx_n_s_QR; +static PyObject *__pyx_n_s_QUADRILATERAL; +static PyObject *__pyx_n_s_QUAD_PRISM_TENSOR; +static PyObject *__pyx_n_s_QUARTER; +static PyObject *__pyx_n_s_QUARTER_SIZE; +static PyObject *__pyx_n_s_Quad; +static PyObject *__pyx_n_s_R; +static PyObject *__pyx_n_s_RADAU5; +static PyObject *__pyx_n_s_RAND; +static PyObject *__pyx_n_s_RAND48; +static PyObject *__pyx_n_s_RANDER48; +static PyObject *__pyx_n_s_RANDOM123; +static PyObject *__pyx_n_s_RARt; +static PyObject *__pyx_n_s_RCM; +static PyObject *__pyx_n_s_READ; +static PyObject *__pyx_n_s_REDISTRIBUTE; +static PyObject *__pyx_n_s_REDUNDANT; +static PyObject *__pyx_n_s_REFINE1D; +static PyObject *__pyx_n_s_REFINEALFELD; +static PyObject *__pyx_n_s_REFINEBOUNDARYLAYER; +static PyObject *__pyx_n_s_REFINED; +static PyObject *__pyx_n_s_REFINEPOWELLSABIN; +static PyObject *__pyx_n_s_REFINEREGULAR; +static PyObject *__pyx_n_s_REFINESBR; +static PyObject *__pyx_n_s_REFINETOBOX; +static PyObject *__pyx_n_s_REFINETOSIMPLEX; +static PyObject *__pyx_n_s_RESTRICT; +static PyObject *__pyx_n_s_REVERSE; +static PyObject *__pyx_n_s_REVERSE_LOCAL; +static PyObject *__pyx_n_s_RICHARDSON; +static PyObject *__pyx_n_s_RIGHT; +static PyObject *__pyx_n_s_RK; +static PyObject *__pyx_n_s_RK1FE; +static PyObject *__pyx_n_s_RK2A; +static PyObject *__pyx_n_s_RK2B; +static PyObject *__pyx_n_s_RK3; +static PyObject *__pyx_n_s_RK3BS; +static PyObject *__pyx_n_s_RK4; +static PyObject *__pyx_n_s_RK5BS; +static PyObject *__pyx_n_s_RK5DP; +static PyObject *__pyx_n_s_RK5F; +static PyObject *__pyx_n_s_RK6VR; +static PyObject *__pyx_n_s_RK7VR; +static PyObject *__pyx_n_s_RK8VR; +static PyObject *__pyx_n_s_RKType; +static PyObject *__pyx_n_s_ROSW; +static PyObject *__pyx_n_s_ROWLENGTH; +static PyObject *__pyx_n_s_ROWSCALINGVIENNACL; +static PyObject *__pyx_n_s_ROW_ORIENTED; +static PyObject *__pyx_n_s_RT_Pi; +static PyObject *__pyx_n_s_RT_Pi_Full; +static PyObject *__pyx_n_s_RUNGE_KUTTA; +static PyObject *__pyx_n_s_Random; +static PyObject *__pyx_n_s_RandomType; +static PyObject *__pyx_n_s_RealType; +static PyObject *__pyx_n_s_Reason; +static PyObject *__pyx_n_s_ReorderDefaultFlag; +static PyObject *__pyx_n_s_Right; +static PyObject *__pyx_n_s_RuntimeError; +static PyObject *__pyx_n_s_S; +static PyObject *__pyx_n_s_SAME; +static PyObject *__pyx_n_s_SAME_NONZERO_PATTERN; +static PyObject *__pyx_n_s_SAME_NZ; +static PyObject *__pyx_n_s_SAVIENNACL; +static PyObject *__pyx_n_s_SAWS; +static PyObject *__pyx_n_s_SBAIJ; +static PyObject *__pyx_n_s_SCALAPACK; +static PyObject *__pyx_n_s_SCATTER; +static PyObject *__pyx_n_s_SCATTER_FORWARD; +static PyObject *__pyx_n_s_SCATTER_FORWARD_LOCAL; +static PyObject *__pyx_n_s_SCATTER_REVERSE; +static PyObject *__pyx_n_s_SCATTER_REVERSE_LOCAL; +static PyObject *__pyx_n_s_SCHUR; +static PyObject *__pyx_n_s_SCHURCOMPLEMENT; +static PyObject *__pyx_n_s_SEGMENT; +static PyObject *__pyx_n_s_SEG_PRISM_TENSOR; +static PyObject *__pyx_n_s_SELF; +static PyObject *__pyx_n_s_SELFP; +static PyObject *__pyx_n_s_SELL; +static PyObject *__pyx_n_s_SEQ; +static PyObject *__pyx_n_s_SEQAIJ; +static PyObject *__pyx_n_s_SEQAIJCRL; +static PyObject *__pyx_n_s_SEQAIJCUSPARSE; +static PyObject *__pyx_n_s_SEQAIJMKL; +static PyObject *__pyx_n_s_SEQAIJPERM; +static PyObject *__pyx_n_s_SEQAIJSELL; +static PyObject *__pyx_n_s_SEQAIJVIENNACL; +static PyObject *__pyx_n_s_SEQBAIJ; +static PyObject *__pyx_n_s_SEQBAIJMKL; +static PyObject *__pyx_n_s_SEQCUDA; +static PyObject *__pyx_n_s_SEQCUFFT; +static PyObject *__pyx_n_s_SEQDENSE; +static PyObject *__pyx_n_s_SEQDENSECUDA; +static PyObject *__pyx_n_s_SEQHIP; +static PyObject *__pyx_n_s_SEQKAIJ; +static PyObject *__pyx_n_s_SEQKOKKOS; +static PyObject *__pyx_n_s_SEQMAIJ; +static PyObject *__pyx_n_s_SEQSBAIJ; +static PyObject *__pyx_n_s_SEQSELL; +static PyObject *__pyx_n_s_SEQVIENNACL; +static PyObject *__pyx_n_s_SETUP_ERROR; +static PyObject *__pyx_n_s_SF; +static PyObject *__pyx_n_s_SFType; +static PyObject *__pyx_n_s_SHARED; +static PyObject *__pyx_n_s_SHARE_NONZERO_PATTERN; +static PyObject *__pyx_n_s_SHELL; +static PyObject *__pyx_n_s_SIMPLE; +static PyObject *__pyx_n_s_SLICED; +static PyObject *__pyx_n_s_SNES; +static PyObject *__pyx_n_s_SNESConvergedReason; +static PyObject *__pyx_n_s_SNESNormSchedule; +static PyObject *__pyx_n_s_SNESType; +static PyObject *__pyx_n_s_SOCKET; +static PyObject *__pyx_n_s_SOR; +static PyObject *__pyx_n_s_SORTED_FULL; +static PyObject *__pyx_n_s_SORType; +static PyObject *__pyx_n_s_SPAI; +static PyObject *__pyx_n_s_SPARSEELEMENTAL; +static PyObject *__pyx_n_s_SPD; +static PyObject *__pyx_n_s_SPECIAL; +static PyObject *__pyx_n_s_SPECTRAL; +static PyObject *__pyx_n_s_SPQR; +static PyObject *__pyx_n_s_SPRNG; +static PyObject *__pyx_n_s_SSFLS; +static PyObject *__pyx_n_s_SSILS; +static PyObject *__pyx_n_s_SSP; +static PyObject *__pyx_n_s_STAG; +static PyObject *__pyx_n_s_STANDARD; +static PyObject *__pyx_n_s_STAR; +static PyObject *__pyx_n_s_STCG; +static PyObject *__pyx_n_s_STDERR; +static PyObject *__pyx_n_s_STDOUT; +static PyObject *__pyx_n_s_STEPOVER; +static PyObject *__pyx_n_s_STRIDE; +static PyObject *__pyx_n_s_STRING; +static PyObject *__pyx_n_s_STRUCTURALLY_SYMMETRIC; +static PyObject *__pyx_n_s_STRUCTURE_ONLY; +static PyObject *__pyx_n_s_STRUMPACK; +static PyObject *__pyx_n_s_SUBMATRIX; +static PyObject *__pyx_n_s_SUBMAT_SINGLEIS; +static PyObject *__pyx_n_s_SUBPC_ERROR; +static PyObject *__pyx_n_s_SUBSET; +static PyObject *__pyx_n_s_SUBSET_NONZERO_PATTERN; +static PyObject *__pyx_n_s_SUBSET_NZ; +static PyObject *__pyx_n_s_SUBSET_OFF_PROC_ENTRIES; +static PyObject *__pyx_n_s_SUBSPACE; +static PyObject *__pyx_n_s_SUM; +static PyObject *__pyx_n_s_SUNDIALS; +static PyObject *__pyx_n_s_SUPERLU; +static PyObject *__pyx_n_s_SUPERLU_DIST; +static PyObject *__pyx_n_s_SVD; +static PyObject *__pyx_n_s_SWARM; +static PyObject *__pyx_n_s_SYCL; +static PyObject *__pyx_n_s_SYMMETRIC; +static PyObject *__pyx_n_s_SYMMETRIC_MULTIPLICATIVE; +static PyObject *__pyx_n_s_SYMMETRY_ETERNAL; +static PyObject *__pyx_n_s_SYMMETRY_SWEEP; +static PyObject *__pyx_n_s_SYMMLQ; +static PyObject *__pyx_n_s_SYNC; +static PyObject *__pyx_n_s_SYSPFMG; +static PyObject *__pyx_n_s_ScalarType; +static PyObject *__pyx_n_s_Scatter; +static PyObject *__pyx_n_s_ScatterMode; +static PyObject *__pyx_n_s_ScatterType; +static PyObject *__pyx_n_s_SchurFactType; +static PyObject *__pyx_n_s_SchurPreType; +static PyObject *__pyx_n_s_Section; +static PyObject *__pyx_n_s_Side; +static PyObject *__pyx_n_s_Size; +static PyObject *__pyx_n_s_SolverType; +static PyObject *__pyx_n_s_Space; +static PyObject *__pyx_n_s_SpaceType; +static PyObject *__pyx_n_s_Stage; +static PyObject *__pyx_n_s_Stencil; +static PyObject *__pyx_n_s_StencilLocation; +static PyObject *__pyx_n_s_StencilType; +static PyObject *__pyx_n_s_StreamType; +static PyObject *__pyx_n_s_Structure; +static PyObject *__pyx_n_s_Sys; +static PyObject *__pyx_n_s_SystemError; +static PyObject *__pyx_n_s_T; +static PyObject *__pyx_n_s_TAO; +static PyObject *__pyx_n_s_TAOConvergedReason; +static PyObject *__pyx_n_s_TAOType; +static PyObject *__pyx_kp_s_TAO_Solver_Termination_Reasons; +static PyObject *__pyx_kp_s_TAO_Solver_Types; +static PyObject *__pyx_n_s_TCQMR; +static PyObject *__pyx_n_s_TELESCOPE; +static PyObject *__pyx_n_s_TENSOR; +static PyObject *__pyx_n_s_TETRAHEDRON; +static PyObject *__pyx_n_s_TFQMR; +static PyObject *__pyx_n_s_TFS; +static PyObject *__pyx_n_s_TH; +static PyObject *__pyx_n_s_THETA; +static PyObject *__pyx_n_s_THIRD; +static PyObject *__pyx_n_s_THIRD_SIZE; +static PyObject *__pyx_n_s_TRANSFORMFILTER; +static PyObject *__pyx_n_s_TRANSPOSE; +static PyObject *__pyx_n_s_TRIANGLE; +static PyObject *__pyx_n_s_TRI_PRISM; +static PyObject *__pyx_n_s_TRI_PRISM_TENSOR; +static PyObject *__pyx_n_s_TRON; +static PyObject *__pyx_n_s_TRUE; +static PyObject *__pyx_n_s_TS; +static PyObject *__pyx_n_s_TSARKIMEXType; +static PyObject *__pyx_n_s_TSConvergedReason; +static PyObject *__pyx_n_s_TSEquationType; +static PyObject *__pyx_n_s_TSExactFinalTime; +static PyObject *__pyx_n_s_TSIRM; +static PyObject *__pyx_n_s_TSProblemType; +static PyObject *__pyx_n_s_TSRKType; +static PyObject *__pyx_n_s_TSType; +static PyObject *__pyx_n_s_TWIST; +static PyObject *__pyx_kp_b_T_2; +static PyObject *__pyx_kp_s_Tensor_dtype_does_not_match_PETS; +static PyObject *__pyx_n_s_Type; +static PyObject *__pyx_n_s_TypeError; +static PyObject *__pyx_n_s_U; +static PyObject *__pyx_n_s_UA; +static PyObject *__pyx_n_s_UMFPACK; +static PyObject *__pyx_n_s_UNKNOWN; +static PyObject *__pyx_n_s_UNKNOWN_NONZERO_PATTERN; +static PyObject *__pyx_n_s_UNKNOWN_NZ; +static PyObject *__pyx_n_s_UNPRECONDITIONED; +static PyObject *__pyx_n_s_UNSPECIFIED; +static PyObject *__pyx_n_s_UNUSED_NONZERO_LOCATION_ERR; +static PyObject *__pyx_n_s_UP; +static PyObject *__pyx_n_s_UPDATE; +static PyObject *__pyx_n_s_UPPER; +static PyObject *__pyx_n_s_UP_LEFT; +static PyObject *__pyx_n_s_UP_RIGHT; +static PyObject *__pyx_n_s_USER; +static PyObject *__pyx_n_s_USE_HASH_TABLE; +static PyObject *__pyx_n_s_USE_INODES; +static PyObject *__pyx_kp_s_Unable_to_convert_item_to_object; +static PyObject *__pyx_kp_s_Unsupported_PetscScalar_type; +static PyObject *__pyx_n_s_V; +static PyObject *__pyx_n_s_VANKA; +static PyObject *__pyx_n_s_VIENNACL; +static PyObject *__pyx_n_s_VINEWTONRSLS; +static PyObject *__pyx_n_s_VINEWTONSSLS; +static PyObject *__pyx_n_s_VPBJACOBI; +static PyObject *__pyx_n_s_VTK; +static PyObject *__pyx_n_s_VTK_VTR; +static PyObject *__pyx_n_s_VTK_VTS; +static PyObject *__pyx_n_s_VTK_VTU; +static PyObject *__pyx_n_s_VU; +static PyObject *__pyx_n_s_ValueError; +static PyObject *__pyx_n_s_Vec; +static PyObject *__pyx_n_s_VecOption; +static PyObject *__pyx_n_s_VecType; +static PyObject *__pyx_n_s_Vec_LocalForm; +static PyObject *__pyx_n_s_Vec_buffer; +static PyObject *__pyx_kp_s_Vector_local_size_d_is_not_compa; +static PyObject *__pyx_n_s_View_MemoryView; +static PyObject *__pyx_n_s_Viewer; +static PyObject *__pyx_n_s_ViewerFormat; +static PyObject *__pyx_n_s_ViewerHDF5; +static PyObject *__pyx_n_s_ViewerType; +static PyObject *__pyx_n_s_W; +static PyObject *__pyx_n_s_WBM; +static PyObject *__pyx_n_s_WINDOW; +static PyObject *__pyx_n_s_WRITE; +static PyObject *__pyx_n_s_WXY; +static PyObject *__pyx_n_s_X; +static PyObject *__pyx_n_s_ZERO_INITIAL_GUESS; +static PyObject *__pyx_kp_s__13; +static PyObject *__pyx_kp_s__14; +static PyObject *__pyx_kp_u__14; +static PyObject *__pyx_kp_s__20; +static PyObject *__pyx_kp_b__4; +static PyObject *__pyx_kp_s__4; +static PyObject *__pyx_kp_b__57; +static PyObject *__pyx_kp_s__57; +static PyObject *__pyx_kp_b__7; +static PyObject *__pyx_kp_s__7; +static PyObject *__pyx_kp_b__78; +static PyObject *__pyx_kp_b__79; +static PyObject *__pyx_n_s_a; +static PyObject *__pyx_kp_s_a_2; +static PyObject *__pyx_n_s_a_max; +static PyObject *__pyx_n_s_abort; +static PyObject *__pyx_kp_s_accessing_non_existent_buffer_se; +static PyObject *__pyx_n_s_adaptStep; +static PyObject *__pyx_n_s_addFlops; +static PyObject *__pyx_n_s_addv; +static PyObject *__pyx_n_s_adj; +static PyObject *__pyx_n_s_adjoint_steps; +static PyObject *__pyx_n_s_all; +static PyObject *__pyx_n_s_allocate_buffer; +static PyObject *__pyx_n_s_alpha; +static PyObject *__pyx_n_s_alpha2; +static PyObject *__pyx_n_s_alpha_f; +static PyObject *__pyx_n_s_alpha_m; +static PyObject *__pyx_n_s_alphas; +static PyObject *__pyx_n_s_amount; +static PyObject *__pyx_n_s_app; +static PyObject *__pyx_n_s_appctx; +static PyObject *__pyx_n_s_append; +static PyObject *__pyx_n_s_apply; +static PyObject *__pyx_n_s_applySymmetricLeft; +static PyObject *__pyx_n_s_applySymmetricRight; +static PyObject *__pyx_n_s_applyTranspose; +static PyObject *__pyx_n_s_args; +static PyObject *__pyx_n_s_array; +static PyObject *__pyx_n_s_array_interface; +static PyObject *__pyx_kp_s_array_size_d_and_vector_local_si; +static PyObject *__pyx_kp_s_array_size_d_incompatible_with_v; +static PyObject *__pyx_n_s_array_w; +static PyObject *__pyx_n_s_asmtype; +static PyObject *__pyx_n_s_assemblies; +static PyObject *__pyx_n_s_assembly; +static PyObject *__pyx_n_s_assemblyBegin; +static PyObject *__pyx_n_s_assemblyEnd; +static PyObject *__pyx_n_s_atexit; +static PyObject *__pyx_n_s_atol; +static PyObject *__pyx_n_s_attr; +static PyObject *__pyx_n_s_au; +static PyObject *__pyx_n_s_author; +static PyObject *__pyx_n_s_authorinfo; +static PyObject *__pyx_n_s_aux; +static PyObject *__pyx_n_s_axpy; +static PyObject *__pyx_n_s_b; +static PyObject *__pyx_n_s_back; +static PyObject *__pyx_n_s_back_down; +static PyObject *__pyx_n_s_back_down_left; +static PyObject *__pyx_n_s_back_down_right; +static PyObject *__pyx_n_s_back_left; +static PyObject *__pyx_n_s_back_right; +static PyObject *__pyx_n_s_back_up; +static PyObject *__pyx_n_s_back_up_left; +static PyObject *__pyx_n_s_back_up_right; +static PyObject *__pyx_n_s_barrier; +static PyObject *__pyx_n_s_base; +static PyObject *__pyx_n_s_batchSize; +static PyObject *__pyx_n_s_bcComps; +static PyObject *__pyx_n_s_bcField; +static PyObject *__pyx_n_s_bcPoints; +static PyObject *__pyx_kp_s_bcPoints_is_a_required_argument; +static PyObject *__pyx_n_s_bdLabel; +static PyObject *__pyx_n_s_bdlabel; +static PyObject *__pyx_n_s_bdvalue; +static PyObject *__pyx_n_s_begin; +static PyObject *__pyx_n_s_begin_args; +static PyObject *__pyx_n_s_begin_kargs; +static PyObject *__pyx_n_s_beta; +static PyObject *__pyx_n_s_bits; +static PyObject *__pyx_n_s_blockSize; +static PyObject *__pyx_n_s_block_size; +static PyObject *__pyx_kp_s_block_size_d_must_be_positive; +static PyObject *__pyx_kp_s_block_size_not_set; +static PyObject *__pyx_n_s_blocksize; +static PyObject *__pyx_n_s_bndr; +static PyObject *__pyx_n_s_boundary; +static PyObject *__pyx_n_s_boundary_type; +static PyObject *__pyx_n_s_boundary_types; +static PyObject *__pyx_n_s_box; +static PyObject *__pyx_n_s_bs; +static PyObject *__pyx_n_s_bsize; +static PyObject *__pyx_n_s_buffer; +static PyObject *__pyx_n_s_buffer_w; +static PyObject *__pyx_n_s_buildResidual; +static PyObject *__pyx_n_s_buildSolution; +static PyObject *__pyx_n_s_builtins; +static PyObject *__pyx_n_s_c; +static PyObject *__pyx_n_u_c; +static PyObject *__pyx_kp_s_c_d; +static PyObject *__pyx_n_s_cancelMonitor; +static PyObject *__pyx_kp_s_cannot_place_input_array_size_d; +static PyObject *__pyx_n_s_catol; +static PyObject *__pyx_n_s_ccomm; +static PyObject *__pyx_n_s_cdctx; +static PyObject *__pyx_n_s_cdevice_type; +static PyObject *__pyx_n_s_cell; +static PyObject *__pyx_n_s_cellNodeMaps; +static PyObject *__pyx_kp_s_cell_indices_must_have_two_dimen; +static PyObject *__pyx_n_s_cells; +static PyObject *__pyx_n_s_cgid; +static PyObject *__pyx_n_s_citation; +static PyObject *__pyx_n_s_class; +static PyObject *__pyx_n_s_cline_in_traceback; +static PyObject *__pyx_n_s_cmap; +static PyObject *__pyx_n_s_cnorm; +static PyObject *__pyx_n_s_coarsen; +static PyObject *__pyx_n_s_coarsenhook; +static PyObject *__pyx_n_s_code; +static PyObject *__pyx_n_s_col; +static PyObject *__pyx_n_s_col_bsize; +static PyObject *__pyx_n_s_cols; +static PyObject *__pyx_n_s_column; +static PyObject *__pyx_kp_s_column_indices_must_have_two_dim; +static PyObject *__pyx_n_s_comm; +static PyObject *__pyx_n_s_comms; +static PyObject *__pyx_kp_s_communicator_not_owned; +static PyObject *__pyx_n_s_comp; +static PyObject *__pyx_n_s_compile; +static PyObject *__pyx_n_s_compressed; +static PyObject *__pyx_n_s_concatenate; +static PyObject *__pyx_n_s_cone; +static PyObject *__pyx_n_s_coneOrientation; +static PyObject *__pyx_n_s_conePoint; +static PyObject *__pyx_n_s_conePos; +static PyObject *__pyx_n_s_conforming; +static PyObject *__pyx_n_s_conjugate; +static PyObject *__pyx_n_s_constant; +static PyObject *__pyx_n_s_constraints; +static PyObject *__pyx_n_s_context; +static PyObject *__pyx_kp_s_contiguous_and_direct; +static PyObject *__pyx_kp_s_contiguous_and_indirect; +static PyObject *__pyx_n_s_continuous; +static PyObject *__pyx_n_s_converged; +static PyObject *__pyx_n_s_coordinates; +static PyObject *__pyx_kp_s_coordinates_must_have_two_dimens; +static PyObject *__pyx_kp_s_coordinates_size_must_be_at_leas; +static PyObject *__pyx_n_s_coords; +static PyObject *__pyx_kp_s_coords_vertices_must_have_two_di; +static PyObject *__pyx_n_s_copy; +static PyObject *__pyx_n_s_correction_type; +static PyObject *__pyx_n_s_count; +static PyObject *__pyx_n_s_cpuarray; +static PyObject *__pyx_n_s_crank; +static PyObject *__pyx_n_s_cratio; +static PyObject *__pyx_n_s_create; +static PyObject *__pyx_n_s_createDefaultSF; +static PyObject *__pyx_n_s_createGlobalVec; +static PyObject *__pyx_n_s_createGlobalVector; +static PyObject *__pyx_n_s_createLabel; +static PyObject *__pyx_n_s_createLocalVec; +static PyObject *__pyx_n_s_createLocalVector; +static PyObject *__pyx_n_s_createMat; +static PyObject *__pyx_n_s_createMatrix; +static PyObject *__pyx_n_s_createNaturalVec; +static PyObject *__pyx_n_s_createNaturalVector; +static PyObject *__pyx_n_s_createSectionSF; +static PyObject *__pyx_n_s_createSubMatrix; +static PyObject *__pyx_n_s_createVecLeft; +static PyObject *__pyx_n_s_createVecRight; +static PyObject *__pyx_n_s_createVecs; +static PyObject *__pyx_n_s_create_gvec; +static PyObject *__pyx_n_s_create_injection; +static PyObject *__pyx_n_s_create_interpolation; +static PyObject *__pyx_n_s_create_lvec; +static PyObject *__pyx_n_s_create_matrix; +static PyObject *__pyx_n_s_create_restriction; +static PyObject *__pyx_n_s_create_subdm; +static PyObject *__pyx_n_s_crtol; +static PyObject *__pyx_n_s_csize; +static PyObject *__pyx_n_s_csr; +static PyObject *__pyx_n_s_ctype; +static PyObject *__pyx_n_s_cudahandle; +static PyObject *__pyx_n_s_cycle_type; +static PyObject *__pyx_kp_s_d_s; +static PyObject *__pyx_n_s_da; +static PyObject *__pyx_n_s_data; +static PyObject *__pyx_n_s_date; +static PyObject *__pyx_n_s_dctx; +static PyObject *__pyx_n_s_debugger; +static PyObject *__pyx_n_s_decode; +static PyObject *__pyx_n_s_decomp; +static PyObject *__pyx_n_s_decorator; +static PyObject *__pyx_n_s_default; +static PyObject *__pyx_n_s_degree; +static PyObject *__pyx_n_s_delValue; +static PyObject *__pyx_n_s_dense; +static PyObject *__pyx_n_s_design; +static PyObject *__pyx_n_s_destroy; +static PyObject *__pyx_n_s_determinant; +static PyObject *__pyx_n_s_devel; +static PyObject *__pyx_n_s_device; +static PyObject *__pyx_n_s_device_id; +static PyObject *__pyx_n_s_device_type; +static PyObject *__pyx_n_s_diag; +static PyObject *__pyx_n_s_diagonalScale; +static PyObject *__pyx_n_s_diagonal_fill; +static PyObject *__pyx_n_s_dict; +static PyObject *__pyx_n_s_dim; +static PyObject *__pyx_n_s_dims; +static PyObject *__pyx_n_s_direction; +static PyObject *__pyx_n_s_disc; +static PyObject *__pyx_n_s_display; +static PyObject *__pyx_n_s_dist; +static PyObject *__pyx_n_s_div; +static PyObject *__pyx_n_s_divtol; +static PyObject *__pyx_n_s_dlpack; +static PyObject *__pyx_n_s_dltensor; +static PyObject *__pyx_n_s_dm; +static PyObject *__pyx_n_s_dmTo; +static PyObject *__pyx_n_s_dm_type; +static PyObject *__pyx_n_s_dmf; +static PyObject *__pyx_n_s_dms; +static PyObject *__pyx_n_s_dmswarm_type; +static PyObject *__pyx_n_s_dmtype; +static PyObject *__pyx_n_s_doc; +static PyObject *__pyx_n_s_dof; +static PyObject *__pyx_n_s_dofs; +static PyObject *__pyx_n_s_dosort; +static PyObject *__pyx_n_s_down; +static PyObject *__pyx_n_s_down_left; +static PyObject *__pyx_n_s_down_right; +static PyObject *__pyx_n_s_drop; +static PyObject *__pyx_n_s_ds_type; +static PyObject *__pyx_n_s_dspace; +static PyObject *__pyx_n_s_dt; +static PyObject *__pyx_n_s_dtcol; +static PyObject *__pyx_n_s_dtcount; +static PyObject *__pyx_n_s_dtype; +static PyObject *__pyx_n_s_dtype_is_object; +static PyObject *__pyx_n_s_dualspace_type; +static PyObject *__pyx_n_s_duplicate; +static PyObject *__pyx_n_s_e; +static PyObject *__pyx_n_s_elem_type; +static PyObject *__pyx_n_s_element; +static PyObject *__pyx_n_s_emacs; +static PyObject *__pyx_kp_s_empty_citation; +static PyObject *__pyx_kp_s_empty_name; +static PyObject *__pyx_n_s_encode; +static PyObject *__pyx_n_s_end; +static PyObject *__pyx_n_s_end_args; +static PyObject *__pyx_n_s_end_kargs; +static PyObject *__pyx_n_s_enter; +static PyObject *__pyx_n_s_entityDepth; +static PyObject *__pyx_n_s_entry; +static PyObject *__pyx_n_s_enum2str; +static PyObject *__pyx_n_s_enumerate; +static PyObject *__pyx_n_s_epsilon; +static PyObject *__pyx_n_s_eqtype; +static PyObject *__pyx_n_s_equality_constraints; +static PyObject *__pyx_n_s_errhandler; +static PyObject *__pyx_n_s_error; +static PyObject *__pyx_kp_s_error_code_d; +static PyObject *__pyx_n_s_eta; +static PyObject *__pyx_n_s_evaluatestep; +static PyObject *__pyx_n_s_eventhandler; +static PyObject *__pyx_n_s_exec; +static PyObject *__pyx_n_s_exit; +static PyObject *__pyx_n_s_exoid; +static PyObject *__pyx_kp_s_expecting_a_C_contiguous_array; +static PyObject *__pyx_kp_s_expecting_tuple_list_or_dict; +static PyObject *__pyx_n_s_f; +static PyObject *__pyx_n_s_faces; +static PyObject *__pyx_n_s_fact; +static PyObject *__pyx_n_s_factor_mallocs; +static PyObject *__pyx_n_s_fe_type; +static PyObject *__pyx_n_s_fget; +static PyObject *__pyx_n_s_field; +static PyObject *__pyx_n_s_fieldName; +static PyObject *__pyx_n_s_fieldname; +static PyObject *__pyx_n_s_fieldnames; +static PyObject *__pyx_n_s_fields; +static PyObject *__pyx_n_s_file; +static PyObject *__pyx_n_s_filename; +static PyObject *__pyx_n_s_fill; +static PyObject *__pyx_n_s_fill_param; +static PyObject *__pyx_n_s_fill_ratio_given; +static PyObject *__pyx_n_s_fill_ratio_needed; +static PyObject *__pyx_n_s_finalize; +static PyObject *__pyx_n_s_first; +static PyObject *__pyx_n_s_fix; +static PyObject *__pyx_n_s_flag; +static PyObject *__pyx_n_s_flags; +static PyObject *__pyx_n_s_flg; +static PyObject *__pyx_n_s_flip; +static PyObject *__pyx_n_s_flops; +static PyObject *__pyx_n_s_flush; +static PyObject *__pyx_n_s_fnorm; +static PyObject *__pyx_n_s_force; +static PyObject *__pyx_n_s_formDegree; +static PyObject *__pyx_n_s_formSNESFunction; +static PyObject *__pyx_n_s_formSNESJacobian; +static PyObject *__pyx_n_s_format; +static PyObject *__pyx_n_s_fortran; +static PyObject *__pyx_n_u_fortran; +static PyObject *__pyx_n_s_forward; +static PyObject *__pyx_n_s_front; +static PyObject *__pyx_n_s_front_down; +static PyObject *__pyx_n_s_front_down_left; +static PyObject *__pyx_n_s_front_down_right; +static PyObject *__pyx_n_s_front_left; +static PyObject *__pyx_n_s_front_right; +static PyObject *__pyx_n_s_front_up; +static PyObject *__pyx_n_s_front_up_left; +static PyObject *__pyx_n_s_front_up_right; +static PyObject *__pyx_n_s_func; +static PyObject *__pyx_n_s_function; +static PyObject *__pyx_n_s_functional; +static PyObject *__pyx_n_s_functools; +static PyObject *__pyx_n_s_g; +static PyObject *__pyx_n_s_gamgtype; +static PyObject *__pyx_n_s_gamma; +static PyObject *__pyx_n_s_garbage_cleanup; +static PyObject *__pyx_n_s_garbage_view; +static PyObject *__pyx_n_s_gasmtype; +static PyObject *__pyx_n_s_gatol; +static PyObject *__pyx_n_s_get; +static PyObject *__pyx_kp_s_get1dCoordinatecArrays_for_DMSta; +static PyObject *__pyx_n_s_getActive; +static PyObject *__pyx_n_s_getActiveAll; +static PyObject *__pyx_n_s_getAppCtx; +static PyObject *__pyx_n_s_getApplicationContext; +static PyObject *__pyx_n_s_getArray; +static PyObject *__pyx_n_s_getBlockIndices; +static PyObject *__pyx_n_s_getBlockInfo; +static PyObject *__pyx_n_s_getBlockSize; +static PyObject *__pyx_n_s_getBlockSizes; +static PyObject *__pyx_n_s_getBoundaryType; +static PyObject *__pyx_n_s_getBoundaryTypes; +static PyObject *__pyx_n_s_getBuffer; +static PyObject *__pyx_n_s_getCPUTime; +static PyObject *__pyx_n_s_getClassId; +static PyObject *__pyx_n_s_getClassName; +static PyObject *__pyx_n_s_getComm; +static PyObject *__pyx_n_s_getConstraintTolerances; +static PyObject *__pyx_n_s_getConvergedReason; +static PyObject *__pyx_n_s_getConvergenceHistory; +static PyObject *__pyx_n_s_getCorners; +static PyObject *__pyx_n_s_getCurrent; +static PyObject *__pyx_n_s_getDM; +static PyObject *__pyx_n_s_getDS; +static PyObject *__pyx_n_s_getDefaultComm; +static PyObject *__pyx_n_s_getDefaultGlobalSection; +static PyObject *__pyx_n_s_getDefaultLocalSection; +static PyObject *__pyx_n_s_getDefaultSF; +static PyObject *__pyx_n_s_getDefaultSection; +static PyObject *__pyx_n_s_getDevice; +static PyObject *__pyx_n_s_getDeviceId; +static PyObject *__pyx_n_s_getDeviceType; +static PyObject *__pyx_n_s_getDiagonal; +static PyObject *__pyx_n_s_getDiagonalBlock; +static PyObject *__pyx_n_s_getDim; +static PyObject *__pyx_n_s_getDimension; +static PyObject *__pyx_n_s_getDof; +static PyObject *__pyx_n_s_getEntriesPerElement; +static PyObject *__pyx_n_s_getEquationType; +static PyObject *__pyx_n_s_getFlops; +static PyObject *__pyx_n_s_getFunctionNorm; +static PyObject *__pyx_n_s_getFunctionTolerances; +static PyObject *__pyx_n_s_getFunctionValue; +static PyObject *__pyx_n_s_getGhostCorners; +static PyObject *__pyx_n_s_getGhostRanges; +static PyObject *__pyx_n_s_getGlobalSection; +static PyObject *__pyx_n_s_getGlobalSizes; +static PyObject *__pyx_n_s_getGradient; +static PyObject *__pyx_n_s_getGradientTolerances; +static PyObject *__pyx_n_s_getIndices; +static PyObject *__pyx_n_s_getInfo; +static PyObject *__pyx_n_s_getInitialGuessKnoll; +static PyObject *__pyx_n_s_getInitialGuessNonzero; +static PyObject *__pyx_n_s_getInterval; +static PyObject *__pyx_n_s_getIterationNumber; +static PyObject *__pyx_n_s_getKSP; +static PyObject *__pyx_n_s_getKSPFailures; +static PyObject *__pyx_n_s_getLinearSolveFailures; +static PyObject *__pyx_n_s_getLocalSection; +static PyObject *__pyx_n_s_getLocalSize; +static PyObject *__pyx_n_s_getLocalSizes; +static PyObject *__pyx_n_s_getMatrix; +static PyObject *__pyx_n_s_getMaxFunctionEvaluations; +static PyObject *__pyx_n_s_getMaxKSPFailures; +static PyObject *__pyx_n_s_getMaxLinearSolveFailures; +static PyObject *__pyx_n_s_getMaxNonlinearStepFailures; +static PyObject *__pyx_n_s_getMaxStepFailures; +static PyObject *__pyx_n_s_getMaxSteps; +static PyObject *__pyx_n_s_getMaxTime; +static PyObject *__pyx_n_s_getNPC; +static PyObject *__pyx_n_s_getName; +static PyObject *__pyx_n_s_getNonlinearStepFailures; +static PyObject *__pyx_n_s_getNormType; +static PyObject *__pyx_n_s_getNumber; +static PyObject *__pyx_n_s_getNumberDM; +static PyObject *__pyx_n_s_getObjectiveValue; +static PyObject *__pyx_n_s_getOperators; +static PyObject *__pyx_n_s_getOptionsPrefix; +static PyObject *__pyx_n_s_getOwnershipRange; +static PyObject *__pyx_n_s_getOwnershipRanges; +static PyObject *__pyx_n_s_getPC; +static PyObject *__pyx_n_s_getPCSide; +static PyObject *__pyx_n_s_getProblemType; +static PyObject *__pyx_n_s_getProcSizes; +static PyObject *__pyx_n_s_getRanges; +static PyObject *__pyx_n_s_getRank; +static PyObject *__pyx_n_s_getRefCount; +static PyObject *__pyx_n_s_getResidualNorm; +static PyObject *__pyx_n_s_getRhs; +static PyObject *__pyx_n_s_getSNES; +static PyObject *__pyx_n_s_getSection; +static PyObject *__pyx_n_s_getSectionSF; +static PyObject *__pyx_n_s_getSeed; +static PyObject *__pyx_n_s_getSize; +static PyObject *__pyx_n_s_getSizes; +static PyObject *__pyx_n_s_getSolution; +static PyObject *__pyx_n_s_getSolutionNorm; +static PyObject *__pyx_n_s_getSolutionUpdate; +static PyObject *__pyx_n_s_getStencil; +static PyObject *__pyx_n_s_getStencilType; +static PyObject *__pyx_n_s_getStencilWidth; +static PyObject *__pyx_n_s_getStepFailures; +static PyObject *__pyx_n_s_getStepNumber; +static PyObject *__pyx_n_s_getStreamType; +static PyObject *__pyx_n_s_getString; +static PyObject *__pyx_n_s_getTime; +static PyObject *__pyx_n_s_getTimeStep; +static PyObject *__pyx_n_s_getTolerances; +static PyObject *__pyx_n_s_getType; +static PyObject *__pyx_n_s_getUseEW; +static PyObject *__pyx_n_s_getUseFD; +static PyObject *__pyx_n_s_getUseMF; +static PyObject *__pyx_n_s_getValue; +static PyObject *__pyx_kp_s_getValuesStagStencil_not_yet_imp; +static PyObject *__pyx_kp_s_getVecArray_for_DMStag_not_yet_i; +static PyObject *__pyx_n_s_getVecLeft; +static PyObject *__pyx_n_s_getVecRight; +static PyObject *__pyx_n_s_getVecs; +static PyObject *__pyx_n_s_getVersion; +static PyObject *__pyx_n_s_getVersionInfo; +static PyObject *__pyx_n_s_getVisible; +static PyObject *__pyx_n_s_get_2; +static PyObject *__pyx_n_s_getstate; +static PyObject *__pyx_n_s_ghostBcNodes; +static PyObject *__pyx_n_s_ghosted; +static PyObject *__pyx_n_s_ghosts; +static PyObject *__pyx_kp_s_ghosts_size_d_array_size_d_and_v; +static PyObject *__pyx_n_s_globalBcNodes; +static PyObject *__pyx_kp_s_global_size_d_not_divisible_by_b; +static PyObject *__pyx_n_s_globalsec; +static PyObject *__pyx_n_s_gord; +static PyObject *__pyx_kp_s_got_differing_extents_in_dimensi; +static PyObject *__pyx_n_s_gradient; +static PyObject *__pyx_n_s_group; +static PyObject *__pyx_n_s_grtol; +static PyObject *__pyx_n_s_gsec; +static PyObject *__pyx_n_s_gtol; +static PyObject *__pyx_n_s_gttol; +static PyObject *__pyx_n_s_gv; +static PyObject *__pyx_n_s_gvec; +static PyObject *__pyx_n_s_h_max; +static PyObject *__pyx_n_s_h_min; +static PyObject *__pyx_n_s_handle; +static PyObject *__pyx_n_s_has; +static PyObject *__pyx_n_s_hasExternalPackage; +static PyObject *__pyx_n_s_hasLabel; +static PyObject *__pyx_n_s_hasLagrange; +static PyObject *__pyx_n_s_hasName; +static PyObject *__pyx_n_s_hausd; +static PyObject *__pyx_n_s_hessian; +static PyObject *__pyx_n_s_hiphandle; +static PyObject *__pyx_n_s_hmax; +static PyObject *__pyx_n_s_hmin; +static PyObject *__pyx_n_s_hypretype; +static PyObject *__pyx_n_s_i; +static PyObject *__pyx_n_s_icntl; +static PyObject *__pyx_n_s_id; +static PyObject *__pyx_n_s_idx; +static PyObject *__pyx_n_s_idxm; +static PyObject *__pyx_n_s_ierr; +static PyObject *__pyx_n_s_ignore; +static PyObject *__pyx_n_s_ignoreOutsideDomain; +static PyObject *__pyx_n_s_imag; +static PyObject *__pyx_n_s_imagPart; +static PyObject *__pyx_n_s_imex; +static PyObject *__pyx_n_s_imode; +static PyObject *__pyx_n_s_import; +static PyObject *__pyx_n_s_inblocks; +static PyObject *__pyx_kp_s_incompatible_array_sizes; +static PyObject *__pyx_kp_s_incompatible_array_sizes_ni_d_nj; +static PyObject *__pyx_kp_s_incompatible_array_sizes_ni_d_nv; +static PyObject *__pyx_kp_s_incompatible_array_sizes_ni_d_nv_2; +static PyObject *__pyx_kp_s_incompatible_array_sizes_nv_d; +static PyObject *__pyx_n_s_index; +static PyObject *__pyx_n_s_indicator; +static PyObject *__pyx_n_s_indices; +static PyObject *__pyx_n_s_info; +static PyObject *__pyx_n_s_infoAllow; +static PyObject *__pyx_n_s_init; +static PyObject *__pyx_n_s_initialguess; +static PyObject *__pyx_n_s_initialize; +static PyObject *__pyx_kp_s_input_arrays_have_incompatible_s; +static PyObject *__pyx_n_s_int; +static PyObject *__pyx_n_s_intdim; +static PyObject *__pyx_n_s_interior; +static PyObject *__pyx_n_s_interp_type; +static PyObject *__pyx_n_s_interpolate; +static PyObject *__pyx_n_s_interval; +static PyObject *__pyx_n_s_invert; +static PyObject *__pyx_n_s_is; +static PyObject *__pyx_n_s_isActive; +static PyObject *__pyx_n_s_isAssembled; +static PyObject *__pyx_n_s_isFinalized; +static PyObject *__pyx_n_s_isHermitian; +static PyObject *__pyx_n_s_isIdentity; +static PyObject *__pyx_n_s_isInitialized; +static PyObject *__pyx_n_s_isPermutation; +static PyObject *__pyx_n_s_isSimplex; +static PyObject *__pyx_n_s_isSorted; +static PyObject *__pyx_n_s_isStructurallySymmetric; +static PyObject *__pyx_n_s_isSymmetric; +static PyObject *__pyx_n_s_is_from; +static PyObject *__pyx_n_s_is_local; +static PyObject *__pyx_n_s_is_to; +static PyObject *__pyx_n_s_is_type; +static PyObject *__pyx_n_s_iscol; +static PyObject *__pyx_n_s_iscols; +static PyObject *__pyx_n_s_iset; +static PyObject *__pyx_n_s_isets; +static PyObject *__pyx_n_s_isfields; +static PyObject *__pyx_n_s_isotropic; +static PyObject *__pyx_n_s_isperm; +static PyObject *__pyx_n_s_isrow; +static PyObject *__pyx_n_s_isrows; +static PyObject *__pyx_n_s_itemsize; +static PyObject *__pyx_kp_s_itemsize_0_for_cython_array; +static PyObject *__pyx_n_s_its; +static PyObject *__pyx_n_s_ival; +static PyObject *__pyx_n_s_j; +static PyObject *__pyx_n_s_jacobian; +static PyObject *__pyx_n_s_jacobian_design; +static PyObject *__pyx_n_s_jacobian_equality; +static PyObject *__pyx_n_s_jacobian_state; +static PyObject *__pyx_n_s_jacobianp; +static PyObject *__pyx_n_s_join; +static PyObject *__pyx_n_s_join_mode; +static PyObject *__pyx_n_s_k; +static PyObject *__pyx_n_s_kargs; +static PyObject *__pyx_kp_s_key_d_cannot_register_s_already; +static PyObject *__pyx_n_s_keys; +static PyObject *__pyx_n_s_kind; +static PyObject *__pyx_n_s_klass; +static PyObject *__pyx_n_s_ksp; +static PyObject *__pyx_n_s_ksp_type; +static PyObject *__pyx_n_s_kwargs; +static PyObject *__pyx_n_s_l; +static PyObject *__pyx_n_s_l2l; +static PyObject *__pyx_n_s_label; +static PyObject *__pyx_n_s_labelName; +static PyObject *__pyx_n_s_lambda; +static PyObject *__pyx_n_s_lanes; +static PyObject *__pyx_n_s_layoutType; +static PyObject *__pyx_n_s_lda; +static PyObject *__pyx_n_s_leafSection; +static PyObject *__pyx_n_s_leafdata; +static PyObject *__pyx_n_s_leafsize; +static PyObject *__pyx_n_s_leafupdate; +static PyObject *__pyx_n_s_left; +static PyObject *__pyx_n_s_length; +static PyObject *__pyx_n_s_level; +static PyObject *__pyx_n_s_levels; +static PyObject *__pyx_n_s_lgmap; +static PyObject *__pyx_n_s_lgmap_type; +static PyObject *__pyx_n_s_lgmapc; +static PyObject *__pyx_n_s_lgmapr; +static PyObject *__pyx_n_s_linear_its; +static PyObject *__pyx_n_s_lits; +static PyObject *__pyx_n_s_loc; +static PyObject *__pyx_n_s_locC; +static PyObject *__pyx_n_s_locX; +static PyObject *__pyx_n_s_local; +static PyObject *__pyx_kp_s_local_and_global_sizes_cannot_be; +static PyObject *__pyx_kp_s_local_size_d_not_divisible_by_bl; +static PyObject *__pyx_n_s_localsec; +static PyObject *__pyx_n_s_locs; +static PyObject *__pyx_n_s_logFlops; +static PyObject *__pyx_n_s_lower; +static PyObject *__pyx_n_s_ltog; +static PyObject *__pyx_n_s_ltol; +static PyObject *__pyx_n_s_lv; +static PyObject *__pyx_n_s_lvec; +static PyObject *__pyx_n_s_lvecs; +static PyObject *__pyx_n_s_main; +static PyObject *__pyx_n_s_major; +static PyObject *__pyx_n_s_mallocs; +static PyObject *__pyx_n_s_mat; +static PyObject *__pyx_n_s_matApply; +static PyObject *__pyx_n_s_matMult; +static PyObject *__pyx_n_s_mat_type; +static PyObject *__pyx_n_s_matpartitioning_type; +static PyObject *__pyx_n_s_mats; +static PyObject *__pyx_n_s_max; +static PyObject *__pyx_n_s_maxDegree; +static PyObject *__pyx_n_s_max_fails; +static PyObject *__pyx_n_s_max_funcs; +static PyObject *__pyx_n_s_max_it; +static PyObject *__pyx_n_s_max_steps; +static PyObject *__pyx_n_s_max_time; +static PyObject *__pyx_n_s_maxrank; +static PyObject *__pyx_n_s_maxval; +static PyObject *__pyx_n_s_memo; +static PyObject *__pyx_n_s_memory; +static PyObject *__pyx_n_s_memview; +static PyObject *__pyx_n_s_messageLength; +static PyObject *__pyx_n_s_metaclass; +static PyObject *__pyx_n_s_metric; +static PyObject *__pyx_n_s_metric1; +static PyObject *__pyx_n_s_metric2; +static PyObject *__pyx_n_s_metric3; +static PyObject *__pyx_n_s_metricAvg; +static PyObject *__pyx_n_s_metricInt; +static PyObject *__pyx_n_s_mgtype; +static PyObject *__pyx_n_s_min; +static PyObject *__pyx_n_s_minor; +static PyObject *__pyx_n_s_mirror; +static PyObject *__pyx_n_s_missingDiagonal; +static PyObject *__pyx_n_s_mit; +static PyObject *__pyx_n_s_mode; +static PyObject *__pyx_n_s_model; +static PyObject *__pyx_n_s_module; +static PyObject *__pyx_n_s_monitor; +static PyObject *__pyx_n_s_monitorCancel; +static PyObject *__pyx_n_s_mpi4py; +static PyObject *__pyx_kp_s_mpi4py_MPI; +static PyObject *__pyx_n_s_mpiabort; +static PyObject *__pyx_n_s_msg; +static PyObject *__pyx_n_s_mult; +static PyObject *__pyx_n_s_multAdd; +static PyObject *__pyx_n_s_multDiagonalBlock; +static PyObject *__pyx_n_s_multHermitian; +static PyObject *__pyx_n_s_multHermitianAdd; +static PyObject *__pyx_n_s_multTranspose; +static PyObject *__pyx_n_s_multTransposeAdd; +static PyObject *__pyx_n_s_multirootdata; +static PyObject *__pyx_n_s_n; +static PyObject *__pyx_n_s_na; +static PyObject *__pyx_n_s_name; +static PyObject *__pyx_n_s_name_2; +static PyObject *__pyx_n_s_name_3; +static PyObject *__pyx_n_s_nbsteps; +static PyObject *__pyx_n_s_nc; +static PyObject *__pyx_n_s_ndim; +static PyObject *__pyx_n_s_new; +static PyObject *__pyx_n_s_newsec; +static PyObject *__pyx_n_s_newvec; +static PyObject *__pyx_n_s_ngs; +static PyObject *__pyx_n_s_nlevels; +static PyObject *__pyx_n_s_nlocal; +static PyObject *__pyx_n_s_nmax; +static PyObject *__pyx_n_s_nmin; +static PyObject *__pyx_n_s_nnz; +static PyObject *__pyx_n_s_noInsert; +static PyObject *__pyx_n_s_noMove; +static PyObject *__pyx_n_s_noSurf; +static PyObject *__pyx_n_s_noSwap; +static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; +static PyObject *__pyx_n_s_none; +static PyObject *__pyx_n_s_nonzero; +static PyObject *__pyx_n_s_nonzero_2; +static PyObject *__pyx_n_s_norm; +static PyObject *__pyx_n_s_norm_type; +static PyObject *__pyx_n_s_normsched; +static PyObject *__pyx_n_s_normtype; +static PyObject *__pyx_n_s_npoints; +static PyObject *__pyx_n_s_nroots; +static PyObject *__pyx_n_s_nsd; +static PyObject *__pyx_n_s_nsp; +static PyObject *__pyx_n_s_nsubcomm; +static PyObject *__pyx_n_s_null; +static PyObject *__pyx_kp_s_null_communicator; +static PyObject *__pyx_n_s_numBatches; +static PyObject *__pyx_n_s_numBlocks; +static PyObject *__pyx_n_s_numComp; +static PyObject *__pyx_n_s_numDof; +static PyObject *__pyx_n_s_numFields; +static PyObject *__pyx_n_s_numIter; +static PyObject *__pyx_n_s_numMessages; +static PyObject *__pyx_n_s_numProcs; +static PyObject *__pyx_n_s_numReductions; +static PyObject *__pyx_n_s_numSumSpaces; +static PyObject *__pyx_n_s_numTensSpaces; +static PyObject *__pyx_kp_s_number_of_dimensions_d_and_numbe; +static PyObject *__pyx_n_s_nz_allocated; +static PyObject *__pyx_n_s_nz_unneeded; +static PyObject *__pyx_n_s_nz_used; +static PyObject *__pyx_n_s_nzdiag; +static PyObject *__pyx_n_s_obj; +static PyObject *__pyx_n_s_object; +static PyObject *__pyx_n_s_objective; +static PyObject *__pyx_n_s_objgrad; +static PyObject *__pyx_n_s_offset; +static PyObject *__pyx_n_s_omega; +static PyObject *__pyx_n_s_ometric; +static PyObject *__pyx_kp_s_only_and; +static PyObject *__pyx_n_s_onnz; +static PyObject *__pyx_n_s_op; +static PyObject *__pyx_n_s_open; +static PyObject *__pyx_n_s_operator; +static PyObject *__pyx_n_s_operators; +static PyObject *__pyx_n_s_option; +static PyObject *__pyx_kp_s_option_prefix_must_be_string; +static PyObject *__pyx_kp_s_option_prefix_should_not_have_sp; +static PyObject *__pyx_kp_s_option_prefix_should_not_start_w; +static PyObject *__pyx_n_s_options; +static PyObject *__pyx_n_s_opts; +static PyObject *__pyx_n_s_ord_type; +static PyObject *__pyx_n_s_order; +static PyObject *__pyx_n_s_orientation; +static PyObject *__pyx_n_s_other; +static PyObject *__pyx_n_s_otype; +static PyObject *__pyx_n_s_out; +static PyObject *__pyx_n_s_output; +static PyObject *__pyx_n_s_overlap; +static PyObject *__pyx_kp_s_ownership_range_size_d_and_numbe; +static PyObject *__pyx_n_s_ownership_ranges; +static PyObject *__pyx_n_s_ozz; +static PyObject *__pyx_n_s_p; +static PyObject *__pyx_n_s_p1; +static PyObject *__pyx_n_s_pEnd; +static PyObject *__pyx_n_s_pStart; +static PyObject *__pyx_n_s_pack; +static PyObject *__pyx_n_s_package; +static PyObject *__pyx_n_s_package_2; +static PyObject *__pyx_n_s_parallel; +static PyObject *__pyx_n_s_parent; +static PyObject *__pyx_n_s_part; +static PyObject *__pyx_n_s_part_type; +static PyObject *__pyx_n_s_partitioning; +static PyObject *__pyx_n_s_pc; +static PyObject *__pyx_n_s_pc_type; +static PyObject *__pyx_n_s_pd; +static PyObject *__pyx_n_s_periodic; +static PyObject *__pyx_n_s_perm; +static PyObject *__pyx_n_s_permutation; +static PyObject *__pyx_n_s_petsc; +static PyObject *__pyx_n_s_petsc4py_PETSc; +static PyObject *__pyx_kp_s_petsc4py_PETSc_Device_pyx; +static PyObject *__pyx_kp_s_petsc4py_PETSc_Error_pyx; +static PyObject *__pyx_kp_s_petsc4py_PETSc_Log_pyx; +static PyObject *__pyx_kp_s_petsc4py_PETSc_PETSc_pyx; +static PyObject *__pyx_kp_s_petsc4py_PETSc_cyclicgc_pxi; +static PyObject *__pyx_n_s_pi; +static PyObject *__pyx_n_s_pickle; +static PyObject *__pyx_n_s_pj; +static PyObject *__pyx_n_s_plexname; +static PyObject *__pyx_n_s_point; +static PyObject *__pyx_n_s_points; +static PyObject *__pyx_n_s_pop; +static PyObject *__pyx_n_s_popErrorHandler; +static PyObject *__pyx_n_s_popSignalHandler; +static PyObject *__pyx_n_s_pop_python_vfprintf; +static PyObject *__pyx_n_s_position; +static PyObject *__pyx_n_s_positive_definite; +static PyObject *__pyx_n_s_postSolve; +static PyObject *__pyx_n_s_postStep; +static PyObject *__pyx_n_s_postevent; +static PyObject *__pyx_n_s_poststep; +static PyObject *__pyx_n_s_pre; +static PyObject *__pyx_n_s_preSolve; +static PyObject *__pyx_n_s_preStep; +static PyObject *__pyx_n_s_pre_finalize; +static PyObject *__pyx_n_s_precheck; +static PyObject *__pyx_n_s_prefix; +static PyObject *__pyx_kp_s_prefix_s_name_s; +static PyObject *__pyx_n_s_prepare; +static PyObject *__pyx_n_s_prestep; +static PyObject *__pyx_n_s_primv; +static PyObject *__pyx_n_s_proc_sizes; +static PyObject *__pyx_n_s_productNumeric; +static PyObject *__pyx_n_s_productSetFromOptions; +static PyObject *__pyx_n_s_productSymbolic; +static PyObject *__pyx_n_s_property; +static PyObject *__pyx_n_s_ptap; +static PyObject *__pyx_n_s_ptype; +static PyObject *__pyx_n_s_push; +static PyObject *__pyx_n_s_pushErrorHandler; +static PyObject *__pyx_n_s_push_python_vfprintf; +static PyObject *__pyx_n_s_py_sub_ctxs; +static PyObject *__pyx_n_s_py_type; +static PyObject *__pyx_n_s_python; +static PyObject *__pyx_n_s_pyx_PickleError; +static PyObject *__pyx_n_s_pyx_checksum; +static PyObject *__pyx_n_s_pyx_getbuffer; +static PyObject *__pyx_n_s_pyx_result; +static PyObject *__pyx_n_s_pyx_state; +static PyObject *__pyx_n_s_pyx_type; +static PyObject *__pyx_n_s_pyx_unpickle_Enum; +static PyObject *__pyx_n_s_pyx_vtable; +static PyObject *__pyx_n_s_q0; +static PyObject *__pyx_n_s_q1; +static PyObject *__pyx_n_s_qorder; +static PyObject *__pyx_n_s_quad; +static PyObject *__pyx_n_s_qualname; +static PyObject *__pyx_n_s_r; +static PyObject *__pyx_kp_s_r_2; +static PyObject *__pyx_n_s_radius; +static PyObject *__pyx_n_s_random; +static PyObject *__pyx_n_s_range; +static PyObject *__pyx_n_s_ranges; +static PyObject *__pyx_n_s_rank; +static PyObject *__pyx_n_s_read; +static PyObject *__pyx_n_s_readonly; +static PyObject *__pyx_kp_s_readonly_attribute; +static PyObject *__pyx_n_s_ready; +static PyObject *__pyx_n_s_real; +static PyObject *__pyx_n_s_realPart; +static PyObject *__pyx_n_s_reason; +static PyObject *__pyx_n_s_reciprocal; +static PyObject *__pyx_n_s_red; +static PyObject *__pyx_n_s_reduce; +static PyObject *__pyx_n_s_reduce_cython; +static PyObject *__pyx_n_s_reduce_ex; +static PyObject *__pyx_n_s_redundant; +static PyObject *__pyx_n_s_redundantPoints; +static PyObject *__pyx_n_s_refine; +static PyObject *__pyx_n_s_refine_x; +static PyObject *__pyx_n_s_refine_y; +static PyObject *__pyx_n_s_refine_z; +static PyObject *__pyx_n_s_refinementLimit; +static PyObject *__pyx_n_s_refinementUniform; +static PyObject *__pyx_n_s_register; +static PyObject *__pyx_n_s_registerCitation; +static PyObject *__pyx_n_s_release; +static PyObject *__pyx_n_s_remote; +static PyObject *__pyx_n_s_remoteOffsets; +static PyObject *__pyx_n_s_remove; +static PyObject *__pyx_n_s_remove_sent_points; +static PyObject *__pyx_n_s_replace; +static PyObject *__pyx_n_s_repr; +static PyObject *__pyx_n_s_res; +static PyObject *__pyx_n_s_reset; +static PyObject *__pyx_n_s_reshape; +static PyObject *__pyx_n_s_residual; +static PyObject *__pyx_n_s_restart; +static PyObject *__pyx_n_s_restrictAnisotropy; +static PyObject *__pyx_n_s_restrictAnisotropyFirst; +static PyObject *__pyx_n_s_restrictSizes; +static PyObject *__pyx_n_s_restricthook; +static PyObject *__pyx_n_s_result; +static PyObject *__pyx_n_s_reuse; +static PyObject *__pyx_n_s_reverse; +static PyObject *__pyx_n_s_rgLabel; +static PyObject *__pyx_n_s_rhs; +static PyObject *__pyx_n_s_rhsjacobianp; +static PyObject *__pyx_n_s_right; +static PyObject *__pyx_n_s_rmap; +static PyObject *__pyx_n_s_rnd_type; +static PyObject *__pyx_n_s_rnorm; +static PyObject *__pyx_n_s_rollback; +static PyObject *__pyx_n_s_rootSection; +static PyObject *__pyx_n_s_rootdata; +static PyObject *__pyx_n_s_row; +static PyObject *__pyx_n_s_row_bsize; +static PyObject *__pyx_kp_s_row_indices_must_have_two_dimens; +static PyObject *__pyx_n_s_rowmap; +static PyObject *__pyx_n_s_rows; +static PyObject *__pyx_n_s_rscale; +static PyObject *__pyx_n_s_rsplit; +static PyObject *__pyx_n_s_rtol; +static PyObject *__pyx_n_s_rtol_0; +static PyObject *__pyx_n_s_rtol_max; +static PyObject *__pyx_n_s_rw; +static PyObject *__pyx_kp_s_s; +static PyObject *__pyx_n_s_s_2; +static PyObject *__pyx_kp_u_s_3; +static PyObject *__pyx_kp_s_s_at_s_d; +static PyObject *__pyx_kp_s_s_s; +static PyObject *__pyx_n_s_scale; +static PyObject *__pyx_n_s_scatter; +static PyObject *__pyx_n_s_scatter_type; +static PyObject *__pyx_n_s_sec; +static PyObject *__pyx_n_s_seconds; +static PyObject *__pyx_n_s_sectiondm; +static PyObject *__pyx_n_s_seed; +static PyObject *__pyx_n_s_selected; +static PyObject *__pyx_n_s_self; +static PyObject *__pyx_n_s_sep; +static PyObject *__pyx_n_s_setActive; +static PyObject *__pyx_n_s_setActiveAll; +static PyObject *__pyx_n_s_setAppCtx; +static PyObject *__pyx_n_s_setApplicationContext; +static PyObject *__pyx_n_s_setConvergedReason; +static PyObject *__pyx_n_s_setCurrent; +static PyObject *__pyx_n_s_setDM; +static PyObject *__pyx_n_s_setDS; +static PyObject *__pyx_n_s_setDefaultComm; +static PyObject *__pyx_n_s_setDefaultGlobalSection; +static PyObject *__pyx_n_s_setDefaultLocalSection; +static PyObject *__pyx_n_s_setDefaultSF; +static PyObject *__pyx_n_s_setDefaultSection; +static PyObject *__pyx_n_s_setDefaultType; +static PyObject *__pyx_n_s_setDevice; +static PyObject *__pyx_n_s_setDiagonal; +static PyObject *__pyx_n_s_setDimension; +static PyObject *__pyx_n_s_setEquationType; +static PyObject *__pyx_n_s_setFromOptions; +static PyObject *__pyx_n_s_setFunctionNorm; +static PyObject *__pyx_n_s_setFunctionTolerances; +static PyObject *__pyx_n_s_setGlobalSection; +static PyObject *__pyx_n_s_setInitial; +static PyObject *__pyx_n_s_setInitialGuessKnoll; +static PyObject *__pyx_n_s_setInitialGuessNonzero; +static PyObject *__pyx_n_s_setInterval; +static PyObject *__pyx_n_s_setIterationNumber; +static PyObject *__pyx_n_s_setKSP; +static PyObject *__pyx_n_s_setLocalSection; +static PyObject *__pyx_n_s_setMaxFunctionEvaluations; +static PyObject *__pyx_n_s_setMaxKSPFailures; +static PyObject *__pyx_n_s_setMaxLinearSolveFailures; +static PyObject *__pyx_n_s_setMaxNonlinearStepFailures; +static PyObject *__pyx_n_s_setMaxStepFailures; +static PyObject *__pyx_n_s_setMaxSteps; +static PyObject *__pyx_n_s_setMaxTime; +static PyObject *__pyx_n_s_setMonitor; +static PyObject *__pyx_n_s_setNPC; +static PyObject *__pyx_n_s_setName; +static PyObject *__pyx_n_s_setNormType; +static PyObject *__pyx_n_s_setOption; +static PyObject *__pyx_n_s_setOptionsPrefix; +static PyObject *__pyx_n_s_setPCSide; +static PyObject *__pyx_n_s_setParamsEW; +static PyObject *__pyx_n_s_setProblemType; +static PyObject *__pyx_n_s_setResidualNorm; +static PyObject *__pyx_n_s_setSection; +static PyObject *__pyx_n_s_setSectionSF; +static PyObject *__pyx_n_s_setSeed; +static PyObject *__pyx_n_s_setSizes; +static PyObject *__pyx_n_s_setSolution; +static PyObject *__pyx_n_s_setStepNumber; +static PyObject *__pyx_n_s_setStreamType; +static PyObject *__pyx_n_s_setTime; +static PyObject *__pyx_n_s_setTimeStep; +static PyObject *__pyx_n_s_setTolerances; +static PyObject *__pyx_n_s_setType; +static PyObject *__pyx_n_s_setUp; +static PyObject *__pyx_n_s_setUseEW; +static PyObject *__pyx_n_s_setUseFD; +static PyObject *__pyx_n_s_setUseMF; +static PyObject *__pyx_n_s_setValue; +static PyObject *__pyx_kp_s_setValueBlockedStagStencil_not_y; +static PyObject *__pyx_kp_s_setValueStagStencil_not_yet_impl; +static PyObject *__pyx_kp_s_setValuesStagStencil_not_yet_imp; +static PyObject *__pyx_n_s_setVisible; +static PyObject *__pyx_n_s_setstate; +static PyObject *__pyx_n_s_setstate_cython; +static PyObject *__pyx_n_s_setup; +static PyObject *__pyx_n_s_sf; +static PyObject *__pyx_n_s_sf_type; +static PyObject *__pyx_n_s_sfxc; +static PyObject *__pyx_n_s_shape; +static PyObject *__pyx_n_s_shift; +static PyObject *__pyx_n_s_shift_type; +static PyObject *__pyx_n_s_shiftamount; +static PyObject *__pyx_n_s_shifttype; +static PyObject *__pyx_n_s_side; +static PyObject *__pyx_kp_s_side_r_not_understood; +static PyObject *__pyx_n_s_simplex; +static PyObject *__pyx_n_s_size; +static PyObject *__pyx_kp_s_size_I_is_d_expected_d; +static PyObject *__pyx_kp_s_size_J_is_d_expected_d; +static PyObject *__pyx_kp_s_size_V_is_d_expected_d; +static PyObject *__pyx_kp_s_size_array_is_d_expected_dx_d_d; +static PyObject *__pyx_kp_s_size_d_nnz_is_d_expected_d; +static PyObject *__pyx_kp_s_size_o_nnz_is_d_expected_d; +static PyObject *__pyx_n_s_sizes; +static PyObject *__pyx_kp_s_sizes_array_should_have_d_entrie; +static PyObject *__pyx_n_s_skip; +static PyObject *__pyx_n_s_sleep; +static PyObject *__pyx_n_s_smooths; +static PyObject *__pyx_n_s_snes; +static PyObject *__pyx_n_s_snes_type; +static PyObject *__pyx_n_s_solve; +static PyObject *__pyx_n_s_solveAdd; +static PyObject *__pyx_n_s_solveStep; +static PyObject *__pyx_n_s_solveTranspose; +static PyObject *__pyx_n_s_solveTransposeAdd; +static PyObject *__pyx_n_s_solver; +static PyObject *__pyx_n_s_sortype; +static PyObject *__pyx_n_s_sp; +static PyObject *__pyx_n_s_space_type; +static PyObject *__pyx_n_s_split; +static PyObject *__pyx_n_s_splitOwnership; +static PyObject *__pyx_n_s_stage; +static PyObject *__pyx_n_s_star; +static PyObject *__pyx_n_s_start; +static PyObject *__pyx_n_s_starts; +static PyObject *__pyx_n_s_startswith; +static PyObject *__pyx_n_s_state; +static PyObject *__pyx_n_s_staticmethod; +static PyObject *__pyx_n_s_staticproperty; +static PyObject *__pyx_n_s_staticproperty___get; +static PyObject *__pyx_n_s_stderr; +static PyObject *__pyx_n_s_stderr_2; +static PyObject *__pyx_n_s_stdout; +static PyObject *__pyx_n_s_stdout_2; +static PyObject *__pyx_n_s_stdout_is_stderr; +static PyObject *__pyx_n_s_stencil_type; +static PyObject *__pyx_n_s_stencil_width; +static PyObject *__pyx_n_s_stenciltype; +static PyObject *__pyx_n_s_step; +static PyObject *__pyx_n_s_stepTranspose; +static PyObject *__pyx_n_s_step_number; +static PyObject *__pyx_n_s_stol; +static PyObject *__pyx_n_s_stop; +static PyObject *__pyx_n_s_str; +static PyObject *__pyx_n_s_strata; +static PyObject *__pyx_n_s_stratum; +static PyObject *__pyx_n_s_stream; +static PyObject *__pyx_n_s_stream_type; +static PyObject *__pyx_kp_s_strided_and_direct; +static PyObject *__pyx_kp_s_strided_and_direct_or_indirect; +static PyObject *__pyx_kp_s_strided_and_indirect; +static PyObject *__pyx_n_s_strides; +static PyObject *__pyx_n_s_string; +static PyObject *__pyx_kp_s_stringsource; +static PyObject *__pyx_n_s_strip; +static PyObject *__pyx_n_s_struct; +static PyObject *__pyx_n_s_structure; +static PyObject *__pyx_n_s_sub; +static PyObject *__pyx_n_s_subcomm; +static PyObject *__pyx_n_s_subdm; +static PyObject *__pyx_n_s_submat; +static PyObject *__pyx_n_s_submats; +static PyObject *__pyx_n_s_subminor; +static PyObject *__pyx_n_s_subsp; +static PyObject *__pyx_n_s_subspaceOffsets; +static PyObject *__pyx_n_s_subvec; +static PyObject *__pyx_n_s_supp; +static PyObject *__pyx_n_s_svalue; +static PyObject *__pyx_n_s_swidth; +static PyObject *__pyx_n_s_sx; +static PyObject *__pyx_n_s_sym; +static PyObject *__pyx_n_s_symmetric; +static PyObject *__pyx_n_s_syncFlush; +static PyObject *__pyx_n_s_syncPrint; +static PyObject *__pyx_n_s_sys; +static PyObject *__pyx_n_s_t; +static PyObject *__pyx_n_s_tab; +static PyObject *__pyx_n_s_tabs; +static PyObject *__pyx_n_s_tao_type; +static PyObject *__pyx_n_s_targetComplexity; +static PyObject *__pyx_n_s_tbline; +static PyObject *__pyx_n_s_tblist; +static PyObject *__pyx_n_s_tensor; +static PyObject *__pyx_n_s_terminate; +static PyObject *__pyx_n_s_theta; +static PyObject *__pyx_n_s_threshold; +static PyObject *__pyx_n_s_time; +static PyObject *__pyx_n_s_time_step; +static PyObject *__pyx_n_s_timestep; +static PyObject *__pyx_n_s_title; +static PyObject *__pyx_n_s_toAll; +static PyObject *__pyx_n_s_toDLPack; +static PyObject *__pyx_n_s_toZero; +static PyObject *__pyx_n_s_toindx; +static PyObject *__pyx_n_s_tol; +static PyObject *__pyx_n_s_tr_type; +static PyObject *__pyx_n_s_traceback; +static PyObject *__pyx_n_s_traceback_2; +static PyObject *__pyx_n_s_trans; +static PyObject *__pyx_n_s_transpose; +static PyObject *__pyx_n_s_trimmed; +static PyObject *__pyx_n_s_ts_type; +static PyObject *__pyx_n_s_tspan; +static PyObject *__pyx_n_s_twist; +static PyObject *__pyx_n_s_typ; +static PyObject *__pyx_n_s_type_registry; +static PyObject *__pyx_n_s_typestr; +static PyObject *__pyx_n_s_u; +static PyObject *__pyx_n_s_ua; +static PyObject *__pyx_n_s_uaux; +static PyObject *__pyx_n_s_uis; +static PyObject *__pyx_kp_s_unable_to_allocate_array_data; +static PyObject *__pyx_kp_s_unable_to_allocate_shape_and_str; +static PyObject *__pyx_kp_s_unhandled_PetscDeviceContextJoin; +static PyObject *__pyx_kp_s_unhandled_PetscDeviceType_d; +static PyObject *__pyx_kp_s_unhandled_PetscStreamType_d; +static PyObject *__pyx_n_s_uniform; +static PyObject *__pyx_n_s_unit; +static PyObject *__pyx_kp_s_unknown_boundary_type_s; +static PyObject *__pyx_kp_s_unknown_device_type_s; +static PyObject *__pyx_kp_s_unknown_element_type_s; +static PyObject *__pyx_kp_s_unknown_error_handler_s; +static PyObject *__pyx_kp_s_unknown_interpolation_type_s; +static PyObject *__pyx_kp_s_unknown_join_mode_s; +static PyObject *__pyx_kp_s_unknown_options_s; +static PyObject *__pyx_kp_s_unknown_scatter_mode_s; +static PyObject *__pyx_kp_s_unknown_shift_type_s; +static PyObject *__pyx_kp_s_unknown_stencil_location_type_s; +static PyObject *__pyx_kp_s_unknown_stencil_type_s; +static PyObject *__pyx_kp_s_unknown_stream_type_s; +static PyObject *__pyx_n_s_unnamed; +static PyObject *__pyx_n_s_unpack; +static PyObject *__pyx_n_s_up; +static PyObject *__pyx_n_s_up_left; +static PyObject *__pyx_n_s_up_right; +static PyObject *__pyx_n_s_update; +static PyObject *__pyx_n_s_upper; +static PyObject *__pyx_n_s_useAnchors; +static PyObject *__pyx_n_s_useClosure; +static PyObject *__pyx_n_s_useCone; +static PyObject *__pyx_n_s_useInitialGuess; +static PyObject *__pyx_n_s_v; +static PyObject *__pyx_n_s_val; +static PyObject *__pyx_n_s_value; +static PyObject *__pyx_n_s_values; +static PyObject *__pyx_kp_s_values_must_have_two_or_more_dim; +static PyObject *__pyx_n_s_varbounds; +static PyObject *__pyx_n_s_vec; +static PyObject *__pyx_n_s_vecTo; +static PyObject *__pyx_n_s_vec_from; +static PyObject *__pyx_n_s_vec_to; +static PyObject *__pyx_n_s_vec_type; +static PyObject *__pyx_n_s_vecs; +static PyObject *__pyx_n_s_vectors; +static PyObject *__pyx_n_s_verbosity; +static PyObject *__pyx_n_s_version; +static PyObject *__pyx_n_s_vg; +static PyObject *__pyx_n_s_viennaclvechandle; +static PyObject *__pyx_n_s_view; +static PyObject *__pyx_n_s_viewer; +static PyObject *__pyx_n_s_vl; +static PyObject *__pyx_n_s_vlg; +static PyObject *__pyx_n_s_vm; +static PyObject *__pyx_n_s_vn; +static PyObject *__pyx_n_s_vtol; +static PyObject *__pyx_n_s_vwr_type; +static PyObject *__pyx_n_s_w; +static PyObject *__pyx_kp_s_w_2; +static PyObject *__pyx_n_s_weight; +static PyObject *__pyx_n_s_width; +static PyObject *__pyx_n_s_wrapped_func; +static PyObject *__pyx_n_s_wraps; +static PyObject *__pyx_n_s_write; +static PyObject *__pyx_n_s_x; +static PyObject *__pyx_n_s_xdot; +static PyObject *__pyx_n_s_xdotdot; +static PyObject *__pyx_n_s_xl; +static PyObject *__pyx_n_s_xmax; +static PyObject *__pyx_n_s_xmin; +static PyObject *__pyx_n_s_xnorm; +static PyObject *__pyx_n_s_xu; +static PyObject *__pyx_n_s_y; +static PyObject *__pyx_n_s_ymax; +static PyObject *__pyx_n_s_ymin; +static PyObject *__pyx_n_s_ynorm; +static PyObject *__pyx_n_s_zeroEntries; +static PyObject *__pyx_n_s_zeroRowsColumns; +static PyObject *__pyx_n_s_zeropivot; +static PyObject *__pyx_n_s_zmax; +static PyObject *__pyx_n_s_zmin; +static PyObject *__pyx_n_s_zoz; +static PyObject *__pyx_n_s_zzo; +static PyObject *__pyx_lambda_funcdef_8petsc4py_5PETSc_lambda(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__, CYTHON_UNUSED PyObject *__pyx_v___); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_10_IS_buffer___cinit__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_4__getbuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_6__releasebuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_8__enter__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_10__exit__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_12__getsegcount__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /* proto */ +#endif +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_14__getreadbuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_19__array_interface_____get__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer___cinit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, int __pyx_v_readonly); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_4__getbuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_6__releasebuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_8__enter__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_10__exit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_12__getsegcount__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /* proto */ +#endif +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_14__getreadbuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /* proto */ +#endif +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_16__getwritebuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface_____get__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm___init__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_2__enter__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_4__exit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1i___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1j___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1k___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1c___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5index___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5field___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array___cinit__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_da, struct PyPetscVecObject *__pyx_v_vec, int __pyx_v_DOF); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_2__getitem__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_4__setitem__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6__enter__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_8__exit__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5array___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access___cinit__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_locs); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_4__enter__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_6__exit__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_ierr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_2__nonzero__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_4__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_6__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options___init__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_7Options_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options_4__contains__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_6__getitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options_8__setitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options_10__delitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_6prefix___get__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_2__set__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_4__del__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_12create(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_14destroy(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_16clear(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_18view(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_20prefixPush(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_22prefixPop(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_24hasName(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_26setValue(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_28delValue(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_30getBool(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_32getInt(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_34getReal(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_36getScalar(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_38getString(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_40insertString(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_string); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_42getAll(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_getVersion(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_devel, PyObject *__pyx_v_date, PyObject *__pyx_v_author); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_2getVersionInfo(PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_4isInitialized(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_6isFinalized(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_8getDefaultComm(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_10setDefaultComm(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_12Print(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_14syncPrint(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_16syncFlush(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_18splitOwnership(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_20sleep(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_seconds); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_22pushErrorHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_errhandler); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_24popErrorHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_26popSignalHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_28infoAllow(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flag, PyObject *__pyx_v_filename, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_30registerCitation(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_citation); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_32hasExternalPackage(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_package); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_Stage(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_2Class(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_4Event(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_klass); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_6begin(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_all); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_8view(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_10logFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flops); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_12addFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flops); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14getFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_16getTime(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_18getCPUTime(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_wrapped_func(PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_decorator(PyObject *__pyx_self, PyObject *__pyx_v_func); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_20EventDecorator(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_klass); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_22isActive(CYTHON_UNUSED PyTypeObject *__pyx_v_cls); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogStage___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_4__enter__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_6__exit__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_8push(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_10pop(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_12getName(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_14activate(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_16deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_18getActive(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_20setActive(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_22getVisible(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_24setVisible(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_7visible___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_7visible_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogClass___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_4getName(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogClass_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_6activate(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_8deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_10getActive(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_12setActive(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogClass_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_4__enter__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_6__exit__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_8begin(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_objs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_10end(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_objs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_12getName(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_14activate(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_16deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_18getActive(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_20setActive(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_22getActiveAll(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_24setActiveAll(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_26getPerfInfo(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_stage); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4Comm___cinit__(struct PyPetscCommObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_4Comm_2__dealloc__(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4__richcmp__(struct PyPetscCommObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4Comm_6__nonzero__(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_8destroy(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_10duplicate(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_12getSize(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_14getRank(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_16barrier(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4size___get__(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4rank___get__(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_7fortran___get__(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_18tompi4py(struct PyPetscCommObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Object___cinit__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_6Object_2__dealloc__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4__richcmp__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Object_6__nonzero__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_8__copy__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_10__deepcopy__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_memo); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_12view(struct PyPetscObjectObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_14destroy(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_16getType(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_18setOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_20getOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_22appendOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_24setFromOptions(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_26viewFromOptions(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_28getComm(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_30getName(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_32setName(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_34getClassId(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_36getClassName(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_38getRefCount(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_40compose(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_42query(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_44incRef(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_46decRef(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_48getAttr(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_50setAttr(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_attr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_52getDict(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_54stateIncrease(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_56stateGet(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_58stateSet(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_state); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_60incrementTabLevel(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_tab, struct PyPetscObjectObject *__pyx_v_parent); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_62setTabLevel(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_64getTabLevel(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4type___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Object_4type_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_6prefix___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Object_6prefix_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4comm___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4name___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Object_4name_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_7classid___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_5klass___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_8refcount___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_6handle___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_7fortran___get__(struct PyPetscObjectObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_garbage_cleanup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2garbage_view(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_comm); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Viewer___cinit__(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_2__call__(struct PyPetscViewerObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_4view(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_6destroy(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_8create(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_10createASCII(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_12createBinary(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_14createMPIIO(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_16createVTK(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_18createHDF5(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_20createDraw(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_display, PyObject *__pyx_v_title, PyObject *__pyx_v_position, PyObject *__pyx_v_size, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_22setType(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_vwr_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_24getType(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_26getFormat(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_28pushFormat(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_format); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_30popFormat(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_32getSubViewer(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_34restoreSubViewer(struct PyPetscViewerObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_sub); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_36STDOUT(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_38STDERR(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_40ASCII(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_42BINARY(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_44DRAW(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_46setASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_48getASCIITab(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_50addASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_52subtractASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_54pushASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_56popASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_58pushASCIITab(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_60popASCIITab(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_62useASCIITabs(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_64printfASCII(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_msg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_66printfASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_msg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_68flush(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_70setFileMode(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_72getFileMode(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_74setFileName(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_76getFileName(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_78setDrawInfo(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_display, PyObject *__pyx_v_title, PyObject *__pyx_v_position, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_80clearDraw(struct PyPetscViewerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_create(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_2pushTimestepping(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_4popTimestepping(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_6getTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_8setTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_timestep); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_10incrementTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_12pushGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_group); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_14popGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_16getGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Random___cinit__(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_2__call__(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_4view(struct PyPetscRandomObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_6destroy(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_8create(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_10setType(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_rnd_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_12getType(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_14setFromOptions(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_16getValue(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_18getValueReal(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_20getSeed(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_22setSeed(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_seed); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_24getInterval(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_26setInterval(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_interval); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_4seed___get__(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Random_4seed_2__set__(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_8interval___get__(struct PyPetscRandomObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Random_8interval_2__set__(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_14staticproperty___get__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_6Device___cinit__(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_6Device_2__dealloc__(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_4create(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_dtype, PyObject *__pyx_v_device_id); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_6destroy(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_8configure(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_10view(struct PyPetscDeviceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_12getDeviceType(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_4type___get__(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_14getDeviceId(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_9device_id___get__(struct PyPetscDeviceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_16setDefaultType(PyObject *__pyx_v_device_type); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext___cinit__(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_13DeviceContext_2__dealloc__(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_4create(PyTypeObject *__pyx_v_cls); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_6getStreamType(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_8setStreamType(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_stream_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type___get__(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_stype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_10getDevice(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_12setDevice(struct PyPetscDeviceContextObject *__pyx_v_self, struct PyPetscDeviceObject *__pyx_v_device); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device___get__(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_device); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_14setUp(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_16duplicate(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_18idle(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_20waitFor(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_22fork(struct PyPetscDeviceContextObject *__pyx_v_self, PetscInt __pyx_v_n, PyObject *__pyx_v_stream_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_24join(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_join_mode, PyObject *__pyx_v_py_sub_ctxs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_26synchronize(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_28setFromOptions(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_30viewFromOptions(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_32getCurrent(void); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_34setCurrent(PyObject *__pyx_v_dctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current___get__(struct PyPetscDeviceContextObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_dctx); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2IS___cinit__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2IS_2__getbuffer__(struct PyPetscISObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_2IS_4__releasebuffer__(struct PyPetscISObject *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_6__enter__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_8__exit__(struct PyPetscISObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10view(struct PyPetscISObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_12destroy(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_14create(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_16setType(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_is_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_18getType(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_20createGeneral(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_22createBlock(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_indices, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_24createStride(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_first, PyObject *__pyx_v_step, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_26duplicate(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_28copy(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_30load(struct PyPetscISObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_32allGather(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_34toGeneral(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_36buildTwoSided(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_toindx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_38invertPermutation(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_nlocal); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_40getSize(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_42getLocalSize(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_44getSizes(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_46getBlockSize(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_48setBlockSize(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_50sort(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_52isSorted(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_54setPermutation(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_56isPermutation(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_58setIdentity(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_60isIdentity(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_62equal(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_64sum(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_66expand(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_68union(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_70difference(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_72complement(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_nmin, PyObject *__pyx_v_nmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_74embed(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_drop); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_76renumber(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_mult); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_78setIndices(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_indices); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_80getIndices(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_82setBlockIndices(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_indices); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_84getBlockIndices(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_86setStride(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_first, PyObject *__pyx_v_step); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_88getStride(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_90getInfo(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_11permutation___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_8identity___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_6sorted___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_5sizes___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_4size___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10local_size___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10block_size___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_7indices___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_5array___get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_19__array_interface_____get__(struct PyPetscISObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_5LGMap___cinit__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_2__call__(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4setType(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_lgmap_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_6setFromOptions(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_8view(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10destroy(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_12create(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_14createIS(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_16createSF(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf, PyObject *__pyx_v_start); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_18getSize(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_20getBlockSize(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_22getIndices(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_24getBlockIndices(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_26getInfo(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_28getBlockInfo(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_30apply(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_32applyBlock(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_34applyIS(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_36applyInverse(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_38applyBlockInverse(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4size___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10block_size___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_7indices___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_13block_indices___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4info___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10block_info___get__(struct PyPetscLGMapObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2SF___cinit__(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_2SF_2__dealloc__(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_4view(struct PyPetscSFObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_6destroy(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_8create(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_10setType(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_sf_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_12getType(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_14setFromOptions(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_16setUp(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_18reset(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_20getGraph(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_22setGraph(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_nroots, PyObject *__pyx_v_local, PyObject *__pyx_v_remote); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_24setRankOrder(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_26getMulti(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_28createInverse(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_30computeDegree(struct PyPetscSFObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_32createEmbeddedRootSF(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_selected); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_34createEmbeddedLeafSF(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_selected); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_36createSectionSF(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_rootSection, PyObject *__pyx_v_remoteOffsets, struct PyPetscSectionObject *__pyx_v_leafSection); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_38distributeSection(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_rootSection, struct PyPetscSectionObject *__pyx_v_leafSection); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_40compose(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_42bcastBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_rootdata, PyArrayObject *__pyx_v_leafdata, PyObject *__pyx_v_op); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_44bcastEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_rootdata, PyArrayObject *__pyx_v_leafdata, PyObject *__pyx_v_op); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_46reduceBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_rootdata, PyObject *__pyx_v_op); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_48reduceEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_rootdata, PyObject *__pyx_v_op); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_50scatterBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_multirootdata, PyArrayObject *__pyx_v_leafdata); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_52scatterEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_multirootdata, PyArrayObject *__pyx_v_leafdata); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_54gatherBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_multirootdata); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_56gatherEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_multirootdata); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_58fetchAndOpBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyObject *__pyx_v_rootdata, PyObject *__pyx_v_leafdata, PyObject *__pyx_v_leafupdate, PyObject *__pyx_v_op); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_60fetchAndOpEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyObject *__pyx_v_rootdata, PyObject *__pyx_v_leafdata, PyObject *__pyx_v_leafupdate, PyObject *__pyx_v_op); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec___cinit__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_2__pos__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_4__neg__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_6__abs__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8__iadd__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10__isub__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_12__imul__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_14__idiv__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_16__itruediv__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_18__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_20__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_22__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_24__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_26__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_28__getitem__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec_30__setitem__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_v); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec_32__getbuffer__(struct PyPetscVecObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_3Vec_34__releasebuffer__(struct PyPetscVecObject *__pyx_v_self, Py_buffer *__pyx_v_view); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_36__enter__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_38__exit__(struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_40view(struct PyPetscVecObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_42destroy(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_44create(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_46setType(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vec_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_48setSizes(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_50createSeq(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_52createMPI(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_54createWithArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_56createCUDAWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_cudahandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_58createHIPWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_hiphandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_60createViennaCLWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_viennaclvechandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_62createWithDLPack(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_dltensor, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_64attachDLPackInfo(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_dltensor); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_66clearDLPackInfo(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_68__dlpack__(struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_stream); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_70__dlpack_device__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_72toDLPack(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_74createGhost(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_76createGhostWithArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts, PyObject *__pyx_v_array, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_78createShared(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_80createNest(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_isets, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_82setOptionsPrefix(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_84getOptionsPrefix(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_86appendOptionsPrefix(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_88setFromOptions(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_90setUp(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_92setOption(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_94getType(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_96getSize(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_98getLocalSize(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_100getSizes(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_102setBlockSize(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_bsize); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_104getBlockSize(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_106getOwnershipRange(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_108getOwnershipRanges(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_110createLocalVector(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_112getLocalVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lvec, PyObject *__pyx_v_readonly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_114restoreLocalVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lvec, PyObject *__pyx_v_readonly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_116getBuffer(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_readonly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_118getArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_readonly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_120setArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_122placeArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_124resetArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_force); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_126bindToCPU(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_flg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_128boundToCPU(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_130getCUDAHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_132restoreCUDAHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_134getHIPHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_136restoreHIPHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_138getOffloadMask(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_140getCLContextHandle(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_142getCLQueueHandle(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_144getCLMemHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_146restoreCLMemHandle(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_148duplicate(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_150copy(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_152chop(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_154load(struct PyPetscVecObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_156equal(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_158dot(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_160dotBegin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_162dotEnd(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_164tDot(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_166tDotBegin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_168tDotEnd(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_170mDot(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_172mDotBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_174mDotEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_176mtDot(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_178mtDotBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_180mtDotEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_182norm(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_184normBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_186normEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_188sum(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_190min(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_192max(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_194normalize(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_196reciprocal(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_198exp(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_200log(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_202sqrtabs(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_204abs(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_206conjugate(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_208setRandom(struct PyPetscVecObject *__pyx_v_self, struct PyPetscRandomObject *__pyx_v_random); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_210permute(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_order, PyObject *__pyx_v_invert); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_212zeroEntries(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_214set(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_216isset(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_idx, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_218scale(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_220shift(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_222chop(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_224swap(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_226axpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_228isaxpy(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_idx, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_230aypx(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_232axpby(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, PyObject *__pyx_v_beta, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_234waxpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_236maxpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alphas, PyObject *__pyx_v_vecs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_238pointwiseMult(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_240pointwiseDivide(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_242pointwiseMin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_244pointwiseMax(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_246pointwiseMaxAbs(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_248maxPointwiseDivide(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_250getValue(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_252getValues(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_254getValuesStagStencil(CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indices, CYTHON_UNUSED PyObject *__pyx_v_values); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_256setValue(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_258setValues(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_260setValuesBlocked(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_262setValuesStagStencil(CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indices, CYTHON_UNUSED PyObject *__pyx_v_values, CYTHON_UNUSED PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_264setLGMap(struct PyPetscVecObject *__pyx_v_self, struct PyPetscLGMapObject *__pyx_v_lgmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_266getLGMap(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_268setValueLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_270setValuesLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_272setValuesBlockedLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_274assemblyBegin(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_276assemblyEnd(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_278assemble(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_280strideScale(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_282strideSum(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_284strideMin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_286strideMax(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_288strideNorm(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_norm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_290strideScatter(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_292strideGather(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_294localForm(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_296ghostUpdateBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_298ghostUpdateEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_300ghostUpdate(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_302setMPIGhost(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_304getSubVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, struct PyPetscVecObject *__pyx_v_subvec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_306restoreSubVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, struct PyPetscVecObject *__pyx_v_subvec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_308getNestSubVecs(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_310setNestSubVecs(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_sx, PyObject *__pyx_v_idxm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_312setDM(struct PyPetscVecObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_314getDM(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_5sizes___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec_5sizes_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_4size___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10local_size___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10block_size___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_11owner_range___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_12owner_ranges___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_w___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_r___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_7array_w___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec_7array_w_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_7array_r___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_6buffer___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_5array___get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Vec_5array_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_19__array_interface_____get__(struct PyPetscVecObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4Quad___cinit__(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_2view(struct PyPetscQuadObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_4create(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_6duplicate(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_8destroy(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_10getData(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_12getNumComponents(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_14setNumComponents(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_nc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_16getOrder(struct PyPetscQuadObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_18setOrder(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_order); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2FE___cinit__(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_2view(struct PyPetscFEObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_4destroy(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_6create(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_8createDefault(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_nc, PyObject *__pyx_v_isSimplex, PyObject *__pyx_v_qorder, PyObject *__pyx_v_prefix, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_10createLagrange(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_nc, PyObject *__pyx_v_isSimplex, PyObject *__pyx_v_k, PyObject *__pyx_v_qorder, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_12getQuadrature(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_14getDimension(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_16getSpatialDimension(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_18getNumComponents(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_20setNumComponents(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_comp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_22getNumDof(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_24getTileSizes(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_26setTileSizes(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_blockSize, PyObject *__pyx_v_numBlocks, PyObject *__pyx_v_batchSize, PyObject *__pyx_v_numBatches); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_28getFaceQuadrature(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_30setQuadrature(struct PyPetscFEObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_32setFaceQuadrature(struct PyPetscFEObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_34setType(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_fe_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_36getBasisSpace(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_38setBasisSpace(struct PyPetscFEObject *__pyx_v_self, struct PyPetscSpaceObject *__pyx_v_sp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_40setFromOptions(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_42setUp(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_44getDualSpace(struct PyPetscFEObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_46setDualSpace(struct PyPetscFEObject *__pyx_v_self, struct PyPetscDualSpaceObject *__pyx_v_dspace); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_48viewFromOptions(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Scatter___cinit__(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_2__call__(struct PyPetscScatterObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_4view(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_6destroy(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_8create(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscISObject *__pyx_v_is_from, struct PyPetscVecObject *__pyx_v_vec_to, struct PyPetscISObject *__pyx_v_is_to); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_10setType(struct PyPetscScatterObject *__pyx_v_self, PyObject *__pyx_v_scatter_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_12getType(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_14setFromOptions(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_16setUp(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_18copy(struct PyPetscScatterObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_20toAll(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_22toZero(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_24begin(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_26end(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_28scatterBegin(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_30scatterEnd(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_32scatter(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7Section___cinit__(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_7Section_2__dealloc__(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_4view(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_6destroy(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_8create(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_10clone(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_12setUp(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_14reset(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_16getNumFields(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_18setNumFields(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_numFields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_20getFieldName(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_22setFieldName(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_fieldName); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_24getFieldComponents(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_26setFieldComponents(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_numComp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_28getChart(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_30setChart(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_pStart, PyObject *__pyx_v_pEnd); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_32getPermutation(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_34setPermutation(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_perm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_36getDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_38setDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_40addDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_42getFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_44setFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_46addFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_48getConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_50setConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_52addConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_54getFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_56setFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_58addFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_60getConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_62setConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_indices); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_64getFieldConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_66setFieldConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_indices); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_68getMaxDof(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_70getStorageSize(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_72getConstrainedStorageSize(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_74getOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_76setOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_offset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_78getFieldOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_80setFieldOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_offset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_82getOffsetRange(struct PyPetscSectionObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_84createGlobalSection(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Mat___cinit__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_2__pos__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_4__neg__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_6__iadd__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_8__isub__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10__imul__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_12__idiv__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_14__itruediv__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_16__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_18__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_20__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_22__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +#endif +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_24__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_26__getitem__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Mat_28__setitem__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij, PyObject *__pyx_v_v); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_30__call__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_32view(struct PyPetscMatObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_34destroy(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_36create(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_38setType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mat_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_40setSizes(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_42setBlockSize(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_bsize); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_44setBlockSizes(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row_bsize, PyObject *__pyx_v_col_bsize); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_46setVecType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_vec_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_48getVecType(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_50createAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_52createBAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_54createSBAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_56createAIJCRL(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_58setPreallocationNNZ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nnz); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_60setPreallocationCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_csr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_62createAIJWithArrays(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_csr, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_64createDense(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_array, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_66createDenseCUDA(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_array, PyObject *__pyx_v_cudahandle, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_68setPreallocationDense(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_array); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_70createScatter(struct PyPetscMatObject *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_scatter, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_72createNormal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_74createTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_76createNormalHermitian(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_78createHermitianTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_80createLRC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_U, struct PyPetscVecObject *__pyx_v_c, struct PyPetscMatObject *__pyx_v_V); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_82createSubMatrixVirtual(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_84createNest(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mats, PyObject *__pyx_v_isrows, PyObject *__pyx_v_iscols, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_86createH2OpusFromMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_coordinates, PyObject *__pyx_v_dist, PyObject *__pyx_v_eta, PyObject *__pyx_v_leafsize, PyObject *__pyx_v_maxrank, PyObject *__pyx_v_bs, PyObject *__pyx_v_rtol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_88createIS(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, struct PyPetscLGMapObject *__pyx_v_lgmapr, struct PyPetscLGMapObject *__pyx_v_lgmapc, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_90createPython(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_92setPythonContext(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_94getPythonContext(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_96setPythonType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_98getPythonType(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_100setOptionsPrefix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_102getOptionsPrefix(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_104appendOptionsPrefix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_106setFromOptions(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_108setUp(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_110setOption(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_112getOption(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_option); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_114getType(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_116getSize(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_118getLocalSize(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_120getSizes(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_122getBlockSize(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_124getBlockSizes(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_126getOwnershipRange(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_128getOwnershipRanges(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_130getOwnershipRangeColumn(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_132getOwnershipRangesColumn(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_134getOwnershipIS(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_136getInfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_info); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_138duplicate(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_copy); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_140copy(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_structure); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_142load(struct PyPetscMatObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_144convert(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mat_type, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_146transpose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_148setTransposePrecursor(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_150hermitianTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_152realPart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_154imagPart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_156conjugate(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_158permute(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_row, struct PyPetscISObject *__pyx_v_col); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_160equal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_162isTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_164isSymmetric(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_166isSymmetricKnown(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_168isHermitian(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_170isHermitianKnown(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_172isStructurallySymmetric(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_174zeroEntries(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_176getValue(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_178getValues(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_180getValuesCSR(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_182getRow(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_184getRowIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_symmetric, PyObject *__pyx_v_compressed); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_186getColumnIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_symmetric, PyObject *__pyx_v_compressed); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_188setValue(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_190setValues(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_192setValuesRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_194setValuesIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_196setValuesCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_198setValuesBlocked(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_200setValuesBlockedRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_202setValuesBlockedIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_204setValuesBlockedCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_206setLGMap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscLGMapObject *__pyx_v_rmap, struct PyPetscLGMapObject *__pyx_v_cmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_208getLGMap(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_210setValueLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_212setValuesLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_214setValuesLocalRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_216setValuesLocalIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_218setValuesLocalCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_220setValuesBlockedLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_222setValuesBlockedLocalRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_224setValuesBlockedLocalIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_226setValuesBlockedLocalCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_228setStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_dims, PyObject *__pyx_v_starts, PyObject *__pyx_v_dof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_230setValueStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_232setValueStagStencil(CYTHON_UNUSED struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_row, CYTHON_UNUSED PyObject *__pyx_v_col, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_234setValueBlockedStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_236setValueBlockedStagStencil(CYTHON_UNUSED struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_row, CYTHON_UNUSED PyObject *__pyx_v_col, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_238zeroRows(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_240zeroRowsLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_242zeroRowsColumns(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_244zeroRowsColumnsLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_246zeroRowsColumnsStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_248storeValues(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_250retrieveValues(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_252assemblyBegin(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_254assemblyEnd(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_256assemble(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_258isAssembled(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_260findZeroRows(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_262createVecs(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_side); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_264createVecRight(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_266createVecLeft(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_268getColumnVector(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_column, struct PyPetscVecObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_270getRedundantMatrix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nsubcomm, PyObject *__pyx_v_subcomm, struct PyPetscMatObject *__pyx_v_out); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_272getDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_274getRowSum(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_276setDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_diag, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_278diagonalScale(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_L, struct PyPetscVecObject *__pyx_v_R); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_280invertBlockDiagonal(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_282setNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_284getNullSpace(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_286setTransposeNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_288getTransposeNullSpace(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_290setNearNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_292getNearNullSpace(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_294mult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_296multAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_298multTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_300multTransposeAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_302multHermitian(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_304multHermitianAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_306SOR(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x, PyObject *__pyx_v_omega, PyObject *__pyx_v_sortype, PyObject *__pyx_v_shift, PyObject *__pyx_v_its, PyObject *__pyx_v_lits); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_308getDiagonalBlock(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_310increaseOverlap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_overlap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_312createSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_314createSubMatrices(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_isrows, PyObject *__pyx_v_iscols, PyObject *__pyx_v_submats); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_316getLocalSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_318restoreLocalSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_320norm(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_norm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_322scale(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_324shift(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_326chop(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_328setRandom(struct PyPetscMatObject *__pyx_v_self, struct PyPetscRandomObject *__pyx_v_random); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_330axpy(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscMatObject *__pyx_v_X, PyObject *__pyx_v_structure); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_332aypx(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscMatObject *__pyx_v_X, PyObject *__pyx_v_structure); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_334matMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_336matTransposeMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_338transposeMatMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_340ptap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_P, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_342rart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_R, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_344matMatMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_C, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_346kron(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_348bindToCPU(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_flg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_350boundToCPU(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_352getOrdering(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ord_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_354reorderForNonzeroDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_atol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_356factorLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_358factorSymbolicLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_360factorNumericLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_362factorILU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_364factorSymbolicILU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_366factorCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_368factorSymbolicCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_370factorNumericCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_372factorICC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_374factorSymbolicICC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_376getInertia(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_378setUnfactored(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_380fixISLocalEmpty(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_fix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_382getISLocalMat(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_384restoreISLocalMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_local); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_386setISLocalMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_local); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_388setISPreallocation(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nnz, PyObject *__pyx_v_onnz); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_390getLRCMats(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_392H2OpusOrthogonalize(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_394H2OpusCompress(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_396H2OpusLowRankUpdate(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_U, struct PyPetscMatObject *__pyx_v_V, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_398setMumpsIcntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl, PyObject *__pyx_v_ival); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_400getMumpsIcntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_402setMumpsCntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl, PyObject *__pyx_v_val); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_404getMumpsCntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_406getMumpsInfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_408getMumpsInfog(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_410getMumpsRinfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_412getMumpsRinfog(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_414solveForward(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_416solveBackward(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_418solve(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_420solveTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_422solveAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_y, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_424solveTransposeAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_y, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_426matSolve(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_428setDenseLDA(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_lda); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_430getDenseLDA(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_432getDenseArray(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_readonly); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_434getDenseLocalMatrix(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_436getDenseColumnVec(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_438restoreDenseColumnVec(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_440getNestSize(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_442getNestISs(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_444getNestLocalISs(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_446getNestSubMatrix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_j); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_448getISLocalMat(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_450getDM(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_452setDM(struct PyPetscMatObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_5sizes___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3Mat_5sizes_2__set__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_4size___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10local_size___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10block_size___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_11block_sizes___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_11owner_range___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_12owner_ranges___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9assembled___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9symmetric___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9hermitian___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10structsymm___get__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_454__dlpack__(struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_stream); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_456__dlpack_device__(struct PyPetscMatObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_458toDLPack(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mode); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_9NullSpace___cinit__(struct PyPetscNullSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_2__call__(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_4view(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_6destroy(struct PyPetscNullSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_8create(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_constant, PyObject *__pyx_v_vectors, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_10createRigidBody(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_coords); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_12setFunction(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_14hasConstant(struct PyPetscNullSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_16getVecs(struct PyPetscNullSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_18getFunction(struct PyPetscNullSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_20remove(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_22test(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_15MatPartitioning___cinit__(struct PyPetscMatPartitioningObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_2__call__(struct PyPetscMatPartitioningObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_4view(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_6destroy(struct PyPetscMatPartitioningObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_8create(struct PyPetscMatPartitioningObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_10setType(struct PyPetscMatPartitioningObject *__pyx_v_self, PyObject *__pyx_v_matpartitioning_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_12getType(struct PyPetscMatPartitioningObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_14setFromOptions(struct PyPetscMatPartitioningObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_16setAdjacency(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_adj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_18apply(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_partitioning); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2PC___cinit__(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_2__call__(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_4view(struct PyPetscPCObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_6destroy(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_8create(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_10setType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_pc_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_12getType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_14setOptionsPrefix(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_16getOptionsPrefix(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_18appendOptionsPrefix(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_20setFromOptions(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_22setOperators(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_24getOperators(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_26setUseAmat(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_28getUseAmat(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_30setReusePreconditioner(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_32setFailedReason(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_reason); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_34getFailedReason(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_36getFailedReasonRank(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_38setUp(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_40reset(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_42setUpOnBlocks(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_44apply(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_46matApply(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_48applyTranspose(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_50applySymmetricLeft(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_52applySymmetricRight(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_54getDM(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_56setDM(struct PyPetscPCObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_58setCoordinates(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_coordinates); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_60createPython(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_62setPythonContext(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_64getPythonContext(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_66setPythonType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_68getPythonType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_70setASMType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_asmtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_72setASMOverlap(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_overlap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_74setASMLocalSubdomains(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nsd, PyObject *__pyx_v_is_, PyObject *__pyx_v_is_local); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_76setASMTotalSubdomains(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nsd, PyObject *__pyx_v_is_, PyObject *__pyx_v_is_local); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_78getASMSubKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_80setASMSortIndices(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dosort); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_82setGASMType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_gasmtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_84setGASMOverlap(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_overlap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_86setGAMGType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_gamgtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_88setGAMGLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_90setGAMGSmooths(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_smooths); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_92getHYPREType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_94setHYPREType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_hypretype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_96setHYPREDiscreteCurl(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_98setHYPREDiscreteGradient(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_100setHYPRESetAlphaPoissonMatrix(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_102setHYPRESetBetaPoissonMatrix(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_104setHYPRESetInterpolations(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dim, struct PyPetscMatObject *__pyx_v_RT_Pi_Full, PyObject *__pyx_v_RT_Pi, struct PyPetscMatObject *__pyx_v_ND_Pi_Full, PyObject *__pyx_v_ND_Pi); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_106setHYPRESetEdgeConstantVectors(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_ozz, struct PyPetscVecObject *__pyx_v_zoz, struct PyPetscVecObject *__pyx_v_zzo); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_108setHYPREAMSSetInteriorNodes(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_interior); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_110setFactorSolverType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_solver); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_112getFactorSolverType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_114setFactorSetUpSolverType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_116setFactorOrdering(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ord_type, PyObject *__pyx_v_nzdiag, PyObject *__pyx_v_reuse); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_118setFactorPivot(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_zeropivot, PyObject *__pyx_v_inblocks); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_120setFactorShift(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_shift_type, PyObject *__pyx_v_amount); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_122setFactorLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_124getFactorMatrix(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_126setFieldSplitType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_128setFieldSplitIS(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_fields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_130setFieldSplitFields(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_fields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_132getFieldSplitSubKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_134getFieldSplitSchurGetSubKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_136setFieldSplitSchurFactType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_138setFieldSplitSchurPreType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ptype, struct PyPetscMatObject *__pyx_v_pre); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_140setCompositeType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_142getCompositePC(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_144addCompositePCType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_pc_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_146getKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_148getMGType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_150setMGType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_mgtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_152getMGLevels(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_154setMGLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_156getMGCoarseSolve(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_158setMGInterpolation(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_160getMGInterpolation(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_162setMGRestriction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_164getMGRestriction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_166setMGRScale(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_rscale); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_168getMGRScale(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_170getMGSmoother(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_172getMGSmootherDown(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_174getMGSmootherUp(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_176setMGCycleType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_cycle_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_178setMGCycleTypeOnLevel(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_cycle_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_180setMGRhs(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_rhs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_182setMGX(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_184setMGR(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_r); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_186setBDDCDivergenceMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_div, PyObject *__pyx_v_trans, struct PyPetscISObject *__pyx_v_l2l); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_188setBDDCDiscreteGradient(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_G, PyObject *__pyx_v_order, PyObject *__pyx_v_field, PyObject *__pyx_v_gord, PyObject *__pyx_v_conforming); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_190setBDDCChangeOfBasisMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_T, PyObject *__pyx_v_interior); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_192setBDDCPrimalVerticesIS(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_primv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_194setBDDCPrimalVerticesLocalIS(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_primv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_196setBDDCCoarseningRatio(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_cratio); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_198setBDDCLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_200setBDDCDirichletBoundaries(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_202setBDDCDirichletBoundariesLocal(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_204setBDDCNeumannBoundaries(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_206setBDDCNeumannBoundariesLocal(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_208setBDDCDofsSplitting(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_isfields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_210setBDDCDofsSplittingLocal(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_isfields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_212setPatchCellNumbering(struct PyPetscPCObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_214setPatchDiscretisationInfo(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dms, PyObject *__pyx_v_bs, PyObject *__pyx_v_cellNodeMaps, PyObject *__pyx_v_subspaceOffsets, PyObject *__pyx_v_ghostBcNodes, PyObject *__pyx_v_globalBcNodes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_216setPatchComputeOperator(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_218setPatchComputeOperatorInteriorFacets(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_220setPatchComputeFunction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_222setPatchComputeFunctionInteriorFacets(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_224setPatchConstructType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_typ, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_226setHPDDMAuxiliaryMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_uis, struct PyPetscMatObject *__pyx_v_uaux); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_228setHPDDMRHSMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_230setHPDDMHasNeumannMat(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_has); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_232setHPDDMCoarseCorrectionType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_correction_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_234getHPDDMCoarseCorrectionType(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_236getHPDDMSTShareSubKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_238setHPDDMDeflationMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_uis, struct PyPetscMatObject *__pyx_v_U); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_240setSPAIEpsilon(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_val); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_242setSPAINBSteps(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nbsteps); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_244setSPAIMax(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_maxval); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_246setSPAIMaxNew(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_maxval); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_248setSPAIBlockSize(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_250setSPAICacheSize(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_252setSPAIVerbose(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_254setSPAISp(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_sym); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_256setDeflationInitOnly(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_258setDeflationLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_260setDeflationReductionFactor(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_red); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_262setDeflationCorrectionFactor(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_fact); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_264setDeflationSpaceToCompute(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_space_type, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_266setDeflationSpace(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_W, PyObject *__pyx_v_transpose); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_268setDeflationProjectionNullSpaceMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_270setDeflationCoarseMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_272getDeflationCoarseKSP(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_274getDeflationPC(struct PyPetscPCObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP___cinit__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2__call__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_b, PyObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4view(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6destroy(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_8create(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_10setType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_ksp_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_12getType(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_14setOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_16getOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_18appendOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_20setFromOptions(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_22setAppCtx(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_appctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_24getAppCtx(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_26getDM(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_28setDM(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_30setDMActive(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_32setComputeRHS(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rhs, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_34setComputeOperators(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_operators, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_36setOperators(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_38getOperators(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_40setPC(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscPCObject *__pyx_v_pc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_42getPC(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_44setTolerances(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol, PyObject *__pyx_v_divtol, PyObject *__pyx_v_max_it); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_46getTolerances(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_48setConvergenceTest(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_50getConvergenceTest(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_52callConvergenceTest(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_54setConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_length, PyObject *__pyx_v_reset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_56getConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_58logConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_60setMonitor(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_62getMonitor(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_64monitorCancel(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_66monitor(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_68setPCSide(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_side); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_70getPCSide(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_72setNormType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_normtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_74getNormType(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_76setComputeEigenvalues(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_78getComputeEigenvalues(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_80setComputeSingularValues(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_82getComputeSingularValues(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_84setInitialGuessNonzero(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_86getInitialGuessNonzero(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_88setInitialGuessKnoll(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_90getInitialGuessKnoll(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_92setUseFischerGuess(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_94setUp(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_96reset(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_98setUpOnBlocks(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_100solve(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_102solveTranspose(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_104matSolve(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_106matSolveTranspose(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_108setIterationNumber(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_110getIterationNumber(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_112setResidualNorm(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_114getResidualNorm(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_116setConvergedReason(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_reason); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_118getConvergedReason(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_120setErrorIfNotConverged(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_122getErrorIfNotConverged(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_124getRhs(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_126getSolution(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_128getWorkVecs(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_right, PyObject *__pyx_v_left); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_130buildSolution(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_132buildResidual(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_r); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_134computeEigenvalues(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_136computeExtremeSingularValues(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_138setGMRESRestart(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_restart); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_140createPython(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_142setPythonContext(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_144getPythonContext(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_146setPythonType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_148getPythonType(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6appctx___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6appctx_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2dm___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_2dm_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7vec_sol___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7vec_rhs___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6mat_op___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6mat_pc___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2pc___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4rtol___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4rtol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4atol___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4atol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6divtol___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6divtol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6max_it___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6max_it_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_3its___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_3its_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4norm___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4norm_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7history___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6reason___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6reason_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9iterating___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9converged___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_8diverged___get__(struct PyPetscKSPObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES___cinit__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_2view(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4destroy(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6create(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_8setType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_snes_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_10getType(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_12setOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_14getOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_16appendOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_18setFromOptions(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_20setApplicationContext(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_appctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_22getApplicationContext(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_24getDM(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_26setDM(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_28setFASInterpolation(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_30getFASInterpolation(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_32setFASRestriction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_34getFASRestriction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_36setFASInjection(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_38getFASInjection(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_40setFASRScale(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_42setFASLevels(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_levels, PyObject *__pyx_v_comms); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_44getFASLevels(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_46getFASCycleSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_48getFASCoarseSolve(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_50getFASSmoother(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_52getFASSmootherDown(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_54getFASSmootherUp(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_56getNPC(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_58hasNPC(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_60setNPC(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscSNESObject *__pyx_v_snes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_62setNPCSide(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_side); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_64getNPCSide(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_66setLineSearchPreCheck(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_precheck, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_68setInitialGuess(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_initialguess, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_70getInitialGuess(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_72setFunction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_74getFunction(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_76setUpdate(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_update, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_78getUpdate(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_80setJacobian(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_82getJacobian(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_84setObjective(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_objective, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_86getObjective(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_88computeFunction(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_90computeJacobian(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_92computeObjective(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_94setNGS(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_ngs, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_96getNGS(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_98computeNGS(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_100setTolerances(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol, PyObject *__pyx_v_stol, PyObject *__pyx_v_max_it); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_102getTolerances(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_104setNormSchedule(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_normsched); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_106getNormSchedule(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_108setConvergenceTest(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_110getConvergenceTest(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_112callConvergenceTest(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_xnorm, PyObject *__pyx_v_ynorm, PyObject *__pyx_v_fnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_114setConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_length, PyObject *__pyx_v_reset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_116getConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_118logConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_norm, PyObject *__pyx_v_linear_its); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_120setResetCounters(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_reset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_122setMonitor(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_124getMonitor(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_126monitorCancel(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_128monitor(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_130setMaxFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_funcs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_132getMaxFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_134getFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_136setMaxStepFailures(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_fails); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_138getMaxStepFailures(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_140getStepFailures(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_142setMaxKSPFailures(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_fails); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_144getMaxKSPFailures(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_146getKSPFailures(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_148setUp(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_150reset(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_152solve(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_154setConvergedReason(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_reason); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_156getConvergedReason(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_158setErrorIfNotConverged(struct PyPetscSNESObject *__pyx_v_self, int __pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_160getErrorIfNotConverged(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_162setIterationNumber(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_164getIterationNumber(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_166setForceIteration(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_force); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_168setFunctionNorm(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_norm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_170getFunctionNorm(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_172getLinearSolveIterations(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_174getRhs(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_176getSolution(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_178setSolution(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_180getSolutionUpdate(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_182setKSP(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscKSPObject *__pyx_v_ksp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_184getKSP(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_186setUseEW(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag, PyObject *__pyx_v_targs, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_188getUseEW(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_190setParamsEW(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_version, PyObject *__pyx_v_rtol_0, PyObject *__pyx_v_rtol_max, PyObject *__pyx_v_gamma, PyObject *__pyx_v_alpha, PyObject *__pyx_v_alpha2, PyObject *__pyx_v_threshold); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_192getParamsEW(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_194setUseMF(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_196getUseMF(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_198setUseFD(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_200getUseFD(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_202setVariableBounds(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_204getVIInactiveSet(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_206createPython(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_208setPythonContext(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_210getPythonContext(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_212setPythonType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_214getPythonType(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_216getCompositeSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_218getCompositeNumber(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_220getNASMSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_222getNASMNumber(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_224setPatchCellNumbering(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_226setPatchDiscretisationInfo(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_dms, PyObject *__pyx_v_bs, PyObject *__pyx_v_cellNodeMaps, PyObject *__pyx_v_subspaceOffsets, PyObject *__pyx_v_ghostBcNodes, PyObject *__pyx_v_globalBcNodes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_228setPatchComputeOperator(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_230setPatchComputeFunction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_232setPatchConstructType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_typ, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6appctx___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6appctx_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_2dm___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_2dm_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3npc___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3npc_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_sol___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_upd___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_rhs___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3ksp___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3ksp_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4rtol___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4rtol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4atol___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4atol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4stol___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4stol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6max_it___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6max_it_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3its___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3its_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4norm___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4norm_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7history___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6reason___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6reason_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9iterating___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9converged___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_8diverged___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd___get__(struct PyPetscSNESObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS___cinit__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_2view(struct PyPetscTSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4load(struct PyPetscTSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6destroy(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8create(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_10clone(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_12setType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_14setRKType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_16setARKIMEXType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_18setARKIMEXFullyImplicit(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_20getType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_22getRKType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_24getARKIMEXType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_26setProblemType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ptype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_28getProblemType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_30setEquationType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_eqtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_32getEquationType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_34setOptionsPrefix(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_36getOptionsPrefix(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_38appendOptionsPrefix(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_40setFromOptions(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_42setAppCtx(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_appctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_44getAppCtx(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_46setRHSFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_48setRHSJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_50computeRHSFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_52computeRHSFunctionLinear(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_54computeRHSJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_56computeRHSJacobianConstant(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_58getRHSFunction(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_60getRHSJacobian(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_62setIFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_64setIJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_66setIJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_68computeIFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_imex); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_70computeIJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_imex); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_72computeIJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_imex); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_74getIFunction(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_76getIJacobian(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_78setI2Function(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_80setI2Jacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_82computeI2Function(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_xdotdot, struct PyPetscVecObject *__pyx_v_f); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_84computeI2Jacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_xdotdot, PyObject *__pyx_v_v, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_86getI2Function(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_88getI2Jacobian(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_90setSolution(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_92getSolution(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_94setSolution2(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u, struct PyPetscVecObject *__pyx_v_v); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_96getSolution2(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_98setTimeSpan(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_tspan); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_100getTimeSpan(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_102getTimeSpanSolutions(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_104getSNES(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_106getKSP(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_108getDM(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_110setDM(struct PyPetscTSObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_112setTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_114getTime(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_116getPrevTime(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_118getSolveTime(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_120setTimeStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_time_step); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_122getTimeStep(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_124setStepNumber(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_step_number); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_126getStepNumber(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_128setMaxTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_max_time); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_130getMaxTime(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_132setMaxSteps(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_max_steps); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_134getMaxSteps(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_136getSNESIterations(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_138getKSPIterations(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_140setMaxStepRejections(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_142getStepRejections(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_144setMaxSNESFailures(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_146getSNESFailures(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_148setErrorIfStepFails(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_150setTolerances(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_152getTolerances(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_154setExactFinalTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_option); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_156setConvergedReason(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_reason); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_158getConvergedReason(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_160setMonitor(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_162getMonitor(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_164monitorCancel(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_166monitor(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_step, PyObject *__pyx_v_time, struct PyPetscVecObject *__pyx_v_u); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_168setEventHandler(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_direction, PyObject *__pyx_v_terminate, PyObject *__pyx_v_eventhandler, PyObject *__pyx_v_postevent, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_170setEventTolerances(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_tol, PyObject *__pyx_v_vtol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_172getNumEvents(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_174setPreStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prestep, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_176getPreStep(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_178setPostStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_poststep, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_180getPostStep(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_182setUp(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_184reset(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_186step(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_188restartStep(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_190rollBack(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_192solve(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_194interpolate(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_u); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_196setStepLimits(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_hmin, PyObject *__pyx_v_hmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_198getStepLimits(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_200setSaveTrajectory(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_202removeTrajectory(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_204getCostIntegral(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_206setCostGradients(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_vl, PyObject *__pyx_v_vm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_208getCostGradients(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_210setRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobianp, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_212createQuadratureTS(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_forward); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_214getQuadratureTS(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_216setRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_rhsjacobianp, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_218computeRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_220adjointSetSteps(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_adjoint_steps); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_222adjointSetUp(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_224adjointSolve(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_226adjointStep(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_228adjointReset(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_230createPython(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_232setPythonContext(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_234getPythonContext(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_236setPythonType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_238getPythonType(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_240setTheta(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_theta); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_242getTheta(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_244setThetaEndpoint(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_246getThetaEndpoint(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_248setAlphaRadius(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_radius); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_250setAlphaParams(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_alpha_m, PyObject *__pyx_v_alpha_f, PyObject *__pyx_v_gamma); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_252getAlphaParams(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6appctx___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_6appctx_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_2dm___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_2dm_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_12problem_type___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_12problem_type_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_13equation_type___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_13equation_type_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4snes___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_3ksp___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_7vec_sol___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4time___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_4time_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9time_step___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_9time_step_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_11step_number___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_11step_number_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8max_time___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_8max_time_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9max_steps___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_9max_steps_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4rtol___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_4rtol_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4atol___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_4atol_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6reason___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2TS_6reason_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9iterating___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9converged___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8diverged___get__(struct PyPetscTSObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3TAO___cinit__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_2view(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4destroy(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6create(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8setType(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_tao_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_10getType(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_12setOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_14appendOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_16getOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_18setFromOptions(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_20setUp(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_22setInitialTrustRegionRadius(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_radius); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_24setAppCtx(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_appctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_26getAppCtx(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_28setSolution(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_30setObjective(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objective, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_32setResidual(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_residual, struct PyPetscVecObject *__pyx_v_R, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_34setJacobianResidual(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_36setGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_gradient, struct PyPetscVecObject *__pyx_v_g, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_38getGradient(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_40setObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objgrad, struct PyPetscVecObject *__pyx_v_g, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_42getObjectiveAndGradient(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_44setVariableBounds(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_varbounds, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_46setConstraints(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_constraints, struct PyPetscVecObject *__pyx_v_C, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_48setHessian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_hessian, struct PyPetscMatObject *__pyx_v_H, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_50getHessian(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_52setJacobian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_54setStateDesignIS(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_state, struct PyPetscISObject *__pyx_v_design); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_56setJacobianState(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_state, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, struct PyPetscMatObject *__pyx_v_I, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_58setJacobianDesign(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_design, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_60setEqualityConstraints(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_equality_constraints, struct PyPetscVecObject *__pyx_v_c, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_62setJacobianEquality(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_equality, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_64setUpdate(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_update, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_66getUpdate(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_68computeObjective(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_70computeResidual(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_72computeGradient(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_g); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_74computeObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_g); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_76computeDualVariables(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_78computeVariableBounds(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_80computeConstraints(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_c); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_82computeHessian(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_H, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_84computeJacobian(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_86setTolerances(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_gatol, PyObject *__pyx_v_grtol, PyObject *__pyx_v_gttol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_88getTolerances(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_90setMaximumIterations(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_mit); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_92getMaximumIterations(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_94setMaximumFunctionEvaluations(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_mit); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_96getMaximumFunctionEvaluations(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_98setConstraintTolerances(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_catol, PyObject *__pyx_v_crtol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_100getConstraintTolerances(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_102setConvergenceTest(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_104getConvergenceTest(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_106setConvergedReason(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_reason); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_108getConvergedReason(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_110setMonitor(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_112getMonitor(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_114cancelMonitor(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_116monitor(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_f, PyObject *__pyx_v_res, PyObject *__pyx_v_cnorm, PyObject *__pyx_v_step); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_118solve(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_120getSolution(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_122setGradientNorm(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_124getGradientNorm(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_126setLMVMH0(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_128getLMVMH0(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_130getLMVMH0KSP(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_132getVariableBounds(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_134setIterationNumber(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_its); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_136getIterationNumber(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_138getObjectiveValue(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_140getConvergedReason(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_142getSolutionNorm(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_144getSolutionStatus(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_146getKSP(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_148getBRGNSubsolver(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_150setBRGNRegularizerObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objgrad, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_152setBRGNRegularizerHessian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_hessian, struct PyPetscMatObject *__pyx_v_H, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_154setBRGNRegularizerWeight(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_weight); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_156setBRGNSmoothL1Epsilon(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_epsilon); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_158setBRGNDictionaryMatrix(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_D); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_160getBRGNDampingVector(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_162createPython(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_164setPythonContext(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_context); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_166getPythonContext(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_168setPythonType(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_py_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_170getPythonType(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6appctx___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3TAO_6appctx_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_3ksp___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4ftol___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4ftol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4gtol___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4gtol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4ctol___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4ctol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_3its___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_5gnorm___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_5cnorm___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8solution___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9objective___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8function___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8gradient___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6reason___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9iterating___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9converged___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8diverged___get__(struct PyPetscTAOObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2AO___cinit__(struct PyPetscAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_2view(struct PyPetscAOObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_4destroy(struct PyPetscAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_6createBasic(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_8createMemoryScalable(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_10createMapping(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_12getType(struct PyPetscAOObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_14app2petsc(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_indices); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_16petsc2app(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_indices); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2DM___cinit__(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_2view(struct PyPetscDMObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_4load(struct PyPetscDMObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_6destroy(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_8create(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_10clone(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_12setType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_14getType(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_16getDimension(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_18setDimension(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_20getCoordinateDim(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_22setCoordinateDim(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_24setOptionsPrefix(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_26getOptionsPrefix(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_28appendOptionsPrefix(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_prefix); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_30setFromOptions(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_32viewFromOptions(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_34setUp(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_36setAppCtx(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_appctx); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_38getAppCtx(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_40setBasicAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_useCone, PyObject *__pyx_v_useClosure); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_42getBasicAdjacency(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_44setFieldAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_useCone, PyObject *__pyx_v_useClosure); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_46getFieldAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_48createSubDM(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_fields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_50setAuxiliaryVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_aux, PyObject *__pyx_v_label, PyObject *__pyx_v_value, PyObject *__pyx_v_part); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_52getAuxiliaryVec(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_label, PyObject *__pyx_v_value, PyObject *__pyx_v_part); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_54setNumFields(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_numFields); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_56getNumFields(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_58setField(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index, struct PyPetscObjectObject *__pyx_v_field, PyObject *__pyx_v_label); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_60getField(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_62addField(struct PyPetscDMObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_field, PyObject *__pyx_v_label); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_64clearFields(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_66copyFields(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_68createDS(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_70clearDS(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_72getDS(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_74copyDS(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_76copyDisc(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_78getBlockSize(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_80setVecType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_vec_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_82createGlobalVec(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_84createLocalVec(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_86getGlobalVec(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_88restoreGlobalVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_90getLocalVec(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_92restoreLocalVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_94globalToLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg, struct PyPetscVecObject *__pyx_v_vl, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_96localToGlobal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl, struct PyPetscVecObject *__pyx_v_vg, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_98localToLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl, struct PyPetscVecObject *__pyx_v_vlg, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_100getLGMap(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_102getCoordinateDM(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_104getCoordinateSection(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_106setCoordinates(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_c); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_108getCoordinates(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_110setCoordinatesLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_c); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_112getCoordinatesLocal(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_114projectCoordinates(struct PyPetscDMObject *__pyx_v_self, struct PyPetscFEObject *__pyx_v_disc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_116getBoundingBox(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_118getLocalBoundingBox(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_120localizeCoordinates(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_122setMatType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_mat_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_124createMat(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_126createMassMatrix(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dmf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_128createInterpolation(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_130createInjection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_132createRestriction(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_134convert(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_136refine(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_138coarsen(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_140refineHierarchy(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_nlevels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_142coarsenHierarchy(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_nlevels); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_144getRefineLevel(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_146setRefineLevel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_level); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_148getCoarsenLevel(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_150adaptLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_label); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_152adaptMetric(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, PyObject *__pyx_v_bdLabel, PyObject *__pyx_v_rgLabel); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_154getLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_156setSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_158getSection(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_160setLocalSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_162getLocalSection(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_164setGlobalSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_166getGlobalSection(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_168createSectionSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_localsec, struct PyPetscSectionObject *__pyx_v_globalsec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_170getSectionSF(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_172setSectionSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_174getPointSF(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_176setPointSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_178getNumLabels(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_180getLabelName(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_182hasLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_184createLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_186removeLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_188getLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_190setLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_192clearLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_194getLabelSize(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_196getLabelIdIS(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_198getStratumSize(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_200getStratumIS(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_202clearLabelStratum(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_204setLabelOutput(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_output); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_206getLabelOutput(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_208setKSPComputeOperators(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_operators, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_210createFieldDecomposition(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_212setSNESFunction(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_214setSNESJacobian(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_jacobian, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_216addCoarsenHook(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_coarsenhook, PyObject *__pyx_v_restricthook, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_6appctx___get__(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2DM_6appctx_2__set__(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_2ds___get__(struct PyPetscDMObject *__pyx_v_self); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2DM_2ds_2__set__(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_2DS___cinit__(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_2view(struct PyPetscDSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_4destroy(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_6create(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_8setType(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_ds_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_10getType(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_12setFromOptions(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_14setUp(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_16getSpatialDimension(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_18getCoordinateDimension(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_20getNumFields(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_22getFieldIndex(struct PyPetscDSObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_disc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_24getTotalDimensions(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_26getTotalComponents(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_28getDimensions(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_30getComponents(struct PyPetscDSObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_32setDiscretisation(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_f, PyObject *__pyx_v_disc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_create(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_dof, PyObject *__pyx_v_sizes, PyObject *__pyx_v_proc_sizes, PyObject *__pyx_v_boundary_type, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width, int __pyx_v_setup, PyObject *__pyx_v_ownership_ranges, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_2duplicate(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dof, PyObject *__pyx_v_boundary_type, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_4setDim(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_6getDim(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_8setDof(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_10getDof(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12setSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_sizes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_14getSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_16setProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_proc_sizes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_18getProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_20setBoundaryType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_boundary_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_22getBoundaryType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_24setStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_26getStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_28setStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_width); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_30getStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_32setStencil(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_34getStencil(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_36getRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_38getGhostRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_40getOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_42getCorners(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_44getGhostCorners(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_46setFieldName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_48getFieldName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_50getVecArray(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_52setUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_54setCoordinateName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_56getCoordinateName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_58createNaturalVec(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_60globalToNatural(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg, struct PyPetscVecObject *__pyx_v_vn, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_62naturalToGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vn, struct PyPetscVecObject *__pyx_v_vg, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_64getAO(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_66getScatter(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_68setRefinementFactor(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_refine_x, PyObject *__pyx_v_refine_y, PyObject *__pyx_v_refine_z); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_70getRefinementFactor(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_72setInterpolationType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_interp_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_74getInterpolationType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_76setElementType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_elem_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_78getElementType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_80getElements(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_elem_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_3dim___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_3dof___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_5sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_10proc_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13boundary_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_7stencil___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12stencil_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13stencil_width___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_6ranges___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12ghost_ranges___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_7corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13ghost_corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_create(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_2createFromCellList(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_cells, PyObject *__pyx_v_coords, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_4createBoxMesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_faces, PyObject *__pyx_v_lower, PyObject *__pyx_v_upper, PyObject *__pyx_v_simplex, PyObject *__pyx_v_periodic, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_6createBoxSurfaceMesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_faces, PyObject *__pyx_v_lower, PyObject *__pyx_v_upper, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_8createFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_plexname, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_10createCGNS(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_cgid, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_12createCGNSFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_14createExodusFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_16createExodus(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_exoid, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_18createGmsh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_20createCohesiveSubmesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_hasLagrange, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_22getChart(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_24setChart(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_pStart, PyObject *__pyx_v_pEnd); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_26getConeSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_28setConeSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_30getCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_32setCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_cone, PyObject *__pyx_v_orientation); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_34insertCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_conePos, PyObject *__pyx_v_conePoint); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_36insertConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_conePos, PyObject *__pyx_v_coneOrientation); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_38getConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_40setConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_orientation); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_42setCellType(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_ctype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_44getCellType(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_46getCellTypeLabel(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_48getSupportSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_50setSupportSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_size); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_52getSupport(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_54setSupport(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_supp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_56getMaxSizes(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_58symmetrize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_60stratify(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_62orient(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_64getCellNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_66getVertexNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_68createPointNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_70getDepth(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_72getDepthStratum(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_svalue); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_74getHeightStratum(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_svalue); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_76getPointDepth(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_78getPointHeight(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_80getMeet(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_82getJoin(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_84getFullJoin(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_86getTransitiveClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_useCone); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_88vecGetClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_90getVecClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_92setVecClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_point, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_94setMatClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscSectionObject *__pyx_v_gsec, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_point, PyObject *__pyx_v_values, PyObject *__pyx_v_addv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_96generate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_boundary, PyObject *__pyx_v_name, PyObject *__pyx_v_interpolate); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_98setTriangleOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_opts); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_100setTetGenOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_opts); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_102markBoundaryFaces(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_label, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_104labelComplete(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscDMLabelObject *__pyx_v_label); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_106labelCohesiveComplete(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscDMLabelObject *__pyx_v_label, struct PyPetscDMLabelObject *__pyx_v_bdlabel, PyObject *__pyx_v_bdvalue, PyObject *__pyx_v_flip, struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_subdm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_108setAdjacencyUseAnchors(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_useAnchors); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_110getAdjacencyUseAnchors(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_112getAdjacency(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_114setPartitioner(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscPartitionerObject *__pyx_v_part); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_116getPartitioner(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_118rebalanceSharedPoints(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_entityDepth, PyObject *__pyx_v_useInitialGuess, PyObject *__pyx_v_parallel); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_120distribute(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_overlap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_122distributeOverlap(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_overlap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_124isDistributed(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_126isSimplex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_128distributeGetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_130distributeSetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_132distributionSetName(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_134distributionGetName(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_136isSimplex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_138interpolate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_140uninterpolate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_142distributeField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, struct PyPetscSectionObject *__pyx_v_newsec, struct PyPetscVecObject *__pyx_v_newvec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_144getMinRadius(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_146createCoarsePointIS(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_148createSection(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_numComp, PyObject *__pyx_v_numDof, PyObject *__pyx_v_bcField, PyObject *__pyx_v_bcComps, PyObject *__pyx_v_bcPoints, struct PyPetscISObject *__pyx_v_perm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_150getPointLocal(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_152getPointLocalField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_154getPointGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_156getPointGlobalField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_158createClosureIndex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_160setRefinementUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_refinementUniform); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_162getRefinementUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_164setRefinementLimit(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_refinementLimit); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_166getRefinementLimit(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_168getOrdering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_otype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_170permute(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscISObject *__pyx_v_perm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_172reorderGetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_174reorderSetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_flag); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_176computeCellGeometryFVM(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_cell); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_178constructGhostCells(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_labelName); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_180metricSetFromOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_182metricSetUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_uniform); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_184metricIsUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_186metricSetIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_isotropic); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_188metricIsIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_190metricSetRestrictAnisotropyFirst(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_restrictAnisotropyFirst); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_192metricRestrictAnisotropyFirst(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_194metricSetNoInsertion(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noInsert); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_196metricNoInsertion(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_198metricSetNoSwapping(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noSwap); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_200metricNoSwapping(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_202metricSetNoMovement(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noMove); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_204metricNoMovement(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_206metricSetNoSurf(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noSurf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_208metricNoSurf(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_210metricSetVerbosity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscInt __pyx_v_verbosity); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_212metricGetVerbosity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_214metricSetNumIterations(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscInt __pyx_v_numIter); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_216metricGetNumIterations(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_218metricSetMinimumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_h_min); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_220metricGetMinimumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_222metricSetMaximumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_h_max); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_224metricGetMaximumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_226metricSetMaximumAnisotropy(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_a_max); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_228metricGetMaximumAnisotropy(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_230metricSetTargetComplexity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_targetComplexity); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_232metricGetTargetComplexity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_234metricSetNormalizationOrder(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_p); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_236metricGetNormalizationOrder(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_238metricSetGradationFactor(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_beta); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_240metricGetGradationFactor(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_242metricSetHausdorffNumber(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_hausd); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_244metricGetHausdorffNumber(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_246metricCreate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_248metricCreateUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_alpha, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_250metricCreateIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_indicator, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_252metricDeterminantCreate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_field); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_254metricEnforceSPD(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, struct PyPetscVecObject *__pyx_v_ometric, struct PyPetscVecObject *__pyx_v_determinant, PyObject *__pyx_v_restrictSizes, PyObject *__pyx_v_restrictAnisotropy); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_256metricNormalize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, struct PyPetscVecObject *__pyx_v_ometric, struct PyPetscVecObject *__pyx_v_determinant, PyObject *__pyx_v_restrictSizes, PyObject *__pyx_v_restrictAnisotropy); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_258metricAverage2(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metricAvg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_260metricAverage3(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metric3, struct PyPetscVecObject *__pyx_v_metricAvg); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_262metricIntersection2(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metricInt); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_264metricIntersection3(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metric3, struct PyPetscVecObject *__pyx_v_metricInt); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_266computeGradientClementInterpolant(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_locX, struct PyPetscVecObject *__pyx_v_locC); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_268topologyView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_270coordinatesView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_272labelsView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_274sectionView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_276globalVectorView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_278localVectorView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_280topologyLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_282coordinatesLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscSFObject *__pyx_v_sfxc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_284labelsLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscSFObject *__pyx_v_sfxc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_286sectionLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sfxc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_288globalVectorLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_290localVectorLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform___cinit__(struct PyPetscDMPlexTransformObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_2apply(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_4create(struct PyPetscDMPlexTransformObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_6destroy(struct PyPetscDMPlexTransformObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_8getType(struct PyPetscDMPlexTransformObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_10setUp(struct PyPetscDMPlexTransformObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_12setType(struct PyPetscDMPlexTransformObject *__pyx_v_self, PyObject *__pyx_v_tr_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_14setDM(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_16setFromOptions(struct PyPetscDMPlexTransformObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_18view(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_create(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_dofs, PyObject *__pyx_v_sizes, PyObject *__pyx_v_boundary_types, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width, PyObject *__pyx_v_proc_sizes, PyObject *__pyx_v_ownership_ranges, PyObject *__pyx_v_comm, PyObject *__pyx_v_setUp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_2setStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_swidth); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_4setStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_stenciltype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_6setBoundaryTypes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_boundary_types); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_8setDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dofs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_10setGlobalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_sizes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12setProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_sizes); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_14setOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_ranges); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_16getDim(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_18getEntriesPerElement(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_20getStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_22getDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_24getCorners(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_26getGhostCorners(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_28getLocalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_30getGlobalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_32getProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_34getStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_36getOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_38getBoundaryTypes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_40getIsFirstRank(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_42getIsLastRank(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_44setUniformCoordinatesExplicit(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_46setUniformCoordinatesProduct(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_48setUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_50setCoordinateDMType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dmtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_52getLocationSlot(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc, PyObject *__pyx_v_c); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_54getProductCoordinateLocationSlot(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_56getLocationDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_58migrateVec(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, struct PyPetscDMObject *__pyx_v_dmTo, struct PyPetscVecObject *__pyx_v_vecTo); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_60createCompatibleDMStag(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dofs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_62VecSplitToDMDA(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_loc, PyObject *__pyx_v_c); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_64getVecArray(CYTHON_UNUSED struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_66get1dCoordinatecArrays(CYTHON_UNUSED struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_3dim___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_4dofs___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_19entries_per_element___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12global_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_11local_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_10proc_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_14boundary_types___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12stencil_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_13stencil_width___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_7corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_13ghost_corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_create(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_2addDM(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, PyObject *__pyx_v_args); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_4getNumber(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_6getEntries(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_8scatter(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_lvecs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_10gather(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_imode, PyObject *__pyx_v_lvecs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_12getGlobalISs(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_14getLocalISs(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_16getLGMaps(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_18getAccess(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_locs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_create(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_2setMatrix(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_4setGlobalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_6setLocalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lv); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_8setCreateGlobalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_gvec, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_10setCreateLocalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_lvec, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_12setGlobalToLocal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_14setGlobalToLocalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_gtol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_16setLocalToGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_18setLocalToGlobalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_ltog); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_20setLocalToLocal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_22setLocalToLocalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_ltol); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_24setCreateMatrix(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_matrix, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_26setCoarsen(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_coarsen, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_28setRefine(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_refine, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_30setCreateInterpolation(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_interpolation, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_32setCreateInjection(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_injection, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_34setCreateRestriction(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_restriction, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_36setCreateFieldDecomposition(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_decomp, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_38setCreateDomainDecomposition(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_decomp, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_40setCreateDomainDecompositionScatters(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_scatter, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_42setCreateSubDM(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_subdm, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_7DMLabel___cinit__(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_2destroy(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_4view(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_6create(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_8duplicate(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_10reset(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_12insertIS(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_14setValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_16getValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_18getDefaultValue(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_20setDefaultValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_22clearValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_24addStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_26addStrata(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_strata); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_28addStrataIS(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_30getNumValues(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_32getValueIS(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_34stratumHasPoint(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_36hasStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_38getStratumSize(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_40getStratumIS(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_42setStratumIS(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum, struct PyPetscISObject *__pyx_v_iset); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_44clearStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_46computeIndex(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_48createIndex(struct PyPetscDMLabelObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_pStart, CYTHON_UNUSED PyObject *__pyx_v_pEnd); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_50destroyIndex(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_52hasValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_54hasPoint(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_56getBounds(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_58filter(struct PyPetscDMLabelObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_start, CYTHON_UNUSED PyObject *__pyx_v_end); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_60permute(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_permutation); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_62distribute(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_64gather(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_66convertToSection(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_68getNonEmptyStratumValuesIS(struct PyPetscDMLabelObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_create(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_2createGlobalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_4destroyGlobalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_6createLocalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_8destroyLocalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_10initializeFieldRegister(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_12finalizeFieldRegister(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_14setLocalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_nlocal, PyObject *__pyx_v_buffer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_16registerField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname, PyObject *__pyx_v_blocksize, PyObject *__pyx_v_dtype); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_18getField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_20restoreField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_22vectorDefineField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_24addPoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_26addNPoints(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_npoints); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_28removePoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_30removePointAtIndex(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_32copyPoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_pi, PyObject *__pyx_v_pj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_34getLocalSize(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_36getSize(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_38migrate(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_remove_sent_points); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_40collectViewCreate(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_42collectViewDestroy(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_44setCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_46getCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_48setType(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_dmswarm_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_50setPointsUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_min, PyObject *__pyx_v_max, PyObject *__pyx_v_npoints, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_52setPointCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_coordinates, PyObject *__pyx_v_redundant, PyObject *__pyx_v_mode); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_54insertPointUsingCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_layoutType, PyObject *__pyx_v_fill_param); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_56setPointCoordinatesCellwise(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_coordinates); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_58viewFieldsXDMF(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_fieldnames); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_60viewXDMF(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_filename); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_62sortGetAccess(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_64sortRestoreAccess(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_66sortGetPointsPerCell(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_e); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_68sortGetNumberOfPointsPerCell(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_e); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_70sortGetIsValid(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_72sortGetSizes(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_74projectFields(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldnames, PyObject *__pyx_v_reuse); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_11Partitioner___cinit__(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_2view(struct PyPetscPartitionerObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_4destroy(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_6create(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_8setType(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_part_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_10getType(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_12setFromOptions(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_14setUp(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_16reset(struct PyPetscPartitionerObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_18setShellPartition(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_numProcs, PyObject *__pyx_v_sizes, PyObject *__pyx_v_points); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_5Space___cinit__(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_2setUp(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_4create(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_6destroy(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_8view(struct PyPetscSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_10setFromOptions(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_12getDimension(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_14getDegree(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_16setDegree(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_degree, PyObject *__pyx_v_maxDegree); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_18getNumVariables(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_20setNumVariables(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_n); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_22getNumComponents(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_24setNumComponents(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_nc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_26getType(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_28setType(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_space_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_30getSumConcatenate(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_32setSumConcatenate(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_concatenate); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_34getSumNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_36getSumSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_38setSumSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s, struct PyPetscSpaceObject *__pyx_v_subsp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_40setSumNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_numSumSpaces); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_42getTensorNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_44setTensorSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s, struct PyPetscSpaceObject *__pyx_v_subsp); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_46getTensorSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_48setTensorNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_numTensSpaces); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_50getPolynomialTensor(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_52setPolynomialTensor(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_tensor); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_54setPointPoints(struct PyPetscSpaceObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_56getPointPoints(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_58setPTrimmedFormDegree(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_formDegree); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_60getPTrimmedFormDegree(struct PyPetscSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_62viewFromOptions(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_9DualSpace___cinit__(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_2setUp(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_4create(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_6view(struct PyPetscDualSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_8destroy(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_10duplicate(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_12getDM(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_14setDM(struct PyPetscDualSpaceObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_16getDimension(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_18getNumComponents(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_20setNumComponents(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_nc); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_22getType(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_24setType(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_dualspace_type); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_26getOrder(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_28setOrder(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_order); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_30getNumDof(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_32getFunctional(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_i); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_34getInteriorDimension(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_intdim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_36getLagrangeContinuity(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_38setLagrangeContinuity(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_continuous); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_40getLagrangeTensor(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_42setLagrangeTensor(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_tensor); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_44getLagrangeTrimmed(struct PyPetscDualSpaceObject *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_46setLagrangeTrimmed(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_trimmed); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_48viewFromOptions(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_50setSimpleDimension(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_dim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_52setSimpleFunctional(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_func, struct PyPetscQuadObject *__pyx_v_functional); /* proto */ +static int __pyx_pf_8petsc4py_5PETSc_15DMInterpolation___cinit__(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static void __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_4create(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_6destroy(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_8evaluate(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, struct PyPetscVecObject *__pyx_v_x); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_10getCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_12getDim(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_14getDof(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_16setDim(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_dim); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_18setDof(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_dof); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_20setUp(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, PyObject *__pyx_v_redundantPoints, PyObject *__pyx_v_ignoreOutsideDomain); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_22getVector(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_24restoreVector(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6_PyObj___getattr__(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_4_initialize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_comm); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_6_pre_finalize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_8_finalize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_push_python_vfprintf(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_12_pop_python_vfprintf(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_stdout_is_stderr(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr); /* proto */ +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item); /* proto */ +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /* proto */ +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name); /* proto */ +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object); /* proto */ +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /* proto */ +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self); /* proto */ +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state); /* proto */ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Comm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Object(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Viewer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Random(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Device(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DeviceContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_IS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LGMap(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_SF(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Vec(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Space(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DualSpace(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_FE(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Quad(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Scatter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Section(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Mat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_MatPartitioning(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_NullSpace(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_PC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_KSP(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_SNES(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_TS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_TAO(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_AO(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DM(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMPlexTransform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Partitioner(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMLabel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__IS_buffer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Vec_buffer(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Vec_LocalForm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Mat_Stencil(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__DMDA_Vec_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__DMComposite_access(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Options(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Sys(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Log(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogStage(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogClass(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogEvent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_ViewerHDF5(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMDA(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMPlex(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMStag(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMComposite(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMShell(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMSwarm(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMInterpolation(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyObj(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyMat(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyPC(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyKSP(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PySNES(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyTS(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyTao(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ +static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_get = {0, &__pyx_n_s_get_2, 0, 0, 0}; +static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, &__pyx_n_s_keys, 0, 0, 0}; +static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_pop = {0, &__pyx_n_s_pop, 0, 0, 0}; +static __Pyx_CachedCFunction __pyx_umethod_PyList_Type_pop = {0, &__pyx_n_s_pop, 0, 0, 0}; +static PyObject *__pyx_float_0_; +static PyObject *__pyx_float_0_0; +static PyObject *__pyx_float_1_0; +static PyObject *__pyx_int_0; +static PyObject *__pyx_int_1; +static PyObject *__pyx_int_2; +static PyObject *__pyx_int_3; +static PyObject *__pyx_int_4; +static PyObject *__pyx_int_5; +static PyObject *__pyx_int_6; +static PyObject *__pyx_int_7; +static PyObject *__pyx_int_8; +static PyObject *__pyx_int_9; +static PyObject *__pyx_int_10; +static PyObject *__pyx_int_13; +static PyObject *__pyx_int_17; +static PyObject *__pyx_int_18; +static PyObject *__pyx_int_19; +static PyObject *__pyx_int_23; +static PyObject *__pyx_int_32; +static PyObject *__pyx_int_34; +static PyObject *__pyx_int_43; +static PyObject *__pyx_int_45; +static PyObject *__pyx_int_46; +static PyObject *__pyx_int_47; +static PyObject *__pyx_int_48; +static PyObject *__pyx_int_59; +static PyObject *__pyx_int_88; +static PyObject *__pyx_int_102; +static PyObject *__pyx_int_105; +static PyObject *__pyx_int_106; +static PyObject *__pyx_int_113; +static PyObject *__pyx_int_119; +static PyObject *__pyx_int_121; +static PyObject *__pyx_int_122; +static PyObject *__pyx_int_112105877; +static PyObject *__pyx_int_136983863; +static PyObject *__pyx_int_184977713; +static PyObject *__pyx_int_neg_1; +static PyObject *__pyx_k__30; +static PyObject *__pyx_k__55; +static PyObject *__pyx_slice__6; +static PyObject *__pyx_tuple__2; +static PyObject *__pyx_tuple__3; +static PyObject *__pyx_tuple__5; +static PyObject *__pyx_tuple__8; +static PyObject *__pyx_tuple__9; +static PyObject *__pyx_slice__40; +static PyObject *__pyx_slice__50; +static PyObject *__pyx_slice__51; +static PyObject *__pyx_tuple__10; +static PyObject *__pyx_tuple__11; +static PyObject *__pyx_tuple__12; +static PyObject *__pyx_tuple__15; +static PyObject *__pyx_tuple__16; +static PyObject *__pyx_tuple__17; +static PyObject *__pyx_tuple__18; +static PyObject *__pyx_tuple__19; +static PyObject *__pyx_tuple__21; +static PyObject *__pyx_tuple__22; +static PyObject *__pyx_tuple__24; +static PyObject *__pyx_tuple__26; +static PyObject *__pyx_tuple__27; +static PyObject *__pyx_tuple__28; +static PyObject *__pyx_tuple__29; +static PyObject *__pyx_tuple__31; +static PyObject *__pyx_tuple__32; +static PyObject *__pyx_tuple__33; +static PyObject *__pyx_tuple__34; +static PyObject *__pyx_tuple__35; +static PyObject *__pyx_tuple__36; +static PyObject *__pyx_tuple__37; +static PyObject *__pyx_tuple__38; +static PyObject *__pyx_tuple__39; +static PyObject *__pyx_tuple__41; +static PyObject *__pyx_tuple__42; +static PyObject *__pyx_tuple__43; +static PyObject *__pyx_tuple__44; +static PyObject *__pyx_tuple__45; +static PyObject *__pyx_tuple__46; +static PyObject *__pyx_tuple__47; +static PyObject *__pyx_tuple__48; +static PyObject *__pyx_tuple__49; +static PyObject *__pyx_tuple__52; +static PyObject *__pyx_tuple__53; +static PyObject *__pyx_tuple__54; +static PyObject *__pyx_tuple__56; +static PyObject *__pyx_tuple__58; +static PyObject *__pyx_tuple__59; +static PyObject *__pyx_tuple__60; +static PyObject *__pyx_tuple__61; +static PyObject *__pyx_tuple__62; +static PyObject *__pyx_tuple__63; +static PyObject *__pyx_tuple__64; +static PyObject *__pyx_tuple__65; +static PyObject *__pyx_tuple__66; +static PyObject *__pyx_tuple__67; +static PyObject *__pyx_tuple__68; +static PyObject *__pyx_tuple__69; +static PyObject *__pyx_tuple__70; +static PyObject *__pyx_tuple__71; +static PyObject *__pyx_tuple__72; +static PyObject *__pyx_tuple__73; +static PyObject *__pyx_tuple__74; +static PyObject *__pyx_tuple__75; +static PyObject *__pyx_tuple__76; +static PyObject *__pyx_tuple__77; +static PyObject *__pyx_tuple__80; +static PyObject *__pyx_tuple__81; +static PyObject *__pyx_tuple__82; +static PyObject *__pyx_tuple__83; +static PyObject *__pyx_tuple__84; +static PyObject *__pyx_tuple__86; +static PyObject *__pyx_tuple__88; +static PyObject *__pyx_tuple__90; +static PyObject *__pyx_tuple__92; +static PyObject *__pyx_tuple__94; +static PyObject *__pyx_tuple__96; +static PyObject *__pyx_tuple__97; +static PyObject *__pyx_tuple__98; +static PyObject *__pyx_tuple__99; +static PyObject *__pyx_tuple__100; +static PyObject *__pyx_tuple__101; +static PyObject *__pyx_tuple__102; +static PyObject *__pyx_tuple__104; +static PyObject *__pyx_tuple__106; +static PyObject *__pyx_tuple__108; +static PyObject *__pyx_tuple__110; +static PyObject *__pyx_tuple__111; +static PyObject *__pyx_tuple__112; +static PyObject *__pyx_tuple__113; +static PyObject *__pyx_tuple__114; +static PyObject *__pyx_tuple__115; +static PyObject *__pyx_tuple__116; +static PyObject *__pyx_tuple__117; +static PyObject *__pyx_tuple__118; +static PyObject *__pyx_tuple__119; +static PyObject *__pyx_tuple__120; +static PyObject *__pyx_tuple__121; +static PyObject *__pyx_tuple__122; +static PyObject *__pyx_tuple__123; +static PyObject *__pyx_tuple__124; +static PyObject *__pyx_tuple__125; +static PyObject *__pyx_tuple__126; +static PyObject *__pyx_tuple__127; +static PyObject *__pyx_tuple__128; +static PyObject *__pyx_tuple__129; +static PyObject *__pyx_tuple__130; +static PyObject *__pyx_tuple__131; +static PyObject *__pyx_tuple__132; +static PyObject *__pyx_tuple__133; +static PyObject *__pyx_tuple__134; +static PyObject *__pyx_tuple__135; +static PyObject *__pyx_tuple__136; +static PyObject *__pyx_tuple__137; +static PyObject *__pyx_tuple__138; +static PyObject *__pyx_tuple__139; +static PyObject *__pyx_tuple__140; +static PyObject *__pyx_tuple__141; +static PyObject *__pyx_tuple__142; +static PyObject *__pyx_tuple__143; +static PyObject *__pyx_tuple__144; +static PyObject *__pyx_tuple__145; +static PyObject *__pyx_tuple__146; +static PyObject *__pyx_tuple__147; +static PyObject *__pyx_tuple__148; +static PyObject *__pyx_tuple__149; +static PyObject *__pyx_tuple__150; +static PyObject *__pyx_tuple__151; +static PyObject *__pyx_tuple__152; +static PyObject *__pyx_tuple__153; +static PyObject *__pyx_tuple__154; +static PyObject *__pyx_tuple__155; +static PyObject *__pyx_tuple__156; +static PyObject *__pyx_tuple__157; +static PyObject *__pyx_tuple__158; +static PyObject *__pyx_tuple__159; +static PyObject *__pyx_tuple__160; +static PyObject *__pyx_tuple__161; +static PyObject *__pyx_tuple__162; +static PyObject *__pyx_tuple__163; +static PyObject *__pyx_tuple__164; +static PyObject *__pyx_tuple__165; +static PyObject *__pyx_tuple__166; +static PyObject *__pyx_tuple__167; +static PyObject *__pyx_tuple__168; +static PyObject *__pyx_tuple__169; +static PyObject *__pyx_tuple__170; +static PyObject *__pyx_tuple__171; +static PyObject *__pyx_tuple__172; +static PyObject *__pyx_tuple__173; +static PyObject *__pyx_tuple__174; +static PyObject *__pyx_tuple__175; +static PyObject *__pyx_tuple__182; +static PyObject *__pyx_tuple__183; +static PyObject *__pyx_tuple__184; +static PyObject *__pyx_tuple__185; +static PyObject *__pyx_tuple__186; +static PyObject *__pyx_tuple__187; +static PyObject *__pyx_codeobj__23; +static PyObject *__pyx_codeobj__25; +static PyObject *__pyx_codeobj__85; +static PyObject *__pyx_codeobj__87; +static PyObject *__pyx_codeobj__89; +static PyObject *__pyx_codeobj__91; +static PyObject *__pyx_codeobj__93; +static PyObject *__pyx_codeobj__95; +static PyObject *__pyx_codeobj__103; +static PyObject *__pyx_codeobj__105; +static PyObject *__pyx_codeobj__107; +static PyObject *__pyx_codeobj__109; +static PyObject *__pyx_codeobj__176; +static PyObject *__pyx_codeobj__177; +static PyObject *__pyx_codeobj__178; +static PyObject *__pyx_codeobj__179; +static PyObject *__pyx_codeobj__180; +static PyObject *__pyx_codeobj__181; +static PyObject *__pyx_codeobj__188; +/* Late includes */ + +/* "petsc4py/PETSc/Device.pyx":25 + * ("HIP" , PETSC_DEVICE_HIP), + * ("SYCL" , PETSC_DEVICE_SYCL), + * ("DEFAULT" , staticproperty(lambda *_,**__: PETSC_DEVICE_DEFAULT())) # <<<<<<<<<<<<<< + * ) + * ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_16lambda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_16lambda = {"lambda", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_16lambda, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_16lambda(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v__ = 0; + CYTHON_UNUSED PyObject *__pyx_v___ = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("lambda (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "lambda", 1))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v__ = __pyx_args; + __pyx_r = __pyx_lambda_funcdef_8petsc4py_5PETSc_lambda(__pyx_self, __pyx_v__, __pyx_v___); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v__); + __Pyx_XDECREF(__pyx_v___); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_lambda_funcdef_8petsc4py_5PETSc_lambda(CYTHON_UNUSED PyObject *__pyx_self, CYTHON_UNUSED PyObject *__pyx_v__, CYTHON_UNUSED PyObject *__pyx_v___) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("lambda", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscDeviceType(PETSC_DEVICE_DEFAULT()); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.lambda", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":17 + * # -------------------------------------------------------------------- + * + * cdef inline object bytes2str(const char p[]): # <<<<<<<<<<<<<< + * if p == NULL: + * return None + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_bytes2str(char const *__pyx_v_p) { + PyObject *__pyx_v_s = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bytes2str", 0); + + /* "petsc4py/PETSc/PETSc.pyx":18 + * + * cdef inline object bytes2str(const char p[]): + * if p == NULL: # <<<<<<<<<<<<<< + * return None + * cdef bytes s = p + */ + __pyx_t_1 = ((__pyx_v_p == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":19 + * cdef inline object bytes2str(const char p[]): + * if p == NULL: + * return None # <<<<<<<<<<<<<< + * cdef bytes s = p + * if isinstance(s, str): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":18 + * + * cdef inline object bytes2str(const char p[]): + * if p == NULL: # <<<<<<<<<<<<<< + * return None + * cdef bytes s = p + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":20 + * if p == NULL: + * return None + * cdef bytes s = p # <<<<<<<<<<<<<< + * if isinstance(s, str): + * return s + */ + __pyx_t_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_p)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_s = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":21 + * return None + * cdef bytes s = p + * if isinstance(s, str): # <<<<<<<<<<<<<< + * return s + * else: + */ + __pyx_t_1 = PyString_Check(__pyx_v_s); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/PETSc.pyx":22 + * cdef bytes s = p + * if isinstance(s, str): + * return s # <<<<<<<<<<<<<< + * else: + * return s.decode() + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":21 + * return None + * cdef bytes s = p + * if isinstance(s, str): # <<<<<<<<<<<<<< + * return s + * else: + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":24 + * return s + * else: + * return s.decode() # <<<<<<<<<<<<<< + * + * cdef inline object str2bytes(object s, const char *p[]): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_decode_bytes(__pyx_v_s, 0, PY_SSIZE_T_MAX, NULL, NULL, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":17 + * # -------------------------------------------------------------------- + * + * cdef inline object bytes2str(const char p[]): # <<<<<<<<<<<<<< + * if p == NULL: + * return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.bytes2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":26 + * return s.decode() + * + * cdef inline object str2bytes(object s, const char *p[]): # <<<<<<<<<<<<<< + * if s is None: + * p[0] = NULL + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_str2bytes(PyObject *__pyx_v_s, char const **__pyx_v_p) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + char *__pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("str2bytes", 0); + __Pyx_INCREF(__pyx_v_s); + + /* "petsc4py/PETSc/PETSc.pyx":27 + * + * cdef inline object str2bytes(object s, const char *p[]): + * if s is None: # <<<<<<<<<<<<<< + * p[0] = NULL + * return None + */ + __pyx_t_1 = (__pyx_v_s == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PETSc.pyx":28 + * cdef inline object str2bytes(object s, const char *p[]): + * if s is None: + * p[0] = NULL # <<<<<<<<<<<<<< + * return None + * if not isinstance(s, bytes): + */ + (__pyx_v_p[0]) = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":29 + * if s is None: + * p[0] = NULL + * return None # <<<<<<<<<<<<<< + * if not isinstance(s, bytes): + * s = s.encode() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":27 + * + * cdef inline object str2bytes(object s, const char *p[]): + * if s is None: # <<<<<<<<<<<<<< + * p[0] = NULL + * return None + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":30 + * p[0] = NULL + * return None + * if not isinstance(s, bytes): # <<<<<<<<<<<<<< + * s = s.encode() + * p[0] = (s) + */ + __pyx_t_2 = PyBytes_Check(__pyx_v_s); + __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":31 + * return None + * if not isinstance(s, bytes): + * s = s.encode() # <<<<<<<<<<<<<< + * p[0] = (s) + * return s + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":30 + * p[0] = NULL + * return None + * if not isinstance(s, bytes): # <<<<<<<<<<<<<< + * s = s.encode() + * p[0] = (s) + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":32 + * if not isinstance(s, bytes): + * s = s.encode() + * p[0] = (s) # <<<<<<<<<<<<<< + * return s + * + */ + __pyx_t_6 = __Pyx_PyObject_AsWritableString(__pyx_v_s); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) __PYX_ERR(12, 32, __pyx_L1_error) + (__pyx_v_p[0]) = ((char const *)((char *)__pyx_t_6)); + + /* "petsc4py/PETSc/PETSc.pyx":33 + * s = s.encode() + * p[0] = (s) + * return s # <<<<<<<<<<<<<< + * + * cdef inline object S_(const char p[]): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_s); + __pyx_r = __pyx_v_s; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":26 + * return s.decode() + * + * cdef inline object str2bytes(object s, const char *p[]): # <<<<<<<<<<<<<< + * if s is None: + * p[0] = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.str2bytes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":35 + * return s + * + * cdef inline object S_(const char p[]): # <<<<<<<<<<<<<< + * if p == NULL: return None + * cdef object s = p + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_S_(char const *__pyx_v_p) { + PyObject *__pyx_v_s = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("S_", 0); + + /* "petsc4py/PETSc/PETSc.pyx":36 + * + * cdef inline object S_(const char p[]): + * if p == NULL: return None # <<<<<<<<<<<<<< + * cdef object s = p + * return s if isinstance(s, str) else s.decode() + */ + __pyx_t_1 = ((__pyx_v_p == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":37 + * cdef inline object S_(const char p[]): + * if p == NULL: return None + * cdef object s = p # <<<<<<<<<<<<<< + * return s if isinstance(s, str) else s.decode() + * + */ + __pyx_t_2 = __Pyx_PyBytes_FromString(((char *)__pyx_v_p)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_s = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":38 + * if p == NULL: return None + * cdef object s = p + * return s if isinstance(s, str) else s.decode() # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyString_Check(__pyx_v_s); + if ((__pyx_t_1 != 0)) { + __Pyx_INCREF(__pyx_v_s); + __pyx_t_2 = __pyx_v_s; + } else { + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s_decode); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":35 + * return s + * + * cdef inline object S_(const char p[]): # <<<<<<<<<<<<<< + * if p == NULL: return None + * cdef object s = p + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.S_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":54 + * cdef object PetscError = PyExc_RuntimeError + * + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: # <<<<<<<<<<<<<< + * if (PetscError) != NULL: + * PyErr_SetObject(PetscError, ierr) + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SETERR(PetscErrorCode __pyx_v_ierr) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SETERR", 0); + + /* "petsc4py/PETSc/PETSc.pyx":55 + * + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: + * if (PetscError) != NULL: # <<<<<<<<<<<<<< + * PyErr_SetObject(PetscError, ierr) + * else: + */ + __pyx_t_1 = ((((void *)__pyx_v_8petsc4py_5PETSc_PetscError) != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":56 + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: + * if (PetscError) != NULL: + * PyErr_SetObject(PetscError, ierr) # <<<<<<<<<<<<<< + * else: + * PyErr_SetObject(PyExc_RuntimeError, ierr) + */ + __pyx_t_2 = __pyx_v_8petsc4py_5PETSc_PetscError; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_long(((long)__pyx_v_ierr)); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + PyErr_SetObject(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":55 + * + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: + * if (PetscError) != NULL: # <<<<<<<<<<<<<< + * PyErr_SetObject(PetscError, ierr) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/PETSc.pyx":58 + * PyErr_SetObject(PetscError, ierr) + * else: + * PyErr_SetObject(PyExc_RuntimeError, ierr) # <<<<<<<<<<<<<< + * return ierr + * + */ + /*else*/ { + __pyx_t_3 = ((PyObject *)PyExc_RuntimeError); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyInt_From_long(((long)__pyx_v_ierr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + PyErr_SetObject(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/PETSc.pyx":59 + * else: + * PyErr_SetObject(PyExc_RuntimeError, ierr) + * return ierr # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: + */ + __pyx_r = __pyx_v_ierr; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":54 + * cdef object PetscError = PyExc_RuntimeError + * + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: # <<<<<<<<<<<<<< + * if (PetscError) != NULL: + * PyErr_SetObject(PetscError, ierr) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("petsc4py.PETSc.SETERR", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = (PetscErrorCode) 0; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":61 + * return ierr + * + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if ierr == PETSC_SUCCESS: + * return ierr # no error + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_CHKERR(PetscErrorCode __pyx_v_ierr) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/PETSc.pyx":62 + * + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == PETSC_SUCCESS: # <<<<<<<<<<<<<< + * return ierr # no error + * if ierr == PETSC_ERR_PYTHON: + */ + __pyx_t_1 = ((__pyx_v_ierr == PETSC_SUCCESS) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":63 + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == PETSC_SUCCESS: + * return ierr # no error # <<<<<<<<<<<<<< + * if ierr == PETSC_ERR_PYTHON: + * return ierr # error in python code + */ + __pyx_r = __pyx_v_ierr; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":62 + * + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == PETSC_SUCCESS: # <<<<<<<<<<<<<< + * return ierr # no error + * if ierr == PETSC_ERR_PYTHON: + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":64 + * if ierr == PETSC_SUCCESS: + * return ierr # no error + * if ierr == PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * return ierr # error in python code + * SETERR(ierr) + */ + __pyx_t_1 = ((__pyx_v_ierr == PETSC_ERR_PYTHON) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":65 + * return ierr # no error + * if ierr == PETSC_ERR_PYTHON: + * return ierr # error in python code # <<<<<<<<<<<<<< + * SETERR(ierr) + * return PETSC_ERR_PYTHON + */ + __pyx_r = __pyx_v_ierr; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":64 + * if ierr == PETSC_SUCCESS: + * return ierr # no error + * if ierr == PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * return ierr # error in python code + * SETERR(ierr) + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":66 + * if ierr == PETSC_ERR_PYTHON: + * return ierr # error in python code + * SETERR(ierr) # <<<<<<<<<<<<<< + * return PETSC_ERR_PYTHON + * + */ + ((void)__pyx_f_8petsc4py_5PETSc_SETERR(__pyx_v_ierr)); + + /* "petsc4py/PETSc/PETSc.pyx":67 + * return ierr # error in python code + * SETERR(ierr) + * return PETSC_ERR_PYTHON # <<<<<<<<<<<<<< + * + * # SETERRMPI Support + */ + __pyx_r = PETSC_ERR_PYTHON; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":61 + * return ierr + * + * cdef inline PetscErrorCode CHKERR(PetscErrorCode ierr) nogil except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if ierr == PETSC_SUCCESS: + * return ierr # no error + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":79 + * PetscErrorCode PetscERROR(MPI_Comm, char[], PetscErrorCode, int, char[], char[]) + * + * cdef inline int SETERRMPI(int ierr) with gil: # <<<<<<<<<<<<<< + * cdef char[MPI_MAX_ERROR_STRING] mpi_err_str + * cdef int result_len = sizeof(mpi_err_str) + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_SETERRMPI(int __pyx_v_ierr) { + char __pyx_v_mpi_err_str[MPI_MAX_ERROR_STRING]; + int __pyx_v_result_len; + PyObject *__pyx_v_error_str = 0; + char const *__pyx_v_c_error_str; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SETERRMPI", 0); + + /* "petsc4py/PETSc/PETSc.pyx":81 + * cdef inline int SETERRMPI(int ierr) with gil: + * cdef char[MPI_MAX_ERROR_STRING] mpi_err_str + * cdef int result_len = sizeof(mpi_err_str) # <<<<<<<<<<<<<< + * + * memset(mpi_err_str, 0, result_len) + */ + __pyx_v_result_len = ((int)(sizeof(__pyx_v_mpi_err_str))); + + /* "petsc4py/PETSc/PETSc.pyx":83 + * cdef int result_len = sizeof(mpi_err_str) + * + * memset(mpi_err_str, 0, result_len) # <<<<<<<<<<<<<< + * MPI_Error_string(ierr, mpi_err_str, &result_len); + * result_len + */ + ((void)memset(__pyx_v_mpi_err_str, 0, __pyx_v_result_len)); + + /* "petsc4py/PETSc/PETSc.pyx":84 + * + * memset(mpi_err_str, 0, result_len) + * MPI_Error_string(ierr, mpi_err_str, &result_len); # <<<<<<<<<<<<<< + * result_len + * + */ + ((void)MPI_Error_string(__pyx_v_ierr, __pyx_v_mpi_err_str, (&__pyx_v_result_len))); + + /* "petsc4py/PETSc/PETSc.pyx":85 + * memset(mpi_err_str, 0, result_len) + * MPI_Error_string(ierr, mpi_err_str, &result_len); + * result_len # <<<<<<<<<<<<<< + * + * cdef str error_str = "MPI Error " + bytes2str(mpi_err_str) + " " + str(ierr) + */ + ((void)__pyx_v_result_len); + + /* "petsc4py/PETSc/PETSc.pyx":87 + * result_len + * + * cdef str error_str = "MPI Error " + bytes2str(mpi_err_str) + " " + str(ierr) # <<<<<<<<<<<<<< + * cdef const char *c_error_str = NULL + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_mpi_err_str); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_kp_s_MPI_Error, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_kp_s_); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_ierr); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_2))||((__pyx_t_2) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_2)->tp_name), 0))) __PYX_ERR(12, 87, __pyx_L1_error) + __pyx_v_error_str = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":88 + * + * cdef str error_str = "MPI Error " + bytes2str(mpi_err_str) + " " + str(ierr) + * cdef const char *c_error_str = NULL # <<<<<<<<<<<<<< + * + * str2bytes(error_str, &c_error_str) + */ + __pyx_v_c_error_str = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":90 + * cdef const char *c_error_str = NULL + * + * str2bytes(error_str, &c_error_str) # <<<<<<<<<<<<<< + * PetscERROR(PETSC_COMM_SELF, "Unknown Python Function", PETSC_ERR_MPI, PETSC_ERROR_INITIAL, "%s", c_error_str) + * SETERR(PETSC_ERR_MPI) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_error_str, (&__pyx_v_c_error_str)); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":91 + * + * str2bytes(error_str, &c_error_str) + * PetscERROR(PETSC_COMM_SELF, "Unknown Python Function", PETSC_ERR_MPI, PETSC_ERROR_INITIAL, "%s", c_error_str) # <<<<<<<<<<<<<< + * SETERR(PETSC_ERR_MPI) + * return ierr + */ + ((void)PetscERROR(PETSC_COMM_SELF, ((char *)"Unknown Python Function"), PETSC_ERR_MPI, PETSC_ERROR_INITIAL, ((char *)"%s"), __pyx_v_c_error_str)); + + /* "petsc4py/PETSc/PETSc.pyx":92 + * str2bytes(error_str, &c_error_str) + * PetscERROR(PETSC_COMM_SELF, "Unknown Python Function", PETSC_ERR_MPI, PETSC_ERROR_INITIAL, "%s", c_error_str) + * SETERR(PETSC_ERR_MPI) # <<<<<<<<<<<<<< + * return ierr + * + */ + ((void)__pyx_f_8petsc4py_5PETSc_SETERR(PETSC_ERR_MPI)); + + /* "petsc4py/PETSc/PETSc.pyx":93 + * PetscERROR(PETSC_COMM_SELF, "Unknown Python Function", PETSC_ERR_MPI, PETSC_ERROR_INITIAL, "%s", c_error_str) + * SETERR(PETSC_ERR_MPI) + * return ierr # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: + */ + __pyx_r = __pyx_v_ierr; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":79 + * PetscErrorCode PetscERROR(MPI_Comm, char[], PetscErrorCode, int, char[], char[]) + * + * cdef inline int SETERRMPI(int ierr) with gil: # <<<<<<<<<<<<<< + * cdef char[MPI_MAX_ERROR_STRING] mpi_err_str + * cdef int result_len = sizeof(mpi_err_str) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("petsc4py.PETSc.SETERRMPI", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_error_str); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":95 + * return ierr + * + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if ierr == MPI_SUCCESS: + * return PETSC_SUCCESS + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_CHKERRMPI(int __pyx_v_ierr) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/PETSc.pyx":96 + * + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == MPI_SUCCESS: # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * SETERRMPI(ierr) + */ + __pyx_t_1 = ((__pyx_v_ierr == MPI_SUCCESS) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":97 + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == MPI_SUCCESS: + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * SETERRMPI(ierr) + * return PETSC_ERR_PYTHON + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":96 + * + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: + * if ierr == MPI_SUCCESS: # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * SETERRMPI(ierr) + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":98 + * if ierr == MPI_SUCCESS: + * return PETSC_SUCCESS + * SETERRMPI(ierr) # <<<<<<<<<<<<<< + * return PETSC_ERR_PYTHON + * + */ + ((void)__pyx_f_8petsc4py_5PETSc_SETERRMPI(__pyx_v_ierr)); + + /* "petsc4py/PETSc/PETSc.pyx":99 + * return PETSC_SUCCESS + * SETERRMPI(ierr) + * return PETSC_ERR_PYTHON # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = PETSC_ERR_PYTHON; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":95 + * return ierr + * + * cdef inline PetscErrorCode CHKERRMPI(int ierr) nogil except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if ierr == MPI_SUCCESS: + * return PETSC_SUCCESS + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":119 + * void PyPetscBuffer_Release(Py_buffer*) + * + * cdef inline object toBool(PetscBool value): # <<<<<<<<<<<<<< + * return True if value else False + * cdef inline PetscBool asBool(object value) except? 0: + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toBool(PetscBool __pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + __Pyx_RefNannySetupContext("toBool", 0); + + /* "petsc4py/PETSc/PETSc.pyx":120 + * + * cdef inline object toBool(PetscBool value): + * return True if value else False # <<<<<<<<<<<<<< + * cdef inline PetscBool asBool(object value) except? 0: + * return PETSC_TRUE if value else PETSC_FALSE + */ + __Pyx_XDECREF(__pyx_r); + if (__pyx_v_value) { + __Pyx_INCREF(Py_True); + __pyx_t_1 = Py_True; + } else { + __Pyx_INCREF(Py_False); + __pyx_t_1 = Py_False; + } + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":119 + * void PyPetscBuffer_Release(Py_buffer*) + * + * cdef inline object toBool(PetscBool value): # <<<<<<<<<<<<<< + * return True if value else False + * cdef inline PetscBool asBool(object value) except? 0: + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":121 + * cdef inline object toBool(PetscBool value): + * return True if value else False + * cdef inline PetscBool asBool(object value) except? 0: # <<<<<<<<<<<<<< + * return PETSC_TRUE if value else PETSC_FALSE + * + */ + +static CYTHON_INLINE PetscBool __pyx_f_8petsc4py_5PETSc_asBool(PyObject *__pyx_v_value) { + PetscBool __pyx_r; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asBool", 0); + + /* "petsc4py/PETSc/PETSc.pyx":122 + * return True if value else False + * cdef inline PetscBool asBool(object value) except? 0: + * return PETSC_TRUE if value else PETSC_FALSE # <<<<<<<<<<<<<< + * + * cdef inline object toInt(PetscInt value): + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_value); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(12, 122, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_t_1 = PETSC_TRUE; + } else { + __pyx_t_1 = PETSC_FALSE; + } + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":121 + * cdef inline object toBool(PetscBool value): + * return True if value else False + * cdef inline PetscBool asBool(object value) except? 0: # <<<<<<<<<<<<<< + * return PETSC_TRUE if value else PETSC_FALSE + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.asBool", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscBool)0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":124 + * return PETSC_TRUE if value else PETSC_FALSE + * + * cdef inline object toInt(PetscInt value): # <<<<<<<<<<<<<< + * return value + * cdef inline PetscInt asInt(object value) except? -1: + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toInt(PetscInt __pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toInt", 0); + + /* "petsc4py/PETSc/PETSc.pyx":125 + * + * cdef inline object toInt(PetscInt value): + * return value # <<<<<<<<<<<<<< + * cdef inline PetscInt asInt(object value) except? -1: + * return value + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscInt(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":124 + * return PETSC_TRUE if value else PETSC_FALSE + * + * cdef inline object toInt(PetscInt value): # <<<<<<<<<<<<<< + * return value + * cdef inline PetscInt asInt(object value) except? -1: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.toInt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":126 + * cdef inline object toInt(PetscInt value): + * return value + * cdef inline PetscInt asInt(object value) except? -1: # <<<<<<<<<<<<<< + * return value + * + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asInt(PyObject *__pyx_v_value) { + PetscInt __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asInt", 0); + + /* "petsc4py/PETSc/PETSc.pyx":127 + * return value + * cdef inline PetscInt asInt(object value) except? -1: + * return value # <<<<<<<<<<<<<< + * + * cdef inline object toReal(PetscReal value): + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_value); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(12, 127, __pyx_L1_error) + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":126 + * cdef inline object toInt(PetscInt value): + * return value + * cdef inline PetscInt asInt(object value) except? -1: # <<<<<<<<<<<<<< + * return value + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.asInt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":129 + * return value + * + * cdef inline object toReal(PetscReal value): # <<<<<<<<<<<<<< + * return value + * cdef inline PetscReal asReal(object value) except? -1: + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toReal(PetscReal __pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toReal", 0); + + /* "petsc4py/PETSc/PETSc.pyx":130 + * + * cdef inline object toReal(PetscReal value): + * return value # <<<<<<<<<<<<<< + * cdef inline PetscReal asReal(object value) except? -1: + * return value + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":129 + * return value + * + * cdef inline object toReal(PetscReal value): # <<<<<<<<<<<<<< + * return value + * cdef inline PetscReal asReal(object value) except? -1: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.toReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":131 + * cdef inline object toReal(PetscReal value): + * return value + * cdef inline PetscReal asReal(object value) except? -1: # <<<<<<<<<<<<<< + * return value + * + */ + +static CYTHON_INLINE PetscReal __pyx_f_8petsc4py_5PETSc_asReal(PyObject *__pyx_v_value) { + PetscReal __pyx_r; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asReal", 0); + + /* "petsc4py/PETSc/PETSc.pyx":132 + * return value + * cdef inline PetscReal asReal(object value) except? -1: + * return value # <<<<<<<<<<<<<< + * + * cdef inline object toScalar(PetscScalar value): + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(12, 132, __pyx_L1_error) + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":131 + * cdef inline object toReal(PetscReal value): + * return value + * cdef inline PetscReal asReal(object value) except? -1: # <<<<<<<<<<<<<< + * return value + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.asReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1.0; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":134 + * return value + * + * cdef inline object toScalar(PetscScalar value): # <<<<<<<<<<<<<< + * return PyPetscScalar_FromPetscScalar(value) + * cdef inline PetscScalar asScalar(object value) except? -1.0: + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toScalar(PetscScalar __pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toScalar", 0); + + /* "petsc4py/PETSc/PETSc.pyx":135 + * + * cdef inline object toScalar(PetscScalar value): + * return PyPetscScalar_FromPetscScalar(value) # <<<<<<<<<<<<<< + * cdef inline PetscScalar asScalar(object value) except? -1.0: + * return PyPetscScalar_AsPetscScalar(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyPetscScalar_FromPetscScalar(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":134 + * return value + * + * cdef inline object toScalar(PetscScalar value): # <<<<<<<<<<<<<< + * return PyPetscScalar_FromPetscScalar(value) + * cdef inline PetscScalar asScalar(object value) except? -1.0: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.toScalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":136 + * cdef inline object toScalar(PetscScalar value): + * return PyPetscScalar_FromPetscScalar(value) + * cdef inline PetscScalar asScalar(object value) except? -1.0: # <<<<<<<<<<<<<< + * return PyPetscScalar_AsPetscScalar(value) + * + */ + +static CYTHON_INLINE PetscScalar __pyx_f_8petsc4py_5PETSc_asScalar(PyObject *__pyx_v_value) { + PetscScalar __pyx_r; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asScalar", 0); + + /* "petsc4py/PETSc/PETSc.pyx":137 + * return PyPetscScalar_FromPetscScalar(value) + * cdef inline PetscScalar asScalar(object value) except? -1.0: + * return PyPetscScalar_AsPetscScalar(value) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = PyPetscScalar_AsPetscScalar(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(12, 137, __pyx_L1_error) + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":136 + * cdef inline object toScalar(PetscScalar value): + * return PyPetscScalar_FromPetscScalar(value) + * cdef inline PetscScalar asScalar(object value) except? -1.0: # <<<<<<<<<<<<<< + * return PyPetscScalar_AsPetscScalar(value) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.asScalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscScalar)(-1.0)); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":68 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray asarray(object ob): # <<<<<<<<<<<<<< + * return PyArray_FROM_O(ob) + * + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_asarray(PyObject *__pyx_v_ob) { + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asarray", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":69 + * + * cdef inline ndarray asarray(object ob): + * return PyArray_FROM_O(ob) # <<<<<<<<<<<<<< + * + * cdef inline ndarray arange(start, stop, stride): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_FROM_O(__pyx_v_ob)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":68 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray asarray(object ob): # <<<<<<<<<<<<<< + * return PyArray_FROM_O(ob) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.asarray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":71 + * return PyArray_FROM_O(ob) + * + * cdef inline ndarray arange(start, stop, stride): # <<<<<<<<<<<<<< + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * return PyArray_ArangeObj(start, stop, stride, descr) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_arange(PyObject *__pyx_v_start, PyObject *__pyx_v_stop, PyObject *__pyx_v_stride) { + PyArray_Descr *__pyx_v_descr = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("arange", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":72 + * + * cdef inline ndarray arange(start, stop, stride): + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) # <<<<<<<<<<<<<< + * return PyArray_ArangeObj(start, stop, stride, descr) + * + */ + __pyx_t_1 = ((PyObject *)PyArray_DescrFromType(NPY_PETSC_INT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_descr = ((PyArray_Descr *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":73 + * cdef inline ndarray arange(start, stop, stride): + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * return PyArray_ArangeObj(start, stop, stride, descr) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_2 = ((PyObject *)PyArray_ArangeObj(__pyx_v_start, __pyx_v_stop, __pyx_v_stride, __pyx_v_descr)); if (unlikely(!__pyx_t_2)) __PYX_ERR(13, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":71 + * return PyArray_FROM_O(ob) + * + * cdef inline ndarray arange(start, stop, stride): # <<<<<<<<<<<<<< + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * return PyArray_ArangeObj(start, stop, stride, descr) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.arange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_descr); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":77 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray empty_i(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_i(PetscInt __pyx_v_size) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("empty_i", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":78 + * + * cdef inline ndarray empty_i(PetscInt size): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":79 + * cdef inline ndarray empty_i(PetscInt size): + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) # <<<<<<<<<<<<<< + * + * cdef inline ndarray empty_r(PetscInt size): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_INT, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":77 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray empty_i(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.empty_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":81 + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * + * cdef inline ndarray empty_r(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_r(PetscInt __pyx_v_size) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("empty_r", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":82 + * + * cdef inline ndarray empty_r(PetscInt size): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":83 + * cdef inline ndarray empty_r(PetscInt size): + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) # <<<<<<<<<<<<<< + * + * cdef inline ndarray empty_s(PetscInt size): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_REAL, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":81 + * return PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * + * cdef inline ndarray empty_r(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.empty_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":85 + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * + * cdef inline ndarray empty_s(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_s(PetscInt __pyx_v_size) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("empty_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":86 + * + * cdef inline ndarray empty_s(PetscInt size): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":87 + * cdef inline ndarray empty_s(PetscInt size): + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) # <<<<<<<<<<<<<< + * + * cdef inline ndarray empty_c(PetscInt size): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_SCALAR, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":85 + * return PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * + * cdef inline ndarray empty_s(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.empty_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":89 + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * + * cdef inline ndarray empty_c(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_c(PetscInt __pyx_v_size) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("empty_c", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":90 + * + * cdef inline ndarray empty_c(PetscInt size): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) + * + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":91 + * cdef inline ndarray empty_c(PetscInt size): + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) # <<<<<<<<<<<<<< + * + * cdef inline ndarray empty_p(PetscInt size): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_COMPLEX, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":89 + * return PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * + * cdef inline ndarray empty_c(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.empty_c", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":93 + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) + * + * cdef inline ndarray empty_p(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_INTP, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_empty_p(PetscInt __pyx_v_size) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("empty_p", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":94 + * + * cdef inline ndarray empty_p(PetscInt size): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * return PyArray_EMPTY(1, &s, NPY_INTP, 0) + * + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":95 + * cdef inline ndarray empty_p(PetscInt size): + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_INTP, 0) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_INTP, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":93 + * return PyArray_EMPTY(1, &s, NPY_PETSC_COMPLEX, 0) + * + * cdef inline ndarray empty_p(PetscInt size): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * return PyArray_EMPTY(1, &s, NPY_INTP, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.empty_p", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":99 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray array_i(PetscInt size, const PetscInt* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_i(PetscInt __pyx_v_size, PetscInt const *__pyx_v_data) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_i", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":100 + * + * cdef inline ndarray array_i(PetscInt size, const PetscInt* data): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * if data != NULL: + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":101 + * cdef inline ndarray array_i(PetscInt size, const PetscInt* data): + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) # <<<<<<<<<<<<<< + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscInt)) + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_INT, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":102 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscInt)) + * return ary + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/arraynpy.pxi":103 + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscInt)) # <<<<<<<<<<<<<< + * return ary + * + */ + (void)(memcpy(PyArray_DATA(__pyx_v_ary), __pyx_v_data, (((size_t)__pyx_v_size) * (sizeof(PetscInt))))); + + /* "petsc4py/PETSc/arraynpy.pxi":102 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscInt)) + * return ary + */ + } + + /* "petsc4py/PETSc/arraynpy.pxi":104 + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscInt)) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray array_r(PetscInt size, const PetscReal* data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":99 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray array_i(PetscInt size, const PetscInt* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_INT, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.array_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":106 + * return ary + * + * cdef inline ndarray array_r(PetscInt size, const PetscReal* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_r(PetscInt __pyx_v_size, PetscReal const *__pyx_v_data) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_r", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":107 + * + * cdef inline ndarray array_r(PetscInt size, const PetscReal* data): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * if data != NULL: + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":108 + * cdef inline ndarray array_r(PetscInt size, const PetscReal* data): + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) # <<<<<<<<<<<<<< + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscReal)) + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_REAL, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":109 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscReal)) + * return ary + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/arraynpy.pxi":110 + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscReal)) # <<<<<<<<<<<<<< + * return ary + * + */ + (void)(memcpy(PyArray_DATA(__pyx_v_ary), __pyx_v_data, (((size_t)__pyx_v_size) * (sizeof(PetscReal))))); + + /* "petsc4py/PETSc/arraynpy.pxi":109 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscReal)) + * return ary + */ + } + + /* "petsc4py/PETSc/arraynpy.pxi":111 + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscReal)) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray array_b(PetscInt size, const PetscBool* data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":106 + * return ary + * + * cdef inline ndarray array_r(PetscInt size, const PetscReal* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_REAL, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.array_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":113 + * return ary + * + * cdef inline ndarray array_b(PetscInt size, const PetscBool* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_b(PetscInt __pyx_v_size, PetscBool const *__pyx_v_data) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_b", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":114 + * + * cdef inline ndarray array_b(PetscInt size, const PetscBool* data): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + * if data != NULL: + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":115 + * cdef inline ndarray array_b(PetscInt size, const PetscBool* data): + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) # <<<<<<<<<<<<<< + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscBool)) + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_BOOL, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":116 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscBool)) + * return ary + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/arraynpy.pxi":117 + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscBool)) # <<<<<<<<<<<<<< + * return ary + * + */ + (void)(memcpy(PyArray_DATA(__pyx_v_ary), __pyx_v_data, (((size_t)__pyx_v_size) * (sizeof(PetscBool))))); + + /* "petsc4py/PETSc/arraynpy.pxi":116 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscBool)) + * return ary + */ + } + + /* "petsc4py/PETSc/arraynpy.pxi":118 + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscBool)) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray array_s(PetscInt size, const PetscScalar* data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":113 + * return ary + * + * cdef inline ndarray array_b(PetscInt size, const PetscBool* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_BOOL, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.array_b", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":120 + * return ary + * + * cdef inline ndarray array_s(PetscInt size, const PetscScalar* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_array_s(PetscInt __pyx_v_size, PetscScalar const *__pyx_v_data) { + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":121 + * + * cdef inline ndarray array_s(PetscInt size, const PetscScalar* data): + * cdef npy_intp s = size # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * if data != NULL: + */ + __pyx_v_s = ((npy_intp)__pyx_v_size); + + /* "petsc4py/PETSc/arraynpy.pxi":122 + * cdef inline ndarray array_s(PetscInt size, const PetscScalar* data): + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) # <<<<<<<<<<<<<< + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscScalar)) + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_s), NPY_PETSC_SCALAR, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":123 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscScalar)) + * return ary + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/arraynpy.pxi":124 + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscScalar)) # <<<<<<<<<<<<<< + * return ary + * + */ + (void)(memcpy(PyArray_DATA(__pyx_v_ary), __pyx_v_data, (((size_t)__pyx_v_size) * (sizeof(PetscScalar))))); + + /* "petsc4py/PETSc/arraynpy.pxi":123 + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + * if data != NULL: # <<<<<<<<<<<<<< + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscScalar)) + * return ary + */ + } + + /* "petsc4py/PETSc/arraynpy.pxi":125 + * if data != NULL: + * memcpy(PyArray_DATA(ary), data, size*sizeof(PetscScalar)) + * return ary # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":120 + * return ary + * + * cdef inline ndarray array_s(PetscInt size, const PetscScalar* data): # <<<<<<<<<<<<<< + * cdef npy_intp s = size + * cdef ndarray ary = PyArray_EMPTY(1, &s, NPY_PETSC_SCALAR, 0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.array_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":129 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray iarray(object ob, int typenum): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray(PyObject *__pyx_v_ob, int __pyx_v_typenum) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iarray", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":130 + * + * cdef inline ndarray iarray(object ob, int typenum): + * cdef ndarray ary = PyArray_FROM_OTF( # <<<<<<<<<<<<<< + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary + */ + __pyx_t_1 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_ob, __pyx_v_typenum, (NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED))); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":132 + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(ary): return ary + * return PyArray_Copy(ary) + */ + __pyx_t_2 = (PyArray_ISCONTIGUOUS(__pyx_v_ary) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/arraynpy.pxi":133 + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary + * if PyArray_ISFORTRAN(ary): return ary # <<<<<<<<<<<<<< + * return PyArray_Copy(ary) + * + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_ary) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/arraynpy.pxi":134 + * if PyArray_ISCONTIGUOUS(ary): return ary + * if PyArray_ISFORTRAN(ary): return ary + * return PyArray_Copy(ary) # <<<<<<<<<<<<<< + * + * cdef inline ndarray iarray_i(object ob, PetscInt* size, PetscInt** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_Copy(__pyx_v_ary)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":129 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray iarray(object ob, int typenum): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.iarray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":136 + * return PyArray_Copy(ary) + * + * cdef inline ndarray iarray_i(object ob, PetscInt* size, PetscInt** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_i(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscInt **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iarray_i", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":137 + * + * cdef inline ndarray iarray_i(object ob, PetscInt* size, PetscInt** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_INT) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_ob, NPY_PETSC_INT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":138 + * cdef inline ndarray iarray_i(object ob, PetscInt* size, PetscInt** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":139 + * cdef ndarray ary = iarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscInt *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":140 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray iarray_r(object ob, PetscInt* size, PetscReal** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":136 + * return PyArray_Copy(ary) + * + * cdef inline ndarray iarray_i(object ob, PetscInt* size, PetscInt** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.iarray_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":142 + * return ary + * + * cdef inline ndarray iarray_r(object ob, PetscInt* size, PetscReal** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_r(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscReal **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iarray_r", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":143 + * + * cdef inline ndarray iarray_r(object ob, PetscInt* size, PetscReal** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_ob, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":144 + * cdef inline ndarray iarray_r(object ob, PetscInt* size, PetscReal** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":145 + * cdef ndarray ary = iarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscReal *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":146 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray iarray_b(object ob, PetscInt* size, PetscBool** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":142 + * return ary + * + * cdef inline ndarray iarray_r(object ob, PetscInt* size, PetscReal** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.iarray_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":148 + * return ary + * + * cdef inline ndarray iarray_b(object ob, PetscInt* size, PetscBool** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_BOOL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_b(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscBool **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iarray_b", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":149 + * + * cdef inline ndarray iarray_b(object ob, PetscInt* size, PetscBool** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_BOOL) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_ob, NPY_PETSC_BOOL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":150 + * cdef inline ndarray iarray_b(object ob, PetscInt* size, PetscBool** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_BOOL) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":151 + * cdef ndarray ary = iarray(ob, NPY_PETSC_BOOL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscBool *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":152 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray iarray_s(object ob, PetscInt* size, PetscScalar** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":148 + * return ary + * + * cdef inline ndarray iarray_b(object ob, PetscInt* size, PetscBool** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_BOOL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.iarray_b", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":154 + * return ary + * + * cdef inline ndarray iarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_iarray_s(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscScalar **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iarray_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":155 + * + * cdef inline ndarray iarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_SCALAR) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_ob, NPY_PETSC_SCALAR)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":156 + * cdef inline ndarray iarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = iarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":157 + * cdef ndarray ary = iarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscScalar *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":158 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":154 + * return ary + * + * cdef inline ndarray iarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.iarray_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":162 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray oarray(object ob, int typenum): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_WRITEABLE|NPY_ARRAY_NOTSWAPPED) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray(PyObject *__pyx_v_ob, int __pyx_v_typenum) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("oarray", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":163 + * + * cdef inline ndarray oarray(object ob, int typenum): + * cdef ndarray ary = PyArray_FROM_OTF( # <<<<<<<<<<<<<< + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_WRITEABLE|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary + */ + __pyx_t_1 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_ob, __pyx_v_typenum, ((NPY_ARRAY_ALIGNED | NPY_ARRAY_WRITEABLE) | NPY_ARRAY_NOTSWAPPED))); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":165 + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_WRITEABLE|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(ary): return ary + * return PyArray_Copy(ary) + */ + __pyx_t_2 = (PyArray_ISCONTIGUOUS(__pyx_v_ary) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/arraynpy.pxi":166 + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_WRITEABLE|NPY_ARRAY_NOTSWAPPED) + * if PyArray_ISCONTIGUOUS(ary): return ary + * if PyArray_ISFORTRAN(ary): return ary # <<<<<<<<<<<<<< + * return PyArray_Copy(ary) + * + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_ary) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/arraynpy.pxi":167 + * if PyArray_ISCONTIGUOUS(ary): return ary + * if PyArray_ISFORTRAN(ary): return ary + * return PyArray_Copy(ary) # <<<<<<<<<<<<<< + * + * cdef inline ndarray oarray_i(object ob, PetscInt* size, PetscInt** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)PyArray_Copy(__pyx_v_ary)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":162 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray oarray(object ob, int typenum): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, typenum, NPY_ARRAY_ALIGNED|NPY_ARRAY_WRITEABLE|NPY_ARRAY_NOTSWAPPED) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.oarray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":169 + * return PyArray_Copy(ary) + * + * cdef inline ndarray oarray_i(object ob, PetscInt* size, PetscInt** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_i(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscInt **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("oarray_i", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":170 + * + * cdef inline ndarray oarray_i(object ob, PetscInt* size, PetscInt** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_INT) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray(__pyx_v_ob, NPY_PETSC_INT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":171 + * cdef inline ndarray oarray_i(object ob, PetscInt* size, PetscInt** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":172 + * cdef ndarray ary = oarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscInt *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":173 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray oarray_r(object ob, PetscInt* size, PetscReal** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":169 + * return PyArray_Copy(ary) + * + * cdef inline ndarray oarray_i(object ob, PetscInt* size, PetscInt** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_INT) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.oarray_i", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":175 + * return ary + * + * cdef inline ndarray oarray_r(object ob, PetscInt* size, PetscReal** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_r(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscReal **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("oarray_r", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":176 + * + * cdef inline ndarray oarray_r(object ob, PetscInt* size, PetscReal** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray(__pyx_v_ob, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":177 + * cdef inline ndarray oarray_r(object ob, PetscInt* size, PetscReal** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":178 + * cdef ndarray ary = oarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscReal *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":179 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray oarray_s(object ob, PetscInt* size, PetscScalar** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":175 + * return ary + * + * cdef inline ndarray oarray_r(object ob, PetscInt* size, PetscReal** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_REAL) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.oarray_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":181 + * return ary + * + * cdef inline ndarray oarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_s(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscScalar **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("oarray_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":182 + * + * cdef inline ndarray oarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_SCALAR) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray(__pyx_v_ob, NPY_PETSC_SCALAR)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":183 + * cdef inline ndarray oarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = oarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":184 + * cdef ndarray ary = oarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscScalar *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":185 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray oarray_p(object ob, PetscInt* size, void** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":181 + * return ary + * + * cdef inline ndarray oarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_PETSC_SCALAR) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.oarray_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":187 + * return ary + * + * cdef inline ndarray oarray_p(object ob, PetscInt* size, void** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_INTP) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_oarray_p(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, void **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("oarray_p", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":188 + * + * cdef inline ndarray oarray_p(object ob, PetscInt* size, void** data): + * cdef ndarray ary = oarray(ob, NPY_INTP) # <<<<<<<<<<<<<< + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray(__pyx_v_ob, NPY_INTP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":189 + * cdef inline ndarray oarray_p(object ob, PetscInt* size, void** data): + * cdef ndarray ary = oarray(ob, NPY_INTP) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":190 + * cdef ndarray ary = oarray(ob, NPY_INTP) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((void *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":191 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":187 + * return ary + * + * cdef inline ndarray oarray_p(object ob, PetscInt* size, void** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = oarray(ob, NPY_INTP) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.oarray_p", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":195 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray ocarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_CARRAY|NPY_ARRAY_NOTSWAPPED) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_ocarray_s(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscScalar **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ocarray_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":196 + * + * cdef inline ndarray ocarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = PyArray_FROM_OTF( # <<<<<<<<<<<<<< + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_CARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + __pyx_t_1 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_ob, NPY_PETSC_SCALAR, (NPY_ARRAY_CARRAY | NPY_ARRAY_NOTSWAPPED))); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":198 + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_CARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":199 + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_CARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscScalar *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":200 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * cdef inline ndarray ofarray_s(object ob, PetscInt* size, PetscScalar** data): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":195 + * # -------------------------------------------------------------------- + * + * cdef inline ndarray ocarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_CARRAY|NPY_ARRAY_NOTSWAPPED) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.ocarray_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/arraynpy.pxi":202 + * return ary + * + * cdef inline ndarray ofarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_FARRAY|NPY_ARRAY_NOTSWAPPED) + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_ofarray_s(PyObject *__pyx_v_ob, PetscInt *__pyx_v_size, PetscScalar **__pyx_v_data) { + PyArrayObject *__pyx_v_ary = 0; + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ofarray_s", 0); + + /* "petsc4py/PETSc/arraynpy.pxi":203 + * + * cdef inline ndarray ofarray_s(object ob, PetscInt* size, PetscScalar** data): + * cdef ndarray ary = PyArray_FROM_OTF( # <<<<<<<<<<<<<< + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_FARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) + */ + __pyx_t_1 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_ob, NPY_PETSC_SCALAR, (NPY_ARRAY_FARRAY | NPY_ARRAY_NOTSWAPPED))); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/arraynpy.pxi":205 + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_FARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) # <<<<<<<<<<<<<< + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary + */ + __pyx_t_2 = ((__pyx_v_size != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_size[0]) = ((PetscInt)PyArray_SIZE(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":206 + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_FARRAY|NPY_ARRAY_NOTSWAPPED) + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) # <<<<<<<<<<<<<< + * return ary + * + */ + __pyx_t_2 = ((__pyx_v_data != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v_data[0]) = ((PetscScalar *)PyArray_DATA(__pyx_v_ary)); + } + + /* "petsc4py/PETSc/arraynpy.pxi":207 + * if size != NULL: size[0] = PyArray_SIZE(ary) + * if data != NULL: data[0] = PyArray_DATA(ary) + * return ary # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ary)); + __pyx_r = __pyx_v_ary; + goto __pyx_L0; + + /* "petsc4py/PETSc/arraynpy.pxi":202 + * return ary + * + * cdef inline ndarray ofarray_s(object ob, PetscInt* size, PetscScalar** data): # <<<<<<<<<<<<<< + * cdef ndarray ary = PyArray_FROM_OTF( + * ob, NPY_PETSC_SCALAR, NPY_ARRAY_FARRAY|NPY_ARRAY_NOTSWAPPED) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.ofarray_s", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/dlpack.pxi":64 + * dlpack_manager_del_obj del_obj + * + * cdef void pycapsule_deleter(object dltensor): # <<<<<<<<<<<<<< + * cdef DLManagedTensor* dlm_tensor = NULL + * try: + */ + +static void __pyx_f_8petsc4py_5PETSc_pycapsule_deleter(PyObject *__pyx_v_dltensor) { + struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_dlm_tensor; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + void *__pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pycapsule_deleter", 0); + + /* "petsc4py/PETSc/dlpack.pxi":65 + * + * cdef void pycapsule_deleter(object dltensor): + * cdef DLManagedTensor* dlm_tensor = NULL # <<<<<<<<<<<<<< + * try: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + */ + __pyx_v_dlm_tensor = NULL; + + /* "petsc4py/PETSc/dlpack.pxi":66 + * cdef void pycapsule_deleter(object dltensor): + * cdef DLManagedTensor* dlm_tensor = NULL + * try: # <<<<<<<<<<<<<< + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * return # we do not call a used capsule's deleter + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/dlpack.pxi":67 + * cdef DLManagedTensor* dlm_tensor = NULL + * try: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') # <<<<<<<<<<<<<< + * return # we do not call a used capsule's deleter + * except Exception: + */ + __pyx_t_4 = PyCapsule_GetPointer(__pyx_v_dltensor, ((char const *)"used_dltensor")); if (unlikely(__pyx_t_4 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(14, 67, __pyx_L3_error) + __pyx_v_dlm_tensor = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)__pyx_t_4); + + /* "petsc4py/PETSc/dlpack.pxi":68 + * try: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * return # we do not call a used capsule's deleter # <<<<<<<<<<<<<< + * except Exception: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'dltensor') + */ + goto __pyx_L7_try_return; + + /* "petsc4py/PETSc/dlpack.pxi":66 + * cdef void pycapsule_deleter(object dltensor): + * cdef DLManagedTensor* dlm_tensor = NULL + * try: # <<<<<<<<<<<<<< + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * return # we do not call a used capsule's deleter + */ + } + __pyx_L3_error:; + + /* "petsc4py/PETSc/dlpack.pxi":69 + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * return # we do not call a used capsule's deleter + * except Exception: # <<<<<<<<<<<<<< + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'dltensor') + * manager_deleter(dlm_tensor) + */ + __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); + if (__pyx_t_5) { + __Pyx_AddTraceback("petsc4py.PETSc.pycapsule_deleter", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) __PYX_ERR(14, 69, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/dlpack.pxi":70 + * return # we do not call a used capsule's deleter + * except Exception: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'dltensor') # <<<<<<<<<<<<<< + * manager_deleter(dlm_tensor) + * + */ + __pyx_t_4 = PyCapsule_GetPointer(__pyx_v_dltensor, ((char const *)"dltensor")); if (unlikely(__pyx_t_4 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(14, 70, __pyx_L5_except_error) + __pyx_v_dlm_tensor = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L4_exception_handled; + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/dlpack.pxi":66 + * cdef void pycapsule_deleter(object dltensor): + * cdef DLManagedTensor* dlm_tensor = NULL + * try: # <<<<<<<<<<<<<< + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * return # we do not call a used capsule's deleter + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L7_try_return:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L0; + __pyx_L4_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + } + + /* "petsc4py/PETSc/dlpack.pxi":71 + * except Exception: + * dlm_tensor = PyCapsule_GetPointer(dltensor, 'dltensor') + * manager_deleter(dlm_tensor) # <<<<<<<<<<<<<< + * + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: + */ + __pyx_f_8petsc4py_5PETSc_manager_deleter(__pyx_v_dlm_tensor); + + /* "petsc4py/PETSc/dlpack.pxi":64 + * dlpack_manager_del_obj del_obj + * + * cdef void pycapsule_deleter(object dltensor): # <<<<<<<<<<<<<< + * cdef DLManagedTensor* dlm_tensor = NULL + * try: + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_WriteUnraisable("petsc4py.PETSc.pycapsule_deleter", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/dlpack.pxi":73 + * manager_deleter(dlm_tensor) + * + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: # <<<<<<<<<<<<<< + * if tensor.manager_ctx is NULL: + * return + */ + +static void __pyx_f_8petsc4py_5PETSc_manager_deleter(struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_tensor) { + int __pyx_t_1; + + /* "petsc4py/PETSc/dlpack.pxi":74 + * + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: + * if tensor.manager_ctx is NULL: # <<<<<<<<<<<<<< + * return + * free(tensor.dl_tensor.shape) + */ + __pyx_t_1 = ((__pyx_v_tensor->manager_ctx == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/dlpack.pxi":75 + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: + * if tensor.manager_ctx is NULL: + * return # <<<<<<<<<<<<<< + * free(tensor.dl_tensor.shape) + * if tensor.del_obj is not NULL: + */ + goto __pyx_L0; + + /* "petsc4py/PETSc/dlpack.pxi":74 + * + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: + * if tensor.manager_ctx is NULL: # <<<<<<<<<<<<<< + * return + * free(tensor.dl_tensor.shape) + */ + } + + /* "petsc4py/PETSc/dlpack.pxi":76 + * if tensor.manager_ctx is NULL: + * return + * free(tensor.dl_tensor.shape) # <<<<<<<<<<<<<< + * if tensor.del_obj is not NULL: + * tensor.del_obj(&tensor.manager_ctx) + */ + free(__pyx_v_tensor->dl_tensor.shape); + + /* "petsc4py/PETSc/dlpack.pxi":77 + * return + * free(tensor.dl_tensor.shape) + * if tensor.del_obj is not NULL: # <<<<<<<<<<<<<< + * tensor.del_obj(&tensor.manager_ctx) + * free(tensor) + */ + __pyx_t_1 = ((__pyx_v_tensor->del_obj != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/dlpack.pxi":78 + * free(tensor.dl_tensor.shape) + * if tensor.del_obj is not NULL: + * tensor.del_obj(&tensor.manager_ctx) # <<<<<<<<<<<<<< + * free(tensor) + * + */ + (void)(__pyx_v_tensor->del_obj((&__pyx_v_tensor->manager_ctx))); + + /* "petsc4py/PETSc/dlpack.pxi":77 + * return + * free(tensor.dl_tensor.shape) + * if tensor.del_obj is not NULL: # <<<<<<<<<<<<<< + * tensor.del_obj(&tensor.manager_ctx) + * free(tensor) + */ + } + + /* "petsc4py/PETSc/dlpack.pxi":79 + * if tensor.del_obj is not NULL: + * tensor.del_obj(&tensor.manager_ctx) + * free(tensor) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + free(__pyx_v_tensor); + + /* "petsc4py/PETSc/dlpack.pxi":73 + * manager_deleter(dlm_tensor) + * + * cdef void manager_deleter(DLManagedTensor* tensor) nogil: # <<<<<<<<<<<<<< + * if tensor.manager_ctx is NULL: + * return + */ + + /* function exit code */ + __pyx_L0:; +} + +/* "petsc4py/PETSc/petscdef.pxi":43 + * PETSC_USE_POINTER + * + * cdef inline PetscInsertMode insertmode(object mode) \ # <<<<<<<<<<<<<< + * except (-1): + * if mode is None: return PETSC_INSERT_VALUES + */ + +static CYTHON_INLINE InsertMode __pyx_f_8petsc4py_5PETSc_insertmode(PyObject *__pyx_v_mode) { + InsertMode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + InsertMode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertmode", 0); + + /* "petsc4py/PETSc/petscdef.pxi":45 + * cdef inline PetscInsertMode insertmode(object mode) \ + * except (-1): + * if mode is None: return PETSC_INSERT_VALUES # <<<<<<<<<<<<<< + * elif mode is True: return PETSC_ADD_VALUES + * elif mode is False: return PETSC_INSERT_VALUES + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = INSERT_VALUES; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":46 + * except (-1): + * if mode is None: return PETSC_INSERT_VALUES + * elif mode is True: return PETSC_ADD_VALUES # <<<<<<<<<<<<<< + * elif mode is False: return PETSC_INSERT_VALUES + * else: return mode + */ + __pyx_t_2 = (__pyx_v_mode == Py_True); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = ADD_VALUES; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":47 + * if mode is None: return PETSC_INSERT_VALUES + * elif mode is True: return PETSC_ADD_VALUES + * elif mode is False: return PETSC_INSERT_VALUES # <<<<<<<<<<<<<< + * else: return mode + * + */ + __pyx_t_1 = (__pyx_v_mode == Py_False); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = INSERT_VALUES; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":48 + * elif mode is True: return PETSC_ADD_VALUES + * elif mode is False: return PETSC_INSERT_VALUES + * else: return mode # <<<<<<<<<<<<<< + * + * cdef inline PetscScatterMode scattermode(object mode) \ + */ + /*else*/ { + __pyx_t_3 = ((InsertMode)__Pyx_PyInt_As_InsertMode(__pyx_v_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 48, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":43 + * PETSC_USE_POINTER + * + * cdef inline PetscInsertMode insertmode(object mode) \ # <<<<<<<<<<<<<< + * except (-1): + * if mode is None: return PETSC_INSERT_VALUES + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.insertmode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((InsertMode)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdef.pxi":50 + * else: return mode + * + * cdef inline PetscScatterMode scattermode(object mode) \ # <<<<<<<<<<<<<< + * except (-1): + * if mode is None: return PETSC_SCATTER_FORWARD + */ + +static CYTHON_INLINE ScatterMode __pyx_f_8petsc4py_5PETSc_scattermode(PyObject *__pyx_v_mode) { + ScatterMode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + ScatterMode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scattermode", 0); + + /* "petsc4py/PETSc/petscdef.pxi":52 + * cdef inline PetscScatterMode scattermode(object mode) \ + * except (-1): + * if mode is None: return PETSC_SCATTER_FORWARD # <<<<<<<<<<<<<< + * if mode is False: return PETSC_SCATTER_FORWARD + * if mode is True: return PETSC_SCATTER_REVERSE + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = SCATTER_FORWARD; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":53 + * except (-1): + * if mode is None: return PETSC_SCATTER_FORWARD + * if mode is False: return PETSC_SCATTER_FORWARD # <<<<<<<<<<<<<< + * if mode is True: return PETSC_SCATTER_REVERSE + * if isinstance(mode, str): + */ + __pyx_t_2 = (__pyx_v_mode == Py_False); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = SCATTER_FORWARD; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":54 + * if mode is None: return PETSC_SCATTER_FORWARD + * if mode is False: return PETSC_SCATTER_FORWARD + * if mode is True: return PETSC_SCATTER_REVERSE # <<<<<<<<<<<<<< + * if isinstance(mode, str): + * if mode == 'forward': return PETSC_SCATTER_FORWARD + */ + __pyx_t_1 = (__pyx_v_mode == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = SCATTER_REVERSE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":55 + * if mode is False: return PETSC_SCATTER_FORWARD + * if mode is True: return PETSC_SCATTER_REVERSE + * if isinstance(mode, str): # <<<<<<<<<<<<<< + * if mode == 'forward': return PETSC_SCATTER_FORWARD + * if mode == 'reverse': return PETSC_SCATTER_REVERSE + */ + __pyx_t_2 = PyString_Check(__pyx_v_mode); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdef.pxi":56 + * if mode is True: return PETSC_SCATTER_REVERSE + * if isinstance(mode, str): + * if mode == 'forward': return PETSC_SCATTER_FORWARD # <<<<<<<<<<<<<< + * if mode == 'reverse': return PETSC_SCATTER_REVERSE + * else: raise ValueError("unknown scatter mode: %s" % mode) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_forward, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(3, 56, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = SCATTER_FORWARD; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":57 + * if isinstance(mode, str): + * if mode == 'forward': return PETSC_SCATTER_FORWARD + * if mode == 'reverse': return PETSC_SCATTER_REVERSE # <<<<<<<<<<<<<< + * else: raise ValueError("unknown scatter mode: %s" % mode) + * return mode + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_reverse, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(3, 57, __pyx_L1_error) + if (likely(__pyx_t_1)) { + __pyx_r = SCATTER_REVERSE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdef.pxi":58 + * if mode == 'forward': return PETSC_SCATTER_FORWARD + * if mode == 'reverse': return PETSC_SCATTER_REVERSE + * else: raise ValueError("unknown scatter mode: %s" % mode) # <<<<<<<<<<<<<< + * return mode + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_scatter_mode_s, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(3, 58, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdef.pxi":55 + * if mode is False: return PETSC_SCATTER_FORWARD + * if mode is True: return PETSC_SCATTER_REVERSE + * if isinstance(mode, str): # <<<<<<<<<<<<<< + * if mode == 'forward': return PETSC_SCATTER_FORWARD + * if mode == 'reverse': return PETSC_SCATTER_REVERSE + */ + } + + /* "petsc4py/PETSc/petscdef.pxi":59 + * if mode == 'reverse': return PETSC_SCATTER_REVERSE + * else: raise ValueError("unknown scatter mode: %s" % mode) + * return mode # <<<<<<<<<<<<<< + * + */ + __pyx_t_5 = ((ScatterMode)__Pyx_PyInt_As_ScatterMode(__pyx_v_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(3, 59, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdef.pxi":50 + * else: return mode + * + * cdef inline PetscScatterMode scattermode(object mode) \ # <<<<<<<<<<<<<< + * except (-1): + * if mode is None: return PETSC_SCATTER_FORWARD + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.scattermode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((ScatterMode)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":38 + * # + * + * cdef getprefix(prefix, deft=None): # <<<<<<<<<<<<<< + * if prefix is None: + * prefix = deft + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getprefix(PyObject *__pyx_v_prefix, struct __pyx_opt_args_8petsc4py_5PETSc_getprefix *__pyx_optional_args) { + PyObject *__pyx_v_deft = ((PyObject *)Py_None); + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getprefix", 0); + if (__pyx_optional_args) { + if (__pyx_optional_args->__pyx_n > 0) { + __pyx_v_deft = __pyx_optional_args->deft; + } + } + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/petscopt.pxi":39 + * + * cdef getprefix(prefix, deft=None): + * if prefix is None: # <<<<<<<<<<<<<< + * prefix = deft + * elif isinstance(prefix, Options): + */ + __pyx_t_1 = (__pyx_v_prefix == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":40 + * cdef getprefix(prefix, deft=None): + * if prefix is None: + * prefix = deft # <<<<<<<<<<<<<< + * elif isinstance(prefix, Options): + * prefix = prefix.prefix + */ + __Pyx_INCREF(__pyx_v_deft); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_v_deft); + + /* "petsc4py/PETSc/petscopt.pxi":39 + * + * cdef getprefix(prefix, deft=None): + * if prefix is None: # <<<<<<<<<<<<<< + * prefix = deft + * elif isinstance(prefix, Options): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscopt.pxi":41 + * if prefix is None: + * prefix = deft + * elif isinstance(prefix, Options): # <<<<<<<<<<<<<< + * prefix = prefix.prefix + * elif isinstance(prefix, Object): + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_prefix, __pyx_ptype_8petsc4py_5PETSc_Options); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":42 + * prefix = deft + * elif isinstance(prefix, Options): + * prefix = prefix.prefix # <<<<<<<<<<<<<< + * elif isinstance(prefix, Object): + * prefix = prefix.getOptionsPrefix() + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix, __pyx_n_s_prefix); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":41 + * if prefix is None: + * prefix = deft + * elif isinstance(prefix, Options): # <<<<<<<<<<<<<< + * prefix = prefix.prefix + * elif isinstance(prefix, Object): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscopt.pxi":43 + * elif isinstance(prefix, Options): + * prefix = prefix.prefix + * elif isinstance(prefix, Object): # <<<<<<<<<<<<<< + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_prefix, __pyx_ptype_8petsc4py_5PETSc_Object); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":44 + * prefix = prefix.prefix + * elif isinstance(prefix, Object): + * prefix = prefix.getOptionsPrefix() # <<<<<<<<<<<<<< + * elif not isinstance(prefix, str): + * raise TypeError('option prefix must be string') + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix, __pyx_n_s_getOptionsPrefix); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":43 + * elif isinstance(prefix, Options): + * prefix = prefix.prefix + * elif isinstance(prefix, Object): # <<<<<<<<<<<<<< + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscopt.pxi":45 + * elif isinstance(prefix, Object): + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): # <<<<<<<<<<<<<< + * raise TypeError('option prefix must be string') + * if not prefix: + */ + __pyx_t_2 = PyString_Check(__pyx_v_prefix); + __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscopt.pxi":46 + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): + * raise TypeError('option prefix must be string') # <<<<<<<<<<<<<< + * if not prefix: + * return None + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(4, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":45 + * elif isinstance(prefix, Object): + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): # <<<<<<<<<<<<<< + * raise TypeError('option prefix must be string') + * if not prefix: + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscopt.pxi":47 + * elif not isinstance(prefix, str): + * raise TypeError('option prefix must be string') + * if not prefix: # <<<<<<<<<<<<<< + * return None + * if prefix.count(' '): + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 47, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":48 + * raise TypeError('option prefix must be string') + * if not prefix: + * return None # <<<<<<<<<<<<<< + * if prefix.count(' '): + * raise ValueError('option prefix should not have spaces') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":47 + * elif not isinstance(prefix, str): + * raise TypeError('option prefix must be string') + * if not prefix: # <<<<<<<<<<<<<< + * return None + * if prefix.count(' '): + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":49 + * if not prefix: + * return None + * if prefix.count(' '): # <<<<<<<<<<<<<< + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix, __pyx_n_s_count); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscopt.pxi":50 + * return None + * if prefix.count(' '): + * raise ValueError('option prefix should not have spaces') # <<<<<<<<<<<<<< + * if prefix.startswith('-'): + * raise ValueError('option prefix should not start with a hyphen') + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(4, 50, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":49 + * if not prefix: + * return None + * if prefix.count(' '): # <<<<<<<<<<<<<< + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":51 + * if prefix.count(' '): + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): # <<<<<<<<<<<<<< + * raise ValueError('option prefix should not start with a hyphen') + * return prefix + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_prefix, __pyx_n_s_startswith); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s__4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscopt.pxi":52 + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): + * raise ValueError('option prefix should not start with a hyphen') # <<<<<<<<<<<<<< + * return prefix + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(4, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":51 + * if prefix.count(' '): + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): # <<<<<<<<<<<<<< + * raise ValueError('option prefix should not start with a hyphen') + * return prefix + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":53 + * if prefix.startswith('-'): + * raise ValueError('option prefix should not start with a hyphen') + * return prefix # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_prefix); + __pyx_r = __pyx_v_prefix; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":38 + * # + * + * cdef getprefix(prefix, deft=None): # <<<<<<<<<<<<<< + * if prefix is None: + * prefix = deft + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getprefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":57 + * # + * + * cdef opt2str(const char *pre, const char *name): # <<<<<<<<<<<<<< + * p = bytes2str(pre) if pre!=NULL else None + * n = bytes2str(name) if name[0]!=c'-' else bytes2str(&name[1]) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_opt2str(char const *__pyx_v_pre, char const *__pyx_v_name) { + PyObject *__pyx_v_p = NULL; + PyObject *__pyx_v_n = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("opt2str", 0); + + /* "petsc4py/PETSc/petscopt.pxi":58 + * + * cdef opt2str(const char *pre, const char *name): + * p = bytes2str(pre) if pre!=NULL else None # <<<<<<<<<<<<<< + * n = bytes2str(name) if name[0]!=c'-' else bytes2str(&name[1]) + * return '(prefix:%s, name:%s)' % (p, n) + */ + if (((__pyx_v_pre != NULL) != 0)) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_pre); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_t_2; + __pyx_t_2 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_1 = Py_None; + } + __pyx_v_p = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":59 + * cdef opt2str(const char *pre, const char *name): + * p = bytes2str(pre) if pre!=NULL else None + * n = bytes2str(name) if name[0]!=c'-' else bytes2str(&name[1]) # <<<<<<<<<<<<<< + * return '(prefix:%s, name:%s)' % (p, n) + * + */ + if ((((__pyx_v_name[0]) != '-') != 0)) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_t_2; + __pyx_t_2 = 0; + } else { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str((&(__pyx_v_name[1]))); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_v_n = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":60 + * p = bytes2str(pre) if pre!=NULL else None + * n = bytes2str(name) if name[0]!=c'-' else bytes2str(&name[1]) + * return '(prefix:%s, name:%s)' % (p, n) # <<<<<<<<<<<<<< + * + * cdef getopt_Bool(PetscOptions opt, const char *pre, const char *name, object deft): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_p); + __Pyx_GIVEREF(__pyx_v_p); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_p); + __Pyx_INCREF(__pyx_v_n); + __Pyx_GIVEREF(__pyx_v_n); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_n); + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_prefix_s_name_s, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":57 + * # + * + * cdef opt2str(const char *pre, const char *name): # <<<<<<<<<<<<<< + * p = bytes2str(pre) if pre!=NULL else None + * n = bytes2str(name) if name[0]!=c'-' else bytes2str(&name[1]) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.opt2str", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_p); + __Pyx_XDECREF(__pyx_v_n); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":62 + * return '(prefix:%s, name:%s)' % (p, n) + * + * cdef getopt_Bool(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscBool value = PETSC_FALSE + * cdef PetscBool flag = PETSC_FALSE + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Bool(PetscOptions __pyx_v_opt, char const *__pyx_v_pre, char const *__pyx_v_name, PyObject *__pyx_v_deft) { + PetscBool __pyx_v_value; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt_Bool", 0); + + /* "petsc4py/PETSc/petscopt.pxi":63 + * + * cdef getopt_Bool(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscBool value = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetBool(opt, pre, name, &value, &flag) ) + */ + __pyx_v_value = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":64 + * cdef getopt_Bool(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscBool value = PETSC_FALSE + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetBool(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toBool(value) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":65 + * cdef PetscBool value = PETSC_FALSE + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetBool(opt, pre, name, &value, &flag) ) # <<<<<<<<<<<<<< + * if flag==PETSC_TRUE: return toBool(value) + * if deft is not None: return deft + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetBool(__pyx_v_opt, __pyx_v_pre, __pyx_v_name, (&__pyx_v_value), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 65, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":66 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetBool(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toBool(value) # <<<<<<<<<<<<<< + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) + */ + __pyx_t_2 = ((__pyx_v_flag == PETSC_TRUE) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":67 + * CHKERR( PetscOptionsGetBool(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toBool(value) + * if deft is not None: return deft # <<<<<<<<<<<<<< + * raise KeyError(opt2str(pre, name)) + * + */ + __pyx_t_2 = (__pyx_v_deft != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_deft); + __pyx_r = __pyx_v_deft; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":68 + * if flag==PETSC_TRUE: return toBool(value) + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) # <<<<<<<<<<<<<< + * + * cdef getopt_Int(PetscOptions opt, const char *pre, const char *name, object deft): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_opt2str(__pyx_v_pre, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(4, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":62 + * return '(prefix:%s, name:%s)' % (p, n) + * + * cdef getopt_Bool(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscBool value = PETSC_FALSE + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getopt_Bool", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":70 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Int(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscInt value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Int(PetscOptions __pyx_v_opt, char const *__pyx_v_pre, char const *__pyx_v_name, PyObject *__pyx_v_deft) { + PetscInt __pyx_v_value; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt_Int", 0); + + /* "petsc4py/PETSc/petscopt.pxi":71 + * + * cdef getopt_Int(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscInt value = 0 # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetInt(opt, pre, name, &value, &flag) ) + */ + __pyx_v_value = 0; + + /* "petsc4py/PETSc/petscopt.pxi":72 + * cdef getopt_Int(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscInt value = 0 + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetInt(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toInt(value) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":73 + * cdef PetscInt value = 0 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetInt(opt, pre, name, &value, &flag) ) # <<<<<<<<<<<<<< + * if flag==PETSC_TRUE: return toInt(value) + * if deft is not None: return deft + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetInt(__pyx_v_opt, __pyx_v_pre, __pyx_v_name, (&__pyx_v_value), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 73, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":74 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetInt(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toInt(value) # <<<<<<<<<<<<<< + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) + */ + __pyx_t_2 = ((__pyx_v_flag == PETSC_TRUE) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":75 + * CHKERR( PetscOptionsGetInt(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toInt(value) + * if deft is not None: return deft # <<<<<<<<<<<<<< + * raise KeyError(opt2str(pre, name)) + * + */ + __pyx_t_2 = (__pyx_v_deft != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_deft); + __pyx_r = __pyx_v_deft; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":76 + * if flag==PETSC_TRUE: return toInt(value) + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) # <<<<<<<<<<<<<< + * + * cdef getopt_Real(PetscOptions opt, const char *pre, const char *name, object deft): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_opt2str(__pyx_v_pre, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(4, 76, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":70 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Int(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscInt value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getopt_Int", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":78 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Real(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscReal value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Real(PetscOptions __pyx_v_opt, char const *__pyx_v_pre, char const *__pyx_v_name, PyObject *__pyx_v_deft) { + PetscReal __pyx_v_value; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt_Real", 0); + + /* "petsc4py/PETSc/petscopt.pxi":79 + * + * cdef getopt_Real(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscReal value = 0 # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetReal(opt, pre, name, &value, &flag) ) + */ + __pyx_v_value = 0.0; + + /* "petsc4py/PETSc/petscopt.pxi":80 + * cdef getopt_Real(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscReal value = 0 + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetReal(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toReal(value) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":81 + * cdef PetscReal value = 0 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetReal(opt, pre, name, &value, &flag) ) # <<<<<<<<<<<<<< + * if flag==PETSC_TRUE: return toReal(value) + * if deft is not None: return deft + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetReal(__pyx_v_opt, __pyx_v_pre, __pyx_v_name, (&__pyx_v_value), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 81, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":82 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetReal(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toReal(value) # <<<<<<<<<<<<<< + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) + */ + __pyx_t_2 = ((__pyx_v_flag == PETSC_TRUE) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":83 + * CHKERR( PetscOptionsGetReal(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toReal(value) + * if deft is not None: return deft # <<<<<<<<<<<<<< + * raise KeyError(opt2str(pre, name)) + * + */ + __pyx_t_2 = (__pyx_v_deft != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_deft); + __pyx_r = __pyx_v_deft; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":84 + * if flag==PETSC_TRUE: return toReal(value) + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) # <<<<<<<<<<<<<< + * + * cdef getopt_Scalar(PetscOptions opt, const char *pre, const char *name, object deft): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_opt2str(__pyx_v_pre, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(4, 84, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":78 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Real(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscReal value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getopt_Real", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":86 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Scalar(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscScalar value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_Scalar(PetscOptions __pyx_v_opt, char const *__pyx_v_pre, char const *__pyx_v_name, PyObject *__pyx_v_deft) { + PetscScalar __pyx_v_value; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt_Scalar", 0); + + /* "petsc4py/PETSc/petscopt.pxi":87 + * + * cdef getopt_Scalar(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscScalar value = 0 # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetScalar(opt, pre, name, &value, &flag) ) + */ + __pyx_v_value = 0.0; + + /* "petsc4py/PETSc/petscopt.pxi":88 + * cdef getopt_Scalar(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef PetscScalar value = 0 + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetScalar(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toScalar(value) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":89 + * cdef PetscScalar value = 0 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetScalar(opt, pre, name, &value, &flag) ) # <<<<<<<<<<<<<< + * if flag==PETSC_TRUE: return toScalar(value) + * if deft is not None: return deft + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetScalar(__pyx_v_opt, __pyx_v_pre, __pyx_v_name, (&__pyx_v_value), (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 89, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":90 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetScalar(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toScalar(value) # <<<<<<<<<<<<<< + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) + */ + __pyx_t_2 = ((__pyx_v_flag == PETSC_TRUE) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":91 + * CHKERR( PetscOptionsGetScalar(opt, pre, name, &value, &flag) ) + * if flag==PETSC_TRUE: return toScalar(value) + * if deft is not None: return deft # <<<<<<<<<<<<<< + * raise KeyError(opt2str(pre, name)) + * + */ + __pyx_t_2 = (__pyx_v_deft != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_deft); + __pyx_r = __pyx_v_deft; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":92 + * if flag==PETSC_TRUE: return toScalar(value) + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) # <<<<<<<<<<<<<< + * + * cdef getopt_String(PetscOptions opt, const char *pre, const char *name, object deft): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_opt2str(__pyx_v_pre, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(4, 92, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":86 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_Scalar(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef PetscScalar value = 0 + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getopt_Scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":94 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_String(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef char value[1024+1] + * cdef PetscBool flag = PETSC_FALSE + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt_String(PetscOptions __pyx_v_opt, char const *__pyx_v_pre, char const *__pyx_v_name, PyObject *__pyx_v_deft) { + char __pyx_v_value[(0x400 + 1)]; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt_String", 0); + + /* "petsc4py/PETSc/petscopt.pxi":96 + * cdef getopt_String(PetscOptions opt, const char *pre, const char *name, object deft): + * cdef char value[1024+1] + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(opt, pre, name, value, 1024, &flag) ) + * if flag==PETSC_TRUE: return bytes2str(value) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":97 + * cdef char value[1024+1] + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetString(opt, pre, name, value, 1024, &flag) ) # <<<<<<<<<<<<<< + * if flag==PETSC_TRUE: return bytes2str(value) + * if deft is not None: return deft + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(__pyx_v_opt, __pyx_v_pre, __pyx_v_name, __pyx_v_value, 0x400, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":98 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsGetString(opt, pre, name, value, 1024, &flag) ) + * if flag==PETSC_TRUE: return bytes2str(value) # <<<<<<<<<<<<<< + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) + */ + __pyx_t_2 = ((__pyx_v_flag == PETSC_TRUE) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":99 + * CHKERR( PetscOptionsGetString(opt, pre, name, value, 1024, &flag) ) + * if flag==PETSC_TRUE: return bytes2str(value) + * if deft is not None: return deft # <<<<<<<<<<<<<< + * raise KeyError(opt2str(pre, name)) + * + */ + __pyx_t_2 = (__pyx_v_deft != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_deft); + __pyx_r = __pyx_v_deft; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":100 + * if flag==PETSC_TRUE: return bytes2str(value) + * if deft is not None: return deft + * raise KeyError(opt2str(pre, name)) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_opt2str(__pyx_v_pre, __pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_KeyError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(4, 100, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":94 + * raise KeyError(opt2str(pre, name)) + * + * cdef getopt_String(PetscOptions opt, const char *pre, const char *name, object deft): # <<<<<<<<<<<<<< + * cdef char value[1024+1] + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.getopt_String", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":110 + * OPT_STRING + * + * cdef getpair(prefix, name, const char **pr, const char **nm): # <<<<<<<<<<<<<< + * # -- + * cdef const char *p = NULL + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getpair(PyObject *__pyx_v_prefix, PyObject *__pyx_v_name, char const **__pyx_v_pr, char const **__pyx_v_nm) { + char const *__pyx_v_p; + char const *__pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getpair", 0); + __Pyx_INCREF(__pyx_v_prefix); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/petscopt.pxi":112 + * cdef getpair(prefix, name, const char **pr, const char **nm): + * # -- + * cdef const char *p = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &p) + * if p != NULL and p[0] == c'-': + */ + __pyx_v_p = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":113 + * # -- + * cdef const char *p = NULL + * prefix = str2bytes(prefix, &p) # <<<<<<<<<<<<<< + * if p != NULL and p[0] == c'-': + * p = &p[1] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_p)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":114 + * cdef const char *p = NULL + * prefix = str2bytes(prefix, &p) + * if p != NULL and p[0] == c'-': # <<<<<<<<<<<<<< + * p = &p[1] + * # -- + */ + __pyx_t_3 = ((__pyx_v_p != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_p[0]) == '-') != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":115 + * prefix = str2bytes(prefix, &p) + * if p != NULL and p[0] == c'-': + * p = &p[1] # <<<<<<<<<<<<<< + * # -- + * cdef const char *n = NULL + */ + __pyx_v_p = (&(__pyx_v_p[1])); + + /* "petsc4py/PETSc/petscopt.pxi":114 + * cdef const char *p = NULL + * prefix = str2bytes(prefix, &p) + * if p != NULL and p[0] == c'-': # <<<<<<<<<<<<<< + * p = &p[1] + * # -- + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":117 + * p = &p[1] + * # -- + * cdef const char *n = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &n) + * if n != NULL and n[0] != c'-': + */ + __pyx_v_n = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":118 + * # -- + * cdef const char *n = NULL + * name = str2bytes(name, &n) # <<<<<<<<<<<<<< + * if n != NULL and n[0] != c'-': + * name = b'-' + name + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":119 + * cdef const char *n = NULL + * name = str2bytes(name, &n) + * if n != NULL and n[0] != c'-': # <<<<<<<<<<<<<< + * name = b'-' + name + * name = str2bytes(name, &n) + */ + __pyx_t_3 = ((__pyx_v_n != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_n[0]) != '-') != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L7_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":120 + * name = str2bytes(name, &n) + * if n != NULL and n[0] != c'-': + * name = b'-' + name # <<<<<<<<<<<<<< + * name = str2bytes(name, &n) + * # -- + */ + __pyx_t_1 = PyNumber_Add(__pyx_kp_b__4, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":121 + * if n != NULL and n[0] != c'-': + * name = b'-' + name + * name = str2bytes(name, &n) # <<<<<<<<<<<<<< + * # -- + * pr[0] = p + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":119 + * cdef const char *n = NULL + * name = str2bytes(name, &n) + * if n != NULL and n[0] != c'-': # <<<<<<<<<<<<<< + * name = b'-' + name + * name = str2bytes(name, &n) + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":123 + * name = str2bytes(name, &n) + * # -- + * pr[0] = p # <<<<<<<<<<<<<< + * nm[0] = n + * return (prefix, name) + */ + (__pyx_v_pr[0]) = __pyx_v_p; + + /* "petsc4py/PETSc/petscopt.pxi":124 + * # -- + * pr[0] = p + * nm[0] = n # <<<<<<<<<<<<<< + * return (prefix, name) + * + */ + (__pyx_v_nm[0]) = __pyx_v_n; + + /* "petsc4py/PETSc/petscopt.pxi":125 + * pr[0] = p + * nm[0] = n + * return (prefix, name) # <<<<<<<<<<<<<< + * + * cdef getopt(PetscOptions opt, PetscOptType otype, prefix, name, deft): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_prefix); + __Pyx_GIVEREF(__pyx_v_prefix); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_prefix); + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":110 + * OPT_STRING + * + * cdef getpair(prefix, name, const char **pr, const char **nm): # <<<<<<<<<<<<<< + * # -- + * cdef const char *p = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.getpair", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":127 + * return (prefix, name) + * + * cdef getopt(PetscOptions opt, PetscOptType otype, prefix, name, deft): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getopt(PetscOptions __pyx_v_opt, enum __pyx_t_8petsc4py_5PETSc_PetscOptType __pyx_v_otype, PyObject *__pyx_v_prefix, PyObject *__pyx_v_name, PyObject *__pyx_v_deft) { + char const *__pyx_v_pr; + char const *__pyx_v_nm; + CYTHON_UNUSED PyObject *__pyx_v_tmp = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getopt", 0); + + /* "petsc4py/PETSc/petscopt.pxi":128 + * + * cdef getopt(PetscOptions opt, PetscOptType otype, prefix, name, deft): + * cdef const char *pr = NULL # <<<<<<<<<<<<<< + * cdef const char *nm = NULL + * tmp = getpair(prefix, name, &pr, &nm) + */ + __pyx_v_pr = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":129 + * cdef getopt(PetscOptions opt, PetscOptType otype, prefix, name, deft): + * cdef const char *pr = NULL + * cdef const char *nm = NULL # <<<<<<<<<<<<<< + * tmp = getpair(prefix, name, &pr, &nm) + * if otype == OPT_BOOL : return getopt_Bool (opt, pr, nm, deft) + */ + __pyx_v_nm = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":130 + * cdef const char *pr = NULL + * cdef const char *nm = NULL + * tmp = getpair(prefix, name, &pr, &nm) # <<<<<<<<<<<<<< + * if otype == OPT_BOOL : return getopt_Bool (opt, pr, nm, deft) + * if otype == OPT_INT : return getopt_Int (opt, pr, nm, deft) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getpair(__pyx_v_prefix, __pyx_v_name, (&__pyx_v_pr), (&__pyx_v_nm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tmp = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":131 + * cdef const char *nm = NULL + * tmp = getpair(prefix, name, &pr, &nm) + * if otype == OPT_BOOL : return getopt_Bool (opt, pr, nm, deft) # <<<<<<<<<<<<<< + * if otype == OPT_INT : return getopt_Int (opt, pr, nm, deft) + * if otype == OPT_REAL : return getopt_Real (opt, pr, nm, deft) + */ + __pyx_t_2 = ((__pyx_v_otype == __pyx_e_8petsc4py_5PETSc_OPT_BOOL) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getopt_Bool(__pyx_v_opt, __pyx_v_pr, __pyx_v_nm, __pyx_v_deft); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":132 + * tmp = getpair(prefix, name, &pr, &nm) + * if otype == OPT_BOOL : return getopt_Bool (opt, pr, nm, deft) + * if otype == OPT_INT : return getopt_Int (opt, pr, nm, deft) # <<<<<<<<<<<<<< + * if otype == OPT_REAL : return getopt_Real (opt, pr, nm, deft) + * if otype == OPT_SCALAR : return getopt_Scalar (opt, pr, nm, deft) + */ + __pyx_t_2 = ((__pyx_v_otype == __pyx_e_8petsc4py_5PETSc_OPT_INT) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getopt_Int(__pyx_v_opt, __pyx_v_pr, __pyx_v_nm, __pyx_v_deft); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":133 + * if otype == OPT_BOOL : return getopt_Bool (opt, pr, nm, deft) + * if otype == OPT_INT : return getopt_Int (opt, pr, nm, deft) + * if otype == OPT_REAL : return getopt_Real (opt, pr, nm, deft) # <<<<<<<<<<<<<< + * if otype == OPT_SCALAR : return getopt_Scalar (opt, pr, nm, deft) + * if otype == OPT_STRING : return getopt_String (opt, pr, nm, deft) + */ + __pyx_t_2 = ((__pyx_v_otype == __pyx_e_8petsc4py_5PETSc_OPT_REAL) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getopt_Real(__pyx_v_opt, __pyx_v_pr, __pyx_v_nm, __pyx_v_deft); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":134 + * if otype == OPT_INT : return getopt_Int (opt, pr, nm, deft) + * if otype == OPT_REAL : return getopt_Real (opt, pr, nm, deft) + * if otype == OPT_SCALAR : return getopt_Scalar (opt, pr, nm, deft) # <<<<<<<<<<<<<< + * if otype == OPT_STRING : return getopt_String (opt, pr, nm, deft) + * + */ + __pyx_t_2 = ((__pyx_v_otype == __pyx_e_8petsc4py_5PETSc_OPT_SCALAR) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getopt_Scalar(__pyx_v_opt, __pyx_v_pr, __pyx_v_nm, __pyx_v_deft); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":135 + * if otype == OPT_REAL : return getopt_Real (opt, pr, nm, deft) + * if otype == OPT_SCALAR : return getopt_Scalar (opt, pr, nm, deft) + * if otype == OPT_STRING : return getopt_String (opt, pr, nm, deft) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = ((__pyx_v_otype == __pyx_e_8petsc4py_5PETSc_OPT_STRING) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getopt_String(__pyx_v_opt, __pyx_v_pr, __pyx_v_nm, __pyx_v_deft); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":127 + * return (prefix, name) + * + * cdef getopt(PetscOptions opt, PetscOptType otype, prefix, name, deft): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.getopt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":140 + * # simple minded options parser + * + * cdef tokenize(options): # <<<<<<<<<<<<<< + * cdef PetscToken t = NULL + * cdef const char *s = NULL + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_tokenize(PyObject *__pyx_v_options) { + PetscToken __pyx_v_t; + char const *__pyx_v_s; + char const *__pyx_v_p; + PyObject *__pyx_v_tokens = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("tokenize", 0); + __Pyx_INCREF(__pyx_v_options); + + /* "petsc4py/PETSc/petscopt.pxi":141 + * + * cdef tokenize(options): + * cdef PetscToken t = NULL # <<<<<<<<<<<<<< + * cdef const char *s = NULL + * cdef const char *p = NULL + */ + __pyx_v_t = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":142 + * cdef tokenize(options): + * cdef PetscToken t = NULL + * cdef const char *s = NULL # <<<<<<<<<<<<<< + * cdef const char *p = NULL + * options = str2bytes(options, &s) + */ + __pyx_v_s = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":143 + * cdef PetscToken t = NULL + * cdef const char *s = NULL + * cdef const char *p = NULL # <<<<<<<<<<<<<< + * options = str2bytes(options, &s) + * cdef list tokens = [] + */ + __pyx_v_p = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":144 + * cdef const char *s = NULL + * cdef const char *p = NULL + * options = str2bytes(options, &s) # <<<<<<<<<<<<<< + * cdef list tokens = [] + * CHKERR( PetscTokenCreate(s, c' ', &t) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_options, (&__pyx_v_s)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_options, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":145 + * cdef const char *p = NULL + * options = str2bytes(options, &s) + * cdef list tokens = [] # <<<<<<<<<<<<<< + * CHKERR( PetscTokenCreate(s, c' ', &t) ) + * try: + */ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tokens = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":146 + * options = str2bytes(options, &s) + * cdef list tokens = [] + * CHKERR( PetscTokenCreate(s, c' ', &t) ) # <<<<<<<<<<<<<< + * try: + * CHKERR( PetscTokenFind(t, &p) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTokenCreate(__pyx_v_s, ' ', (&__pyx_v_t))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 146, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":147 + * cdef list tokens = [] + * CHKERR( PetscTokenCreate(s, c' ', &t) ) + * try: # <<<<<<<<<<<<<< + * CHKERR( PetscTokenFind(t, &p) ) + * while p != NULL: + */ + /*try:*/ { + + /* "petsc4py/PETSc/petscopt.pxi":148 + * CHKERR( PetscTokenCreate(s, c' ', &t) ) + * try: + * CHKERR( PetscTokenFind(t, &p) ) # <<<<<<<<<<<<<< + * while p != NULL: + * tokens.append(bytes2str(p)) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTokenFind(__pyx_v_t, ((char **)(&__pyx_v_p)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 148, __pyx_L4_error) + + /* "petsc4py/PETSc/petscopt.pxi":149 + * try: + * CHKERR( PetscTokenFind(t, &p) ) + * while p != NULL: # <<<<<<<<<<<<<< + * tokens.append(bytes2str(p)) + * CHKERR( PetscTokenFind(t, &p) ) + */ + while (1) { + __pyx_t_3 = ((__pyx_v_p != NULL) != 0); + if (!__pyx_t_3) break; + + /* "petsc4py/PETSc/petscopt.pxi":150 + * CHKERR( PetscTokenFind(t, &p) ) + * while p != NULL: + * tokens.append(bytes2str(p)) # <<<<<<<<<<<<<< + * CHKERR( PetscTokenFind(t, &p) ) + * finally: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_p); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 150, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_tokens, __pyx_t_1); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(4, 150, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":151 + * while p != NULL: + * tokens.append(bytes2str(p)) + * CHKERR( PetscTokenFind(t, &p) ) # <<<<<<<<<<<<<< + * finally: + * CHKERR( PetscTokenDestroy(&t) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTokenFind(__pyx_v_t, ((char **)(&__pyx_v_p)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 151, __pyx_L4_error) + } + } + + /* "petsc4py/PETSc/petscopt.pxi":153 + * CHKERR( PetscTokenFind(t, &p) ) + * finally: + * CHKERR( PetscTokenDestroy(&t) ) # <<<<<<<<<<<<<< + * return tokens + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTokenDestroy((&__pyx_v_t))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 153, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTokenDestroy((&__pyx_v_t))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 153, __pyx_L9_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + __pyx_L9_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/petscopt.pxi":154 + * finally: + * CHKERR( PetscTokenDestroy(&t) ) + * return tokens # <<<<<<<<<<<<<< + * + * cdef bint iskey(key): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_tokens); + __pyx_r = __pyx_v_tokens; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":140 + * # simple minded options parser + * + * cdef tokenize(options): # <<<<<<<<<<<<<< + * cdef PetscToken t = NULL + * cdef const char *s = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.tokenize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tokens); + __Pyx_XDECREF(__pyx_v_options); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":156 + * return tokens + * + * cdef bint iskey(key): # <<<<<<<<<<<<<< + * cdef const char *k = NULL + * cdef PetscBool b = PETSC_FALSE + */ + +static int __pyx_f_8petsc4py_5PETSc_iskey(PyObject *__pyx_v_key) { + char const *__pyx_v_k; + PetscBool __pyx_v_b; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("iskey", 0); + __Pyx_INCREF(__pyx_v_key); + + /* "petsc4py/PETSc/petscopt.pxi":157 + * + * cdef bint iskey(key): + * cdef const char *k = NULL # <<<<<<<<<<<<<< + * cdef PetscBool b = PETSC_FALSE + * if key: + */ + __pyx_v_k = NULL; + + /* "petsc4py/PETSc/petscopt.pxi":158 + * cdef bint iskey(key): + * cdef const char *k = NULL + * cdef PetscBool b = PETSC_FALSE # <<<<<<<<<<<<<< + * if key: + * key = str2bytes(key, &k) + */ + __pyx_v_b = PETSC_FALSE; + + /* "petsc4py/PETSc/petscopt.pxi":159 + * cdef const char *k = NULL + * cdef PetscBool b = PETSC_FALSE + * if key: # <<<<<<<<<<<<<< + * key = str2bytes(key, &k) + * CHKERR( PetscOptionsValidKey(k, &b) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_key); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 159, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":160 + * cdef PetscBool b = PETSC_FALSE + * if key: + * key = str2bytes(key, &k) # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsValidKey(k, &b) ) + * if b == PETSC_TRUE: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_key, (&__pyx_v_k)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":161 + * if key: + * key = str2bytes(key, &k) + * CHKERR( PetscOptionsValidKey(k, &b) ) # <<<<<<<<<<<<<< + * if b == PETSC_TRUE: + * return True + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsValidKey(__pyx_v_k, (&__pyx_v_b))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(4, 161, __pyx_L1_error) + + /* "petsc4py/PETSc/petscopt.pxi":162 + * key = str2bytes(key, &k) + * CHKERR( PetscOptionsValidKey(k, &b) ) + * if b == PETSC_TRUE: # <<<<<<<<<<<<<< + * return True + * return False + */ + __pyx_t_1 = ((__pyx_v_b == PETSC_TRUE) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":163 + * CHKERR( PetscOptionsValidKey(k, &b) ) + * if b == PETSC_TRUE: + * return True # <<<<<<<<<<<<<< + * return False + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":162 + * key = str2bytes(key, &k) + * CHKERR( PetscOptionsValidKey(k, &b) ) + * if b == PETSC_TRUE: # <<<<<<<<<<<<<< + * return True + * return False + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":159 + * cdef const char *k = NULL + * cdef PetscBool b = PETSC_FALSE + * if key: # <<<<<<<<<<<<<< + * key = str2bytes(key, &k) + * CHKERR( PetscOptionsValidKey(k, &b) ) + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":164 + * if b == PETSC_TRUE: + * return True + * return False # <<<<<<<<<<<<<< + * + * cdef gettok(tokens): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":156 + * return tokens + * + * cdef bint iskey(key): # <<<<<<<<<<<<<< + * cdef const char *k = NULL + * cdef PetscBool b = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_WriteUnraisable("petsc4py.PETSc.iskey", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":166 + * return False + * + * cdef gettok(tokens): # <<<<<<<<<<<<<< + * if tokens: + * return tokens.pop(0) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_gettok(PyObject *__pyx_v_tokens) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gettok", 0); + + /* "petsc4py/PETSc/petscopt.pxi":167 + * + * cdef gettok(tokens): + * if tokens: # <<<<<<<<<<<<<< + * return tokens.pop(0) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_tokens); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 167, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":168 + * cdef gettok(tokens): + * if tokens: + * return tokens.pop(0) # <<<<<<<<<<<<<< + * else: + * return None + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_PopIndex(__pyx_v_tokens, __pyx_int_0, 0, 1, Py_ssize_t, PyInt_FromSsize_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":167 + * + * cdef gettok(tokens): + * if tokens: # <<<<<<<<<<<<<< + * return tokens.pop(0) + * else: + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":170 + * return tokens.pop(0) + * else: + * return None # <<<<<<<<<<<<<< + * + * cdef getkey(key, prefix): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscopt.pxi":166 + * return False + * + * cdef gettok(tokens): # <<<<<<<<<<<<<< + * if tokens: + * return tokens.pop(0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.gettok", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":172 + * return None + * + * cdef getkey(key, prefix): # <<<<<<<<<<<<<< + * if not iskey(key): + * return None + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_getkey(PyObject *__pyx_v_key, PyObject *__pyx_v_prefix) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getkey", 0); + __Pyx_INCREF(__pyx_v_key); + + /* "petsc4py/PETSc/petscopt.pxi":173 + * + * cdef getkey(key, prefix): + * if not iskey(key): # <<<<<<<<<<<<<< + * return None + * key = key[1:] + */ + __pyx_t_1 = ((!(__pyx_f_8petsc4py_5PETSc_iskey(__pyx_v_key) != 0)) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":174 + * cdef getkey(key, prefix): + * if not iskey(key): + * return None # <<<<<<<<<<<<<< + * key = key[1:] + * if key[0] == '-': + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":173 + * + * cdef getkey(key, prefix): + * if not iskey(key): # <<<<<<<<<<<<<< + * return None + * key = key[1:] + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":175 + * if not iskey(key): + * return None + * key = key[1:] # <<<<<<<<<<<<<< + * if key[0] == '-': + * key = key[1:] + */ + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_key, 1, 0, NULL, NULL, &__pyx_slice__6, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":176 + * return None + * key = key[1:] + * if key[0] == '-': # <<<<<<<<<<<<<< + * key = key[1:] + * if not key.startswith(prefix): + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_key, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_2, __pyx_kp_s__4, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":177 + * key = key[1:] + * if key[0] == '-': + * key = key[1:] # <<<<<<<<<<<<<< + * if not key.startswith(prefix): + * return None + */ + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_key, 1, 0, NULL, NULL, &__pyx_slice__6, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":176 + * return None + * key = key[1:] + * if key[0] == '-': # <<<<<<<<<<<<<< + * key = key[1:] + * if not key.startswith(prefix): + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":178 + * if key[0] == '-': + * key = key[1:] + * if not key.startswith(prefix): # <<<<<<<<<<<<<< + * return None + * return key.replace(prefix, '', 1) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_startswith); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_prefix) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_prefix); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_5 = ((!__pyx_t_1) != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/petscopt.pxi":179 + * key = key[1:] + * if not key.startswith(prefix): + * return None # <<<<<<<<<<<<<< + * return key.replace(prefix, '', 1) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":178 + * if key[0] == '-': + * key = key[1:] + * if not key.startswith(prefix): # <<<<<<<<<<<<<< + * return None + * return key.replace(prefix, '', 1) + */ + } + + /* "petsc4py/PETSc/petscopt.pxi":180 + * if not key.startswith(prefix): + * return None + * return key.replace(prefix, '', 1) # <<<<<<<<<<<<<< + * + * cdef parseopt(options, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_key, __pyx_n_s_replace); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_prefix, __pyx_kp_s__7, __pyx_int_1}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 180, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_prefix, __pyx_kp_s__7, __pyx_int_1}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 180, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_2); + } else + #endif + { + __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_v_prefix); + __Pyx_GIVEREF(__pyx_v_prefix); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_prefix); + __Pyx_INCREF(__pyx_kp_s__7); + __Pyx_GIVEREF(__pyx_kp_s__7); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_kp_s__7); + __Pyx_INCREF(__pyx_int_1); + __Pyx_GIVEREF(__pyx_int_1); + PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_int_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":172 + * return None + * + * cdef getkey(key, prefix): # <<<<<<<<<<<<<< + * if not iskey(key): + * return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.getkey", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscopt.pxi":182 + * return key.replace(prefix, '', 1) + * + * cdef parseopt(options, prefix): # <<<<<<<<<<<<<< + * if isinstance(options, str): + * tokens = tokenize(options) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_parseopt(PyObject *__pyx_v_options, PyObject *__pyx_v_prefix) { + PyObject *__pyx_v_tokens = NULL; + PyObject *__pyx_v_opts = NULL; + PyObject *__pyx_v_first = NULL; + PyObject *__pyx_v_key = NULL; + PyObject *__pyx_v_second = NULL; + PyObject *__pyx_v_value = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("parseopt", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/petscopt.pxi":183 + * + * cdef parseopt(options, prefix): + * if isinstance(options, str): # <<<<<<<<<<<<<< + * tokens = tokenize(options) + * else: + */ + __pyx_t_1 = PyString_Check(__pyx_v_options); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscopt.pxi":184 + * cdef parseopt(options, prefix): + * if isinstance(options, str): + * tokens = tokenize(options) # <<<<<<<<<<<<<< + * else: + * tokens = list(options) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_tokenize(__pyx_v_options); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tokens = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":183 + * + * cdef parseopt(options, prefix): + * if isinstance(options, str): # <<<<<<<<<<<<<< + * tokens = tokenize(options) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscopt.pxi":186 + * tokens = tokenize(options) + * else: + * tokens = list(options) # <<<<<<<<<<<<<< + * prefix = prefix or '' + * # parser loop + */ + /*else*/ { + __pyx_t_3 = PySequence_List(__pyx_v_options); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tokens = __pyx_t_3; + __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscopt.pxi":187 + * else: + * tokens = list(options) + * prefix = prefix or '' # <<<<<<<<<<<<<< + * # parser loop + * opts = {} + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 187, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __Pyx_INCREF(__pyx_v_prefix); + __pyx_t_3 = __pyx_v_prefix; + goto __pyx_L4_bool_binop_done; + } + __Pyx_INCREF(__pyx_kp_s__7); + __pyx_t_3 = __pyx_kp_s__7; + __pyx_L4_bool_binop_done:; + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":189 + * prefix = prefix or '' + * # parser loop + * opts = {} # <<<<<<<<<<<<<< + * first = gettok(tokens) + * while first: + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_opts = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":190 + * # parser loop + * opts = {} + * first = gettok(tokens) # <<<<<<<<<<<<<< + * while first: + * key = getkey(first, prefix) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_gettok(__pyx_v_tokens); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_first = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":191 + * opts = {} + * first = gettok(tokens) + * while first: # <<<<<<<<<<<<<< + * key = getkey(first, prefix) + * if not key: + */ + while (1) { + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_first); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 191, __pyx_L1_error) + if (!__pyx_t_2) break; + + /* "petsc4py/PETSc/petscopt.pxi":192 + * first = gettok(tokens) + * while first: + * key = getkey(first, prefix) # <<<<<<<<<<<<<< + * if not key: + * first = gettok(tokens) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_getkey(__pyx_v_first, __pyx_v_prefix); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":193 + * while first: + * key = getkey(first, prefix) + * if not key: # <<<<<<<<<<<<<< + * first = gettok(tokens) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_key); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(4, 193, __pyx_L1_error) + __pyx_t_1 = ((!__pyx_t_2) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":194 + * key = getkey(first, prefix) + * if not key: + * first = gettok(tokens) # <<<<<<<<<<<<<< + * else: + * second = gettok(tokens) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_gettok(__pyx_v_tokens); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_first, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":193 + * while first: + * key = getkey(first, prefix) + * if not key: # <<<<<<<<<<<<<< + * first = gettok(tokens) + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/petscopt.pxi":196 + * first = gettok(tokens) + * else: + * second = gettok(tokens) # <<<<<<<<<<<<<< + * if getkey(second, prefix): + * value = None + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_gettok(__pyx_v_tokens); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_second, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscopt.pxi":197 + * else: + * second = gettok(tokens) + * if getkey(second, prefix): # <<<<<<<<<<<<<< + * value = None + * first = second + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_getkey(__pyx_v_second, __pyx_v_prefix); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(4, 197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscopt.pxi":198 + * second = gettok(tokens) + * if getkey(second, prefix): + * value = None # <<<<<<<<<<<<<< + * first = second + * else: + */ + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_value, Py_None); + + /* "petsc4py/PETSc/petscopt.pxi":199 + * if getkey(second, prefix): + * value = None + * first = second # <<<<<<<<<<<<<< + * else: + * value = second + */ + __Pyx_INCREF(__pyx_v_second); + __Pyx_DECREF_SET(__pyx_v_first, __pyx_v_second); + + /* "petsc4py/PETSc/petscopt.pxi":197 + * else: + * second = gettok(tokens) + * if getkey(second, prefix): # <<<<<<<<<<<<<< + * value = None + * first = second + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/petscopt.pxi":201 + * first = second + * else: + * value = second # <<<<<<<<<<<<<< + * first = gettok(tokens) + * opts[key] = value + */ + /*else*/ { + __Pyx_INCREF(__pyx_v_second); + __Pyx_XDECREF_SET(__pyx_v_value, __pyx_v_second); + + /* "petsc4py/PETSc/petscopt.pxi":202 + * else: + * value = second + * first = gettok(tokens) # <<<<<<<<<<<<<< + * opts[key] = value + * # we are done + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_gettok(__pyx_v_tokens); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_first, __pyx_t_3); + __pyx_t_3 = 0; + } + __pyx_L9:; + + /* "petsc4py/PETSc/petscopt.pxi":203 + * value = second + * first = gettok(tokens) + * opts[key] = value # <<<<<<<<<<<<<< + * # we are done + * return opts + */ + if (unlikely(PyDict_SetItem(__pyx_v_opts, __pyx_v_key, __pyx_v_value) < 0)) __PYX_ERR(4, 203, __pyx_L1_error) + } + __pyx_L8:; + } + + /* "petsc4py/PETSc/petscopt.pxi":205 + * opts[key] = value + * # we are done + * return opts # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_opts); + __pyx_r = __pyx_v_opts; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscopt.pxi":182 + * return key.replace(prefix, '', 1) + * + * cdef parseopt(options, prefix): # <<<<<<<<<<<<<< + * if isinstance(options, str): + * tokens = tokenize(options) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.parseopt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tokens); + __Pyx_XDECREF(__pyx_v_opts); + __Pyx_XDECREF(__pyx_v_first); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_second); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":44 + * ctypedef MPI_Op* PyMPIOpGet(object) except NULL + * + * cdef inline MPI_Comm mpi4py_Comm_Get(object comm) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPICommGet *commget = \ + */ + +static CYTHON_INLINE MPI_Comm __pyx_f_8petsc4py_5PETSc_mpi4py_Comm_Get(PyObject *__pyx_v_comm) { + PyObject *__pyx_v_MPI = NULL; + __pyx_t_8petsc4py_5PETSc_PyMPICommGet *__pyx_v_commget; + MPI_Comm *__pyx_v_ptr; + MPI_Comm __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + void *__pyx_t_3; + int __pyx_t_4; + MPI_Comm *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mpi4py_Comm_Get", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":45 + * + * cdef inline MPI_Comm mpi4py_Comm_Get(object comm) except *: + * from mpi4py import MPI # <<<<<<<<<<<<<< + * cdef PyMPICommGet *commget = \ + * Cython_ImportFunction( + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_MPI); + __Pyx_GIVEREF(__pyx_n_s_MPI); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_MPI = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":47 + * from mpi4py import MPI + * cdef PyMPICommGet *commget = \ + * Cython_ImportFunction( # <<<<<<<<<<<<<< + * MPI, b"PyMPIComm_Get", b"MPI_Comm *(PyObject *)") + * if commget == NULL: return MPI_COMM_NULL + */ + __pyx_t_3 = Cython_ImportFunction(__pyx_v_MPI, ((char *)"PyMPIComm_Get"), ((char *)"MPI_Comm *(PyObject *)")); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(15, 47, __pyx_L1_error) + __pyx_v_commget = ((__pyx_t_8petsc4py_5PETSc_PyMPICommGet *)__pyx_t_3); + + /* "petsc4py/PETSc/petscmpi.pxi":49 + * Cython_ImportFunction( + * MPI, b"PyMPIComm_Get", b"MPI_Comm *(PyObject *)") + * if commget == NULL: return MPI_COMM_NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm *ptr = commget(comm) + * if ptr == NULL: return MPI_COMM_NULL + */ + __pyx_t_4 = ((__pyx_v_commget == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_COMM_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":50 + * MPI, b"PyMPIComm_Get", b"MPI_Comm *(PyObject *)") + * if commget == NULL: return MPI_COMM_NULL + * cdef MPI_Comm *ptr = commget(comm) # <<<<<<<<<<<<<< + * if ptr == NULL: return MPI_COMM_NULL + * return ptr[0] + */ + __pyx_t_5 = __pyx_v_commget(__pyx_v_comm); if (unlikely(__pyx_t_5 == ((MPI_Comm *)NULL))) __PYX_ERR(15, 50, __pyx_L1_error) + __pyx_v_ptr = __pyx_t_5; + + /* "petsc4py/PETSc/petscmpi.pxi":51 + * if commget == NULL: return MPI_COMM_NULL + * cdef MPI_Comm *ptr = commget(comm) + * if ptr == NULL: return MPI_COMM_NULL # <<<<<<<<<<<<<< + * return ptr[0] + * + */ + __pyx_t_4 = ((__pyx_v_ptr == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_COMM_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":52 + * cdef MPI_Comm *ptr = commget(comm) + * if ptr == NULL: return MPI_COMM_NULL + * return ptr[0] # <<<<<<<<<<<<<< + * + * cdef inline object mpi4py_Comm_New(MPI_Comm comm): + */ + __pyx_r = (__pyx_v_ptr[0]); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":44 + * ctypedef MPI_Op* PyMPIOpGet(object) except NULL + * + * cdef inline MPI_Comm mpi4py_Comm_Get(object comm) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPICommGet *commget = \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mpi4py_Comm_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_MPI); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":54 + * return ptr[0] + * + * cdef inline object mpi4py_Comm_New(MPI_Comm comm): # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPICommNew *commnew = \ + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_mpi4py_Comm_New(MPI_Comm __pyx_v_comm) { + PyObject *__pyx_v_MPI = NULL; + __pyx_t_8petsc4py_5PETSc_PyMPICommNew *__pyx_v_commnew; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + void *__pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mpi4py_Comm_New", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":55 + * + * cdef inline object mpi4py_Comm_New(MPI_Comm comm): + * from mpi4py import MPI # <<<<<<<<<<<<<< + * cdef PyMPICommNew *commnew = \ + * Cython_ImportFunction( + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_MPI); + __Pyx_GIVEREF(__pyx_n_s_MPI); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_MPI = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":57 + * from mpi4py import MPI + * cdef PyMPICommNew *commnew = \ + * Cython_ImportFunction( # <<<<<<<<<<<<<< + * MPI, b"PyMPIComm_New", b"PyObject *(MPI_Comm)") + * if commnew == NULL: return None + */ + __pyx_t_3 = Cython_ImportFunction(__pyx_v_MPI, ((char *)"PyMPIComm_New"), ((char *)"PyObject *(MPI_Comm)")); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(15, 57, __pyx_L1_error) + __pyx_v_commnew = ((__pyx_t_8petsc4py_5PETSc_PyMPICommNew *)__pyx_t_3); + + /* "petsc4py/PETSc/petscmpi.pxi":59 + * Cython_ImportFunction( + * MPI, b"PyMPIComm_New", b"PyObject *(MPI_Comm)") + * if commnew == NULL: return None # <<<<<<<<<<<<<< + * return commnew(comm) + * + */ + __pyx_t_4 = ((__pyx_v_commnew == NULL) != 0); + if (__pyx_t_4) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":60 + * MPI, b"PyMPIComm_New", b"PyObject *(MPI_Comm)") + * if commnew == NULL: return None + * return commnew(comm) # <<<<<<<<<<<<<< + * + * cdef inline MPI_Datatype mpi4py_Datatype_Get(object datatype) except *: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_v_commnew(__pyx_v_comm); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":54 + * return ptr[0] + * + * cdef inline object mpi4py_Comm_New(MPI_Comm comm): # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPICommNew *commnew = \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mpi4py_Comm_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_MPI); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":62 + * return commnew(comm) + * + * cdef inline MPI_Datatype mpi4py_Datatype_Get(object datatype) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPIDatatypeGet *datatypeget = \ + */ + +static CYTHON_INLINE MPI_Datatype __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(PyObject *__pyx_v_datatype) { + PyObject *__pyx_v_MPI = NULL; + __pyx_t_8petsc4py_5PETSc_PyMPIDatatypeGet *__pyx_v_datatypeget; + MPI_Datatype *__pyx_v_ptr; + MPI_Datatype __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + void *__pyx_t_3; + int __pyx_t_4; + MPI_Datatype *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mpi4py_Datatype_Get", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":63 + * + * cdef inline MPI_Datatype mpi4py_Datatype_Get(object datatype) except *: + * from mpi4py import MPI # <<<<<<<<<<<<<< + * cdef PyMPIDatatypeGet *datatypeget = \ + * Cython_ImportFunction( + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_MPI); + __Pyx_GIVEREF(__pyx_n_s_MPI); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_MPI = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":65 + * from mpi4py import MPI + * cdef PyMPIDatatypeGet *datatypeget = \ + * Cython_ImportFunction( # <<<<<<<<<<<<<< + * MPI, b"PyMPIDatatype_Get", b"MPI_Datatype *(PyObject *)") + * if datatypeget == NULL: return MPI_DATATYPE_NULL + */ + __pyx_t_3 = Cython_ImportFunction(__pyx_v_MPI, ((char *)"PyMPIDatatype_Get"), ((char *)"MPI_Datatype *(PyObject *)")); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(15, 65, __pyx_L1_error) + __pyx_v_datatypeget = ((__pyx_t_8petsc4py_5PETSc_PyMPIDatatypeGet *)__pyx_t_3); + + /* "petsc4py/PETSc/petscmpi.pxi":67 + * Cython_ImportFunction( + * MPI, b"PyMPIDatatype_Get", b"MPI_Datatype *(PyObject *)") + * if datatypeget == NULL: return MPI_DATATYPE_NULL # <<<<<<<<<<<<<< + * cdef MPI_Datatype *ptr = datatypeget(datatype) + * if ptr == NULL: return MPI_DATATYPE_NULL + */ + __pyx_t_4 = ((__pyx_v_datatypeget == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_DATATYPE_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":68 + * MPI, b"PyMPIDatatype_Get", b"MPI_Datatype *(PyObject *)") + * if datatypeget == NULL: return MPI_DATATYPE_NULL + * cdef MPI_Datatype *ptr = datatypeget(datatype) # <<<<<<<<<<<<<< + * if ptr == NULL: return MPI_DATATYPE_NULL + * return ptr[0] + */ + __pyx_t_5 = __pyx_v_datatypeget(__pyx_v_datatype); if (unlikely(__pyx_t_5 == ((MPI_Datatype *)NULL))) __PYX_ERR(15, 68, __pyx_L1_error) + __pyx_v_ptr = __pyx_t_5; + + /* "petsc4py/PETSc/petscmpi.pxi":69 + * if datatypeget == NULL: return MPI_DATATYPE_NULL + * cdef MPI_Datatype *ptr = datatypeget(datatype) + * if ptr == NULL: return MPI_DATATYPE_NULL # <<<<<<<<<<<<<< + * return ptr[0] + * + */ + __pyx_t_4 = ((__pyx_v_ptr == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_DATATYPE_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":70 + * cdef MPI_Datatype *ptr = datatypeget(datatype) + * if ptr == NULL: return MPI_DATATYPE_NULL + * return ptr[0] # <<<<<<<<<<<<<< + * + * cdef inline MPI_Op mpi4py_Op_Get(object op) except *: + */ + __pyx_r = (__pyx_v_ptr[0]); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":62 + * return commnew(comm) + * + * cdef inline MPI_Datatype mpi4py_Datatype_Get(object datatype) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPIDatatypeGet *datatypeget = \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mpi4py_Datatype_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_MPI); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":72 + * return ptr[0] + * + * cdef inline MPI_Op mpi4py_Op_Get(object op) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPIOpGet *opget = \ + */ + +static CYTHON_INLINE MPI_Op __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(PyObject *__pyx_v_op) { + PyObject *__pyx_v_MPI = NULL; + __pyx_t_8petsc4py_5PETSc_PyMPIOpGet *__pyx_v_opget; + MPI_Op *__pyx_v_ptr; + MPI_Op __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + void *__pyx_t_3; + int __pyx_t_4; + MPI_Op *__pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mpi4py_Op_Get", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":73 + * + * cdef inline MPI_Op mpi4py_Op_Get(object op) except *: + * from mpi4py import MPI # <<<<<<<<<<<<<< + * cdef PyMPIOpGet *opget = \ + * Cython_ImportFunction( + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_MPI); + __Pyx_GIVEREF(__pyx_n_s_MPI); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_MPI); + __pyx_t_2 = __Pyx_Import(__pyx_n_s_mpi4py, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_MPI); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_MPI = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":75 + * from mpi4py import MPI + * cdef PyMPIOpGet *opget = \ + * Cython_ImportFunction( # <<<<<<<<<<<<<< + * MPI, b"PyMPIOp_Get", b"MPI_Op *(PyObject *)") + * if opget == NULL: return MPI_OP_NULL + */ + __pyx_t_3 = Cython_ImportFunction(__pyx_v_MPI, ((char *)"PyMPIOp_Get"), ((char *)"MPI_Op *(PyObject *)")); if (unlikely(__pyx_t_3 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(15, 75, __pyx_L1_error) + __pyx_v_opget = ((__pyx_t_8petsc4py_5PETSc_PyMPIOpGet *)__pyx_t_3); + + /* "petsc4py/PETSc/petscmpi.pxi":77 + * Cython_ImportFunction( + * MPI, b"PyMPIOp_Get", b"MPI_Op *(PyObject *)") + * if opget == NULL: return MPI_OP_NULL # <<<<<<<<<<<<<< + * cdef MPI_Op *ptr = opget(op) + * if ptr == NULL: return MPI_OP_NULL + */ + __pyx_t_4 = ((__pyx_v_opget == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_OP_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":78 + * MPI, b"PyMPIOp_Get", b"MPI_Op *(PyObject *)") + * if opget == NULL: return MPI_OP_NULL + * cdef MPI_Op *ptr = opget(op) # <<<<<<<<<<<<<< + * if ptr == NULL: return MPI_OP_NULL + * return ptr[0] + */ + __pyx_t_5 = __pyx_v_opget(__pyx_v_op); if (unlikely(__pyx_t_5 == ((MPI_Op *)NULL))) __PYX_ERR(15, 78, __pyx_L1_error) + __pyx_v_ptr = __pyx_t_5; + + /* "petsc4py/PETSc/petscmpi.pxi":79 + * if opget == NULL: return MPI_OP_NULL + * cdef MPI_Op *ptr = opget(op) + * if ptr == NULL: return MPI_OP_NULL # <<<<<<<<<<<<<< + * return ptr[0] + * + */ + __pyx_t_4 = ((__pyx_v_ptr == NULL) != 0); + if (__pyx_t_4) { + __pyx_r = MPI_OP_NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":80 + * cdef MPI_Op *ptr = opget(op) + * if ptr == NULL: return MPI_OP_NULL + * return ptr[0] # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = (__pyx_v_ptr[0]); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":72 + * return ptr[0] + * + * cdef inline MPI_Op mpi4py_Op_Get(object op) except *: # <<<<<<<<<<<<<< + * from mpi4py import MPI + * cdef PyMPIOpGet *opget = \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mpi4py_Op_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_MPI); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":84 + * # -------------------------------------------------------------------- + * + * cdef inline PetscErrorCode PetscCommDEALLOC(MPI_Comm* comm): # <<<<<<<<<<<<<< + * if comm == NULL: return PETSC_SUCCESS + * cdef MPI_Comm tmp = comm[0] + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscCommDEALLOC(MPI_Comm *__pyx_v_comm) { + MPI_Comm __pyx_v_tmp; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("PetscCommDEALLOC", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":85 + * + * cdef inline PetscErrorCode PetscCommDEALLOC(MPI_Comm* comm): + * if comm == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * cdef MPI_Comm tmp = comm[0] + * if tmp == MPI_COMM_NULL: return PETSC_SUCCESS + */ + __pyx_t_1 = ((__pyx_v_comm == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":86 + * cdef inline PetscErrorCode PetscCommDEALLOC(MPI_Comm* comm): + * if comm == NULL: return PETSC_SUCCESS + * cdef MPI_Comm tmp = comm[0] # <<<<<<<<<<<<<< + * if tmp == MPI_COMM_NULL: return PETSC_SUCCESS + * comm[0] = MPI_COMM_NULL + */ + __pyx_v_tmp = (__pyx_v_comm[0]); + + /* "petsc4py/PETSc/petscmpi.pxi":87 + * if comm == NULL: return PETSC_SUCCESS + * cdef MPI_Comm tmp = comm[0] + * if tmp == MPI_COMM_NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * comm[0] = MPI_COMM_NULL + * if not (PetscInitializeCalled): return PETSC_SUCCESS + */ + __pyx_t_1 = ((__pyx_v_tmp == MPI_COMM_NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":88 + * cdef MPI_Comm tmp = comm[0] + * if tmp == MPI_COMM_NULL: return PETSC_SUCCESS + * comm[0] = MPI_COMM_NULL # <<<<<<<<<<<<<< + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS + */ + (__pyx_v_comm[0]) = MPI_COMM_NULL; + + /* "petsc4py/PETSc/petscmpi.pxi":89 + * if tmp == MPI_COMM_NULL: return PETSC_SUCCESS + * comm[0] = MPI_COMM_NULL + * if not (PetscInitializeCalled): return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return PETSC_SUCCESS + * return PetscCommDestroy(&tmp) + */ + __pyx_t_1 = ((!(((int)PetscInitializeCalled) != 0)) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":90 + * comm[0] = MPI_COMM_NULL + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS # <<<<<<<<<<<<<< + * return PetscCommDestroy(&tmp) + * + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmpi.pxi":91 + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS + * return PetscCommDestroy(&tmp) # <<<<<<<<<<<<<< + * + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: + */ + __pyx_r = PetscCommDestroy((&__pyx_v_tmp)); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":84 + * # -------------------------------------------------------------------- + * + * cdef inline PetscErrorCode PetscCommDEALLOC(MPI_Comm* comm): # <<<<<<<<<<<<<< + * if comm == NULL: return PETSC_SUCCESS + * cdef MPI_Comm tmp = comm[0] + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":93 + * return PetscCommDestroy(&tmp) + * + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: # <<<<<<<<<<<<<< + * cdef MPI_Comm retv = MPI_COMM_NULL + * if comm is None: + */ + +static CYTHON_INLINE MPI_Comm __pyx_f_8petsc4py_5PETSc_def_Comm(PyObject *__pyx_v_comm, MPI_Comm __pyx_v_defv) { + MPI_Comm __pyx_v_retv; + MPI_Comm __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MPI_Comm __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("def_Comm", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":94 + * + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: + * cdef MPI_Comm retv = MPI_COMM_NULL # <<<<<<<<<<<<<< + * if comm is None: + * retv = defv + */ + __pyx_v_retv = MPI_COMM_NULL; + + /* "petsc4py/PETSc/petscmpi.pxi":95 + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: + * cdef MPI_Comm retv = MPI_COMM_NULL + * if comm is None: # <<<<<<<<<<<<<< + * retv = defv + * elif isinstance(comm, Comm): + */ + __pyx_t_1 = (__pyx_v_comm == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmpi.pxi":96 + * cdef MPI_Comm retv = MPI_COMM_NULL + * if comm is None: + * retv = defv # <<<<<<<<<<<<<< + * elif isinstance(comm, Comm): + * retv = (comm).comm + */ + __pyx_v_retv = __pyx_v_defv; + + /* "petsc4py/PETSc/petscmpi.pxi":95 + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: + * cdef MPI_Comm retv = MPI_COMM_NULL + * if comm is None: # <<<<<<<<<<<<<< + * retv = defv + * elif isinstance(comm, Comm): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmpi.pxi":97 + * if comm is None: + * retv = defv + * elif isinstance(comm, Comm): # <<<<<<<<<<<<<< + * retv = (comm).comm + * elif type(comm).__module__ == 'mpi4py.MPI': + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_comm, __pyx_ptype_8petsc4py_5PETSc_Comm); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmpi.pxi":98 + * retv = defv + * elif isinstance(comm, Comm): + * retv = (comm).comm # <<<<<<<<<<<<<< + * elif type(comm).__module__ == 'mpi4py.MPI': + * retv = mpi4py_Comm_Get(comm) + */ + __pyx_t_3 = ((struct PyPetscCommObject *)__pyx_v_comm)->comm; + __pyx_v_retv = __pyx_t_3; + + /* "petsc4py/PETSc/petscmpi.pxi":97 + * if comm is None: + * retv = defv + * elif isinstance(comm, Comm): # <<<<<<<<<<<<<< + * retv = (comm).comm + * elif type(comm).__module__ == 'mpi4py.MPI': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmpi.pxi":99 + * elif isinstance(comm, Comm): + * retv = (comm).comm + * elif type(comm).__module__ == 'mpi4py.MPI': # <<<<<<<<<<<<<< + * retv = mpi4py_Comm_Get(comm) + * else: + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_comm)), __pyx_n_s_module); if (unlikely(!__pyx_t_4)) __PYX_ERR(15, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_4, __pyx_kp_s_mpi4py_MPI, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(15, 99, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmpi.pxi":100 + * retv = (comm).comm + * elif type(comm).__module__ == 'mpi4py.MPI': + * retv = mpi4py_Comm_Get(comm) # <<<<<<<<<<<<<< + * else: + * retv = (comm).comm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_mpi4py_Comm_Get(__pyx_v_comm); if (unlikely(PyErr_Occurred())) __PYX_ERR(15, 100, __pyx_L1_error) + __pyx_v_retv = __pyx_t_3; + + /* "petsc4py/PETSc/petscmpi.pxi":99 + * elif isinstance(comm, Comm): + * retv = (comm).comm + * elif type(comm).__module__ == 'mpi4py.MPI': # <<<<<<<<<<<<<< + * retv = mpi4py_Comm_Get(comm) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmpi.pxi":102 + * retv = mpi4py_Comm_Get(comm) + * else: + * retv = (comm).comm # <<<<<<<<<<<<<< + * return retv + * + */ + /*else*/ { + if (!(likely(__Pyx_TypeTest(__pyx_v_comm, __pyx_ptype_8petsc4py_5PETSc_Comm)))) __PYX_ERR(15, 102, __pyx_L1_error) + __pyx_t_3 = ((struct PyPetscCommObject *)__pyx_v_comm)->comm; + __pyx_v_retv = __pyx_t_3; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmpi.pxi":103 + * else: + * retv = (comm).comm + * return retv # <<<<<<<<<<<<<< + * + * cdef inline Comm new_Comm(MPI_Comm comm): + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":93 + * return PetscCommDestroy(&tmp) + * + * cdef inline MPI_Comm def_Comm(object comm, MPI_Comm defv) except *: # <<<<<<<<<<<<<< + * cdef MPI_Comm retv = MPI_COMM_NULL + * if comm is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.def_Comm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":105 + * return retv + * + * cdef inline Comm new_Comm(MPI_Comm comm): # <<<<<<<<<<<<<< + * cdef Comm ob = Comm() + * ob.comm = comm + */ + +static CYTHON_INLINE struct PyPetscCommObject *__pyx_f_8petsc4py_5PETSc_new_Comm(MPI_Comm __pyx_v_comm) { + struct PyPetscCommObject *__pyx_v_ob = 0; + struct PyPetscCommObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("new_Comm", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":106 + * + * cdef inline Comm new_Comm(MPI_Comm comm): + * cdef Comm ob = Comm() # <<<<<<<<<<<<<< + * ob.comm = comm + * return ob + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(15, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscCommObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":107 + * cdef inline Comm new_Comm(MPI_Comm comm): + * cdef Comm ob = Comm() + * ob.comm = comm # <<<<<<<<<<<<<< + * return ob + * + */ + __pyx_v_ob->comm = __pyx_v_comm; + + /* "petsc4py/PETSc/petscmpi.pxi":108 + * cdef Comm ob = Comm() + * ob.comm = comm + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":105 + * return retv + * + * cdef inline Comm new_Comm(MPI_Comm comm): # <<<<<<<<<<<<<< + * cdef Comm ob = Comm() + * ob.comm = comm + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.new_Comm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":112 + * # -------------------------------------------------------------------- + * + * cdef inline int comm_size(MPI_Comm comm) except ? -1: # <<<<<<<<<<<<<< + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int size = 0 + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_comm_size(MPI_Comm __pyx_v_comm) { + int __pyx_v_size; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("comm_size", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":113 + * + * cdef inline int comm_size(MPI_Comm comm) except ? -1: + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef int size = 0 + * CHKERR( MPI_Comm_size(comm, &size) ) + */ + __pyx_t_1 = ((__pyx_v_comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(15, 113, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmpi.pxi":114 + * cdef inline int comm_size(MPI_Comm comm) except ? -1: + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int size = 0 # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_size(comm, &size) ) + * return size + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":115 + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int size = 0 + * CHKERR( MPI_Comm_size(comm, &size) ) # <<<<<<<<<<<<<< + * return size + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size)))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(15, 115, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmpi.pxi":116 + * cdef int size = 0 + * CHKERR( MPI_Comm_size(comm, &size) ) + * return size # <<<<<<<<<<<<<< + * + * cdef inline int comm_rank(MPI_Comm comm) except ? -1: + */ + __pyx_r = __pyx_v_size; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":112 + * # -------------------------------------------------------------------- + * + * cdef inline int comm_size(MPI_Comm comm) except ? -1: # <<<<<<<<<<<<<< + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int size = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.comm_size", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmpi.pxi":118 + * return size + * + * cdef inline int comm_rank(MPI_Comm comm) except ? -1: # <<<<<<<<<<<<<< + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int rank = 0 + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_comm_rank(MPI_Comm __pyx_v_comm) { + int __pyx_v_rank; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("comm_rank", 0); + + /* "petsc4py/PETSc/petscmpi.pxi":119 + * + * cdef inline int comm_rank(MPI_Comm comm) except ? -1: + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef int rank = 0 + * CHKERR( MPI_Comm_rank(comm, &rank) ) + */ + __pyx_t_1 = ((__pyx_v_comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(15, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(15, 119, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmpi.pxi":120 + * cdef inline int comm_rank(MPI_Comm comm) except ? -1: + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int rank = 0 # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_rank(comm, &rank) ) + * return rank + */ + __pyx_v_rank = 0; + + /* "petsc4py/PETSc/petscmpi.pxi":121 + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int rank = 0 + * CHKERR( MPI_Comm_rank(comm, &rank) ) # <<<<<<<<<<<<<< + * return rank + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_rank(__pyx_v_comm, (&__pyx_v_rank)))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(15, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmpi.pxi":122 + * cdef int rank = 0 + * CHKERR( MPI_Comm_rank(comm, &rank) ) + * return rank # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_v_rank; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmpi.pxi":118 + * return size + * + * cdef inline int comm_rank(MPI_Comm comm) except ? -1: # <<<<<<<<<<<<<< + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") + * cdef int rank = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.comm_rank", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsys.pxi":57 + * + * + * cdef inline PetscErrorCode Sys_Sizes( # <<<<<<<<<<<<<< + * object size, object bsize, + * PetscInt *_b, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Sys_Sizes(PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PetscInt *__pyx_v__b, PetscInt *__pyx_v__n, PetscInt *__pyx_v__N) { + PetscInt __pyx_v_bs; + PetscInt __pyx_v_b; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PyObject *__pyx_v_on = 0; + PyObject *__pyx_v_oN = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Sys_Sizes", 0); + + /* "petsc4py/PETSc/petscsys.pxi":64 + * ) except PETSC_ERR_PYTHON: + * # get block size + * cdef PetscInt bs=PETSC_DECIDE, b=PETSC_DECIDE # <<<<<<<<<<<<<< + * if bsize is not None: bs = b = asInt(bsize) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_v_bs = PETSC_DECIDE; + __pyx_v_b = PETSC_DECIDE; + + /* "petsc4py/PETSc/petscsys.pxi":65 + * # get block size + * cdef PetscInt bs=PETSC_DECIDE, b=PETSC_DECIDE + * if bsize is not None: bs = b = asInt(bsize) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * # unpack and get local and global sizes + */ + __pyx_t_1 = (__pyx_v_bsize != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(16, 65, __pyx_L1_error) + __pyx_v_bs = __pyx_t_3; + __pyx_v_b = __pyx_t_3; + } + + /* "petsc4py/PETSc/petscsys.pxi":66 + * cdef PetscInt bs=PETSC_DECIDE, b=PETSC_DECIDE + * if bsize is not None: bs = b = asInt(bsize) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * # unpack and get local and global sizes + * cdef PetscInt n=PETSC_DECIDE, N=PETSC_DECIDE + */ + __pyx_t_2 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_2) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/petscsys.pxi":68 + * if bs == PETSC_DECIDE: bs = 1 + * # unpack and get local and global sizes + * cdef PetscInt n=PETSC_DECIDE, N=PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef object on, oN + * try: + */ + __pyx_v_n = PETSC_DECIDE; + __pyx_v_N = PETSC_DECIDE; + + /* "petsc4py/PETSc/petscsys.pxi":70 + * cdef PetscInt n=PETSC_DECIDE, N=PETSC_DECIDE + * cdef object on, oN + * try: # <<<<<<<<<<<<<< + * on, oN = size + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/petscsys.pxi":71 + * cdef object on, oN + * try: + * on, oN = size # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * on = None; oN = size + */ + if ((likely(PyTuple_CheckExact(__pyx_v_size))) || (PyList_CheckExact(__pyx_v_size))) { + PyObject* sequence = __pyx_v_size; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(16, 71, __pyx_L5_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 71, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 71, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_v_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 71, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(16, 71, __pyx_L5_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L12_unpacking_done; + __pyx_L11_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(16, 71, __pyx_L5_error) + __pyx_L12_unpacking_done:; + } + __pyx_v_on = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_oN = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":70 + * cdef PetscInt n=PETSC_DECIDE, N=PETSC_DECIDE + * cdef object on, oN + * try: # <<<<<<<<<<<<<< + * on, oN = size + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_try_end; + __pyx_L5_error:; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":72 + * try: + * on, oN = size + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * on = None; oN = size + * if on is not None: n = asInt(on) + */ + __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_11) { + __Pyx_AddTraceback("petsc4py.PETSc.Sys_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(16, 72, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_9); + + /* "petsc4py/PETSc/petscsys.pxi":73 + * on, oN = size + * except (TypeError, ValueError): + * on = None; oN = size # <<<<<<<<<<<<<< + * if on is not None: n = asInt(on) + * if oN is not None: N = asInt(oN) + */ + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_on, Py_None); + __Pyx_INCREF(__pyx_v_size); + __Pyx_XDECREF_SET(__pyx_v_oN, __pyx_v_size); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_exception_handled; + } + goto __pyx_L7_except_error; + __pyx_L7_except_error:; + + /* "petsc4py/PETSc/petscsys.pxi":70 + * cdef PetscInt n=PETSC_DECIDE, N=PETSC_DECIDE + * cdef object on, oN + * try: # <<<<<<<<<<<<<< + * on, oN = size + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L6_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + __pyx_L10_try_end:; + } + + /* "petsc4py/PETSc/petscsys.pxi":74 + * except (TypeError, ValueError): + * on = None; oN = size + * if on is not None: n = asInt(on) # <<<<<<<<<<<<<< + * if oN is not None: N = asInt(oN) + * # check block, local, and and global sizes + */ + __pyx_t_2 = (__pyx_v_on != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_on); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(16, 74, __pyx_L1_error) + __pyx_v_n = __pyx_t_3; + } + + /* "petsc4py/PETSc/petscsys.pxi":75 + * on = None; oN = size + * if on is not None: n = asInt(on) + * if oN is not None: N = asInt(oN) # <<<<<<<<<<<<<< + * # check block, local, and and global sizes + * if (bs < 1): raise ValueError( + */ + __pyx_t_1 = (__pyx_v_oN != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_oN); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(16, 75, __pyx_L1_error) + __pyx_v_N = __pyx_t_3; + } + + /* "petsc4py/PETSc/petscsys.pxi":77 + * if oN is not None: N = asInt(oN) + * # check block, local, and and global sizes + * if (bs < 1): raise ValueError( # <<<<<<<<<<<<<< + * "block size %d must be positive" % toInt(bs)) + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( + */ + __pyx_t_2 = ((__pyx_v_bs < 1) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscsys.pxi":78 + * # check block, local, and and global sizes + * if (bs < 1): raise ValueError( + * "block size %d must be positive" % toInt(bs)) # <<<<<<<<<<<<<< + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( + * "local and global sizes cannot be both 'DECIDE'") + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_block_size_d_must_be_positive, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":77 + * if oN is not None: N = asInt(oN) + * # check block, local, and and global sizes + * if (bs < 1): raise ValueError( # <<<<<<<<<<<<<< + * "block size %d must be positive" % toInt(bs)) + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( + */ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(16, 77, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscsys.pxi":79 + * if (bs < 1): raise ValueError( + * "block size %d must be positive" % toInt(bs)) + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( # <<<<<<<<<<<<<< + * "local and global sizes cannot be both 'DECIDE'") + * if (n > 0) and (n % bs): raise ValueError( + */ + __pyx_t_1 = ((__pyx_v_n == PETSC_DECIDE) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L19_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_N == PETSC_DECIDE) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L19_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(16, 79, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscsys.pxi":81 + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( + * "local and global sizes cannot be both 'DECIDE'") + * if (n > 0) and (n % bs): raise ValueError( # <<<<<<<<<<<<<< + * "local size %d not divisible by block size %d" % + * (toInt(n), toInt(bs)) ) + */ + __pyx_t_1 = ((__pyx_v_n > 0) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L22_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_n % __pyx_v_bs) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L22_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscsys.pxi":83 + * if (n > 0) and (n % bs): raise ValueError( + * "local size %d not divisible by block size %d" % + * (toInt(n), toInt(bs)) ) # <<<<<<<<<<<<<< + * if (N > 0) and (N % bs): raise ValueError( + * "global size %d not divisible by block size %d" % + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_9 = 0; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":82 + * "local and global sizes cannot be both 'DECIDE'") + * if (n > 0) and (n % bs): raise ValueError( + * "local size %d not divisible by block size %d" % # <<<<<<<<<<<<<< + * (toInt(n), toInt(bs)) ) + * if (N > 0) and (N % bs): raise ValueError( + */ + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_local_size_d_not_divisible_by_bl, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":81 + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( + * "local and global sizes cannot be both 'DECIDE'") + * if (n > 0) and (n % bs): raise ValueError( # <<<<<<<<<<<<<< + * "local size %d not divisible by block size %d" % + * (toInt(n), toInt(bs)) ) + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(16, 81, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscsys.pxi":84 + * "local size %d not divisible by block size %d" % + * (toInt(n), toInt(bs)) ) + * if (N > 0) and (N % bs): raise ValueError( # <<<<<<<<<<<<<< + * "global size %d not divisible by block size %d" % + * (toInt(N), toInt(bs)) ) + */ + __pyx_t_1 = ((__pyx_v_N > 0) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L25_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_N % __pyx_v_bs) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L25_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscsys.pxi":86 + * if (N > 0) and (N % bs): raise ValueError( + * "global size %d not divisible by block size %d" % + * (toInt(N), toInt(bs)) ) # <<<<<<<<<<<<<< + * # return result to the caller + * if _b != NULL: _b[0] = b + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_8)) __PYX_ERR(16, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); + __pyx_t_8 = 0; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":85 + * (toInt(n), toInt(bs)) ) + * if (N > 0) and (N % bs): raise ValueError( + * "global size %d not divisible by block size %d" % # <<<<<<<<<<<<<< + * (toInt(N), toInt(bs)) ) + * # return result to the caller + */ + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_global_size_d_not_divisible_by_b, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(16, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscsys.pxi":84 + * "local size %d not divisible by block size %d" % + * (toInt(n), toInt(bs)) ) + * if (N > 0) and (N % bs): raise ValueError( # <<<<<<<<<<<<<< + * "global size %d not divisible by block size %d" % + * (toInt(N), toInt(bs)) ) + */ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(16, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(16, 84, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscsys.pxi":88 + * (toInt(N), toInt(bs)) ) + * # return result to the caller + * if _b != NULL: _b[0] = b # <<<<<<<<<<<<<< + * if _n != NULL: _n[0] = n + * if _N != NULL: _N[0] = N + */ + __pyx_t_2 = ((__pyx_v__b != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v__b[0]) = __pyx_v_b; + } + + /* "petsc4py/PETSc/petscsys.pxi":89 + * # return result to the caller + * if _b != NULL: _b[0] = b + * if _n != NULL: _n[0] = n # <<<<<<<<<<<<<< + * if _N != NULL: _N[0] = N + * return PETSC_SUCCESS + */ + __pyx_t_2 = ((__pyx_v__n != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v__n[0]) = __pyx_v_n; + } + + /* "petsc4py/PETSc/petscsys.pxi":90 + * if _b != NULL: _b[0] = b + * if _n != NULL: _n[0] = n + * if _N != NULL: _N[0] = N # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_2 = ((__pyx_v__N != NULL) != 0); + if (__pyx_t_2) { + (__pyx_v__N[0]) = __pyx_v_N; + } + + /* "petsc4py/PETSc/petscsys.pxi":91 + * if _n != NULL: _n[0] = n + * if _N != NULL: _N[0] = N + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode Sys_Layout( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsys.pxi":57 + * + * + * cdef inline PetscErrorCode Sys_Sizes( # <<<<<<<<<<<<<< + * object size, object bsize, + * PetscInt *_b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.Sys_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_on); + __Pyx_XDECREF(__pyx_v_oN); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsys.pxi":93 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Sys_Layout( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * PetscInt bs, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Sys_Layout(MPI_Comm __pyx_v_comm, PetscInt __pyx_v_bs, PetscInt *__pyx_v__n, PetscInt *__pyx_v__N) { + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Sys_Layout", 0); + + /* "petsc4py/PETSc/petscsys.pxi":99 + * PetscInt *_N, + * ) except PETSC_ERR_PYTHON: + * cdef PetscInt n = _n[0] # <<<<<<<<<<<<<< + * cdef PetscInt N = _N[0] + * if bs < 0: bs = 1 + */ + __pyx_v_n = (__pyx_v__n[0]); + + /* "petsc4py/PETSc/petscsys.pxi":100 + * ) except PETSC_ERR_PYTHON: + * cdef PetscInt n = _n[0] + * cdef PetscInt N = _N[0] # <<<<<<<<<<<<<< + * if bs < 0: bs = 1 + * if n > 0: n = n // bs + */ + __pyx_v_N = (__pyx_v__N[0]); + + /* "petsc4py/PETSc/petscsys.pxi":101 + * cdef PetscInt n = _n[0] + * cdef PetscInt N = _N[0] + * if bs < 0: bs = 1 # <<<<<<<<<<<<<< + * if n > 0: n = n // bs + * if N > 0: N = N // bs + */ + __pyx_t_1 = ((__pyx_v_bs < 0) != 0); + if (__pyx_t_1) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/petscsys.pxi":102 + * cdef PetscInt N = _N[0] + * if bs < 0: bs = 1 + * if n > 0: n = n // bs # <<<<<<<<<<<<<< + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(comm, &n, &N) ) + */ + __pyx_t_1 = ((__pyx_v_n > 0) != 0); + if (__pyx_t_1) { + __pyx_v_n = (__pyx_v_n / __pyx_v_bs); + } + + /* "petsc4py/PETSc/petscsys.pxi":103 + * if bs < 0: bs = 1 + * if n > 0: n = n // bs + * if N > 0: N = N // bs # <<<<<<<<<<<<<< + * CHKERR( PetscSplitOwnership(comm, &n, &N) ) + * _n[0] = n * bs + */ + __pyx_t_1 = ((__pyx_v_N > 0) != 0); + if (__pyx_t_1) { + __pyx_v_N = (__pyx_v_N / __pyx_v_bs); + } + + /* "petsc4py/PETSc/petscsys.pxi":104 + * if n > 0: n = n // bs + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(comm, &n, &N) ) # <<<<<<<<<<<<<< + * _n[0] = n * bs + * _N[0] = N * bs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSplitOwnership(__pyx_v_comm, (&__pyx_v_n), (&__pyx_v_N))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(16, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/petscsys.pxi":105 + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(comm, &n, &N) ) + * _n[0] = n * bs # <<<<<<<<<<<<<< + * _N[0] = N * bs + * return PETSC_SUCCESS + */ + (__pyx_v__n[0]) = (__pyx_v_n * __pyx_v_bs); + + /* "petsc4py/PETSc/petscsys.pxi":106 + * CHKERR( PetscSplitOwnership(comm, &n, &N) ) + * _n[0] = n * bs + * _N[0] = N * bs # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + */ + (__pyx_v__N[0]) = (__pyx_v_N * __pyx_v_bs); + + /* "petsc4py/PETSc/petscsys.pxi":107 + * _n[0] = n * bs + * _N[0] = N * bs + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsys.pxi":93 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Sys_Layout( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * PetscInt bs, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys_Layout", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petsclog.pxi":60 + * + * + * cdef inline int event_args2objs(object args, PetscObject o[4]) except -1: # <<<<<<<<<<<<<< + * o[0] = o[1] = o[2] = o[3] = NULL + * cdef Py_ssize_t i=0, n = len(args) + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_event_args2objs(PyObject *__pyx_v_args, PetscObject *__pyx_v_o) { + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_n; + struct PyPetscObjectObject *__pyx_v_tmp = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("event_args2objs", 0); + + /* "petsc4py/PETSc/petsclog.pxi":61 + * + * cdef inline int event_args2objs(object args, PetscObject o[4]) except -1: + * o[0] = o[1] = o[2] = o[3] = NULL # <<<<<<<<<<<<<< + * cdef Py_ssize_t i=0, n = len(args) + * cdef Object tmp = None + */ + (__pyx_v_o[0]) = NULL; + (__pyx_v_o[1]) = NULL; + (__pyx_v_o[2]) = NULL; + (__pyx_v_o[3]) = NULL; + + /* "petsc4py/PETSc/petsclog.pxi":62 + * cdef inline int event_args2objs(object args, PetscObject o[4]) except -1: + * o[0] = o[1] = o[2] = o[3] = NULL + * cdef Py_ssize_t i=0, n = len(args) # <<<<<<<<<<<<<< + * cdef Object tmp = None + * if n > 4: n = 4 + */ + __pyx_v_i = 0; + __pyx_t_1 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(17, 62, __pyx_L1_error) + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/petsclog.pxi":63 + * o[0] = o[1] = o[2] = o[3] = NULL + * cdef Py_ssize_t i=0, n = len(args) + * cdef Object tmp = None # <<<<<<<<<<<<<< + * if n > 4: n = 4 + * for 0 <= i < n: + */ + __Pyx_INCREF(Py_None); + __pyx_v_tmp = ((struct PyPetscObjectObject *)Py_None); + + /* "petsc4py/PETSc/petsclog.pxi":64 + * cdef Py_ssize_t i=0, n = len(args) + * cdef Object tmp = None + * if n > 4: n = 4 # <<<<<<<<<<<<<< + * for 0 <= i < n: + * tmp = args[i] + */ + __pyx_t_2 = ((__pyx_v_n > 4) != 0); + if (__pyx_t_2) { + __pyx_v_n = 4; + } + + /* "petsc4py/PETSc/petsclog.pxi":65 + * cdef Object tmp = None + * if n > 4: n = 4 + * for 0 <= i < n: # <<<<<<<<<<<<<< + * tmp = args[i] + * if tmp is not None: + */ + __pyx_t_1 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + /* "petsc4py/PETSc/petsclog.pxi":66 + * if n > 4: n = 4 + * for 0 <= i < n: + * tmp = args[i] # <<<<<<<<<<<<<< + * if tmp is not None: + * o[i] = tmp.obj[0] + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(17, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(17, 66, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_tmp, ((struct PyPetscObjectObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petsclog.pxi":67 + * for 0 <= i < n: + * tmp = args[i] + * if tmp is not None: # <<<<<<<<<<<<<< + * o[i] = tmp.obj[0] + * return 0 + */ + __pyx_t_2 = (((PyObject *)__pyx_v_tmp) != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petsclog.pxi":68 + * tmp = args[i] + * if tmp is not None: + * o[i] = tmp.obj[0] # <<<<<<<<<<<<<< + * return 0 + */ + (__pyx_v_o[__pyx_v_i]) = (__pyx_v_tmp->obj[0]); + + /* "petsc4py/PETSc/petsclog.pxi":67 + * for 0 <= i < n: + * tmp = args[i] + * if tmp is not None: # <<<<<<<<<<<<<< + * o[i] = tmp.obj[0] + * return 0 + */ + } + } + + /* "petsc4py/PETSc/petsclog.pxi":69 + * if tmp is not None: + * o[i] = tmp.obj[0] + * return 0 # <<<<<<<<<<<<<< + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsclog.pxi":60 + * + * + * cdef inline int event_args2objs(object args, PetscObject o[4]) except -1: # <<<<<<<<<<<<<< + * o[0] = o[1] = o[2] = o[3] = NULL + * cdef Py_ssize_t i=0, n = len(args) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.event_args2objs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tmp); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":50 + * # -------------------------------------------------------------------- + * + * cdef inline PetscErrorCode PetscINCREF(PetscObject *obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscINCREF(PetscObject *__pyx_v_obj) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/petscobj.pxi":51 + * + * cdef inline PetscErrorCode PetscINCREF(PetscObject *obj) nogil: + * if obj == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if obj[0] == NULL: return PETSC_SUCCESS + * return PetscObjectReference(obj[0]) + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":52 + * cdef inline PetscErrorCode PetscINCREF(PetscObject *obj) nogil: + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * return PetscObjectReference(obj[0]) + * + */ + __pyx_t_1 = (((__pyx_v_obj[0]) == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":53 + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + * return PetscObjectReference(obj[0]) # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode PetscCLEAR(PetscObject* obj) nogil: + */ + __pyx_r = PetscObjectReference((__pyx_v_obj[0])); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":50 + * # -------------------------------------------------------------------- + * + * cdef inline PetscErrorCode PetscINCREF(PetscObject *obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":55 + * return PetscObjectReference(obj[0]) + * + * cdef inline PetscErrorCode PetscCLEAR(PetscObject* obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscCLEAR(PetscObject *__pyx_v_obj) { + PetscObject __pyx_v_tmp; + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/petscobj.pxi":56 + * + * cdef inline PetscErrorCode PetscCLEAR(PetscObject* obj) nogil: + * if obj == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if obj[0] == NULL: return PETSC_SUCCESS + * cdef PetscObject tmp + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":57 + * cdef inline PetscErrorCode PetscCLEAR(PetscObject* obj) nogil: + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL + */ + __pyx_t_1 = (((__pyx_v_obj[0]) == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":59 + * if obj[0] == NULL: return PETSC_SUCCESS + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL # <<<<<<<<<<<<<< + * return PetscObjectDestroy(&tmp) + * + */ + __pyx_v_tmp = (__pyx_v_obj[0]); + (__pyx_v_obj[0]) = NULL; + + /* "petsc4py/PETSc/petscobj.pxi":60 + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL + * return PetscObjectDestroy(&tmp) # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode PetscDEALLOC(PetscObject* obj) nogil: + */ + __pyx_r = PetscObjectDestroy((&__pyx_v_tmp)); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":55 + * return PetscObjectReference(obj[0]) + * + * cdef inline PetscErrorCode PetscCLEAR(PetscObject* obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":62 + * return PetscObjectDestroy(&tmp) + * + * cdef inline PetscErrorCode PetscDEALLOC(PetscObject* obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscDEALLOC(PetscObject *__pyx_v_obj) { + PetscObject __pyx_v_tmp; + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/petscobj.pxi":63 + * + * cdef inline PetscErrorCode PetscDEALLOC(PetscObject* obj) nogil: + * if obj == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if obj[0] == NULL: return PETSC_SUCCESS + * cdef PetscObject tmp + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":64 + * cdef inline PetscErrorCode PetscDEALLOC(PetscObject* obj) nogil: + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL + */ + __pyx_t_1 = (((__pyx_v_obj[0]) == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":66 + * if obj[0] == NULL: return PETSC_SUCCESS + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL # <<<<<<<<<<<<<< + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS + */ + __pyx_v_tmp = (__pyx_v_obj[0]); + (__pyx_v_obj[0]) = NULL; + + /* "petsc4py/PETSc/petscobj.pxi":67 + * cdef PetscObject tmp + * tmp = obj[0]; obj[0] = NULL + * if not (PetscInitializeCalled): return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return PETSC_SUCCESS + * return PetscObjectDelayedDestroy(&tmp) + */ + __pyx_t_1 = ((!(((int)PetscInitializeCalled) != 0)) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":68 + * tmp = obj[0]; obj[0] = NULL + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS # <<<<<<<<<<<<<< + * return PetscObjectDelayedDestroy(&tmp) + * + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":69 + * if not (PetscInitializeCalled): return PETSC_SUCCESS + * if (PetscFinalizeCalled): return PETSC_SUCCESS + * return PetscObjectDelayedDestroy(&tmp) # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode PetscINCSTATE(PetscObject *obj) nogil: + */ + __pyx_r = PetscObjectDelayedDestroy((&__pyx_v_tmp)); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":62 + * return PetscObjectDestroy(&tmp) + * + * cdef inline PetscErrorCode PetscDEALLOC(PetscObject* obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":71 + * return PetscObjectDelayedDestroy(&tmp) + * + * cdef inline PetscErrorCode PetscINCSTATE(PetscObject *obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscINCSTATE(PetscObject *__pyx_v_obj) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/petscobj.pxi":72 + * + * cdef inline PetscErrorCode PetscINCSTATE(PetscObject *obj) nogil: + * if obj == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if obj[0] == NULL: return PETSC_SUCCESS + * return PetscObjectStateIncrease(obj[0]) + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":73 + * cdef inline PetscErrorCode PetscINCSTATE(PetscObject *obj) nogil: + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * return PetscObjectStateIncrease(obj[0]) + * + */ + __pyx_t_1 = (((__pyx_v_obj[0]) == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":74 + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + * return PetscObjectStateIncrease(obj[0]) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = PetscObjectStateIncrease((__pyx_v_obj[0])); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":71 + * return PetscObjectDelayedDestroy(&tmp) + * + * cdef inline PetscErrorCode PetscINCSTATE(PetscObject *obj) nogil: # <<<<<<<<<<<<<< + * if obj == NULL: return PETSC_SUCCESS + * if obj[0] == NULL: return PETSC_SUCCESS + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":94 + * PetscErrorCode (*python_destroy)(void*) + * + * cdef inline void Py_DecRef(PyObject *ob) with gil: # <<<<<<<<<<<<<< + * _Py_DecRef(ob) + * + */ + +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_Py_DecRef(PyObject *__pyx_v_ob) { + __Pyx_RefNannyDeclarations + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("Py_DecRef", 0); + + /* "petsc4py/PETSc/petscobj.pxi":95 + * + * cdef inline void Py_DecRef(PyObject *ob) with gil: + * _Py_DecRef(ob) # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: + */ + Py_DECREF(__pyx_v_ob); + + /* "petsc4py/PETSc/petscobj.pxi":94 + * PetscErrorCode (*python_destroy)(void*) + * + * cdef inline void Py_DecRef(PyObject *ob) with gil: # <<<<<<<<<<<<<< + * _Py_DecRef(ob) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif +} + +/* "petsc4py/PETSc/petscobj.pxi":97 + * _Py_DecRef(ob) + * + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: # <<<<<<<<<<<<<< + * if ptr != NULL and Py_IsInitialized(): + * Py_DecRef(ptr) + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscDelPyDict(void *__pyx_v_ptr) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + + /* "petsc4py/PETSc/petscobj.pxi":98 + * + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: + * if ptr != NULL and Py_IsInitialized(): # <<<<<<<<<<<<<< + * Py_DecRef(ptr) + * return PETSC_SUCCESS + */ + __pyx_t_2 = ((__pyx_v_ptr != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (Py_IsInitialized() != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscobj.pxi":99 + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: + * if ptr != NULL and Py_IsInitialized(): + * Py_DecRef(ptr) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_f_8petsc4py_5PETSc_Py_DecRef(((PyObject *)__pyx_v_ptr)); + + /* "petsc4py/PETSc/petscobj.pxi":98 + * + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: + * if ptr != NULL and Py_IsInitialized(): # <<<<<<<<<<<<<< + * Py_DecRef(ptr) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscobj.pxi":100 + * if ptr != NULL and Py_IsInitialized(): + * Py_DecRef(ptr) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef object PetscGetPyDict(PetscObject obj, bint create): + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":97 + * _Py_DecRef(ob) + * + * cdef PetscErrorCode PetscDelPyDict(void* ptr) nogil: # <<<<<<<<<<<<<< + * if ptr != NULL and Py_IsInitialized(): + * Py_DecRef(ptr) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":102 + * return PETSC_SUCCESS + * + * cdef object PetscGetPyDict(PetscObject obj, bint create): # <<<<<<<<<<<<<< + * if obj.python_context != NULL: + * return obj.python_context + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscGetPyDict(PetscObject __pyx_v_obj, int __pyx_v_create) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PetscGetPyDict", 0); + + /* "petsc4py/PETSc/petscobj.pxi":103 + * + * cdef object PetscGetPyDict(PetscObject obj, bint create): + * if obj.python_context != NULL: # <<<<<<<<<<<<<< + * return obj.python_context + * if create: + */ + __pyx_t_1 = ((__pyx_v_obj->python_context != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscobj.pxi":104 + * cdef object PetscGetPyDict(PetscObject obj, bint create): + * if obj.python_context != NULL: + * return obj.python_context # <<<<<<<<<<<<<< + * if create: + * obj.python_destroy = PetscDelPyDict + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_obj->python_context)); + __pyx_r = ((PyObject *)__pyx_v_obj->python_context); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":103 + * + * cdef object PetscGetPyDict(PetscObject obj, bint create): + * if obj.python_context != NULL: # <<<<<<<<<<<<<< + * return obj.python_context + * if create: + */ + } + + /* "petsc4py/PETSc/petscobj.pxi":105 + * if obj.python_context != NULL: + * return obj.python_context + * if create: # <<<<<<<<<<<<<< + * obj.python_destroy = PetscDelPyDict + * obj.python_context = PyDict_New() + */ + __pyx_t_1 = (__pyx_v_create != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscobj.pxi":106 + * return obj.python_context + * if create: + * obj.python_destroy = PetscDelPyDict # <<<<<<<<<<<<<< + * obj.python_context = PyDict_New() + * return obj.python_context + */ + __pyx_v_obj->python_destroy = __pyx_f_8petsc4py_5PETSc_PetscDelPyDict; + + /* "petsc4py/PETSc/petscobj.pxi":107 + * if create: + * obj.python_destroy = PetscDelPyDict + * obj.python_context = PyDict_New() # <<<<<<<<<<<<<< + * return obj.python_context + * return None + */ + __pyx_t_2 = PyDict_New(); if (unlikely(__pyx_t_2 == ((PyObject *)NULL))) __PYX_ERR(18, 107, __pyx_L1_error) + __pyx_v_obj->python_context = ((void *)__pyx_t_2); + + /* "petsc4py/PETSc/petscobj.pxi":108 + * obj.python_destroy = PetscDelPyDict + * obj.python_context = PyDict_New() + * return obj.python_context # <<<<<<<<<<<<<< + * return None + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_obj->python_context)); + __pyx_r = ((PyObject *)__pyx_v_obj->python_context); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":105 + * if obj.python_context != NULL: + * return obj.python_context + * if create: # <<<<<<<<<<<<<< + * obj.python_destroy = PetscDelPyDict + * obj.python_context = PyDict_New() + */ + } + + /* "petsc4py/PETSc/petscobj.pxi":109 + * obj.python_context = PyDict_New() + * return obj.python_context + * return None # <<<<<<<<<<<<<< + * + * cdef object PetscGetPyObj(PetscObject o, char name[]): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":102 + * return PETSC_SUCCESS + * + * cdef object PetscGetPyDict(PetscObject obj, bint create): # <<<<<<<<<<<<<< + * if obj.python_context != NULL: + * return obj.python_context + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PetscGetPyDict", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":111 + * return None + * + * cdef object PetscGetPyObj(PetscObject o, char name[]): # <<<<<<<<<<<<<< + * cdef object dct = PetscGetPyDict(o, False) + * if dct is None: return None + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscGetPyObj(PetscObject __pyx_v_o, char *__pyx_v_name) { + PyObject *__pyx_v_dct = 0; + PyObject *__pyx_v_key = 0; + PyObject *__pyx_v_d; + PyObject *__pyx_v_k; + PyObject *__pyx_v_v; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PetscGetPyObj", 0); + + /* "petsc4py/PETSc/petscobj.pxi":112 + * + * cdef object PetscGetPyObj(PetscObject o, char name[]): + * cdef object dct = PetscGetPyDict(o, False) # <<<<<<<<<<<<<< + * if dct is None: return None + * cdef object key = bytes2str(name) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PetscGetPyDict(__pyx_v_o, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":113 + * cdef object PetscGetPyObj(PetscObject o, char name[]): + * cdef object dct = PetscGetPyDict(o, False) + * if dct is None: return None # <<<<<<<<<<<<<< + * cdef object key = bytes2str(name) + * cdef PyObject *d = dct + */ + __pyx_t_2 = (__pyx_v_dct == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":114 + * cdef object dct = PetscGetPyDict(o, False) + * if dct is None: return None + * cdef object key = bytes2str(name) # <<<<<<<<<<<<<< + * cdef PyObject *d = dct + * cdef PyObject *k = key + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(18, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_key = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":115 + * if dct is None: return None + * cdef object key = bytes2str(name) + * cdef PyObject *d = dct # <<<<<<<<<<<<<< + * cdef PyObject *k = key + * cdef PyObject *v = NULL + */ + __pyx_v_d = ((PyObject *)__pyx_v_dct); + + /* "petsc4py/PETSc/petscobj.pxi":116 + * cdef object key = bytes2str(name) + * cdef PyObject *d = dct + * cdef PyObject *k = key # <<<<<<<<<<<<<< + * cdef PyObject *v = NULL + * v = PyDict_GetItem(d, k) + */ + __pyx_v_k = ((PyObject *)__pyx_v_key); + + /* "petsc4py/PETSc/petscobj.pxi":117 + * cdef PyObject *d = dct + * cdef PyObject *k = key + * cdef PyObject *v = NULL # <<<<<<<<<<<<<< + * v = PyDict_GetItem(d, k) + * if v != NULL: return v + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscobj.pxi":118 + * cdef PyObject *k = key + * cdef PyObject *v = NULL + * v = PyDict_GetItem(d, k) # <<<<<<<<<<<<<< + * if v != NULL: return v + * return None + */ + __pyx_t_4 = PyDict_GetItem(__pyx_v_d, __pyx_v_k); if (unlikely(PyErr_Occurred())) __PYX_ERR(18, 118, __pyx_L1_error) + __pyx_v_v = __pyx_t_4; + + /* "petsc4py/PETSc/petscobj.pxi":119 + * cdef PyObject *v = NULL + * v = PyDict_GetItem(d, k) + * if v != NULL: return v # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_3 = ((__pyx_v_v != NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_v)); + __pyx_r = ((PyObject *)__pyx_v_v); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":120 + * v = PyDict_GetItem(d, k) + * if v != NULL: return v + * return None # <<<<<<<<<<<<<< + * + * cdef object PetscSetPyObj(PetscObject o, char name[], object p): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":111 + * return None + * + * cdef object PetscGetPyObj(PetscObject o, char name[]): # <<<<<<<<<<<<<< + * cdef object dct = PetscGetPyDict(o, False) + * if dct is None: return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PetscGetPyObj", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dct); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":122 + * return None + * + * cdef object PetscSetPyObj(PetscObject o, char name[], object p): # <<<<<<<<<<<<<< + * cdef object dct + * if p is not None: + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PetscSetPyObj(PetscObject __pyx_v_o, char *__pyx_v_name, PyObject *__pyx_v_p) { + PyObject *__pyx_v_dct = 0; + PyObject *__pyx_v_key = 0; + PyObject *__pyx_v_d; + PyObject *__pyx_v_k; + PyObject *__pyx_v_v; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PetscSetPyObj", 0); + + /* "petsc4py/PETSc/petscobj.pxi":124 + * cdef object PetscSetPyObj(PetscObject o, char name[], object p): + * cdef object dct + * if p is not None: # <<<<<<<<<<<<<< + * dct = PetscGetPyDict(o, True) + * else: + */ + __pyx_t_1 = (__pyx_v_p != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscobj.pxi":125 + * cdef object dct + * if p is not None: + * dct = PetscGetPyDict(o, True) # <<<<<<<<<<<<<< + * else: + * dct = PetscGetPyDict(o, False) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_PetscGetPyDict(__pyx_v_o, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_dct = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":124 + * cdef object PetscSetPyObj(PetscObject o, char name[], object p): + * cdef object dct + * if p is not None: # <<<<<<<<<<<<<< + * dct = PetscGetPyDict(o, True) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscobj.pxi":127 + * dct = PetscGetPyDict(o, True) + * else: + * dct = PetscGetPyDict(o, False) # <<<<<<<<<<<<<< + * if dct is None: return None + * cdef str key = bytes2str(name) + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_PetscGetPyDict(__pyx_v_o, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_dct = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":128 + * else: + * dct = PetscGetPyDict(o, False) + * if dct is None: return None # <<<<<<<<<<<<<< + * cdef str key = bytes2str(name) + * cdef PyObject *d = dct + */ + __pyx_t_2 = (__pyx_v_dct == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscobj.pxi":129 + * dct = PetscGetPyDict(o, False) + * if dct is None: return None + * cdef str key = bytes2str(name) # <<<<<<<<<<<<<< + * cdef PyObject *d = dct + * cdef PyObject *k = key + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(PyString_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(18, 129, __pyx_L1_error) + __pyx_v_key = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":130 + * if dct is None: return None + * cdef str key = bytes2str(name) + * cdef PyObject *d = dct # <<<<<<<<<<<<<< + * cdef PyObject *k = key + * cdef PyObject *v = p + */ + __pyx_v_d = ((PyObject *)__pyx_v_dct); + + /* "petsc4py/PETSc/petscobj.pxi":131 + * cdef str key = bytes2str(name) + * cdef PyObject *d = dct + * cdef PyObject *k = key # <<<<<<<<<<<<<< + * cdef PyObject *v = p + * PyDict_SetItem(d, k, v) + */ + __pyx_v_k = ((PyObject *)__pyx_v_key); + + /* "petsc4py/PETSc/petscobj.pxi":132 + * cdef PyObject *d = dct + * cdef PyObject *k = key + * cdef PyObject *v = p # <<<<<<<<<<<<<< + * PyDict_SetItem(d, k, v) + * if v == None: + */ + __pyx_v_v = ((PyObject *)__pyx_v_p); + + /* "petsc4py/PETSc/petscobj.pxi":133 + * cdef PyObject *k = key + * cdef PyObject *v = p + * PyDict_SetItem(d, k, v) # <<<<<<<<<<<<<< + * if v == None: + * PyDict_DelItem(d, k) + */ + __pyx_t_4 = PyDict_SetItem(__pyx_v_d, __pyx_v_k, __pyx_v_v); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(18, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":134 + * cdef PyObject *v = p + * PyDict_SetItem(d, k, v) + * if v == None: # <<<<<<<<<<<<<< + * PyDict_DelItem(d, k) + * return None + */ + __pyx_t_1 = ((__pyx_v_v == ((PyObject *)Py_None)) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscobj.pxi":135 + * PyDict_SetItem(d, k, v) + * if v == None: + * PyDict_DelItem(d, k) # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_4 = PyDict_DelItem(__pyx_v_d, __pyx_v_k); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(18, 135, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":134 + * cdef PyObject *v = p + * PyDict_SetItem(d, k, v) + * if v == None: # <<<<<<<<<<<<<< + * PyDict_DelItem(d, k) + * return None + */ + } + + /* "petsc4py/PETSc/petscobj.pxi":136 + * if v == None: + * PyDict_DelItem(d, k) + * return None # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":122 + * return None + * + * cdef object PetscSetPyObj(PetscObject o, char name[], object p): # <<<<<<<<<<<<<< + * cdef object dct + * if p is not None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PetscSetPyObj", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dct); + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":143 + * object PyLong_FromVoidPtr(void*) + * + * cdef inline Py_intptr_t Object_toFortran(PetscObject o) nogil: # <<<<<<<<<<<<<< + * return o + * + */ + +static CYTHON_INLINE Py_intptr_t __pyx_f_8petsc4py_5PETSc_Object_toFortran(PetscObject __pyx_v_o) { + Py_intptr_t __pyx_r; + + /* "petsc4py/PETSc/petscobj.pxi":144 + * + * cdef inline Py_intptr_t Object_toFortran(PetscObject o) nogil: + * return o # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = ((Py_intptr_t)__pyx_v_o); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":143 + * object PyLong_FromVoidPtr(void*) + * + * cdef inline Py_intptr_t Object_toFortran(PetscObject o) nogil: # <<<<<<<<<<<<<< + * return o + * + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":148 + * # -------------------------------------------------------------------- + * + * cdef inline type subtype_DM(PetscDM dm): # <<<<<<<<<<<<<< + * cdef PetscObject obj = dm + * if obj == NULL: return DM + */ + +static CYTHON_INLINE PyTypeObject *__pyx_f_8petsc4py_5PETSc_subtype_DM(DM __pyx_v_dm) { + PetscObject __pyx_v_obj; + PetscBool __pyx_v_match; + PyTypeObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("subtype_DM", 0); + + /* "petsc4py/PETSc/petscobj.pxi":149 + * + * cdef inline type subtype_DM(PetscDM dm): + * cdef PetscObject obj = dm # <<<<<<<<<<<<<< + * if obj == NULL: return DM + * # --- + */ + __pyx_v_obj = ((PetscObject)__pyx_v_dm); + + /* "petsc4py/PETSc/petscobj.pxi":150 + * cdef inline type subtype_DM(PetscDM dm): + * cdef PetscObject obj = dm + * if obj == NULL: return DM # <<<<<<<<<<<<<< + * # --- + * cdef PetscBool match = PETSC_FALSE + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DM; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":152 + * if obj == NULL: return DM + * # --- + * cdef PetscBool match = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"da", &match) ) + * if match == PETSC_TRUE: return DMDA + */ + __pyx_v_match = PETSC_FALSE; + + /* "petsc4py/PETSc/petscobj.pxi":153 + * # --- + * cdef PetscBool match = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(obj, b"da", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMDA + * CHKERR( PetscObjectTypeCompare(obj, b"plex", &match) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"da"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":154 + * cdef PetscBool match = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(obj, b"da", &match) ) + * if match == PETSC_TRUE: return DMDA # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"plex", &match) ) + * if match == PETSC_TRUE: return DMPlex + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMDA; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":155 + * CHKERR( PetscObjectTypeCompare(obj, b"da", &match) ) + * if match == PETSC_TRUE: return DMDA + * CHKERR( PetscObjectTypeCompare(obj, b"plex", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMPlex + * CHKERR( PetscObjectTypeCompare(obj, b"composite", &match) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"plex"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 155, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":156 + * if match == PETSC_TRUE: return DMDA + * CHKERR( PetscObjectTypeCompare(obj, b"plex", &match) ) + * if match == PETSC_TRUE: return DMPlex # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"composite", &match) ) + * if match == PETSC_TRUE: return DMComposite + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMPlex; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":157 + * CHKERR( PetscObjectTypeCompare(obj, b"plex", &match) ) + * if match == PETSC_TRUE: return DMPlex + * CHKERR( PetscObjectTypeCompare(obj, b"composite", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMComposite + * CHKERR( PetscObjectTypeCompare(obj, b"shell", &match) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"composite"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":158 + * if match == PETSC_TRUE: return DMPlex + * CHKERR( PetscObjectTypeCompare(obj, b"composite", &match) ) + * if match == PETSC_TRUE: return DMComposite # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"shell", &match) ) + * if match == PETSC_TRUE: return DMShell + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMComposite)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMComposite; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":159 + * CHKERR( PetscObjectTypeCompare(obj, b"composite", &match) ) + * if match == PETSC_TRUE: return DMComposite + * CHKERR( PetscObjectTypeCompare(obj, b"shell", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMShell + * CHKERR( PetscObjectTypeCompare(obj, b"stag", &match) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"shell"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":160 + * if match == PETSC_TRUE: return DMComposite + * CHKERR( PetscObjectTypeCompare(obj, b"shell", &match) ) + * if match == PETSC_TRUE: return DMShell # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"stag", &match) ) + * if match == PETSC_TRUE: return DMStag + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMShell)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMShell; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":161 + * CHKERR( PetscObjectTypeCompare(obj, b"shell", &match) ) + * if match == PETSC_TRUE: return DMShell + * CHKERR( PetscObjectTypeCompare(obj, b"stag", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMStag + * CHKERR( PetscObjectTypeCompare(obj, b"swarm", &match) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"stag"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 161, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":162 + * if match == PETSC_TRUE: return DMShell + * CHKERR( PetscObjectTypeCompare(obj, b"stag", &match) ) + * if match == PETSC_TRUE: return DMStag # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(obj, b"swarm", &match) ) + * if match == PETSC_TRUE: return DMSwarm + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMStag)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMStag; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":163 + * CHKERR( PetscObjectTypeCompare(obj, b"stag", &match) ) + * if match == PETSC_TRUE: return DMStag + * CHKERR( PetscObjectTypeCompare(obj, b"swarm", &match) ) # <<<<<<<<<<<<<< + * if match == PETSC_TRUE: return DMSwarm + * # --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(__pyx_v_obj, ((char *)"swarm"), (&__pyx_v_match))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":164 + * if match == PETSC_TRUE: return DMStag + * CHKERR( PetscObjectTypeCompare(obj, b"swarm", &match) ) + * if match == PETSC_TRUE: return DMSwarm # <<<<<<<<<<<<<< + * # --- + * return DM + */ + __pyx_t_1 = ((__pyx_v_match == PETSC_TRUE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMSwarm)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DMSwarm; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":166 + * if match == PETSC_TRUE: return DMSwarm + * # --- + * return DM # <<<<<<<<<<<<<< + * + * cdef inline type subtype_Object(PetscObject obj): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); + __pyx_r = __pyx_ptype_8petsc4py_5PETSc_DM; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":148 + * # -------------------------------------------------------------------- + * + * cdef inline type subtype_DM(PetscDM dm): # <<<<<<<<<<<<<< + * cdef PetscObject obj = dm + * if obj == NULL: return DM + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.subtype_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscobj.pxi":168 + * return DM + * + * cdef inline type subtype_Object(PetscObject obj): # <<<<<<<<<<<<<< + * cdef type klass = Object + * if obj == NULL: return klass + */ + +static CYTHON_INLINE PyTypeObject *__pyx_f_8petsc4py_5PETSc_subtype_Object(PetscObject __pyx_v_obj) { + PyTypeObject *__pyx_v_klass = 0; + PetscClassId __pyx_v_classid; + PyTypeObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("subtype_Object", 0); + + /* "petsc4py/PETSc/petscobj.pxi":169 + * + * cdef inline type subtype_Object(PetscObject obj): + * cdef type klass = Object # <<<<<<<<<<<<<< + * if obj == NULL: return klass + * cdef PetscClassId classid = 0 + */ + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Object)); + __pyx_v_klass = __pyx_ptype_8petsc4py_5PETSc_Object; + + /* "petsc4py/PETSc/petscobj.pxi":170 + * cdef inline type subtype_Object(PetscObject obj): + * cdef type klass = Object + * if obj == NULL: return klass # <<<<<<<<<<<<<< + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj,&classid) ) + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_klass)); + __pyx_r = __pyx_v_klass; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscobj.pxi":171 + * cdef type klass = Object + * if obj == NULL: return klass + * cdef PetscClassId classid = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetClassId(obj,&classid) ) + * if classid == PETSC_DM_CLASSID: + */ + __pyx_v_classid = 0; + + /* "petsc4py/PETSc/petscobj.pxi":172 + * if obj == NULL: return klass + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj,&classid) ) # <<<<<<<<<<<<<< + * if classid == PETSC_DM_CLASSID: + * klass = subtype_DM(obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetClassId(__pyx_v_obj, (&__pyx_v_classid))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(18, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/petscobj.pxi":173 + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj,&classid) ) + * if classid == PETSC_DM_CLASSID: # <<<<<<<<<<<<<< + * klass = subtype_DM(obj) + * else: + */ + __pyx_t_1 = ((__pyx_v_classid == DM_CLASSID) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscobj.pxi":174 + * CHKERR( PetscObjectGetClassId(obj,&classid) ) + * if classid == PETSC_DM_CLASSID: + * klass = subtype_DM(obj) # <<<<<<<<<<<<<< + * else: + * klass = PyPetscType_Lookup(classid) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(((DM)__pyx_v_obj))); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_klass, ((PyTypeObject*)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscobj.pxi":173 + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj,&classid) ) + * if classid == PETSC_DM_CLASSID: # <<<<<<<<<<<<<< + * klass = subtype_DM(obj) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/petscobj.pxi":176 + * klass = subtype_DM(obj) + * else: + * klass = PyPetscType_Lookup(classid) # <<<<<<<<<<<<<< + * return klass + * + */ + /*else*/ { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscType_Lookup(__pyx_v_classid)); if (unlikely(!__pyx_t_3)) __PYX_ERR(18, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_klass, ((PyTypeObject*)__pyx_t_3)); + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "petsc4py/PETSc/petscobj.pxi":177 + * else: + * klass = PyPetscType_Lookup(classid) + * return klass # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_klass)); + __pyx_r = __pyx_v_klass; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscobj.pxi":168 + * return DM + * + * cdef inline type subtype_Object(PetscObject obj): # <<<<<<<<<<<<<< + * cdef type klass = Object + * if obj == NULL: return klass + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.subtype_Object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_klass); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvwr.pxi":147 + * # --- + * + * cdef inline PetscFileMode filemode(object mode) except (-1): # <<<<<<<<<<<<<< + * if mode is None: + * return PETSC_FILE_MODE_READ + */ + +static CYTHON_INLINE PetscFileMode __pyx_f_8petsc4py_5PETSc_filemode(PyObject *__pyx_v_mode) { + PetscFileMode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscFileMode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("filemode", 0); + + /* "petsc4py/PETSc/petscvwr.pxi":148 + * + * cdef inline PetscFileMode filemode(object mode) except (-1): + * if mode is None: # <<<<<<<<<<<<<< + * return PETSC_FILE_MODE_READ + * if isinstance(mode, str): + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvwr.pxi":149 + * cdef inline PetscFileMode filemode(object mode) except (-1): + * if mode is None: + * return PETSC_FILE_MODE_READ # <<<<<<<<<<<<<< + * if isinstance(mode, str): + * if mode == 'r' : return PETSC_FILE_MODE_READ + */ + __pyx_r = FILE_MODE_READ; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvwr.pxi":148 + * + * cdef inline PetscFileMode filemode(object mode) except (-1): + * if mode is None: # <<<<<<<<<<<<<< + * return PETSC_FILE_MODE_READ + * if isinstance(mode, str): + */ + } + + /* "petsc4py/PETSc/petscvwr.pxi":150 + * if mode is None: + * return PETSC_FILE_MODE_READ + * if isinstance(mode, str): # <<<<<<<<<<<<<< + * if mode == 'r' : return PETSC_FILE_MODE_READ + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE + */ + __pyx_t_2 = PyString_Check(__pyx_v_mode); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvwr.pxi":151 + * return PETSC_FILE_MODE_READ + * if isinstance(mode, str): + * if mode == 'r' : return PETSC_FILE_MODE_READ # <<<<<<<<<<<<<< + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE + * elif mode == 'a' : return PETSC_FILE_MODE_APPEND + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 151, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_READ; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":152 + * if isinstance(mode, str): + * if mode == 'r' : return PETSC_FILE_MODE_READ + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE # <<<<<<<<<<<<<< + * elif mode == 'a' : return PETSC_FILE_MODE_APPEND + * elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_w, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 152, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_WRITE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":153 + * if mode == 'r' : return PETSC_FILE_MODE_READ + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE + * elif mode == 'a' : return PETSC_FILE_MODE_APPEND # <<<<<<<<<<<<<< + * elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_a, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 153, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_APPEND; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":154 + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE + * elif mode == 'a' : return PETSC_FILE_MODE_APPEND + * elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE # <<<<<<<<<<<<<< + * elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_kp_s_r_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 154, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":155 + * elif mode == 'a' : return PETSC_FILE_MODE_APPEND + * elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE # <<<<<<<<<<<<<< + * elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'u' : return PETSC_FILE_MODE_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_kp_s_w_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 155, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":156 + * elif mode == 'r+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE # <<<<<<<<<<<<<< + * elif mode == 'u' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_kp_s_a_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 156, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_APPEND_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":157 + * elif mode == 'w+' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'u' : return PETSC_FILE_MODE_UPDATE # <<<<<<<<<<<<<< + * elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'ua' : return PETSC_FILE_MODE_APPEND_UPDATE + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_u, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 157, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":158 + * elif mode == 'a+' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'u' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE # <<<<<<<<<<<<<< + * elif mode == 'ua' : return PETSC_FILE_MODE_APPEND_UPDATE + * return mode + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_au, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 158, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_APPEND_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":159 + * elif mode == 'u' : return PETSC_FILE_MODE_UPDATE + * elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'ua' : return PETSC_FILE_MODE_APPEND_UPDATE # <<<<<<<<<<<<<< + * return mode + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_ua, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(19, 159, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_r = FILE_MODE_APPEND_UPDATE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscvwr.pxi":150 + * if mode is None: + * return PETSC_FILE_MODE_READ + * if isinstance(mode, str): # <<<<<<<<<<<<<< + * if mode == 'r' : return PETSC_FILE_MODE_READ + * elif mode == 'w' : return PETSC_FILE_MODE_WRITE + */ + } + + /* "petsc4py/PETSc/petscvwr.pxi":160 + * elif mode == 'au' : return PETSC_FILE_MODE_APPEND_UPDATE + * elif mode == 'ua' : return PETSC_FILE_MODE_APPEND_UPDATE + * return mode # <<<<<<<<<<<<<< + */ + __pyx_t_3 = ((PetscFileMode)__Pyx_PyInt_As_PetscFileMode(__pyx_v_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(19, 160, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvwr.pxi":147 + * # --- + * + * cdef inline PetscFileMode filemode(object mode) except (-1): # <<<<<<<<<<<<<< + * if mode is None: + * return PETSC_FILE_MODE_READ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.filemode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscFileMode)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":66 + * PetscErrorCode PetscDeviceContextSetCurrentContext(PetscDeviceContext) + * + * cdef inline PetscDeviceType asDeviceType(object dtype) except (-1): # <<<<<<<<<<<<<< + * if isinstance(dtype, str): + * dtype = dtype.upper() + */ + +static CYTHON_INLINE PetscDeviceType __pyx_f_8petsc4py_5PETSc_asDeviceType(PyObject *__pyx_v_dtype) { + PetscDeviceType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PetscDeviceType __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asDeviceType", 0); + __Pyx_INCREF(__pyx_v_dtype); + + /* "petsc4py/PETSc/petscdevice.pxi":67 + * + * cdef inline PetscDeviceType asDeviceType(object dtype) except (-1): + * if isinstance(dtype, str): # <<<<<<<<<<<<<< + * dtype = dtype.upper() + * try: + */ + __pyx_t_1 = PyString_Check(__pyx_v_dtype); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdevice.pxi":68 + * cdef inline PetscDeviceType asDeviceType(object dtype) except (-1): + * if isinstance(dtype, str): + * dtype = dtype.upper() # <<<<<<<<<<<<<< + * try: + * return getattr(Device.Type, dtype) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_upper); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_dtype, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":69 + * if isinstance(dtype, str): + * dtype = dtype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(Device.Type, dtype) + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":70 + * dtype = dtype.upper() + * try: + * return getattr(Device.Type, dtype) # <<<<<<<<<<<<<< + * except AttributeError: + * raise ValueError("unknown device type: %s" % dtype) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device), __pyx_n_s_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 70, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 70, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = ((PetscDeviceType)__Pyx_PyInt_As_PetscDeviceType(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 70, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_9; + goto __pyx_L8_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":69 + * if isinstance(dtype, str): + * dtype = dtype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(Device.Type, dtype) + * except AttributeError: + */ + } + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":71 + * try: + * return getattr(Device.Type, dtype) + * except AttributeError: # <<<<<<<<<<<<<< + * raise ValueError("unknown device type: %s" % dtype) + * return dtype + */ + __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_10) { + __Pyx_AddTraceback("petsc4py.PETSc.asDeviceType", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(5, 71, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":72 + * return getattr(Device.Type, dtype) + * except AttributeError: + * raise ValueError("unknown device type: %s" % dtype) # <<<<<<<<<<<<<< + * return dtype + * + */ + __pyx_t_11 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_device_type_s, __pyx_v_dtype); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 72, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 72, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __PYX_ERR(5, 72, __pyx_L6_except_error) + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":69 + * if isinstance(dtype, str): + * dtype = dtype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(Device.Type, dtype) + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L1_error; + __pyx_L8_try_return:; + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":67 + * + * cdef inline PetscDeviceType asDeviceType(object dtype) except (-1): + * if isinstance(dtype, str): # <<<<<<<<<<<<<< + * dtype = dtype.upper() + * try: + */ + } + + /* "petsc4py/PETSc/petscdevice.pxi":73 + * except AttributeError: + * raise ValueError("unknown device type: %s" % dtype) + * return dtype # <<<<<<<<<<<<<< + * + * cdef inline str toDeviceType(PetscDeviceType dtype): + */ + __pyx_t_9 = ((PetscDeviceType)__Pyx_PyInt_As_PetscDeviceType(__pyx_v_dtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 73, __pyx_L1_error) + __pyx_r = __pyx_t_9; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdevice.pxi":66 + * PetscErrorCode PetscDeviceContextSetCurrentContext(PetscDeviceContext) + * + * cdef inline PetscDeviceType asDeviceType(object dtype) except (-1): # <<<<<<<<<<<<<< + * if isinstance(dtype, str): + * dtype = dtype.upper() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.asDeviceType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscDeviceType)-1L); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dtype); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":75 + * return dtype + * + * cdef inline str toDeviceType(PetscDeviceType dtype): # <<<<<<<<<<<<<< + * try: + * return Device.Type.__enum2str[dtype] + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDeviceType(PetscDeviceType __pyx_v_dtype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toDeviceType", 0); + + /* "petsc4py/PETSc/petscdevice.pxi":76 + * + * cdef inline str toDeviceType(PetscDeviceType dtype): + * try: # <<<<<<<<<<<<<< + * return Device.Type.__enum2str[dtype] + * except KeyError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":77 + * cdef inline str toDeviceType(PetscDeviceType dtype): + * try: + * return Device.Type.__enum2str[dtype] # <<<<<<<<<<<<<< + * except KeyError: + * raise NotImplementedError("unhandled PetscDeviceType %d" % dtype) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device), __pyx_n_s_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 77, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_enum2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 77, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscDeviceType(__pyx_v_dtype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 77, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 77, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(5, 77, __pyx_L3_error) + __pyx_r = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + goto __pyx_L7_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":76 + * + * cdef inline str toDeviceType(PetscDeviceType dtype): + * try: # <<<<<<<<<<<<<< + * return Device.Type.__enum2str[dtype] + * except KeyError: + */ + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":78 + * try: + * return Device.Type.__enum2str[dtype] + * except KeyError: # <<<<<<<<<<<<<< + * raise NotImplementedError("unhandled PetscDeviceType %d" % dtype) + * + */ + __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_7) { + __Pyx_AddTraceback("petsc4py.PETSc.toDeviceType", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(5, 78, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":79 + * return Device.Type.__enum2str[dtype] + * except KeyError: + * raise NotImplementedError("unhandled PetscDeviceType %d" % dtype) # <<<<<<<<<<<<<< + * + * cdef inline PetscStreamType asStreamType(object stype) except (-1): + */ + __pyx_t_8 = __Pyx_PyInt_From_int(((int)__pyx_v_dtype)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 79, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_unhandled_PetscDeviceType_d, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 79, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 79, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(5, 79, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":76 + * + * cdef inline str toDeviceType(PetscDeviceType dtype): + * try: # <<<<<<<<<<<<<< + * return Device.Type.__enum2str[dtype] + * except KeyError: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L7_try_return:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":75 + * return dtype + * + * cdef inline str toDeviceType(PetscDeviceType dtype): # <<<<<<<<<<<<<< + * try: + * return Device.Type.__enum2str[dtype] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.toDeviceType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":81 + * raise NotImplementedError("unhandled PetscDeviceType %d" % dtype) + * + * cdef inline PetscStreamType asStreamType(object stype) except (-1): # <<<<<<<<<<<<<< + * if isinstance(stype, str): + * stype = stype.upper() + */ + +static CYTHON_INLINE PetscStreamType __pyx_f_8petsc4py_5PETSc_asStreamType(PyObject *__pyx_v_stype) { + PetscStreamType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PetscStreamType __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStreamType", 0); + __Pyx_INCREF(__pyx_v_stype); + + /* "petsc4py/PETSc/petscdevice.pxi":82 + * + * cdef inline PetscStreamType asStreamType(object stype) except (-1): + * if isinstance(stype, str): # <<<<<<<<<<<<<< + * stype = stype.upper() + * try: + */ + __pyx_t_1 = PyString_Check(__pyx_v_stype); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdevice.pxi":83 + * cdef inline PetscStreamType asStreamType(object stype) except (-1): + * if isinstance(stype, str): + * stype = stype.upper() # <<<<<<<<<<<<<< + * try: + * return getattr(DeviceContext.StreamType, stype) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_stype, __pyx_n_s_upper); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_stype, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":84 + * if isinstance(stype, str): + * stype = stype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.StreamType, stype) + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":85 + * stype = stype.upper() + * try: + * return getattr(DeviceContext.StreamType, stype) # <<<<<<<<<<<<<< + * except AttributeError: + * raise ValueError("unknown stream type: %s" % stype) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext), __pyx_n_s_StreamType); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 85, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_stype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 85, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = ((PetscStreamType)__Pyx_PyInt_As_PetscStreamType(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 85, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_9; + goto __pyx_L8_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":84 + * if isinstance(stype, str): + * stype = stype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.StreamType, stype) + * except AttributeError: + */ + } + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":86 + * try: + * return getattr(DeviceContext.StreamType, stype) + * except AttributeError: # <<<<<<<<<<<<<< + * raise ValueError("unknown stream type: %s" % stype) + * return stype + */ + __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_10) { + __Pyx_AddTraceback("petsc4py.PETSc.asStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(5, 86, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":87 + * return getattr(DeviceContext.StreamType, stype) + * except AttributeError: + * raise ValueError("unknown stream type: %s" % stype) # <<<<<<<<<<<<<< + * return stype + * + */ + __pyx_t_11 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_stream_type_s, __pyx_v_stype); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 87, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 87, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __PYX_ERR(5, 87, __pyx_L6_except_error) + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":84 + * if isinstance(stype, str): + * stype = stype.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.StreamType, stype) + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L1_error; + __pyx_L8_try_return:; + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":82 + * + * cdef inline PetscStreamType asStreamType(object stype) except (-1): + * if isinstance(stype, str): # <<<<<<<<<<<<<< + * stype = stype.upper() + * try: + */ + } + + /* "petsc4py/PETSc/petscdevice.pxi":88 + * except AttributeError: + * raise ValueError("unknown stream type: %s" % stype) + * return stype # <<<<<<<<<<<<<< + * + * cdef inline str toStreamType(PetscStreamType stype): + */ + __pyx_t_9 = ((PetscStreamType)__Pyx_PyInt_As_PetscStreamType(__pyx_v_stype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 88, __pyx_L1_error) + __pyx_r = __pyx_t_9; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdevice.pxi":81 + * raise NotImplementedError("unhandled PetscDeviceType %d" % dtype) + * + * cdef inline PetscStreamType asStreamType(object stype) except (-1): # <<<<<<<<<<<<<< + * if isinstance(stype, str): + * stype = stype.upper() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.asStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscStreamType)-1L); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_stype); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":90 + * return stype + * + * cdef inline str toStreamType(PetscStreamType stype): # <<<<<<<<<<<<<< + * try: + * return DeviceContext.StreamType.__enum2str[stype] + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStreamType(PetscStreamType __pyx_v_stype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toStreamType", 0); + + /* "petsc4py/PETSc/petscdevice.pxi":91 + * + * cdef inline str toStreamType(PetscStreamType stype): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.StreamType.__enum2str[stype] + * except KeyError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":92 + * cdef inline str toStreamType(PetscStreamType stype): + * try: + * return DeviceContext.StreamType.__enum2str[stype] # <<<<<<<<<<<<<< + * except KeyError: + * raise NotImplementedError("unhandled PetscStreamType %d" % stype) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext), __pyx_n_s_StreamType); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 92, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_enum2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 92, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscStreamType(__pyx_v_stype); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 92, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 92, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(5, 92, __pyx_L3_error) + __pyx_r = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + goto __pyx_L7_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":91 + * + * cdef inline str toStreamType(PetscStreamType stype): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.StreamType.__enum2str[stype] + * except KeyError: + */ + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":93 + * try: + * return DeviceContext.StreamType.__enum2str[stype] + * except KeyError: # <<<<<<<<<<<<<< + * raise NotImplementedError("unhandled PetscStreamType %d" % stype) + * + */ + __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_7) { + __Pyx_AddTraceback("petsc4py.PETSc.toStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(5, 93, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":94 + * return DeviceContext.StreamType.__enum2str[stype] + * except KeyError: + * raise NotImplementedError("unhandled PetscStreamType %d" % stype) # <<<<<<<<<<<<<< + * + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): + */ + __pyx_t_8 = __Pyx_PyInt_From_int(((int)__pyx_v_stype)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 94, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_unhandled_PetscStreamType_d, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 94, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 94, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(5, 94, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":91 + * + * cdef inline str toStreamType(PetscStreamType stype): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.StreamType.__enum2str[stype] + * except KeyError: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L7_try_return:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":90 + * return stype + * + * cdef inline str toStreamType(PetscStreamType stype): # <<<<<<<<<<<<<< + * try: + * return DeviceContext.StreamType.__enum2str[stype] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.toStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":96 + * raise NotImplementedError("unhandled PetscStreamType %d" % stype) + * + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): # <<<<<<<<<<<<<< + * if isinstance(jmode, str): + * jmode = jmode.upper() + */ + +static CYTHON_INLINE PetscDeviceContextJoinMode __pyx_f_8petsc4py_5PETSc_asJoinMode(PyObject *__pyx_v_jmode) { + PetscDeviceContextJoinMode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PetscDeviceContextJoinMode __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asJoinMode", 0); + __Pyx_INCREF(__pyx_v_jmode); + + /* "petsc4py/PETSc/petscdevice.pxi":97 + * + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): + * if isinstance(jmode, str): # <<<<<<<<<<<<<< + * jmode = jmode.upper() + * try: + */ + __pyx_t_1 = PyString_Check(__pyx_v_jmode); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdevice.pxi":98 + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): + * if isinstance(jmode, str): + * jmode = jmode.upper() # <<<<<<<<<<<<<< + * try: + * return getattr(DeviceContext.JoinMode, jmode) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_jmode, __pyx_n_s_upper); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_jmode, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":99 + * if isinstance(jmode, str): + * jmode = jmode.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.JoinMode, jmode) + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":100 + * jmode = jmode.upper() + * try: + * return getattr(DeviceContext.JoinMode, jmode) # <<<<<<<<<<<<<< + * except AttributeError: + * raise ValueError("unknown join mode: %s" % jmode) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext), __pyx_n_s_JoinMode); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 100, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_GetAttr(__pyx_t_3, __pyx_v_jmode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 100, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = ((PetscDeviceContextJoinMode)__Pyx_PyInt_As_PetscDeviceContextJoinMode(__pyx_t_4)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 100, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_9; + goto __pyx_L8_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":99 + * if isinstance(jmode, str): + * jmode = jmode.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.JoinMode, jmode) + * except AttributeError: + */ + } + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":101 + * try: + * return getattr(DeviceContext.JoinMode, jmode) + * except AttributeError: # <<<<<<<<<<<<<< + * raise ValueError("unknown join mode: %s" % jmode) + * return jmode + */ + __pyx_t_10 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_10) { + __Pyx_AddTraceback("petsc4py.PETSc.asJoinMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_5) < 0) __PYX_ERR(5, 101, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":102 + * return getattr(DeviceContext.JoinMode, jmode) + * except AttributeError: + * raise ValueError("unknown join mode: %s" % jmode) # <<<<<<<<<<<<<< + * return jmode + * + */ + __pyx_t_11 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_join_mode_s, __pyx_v_jmode); if (unlikely(!__pyx_t_11)) __PYX_ERR(5, 102, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(5, 102, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __PYX_ERR(5, 102, __pyx_L6_except_error) + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":99 + * if isinstance(jmode, str): + * jmode = jmode.upper() + * try: # <<<<<<<<<<<<<< + * return getattr(DeviceContext.JoinMode, jmode) + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L1_error; + __pyx_L8_try_return:; + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":97 + * + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): + * if isinstance(jmode, str): # <<<<<<<<<<<<<< + * jmode = jmode.upper() + * try: + */ + } + + /* "petsc4py/PETSc/petscdevice.pxi":103 + * except AttributeError: + * raise ValueError("unknown join mode: %s" % jmode) + * return jmode # <<<<<<<<<<<<<< + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): + */ + __pyx_t_9 = ((PetscDeviceContextJoinMode)__Pyx_PyInt_As_PetscDeviceContextJoinMode(__pyx_v_jmode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(5, 103, __pyx_L1_error) + __pyx_r = __pyx_t_9; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdevice.pxi":96 + * raise NotImplementedError("unhandled PetscStreamType %d" % stype) + * + * cdef inline PetscDeviceContextJoinMode asJoinMode(object jmode) except (-1): # <<<<<<<<<<<<<< + * if isinstance(jmode, str): + * jmode = jmode.upper() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.asJoinMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((PetscDeviceContextJoinMode)-1L); + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_jmode); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdevice.pxi":105 + * return jmode + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): # <<<<<<<<<<<<<< + * try: + * return DeviceContext.JoinMode.__enum2str[jmode] + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toJoinMode(PetscDeviceContextJoinMode __pyx_v_jmode) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toJoinMode", 0); + + /* "petsc4py/PETSc/petscdevice.pxi":106 + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.JoinMode.__enum2str[jmode] + * except KeyError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/petscdevice.pxi":107 + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): + * try: + * return DeviceContext.JoinMode.__enum2str[jmode] # <<<<<<<<<<<<<< + * except KeyError: + * raise NotImplementedError("unhandled PetscDeviceContextJoinMode %d" % jmode) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext), __pyx_n_s_JoinMode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 107, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_enum2str); if (unlikely(!__pyx_t_5)) __PYX_ERR(5, 107, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscDeviceContextJoinMode(__pyx_v_jmode); if (unlikely(!__pyx_t_4)) __PYX_ERR(5, 107, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 107, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyString_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(5, 107, __pyx_L3_error) + __pyx_r = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + goto __pyx_L7_try_return; + + /* "petsc4py/PETSc/petscdevice.pxi":106 + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.JoinMode.__enum2str[jmode] + * except KeyError: + */ + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdevice.pxi":108 + * try: + * return DeviceContext.JoinMode.__enum2str[jmode] + * except KeyError: # <<<<<<<<<<<<<< + * raise NotImplementedError("unhandled PetscDeviceContextJoinMode %d" % jmode) + */ + __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_7) { + __Pyx_AddTraceback("petsc4py.PETSc.toJoinMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_4, &__pyx_t_5) < 0) __PYX_ERR(5, 108, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscdevice.pxi":109 + * return DeviceContext.JoinMode.__enum2str[jmode] + * except KeyError: + * raise NotImplementedError("unhandled PetscDeviceContextJoinMode %d" % jmode) # <<<<<<<<<<<<<< + */ + __pyx_t_8 = __Pyx_PyInt_From_int(((int)__pyx_v_jmode)); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 109, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyString_Format(__pyx_kp_s_unhandled_PetscDeviceContextJoin, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(5, 109, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(5, 109, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(5, 109, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/petscdevice.pxi":106 + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): + * try: # <<<<<<<<<<<<<< + * return DeviceContext.JoinMode.__enum2str[jmode] + * except KeyError: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L7_try_return:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdevice.pxi":105 + * return jmode + * + * cdef inline str toJoinMode(PetscDeviceContextJoinMode jmode): # <<<<<<<<<<<<<< + * try: + * return DeviceContext.JoinMode.__enum2str[jmode] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.toJoinMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":97 + * # -------------------------------------------------------------------- + * + * cdef inline IS ref_IS(PetscIS iset): # <<<<<<<<<<<<<< + * cdef IS ob = IS() + * ob.iset = iset + */ + +static CYTHON_INLINE struct PyPetscISObject *__pyx_f_8petsc4py_5PETSc_ref_IS(IS __pyx_v_iset) { + struct PyPetscISObject *__pyx_v_ob = 0; + struct PyPetscISObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_IS", 0); + + /* "petsc4py/PETSc/petscis.pxi":98 + * + * cdef inline IS ref_IS(PetscIS iset): + * cdef IS ob = IS() # <<<<<<<<<<<<<< + * ob.iset = iset + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscis.pxi":99 + * cdef inline IS ref_IS(PetscIS iset): + * cdef IS ob = IS() + * ob.iset = iset # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->iset = __pyx_v_iset; + + /* "petsc4py/PETSc/petscis.pxi":100 + * cdef IS ob = IS() + * ob.iset = iset + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscis.pxi":101 + * ob.iset = iset + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline LGMap ref_LGMap(PetscLGMap lgm): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":97 + * # -------------------------------------------------------------------- + * + * cdef inline IS ref_IS(PetscIS iset): # <<<<<<<<<<<<<< + * cdef IS ob = IS() + * ob.iset = iset + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_IS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":103 + * return ob + * + * cdef inline LGMap ref_LGMap(PetscLGMap lgm): # <<<<<<<<<<<<<< + * cdef LGMap ob = LGMap() + * ob.lgm = lgm + */ + +static CYTHON_INLINE struct PyPetscLGMapObject *__pyx_f_8petsc4py_5PETSc_ref_LGMap(ISLocalToGlobalMapping __pyx_v_lgm) { + struct PyPetscLGMapObject *__pyx_v_ob = 0; + struct PyPetscLGMapObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_LGMap", 0); + + /* "petsc4py/PETSc/petscis.pxi":104 + * + * cdef inline LGMap ref_LGMap(PetscLGMap lgm): + * cdef LGMap ob = LGMap() # <<<<<<<<<<<<<< + * ob.lgm = lgm + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscLGMapObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscis.pxi":105 + * cdef inline LGMap ref_LGMap(PetscLGMap lgm): + * cdef LGMap ob = LGMap() + * ob.lgm = lgm # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->lgm = __pyx_v_lgm; + + /* "petsc4py/PETSc/petscis.pxi":106 + * cdef LGMap ob = LGMap() + * ob.lgm = lgm + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscis.pxi":107 + * ob.lgm = lgm + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":103 + * return ob + * + * cdef inline LGMap ref_LGMap(PetscLGMap lgm): # <<<<<<<<<<<<<< + * cdef LGMap ob = LGMap() + * ob.lgm = lgm + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_LGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":118 + * cdef bint hasarray + * + * def __cinit__(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscIS i = iset.iset + * CHKERR( PetscINCREF(&i) ) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(6, 118, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(6, 118, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(6, 118, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer___cinit__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_10_IS_buffer___cinit__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + IS __pyx_v_i; + int __pyx_r; + __Pyx_RefNannyDeclarations + IS __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/petscis.pxi":119 + * + * def __cinit__(self, IS iset): + * cdef PetscIS i = iset.iset # <<<<<<<<<<<<<< + * CHKERR( PetscINCREF(&i) ) + * self.iset = i + */ + __pyx_t_1 = __pyx_v_iset->iset; + __pyx_v_i = __pyx_t_1; + + /* "petsc4py/PETSc/petscis.pxi":120 + * def __cinit__(self, IS iset): + * cdef PetscIS i = iset.iset + * CHKERR( PetscINCREF(&i) ) # <<<<<<<<<<<<<< + * self.iset = i + * self.size = 0 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&__pyx_v_i)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":121 + * cdef PetscIS i = iset.iset + * CHKERR( PetscINCREF(&i) ) + * self.iset = i # <<<<<<<<<<<<<< + * self.size = 0 + * self.data = NULL + */ + __pyx_v_self->iset = __pyx_v_i; + + /* "petsc4py/PETSc/petscis.pxi":122 + * CHKERR( PetscINCREF(&i) ) + * self.iset = i + * self.size = 0 # <<<<<<<<<<<<<< + * self.data = NULL + * self.hasarray = 0 + */ + __pyx_v_self->size = 0; + + /* "petsc4py/PETSc/petscis.pxi":123 + * self.iset = i + * self.size = 0 + * self.data = NULL # <<<<<<<<<<<<<< + * self.hasarray = 0 + * + */ + __pyx_v_self->data = NULL; + + /* "petsc4py/PETSc/petscis.pxi":124 + * self.size = 0 + * self.data = NULL + * self.hasarray = 0 # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->hasarray = 0; + + /* "petsc4py/PETSc/petscis.pxi":118 + * cdef bint hasarray + * + * def __cinit__(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscIS i = iset.iset + * CHKERR( PetscINCREF(&i) ) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":126 + * self.hasarray = 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.hasarray and self.iset != NULL: + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_2__dealloc__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/petscis.pxi":127 + * + * def __dealloc__(self): + * if self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * CHKERR( ISDestroy(&self.iset) ) + */ + __pyx_t_2 = (__pyx_v_self->hasarray != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->iset != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":128 + * def __dealloc__(self): + * if self.hasarray and self.iset != NULL: + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) # <<<<<<<<<<<<<< + * CHKERR( ISDestroy(&self.iset) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISRestoreIndices(__pyx_v_self->iset, (&__pyx_v_self->data))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":127 + * + * def __dealloc__(self): + * if self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * CHKERR( ISDestroy(&self.iset) ) + */ + } + + /* "petsc4py/PETSc/petscis.pxi":129 + * if self.hasarray and self.iset != NULL: + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * CHKERR( ISDestroy(&self.iset) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDestroy((&__pyx_v_self->iset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 129, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":126 + * self.hasarray = 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.hasarray and self.iset != NULL: + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc._IS_buffer.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/petscis.pxi":133 + * # + * + * cdef int acquire(self) except -1: # <<<<<<<<<<<<<< + * if not self.hasarray and self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + */ + +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquire(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("acquire", 0); + + /* "petsc4py/PETSc/petscis.pxi":134 + * + * cdef int acquire(self) except -1: + * if not self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + * CHKERR( ISGetIndices(self.iset, &self.data) ) + */ + __pyx_t_2 = ((!(__pyx_v_self->hasarray != 0)) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->iset != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":135 + * cdef int acquire(self) except -1: + * if not self.hasarray and self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) # <<<<<<<<<<<<<< + * CHKERR( ISGetIndices(self.iset, &self.data) ) + * self.hasarray = 1 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_self->size))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 135, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":136 + * if not self.hasarray and self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + * CHKERR( ISGetIndices(self.iset, &self.data) ) # <<<<<<<<<<<<<< + * self.hasarray = 1 + * return 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetIndices(__pyx_v_self->iset, (&__pyx_v_self->data))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 136, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":137 + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + * CHKERR( ISGetIndices(self.iset, &self.data) ) + * self.hasarray = 1 # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_v_self->hasarray = 1; + + /* "petsc4py/PETSc/petscis.pxi":134 + * + * cdef int acquire(self) except -1: + * if not self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + * CHKERR( ISGetIndices(self.iset, &self.data) ) + */ + } + + /* "petsc4py/PETSc/petscis.pxi":138 + * CHKERR( ISGetIndices(self.iset, &self.data) ) + * self.hasarray = 1 + * return 0 # <<<<<<<<<<<<<< + * + * cdef int release(self) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":133 + * # + * + * cdef int acquire(self) except -1: # <<<<<<<<<<<<<< + * if not self.hasarray and self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &self.size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.acquire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":140 + * return 0 + * + * cdef int release(self) except -1: # <<<<<<<<<<<<<< + * if self.hasarray and self.iset != NULL: + * self.size = 0 + */ + +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_release(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("release", 0); + + /* "petsc4py/PETSc/petscis.pxi":141 + * + * cdef int release(self) except -1: + * if self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * self.size = 0 + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + */ + __pyx_t_2 = (__pyx_v_self->hasarray != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->iset != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":142 + * cdef int release(self) except -1: + * if self.hasarray and self.iset != NULL: + * self.size = 0 # <<<<<<<<<<<<<< + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * self.hasarray = 0 + */ + __pyx_v_self->size = 0; + + /* "petsc4py/PETSc/petscis.pxi":143 + * if self.hasarray and self.iset != NULL: + * self.size = 0 + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) # <<<<<<<<<<<<<< + * self.hasarray = 0 + * self.data = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISRestoreIndices(__pyx_v_self->iset, (&__pyx_v_self->data))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":144 + * self.size = 0 + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * self.hasarray = 0 # <<<<<<<<<<<<<< + * self.data = NULL + * return 0 + */ + __pyx_v_self->hasarray = 0; + + /* "petsc4py/PETSc/petscis.pxi":145 + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + * self.hasarray = 0 + * self.data = NULL # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_v_self->data = NULL; + + /* "petsc4py/PETSc/petscis.pxi":141 + * + * cdef int release(self) except -1: + * if self.hasarray and self.iset != NULL: # <<<<<<<<<<<<<< + * self.size = 0 + * CHKERR( ISRestoreIndices(self.iset, &self.data) ) + */ + } + + /* "petsc4py/PETSc/petscis.pxi":146 + * self.hasarray = 0 + * self.data = NULL + * return 0 # <<<<<<<<<<<<<< + * + * # buffer interface (PEP 3118) + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":140 + * return 0 + * + * cdef int release(self) except -1: # <<<<<<<<<<<<<< + * if self.hasarray and self.iset != NULL: + * self.size = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.release", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":150 + * # buffer interface (PEP 3118) + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: # <<<<<<<<<<<<<< + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, + */ + +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquirebuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("acquirebuffer", 0); + + /* "petsc4py/PETSc/petscis.pxi":151 + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: + * self.acquire() # <<<<<<<<<<<<<< + * PyPetscBuffer_FillInfo(view, self.data, self.size, + * c'i', 1, flags) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 151, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":152 + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, # <<<<<<<<<<<<<< + * c'i', 1, flags) + * view.obj = self + */ + __pyx_t_1 = PyPetscBuffer_FillInfo(__pyx_v_view, ((void *)__pyx_v_self->data), __pyx_v_self->size, 'i', 1, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 152, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":154 + * PyPetscBuffer_FillInfo(view, self.data, self.size, + * c'i', 1, flags) + * view.obj = self # <<<<<<<<<<<<<< + * return 0 + * + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); + __pyx_v_view->obj = ((PyObject *)__pyx_v_self); + + /* "petsc4py/PETSc/petscis.pxi":155 + * c'i', 1, flags) + * view.obj = self + * return 0 # <<<<<<<<<<<<<< + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":150 + * # buffer interface (PEP 3118) + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: # <<<<<<<<<<<<<< + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.acquirebuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":157 + * return 0 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: # <<<<<<<<<<<<<< + * PyPetscBuffer_Release(view) + * self.release() + */ + +static int __pyx_f_8petsc4py_5PETSc_10_IS_buffer_releasebuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("releasebuffer", 0); + + /* "petsc4py/PETSc/petscis.pxi":158 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: + * PyPetscBuffer_Release(view) # <<<<<<<<<<<<<< + * self.release() + * return 0 + */ + PyPetscBuffer_Release(__pyx_v_view); + + /* "petsc4py/PETSc/petscis.pxi":159 + * cdef int releasebuffer(self, Py_buffer *view) except -1: + * PyPetscBuffer_Release(view) + * self.release() # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->release(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":160 + * PyPetscBuffer_Release(view) + * self.release() + * return 0 # <<<<<<<<<<<<<< + * + * def __getbuffer__(self, Py_buffer *view, int flags): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":157 + * return 0 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: # <<<<<<<<<<<<<< + * PyPetscBuffer_Release(view) + * self.release() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.releasebuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":162 + * return 0 + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * self.acquirebuffer(view, flags) + * + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_5__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_5__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_4__getbuffer__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), ((Py_buffer *)__pyx_v_view), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_4__getbuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_view == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_view->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_view->obj); + + /* "petsc4py/PETSc/petscis.pxi":163 + * + * def __getbuffer__(self, Py_buffer *view, int flags): + * self.acquirebuffer(view, flags) # <<<<<<<<<<<<<< + * + * def __releasebuffer__(self, Py_buffer *view): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->acquirebuffer(__pyx_v_self, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":162 + * return 0 + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * self.acquirebuffer(view, flags) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_view->obj != NULL) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_view->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":165 + * self.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * self.releasebuffer(view) + * + */ + +/* Python wrapper */ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_7__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view); /*proto*/ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_7__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_6__releasebuffer__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), ((Py_buffer *)__pyx_v_view)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_6__releasebuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__releasebuffer__", 0); + + /* "petsc4py/PETSc/petscis.pxi":166 + * + * def __releasebuffer__(self, Py_buffer *view): + * self.releasebuffer(view) # <<<<<<<<<<<<<< + * + * # 'with' statement (PEP 343) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->releasebuffer(__pyx_v_self, __pyx_v_view); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 166, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":165 + * self.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * self.releasebuffer(view) + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc._IS_buffer.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/petscis.pxi":170 + * # 'with' statement (PEP 343) + * + * cdef object enter(self): # <<<<<<<<<<<<<< + * self.acquire() + * return asarray(self) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_10_IS_buffer_enter(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("enter", 0); + + /* "petsc4py/PETSc/petscis.pxi":171 + * + * cdef object enter(self): + * self.acquire() # <<<<<<<<<<<<<< + * return asarray(self) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 171, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":172 + * cdef object enter(self): + * self.acquire() + * return asarray(self) # <<<<<<<<<<<<<< + * + * cdef object exit(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(((PyObject *)__pyx_v_self))); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":170 + * # 'with' statement (PEP 343) + * + * cdef object enter(self): # <<<<<<<<<<<<<< + * self.acquire() + * return asarray(self) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.enter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":174 + * return asarray(self) + * + * cdef object exit(self): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_10_IS_buffer_exit(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("exit", 0); + + /* "petsc4py/PETSc/petscis.pxi":175 + * + * cdef object exit(self): + * self.release() # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->release(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(6, 175, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":176 + * cdef object exit(self): + * self.release() + * return None # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":174 + * return asarray(self) + * + * cdef object exit(self): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.exit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":178 + * return None + * + * def __enter__(self): # <<<<<<<<<<<<<< + * return self.enter() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_9__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10_IS_buffer_8__enter__[] = "_IS_buffer.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_9__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_8__enter__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_8__enter__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/petscis.pxi":179 + * + * def __enter__(self): + * return self.enter() # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->enter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":178 + * return None + * + * def __enter__(self): # <<<<<<<<<<<<<< + * return self.enter() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":181 + * return self.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * return self.exit() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10_IS_buffer_10__exit__[] = "_IS_buffer.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_10__exit__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_10__exit__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/petscis.pxi":182 + * + * def __exit__(self, *exc): + * return self.exit() # <<<<<<<<<<<<<< + * + * # buffer interface (legacy) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->exit(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":181 + * return self.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * return self.exit() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":186 + * # buffer interface (legacy) + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if p != NULL: + */ + +static Py_ssize_t __pyx_f_8petsc4py_5PETSc_10_IS_buffer_getbuffer(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, void **__pyx_v_p) { + PetscInt __pyx_v_n; + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getbuffer", 0); + + /* "petsc4py/PETSc/petscis.pxi":187 + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * if p != NULL: + * self.acquire() + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscis.pxi":188 + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 + * if p != NULL: # <<<<<<<<<<<<<< + * self.acquire() + * p[0] = self.data + */ + __pyx_t_1 = ((__pyx_v_p != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":189 + * cdef PetscInt n = 0 + * if p != NULL: + * self.acquire() # <<<<<<<<<<<<<< + * p[0] = self.data + * n = self.size + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(6, 189, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":190 + * if p != NULL: + * self.acquire() + * p[0] = self.data # <<<<<<<<<<<<<< + * n = self.size + * elif self.iset != NULL: + */ + (__pyx_v_p[0]) = ((void *)__pyx_v_self->data); + + /* "petsc4py/PETSc/petscis.pxi":191 + * self.acquire() + * p[0] = self.data + * n = self.size # <<<<<<<<<<<<<< + * elif self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + __pyx_t_3 = __pyx_v_self->size; + __pyx_v_n = __pyx_t_3; + + /* "petsc4py/PETSc/petscis.pxi":188 + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 + * if p != NULL: # <<<<<<<<<<<<<< + * self.acquire() + * p[0] = self.data + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscis.pxi":192 + * p[0] = self.data + * n = self.size + * elif self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * return (n*sizeof(PetscInt)) + */ + __pyx_t_1 = ((__pyx_v_self->iset != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":193 + * n = self.size + * elif self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) # <<<<<<<<<<<<<< + * return (n*sizeof(PetscInt)) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_n))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 193, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":192 + * p[0] = self.data + * n = self.size + * elif self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * return (n*sizeof(PetscInt)) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscis.pxi":194 + * elif self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * return (n*sizeof(PetscInt)) # <<<<<<<<<<<<<< + * + * def __getsegcount__(self, Py_ssize_t *lenp): + */ + __pyx_r = ((Py_ssize_t)(((size_t)__pyx_v_n) * (sizeof(PetscInt)))); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":186 + * # buffer interface (legacy) + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if p != NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.getbuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscis.pxi":196 + * return (n*sizeof(PetscInt)) + * + * def __getsegcount__(self, Py_ssize_t *lenp): # <<<<<<<<<<<<<< + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_13__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /*proto*/ +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_13__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getsegcount__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_12__getsegcount__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), ((Py_ssize_t *)__pyx_v_lenp)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_12__getsegcount__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_ssize_t *__pyx_v_lenp) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + Py_ssize_t __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getsegcount__", 0); + + /* "petsc4py/PETSc/petscis.pxi":197 + * + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: # <<<<<<<<<<<<<< + * lenp[0] = self.getbuffer(NULL) + * return 1 + */ + __pyx_t_1 = ((__pyx_v_lenp != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":198 + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->getbuffer(__pyx_v_self, NULL); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1L))) __PYX_ERR(6, 198, __pyx_L1_error) + (__pyx_v_lenp[0]) = __pyx_t_2; + + /* "petsc4py/PETSc/petscis.pxi":197 + * + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: # <<<<<<<<<<<<<< + * lenp[0] = self.getbuffer(NULL) + * return 1 + */ + } + + /* "petsc4py/PETSc/petscis.pxi":199 + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + * return 1 # <<<<<<<<<<<<<< + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":196 + * return (n*sizeof(PetscInt)) + * + * def __getsegcount__(self, Py_ssize_t *lenp): # <<<<<<<<<<<<<< + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__getsegcount__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +/* "petsc4py/PETSc/petscis.pxi":201 + * return 1 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_15__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /*proto*/ +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_15__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getreadbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_14__getreadbuffer__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self), ((Py_ssize_t)__pyx_v_idx), ((void **)__pyx_v_p)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_14__getreadbuffer__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getreadbuffer__", 0); + + /* "petsc4py/PETSc/petscis.pxi":202 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): + * if idx != 0: raise SystemError( # <<<<<<<<<<<<<< + * "accessing non-existent buffer segment") + * return self.getbuffer(p) + */ + __pyx_t_1 = ((__pyx_v_idx != 0) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_SystemError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(6, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(6, 202, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscis.pxi":204 + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + * return self.getbuffer(p) # <<<<<<<<<<<<<< + * + * # NumPy array interface (legacy) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self->__pyx_vtab)->getbuffer(__pyx_v_self, __pyx_v_p); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(6, 204, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":201 + * return 1 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__getreadbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +/* "petsc4py/PETSc/petscis.pxi":209 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if self.iset != NULL: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_19__array_interface___1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_19__array_interface___1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_IS_buffer_19__array_interface_____get__(((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_IS_buffer_19__array_interface_____get__(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_v_size = 0; + PyArray_Descr *__pyx_v_descr = 0; + PyObject *__pyx_v_typestr = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/petscis.pxi":210 + * property __array_interface__: + * def __get__(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * if self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscis.pxi":211 + * def __get__(self): + * cdef PetscInt n = 0 + * if self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * cdef object size = toInt(n) + */ + __pyx_t_1 = ((__pyx_v_self->iset != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscis.pxi":212 + * cdef PetscInt n = 0 + * if self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) # <<<<<<<<<<<<<< + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_n))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(6, 212, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":211 + * def __get__(self): + * cdef PetscInt n = 0 + * if self.iset != NULL: # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * cdef object size = toInt(n) + */ + } + + /* "petsc4py/PETSc/petscis.pxi":213 + * if self.iset != NULL: + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * cdef object size = toInt(n) # <<<<<<<<<<<<<< + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_size = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscis.pxi":214 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) # <<<<<<<<<<<<<< + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, + */ + __pyx_t_3 = ((PyObject *)PyArray_DescrFromType(NPY_PETSC_INT)); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscis.pxi":215 + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) # <<<<<<<<<<<<<< + * return dict(version=3, + * data=self, + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_descr), __pyx_n_s_kind); if (unlikely(!__pyx_t_3)) __PYX_ERR(6, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_descr), __pyx_n_s_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_c_d, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_typestr = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscis.pxi":216 + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_INT) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, # <<<<<<<<<<<<<< + * data=self, + * shape=(size,), + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(6, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_version, __pyx_int_3) < 0) __PYX_ERR(6, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":217 + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, + * data=self, # <<<<<<<<<<<<<< + * shape=(size,), + * typestr=typestr) + */ + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_data, ((PyObject *)__pyx_v_self)) < 0) __PYX_ERR(6, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/petscis.pxi":218 + * return dict(version=3, + * data=self, + * shape=(size,), # <<<<<<<<<<<<<< + * typestr=typestr) + * + */ + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(6, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_size); + __Pyx_GIVEREF(__pyx_v_size); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_size); + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_shape, __pyx_t_5) < 0) __PYX_ERR(6, 216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscis.pxi":219 + * data=self, + * shape=(size,), + * typestr=typestr) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_typestr, __pyx_v_typestr) < 0) __PYX_ERR(6, 216, __pyx_L1_error) + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscis.pxi":209 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if self.iset != NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc._IS_buffer.__array_interface__.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XDECREF((PyObject *)__pyx_v_descr); + __Pyx_XDECREF(__pyx_v_typestr); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":218 + * # -------------------------------------------------------------------- + * + * cdef inline Vec ref_Vec(PetscVec vec): # <<<<<<<<<<<<<< + * cdef Vec ob = Vec() + * ob.vec = vec + */ + +static CYTHON_INLINE struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_ref_Vec(Vec __pyx_v_vec) { + struct PyPetscVecObject *__pyx_v_ob = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_Vec", 0); + + /* "petsc4py/PETSc/petscvec.pxi":219 + * + * cdef inline Vec ref_Vec(PetscVec vec): + * cdef Vec ob = Vec() # <<<<<<<<<<<<<< + * ob.vec = vec + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":220 + * cdef inline Vec ref_Vec(PetscVec vec): + * cdef Vec ob = Vec() + * ob.vec = vec # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->vec = __pyx_v_vec; + + /* "petsc4py/PETSc/petscvec.pxi":221 + * cdef Vec ob = Vec() + * ob.vec = vec + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscvec.pxi":222 + * ob.vec = vec + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":218 + * # -------------------------------------------------------------------- + * + * cdef inline Vec ref_Vec(PetscVec vec): # <<<<<<<<<<<<<< + * cdef Vec ob = Vec() + * ob.vec = vec + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_Vec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":228 + * # unary operations + * + * cdef Vec vec_pos(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_pos(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_pos", 0); + + /* "petsc4py/PETSc/petscvec.pxi":229 + * + * cdef Vec vec_pos(Vec self): + * cdef Vec vec = type(self)() # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + * CHKERR( VecCopy(self.vec, vec.vec) ) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 229, __pyx_L1_error) + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":230 + * cdef Vec vec_pos(Vec self): + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecCopy(self.vec, vec.vec) ) + * return vec + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_self->vec, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 230, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":231 + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + * CHKERR( VecCopy(self.vec, vec.vec) ) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_self->vec, __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 231, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":232 + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + * CHKERR( VecCopy(self.vec, vec.vec) ) + * return vec # <<<<<<<<<<<<<< + * + * cdef Vec vec_neg(Vec self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = __pyx_v_vec; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":228 + * # unary operations + * + * cdef Vec vec_pos(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.vec_pos", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":234 + * return vec + * + * cdef Vec vec_neg(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_pos(self) + * CHKERR( VecScale(vec.vec, -1) ) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_neg(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_neg", 0); + + /* "petsc4py/PETSc/petscvec.pxi":235 + * + * cdef Vec vec_neg(Vec self): + * cdef Vec vec = vec_pos(self) # <<<<<<<<<<<<<< + * CHKERR( VecScale(vec.vec, -1) ) + * return vec + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":236 + * cdef Vec vec_neg(Vec self): + * cdef Vec vec = vec_pos(self) + * CHKERR( VecScale(vec.vec, -1) ) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_vec->vec, -1.0)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 236, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":237 + * cdef Vec vec = vec_pos(self) + * CHKERR( VecScale(vec.vec, -1) ) + * return vec # <<<<<<<<<<<<<< + * + * cdef Vec vec_abs(Vec self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = __pyx_v_vec; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":234 + * return vec + * + * cdef Vec vec_neg(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_pos(self) + * CHKERR( VecScale(vec.vec, -1) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_neg", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":239 + * return vec + * + * cdef Vec vec_abs(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_pos(self) + * CHKERR( VecAbs(vec.vec) ) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_abs(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_abs", 0); + + /* "petsc4py/PETSc/petscvec.pxi":240 + * + * cdef Vec vec_abs(Vec self): + * cdef Vec vec = vec_pos(self) # <<<<<<<<<<<<<< + * CHKERR( VecAbs(vec.vec) ) + * return vec + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":241 + * cdef Vec vec_abs(Vec self): + * cdef Vec vec = vec_pos(self) + * CHKERR( VecAbs(vec.vec) ) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAbs(__pyx_v_vec->vec)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 241, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":242 + * cdef Vec vec = vec_pos(self) + * CHKERR( VecAbs(vec.vec) ) + * return vec # <<<<<<<<<<<<<< + * + * # inplace binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = __pyx_v_vec; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":239 + * return vec + * + * cdef Vec vec_abs(Vec self): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_pos(self) + * CHKERR( VecAbs(vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_abs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":246 + * # inplace binary operations + * + * cdef Vec vec_iadd(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_iadd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PetscScalar __pyx_v_alpha; + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscScalar __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_iadd", 0); + __Pyx_INCREF(__pyx_v_other); + + /* "petsc4py/PETSc/petscvec.pxi":247 + * + * cdef Vec vec_iadd(Vec self, other): + * cdef PetscScalar alpha = 1 # <<<<<<<<<<<<<< + * cdef Vec vec + * if isinstance(other, Vec): + */ + __pyx_v_alpha = 1.0; + + /* "petsc4py/PETSc/petscvec.pxi":249 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":250 + * cdef Vec vec + * if isinstance(other, Vec): + * alpha = 1; vec = other # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): + */ + __pyx_v_alpha = 1.0; + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 250, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":251 + * if isinstance(other, Vec): + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) # <<<<<<<<<<<<<< + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_self->vec, __pyx_v_alpha, __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 251, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":249 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":252 + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): # <<<<<<<<<<<<<< + * other, vec = other + * alpha = asScalar(other) + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_other); + __pyx_t_5 = (__pyx_t_1 != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_2 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = PyList_Check(__pyx_v_other); + __pyx_t_1 = (__pyx_t_5 != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":253 + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other # <<<<<<<<<<<<<< + * alpha = asScalar(other) + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(7, 253, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(7, 253, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(7, 253, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 253, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":254 + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * else: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_9 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 254, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_9; + + /* "petsc4py/PETSc/petscvec.pxi":255 + * other, vec = other + * alpha = asScalar(other) + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) # <<<<<<<<<<<<<< + * else: + * alpha = asScalar(other) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_self->vec, __pyx_v_alpha, __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 255, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":252 + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): # <<<<<<<<<<<<<< + * other, vec = other + * alpha = asScalar(other) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":257 + * CHKERR( VecAXPY(self.vec, alpha, vec.vec) ) + * else: + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecShift(self.vec, alpha) ) + * return self + */ + /*else*/ { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_9 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 257, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_9; + + /* "petsc4py/PETSc/petscvec.pxi":258 + * else: + * alpha = asScalar(other) + * CHKERR( VecShift(self.vec, alpha) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecShift(__pyx_v_self->vec, __pyx_v_alpha)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 258, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":259 + * alpha = asScalar(other) + * CHKERR( VecShift(self.vec, alpha) ) + * return self # <<<<<<<<<<<<<< + * + * cdef Vec vec_isub(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":246 + * # inplace binary operations + * + * cdef Vec vec_iadd(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.vec_iadd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_other); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":261 + * return self + * + * cdef Vec vec_isub(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_isub(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PetscScalar __pyx_v_alpha; + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscScalar __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_isub", 0); + __Pyx_INCREF(__pyx_v_other); + + /* "petsc4py/PETSc/petscvec.pxi":262 + * + * cdef Vec vec_isub(Vec self, other): + * cdef PetscScalar alpha = 1 # <<<<<<<<<<<<<< + * cdef Vec vec + * if isinstance(other, Vec): + */ + __pyx_v_alpha = 1.0; + + /* "petsc4py/PETSc/petscvec.pxi":264 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":265 + * cdef Vec vec + * if isinstance(other, Vec): + * alpha = 1; vec = other # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): + */ + __pyx_v_alpha = 1.0; + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 265, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":266 + * if isinstance(other, Vec): + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) # <<<<<<<<<<<<<< + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_self->vec, (-__pyx_v_alpha), __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 266, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":264 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":267 + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): # <<<<<<<<<<<<<< + * other, vec = other + * alpha = asScalar(other) + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_other); + __pyx_t_5 = (__pyx_t_1 != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_2 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = PyList_Check(__pyx_v_other); + __pyx_t_1 = (__pyx_t_5 != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":268 + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other # <<<<<<<<<<<<<< + * alpha = asScalar(other) + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(7, 268, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(7, 268, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(7, 268, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 268, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":269 + * elif isinstance(other, tuple) or isinstance(other, list): + * other, vec = other + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * else: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_9 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 269, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_9; + + /* "petsc4py/PETSc/petscvec.pxi":270 + * other, vec = other + * alpha = asScalar(other) + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) # <<<<<<<<<<<<<< + * else: + * alpha = asScalar(other) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_self->vec, (-__pyx_v_alpha), __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 270, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":267 + * alpha = 1; vec = other + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * elif isinstance(other, tuple) or isinstance(other, list): # <<<<<<<<<<<<<< + * other, vec = other + * alpha = asScalar(other) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":272 + * CHKERR( VecAXPY(self.vec, -alpha, vec.vec) ) + * else: + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecShift(self.vec, -alpha) ) + * return self + */ + /*else*/ { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_9 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 272, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_9; + + /* "petsc4py/PETSc/petscvec.pxi":273 + * else: + * alpha = asScalar(other) + * CHKERR( VecShift(self.vec, -alpha) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecShift(__pyx_v_self->vec, (-__pyx_v_alpha))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 273, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":274 + * alpha = asScalar(other) + * CHKERR( VecShift(self.vec, -alpha) ) + * return self # <<<<<<<<<<<<<< + * + * cdef Vec vec_imul(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":261 + * return self + * + * cdef Vec vec_isub(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.vec_isub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_other); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":276 + * return self + * + * cdef Vec vec_imul(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_imul(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PetscScalar __pyx_v_alpha; + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PetscScalar __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_imul", 0); + + /* "petsc4py/PETSc/petscvec.pxi":277 + * + * cdef Vec vec_imul(Vec self, other): + * cdef PetscScalar alpha = 1 # <<<<<<<<<<<<<< + * cdef Vec vec + * if isinstance(other, Vec): + */ + __pyx_v_alpha = 1.0; + + /* "petsc4py/PETSc/petscvec.pxi":279 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * vec = other + * CHKERR( VecPointwiseMult(self.vec, self.vec, vec.vec) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":280 + * cdef Vec vec + * if isinstance(other, Vec): + * vec = other # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMult(self.vec, self.vec, vec.vec) ) + * else: + */ + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 280, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":281 + * if isinstance(other, Vec): + * vec = other + * CHKERR( VecPointwiseMult(self.vec, self.vec, vec.vec) ) # <<<<<<<<<<<<<< + * else: + * alpha = asScalar(other) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseMult(__pyx_v_self->vec, __pyx_v_self->vec, __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":279 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * vec = other + * CHKERR( VecPointwiseMult(self.vec, self.vec, vec.vec) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":283 + * CHKERR( VecPointwiseMult(self.vec, self.vec, vec.vec) ) + * else: + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecScale(self.vec, alpha) ) + * return self + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_5 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 283, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_5; + + /* "petsc4py/PETSc/petscvec.pxi":284 + * else: + * alpha = asScalar(other) + * CHKERR( VecScale(self.vec, alpha) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_self->vec, __pyx_v_alpha)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 284, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":285 + * alpha = asScalar(other) + * CHKERR( VecScale(self.vec, alpha) ) + * return self # <<<<<<<<<<<<<< + * + * cdef Vec vec_idiv(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":276 + * return self + * + * cdef Vec vec_imul(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.vec_imul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":287 + * return self + * + * cdef Vec vec_idiv(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar one = 1 + * cdef PetscScalar alpha = 1 + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_idiv(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PetscScalar __pyx_v_one; + PetscScalar __pyx_v_alpha; + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PetscScalar __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_idiv", 0); + + /* "petsc4py/PETSc/petscvec.pxi":288 + * + * cdef Vec vec_idiv(Vec self, other): + * cdef PetscScalar one = 1 # <<<<<<<<<<<<<< + * cdef PetscScalar alpha = 1 + * cdef Vec vec + */ + __pyx_v_one = 1.0; + + /* "petsc4py/PETSc/petscvec.pxi":289 + * cdef Vec vec_idiv(Vec self, other): + * cdef PetscScalar one = 1 + * cdef PetscScalar alpha = 1 # <<<<<<<<<<<<<< + * cdef Vec vec + * if isinstance(other, Vec): + */ + __pyx_v_alpha = 1.0; + + /* "petsc4py/PETSc/petscvec.pxi":291 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * vec = other + * CHKERR( VecPointwiseDivide(self.vec, self.vec, vec.vec) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":292 + * cdef Vec vec + * if isinstance(other, Vec): + * vec = other # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseDivide(self.vec, self.vec, vec.vec) ) + * else: + */ + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(7, 292, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":293 + * if isinstance(other, Vec): + * vec = other + * CHKERR( VecPointwiseDivide(self.vec, self.vec, vec.vec) ) # <<<<<<<<<<<<<< + * else: + * alpha = asScalar(other) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseDivide(__pyx_v_self->vec, __pyx_v_self->vec, __pyx_v_vec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 293, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":291 + * cdef PetscScalar alpha = 1 + * cdef Vec vec + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * vec = other + * CHKERR( VecPointwiseDivide(self.vec, self.vec, vec.vec) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":295 + * CHKERR( VecPointwiseDivide(self.vec, self.vec, vec.vec) ) + * else: + * alpha = asScalar(other) # <<<<<<<<<<<<<< + * CHKERR( VecScale(self.vec, one/alpha) ) + * return self + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_other); if (unlikely(__pyx_t_5 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(7, 295, __pyx_L1_error) + __pyx_v_alpha = __pyx_t_5; + + /* "petsc4py/PETSc/petscvec.pxi":296 + * else: + * alpha = asScalar(other) + * CHKERR( VecScale(self.vec, one/alpha) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_self->vec, (__pyx_v_one / __pyx_v_alpha))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 296, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":297 + * alpha = asScalar(other) + * CHKERR( VecScale(self.vec, one/alpha) ) + * return self # <<<<<<<<<<<<<< + * + * # binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":287 + * return self + * + * cdef Vec vec_idiv(Vec self, other): # <<<<<<<<<<<<<< + * cdef PetscScalar one = 1 + * cdef PetscScalar alpha = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.vec_idiv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":301 + * # binary operations + * + * cdef Vec vec_add(Vec self, other): # <<<<<<<<<<<<<< + * return vec_iadd(vec_pos(self), other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_add(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_add", 0); + + /* "petsc4py/PETSc/petscvec.pxi":302 + * + * cdef Vec vec_add(Vec self, other): + * return vec_iadd(vec_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Vec vec_sub(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_iadd(((struct PyPetscVecObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":301 + * # binary operations + * + * cdef Vec vec_add(Vec self, other): # <<<<<<<<<<<<<< + * return vec_iadd(vec_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_add", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":304 + * return vec_iadd(vec_pos(self), other) + * + * cdef Vec vec_sub(Vec self, other): # <<<<<<<<<<<<<< + * return vec_isub(vec_pos(self), other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_sub(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_sub", 0); + + /* "petsc4py/PETSc/petscvec.pxi":305 + * + * cdef Vec vec_sub(Vec self, other): + * return vec_isub(vec_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Vec vec_mul(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_isub(((struct PyPetscVecObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":304 + * return vec_iadd(vec_pos(self), other) + * + * cdef Vec vec_sub(Vec self, other): # <<<<<<<<<<<<<< + * return vec_isub(vec_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_sub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":307 + * return vec_isub(vec_pos(self), other) + * + * cdef Vec vec_mul(Vec self, other): # <<<<<<<<<<<<<< + * return vec_imul(vec_pos(self), other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_mul(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_mul", 0); + + /* "petsc4py/PETSc/petscvec.pxi":308 + * + * cdef Vec vec_mul(Vec self, other): + * return vec_imul(vec_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Vec vec_div(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_imul(((struct PyPetscVecObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":307 + * return vec_isub(vec_pos(self), other) + * + * cdef Vec vec_mul(Vec self, other): # <<<<<<<<<<<<<< + * return vec_imul(vec_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_mul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":310 + * return vec_imul(vec_pos(self), other) + * + * cdef Vec vec_div(Vec self, other): # <<<<<<<<<<<<<< + * return vec_idiv(vec_pos(self), other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_div(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_div", 0); + + /* "petsc4py/PETSc/petscvec.pxi":311 + * + * cdef Vec vec_div(Vec self, other): + * return vec_idiv(vec_pos(self), other) # <<<<<<<<<<<<<< + * + * # reflected binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_idiv(((struct PyPetscVecObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":310 + * return vec_imul(vec_pos(self), other) + * + * cdef Vec vec_div(Vec self, other): # <<<<<<<<<<<<<< + * return vec_idiv(vec_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_div", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":315 + * # reflected binary operations + * + * cdef Vec vec_radd(Vec self, other): # <<<<<<<<<<<<<< + * return vec_add(self, other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_radd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_radd", 0); + + /* "petsc4py/PETSc/petscvec.pxi":316 + * + * cdef Vec vec_radd(Vec self, other): + * return vec_add(self, other) # <<<<<<<<<<<<<< + * + * cdef Vec vec_rsub(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_add(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":315 + * # reflected binary operations + * + * cdef Vec vec_radd(Vec self, other): # <<<<<<<<<<<<<< + * return vec_add(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.vec_radd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":318 + * return vec_add(self, other) + * + * cdef Vec vec_rsub(Vec self, other): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_sub(self, other) + * CHKERR( VecScale(vec.vec, -1) ) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rsub(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_rsub", 0); + + /* "petsc4py/PETSc/petscvec.pxi":319 + * + * cdef Vec vec_rsub(Vec self, other): + * cdef Vec vec = vec_sub(self, other) # <<<<<<<<<<<<<< + * CHKERR( VecScale(vec.vec, -1) ) + * return vec + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_sub(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":320 + * cdef Vec vec_rsub(Vec self, other): + * cdef Vec vec = vec_sub(self, other) + * CHKERR( VecScale(vec.vec, -1) ) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_vec->vec, -1.0)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":321 + * cdef Vec vec = vec_sub(self, other) + * CHKERR( VecScale(vec.vec, -1) ) + * return vec # <<<<<<<<<<<<<< + * + * cdef Vec vec_rmul(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = __pyx_v_vec; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":318 + * return vec_add(self, other) + * + * cdef Vec vec_rsub(Vec self, other): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_sub(self, other) + * CHKERR( VecScale(vec.vec, -1) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_rsub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":323 + * return vec + * + * cdef Vec vec_rmul(Vec self, other): # <<<<<<<<<<<<<< + * return vec_mul(self, other) + * + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rmul(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_rmul", 0); + + /* "petsc4py/PETSc/petscvec.pxi":324 + * + * cdef Vec vec_rmul(Vec self, other): + * return vec_mul(self, other) # <<<<<<<<<<<<<< + * + * cdef Vec vec_rdiv(Vec self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_mul(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":323 + * return vec + * + * cdef Vec vec_rmul(Vec self, other): # <<<<<<<<<<<<<< + * return vec_mul(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.vec_rmul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":326 + * return vec_mul(self, other) + * + * cdef Vec vec_rdiv(Vec self, other): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_div(self, other) + * CHKERR( VecReciprocal(vec.vec) ) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_vec_rdiv(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_rdiv", 0); + + /* "petsc4py/PETSc/petscvec.pxi":327 + * + * cdef Vec vec_rdiv(Vec self, other): + * cdef Vec vec = vec_div(self, other) # <<<<<<<<<<<<<< + * CHKERR( VecReciprocal(vec.vec) ) + * return vec + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_div(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":328 + * cdef Vec vec_rdiv(Vec self, other): + * cdef Vec vec = vec_div(self, other) + * CHKERR( VecReciprocal(vec.vec) ) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecReciprocal(__pyx_v_vec->vec)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 328, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":329 + * cdef Vec vec = vec_div(self, other) + * CHKERR( VecReciprocal(vec.vec) ) + * return vec # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = __pyx_v_vec; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":326 + * return vec_mul(self, other) + * + * cdef Vec vec_rdiv(Vec self, other): # <<<<<<<<<<<<<< + * cdef Vec vec = vec_div(self, other) + * CHKERR( VecReciprocal(vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_rdiv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":333 + * # -------------------------------------------------------------------- + * + * cdef inline int Vec_Sizes(object size, object bsize, # <<<<<<<<<<<<<< + * PetscInt *b, PetscInt *n, PetscInt *N) except -1: + * Sys_Sizes(size, bsize, b, n, N) + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_Vec_Sizes(PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PetscInt *__pyx_v_b, PetscInt *__pyx_v_n, PetscInt *__pyx_v_N) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Vec_Sizes", 0); + + /* "petsc4py/PETSc/petscvec.pxi":335 + * cdef inline int Vec_Sizes(object size, object bsize, + * PetscInt *b, PetscInt *n, PetscInt *N) except -1: + * Sys_Sizes(size, bsize, b, n, N) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Sys_Sizes(__pyx_v_size, __pyx_v_bsize, __pyx_v_b, __pyx_v_n, __pyx_v_N); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 335, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":336 + * PetscInt *b, PetscInt *n, PetscInt *N) except -1: + * Sys_Sizes(size, bsize, b, n, N) + * return 0 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":333 + * # -------------------------------------------------------------------- + * + * cdef inline int Vec_Sizes(object size, object bsize, # <<<<<<<<<<<<<< + * PetscInt *b, PetscInt *n, PetscInt *N) except -1: + * Sys_Sizes(size, bsize, b, n, N) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":344 + * const PetscScalar*,PetscInsertMode) + * + * cdef inline VecSetValuesFcn* vecsetvalues_fcn(int blocked, int local): # <<<<<<<<<<<<<< + * cdef VecSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = VecSetValuesBlockedLocal + */ + +static CYTHON_INLINE __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn *__pyx_f_8petsc4py_5PETSc_vecsetvalues_fcn(int __pyx_v_blocked, int __pyx_v_local) { + __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn *__pyx_v_setvalues; + __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + __Pyx_RefNannySetupContext("vecsetvalues_fcn", 0); + + /* "petsc4py/PETSc/petscvec.pxi":345 + * + * cdef inline VecSetValuesFcn* vecsetvalues_fcn(int blocked, int local): + * cdef VecSetValuesFcn *setvalues = NULL # <<<<<<<<<<<<<< + * if blocked and local: setvalues = VecSetValuesBlockedLocal + * elif blocked: setvalues = VecSetValuesBlocked + */ + __pyx_v_setvalues = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":346 + * cdef inline VecSetValuesFcn* vecsetvalues_fcn(int blocked, int local): + * cdef VecSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = VecSetValuesBlockedLocal # <<<<<<<<<<<<<< + * elif blocked: setvalues = VecSetValuesBlocked + * elif local: setvalues = VecSetValuesLocal + */ + __pyx_t_2 = (__pyx_v_blocked != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__pyx_v_local != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + __pyx_v_setvalues = VecSetValuesBlockedLocal; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":347 + * cdef VecSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = VecSetValuesBlockedLocal + * elif blocked: setvalues = VecSetValuesBlocked # <<<<<<<<<<<<<< + * elif local: setvalues = VecSetValuesLocal + * else: setvalues = VecSetValues + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_v_setvalues = VecSetValuesBlocked; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":348 + * if blocked and local: setvalues = VecSetValuesBlockedLocal + * elif blocked: setvalues = VecSetValuesBlocked + * elif local: setvalues = VecSetValuesLocal # <<<<<<<<<<<<<< + * else: setvalues = VecSetValues + * return setvalues + */ + __pyx_t_1 = (__pyx_v_local != 0); + if (__pyx_t_1) { + __pyx_v_setvalues = VecSetValuesLocal; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":349 + * elif blocked: setvalues = VecSetValuesBlocked + * elif local: setvalues = VecSetValuesLocal + * else: setvalues = VecSetValues # <<<<<<<<<<<<<< + * return setvalues + * + */ + /*else*/ { + __pyx_v_setvalues = VecSetValues; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":350 + * elif local: setvalues = VecSetValuesLocal + * else: setvalues = VecSetValues + * return setvalues # <<<<<<<<<<<<<< + * + * cdef inline int vecsetvalues(PetscVec V, + */ + __pyx_r = __pyx_v_setvalues; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":344 + * const PetscScalar*,PetscInsertMode) + * + * cdef inline VecSetValuesFcn* vecsetvalues_fcn(int blocked, int local): # <<<<<<<<<<<<<< + * cdef VecSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = VecSetValuesBlockedLocal + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":352 + * return setvalues + * + * cdef inline int vecsetvalues(PetscVec V, # <<<<<<<<<<<<<< + * object oi, object ov, object oim, + * int blocked, int local) except -1: + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_vecsetvalues(Vec __pyx_v_V, PyObject *__pyx_v_oi, PyObject *__pyx_v_ov, PyObject *__pyx_v_oim, int __pyx_v_blocked, int __pyx_v_local) { + PetscInt __pyx_v_bs; + PetscInt __pyx_v_ni; + PetscInt __pyx_v_nv; + PetscInt *__pyx_v_i; + PetscScalar *__pyx_v_v; + CYTHON_UNUSED PyObject *__pyx_v_tmp1 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + __pyx_t_8petsc4py_5PETSc_VecSetValuesFcn *__pyx_v_setvalues; + InsertMode __pyx_v_addv; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + InsertMode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vecsetvalues", 0); + + /* "petsc4py/PETSc/petscvec.pxi":356 + * int blocked, int local) except -1: + * # block size + * cdef PetscInt bs=1 # <<<<<<<<<<<<<< + * if blocked: + * CHKERR( VecGetBlockSize(V, &bs) ) + */ + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/petscvec.pxi":357 + * # block size + * cdef PetscInt bs=1 + * if blocked: # <<<<<<<<<<<<<< + * CHKERR( VecGetBlockSize(V, &bs) ) + * if bs < 1: bs = 1 + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":358 + * cdef PetscInt bs=1 + * if blocked: + * CHKERR( VecGetBlockSize(V, &bs) ) # <<<<<<<<<<<<<< + * if bs < 1: bs = 1 + * # indices and values + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetBlockSize(__pyx_v_V, (&__pyx_v_bs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 358, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":359 + * if blocked: + * CHKERR( VecGetBlockSize(V, &bs) ) + * if bs < 1: bs = 1 # <<<<<<<<<<<<<< + * # indices and values + * cdef PetscInt ni=0, nv=0 + */ + __pyx_t_1 = ((__pyx_v_bs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/petscvec.pxi":357 + * # block size + * cdef PetscInt bs=1 + * if blocked: # <<<<<<<<<<<<<< + * CHKERR( VecGetBlockSize(V, &bs) ) + * if bs < 1: bs = 1 + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":361 + * if bs < 1: bs = 1 + * # indices and values + * cdef PetscInt ni=0, nv=0 # <<<<<<<<<<<<<< + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL + */ + __pyx_v_ni = 0; + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscvec.pxi":362 + * # indices and values + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * cdef object tmp1 = iarray_i(oi, &ni, &i) + */ + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":363 + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * cdef object tmp1 = iarray_i(oi, &ni, &i) + * cdef object tmp2 = iarray_s(ov, &nv, &v) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":364 + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL + * cdef object tmp1 = iarray_i(oi, &ni, &i) # <<<<<<<<<<<<<< + * cdef object tmp2 = iarray_s(ov, &nv, &v) + * if ni*bs != nv: raise ValueError( + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tmp1 = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":365 + * cdef PetscScalar *v=NULL + * cdef object tmp1 = iarray_i(oi, &ni, &i) + * cdef object tmp2 = iarray_s(ov, &nv, &v) # <<<<<<<<<<<<<< + * if ni*bs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nv=%d, bs=%d" % + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_ov, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tmp2 = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":366 + * cdef object tmp1 = iarray_i(oi, &ni, &i) + * cdef object tmp2 = iarray_s(ov, &nv, &v) + * if ni*bs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nv=%d, bs=%d" % + * (toInt(ni), toInt(nv), toInt(bs)) ) + */ + __pyx_t_1 = (((__pyx_v_ni * __pyx_v_bs) != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscvec.pxi":368 + * if ni*bs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nv=%d, bs=%d" % + * (toInt(ni), toInt(nv), toInt(bs)) ) # <<<<<<<<<<<<<< + * # VecSetValuesXXX function and insert mode + * cdef VecSetValuesFcn *setvalues = vecsetvalues_fcn(blocked, local) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":367 + * cdef object tmp2 = iarray_s(ov, &nv, &v) + * if ni*bs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nv=%d, bs=%d" % # <<<<<<<<<<<<<< + * (toInt(ni), toInt(nv), toInt(bs)) ) + * # VecSetValuesXXX function and insert mode + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_incompatible_array_sizes_ni_d_nv, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":366 + * cdef object tmp1 = iarray_i(oi, &ni, &i) + * cdef object tmp2 = iarray_s(ov, &nv, &v) + * if ni*bs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nv=%d, bs=%d" % + * (toInt(ni), toInt(nv), toInt(bs)) ) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(7, 366, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":370 + * (toInt(ni), toInt(nv), toInt(bs)) ) + * # VecSetValuesXXX function and insert mode + * cdef VecSetValuesFcn *setvalues = vecsetvalues_fcn(blocked, local) # <<<<<<<<<<<<<< + * cdef PetscInsertMode addv = insertmode(oim) + * # actual call + */ + __pyx_v_setvalues = __pyx_f_8petsc4py_5PETSc_vecsetvalues_fcn(__pyx_v_blocked, __pyx_v_local); + + /* "petsc4py/PETSc/petscvec.pxi":371 + * # VecSetValuesXXX function and insert mode + * cdef VecSetValuesFcn *setvalues = vecsetvalues_fcn(blocked, local) + * cdef PetscInsertMode addv = insertmode(oim) # <<<<<<<<<<<<<< + * # actual call + * CHKERR( setvalues(V, ni, i, v, addv) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_oim); if (unlikely(__pyx_t_7 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(7, 371, __pyx_L1_error) + __pyx_v_addv = __pyx_t_7; + + /* "petsc4py/PETSc/petscvec.pxi":373 + * cdef PetscInsertMode addv = insertmode(oim) + * # actual call + * CHKERR( setvalues(V, ni, i, v, addv) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_v_setvalues(__pyx_v_V, __pyx_v_ni, __pyx_v_i, __pyx_v_v, __pyx_v_addv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 373, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":374 + * # actual call + * CHKERR( setvalues(V, ni, i, v, addv) ) + * return 0 # <<<<<<<<<<<<<< + * + * cdef object vecgetvalues(PetscVec vec, object oindices, object values): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":352 + * return setvalues + * + * cdef inline int vecsetvalues(PetscVec V, # <<<<<<<<<<<<<< + * object oi, object ov, object oim, + * int blocked, int local) except -1: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.vecsetvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp1); + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":376 + * return 0 + * + * cdef object vecgetvalues(PetscVec vec, object oindices, object values): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_vecgetvalues(Vec __pyx_v_vec, PyObject *__pyx_v_oindices, PyObject *__pyx_v_values) { + PetscInt __pyx_v_ni; + PetscInt __pyx_v_nv; + PetscInt *__pyx_v_i; + PetscScalar *__pyx_v_v; + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vecgetvalues", 0); + __Pyx_INCREF(__pyx_v_values); + + /* "petsc4py/PETSc/petscvec.pxi":377 + * + * cdef object vecgetvalues(PetscVec vec, object oindices, object values): + * cdef PetscInt ni=0, nv=0 # <<<<<<<<<<<<<< + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL + */ + __pyx_v_ni = 0; + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscvec.pxi":378 + * cdef object vecgetvalues(PetscVec vec, object oindices, object values): + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * cdef object indices = iarray_i(oindices, &ni, &i) + */ + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":379 + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * cdef object indices = iarray_i(oindices, &ni, &i) + * if values is None: + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":380 + * cdef PetscInt *i=NULL + * cdef PetscScalar *v=NULL + * cdef object indices = iarray_i(oindices, &ni, &i) # <<<<<<<<<<<<<< + * if values is None: + * values = empty_s(ni) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oindices, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_indices = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":381 + * cdef PetscScalar *v=NULL + * cdef object indices = iarray_i(oindices, &ni, &i) + * if values is None: # <<<<<<<<<<<<<< + * values = empty_s(ni) + * values.shape = indices.shape + */ + __pyx_t_2 = (__pyx_v_values == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscvec.pxi":382 + * cdef object indices = iarray_i(oindices, &ni, &i) + * if values is None: + * values = empty_s(ni) # <<<<<<<<<<<<<< + * values.shape = indices.shape + * values = oarray_s(values, &nv, &v) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_s(__pyx_v_ni)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":383 + * if values is None: + * values = empty_s(ni) + * values.shape = indices.shape # <<<<<<<<<<<<<< + * values = oarray_s(values, &nv, &v) + * if (ni != nv): raise ValueError( + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_indices, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_values, __pyx_n_s_shape, __pyx_t_1) < 0) __PYX_ERR(7, 383, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":381 + * cdef PetscScalar *v=NULL + * cdef object indices = iarray_i(oindices, &ni, &i) + * if values is None: # <<<<<<<<<<<<<< + * values = empty_s(ni) + * values.shape = indices.shape + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":384 + * values = empty_s(ni) + * values.shape = indices.shape + * values = oarray_s(values, &nv, &v) # <<<<<<<<<<<<<< + * if (ni != nv): raise ValueError( + * ("incompatible array sizes: " + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_s(__pyx_v_values, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":385 + * values.shape = indices.shape + * values = oarray_s(values, &nv, &v) + * if (ni != nv): raise ValueError( # <<<<<<<<<<<<<< + * ("incompatible array sizes: " + * "ni=%d, nv=%d") % (toInt(ni), toInt(nv))) + */ + __pyx_t_3 = ((__pyx_v_ni != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscvec.pxi":387 + * if (ni != nv): raise ValueError( + * ("incompatible array sizes: " + * "ni=%d, nv=%d") % (toInt(ni), toInt(nv))) # <<<<<<<<<<<<<< + * CHKERR( VecGetValues(vec, ni, i, v) ) + * return values + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_incompatible_array_sizes_ni_d_nv_2, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":385 + * values.shape = indices.shape + * values = oarray_s(values, &nv, &v) + * if (ni != nv): raise ValueError( # <<<<<<<<<<<<<< + * ("incompatible array sizes: " + * "ni=%d, nv=%d") % (toInt(ni), toInt(nv))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(7, 385, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":388 + * ("incompatible array sizes: " + * "ni=%d, nv=%d") % (toInt(ni), toInt(nv))) + * CHKERR( VecGetValues(vec, ni, i, v) ) # <<<<<<<<<<<<<< + * return values + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetValues(__pyx_v_vec, __pyx_v_ni, __pyx_v_i, __pyx_v_v)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 388, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":389 + * "ni=%d, nv=%d") % (toInt(ni), toInt(nv))) + * CHKERR( VecGetValues(vec, ni, i, v) ) + * return values # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_values); + __pyx_r = __pyx_v_values; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":376 + * return 0 + * + * cdef object vecgetvalues(PetscVec vec, object oindices, object values): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, nv=0 + * cdef PetscInt *i=NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.vecgetvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XDECREF(__pyx_v_values); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":393 + * # -------------------------------------------------------------------- + * + * cdef inline _Vec_buffer vec_getbuffer_r(Vec self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 1 + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_f_8petsc4py_5PETSc_vec_getbuffer_r(struct PyPetscVecObject *__pyx_v_self) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_getbuffer_r", 0); + + /* "petsc4py/PETSc/petscvec.pxi":394 + * + * cdef inline _Vec_buffer vec_getbuffer_r(Vec self): + * cdef _Vec_buffer buf = _Vec_buffer(self) # <<<<<<<<<<<<<< + * buf.readonly = 1 + * return buf + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":395 + * cdef inline _Vec_buffer vec_getbuffer_r(Vec self): + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 1 # <<<<<<<<<<<<<< + * return buf + * + */ + __pyx_v_buf->readonly = 1; + + /* "petsc4py/PETSc/petscvec.pxi":396 + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 1 + * return buf # <<<<<<<<<<<<<< + * + * cdef inline _Vec_buffer vec_getbuffer_w(Vec self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_buf)); + __pyx_r = __pyx_v_buf; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":393 + * # -------------------------------------------------------------------- + * + * cdef inline _Vec_buffer vec_getbuffer_r(Vec self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.vec_getbuffer_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":398 + * return buf + * + * cdef inline _Vec_buffer vec_getbuffer_w(Vec self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 0 + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_f_8petsc4py_5PETSc_vec_getbuffer_w(struct PyPetscVecObject *__pyx_v_self) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_getbuffer_w", 0); + + /* "petsc4py/PETSc/petscvec.pxi":399 + * + * cdef inline _Vec_buffer vec_getbuffer_w(Vec self): + * cdef _Vec_buffer buf = _Vec_buffer(self) # <<<<<<<<<<<<<< + * buf.readonly = 0 + * return buf + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":400 + * cdef inline _Vec_buffer vec_getbuffer_w(Vec self): + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 0 # <<<<<<<<<<<<<< + * return buf + * + */ + __pyx_v_buf->readonly = 0; + + /* "petsc4py/PETSc/petscvec.pxi":401 + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 0 + * return buf # <<<<<<<<<<<<<< + * + * cdef inline ndarray vec_getarray_r(Vec self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_buf)); + __pyx_r = __pyx_v_buf; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":398 + * return buf + * + * cdef inline _Vec_buffer vec_getbuffer_w(Vec self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.readonly = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.vec_getbuffer_w", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":403 + * return buf + * + * cdef inline ndarray vec_getarray_r(Vec self): # <<<<<<<<<<<<<< + * return asarray(vec_getbuffer_r(self)) + * + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_vec_getarray_r(struct PyPetscVecObject *__pyx_v_self) { + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_getarray_r", 0); + + /* "petsc4py/PETSc/petscvec.pxi":404 + * + * cdef inline ndarray vec_getarray_r(Vec self): + * return asarray(vec_getbuffer_r(self)) # <<<<<<<<<<<<<< + * + * cdef inline ndarray vec_getarray_w(Vec self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getbuffer_r(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":403 + * return buf + * + * cdef inline ndarray vec_getarray_r(Vec self): # <<<<<<<<<<<<<< + * return asarray(vec_getbuffer_r(self)) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_getarray_r", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":406 + * return asarray(vec_getbuffer_r(self)) + * + * cdef inline ndarray vec_getarray_w(Vec self): # <<<<<<<<<<<<<< + * return asarray(vec_getbuffer_w(self)) + * + */ + +static CYTHON_INLINE PyArrayObject *__pyx_f_8petsc4py_5PETSc_vec_getarray_w(struct PyPetscVecObject *__pyx_v_self) { + PyArrayObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_getarray_w", 0); + + /* "petsc4py/PETSc/petscvec.pxi":407 + * + * cdef inline ndarray vec_getarray_w(Vec self): + * return asarray(vec_getbuffer_w(self)) # <<<<<<<<<<<<<< + * + * cdef inline int vec_setarray(Vec self, object o) except -1: + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getbuffer_w(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":406 + * return asarray(vec_getbuffer_r(self)) + * + * cdef inline ndarray vec_getarray_w(Vec self): # <<<<<<<<<<<<<< + * return asarray(vec_getbuffer_w(self)) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.vec_getarray_w", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":409 + * return asarray(vec_getbuffer_w(self)) + * + * cdef inline int vec_setarray(Vec self, object o) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt na=0, nv=0, i=0 + * cdef PetscScalar *va=NULL, *vv=NULL + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_vec_setarray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_o) { + PetscInt __pyx_v_na; + PetscInt __pyx_v_nv; + PetscInt __pyx_v_i; + PetscScalar *__pyx_v_va; + PetscScalar *__pyx_v_vv; + PyArrayObject *__pyx_v_ary = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscInt __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + char const *__pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_setarray", 0); + + /* "petsc4py/PETSc/petscvec.pxi":410 + * + * cdef inline int vec_setarray(Vec self, object o) except -1: + * cdef PetscInt na=0, nv=0, i=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *va=NULL, *vv=NULL + * cdef ndarray ary = iarray_s(o, &na, &va) + */ + __pyx_v_na = 0; + __pyx_v_nv = 0; + __pyx_v_i = 0; + + /* "petsc4py/PETSc/petscvec.pxi":411 + * cdef inline int vec_setarray(Vec self, object o) except -1: + * cdef PetscInt na=0, nv=0, i=0 + * cdef PetscScalar *va=NULL, *vv=NULL # <<<<<<<<<<<<<< + * cdef ndarray ary = iarray_s(o, &na, &va) + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + */ + __pyx_v_va = NULL; + __pyx_v_vv = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":412 + * cdef PetscInt na=0, nv=0, i=0 + * cdef PetscScalar *va=NULL, *vv=NULL + * cdef ndarray ary = iarray_s(o, &na, &va) # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_o, (&__pyx_v_na), (&__pyx_v_va))); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ary = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":413 + * cdef PetscScalar *va=NULL, *vv=NULL + * cdef ndarray ary = iarray_s(o, &na, &va) + * CHKERR( VecGetLocalSize(self.vec, &nv) ) # <<<<<<<<<<<<<< + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( + * "array size %d incompatible with vector local size %d" % + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_nv))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 413, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":414 + * cdef ndarray ary = iarray_s(o, &na, &va) + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d incompatible with vector local size %d" % + * (toInt(na), toInt(nv)) ) + */ + __pyx_t_4 = ((__pyx_v_na != __pyx_v_nv) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((PyArray_NDIM(__pyx_v_ary) > 0) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscvec.pxi":416 + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( + * "array size %d incompatible with vector local size %d" % + * (toInt(na), toInt(nv)) ) # <<<<<<<<<<<<<< + * CHKERR( VecGetArray(self.vec, &vv) ) + * try: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":415 + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( + * "array size %d incompatible with vector local size %d" % # <<<<<<<<<<<<<< + * (toInt(na), toInt(nv)) ) + * CHKERR( VecGetArray(self.vec, &vv) ) + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_incompatible_with_v, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":414 + * cdef ndarray ary = iarray_s(o, &na, &va) + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * if (na != nv) and PyArray_NDIM(ary) > 0: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d incompatible with vector local size %d" % + * (toInt(na), toInt(nv)) ) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(7, 414, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":417 + * "array size %d incompatible with vector local size %d" % + * (toInt(na), toInt(nv)) ) + * CHKERR( VecGetArray(self.vec, &vv) ) # <<<<<<<<<<<<<< + * try: + * if PyArray_NDIM(ary) == 0: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArray(__pyx_v_self->vec, (&__pyx_v_vv))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 417, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":418 + * (toInt(na), toInt(nv)) ) + * CHKERR( VecGetArray(self.vec, &vv) ) + * try: # <<<<<<<<<<<<<< + * if PyArray_NDIM(ary) == 0: + * for i from 0 <= i < nv: + */ + /*try:*/ { + + /* "petsc4py/PETSc/petscvec.pxi":419 + * CHKERR( VecGetArray(self.vec, &vv) ) + * try: + * if PyArray_NDIM(ary) == 0: # <<<<<<<<<<<<<< + * for i from 0 <= i < nv: + * vv[i] = va[0] + */ + __pyx_t_3 = ((PyArray_NDIM(__pyx_v_ary) == 0) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscvec.pxi":420 + * try: + * if PyArray_NDIM(ary) == 0: + * for i from 0 <= i < nv: # <<<<<<<<<<<<<< + * vv[i] = va[0] + * else: + */ + __pyx_t_7 = __pyx_v_nv; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { + + /* "petsc4py/PETSc/petscvec.pxi":421 + * if PyArray_NDIM(ary) == 0: + * for i from 0 <= i < nv: + * vv[i] = va[0] # <<<<<<<<<<<<<< + * else: + * CHKERR( PetscMemcpy(vv, va, nv*sizeof(PetscScalar)) ) + */ + (__pyx_v_vv[__pyx_v_i]) = (__pyx_v_va[0]); + } + + /* "petsc4py/PETSc/petscvec.pxi":419 + * CHKERR( VecGetArray(self.vec, &vv) ) + * try: + * if PyArray_NDIM(ary) == 0: # <<<<<<<<<<<<<< + * for i from 0 <= i < nv: + * vv[i] = va[0] + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/petscvec.pxi":423 + * vv[i] = va[0] + * else: + * CHKERR( PetscMemcpy(vv, va, nv*sizeof(PetscScalar)) ) # <<<<<<<<<<<<<< + * finally: + * CHKERR( VecRestoreArray(self.vec, &vv) ) + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMemcpy(__pyx_v_vv, __pyx_v_va, (((size_t)__pyx_v_nv) * (sizeof(PetscScalar))))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 423, __pyx_L7_error) + } + __pyx_L9:; + } + + /* "petsc4py/PETSc/petscvec.pxi":425 + * CHKERR( PetscMemcpy(vv, va, nv*sizeof(PetscScalar)) ) + * finally: + * CHKERR( VecRestoreArray(self.vec, &vv) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArray(__pyx_v_self->vec, (&__pyx_v_vv))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 425, __pyx_L1_error) + goto __pyx_L8; + } + __pyx_L7_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArray(__pyx_v_self->vec, (&__pyx_v_vv))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 425, __pyx_L13_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + } + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; + goto __pyx_L1_error; + __pyx_L13_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + goto __pyx_L1_error; + } + __pyx_L8:; + } + + /* "petsc4py/PETSc/petscvec.pxi":426 + * finally: + * CHKERR( VecRestoreArray(self.vec, &vv) ) + * return 0 # <<<<<<<<<<<<<< + * + * cdef object vec_getitem(Vec self, object i): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":409 + * return asarray(vec_getbuffer_w(self)) + * + * cdef inline int vec_setarray(Vec self, object o) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt na=0, nv=0, i=0 + * cdef PetscScalar *va=NULL, *vv=NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.vec_setarray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ary); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":428 + * return 0 + * + * cdef object vec_getitem(Vec self, object i): # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * if i is Ellipsis: + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_vec_getitem(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i) { + PetscInt __pyx_v_N; + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_v_stop = NULL; + PyObject *__pyx_v_stride = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_getitem", 0); + __Pyx_INCREF(__pyx_v_i); + + /* "petsc4py/PETSc/petscvec.pxi":429 + * + * cdef object vec_getitem(Vec self, object i): + * cdef PetscInt N=0 # <<<<<<<<<<<<<< + * if i is Ellipsis: + * return asarray(self) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscvec.pxi":430 + * cdef object vec_getitem(Vec self, object i): + * cdef PetscInt N=0 + * if i is Ellipsis: # <<<<<<<<<<<<<< + * return asarray(self) + * if isinstance(i, slice): + */ + __pyx_t_1 = (__pyx_v_i == __pyx_builtin_Ellipsis); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":431 + * cdef PetscInt N=0 + * if i is Ellipsis: + * return asarray(self) # <<<<<<<<<<<<<< + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(((PyObject *)__pyx_v_self))); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":430 + * cdef object vec_getitem(Vec self, object i): + * cdef PetscInt N=0 + * if i is Ellipsis: # <<<<<<<<<<<<<< + * return asarray(self) + * if isinstance(i, slice): + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":432 + * if i is Ellipsis: + * return asarray(self) + * if isinstance(i, slice): # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + */ + __pyx_t_2 = PySlice_Check(__pyx_v_i); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":433 + * return asarray(self) + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) # <<<<<<<<<<<<<< + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetSize(__pyx_v_self->vec, (&__pyx_v_N))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 433, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":434 + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) # <<<<<<<<<<<<<< + * i = arange(start, stop, stride) + * return vecgetvalues(self.vec, i, None) + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_indices); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(7, 434, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + __pyx_t_7 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; + index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(7, 434, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(7, 434, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_start = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_stop = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_v_stride = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":435 + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) # <<<<<<<<<<<<<< + * return vecgetvalues(self.vec, i, None) + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":432 + * if i is Ellipsis: + * return asarray(self) + * if isinstance(i, slice): # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":436 + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) + * return vecgetvalues(self.vec, i, None) # <<<<<<<<<<<<<< + * + * cdef int vec_setitem(Vec self, object i, object v) except -1: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_vecgetvalues(__pyx_v_self->vec, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":428 + * return 0 + * + * cdef object vec_getitem(Vec self, object i): # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * if i is Ellipsis: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.vec_getitem", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_stop); + __Pyx_XDECREF(__pyx_v_stride); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":438 + * return vecgetvalues(self.vec, i, None) + * + * cdef int vec_setitem(Vec self, object i, object v) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * if i is Ellipsis: + */ + +static int __pyx_f_8petsc4py_5PETSc_vec_setitem(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_v) { + PetscInt __pyx_v_N; + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_v_stop = NULL; + PyObject *__pyx_v_stride = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_setitem", 0); + __Pyx_INCREF(__pyx_v_i); + + /* "petsc4py/PETSc/petscvec.pxi":439 + * + * cdef int vec_setitem(Vec self, object i, object v) except -1: + * cdef PetscInt N=0 # <<<<<<<<<<<<<< + * if i is Ellipsis: + * return vec_setarray(self, v) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscvec.pxi":440 + * cdef int vec_setitem(Vec self, object i, object v) except -1: + * cdef PetscInt N=0 + * if i is Ellipsis: # <<<<<<<<<<<<<< + * return vec_setarray(self, v) + * if isinstance(i, slice): + */ + __pyx_t_1 = (__pyx_v_i == __pyx_builtin_Ellipsis); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscvec.pxi":441 + * cdef PetscInt N=0 + * if i is Ellipsis: + * return vec_setarray(self, v) # <<<<<<<<<<<<<< + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_vec_setarray(__pyx_v_self, __pyx_v_v); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 441, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":440 + * cdef int vec_setitem(Vec self, object i, object v) except -1: + * cdef PetscInt N=0 + * if i is Ellipsis: # <<<<<<<<<<<<<< + * return vec_setarray(self, v) + * if isinstance(i, slice): + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":442 + * if i is Ellipsis: + * return vec_setarray(self, v) + * if isinstance(i, slice): # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + */ + __pyx_t_2 = PySlice_Check(__pyx_v_i); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":443 + * return vec_setarray(self, v) + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) # <<<<<<<<<<<<<< + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetSize(__pyx_v_self->vec, (&__pyx_v_N))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 443, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":444 + * if isinstance(i, slice): + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) # <<<<<<<<<<<<<< + * i = arange(start, stop, stride) + * vecsetvalues(self.vec, i, v, None, 0, 0) + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_i, __pyx_n_s_indices); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + __pyx_t_5 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(7, 444, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_7 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(7, 444, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(7, 444, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_start = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_v_stop = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_stride = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":445 + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, i, v, None, 0, 0) + * return 0 + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":442 + * if i is Ellipsis: + * return vec_setarray(self, v) + * if isinstance(i, slice): # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * start, stop, stride = i.indices(toInt(N)) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":446 + * start, stop, stride = i.indices(toInt(N)) + * i = arange(start, stop, stride) + * vecsetvalues(self.vec, i, v, None, 0, 0) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_vecsetvalues(__pyx_v_self->vec, __pyx_v_i, __pyx_v_v, Py_None, 0, 0); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 446, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":447 + * i = arange(start, stop, stride) + * vecsetvalues(self.vec, i, v, None, 0, 0) + * return 0 # <<<<<<<<<<<<<< + * + * cdef vec_get_dlpack_ctx(Vec self): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":438 + * return vecgetvalues(self.vec, i, None) + * + * cdef int vec_setitem(Vec self, object i, object v) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * if i is Ellipsis: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.vec_setitem", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_stop); + __Pyx_XDECREF(__pyx_v_stride); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":449 + * return 0 + * + * cdef vec_get_dlpack_ctx(Vec self): # <<<<<<<<<<<<<< + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0 + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_vec_get_dlpack_ctx(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_v_ctx0 = 0; + PetscInt __pyx_v_n; + int64_t __pyx_v_ndim; + int64_t *__pyx_v_shape_arr; + int64_t *__pyx_v_strides_arr; + PyObject *__pyx_v_s1 = 0; + PyObject *__pyx_v_s2 = 0; + PetscInt __pyx_v_devId; + PetscMemType __pyx_v_mtype; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_v_devType_ = NULL; + PyObject *__pyx_v_dtype = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int64_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vec_get_dlpack_ctx", 0); + + /* "petsc4py/PETSc/petscvec.pxi":450 + * + * cdef vec_get_dlpack_ctx(Vec self): + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * cdef int64_t ndim = 1 + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ctx0 = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":451 + * cdef vec_get_dlpack_ctx(Vec self): + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * cdef int64_t ndim = 1 + * cdef int64_t* shape_arr = NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscvec.pxi":452 + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0 + * cdef int64_t ndim = 1 # <<<<<<<<<<<<<< + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + */ + __pyx_v_ndim = 1; + + /* "petsc4py/PETSc/petscvec.pxi":453 + * cdef PetscInt n = 0 + * cdef int64_t ndim = 1 + * cdef int64_t* shape_arr = NULL # <<<<<<<<<<<<<< + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None + */ + __pyx_v_shape_arr = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":454 + * cdef int64_t ndim = 1 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL # <<<<<<<<<<<<<< + * cdef object s1 = None + * cdef object s2 = None + */ + __pyx_v_strides_arr = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":455 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None # <<<<<<<<<<<<<< + * cdef object s2 = None + * cdef PetscInt devId = 0 + */ + __Pyx_INCREF(Py_None); + __pyx_v_s1 = Py_None; + + /* "petsc4py/PETSc/petscvec.pxi":456 + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None + * cdef object s2 = None # <<<<<<<<<<<<<< + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + */ + __Pyx_INCREF(Py_None); + __pyx_v_s2 = Py_None; + + /* "petsc4py/PETSc/petscvec.pxi":457 + * cdef object s1 = None + * cdef object s2 = None + * cdef PetscInt devId = 0 # <<<<<<<<<<<<<< + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view + */ + __pyx_v_devId = 0; + + /* "petsc4py/PETSc/petscvec.pxi":458 + * cdef object s2 = None + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST # <<<<<<<<<<<<<< + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + */ + __pyx_v_mtype = PETSC_MEMTYPE_HOST; + + /* "petsc4py/PETSc/petscvec.pxi":459 + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view # <<<<<<<<<<<<<< + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + __pyx_t_2 = (__pyx_v_ctx0 == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscvec.pxi":460 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) # <<<<<<<<<<<<<< + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_shape_arr)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_s1, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":461 + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * shape_arr[0] = n + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_4, NULL, ((void **)(&__pyx_v_strides_arr)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_s2, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":462 + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( VecGetLocalSize(self.vec, &n) ) # <<<<<<<<<<<<<< + * shape_arr[0] = n + * strides_arr[0] = 1 + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 462, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":463 + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * shape_arr[0] = n # <<<<<<<<<<<<<< + * strides_arr[0] = 1 + * else: + */ + (__pyx_v_shape_arr[0]) = ((int64_t)__pyx_v_n); + + /* "petsc4py/PETSc/petscvec.pxi":464 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * shape_arr[0] = n + * strides_arr[0] = 1 # <<<<<<<<<<<<<< + * else: + * (_, _, ndim, s1, s2) = ctx0 + */ + (__pyx_v_strides_arr[0]) = 1; + + /* "petsc4py/PETSc/petscvec.pxi":459 + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view # <<<<<<<<<<<<<< + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":466 + * strides_arr[0] = 1 + * else: + * (_, _, ndim, s1, s2) = ctx0 # <<<<<<<<<<<<<< + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA, PETSC_MEMTYPE_HIP : kDLROCM } + */ + /*else*/ { + if ((likely(PyTuple_CheckExact(__pyx_v_ctx0))) || (PyList_CheckExact(__pyx_v_ctx0))) { + PyObject* sequence = __pyx_v_ctx0; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(7, 466, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + __pyx_t_7 = PyList_GET_ITEM(sequence, 3); + __pyx_t_8 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(7, 466, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + __pyx_t_9 = PyObject_GetIter(__pyx_v_ctx0); if (unlikely(!__pyx_t_9)) __PYX_ERR(7, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(7, 466, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(7, 466, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_6); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(7, 466, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v__ = __pyx_t_1; + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_v_ndim = __pyx_t_11; + __Pyx_DECREF_SET(__pyx_v_s1, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_s2, __pyx_t_8); + __pyx_t_8 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":468 + * (_, _, ndim, s1, s2) = ctx0 + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA, PETSC_MEMTYPE_HIP : kDLROCM } # <<<<<<<<<<<<<< + * CHKERR( VecGetCurrentMemType(self.vec, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + */ + __pyx_t_8 = __Pyx_PyDict_NewPresized(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __Pyx_PyInt_From_PetscMemType(PETSC_MEMTYPE_HOST); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_6) < 0) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscMemType(PETSC_MEMTYPE_CUDA); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCUDA); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_t_8, __pyx_t_6, __pyx_t_7) < 0) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyInt_From_PetscMemType(PETSC_MEMTYPE_HIP); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLROCM); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_6) < 0) __PYX_ERR(7, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_devType_ = ((PyObject*)__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":469 + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA, PETSC_MEMTYPE_HIP : kDLROCM } + * CHKERR( VecGetCurrentMemType(self.vec, &mtype) ) # <<<<<<<<<<<<<< + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetCurrentMemType(__pyx_v_self->vec, (&__pyx_v_mtype))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 469, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":470 + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA, PETSC_MEMTYPE_HIP : kDLROCM } + * CHKERR( VecGetCurrentMemType(self.vec, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) # <<<<<<<<<<<<<< + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) + */ + __pyx_t_8 = __Pyx_PyInt_From_PetscMemType(__pyx_v_mtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyDict_GetItemDefault(__pyx_v_devType_, __pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_dtype = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":471 + * CHKERR( VecGetCurrentMemType(self.vec, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + */ + __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_7, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(7, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscvec.pxi":472 + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) # <<<<<<<<<<<<<< + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetDeviceId(((PetscObject)__pyx_v_self->vec), (&__pyx_v_devId))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 472, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":471 + * CHKERR( VecGetCurrentMemType(self.vec, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":473 + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', ctx0) + * return ctx0 + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_devId); if (unlikely(!__pyx_t_6)) __PYX_ERR(7, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_7)) __PYX_ERR(7, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_dtype); + __Pyx_GIVEREF(__pyx_v_dtype); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_dtype); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); + __Pyx_INCREF(__pyx_v_s1); + __Pyx_GIVEREF(__pyx_v_s1); + PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_s1); + __Pyx_INCREF(__pyx_v_s2); + __Pyx_GIVEREF(__pyx_v_s2); + PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_v_s2); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_ctx0, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":474 + * CHKERR( PetscObjectGetDeviceId(self.vec, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) # <<<<<<<<<<<<<< + * return ctx0 + * + */ + __pyx_t_8 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), __pyx_v_ctx0); if (unlikely(!__pyx_t_8)) __PYX_ERR(7, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":475 + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) + * return ctx0 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_ctx0); + __pyx_r = __pyx_v_ctx0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":449 + * return 0 + * + * cdef vec_get_dlpack_ctx(Vec self): # <<<<<<<<<<<<<< + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.vec_get_dlpack_ctx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx0); + __Pyx_XDECREF(__pyx_v_s1); + __Pyx_XDECREF(__pyx_v_s2); + __Pyx_XDECREF(__pyx_v__); + __Pyx_XDECREF(__pyx_v_devType_); + __Pyx_XDECREF(__pyx_v_dtype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":479 + * # -------------------------------------------------------------------- + * + * cdef int Vec_AcquireArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: # <<<<<<<<<<<<<< + * if ro: CHKERR( VecGetArrayRead(v, a) ) + * else: CHKERR( VecGetArray(v, a) ) + */ + +static int __pyx_f_8petsc4py_5PETSc_Vec_AcquireArray(Vec __pyx_v_v, PetscScalar **__pyx_v_a, int __pyx_v_ro) { + int __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/petscvec.pxi":480 + * + * cdef int Vec_AcquireArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: + * if ro: CHKERR( VecGetArrayRead(v, a) ) # <<<<<<<<<<<<<< + * else: CHKERR( VecGetArray(v, a) ) + * return 0 + */ + __pyx_t_1 = (__pyx_v_ro != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayRead(__pyx_v_v, ((PetscScalar const **)__pyx_v_a))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 480, __pyx_L1_error) + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":481 + * cdef int Vec_AcquireArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: + * if ro: CHKERR( VecGetArrayRead(v, a) ) + * else: CHKERR( VecGetArray(v, a) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArray(__pyx_v_v, __pyx_v_a)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 481, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":482 + * if ro: CHKERR( VecGetArrayRead(v, a) ) + * else: CHKERR( VecGetArray(v, a) ) + * return 0 # <<<<<<<<<<<<<< + * + * cdef int Vec_ReleaseArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":479 + * # -------------------------------------------------------------------- + * + * cdef int Vec_AcquireArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: # <<<<<<<<<<<<<< + * if ro: CHKERR( VecGetArrayRead(v, a) ) + * else: CHKERR( VecGetArray(v, a) ) + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.Vec_AcquireArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":484 + * return 0 + * + * cdef int Vec_ReleaseArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: # <<<<<<<<<<<<<< + * if ro: CHKERR( VecRestoreArrayRead(v, a) ) + * else: CHKERR( VecRestoreArray(v, a) ) + */ + +static int __pyx_f_8petsc4py_5PETSc_Vec_ReleaseArray(Vec __pyx_v_v, PetscScalar **__pyx_v_a, int __pyx_v_ro) { + int __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/petscvec.pxi":485 + * + * cdef int Vec_ReleaseArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: + * if ro: CHKERR( VecRestoreArrayRead(v, a) ) # <<<<<<<<<<<<<< + * else: CHKERR( VecRestoreArray(v, a) ) + * return 0 + */ + __pyx_t_1 = (__pyx_v_ro != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayRead(__pyx_v_v, ((PetscScalar const **)__pyx_v_a))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 485, __pyx_L1_error) + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":486 + * cdef int Vec_ReleaseArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: + * if ro: CHKERR( VecRestoreArrayRead(v, a) ) + * else: CHKERR( VecRestoreArray(v, a) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArray(__pyx_v_v, __pyx_v_a)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 486, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":487 + * if ro: CHKERR( VecRestoreArrayRead(v, a) ) + * else: CHKERR( VecRestoreArray(v, a) ) + * return 0 # <<<<<<<<<<<<<< + * + * cdef class _Vec_buffer: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":484 + * return 0 + * + * cdef int Vec_ReleaseArray(PetscVec v, PetscScalar *a[], int ro) nogil except -1: # <<<<<<<<<<<<<< + * if ro: CHKERR( VecRestoreArrayRead(v, a) ) + * else: CHKERR( VecRestoreArray(v, a) ) + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.Vec_ReleaseArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":497 + * cdef bint hasarray + * + * def __cinit__(self, Vec vec, bint readonly=0): # <<<<<<<<<<<<<< + * cdef PetscVec v = vec.vec + * CHKERR( PetscINCREF(&v) ) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_v_readonly; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_readonly,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(7, 497, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + if (values[1]) { + __pyx_v_readonly = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_readonly == (int)-1) && PyErr_Occurred())) __PYX_ERR(7, 497, __pyx_L3_error) + } else { + __pyx_v_readonly = ((int)0); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(7, 497, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(7, 497, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer___cinit__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), __pyx_v_vec, __pyx_v_readonly); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer___cinit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, int __pyx_v_readonly) { + Vec __pyx_v_v; + int __pyx_r; + __Pyx_RefNannyDeclarations + Vec __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":498 + * + * def __cinit__(self, Vec vec, bint readonly=0): + * cdef PetscVec v = vec.vec # <<<<<<<<<<<<<< + * CHKERR( PetscINCREF(&v) ) + * self.vec = v + */ + __pyx_t_1 = __pyx_v_vec->vec; + __pyx_v_v = __pyx_t_1; + + /* "petsc4py/PETSc/petscvec.pxi":499 + * def __cinit__(self, Vec vec, bint readonly=0): + * cdef PetscVec v = vec.vec + * CHKERR( PetscINCREF(&v) ) # <<<<<<<<<<<<<< + * self.vec = v + * self.size = 0 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&__pyx_v_v)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 499, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":500 + * cdef PetscVec v = vec.vec + * CHKERR( PetscINCREF(&v) ) + * self.vec = v # <<<<<<<<<<<<<< + * self.size = 0 + * self.data = NULL + */ + __pyx_v_self->vec = __pyx_v_v; + + /* "petsc4py/PETSc/petscvec.pxi":501 + * CHKERR( PetscINCREF(&v) ) + * self.vec = v + * self.size = 0 # <<<<<<<<<<<<<< + * self.data = NULL + * self.readonly = 1 if readonly else 0 + */ + __pyx_v_self->size = 0; + + /* "petsc4py/PETSc/petscvec.pxi":502 + * self.vec = v + * self.size = 0 + * self.data = NULL # <<<<<<<<<<<<<< + * self.readonly = 1 if readonly else 0 + * self.hasarray = 0 + */ + __pyx_v_self->data = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":503 + * self.size = 0 + * self.data = NULL + * self.readonly = 1 if readonly else 0 # <<<<<<<<<<<<<< + * self.hasarray = 0 + * + */ + if ((__pyx_v_readonly != 0)) { + __pyx_t_3 = 1; + } else { + __pyx_t_3 = 0; + } + __pyx_v_self->readonly = __pyx_t_3; + + /* "petsc4py/PETSc/petscvec.pxi":504 + * self.data = NULL + * self.readonly = 1 if readonly else 0 + * self.hasarray = 0 # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->hasarray = 0; + + /* "petsc4py/PETSc/petscvec.pxi":497 + * cdef bint hasarray + * + * def __cinit__(self, Vec vec, bint readonly=0): # <<<<<<<<<<<<<< + * cdef PetscVec v = vec.vec + * CHKERR( PetscINCREF(&v) ) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":506 + * self.hasarray = 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.hasarray and self.vec != NULL: + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_2__dealloc__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":507 + * + * def __dealloc__(self): + * if self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * CHKERR( VecDestroy(&self.vec) ) + */ + __pyx_t_2 = (__pyx_v_self->hasarray != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->vec != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":508 + * def __dealloc__(self): + * if self.hasarray and self.vec != NULL: + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&self.vec) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Vec_ReleaseArray(__pyx_v_self->vec, (&__pyx_v_self->data), __pyx_v_self->readonly); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 508, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":507 + * + * def __dealloc__(self): + * if self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * CHKERR( VecDestroy(&self.vec) ) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":509 + * if self.hasarray and self.vec != NULL: + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * CHKERR( VecDestroy(&self.vec) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_self->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 509, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":506 + * self.hasarray = 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.hasarray and self.vec != NULL: + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc._Vec_buffer.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/petscvec.pxi":513 + * # + * + * cdef int acquire(self) nogil except -1: # <<<<<<<<<<<<<< + * if not self.hasarray and self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + */ + +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquire(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + int __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/petscvec.pxi":514 + * + * cdef int acquire(self) nogil except -1: + * if not self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + * Vec_AcquireArray(self.vec, &self.data, self.readonly) + */ + __pyx_t_2 = ((!(__pyx_v_self->hasarray != 0)) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->vec != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":515 + * cdef int acquire(self) nogil except -1: + * if not self.hasarray and self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) # <<<<<<<<<<<<<< + * Vec_AcquireArray(self.vec, &self.data, self.readonly) + * self.hasarray = 1 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_self->size))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 515, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":516 + * if not self.hasarray and self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + * Vec_AcquireArray(self.vec, &self.data, self.readonly) # <<<<<<<<<<<<<< + * self.hasarray = 1 + * return 0 + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Vec_AcquireArray(__pyx_v_self->vec, (&__pyx_v_self->data), __pyx_v_self->readonly); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(7, 516, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":517 + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + * Vec_AcquireArray(self.vec, &self.data, self.readonly) + * self.hasarray = 1 # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_v_self->hasarray = 1; + + /* "petsc4py/PETSc/petscvec.pxi":514 + * + * cdef int acquire(self) nogil except -1: + * if not self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + * Vec_AcquireArray(self.vec, &self.data, self.readonly) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":518 + * Vec_AcquireArray(self.vec, &self.data, self.readonly) + * self.hasarray = 1 + * return 0 # <<<<<<<<<<<<<< + * + * cdef int release(self) nogil except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":513 + * # + * + * cdef int acquire(self) nogil except -1: # <<<<<<<<<<<<<< + * if not self.hasarray and self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &self.size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.acquire", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":520 + * return 0 + * + * cdef int release(self) nogil except -1: # <<<<<<<<<<<<<< + * if self.hasarray and self.vec != NULL: + * self.size = 0 + */ + +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_release(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + int __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/petscvec.pxi":521 + * + * cdef int release(self) nogil except -1: + * if self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * self.size = 0 + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + */ + __pyx_t_2 = (__pyx_v_self->hasarray != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_self->vec != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":522 + * cdef int release(self) nogil except -1: + * if self.hasarray and self.vec != NULL: + * self.size = 0 # <<<<<<<<<<<<<< + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * self.hasarray = 0 + */ + __pyx_v_self->size = 0; + + /* "petsc4py/PETSc/petscvec.pxi":523 + * if self.hasarray and self.vec != NULL: + * self.size = 0 + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) # <<<<<<<<<<<<<< + * self.hasarray = 0 + * return 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Vec_ReleaseArray(__pyx_v_self->vec, (&__pyx_v_self->data), __pyx_v_self->readonly); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(7, 523, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":524 + * self.size = 0 + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * self.hasarray = 0 # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_v_self->hasarray = 0; + + /* "petsc4py/PETSc/petscvec.pxi":521 + * + * cdef int release(self) nogil except -1: + * if self.hasarray and self.vec != NULL: # <<<<<<<<<<<<<< + * self.size = 0 + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":525 + * Vec_ReleaseArray(self.vec, &self.data, self.readonly) + * self.hasarray = 0 + * return 0 # <<<<<<<<<<<<<< + * + * # buffer interface (PEP 3118) + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":520 + * return 0 + * + * cdef int release(self) nogil except -1: # <<<<<<<<<<<<<< + * if self.hasarray and self.vec != NULL: + * self.size = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.release", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":529 + * # buffer interface (PEP 3118) + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: # <<<<<<<<<<<<<< + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, + */ + +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquirebuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("acquirebuffer", 0); + + /* "petsc4py/PETSc/petscvec.pxi":530 + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: + * self.acquire() # <<<<<<<<<<<<<< + * PyPetscBuffer_FillInfo(view, self.data, self.size, + * c's', self.readonly, flags) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 530, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":531 + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, # <<<<<<<<<<<<<< + * c's', self.readonly, flags) + * view.obj = self + */ + __pyx_t_1 = PyPetscBuffer_FillInfo(__pyx_v_view, ((void *)__pyx_v_self->data), __pyx_v_self->size, 's', __pyx_v_self->readonly, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 531, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":533 + * PyPetscBuffer_FillInfo(view, self.data, self.size, + * c's', self.readonly, flags) + * view.obj = self # <<<<<<<<<<<<<< + * return 0 + * + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); + __pyx_v_view->obj = ((PyObject *)__pyx_v_self); + + /* "petsc4py/PETSc/petscvec.pxi":534 + * c's', self.readonly, flags) + * view.obj = self + * return 0 # <<<<<<<<<<<<<< + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":529 + * # buffer interface (PEP 3118) + * + * cdef int acquirebuffer(self, Py_buffer *view, int flags) except -1: # <<<<<<<<<<<<<< + * self.acquire() + * PyPetscBuffer_FillInfo(view, self.data, self.size, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.acquirebuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":536 + * return 0 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: # <<<<<<<<<<<<<< + * PyPetscBuffer_Release(view) + * self.release() + */ + +static int __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_releasebuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("releasebuffer", 0); + + /* "petsc4py/PETSc/petscvec.pxi":537 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: + * PyPetscBuffer_Release(view) # <<<<<<<<<<<<<< + * self.release() + * return 0 + */ + PyPetscBuffer_Release(__pyx_v_view); + + /* "petsc4py/PETSc/petscvec.pxi":538 + * cdef int releasebuffer(self, Py_buffer *view) except -1: + * PyPetscBuffer_Release(view) + * self.release() # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->release(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 538, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":539 + * PyPetscBuffer_Release(view) + * self.release() + * return 0 # <<<<<<<<<<<<<< + * + * def __getbuffer__(self, Py_buffer *view, int flags): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":536 + * return 0 + * + * cdef int releasebuffer(self, Py_buffer *view) except -1: # <<<<<<<<<<<<<< + * PyPetscBuffer_Release(view) + * self.release() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.releasebuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":541 + * return 0 + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * self.acquirebuffer(view, flags) + * + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_5__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_5__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_4__getbuffer__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), ((Py_buffer *)__pyx_v_view), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_4__getbuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_view == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_view->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_view->obj); + + /* "petsc4py/PETSc/petscvec.pxi":542 + * + * def __getbuffer__(self, Py_buffer *view, int flags): + * self.acquirebuffer(view, flags) # <<<<<<<<<<<<<< + * + * def __releasebuffer__(self, Py_buffer *view): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->acquirebuffer(__pyx_v_self, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 542, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":541 + * return 0 + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * self.acquirebuffer(view, flags) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_view->obj != NULL) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_view->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":544 + * self.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * self.releasebuffer(view) + * + */ + +/* Python wrapper */ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_7__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view); /*proto*/ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_7__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_6__releasebuffer__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), ((Py_buffer *)__pyx_v_view)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_6__releasebuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__releasebuffer__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":545 + * + * def __releasebuffer__(self, Py_buffer *view): + * self.releasebuffer(view) # <<<<<<<<<<<<<< + * + * # 'with' statement (PEP 343) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->releasebuffer(__pyx_v_self, __pyx_v_view); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 545, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":544 + * self.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * self.releasebuffer(view) + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc._Vec_buffer.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/petscvec.pxi":549 + * # 'with' statement (PEP 343) + * + * cdef object enter(self): # <<<<<<<<<<<<<< + * self.acquire() + * return asarray(self) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_enter(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("enter", 0); + + /* "petsc4py/PETSc/petscvec.pxi":550 + * + * cdef object enter(self): + * self.acquire() # <<<<<<<<<<<<<< + * return asarray(self) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 550, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":551 + * cdef object enter(self): + * self.acquire() + * return asarray(self) # <<<<<<<<<<<<<< + * + * cdef object exit(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(((PyObject *)__pyx_v_self))); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":549 + * # 'with' statement (PEP 343) + * + * cdef object enter(self): # <<<<<<<<<<<<<< + * self.acquire() + * return asarray(self) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.enter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":553 + * return asarray(self) + * + * cdef object exit(self): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_exit(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("exit", 0); + + /* "petsc4py/PETSc/petscvec.pxi":554 + * + * cdef object exit(self): + * self.release() # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->release(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(7, 554, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":555 + * cdef object exit(self): + * self.release() + * return None # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":553 + * return asarray(self) + * + * cdef object exit(self): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.exit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":557 + * return None + * + * def __enter__(self): # <<<<<<<<<<<<<< + * return self.enter() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_9__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11_Vec_buffer_8__enter__[] = "_Vec_buffer.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_9__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_8__enter__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_8__enter__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":558 + * + * def __enter__(self): + * return self.enter() # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->enter(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":557 + * return None + * + * def __enter__(self): # <<<<<<<<<<<<<< + * return self.enter() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":560 + * return self.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * return self.exit() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11_Vec_buffer_10__exit__[] = "_Vec_buffer.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_11__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_10__exit__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_10__exit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":561 + * + * def __exit__(self, *exc): + * return self.exit() # <<<<<<<<<<<<<< + * + * # buffer interface (legacy) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->exit(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":560 + * return self.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * return self.exit() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":565 + * # buffer interface (legacy) + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if p != NULL: + */ + +static Py_ssize_t __pyx_f_8petsc4py_5PETSc_11_Vec_buffer_getbuffer(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, void **__pyx_v_p) { + PetscInt __pyx_v_n; + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getbuffer", 0); + + /* "petsc4py/PETSc/petscvec.pxi":566 + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * if p != NULL: + * self.acquire() + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscvec.pxi":567 + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 + * if p != NULL: # <<<<<<<<<<<<<< + * self.acquire() + * p[0] = self.data + */ + __pyx_t_1 = ((__pyx_v_p != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":568 + * cdef PetscInt n = 0 + * if p != NULL: + * self.acquire() # <<<<<<<<<<<<<< + * p[0] = self.data + * n = self.size + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(7, 568, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":569 + * if p != NULL: + * self.acquire() + * p[0] = self.data # <<<<<<<<<<<<<< + * n = self.size + * elif self.vec != NULL: + */ + (__pyx_v_p[0]) = ((void *)__pyx_v_self->data); + + /* "petsc4py/PETSc/petscvec.pxi":570 + * self.acquire() + * p[0] = self.data + * n = self.size # <<<<<<<<<<<<<< + * elif self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + __pyx_t_3 = __pyx_v_self->size; + __pyx_v_n = __pyx_t_3; + + /* "petsc4py/PETSc/petscvec.pxi":567 + * cdef Py_ssize_t getbuffer(self, void **p) except -1: + * cdef PetscInt n = 0 + * if p != NULL: # <<<<<<<<<<<<<< + * self.acquire() + * p[0] = self.data + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscvec.pxi":571 + * p[0] = self.data + * n = self.size + * elif self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * return (n*sizeof(PetscScalar)) + */ + __pyx_t_1 = ((__pyx_v_self->vec != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":572 + * n = self.size + * elif self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) # <<<<<<<<<<<<<< + * return (n*sizeof(PetscScalar)) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 572, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":571 + * p[0] = self.data + * n = self.size + * elif self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * return (n*sizeof(PetscScalar)) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscvec.pxi":573 + * elif self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * return (n*sizeof(PetscScalar)) # <<<<<<<<<<<<<< + * + * def __getsegcount__(self, Py_ssize_t *lenp): + */ + __pyx_r = ((Py_ssize_t)(((size_t)__pyx_v_n) * (sizeof(PetscScalar)))); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":565 + * # buffer interface (legacy) + * + * cdef Py_ssize_t getbuffer(self, void **p) except -1: # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if p != NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.getbuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":575 + * return (n*sizeof(PetscScalar)) + * + * def __getsegcount__(self, Py_ssize_t *lenp): # <<<<<<<<<<<<<< + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_13__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp); /*proto*/ +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_13__getsegcount__(PyObject *__pyx_v_self, Py_ssize_t *__pyx_v_lenp) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getsegcount__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_12__getsegcount__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), ((Py_ssize_t *)__pyx_v_lenp)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_12__getsegcount__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t *__pyx_v_lenp) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + Py_ssize_t __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getsegcount__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":576 + * + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: # <<<<<<<<<<<<<< + * lenp[0] = self.getbuffer(NULL) + * return 1 + */ + __pyx_t_1 = ((__pyx_v_lenp != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":577 + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) # <<<<<<<<<<<<<< + * return 1 + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->getbuffer(__pyx_v_self, NULL); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1L))) __PYX_ERR(7, 577, __pyx_L1_error) + (__pyx_v_lenp[0]) = __pyx_t_2; + + /* "petsc4py/PETSc/petscvec.pxi":576 + * + * def __getsegcount__(self, Py_ssize_t *lenp): + * if lenp != NULL: # <<<<<<<<<<<<<< + * lenp[0] = self.getbuffer(NULL) + * return 1 + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":578 + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + * return 1 # <<<<<<<<<<<<<< + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":575 + * return (n*sizeof(PetscScalar)) + * + * def __getsegcount__(self, Py_ssize_t *lenp): # <<<<<<<<<<<<<< + * if lenp != NULL: + * lenp[0] = self.getbuffer(NULL) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__getsegcount__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +/* "petsc4py/PETSc/petscvec.pxi":580 + * return 1 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_15__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /*proto*/ +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_15__getreadbuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getreadbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_14__getreadbuffer__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), ((Py_ssize_t)__pyx_v_idx), ((void **)__pyx_v_p)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_14__getreadbuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getreadbuffer__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":581 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): + * if idx != 0: raise SystemError( # <<<<<<<<<<<<<< + * "accessing non-existent buffer segment") + * return self.getbuffer(p) + */ + __pyx_t_1 = ((__pyx_v_idx != 0) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_SystemError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(7, 581, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":583 + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + * return self.getbuffer(p) # <<<<<<<<<<<<<< + * + * def __getwritebuffer__(self, Py_ssize_t idx, void **p): + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->getbuffer(__pyx_v_self, __pyx_v_p); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(7, 583, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":580 + * return 1 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__getreadbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +/* "petsc4py/PETSc/petscvec.pxi":585 + * return self.getbuffer(p) + * + * def __getwritebuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_17__getwritebuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p); /*proto*/ +static Py_ssize_t __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_17__getwritebuffer__(PyObject *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getwritebuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_16__getwritebuffer__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self), ((Py_ssize_t)__pyx_v_idx), ((void **)__pyx_v_p)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +#if PY_MAJOR_VERSION < 3 +static Py_ssize_t __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_16__getwritebuffer__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self, Py_ssize_t __pyx_v_idx, void **__pyx_v_p) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getwritebuffer__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":586 + * + * def __getwritebuffer__(self, Py_ssize_t idx, void **p): + * if idx != 0: raise SystemError( # <<<<<<<<<<<<<< + * "accessing non-existent buffer segment") + * if self.readonly: raise TypeError( + */ + __pyx_t_1 = ((__pyx_v_idx != 0) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_SystemError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(7, 586, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":588 + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + * if self.readonly: raise TypeError( # <<<<<<<<<<<<<< + * "Object is not writable.") + * return self.getbuffer(p) + */ + __pyx_t_1 = (__pyx_v_self->readonly != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(7, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(7, 588, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscvec.pxi":590 + * if self.readonly: raise TypeError( + * "Object is not writable.") + * return self.getbuffer(p) # <<<<<<<<<<<<<< + * + * # NumPy array interface (legacy) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->__pyx_vtab)->getbuffer(__pyx_v_self, __pyx_v_p); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1L))) __PYX_ERR(7, 590, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":585 + * return self.getbuffer(p) + * + * def __getwritebuffer__(self, Py_ssize_t idx, void **p): # <<<<<<<<<<<<<< + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__getwritebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3)*/ + +/* "petsc4py/PETSc/petscvec.pxi":595 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if self.vec != NULL: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface___1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface___1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface_____get__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface_____get__(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_v_size = 0; + PyArray_Descr *__pyx_v_descr = 0; + PyObject *__pyx_v_typestr = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":596 + * property __array_interface__: + * def __get__(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * if self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscvec.pxi":597 + * def __get__(self): + * cdef PetscInt n = 0 + * if self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * cdef object size = toInt(n) + */ + __pyx_t_1 = ((__pyx_v_self->vec != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscvec.pxi":598 + * cdef PetscInt n = 0 + * if self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) # <<<<<<<<<<<<<< + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_SCALAR) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 598, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":597 + * def __get__(self): + * cdef PetscInt n = 0 + * if self.vec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * cdef object size = toInt(n) + */ + } + + /* "petsc4py/PETSc/petscvec.pxi":599 + * if self.vec != NULL: + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * cdef object size = toInt(n) # <<<<<<<<<<<<<< + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_SCALAR) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_size = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":600 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_SCALAR) # <<<<<<<<<<<<<< + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, + */ + __pyx_t_3 = ((PyObject *)PyArray_DescrFromType(NPY_PETSC_SCALAR)); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":601 + * cdef object size = toInt(n) + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_SCALAR) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) # <<<<<<<<<<<<<< + * return dict(version=3, + * data=self, + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_descr), __pyx_n_s_kind); if (unlikely(!__pyx_t_3)) __PYX_ERR(7, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_descr), __pyx_n_s_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_c_d, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_typestr = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":602 + * cdef dtype descr = PyArray_DescrFromType(NPY_PETSC_SCALAR) + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, # <<<<<<<<<<<<<< + * data=self, + * shape=(size,), + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(7, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_version, __pyx_int_3) < 0) __PYX_ERR(7, 602, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":603 + * cdef str typestr = "=%c%d" % (descr.kind, descr.itemsize) + * return dict(version=3, + * data=self, # <<<<<<<<<<<<<< + * shape=(size,), + * typestr=typestr) + */ + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_data, ((PyObject *)__pyx_v_self)) < 0) __PYX_ERR(7, 602, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":604 + * return dict(version=3, + * data=self, + * shape=(size,), # <<<<<<<<<<<<<< + * typestr=typestr) + * + */ + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(7, 604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_size); + __Pyx_GIVEREF(__pyx_v_size); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_size); + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_shape, __pyx_t_5) < 0) __PYX_ERR(7, 602, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":605 + * data=self, + * shape=(size,), + * typestr=typestr) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_typestr, __pyx_v_typestr) < 0) __PYX_ERR(7, 602, __pyx_L1_error) + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":595 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * if self.vec != NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_buffer.__array_interface__.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XDECREF((PyObject *)__pyx_v_descr); + __Pyx_XDECREF(__pyx_v_typestr); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":616 + * cdef Vec lvec + * + * def __init__(self, Vec gvec): # <<<<<<<<<<<<<< + * self.gvec = gvec + * self.lvec = Vec() + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_gvec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gvec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(7, 616, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_gvec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(7, 616, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_LocalForm.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gvec", 0))) __PYX_ERR(7, 616, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm___init__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)__pyx_v_self), __pyx_v_gvec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm___init__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":617 + * + * def __init__(self, Vec gvec): + * self.gvec = gvec # <<<<<<<<<<<<<< + * self.lvec = Vec() + * + */ + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GOTREF(__pyx_v_self->gvec); + __Pyx_DECREF(((PyObject *)__pyx_v_self->gvec)); + __pyx_v_self->gvec = __pyx_v_gvec; + + /* "petsc4py/PETSc/petscvec.pxi":618 + * def __init__(self, Vec gvec): + * self.gvec = gvec + * self.lvec = Vec() # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v_self->lvec); + __Pyx_DECREF(((PyObject *)__pyx_v_self->lvec)); + __pyx_v_self->lvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscvec.pxi":616 + * cdef Vec lvec + * + * def __init__(self, Vec gvec): # <<<<<<<<<<<<<< + * self.gvec = gvec + * self.lvec = Vec() + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._Vec_LocalForm.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":620 + * self.lvec = Vec() + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostGetLocalForm(gvec, &self.lvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_3__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_14_Vec_LocalForm_2__enter__[] = "_Vec_LocalForm.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_3__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_2__enter__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_2__enter__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self) { + Vec __pyx_v_gvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Vec __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":621 + * + * def __enter__(self): + * cdef PetscVec gvec = self.gvec.vec # <<<<<<<<<<<<<< + * CHKERR( VecGhostGetLocalForm(gvec, &self.lvec.vec) ) + * return self.lvec + */ + __pyx_t_1 = __pyx_v_self->gvec->vec; + __pyx_v_gvec = __pyx_t_1; + + /* "petsc4py/PETSc/petscvec.pxi":622 + * def __enter__(self): + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostGetLocalForm(gvec, &self.lvec.vec) ) # <<<<<<<<<<<<<< + * return self.lvec + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostGetLocalForm(__pyx_v_gvec, (&__pyx_v_self->lvec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 622, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":623 + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostGetLocalForm(gvec, &self.lvec.vec) ) + * return self.lvec # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->lvec)); + __pyx_r = ((PyObject *)__pyx_v_self->lvec); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscvec.pxi":620 + * self.lvec = Vec() + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostGetLocalForm(gvec, &self.lvec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_LocalForm.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscvec.pxi":625 + * return self.lvec + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostRestoreLocalForm(gvec, &self.lvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_14_Vec_LocalForm_4__exit__[] = "_Vec_LocalForm.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_5__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_4__exit__(((struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_Vec_LocalForm_4__exit__(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + Vec __pyx_v_gvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Vec __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/petscvec.pxi":626 + * + * def __exit__(self, *exc): + * cdef PetscVec gvec = self.gvec.vec # <<<<<<<<<<<<<< + * CHKERR( VecGhostRestoreLocalForm(gvec, &self.lvec.vec) ) + * self.lvec.vec = NULL + */ + __pyx_t_1 = __pyx_v_self->gvec->vec; + __pyx_v_gvec = __pyx_t_1; + + /* "petsc4py/PETSc/petscvec.pxi":627 + * def __exit__(self, *exc): + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostRestoreLocalForm(gvec, &self.lvec.vec) ) # <<<<<<<<<<<<<< + * self.lvec.vec = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostRestoreLocalForm(__pyx_v_gvec, (&__pyx_v_self->lvec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(7, 627, __pyx_L1_error) + + /* "petsc4py/PETSc/petscvec.pxi":628 + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostRestoreLocalForm(gvec, &self.lvec.vec) ) + * self.lvec.vec = NULL # <<<<<<<<<<<<<< + */ + __pyx_v_self->lvec->vec = NULL; + + /* "petsc4py/PETSc/petscvec.pxi":625 + * return self.lvec + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef PetscVec gvec = self.gvec.vec + * CHKERR( VecGhostRestoreLocalForm(gvec, &self.lvec.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Vec_LocalForm.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":530 + * PetscErrorCode MatGetNearNullSpace(PetscMat,PetscNullSpace*) + * + * cdef inline NullSpace ref_NullSpace(PetscNullSpace nsp): # <<<<<<<<<<<<<< + * cdef NullSpace ob = NullSpace() + * ob.nsp = nsp + */ + +static CYTHON_INLINE struct PyPetscNullSpaceObject *__pyx_f_8petsc4py_5PETSc_ref_NullSpace(MatNullSpace __pyx_v_nsp) { + struct PyPetscNullSpaceObject *__pyx_v_ob = 0; + struct PyPetscNullSpaceObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_NullSpace", 0); + + /* "petsc4py/PETSc/petscmat.pxi":531 + * + * cdef inline NullSpace ref_NullSpace(PetscNullSpace nsp): + * cdef NullSpace ob = NullSpace() # <<<<<<<<<<<<<< + * ob.nsp = nsp + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_NullSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscNullSpaceObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":532 + * cdef inline NullSpace ref_NullSpace(PetscNullSpace nsp): + * cdef NullSpace ob = NullSpace() + * ob.nsp = nsp # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->nsp = __pyx_v_nsp; + + /* "petsc4py/PETSc/petscmat.pxi":533 + * cdef NullSpace ob = NullSpace() + * ob.nsp = nsp + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscmat.pxi":534 + * ob.nsp = nsp + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode NullSpace_Function( + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":530 + * PetscErrorCode MatGetNearNullSpace(PetscMat,PetscNullSpace*) + * + * cdef inline NullSpace ref_NullSpace(PetscNullSpace nsp): # <<<<<<<<<<<<<< + * cdef NullSpace ob = NullSpace() + * ob.nsp = nsp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_NullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":536 + * return ob + * + * cdef PetscErrorCode NullSpace_Function( # <<<<<<<<<<<<<< + * PetscNullSpace n, + * PetscVec v, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_NullSpace_Function(MatNullSpace __pyx_v_n, Vec __pyx_v_v, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_function = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("NullSpace_Function", 0); + + /* "petsc4py/PETSc/petscmat.pxi":541 + * void * ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef NullSpace nsp = ref_NullSpace(n) # <<<<<<<<<<<<<< + * cdef Vec vec = ref_Vec(v) + * (function, args, kargs) = nsp.get_attr('__function__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_NullSpace(__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 541, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":542 + * ) except PETSC_ERR_PYTHON with gil: + * cdef NullSpace nsp = ref_NullSpace(n) + * cdef Vec vec = ref_Vec(v) # <<<<<<<<<<<<<< + * (function, args, kargs) = nsp.get_attr('__function__') + * function(nsp, vec, *args, **kargs) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_v)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":543 + * cdef NullSpace nsp = ref_NullSpace(n) + * cdef Vec vec = ref_Vec(v) + * (function, args, kargs) = nsp.get_attr('__function__') # <<<<<<<<<<<<<< + * function(nsp, vec, *args, **kargs) + * return PETSC_SUCCESS + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace *)__pyx_v_nsp->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_nsp), ((char *)"__function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 543, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(20, 543, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 543, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_function = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_kargs = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":544 + * cdef Vec vec = ref_Vec(v) + * (function, args, kargs) = nsp.get_attr('__function__') + * function(nsp, vec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_nsp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_nsp)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_nsp)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_vec)); + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(20, 544, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_4 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + __pyx_t_4 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":545 + * (function, args, kargs) = nsp.get_attr('__function__') + * function(nsp, vec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":536 + * return ob + * + * cdef PetscErrorCode NullSpace_Function( # <<<<<<<<<<<<<< + * PetscNullSpace n, + * PetscVec v, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace_Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_nsp); + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":549 + * # ----------------------------------------------------------------------------- + * + * cdef inline Mat ref_Mat(PetscMat mat): # <<<<<<<<<<<<<< + * cdef Mat ob = Mat() + * ob.mat = mat + */ + +static CYTHON_INLINE struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_ref_Mat(Mat __pyx_v_mat) { + struct PyPetscMatObject *__pyx_v_ob = 0; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_Mat", 0); + + /* "petsc4py/PETSc/petscmat.pxi":550 + * + * cdef inline Mat ref_Mat(PetscMat mat): + * cdef Mat ob = Mat() # <<<<<<<<<<<<<< + * ob.mat = mat + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":551 + * cdef inline Mat ref_Mat(PetscMat mat): + * cdef Mat ob = Mat() + * ob.mat = mat # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->mat = __pyx_v_mat; + + /* "petsc4py/PETSc/petscmat.pxi":552 + * cdef Mat ob = Mat() + * ob.mat = mat + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscmat.pxi":553 + * ob.mat = mat + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":549 + * # ----------------------------------------------------------------------------- + * + * cdef inline Mat ref_Mat(PetscMat mat): # <<<<<<<<<<<<<< + * cdef Mat ob = Mat() + * ob.mat = mat + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_Mat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":559 + * # unary operations + * + * cdef Mat mat_pos(Mat self): # <<<<<<<<<<<<<< + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &mat.mat) ) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_pos(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_pos", 0); + + /* "petsc4py/PETSc/petscmat.pxi":560 + * + * cdef Mat mat_pos(Mat self): + * cdef Mat mat = type(self)() # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &mat.mat) ) + * return mat + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(20, 560, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":561 + * cdef Mat mat_pos(Mat self): + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, MAT_COPY_VALUES, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 561, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":562 + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * cdef Mat mat_neg(Mat self): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = __pyx_v_mat; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":559 + * # unary operations + * + * cdef Mat mat_pos(Mat self): # <<<<<<<<<<<<<< + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.mat_pos", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":564 + * return mat + * + * cdef Mat mat_neg(Mat self): # <<<<<<<<<<<<<< + * cdef Mat mat = mat_pos(self) + * CHKERR( MatScale(mat.mat, -1) ) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_neg(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_neg", 0); + + /* "petsc4py/PETSc/petscmat.pxi":565 + * + * cdef Mat mat_neg(Mat self): + * cdef Mat mat = mat_pos(self) # <<<<<<<<<<<<<< + * CHKERR( MatScale(mat.mat, -1) ) + * return mat + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":566 + * cdef Mat mat_neg(Mat self): + * cdef Mat mat = mat_pos(self) + * CHKERR( MatScale(mat.mat, -1) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatScale(__pyx_v_mat->mat, -1.0)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 566, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":567 + * cdef Mat mat = mat_pos(self) + * CHKERR( MatScale(mat.mat, -1) ) + * return mat # <<<<<<<<<<<<<< + * + * # inplace binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = __pyx_v_mat; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":564 + * return mat + * + * cdef Mat mat_neg(Mat self): # <<<<<<<<<<<<<< + * cdef Mat mat = mat_pos(self) + * CHKERR( MatScale(mat.mat, -1) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mat_neg", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":571 + * # inplace binary operations + * + * cdef Mat mat_iadd(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * self.axpy(1, other) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_iadd(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_v_alpha = NULL; + PyObject *__pyx_v_mat = NULL; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_iadd", 0); + + /* "petsc4py/PETSc/petscmat.pxi":572 + * + * cdef Mat mat_iadd(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * self.axpy(1, other) + * elif isinstance(other, (tuple, list)): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":573 + * cdef Mat mat_iadd(Mat self, other): + * if isinstance(other, Mat): + * self.axpy(1, other) # <<<<<<<<<<<<<< + * elif isinstance(other, (tuple, list)): + * alpha, mat = other + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_axpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_int_1, __pyx_v_other}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 573, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_int_1, __pyx_v_other}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 573, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_int_1); + __Pyx_GIVEREF(__pyx_int_1); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_int_1); + __Pyx_INCREF(__pyx_v_other); + __Pyx_GIVEREF(__pyx_v_other); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_other); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":572 + * + * cdef Mat mat_iadd(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * self.axpy(1, other) + * elif isinstance(other, (tuple, list)): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":574 + * if isinstance(other, Mat): + * self.axpy(1, other) + * elif isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * alpha, mat = other + * self.axpy(alpha, mat) + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_other); + __pyx_t_8 = (__pyx_t_1 != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_8 = PyList_Check(__pyx_v_other); + __pyx_t_1 = (__pyx_t_8 != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L4_bool_binop_done:; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":575 + * self.axpy(1, other) + * elif isinstance(other, (tuple, list)): + * alpha, mat = other # <<<<<<<<<<<<<< + * self.axpy(alpha, mat) + * elif isinstance(other, Vec): + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 575, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_4 = __pyx_t_9(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_7), 2) < 0) __PYX_ERR(20, 575, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 575, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_alpha = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_mat = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":576 + * elif isinstance(other, (tuple, list)): + * alpha, mat = other + * self.axpy(alpha, mat) # <<<<<<<<<<<<<< + * elif isinstance(other, Vec): + * self.setDiagonal(other, PETSC_ADD_VALUES) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_axpy); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_alpha, __pyx_v_mat}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 576, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_alpha, __pyx_v_mat}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 576, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + } else + #endif + { + __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_alpha); + __Pyx_GIVEREF(__pyx_v_alpha); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_alpha); + __Pyx_INCREF(__pyx_v_mat); + __Pyx_GIVEREF(__pyx_v_mat); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_mat); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":574 + * if isinstance(other, Mat): + * self.axpy(1, other) + * elif isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * alpha, mat = other + * self.axpy(alpha, mat) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":577 + * alpha, mat = other + * self.axpy(alpha, mat) + * elif isinstance(other, Vec): # <<<<<<<<<<<<<< + * self.setDiagonal(other, PETSC_ADD_VALUES) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":578 + * self.axpy(alpha, mat) + * elif isinstance(other, Vec): + * self.setDiagonal(other, PETSC_ADD_VALUES) # <<<<<<<<<<<<<< + * else: + * self.shift(other) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDiagonal); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyInt_From_InsertMode(ADD_VALUES); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_other, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_other, __pyx_t_5}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_other); + __Pyx_GIVEREF(__pyx_v_other); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_6, __pyx_v_other); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_6, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":577 + * alpha, mat = other + * self.axpy(alpha, mat) + * elif isinstance(other, Vec): # <<<<<<<<<<<<<< + * self.setDiagonal(other, PETSC_ADD_VALUES) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":580 + * self.setDiagonal(other, PETSC_ADD_VALUES) + * else: + * self.shift(other) # <<<<<<<<<<<<<< + * return self + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shift); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_other); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmat.pxi":581 + * else: + * self.shift(other) + * return self # <<<<<<<<<<<<<< + * + * cdef Mat mat_isub(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":571 + * # inplace binary operations + * + * cdef Mat mat_iadd(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * self.axpy(1, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.mat_iadd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_alpha); + __Pyx_XDECREF(__pyx_v_mat); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":583 + * return self + * + * cdef Mat mat_isub(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * self.axpy(-1, other) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_isub(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_v_alpha = NULL; + PyObject *__pyx_v_mat = NULL; + PyObject *__pyx_v_diag = NULL; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *(*__pyx_t_9)(PyObject *); + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_isub", 0); + + /* "petsc4py/PETSc/petscmat.pxi":584 + * + * cdef Mat mat_isub(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * self.axpy(-1, other) + * elif isinstance(other, (tuple, list)): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":585 + * cdef Mat mat_isub(Mat self, other): + * if isinstance(other, Mat): + * self.axpy(-1, other) # <<<<<<<<<<<<<< + * elif isinstance(other, (tuple, list)): + * alpha, mat = other + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_axpy); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_int_neg_1, __pyx_v_other}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 585, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_int_neg_1, __pyx_v_other}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 585, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_int_neg_1); + __Pyx_INCREF(__pyx_v_other); + __Pyx_GIVEREF(__pyx_v_other); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_other); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":584 + * + * cdef Mat mat_isub(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * self.axpy(-1, other) + * elif isinstance(other, (tuple, list)): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":586 + * if isinstance(other, Mat): + * self.axpy(-1, other) + * elif isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * alpha, mat = other + * self.axpy(-alpha, mat) + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_other); + __pyx_t_8 = (__pyx_t_1 != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_2 = __pyx_t_8; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_8 = PyList_Check(__pyx_v_other); + __pyx_t_1 = (__pyx_t_8 != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L4_bool_binop_done:; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":587 + * self.axpy(-1, other) + * elif isinstance(other, (tuple, list)): + * alpha, mat = other # <<<<<<<<<<<<<< + * self.axpy(-alpha, mat) + * elif isinstance(other, Vec): + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 587, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_9(__pyx_t_7); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_4 = __pyx_t_9(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_7), 2) < 0) __PYX_ERR(20, 587, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 587, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_alpha = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_mat = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":588 + * elif isinstance(other, (tuple, list)): + * alpha, mat = other + * self.axpy(-alpha, mat) # <<<<<<<<<<<<<< + * elif isinstance(other, Vec): + * diag = other.copy() + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_axpy); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyNumber_Negative(__pyx_v_alpha); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_v_mat}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_7, __pyx_v_mat}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_6, __pyx_t_7); + __Pyx_INCREF(__pyx_v_mat); + __Pyx_GIVEREF(__pyx_v_mat); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_6, __pyx_v_mat); + __pyx_t_7 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":586 + * if isinstance(other, Mat): + * self.axpy(-1, other) + * elif isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * alpha, mat = other + * self.axpy(-alpha, mat) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":589 + * alpha, mat = other + * self.axpy(-alpha, mat) + * elif isinstance(other, Vec): # <<<<<<<<<<<<<< + * diag = other.copy() + * diag.scale(-1) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":590 + * self.axpy(-alpha, mat) + * elif isinstance(other, Vec): + * diag = other.copy() # <<<<<<<<<<<<<< + * diag.scale(-1) + * self.setDiagonal(diag, PETSC_ADD_VALUES) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_diag = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":591 + * elif isinstance(other, Vec): + * diag = other.copy() + * diag.scale(-1) # <<<<<<<<<<<<<< + * self.setDiagonal(diag, PETSC_ADD_VALUES) + * diag.destroy() + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_diag, __pyx_n_s_scale); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_int_neg_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_neg_1); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":592 + * diag = other.copy() + * diag.scale(-1) + * self.setDiagonal(diag, PETSC_ADD_VALUES) # <<<<<<<<<<<<<< + * diag.destroy() + * else: + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDiagonal); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyInt_From_InsertMode(ADD_VALUES); if (unlikely(!__pyx_t_10)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_7 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_diag, __pyx_t_10}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_diag, __pyx_t_10}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } else + #endif + { + __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_INCREF(__pyx_v_diag); + __Pyx_GIVEREF(__pyx_v_diag); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_diag); + __Pyx_GIVEREF(__pyx_t_10); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_10); + __pyx_t_10 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":593 + * diag.scale(-1) + * self.setDiagonal(diag, PETSC_ADD_VALUES) + * diag.destroy() # <<<<<<<<<<<<<< + * else: + * self.shift(other) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_diag, __pyx_n_s_destroy); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":589 + * alpha, mat = other + * self.axpy(-alpha, mat) + * elif isinstance(other, Vec): # <<<<<<<<<<<<<< + * diag = other.copy() + * diag.scale(-1) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":595 + * diag.destroy() + * else: + * self.shift(other) # <<<<<<<<<<<<<< + * return self + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_shift); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_other); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmat.pxi":596 + * else: + * self.shift(other) + * return self # <<<<<<<<<<<<<< + * + * cdef Mat mat_imul(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":583 + * return self + * + * cdef Mat mat_isub(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * self.axpy(-1, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.mat_isub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_alpha); + __Pyx_XDECREF(__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_diag); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":598 + * return self + * + * cdef Mat mat_imul(Mat self, other): # <<<<<<<<<<<<<< + * if (isinstance(other, tuple) or + * isinstance(other, list)): + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_imul(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_v_L = NULL; + PyObject *__pyx_v_R = NULL; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_imul", 0); + + /* "petsc4py/PETSc/petscmat.pxi":599 + * + * cdef Mat mat_imul(Mat self, other): + * if (isinstance(other, tuple) or # <<<<<<<<<<<<<< + * isinstance(other, list)): + * L, R = other + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_other); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + + /* "petsc4py/PETSc/petscmat.pxi":600 + * cdef Mat mat_imul(Mat self, other): + * if (isinstance(other, tuple) or + * isinstance(other, list)): # <<<<<<<<<<<<<< + * L, R = other + * self.diagonalScale(L, R) + */ + __pyx_t_3 = PyList_Check(__pyx_v_other); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + + /* "petsc4py/PETSc/petscmat.pxi":599 + * + * cdef Mat mat_imul(Mat self, other): + * if (isinstance(other, tuple) or # <<<<<<<<<<<<<< + * isinstance(other, list)): + * L, R = other + */ + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":601 + * if (isinstance(other, tuple) or + * isinstance(other, list)): + * L, R = other # <<<<<<<<<<<<<< + * self.diagonalScale(L, R) + * else: + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 601, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(20, 601, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 601, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_L = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_R = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":602 + * isinstance(other, list)): + * L, R = other + * self.diagonalScale(L, R) # <<<<<<<<<<<<<< + * else: + * self.scale(other) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_diagonalScale); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_L, __pyx_v_R}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 602, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_L, __pyx_v_R}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 602, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_INCREF(__pyx_v_L); + __Pyx_GIVEREF(__pyx_v_L); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_L); + __Pyx_INCREF(__pyx_v_R); + __Pyx_GIVEREF(__pyx_v_R); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_R); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":599 + * + * cdef Mat mat_imul(Mat self, other): + * if (isinstance(other, tuple) or # <<<<<<<<<<<<<< + * isinstance(other, list)): + * L, R = other + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":604 + * self.diagonalScale(L, R) + * else: + * self.scale(other) # <<<<<<<<<<<<<< + * return self + * + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_other); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmat.pxi":605 + * else: + * self.scale(other) + * return self # <<<<<<<<<<<<<< + * + * cdef Mat mat_idiv(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":598 + * return self + * + * cdef Mat mat_imul(Mat self, other): # <<<<<<<<<<<<<< + * if (isinstance(other, tuple) or + * isinstance(other, list)): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.mat_imul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_L); + __Pyx_XDECREF(__pyx_v_R); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":607 + * return self + * + * cdef Mat mat_idiv(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, (tuple, list)): + * L, R = other + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_idiv(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_v_L = NULL; + PyObject *__pyx_v_R = NULL; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_idiv", 0); + __Pyx_INCREF(__pyx_v_other); + + /* "petsc4py/PETSc/petscmat.pxi":608 + * + * cdef Mat mat_idiv(Mat self, other): + * if isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * L, R = other + * if isinstance(L, Vec): + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_other); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = PyList_Check(__pyx_v_other); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":609 + * cdef Mat mat_idiv(Mat self, other): + * if isinstance(other, (tuple, list)): + * L, R = other # <<<<<<<<<<<<<< + * if isinstance(L, Vec): + * L = L.copy() + */ + if ((likely(PyTuple_CheckExact(__pyx_v_other))) || (PyList_CheckExact(__pyx_v_other))) { + PyObject* sequence = __pyx_v_other; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 609, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_other); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(20, 609, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 609, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_L = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_R = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":610 + * if isinstance(other, (tuple, list)): + * L, R = other + * if isinstance(L, Vec): # <<<<<<<<<<<<<< + * L = L.copy() + * L.reciprocal() + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_L, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":611 + * L, R = other + * if isinstance(L, Vec): + * L = L.copy() # <<<<<<<<<<<<<< + * L.reciprocal() + * if isinstance(R, Vec): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_L, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_L, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":612 + * if isinstance(L, Vec): + * L = L.copy() + * L.reciprocal() # <<<<<<<<<<<<<< + * if isinstance(R, Vec): + * R = R.copy() + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_L, __pyx_n_s_reciprocal); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":610 + * if isinstance(other, (tuple, list)): + * L, R = other + * if isinstance(L, Vec): # <<<<<<<<<<<<<< + * L = L.copy() + * L.reciprocal() + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":613 + * L = L.copy() + * L.reciprocal() + * if isinstance(R, Vec): # <<<<<<<<<<<<<< + * R = R.copy() + * R.reciprocal() + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_R, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":614 + * L.reciprocal() + * if isinstance(R, Vec): + * R = R.copy() # <<<<<<<<<<<<<< + * R.reciprocal() + * self.diagonalScale(L, R) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_R, __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_R, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":615 + * if isinstance(R, Vec): + * R = R.copy() + * R.reciprocal() # <<<<<<<<<<<<<< + * self.diagonalScale(L, R) + * else: + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_R, __pyx_n_s_reciprocal); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":613 + * L = L.copy() + * L.reciprocal() + * if isinstance(R, Vec): # <<<<<<<<<<<<<< + * R = R.copy() + * R.reciprocal() + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":616 + * R = R.copy() + * R.reciprocal() + * self.diagonalScale(L, R) # <<<<<<<<<<<<<< + * else: + * other = 1/other + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_diagonalScale); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_L, __pyx_v_R}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 616, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_L, __pyx_v_R}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 616, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_INCREF(__pyx_v_L); + __Pyx_GIVEREF(__pyx_v_L); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_L); + __Pyx_INCREF(__pyx_v_R); + __Pyx_GIVEREF(__pyx_v_R); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_R); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":608 + * + * cdef Mat mat_idiv(Mat self, other): + * if isinstance(other, (tuple, list)): # <<<<<<<<<<<<<< + * L, R = other + * if isinstance(L, Vec): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":618 + * self.diagonalScale(L, R) + * else: + * other = 1/other # <<<<<<<<<<<<<< + * self.scale(other) + * return self + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_int_1, __pyx_v_other); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":619 + * else: + * other = 1/other + * self.scale(other) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scale); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_other); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmat.pxi":620 + * other = 1/other + * self.scale(other) + * return self # <<<<<<<<<<<<<< + * + * # binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = __pyx_v_self; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":607 + * return self + * + * cdef Mat mat_idiv(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, (tuple, list)): + * L, R = other + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.mat_idiv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_L); + __Pyx_XDECREF(__pyx_v_R); + __Pyx_XDECREF(__pyx_v_other); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":624 + * # binary operations + * + * cdef Mat mat_add(Mat self, other): # <<<<<<<<<<<<<< + * return mat_iadd(mat_pos(self), other) + * + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_add(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_add", 0); + + /* "petsc4py/PETSc/petscmat.pxi":625 + * + * cdef Mat mat_add(Mat self, other): + * return mat_iadd(mat_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Mat mat_sub(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_iadd(((struct PyPetscMatObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":624 + * # binary operations + * + * cdef Mat mat_add(Mat self, other): # <<<<<<<<<<<<<< + * return mat_iadd(mat_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mat_add", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":627 + * return mat_iadd(mat_pos(self), other) + * + * cdef Mat mat_sub(Mat self, other): # <<<<<<<<<<<<<< + * return mat_isub(mat_pos(self), other) + * + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_sub(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_sub", 0); + + /* "petsc4py/PETSc/petscmat.pxi":628 + * + * cdef Mat mat_sub(Mat self, other): + * return mat_isub(mat_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Mat mat_mul(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_isub(((struct PyPetscMatObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":627 + * return mat_iadd(mat_pos(self), other) + * + * cdef Mat mat_sub(Mat self, other): # <<<<<<<<<<<<<< + * return mat_isub(mat_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mat_sub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":630 + * return mat_isub(mat_pos(self), other) + * + * cdef Mat mat_mul(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * return self.matMult(other) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_mul(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_mul", 0); + + /* "petsc4py/PETSc/petscmat.pxi":631 + * + * cdef Mat mat_mul(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * return self.matMult(other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":632 + * cdef Mat mat_mul(Mat self, other): + * if isinstance(other, Mat): + * return self.matMult(other) # <<<<<<<<<<<<<< + * else: + * return mat_imul(mat_pos(self), other) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_matMult); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_v_other) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_other); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(20, 632, __pyx_L1_error) + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":631 + * + * cdef Mat mat_mul(Mat self, other): + * if isinstance(other, Mat): # <<<<<<<<<<<<<< + * return self.matMult(other) + * else: + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":634 + * return self.matMult(other) + * else: + * return mat_imul(mat_pos(self), other) # <<<<<<<<<<<<<< + * + * cdef Vec mat_mul_vec(Mat self, Vec other): + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_imul(((struct PyPetscMatObject *)__pyx_t_3), __pyx_v_other)); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":630 + * return mat_isub(mat_pos(self), other) + * + * cdef Mat mat_mul(Mat self, other): # <<<<<<<<<<<<<< + * if isinstance(other, Mat): + * return self.matMult(other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.mat_mul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":636 + * return mat_imul(mat_pos(self), other) + * + * cdef Vec mat_mul_vec(Mat self, Vec other): # <<<<<<<<<<<<<< + * cdef Vec result = self.createVecLeft() + * self.mult(other, result) + */ + +static struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_mat_mul_vec(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_other) { + struct PyPetscVecObject *__pyx_v_result = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_mul_vec", 0); + + /* "petsc4py/PETSc/petscmat.pxi":637 + * + * cdef Vec mat_mul_vec(Mat self, Vec other): + * cdef Vec result = self.createVecLeft() # <<<<<<<<<<<<<< + * self.mult(other, result) + * return result + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_createVecLeft); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(20, 637, __pyx_L1_error) + __pyx_v_result = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":638 + * cdef Vec mat_mul_vec(Mat self, Vec other): + * cdef Vec result = self.createVecLeft() + * self.mult(other, result) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mult); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_other), ((PyObject *)__pyx_v_result)}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 638, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_other), ((PyObject *)__pyx_v_result)}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 638, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(((PyObject *)__pyx_v_other)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_other)); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_other)); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_result)); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, ((PyObject *)__pyx_v_result)); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 638, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":639 + * cdef Vec result = self.createVecLeft() + * self.mult(other, result) + * return result # <<<<<<<<<<<<<< + * + * cdef Mat mat_div(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":636 + * return mat_imul(mat_pos(self), other) + * + * cdef Vec mat_mul_vec(Mat self, Vec other): # <<<<<<<<<<<<<< + * cdef Vec result = self.createVecLeft() + * self.mult(other, result) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.mat_mul_vec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":641 + * return result + * + * cdef Mat mat_div(Mat self, other): # <<<<<<<<<<<<<< + * return mat_idiv(mat_pos(self), other) + * + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_div(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_div", 0); + + /* "petsc4py/PETSc/petscmat.pxi":642 + * + * cdef Mat mat_div(Mat self, other): + * return mat_idiv(mat_pos(self), other) # <<<<<<<<<<<<<< + * + * # reflected binary operations + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_idiv(((struct PyPetscMatObject *)__pyx_t_1), __pyx_v_other)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":641 + * return result + * + * cdef Mat mat_div(Mat self, other): # <<<<<<<<<<<<<< + * return mat_idiv(mat_pos(self), other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.mat_div", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":646 + * # reflected binary operations + * + * cdef Mat mat_radd(Mat self, other): # <<<<<<<<<<<<<< + * return mat_add(self, other) + * + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_radd(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_radd", 0); + + /* "petsc4py/PETSc/petscmat.pxi":647 + * + * cdef Mat mat_radd(Mat self, other): + * return mat_add(self, other) # <<<<<<<<<<<<<< + * + * cdef Mat mat_rsub(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_add(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":646 + * # reflected binary operations + * + * cdef Mat mat_radd(Mat self, other): # <<<<<<<<<<<<<< + * return mat_add(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.mat_radd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":649 + * return mat_add(self, other) + * + * cdef Mat mat_rsub(Mat self, other): # <<<<<<<<<<<<<< + * cdef Mat mat = mat_sub(self, other) + * mat.scale(-1) + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rsub(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_rsub", 0); + + /* "petsc4py/PETSc/petscmat.pxi":650 + * + * cdef Mat mat_rsub(Mat self, other): + * cdef Mat mat = mat_sub(self, other) # <<<<<<<<<<<<<< + * mat.scale(-1) + * return mat + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_sub(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":651 + * cdef Mat mat_rsub(Mat self, other): + * cdef Mat mat = mat_sub(self, other) + * mat.scale(-1) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_mat), __pyx_n_s_scale); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_int_neg_1) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_neg_1); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":652 + * cdef Mat mat = mat_sub(self, other) + * mat.scale(-1) + * return mat # <<<<<<<<<<<<<< + * + * cdef Mat mat_rmul(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = __pyx_v_mat; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":649 + * return mat_add(self, other) + * + * cdef Mat mat_rsub(Mat self, other): # <<<<<<<<<<<<<< + * cdef Mat mat = mat_sub(self, other) + * mat.scale(-1) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.mat_rsub", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":654 + * return mat + * + * cdef Mat mat_rmul(Mat self, other): # <<<<<<<<<<<<<< + * return mat_mul(self, other) + * + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rmul(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_rmul", 0); + + /* "petsc4py/PETSc/petscmat.pxi":655 + * + * cdef Mat mat_rmul(Mat self, other): + * return mat_mul(self, other) # <<<<<<<<<<<<<< + * + * cdef Mat mat_rdiv(Mat self, other): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_mul(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":654 + * return mat + * + * cdef Mat mat_rmul(Mat self, other): # <<<<<<<<<<<<<< + * return mat_mul(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.mat_rmul", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":657 + * return mat_mul(self, other) + * + * cdef Mat mat_rdiv(Mat self, other): # <<<<<<<<<<<<<< + * self; other; # unused + * raise NotImplementedError + */ + +static struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_mat_rdiv(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_rdiv", 0); + + /* "petsc4py/PETSc/petscmat.pxi":658 + * + * cdef Mat mat_rdiv(Mat self, other): + * self; other; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_other); + + /* "petsc4py/PETSc/petscmat.pxi":659 + * cdef Mat mat_rdiv(Mat self, other): + * self; other; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(20, 659, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":657 + * return mat_mul(self, other) + * + * cdef Mat mat_rdiv(Mat self, other): # <<<<<<<<<<<<<< + * self; other; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.mat_rdiv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":663 + * # ----------------------------------------------------------------------------- + * + * cdef inline PetscMatStructure matstructure(object structure) \ # <<<<<<<<<<<<<< + * except (-1): + * if structure is None: return MAT_DIFFERENT_NONZERO_PATTERN + */ + +static CYTHON_INLINE MatStructure __pyx_f_8petsc4py_5PETSc_matstructure(PyObject *__pyx_v_structure) { + MatStructure __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MatStructure __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matstructure", 0); + + /* "petsc4py/PETSc/petscmat.pxi":665 + * cdef inline PetscMatStructure matstructure(object structure) \ + * except (-1): + * if structure is None: return MAT_DIFFERENT_NONZERO_PATTERN # <<<<<<<<<<<<<< + * elif structure is False: return MAT_DIFFERENT_NONZERO_PATTERN + * elif structure is True: return MAT_SAME_NONZERO_PATTERN + */ + __pyx_t_1 = (__pyx_v_structure == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = DIFFERENT_NONZERO_PATTERN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":666 + * except (-1): + * if structure is None: return MAT_DIFFERENT_NONZERO_PATTERN + * elif structure is False: return MAT_DIFFERENT_NONZERO_PATTERN # <<<<<<<<<<<<<< + * elif structure is True: return MAT_SAME_NONZERO_PATTERN + * else: return structure + */ + __pyx_t_2 = (__pyx_v_structure == Py_False); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = DIFFERENT_NONZERO_PATTERN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":667 + * if structure is None: return MAT_DIFFERENT_NONZERO_PATTERN + * elif structure is False: return MAT_DIFFERENT_NONZERO_PATTERN + * elif structure is True: return MAT_SAME_NONZERO_PATTERN # <<<<<<<<<<<<<< + * else: return structure + * + */ + __pyx_t_1 = (__pyx_v_structure == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = SAME_NONZERO_PATTERN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":668 + * elif structure is False: return MAT_DIFFERENT_NONZERO_PATTERN + * elif structure is True: return MAT_SAME_NONZERO_PATTERN + * else: return structure # <<<<<<<<<<<<<< + * + * cdef inline PetscMatAssemblyType assemblytype(object assembly) \ + */ + /*else*/ { + __pyx_t_3 = ((MatStructure)__Pyx_PyInt_As_MatStructure(__pyx_v_structure)); if (unlikely(PyErr_Occurred())) __PYX_ERR(20, 668, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":663 + * # ----------------------------------------------------------------------------- + * + * cdef inline PetscMatStructure matstructure(object structure) \ # <<<<<<<<<<<<<< + * except (-1): + * if structure is None: return MAT_DIFFERENT_NONZERO_PATTERN + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.matstructure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((MatStructure)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":670 + * else: return structure + * + * cdef inline PetscMatAssemblyType assemblytype(object assembly) \ # <<<<<<<<<<<<<< + * except (-1): + * if assembly is None: return MAT_FINAL_ASSEMBLY + */ + +static CYTHON_INLINE MatAssemblyType __pyx_f_8petsc4py_5PETSc_assemblytype(PyObject *__pyx_v_assembly) { + MatAssemblyType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MatAssemblyType __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemblytype", 0); + + /* "petsc4py/PETSc/petscmat.pxi":672 + * cdef inline PetscMatAssemblyType assemblytype(object assembly) \ + * except (-1): + * if assembly is None: return MAT_FINAL_ASSEMBLY # <<<<<<<<<<<<<< + * elif assembly is False: return MAT_FINAL_ASSEMBLY + * elif assembly is True: return MAT_FLUSH_ASSEMBLY + */ + __pyx_t_1 = (__pyx_v_assembly == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = MAT_FINAL_ASSEMBLY; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":673 + * except (-1): + * if assembly is None: return MAT_FINAL_ASSEMBLY + * elif assembly is False: return MAT_FINAL_ASSEMBLY # <<<<<<<<<<<<<< + * elif assembly is True: return MAT_FLUSH_ASSEMBLY + * else: return assembly + */ + __pyx_t_2 = (__pyx_v_assembly == Py_False); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = MAT_FINAL_ASSEMBLY; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":674 + * if assembly is None: return MAT_FINAL_ASSEMBLY + * elif assembly is False: return MAT_FINAL_ASSEMBLY + * elif assembly is True: return MAT_FLUSH_ASSEMBLY # <<<<<<<<<<<<<< + * else: return assembly + * + */ + __pyx_t_1 = (__pyx_v_assembly == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = MAT_FLUSH_ASSEMBLY; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":675 + * elif assembly is False: return MAT_FINAL_ASSEMBLY + * elif assembly is True: return MAT_FLUSH_ASSEMBLY + * else: return assembly # <<<<<<<<<<<<<< + * + * cdef inline PetscMatInfoType infotype(object info) \ + */ + /*else*/ { + __pyx_t_3 = ((MatAssemblyType)__Pyx_PyInt_As_MatAssemblyType(__pyx_v_assembly)); if (unlikely(PyErr_Occurred())) __PYX_ERR(20, 675, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":670 + * else: return structure + * + * cdef inline PetscMatAssemblyType assemblytype(object assembly) \ # <<<<<<<<<<<<<< + * except (-1): + * if assembly is None: return MAT_FINAL_ASSEMBLY + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.assemblytype", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((MatAssemblyType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":677 + * else: return assembly + * + * cdef inline PetscMatInfoType infotype(object info) \ # <<<<<<<<<<<<<< + * except (-1): + * if info is None: return MAT_GLOBAL_SUM + */ + +static CYTHON_INLINE MatInfoType __pyx_f_8petsc4py_5PETSc_infotype(PyObject *__pyx_v_info) { + MatInfoType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MatInfoType __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("infotype", 0); + + /* "petsc4py/PETSc/petscmat.pxi":679 + * cdef inline PetscMatInfoType infotype(object info) \ + * except (-1): + * if info is None: return MAT_GLOBAL_SUM # <<<<<<<<<<<<<< + * else: return info + * + */ + __pyx_t_1 = (__pyx_v_info == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_r = MAT_GLOBAL_SUM; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":680 + * except (-1): + * if info is None: return MAT_GLOBAL_SUM + * else: return info # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + /*else*/ { + __pyx_t_3 = ((MatInfoType)__Pyx_PyInt_As_MatInfoType(__pyx_v_info)); if (unlikely(PyErr_Occurred())) __PYX_ERR(20, 680, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":677 + * else: return assembly + * + * cdef inline PetscMatInfoType infotype(object info) \ # <<<<<<<<<<<<<< + * except (-1): + * if info is None: return MAT_GLOBAL_SUM + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.infotype", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((MatInfoType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":684 + * # ----------------------------------------------------------------------------- + * + * cdef inline PetscErrorCode Mat_Sizes( # <<<<<<<<<<<<<< + * object size, object bsize, + * PetscInt *r, PetscInt *c, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_Sizes(PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PetscInt *__pyx_v_r, PetscInt *__pyx_v_c, PetscInt *__pyx_v_m, PetscInt *__pyx_v_n, PetscInt *__pyx_v_M, PetscInt *__pyx_v_N) { + PyObject *__pyx_v_rsize = 0; + PyObject *__pyx_v_csize = 0; + PyObject *__pyx_v_rbsize = 0; + PyObject *__pyx_v_cbsize = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + PetscErrorCode __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_Sizes", 0); + + /* "petsc4py/PETSc/petscmat.pxi":692 + * # unpack row and column sizes + * cdef object rsize, csize + * try: # <<<<<<<<<<<<<< + * rsize , csize = size + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/petscmat.pxi":693 + * cdef object rsize, csize + * try: + * rsize , csize = size # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * rsize = csize = size + */ + if ((likely(PyTuple_CheckExact(__pyx_v_size))) || (PyList_CheckExact(__pyx_v_size))) { + PyObject* sequence = __pyx_v_size; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 693, __pyx_L3_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 693, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 693, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 693, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(20, 693, __pyx_L3_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 693, __pyx_L3_error) + __pyx_L10_unpacking_done:; + } + __pyx_v_rsize = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_csize = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":692 + * # unpack row and column sizes + * cdef object rsize, csize + * try: # <<<<<<<<<<<<<< + * rsize , csize = size + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":694 + * try: + * rsize , csize = size + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * rsize = csize = size + * # unpack row and column block sizes + */ + __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_8) { + __Pyx_AddTraceback("petsc4py.PETSc.Mat_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_4, &__pyx_t_6) < 0) __PYX_ERR(20, 694, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); + + /* "petsc4py/PETSc/petscmat.pxi":695 + * rsize , csize = size + * except (TypeError, ValueError): + * rsize = csize = size # <<<<<<<<<<<<<< + * # unpack row and column block sizes + * cdef object rbsize, cbsize + */ + __Pyx_INCREF(__pyx_v_size); + __Pyx_XDECREF_SET(__pyx_v_rsize, __pyx_v_size); + __Pyx_INCREF(__pyx_v_size); + __Pyx_XDECREF_SET(__pyx_v_csize, __pyx_v_size); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L4_exception_handled; + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/petscmat.pxi":692 + * # unpack row and column sizes + * cdef object rsize, csize + * try: # <<<<<<<<<<<<<< + * rsize , csize = size + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L4_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __pyx_L8_try_end:; + } + + /* "petsc4py/PETSc/petscmat.pxi":698 + * # unpack row and column block sizes + * cdef object rbsize, cbsize + * try: # <<<<<<<<<<<<<< + * rbsize , cbsize = bsize + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_2, &__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_1); + /*try:*/ { + + /* "petsc4py/PETSc/petscmat.pxi":699 + * cdef object rbsize, cbsize + * try: + * rbsize , cbsize = bsize # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * rbsize = cbsize = bsize + */ + if ((likely(PyTuple_CheckExact(__pyx_v_bsize))) || (PyList_CheckExact(__pyx_v_bsize))) { + PyObject* sequence = __pyx_v_bsize; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 699, __pyx_L13_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 699, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 699, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_v_bsize); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 699, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_6 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_6)) goto __pyx_L19_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L19_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_5), 2) < 0) __PYX_ERR(20, 699, __pyx_L13_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L20_unpacking_done; + __pyx_L19_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 699, __pyx_L13_error) + __pyx_L20_unpacking_done:; + } + __pyx_v_rbsize = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_v_cbsize = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":698 + * # unpack row and column block sizes + * cdef object rbsize, cbsize + * try: # <<<<<<<<<<<<<< + * rbsize , cbsize = bsize + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L18_try_end; + __pyx_L13_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":700 + * try: + * rbsize , cbsize = bsize + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * rbsize = cbsize = bsize + * # split row and column sizes + */ + __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_8) { + __Pyx_AddTraceback("petsc4py.PETSc.Mat_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) __PYX_ERR(20, 700, __pyx_L15_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/petscmat.pxi":701 + * rbsize , cbsize = bsize + * except (TypeError, ValueError): + * rbsize = cbsize = bsize # <<<<<<<<<<<<<< + * # split row and column sizes + * Sys_Sizes(rsize, rbsize, r, m, M) + */ + __Pyx_INCREF(__pyx_v_bsize); + __Pyx_XDECREF_SET(__pyx_v_rbsize, __pyx_v_bsize); + __Pyx_INCREF(__pyx_v_bsize); + __Pyx_XDECREF_SET(__pyx_v_cbsize, __pyx_v_bsize); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L14_exception_handled; + } + goto __pyx_L15_except_error; + __pyx_L15_except_error:; + + /* "petsc4py/PETSc/petscmat.pxi":698 + * # unpack row and column block sizes + * cdef object rbsize, cbsize + * try: # <<<<<<<<<<<<<< + * rbsize , cbsize = bsize + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1); + goto __pyx_L1_error; + __pyx_L14_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_2, __pyx_t_1); + __pyx_L18_try_end:; + } + + /* "petsc4py/PETSc/petscmat.pxi":703 + * rbsize = cbsize = bsize + * # split row and column sizes + * Sys_Sizes(rsize, rbsize, r, m, M) # <<<<<<<<<<<<<< + * Sys_Sizes(csize, cbsize, c, n, N) + * return PETSC_SUCCESS + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Sys_Sizes(__pyx_v_rsize, __pyx_v_rbsize, __pyx_v_r, __pyx_v_m, __pyx_v_M); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 703, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":704 + * # split row and column sizes + * Sys_Sizes(rsize, rbsize, r, m, M) + * Sys_Sizes(csize, cbsize, c, n, N) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Sys_Sizes(__pyx_v_csize, __pyx_v_cbsize, __pyx_v_c, __pyx_v_n, __pyx_v_N); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 704, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":705 + * Sys_Sizes(rsize, rbsize, r, m, M) + * Sys_Sizes(csize, cbsize, c, n, N) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode Mat_Create( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":684 + * # ----------------------------------------------------------------------------- + * + * cdef inline PetscErrorCode Mat_Sizes( # <<<<<<<<<<<<<< + * object size, object bsize, + * PetscInt *r, PetscInt *c, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat_Sizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rsize); + __Pyx_XDECREF(__pyx_v_csize); + __Pyx_XDECREF(__pyx_v_rbsize); + __Pyx_XDECREF(__pyx_v_cbsize); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":707 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_Create( # <<<<<<<<<<<<<< + * PetscMatType mtype, + * object comm, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_Create(MatType __pyx_v_mtype, PyObject *__pyx_v_comm, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, Mat *__pyx_v_A) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + Mat __pyx_v_mat; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_Create", 0); + + /* "petsc4py/PETSc/petscmat.pxi":715 + * ) except PETSC_ERR_PYTHON: + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(20, 715, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":717 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscmat.pxi":718 + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 718, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":719 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 # <<<<<<<<<<<<<< + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + */ + __pyx_t_3 = ((__pyx_v_rbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":720 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) + */ + __pyx_t_3 = ((__pyx_v_cbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_cbs = __pyx_v_rbs; + } + + /* "petsc4py/PETSc/petscmat.pxi":721 + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix and set sizes + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_rbs, (&__pyx_v_m), (&__pyx_v_M)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 721, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":722 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) # <<<<<<<<<<<<<< + * # create matrix and set sizes + * cdef PetscMat mat = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_cbs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 722, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":724 + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix and set sizes + * cdef PetscMat mat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreate(ccomm, &mat) ) + * CHKERR( MatSetSizes(mat, m, n, M, N) ) + */ + __pyx_v_mat = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":725 + * # create matrix and set sizes + * cdef PetscMat mat = NULL + * CHKERR( MatCreate(ccomm, &mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatSetSizes(mat, m, n, M, N) ) + * CHKERR( MatSetBlockSizes(mat, rbs, cbs) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreate(__pyx_v_ccomm, (&__pyx_v_mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 725, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":726 + * cdef PetscMat mat = NULL + * CHKERR( MatCreate(ccomm, &mat) ) + * CHKERR( MatSetSizes(mat, m, n, M, N) ) # <<<<<<<<<<<<<< + * CHKERR( MatSetBlockSizes(mat, rbs, cbs) ) + * CHKERR( MatSetType(mat, mtype) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetSizes(__pyx_v_mat, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 726, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":727 + * CHKERR( MatCreate(ccomm, &mat) ) + * CHKERR( MatSetSizes(mat, m, n, M, N) ) + * CHKERR( MatSetBlockSizes(mat, rbs, cbs) ) # <<<<<<<<<<<<<< + * CHKERR( MatSetType(mat, mtype) ) + * A[0] = mat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSizes(__pyx_v_mat, __pyx_v_rbs, __pyx_v_cbs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 727, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":728 + * CHKERR( MatSetSizes(mat, m, n, M, N) ) + * CHKERR( MatSetBlockSizes(mat, rbs, cbs) ) + * CHKERR( MatSetType(mat, mtype) ) # <<<<<<<<<<<<<< + * A[0] = mat + * return PETSC_SUCCESS + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetType(__pyx_v_mat, __pyx_v_mtype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 728, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":729 + * CHKERR( MatSetBlockSizes(mat, rbs, cbs) ) + * CHKERR( MatSetType(mat, mtype) ) + * A[0] = mat # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + (__pyx_v_A[0]) = __pyx_v_mat; + + /* "petsc4py/PETSc/petscmat.pxi":730 + * CHKERR( MatSetType(mat, mtype) ) + * A[0] = mat + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode Mat_AllocAIJ_NNZ( PetscMat A, object NNZ) except PETSC_ERR_PYTHON: + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":707 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_Create( # <<<<<<<<<<<<<< + * PetscMatType mtype, + * object comm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat_Create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":732 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ_NNZ( PetscMat A, object NNZ) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_NNZ(Mat __pyx_v_A, PyObject *__pyx_v_NNZ) { + PetscBool __pyx_v_aij; + PetscBool __pyx_v_baij; + PetscBool __pyx_v_sbaij; + PetscBool __pyx_v_aijis; + PetscInt __pyx_v_m; + PetscInt __pyx_v_bs; + PyObject *__pyx_v_od_nnz = 0; + PyObject *__pyx_v_oo_nnz = 0; + PetscInt __pyx_v_d_nz; + PetscInt __pyx_v_d_n; + PetscInt *__pyx_v_d_nnz; + PetscInt __pyx_v_o_nz; + PetscInt __pyx_v_o_n; + PetscInt *__pyx_v_o_nnz; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_t_11; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_AllocAIJ_NNZ", 0); + + /* "petsc4py/PETSc/petscmat.pxi":734 + * cdef inline PetscErrorCode Mat_AllocAIJ_NNZ( PetscMat A, object NNZ) except PETSC_ERR_PYTHON: + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) + * # local row size and block size + */ + __pyx_v_aij = PETSC_FALSE; + __pyx_v_baij = PETSC_FALSE; + __pyx_v_sbaij = PETSC_FALSE; + __pyx_v_aijis = PETSC_FALSE; + + /* "petsc4py/PETSc/petscmat.pxi":735 + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) # <<<<<<<<<<<<<< + * # local row size and block size + * cdef PetscInt m=0, bs=1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatHasPreallocationAIJ(__pyx_v_A, (&__pyx_v_aij), (&__pyx_v_baij), (&__pyx_v_sbaij), (&__pyx_v_aijis))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 735, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":737 + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) + * # local row size and block size + * cdef PetscInt m=0, bs=1 # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + */ + __pyx_v_m = 0; + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":738 + * # local row size and block size + * cdef PetscInt m=0, bs=1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) # <<<<<<<<<<<<<< + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_A, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 738, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":739 + * cdef PetscInt m=0, bs=1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" + */ + __pyx_t_3 = ((__pyx_v_baij == PETSC_TRUE) != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_sbaij == PETSC_TRUE) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":740 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) # <<<<<<<<<<<<<< + * assert bs > 0, "block size not set" + * # unpack NNZ argument + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSize(__pyx_v_A, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 740, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":741 + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" # <<<<<<<<<<<<<< + * # unpack NNZ argument + * cdef object od_nnz, oo_nnz + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_bs > 0) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_block_size_not_set); + __PYX_ERR(20, 741, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscmat.pxi":739 + * cdef PetscInt m=0, bs=1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":744 + * # unpack NNZ argument + * cdef object od_nnz, oo_nnz + * try: # <<<<<<<<<<<<<< + * od_nnz, oo_nnz = NNZ + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/petscmat.pxi":745 + * cdef object od_nnz, oo_nnz + * try: + * od_nnz, oo_nnz = NNZ # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * od_nnz, oo_nnz = NNZ, None + */ + if ((likely(PyTuple_CheckExact(__pyx_v_NNZ))) || (PyList_CheckExact(__pyx_v_NNZ))) { + PyObject* sequence = __pyx_v_NNZ; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 745, __pyx_L6_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 745, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 745, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_v_NNZ); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 745, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(20, 745, __pyx_L6_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L13_unpacking_done; + __pyx_L12_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 745, __pyx_L6_error) + __pyx_L13_unpacking_done:; + } + __pyx_v_od_nnz = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_oo_nnz = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":744 + * # unpack NNZ argument + * cdef object od_nnz, oo_nnz + * try: # <<<<<<<<<<<<<< + * od_nnz, oo_nnz = NNZ + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L11_try_end; + __pyx_L6_error:; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":746 + * try: + * od_nnz, oo_nnz = NNZ + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * od_nnz, oo_nnz = NNZ, None + * # diagonal and off-diagonal number of nonzeros + */ + __pyx_t_11 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_11) { + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocAIJ_NNZ", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(20, 746, __pyx_L8_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_9); + + /* "petsc4py/PETSc/petscmat.pxi":747 + * od_nnz, oo_nnz = NNZ + * except (TypeError, ValueError): + * od_nnz, oo_nnz = NNZ, None # <<<<<<<<<<<<<< + * # diagonal and off-diagonal number of nonzeros + * cdef PetscInt d_nz=PETSC_DECIDE, d_n=0, *d_nnz=NULL + */ + __pyx_t_12 = __pyx_v_NNZ; + __Pyx_INCREF(__pyx_t_12); + __pyx_t_13 = Py_None; + __Pyx_INCREF(__pyx_t_13); + __Pyx_XDECREF_SET(__pyx_v_od_nnz, __pyx_t_12); + __pyx_t_12 = 0; + __Pyx_XDECREF_SET(__pyx_v_oo_nnz, __pyx_t_13); + __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_exception_handled; + } + goto __pyx_L8_except_error; + __pyx_L8_except_error:; + + /* "petsc4py/PETSc/petscmat.pxi":744 + * # unpack NNZ argument + * cdef object od_nnz, oo_nnz + * try: # <<<<<<<<<<<<<< + * od_nnz, oo_nnz = NNZ + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L7_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + __pyx_L11_try_end:; + } + + /* "petsc4py/PETSc/petscmat.pxi":749 + * od_nnz, oo_nnz = NNZ, None + * # diagonal and off-diagonal number of nonzeros + * cdef PetscInt d_nz=PETSC_DECIDE, d_n=0, *d_nnz=NULL # <<<<<<<<<<<<<< + * if od_nnz is not None: + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) + */ + __pyx_v_d_nz = PETSC_DECIDE; + __pyx_v_d_n = 0; + __pyx_v_d_nnz = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":750 + * # diagonal and off-diagonal number of nonzeros + * cdef PetscInt d_nz=PETSC_DECIDE, d_n=0, *d_nnz=NULL + * if od_nnz is not None: # <<<<<<<<<<<<<< + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) + * if d_n == 0: d_nnz = NULL # just in case + */ + __pyx_t_2 = (__pyx_v_od_nnz != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":751 + * cdef PetscInt d_nz=PETSC_DECIDE, d_n=0, *d_nnz=NULL + * if od_nnz is not None: + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) # <<<<<<<<<<<<<< + * if d_n == 0: d_nnz = NULL # just in case + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL + */ + __pyx_t_9 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_od_nnz, (&__pyx_v_d_n), (&__pyx_v_d_nnz))); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF_SET(__pyx_v_od_nnz, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":752 + * if od_nnz is not None: + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) + * if d_n == 0: d_nnz = NULL # just in case # <<<<<<<<<<<<<< + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL + */ + __pyx_t_3 = ((__pyx_v_d_n == 0) != 0); + if (__pyx_t_3) { + __pyx_v_d_nnz = NULL; + goto __pyx_L17; + } + + /* "petsc4py/PETSc/petscmat.pxi":753 + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) + * if d_n == 0: d_nnz = NULL # just in case + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL # <<<<<<<<<<<<<< + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL + * if oo_nnz is not None: + */ + __pyx_t_3 = ((__pyx_v_d_n == 1) != 0); + if (__pyx_t_3) { + __pyx_v_d_nz = (__pyx_v_d_nnz[0]); + __pyx_v_d_n = 0; + __pyx_v_d_nnz = NULL; + } + __pyx_L17:; + + /* "petsc4py/PETSc/petscmat.pxi":750 + * # diagonal and off-diagonal number of nonzeros + * cdef PetscInt d_nz=PETSC_DECIDE, d_n=0, *d_nnz=NULL + * if od_nnz is not None: # <<<<<<<<<<<<<< + * od_nnz = iarray_i(od_nnz, &d_n, &d_nnz) + * if d_n == 0: d_nnz = NULL # just in case + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":754 + * if d_n == 0: d_nnz = NULL # just in case + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL # <<<<<<<<<<<<<< + * if oo_nnz is not None: + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) + */ + __pyx_v_o_nz = PETSC_DECIDE; + __pyx_v_o_n = 0; + __pyx_v_o_nnz = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":755 + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL + * if oo_nnz is not None: # <<<<<<<<<<<<<< + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) + * if o_n == 0: o_nnz = NULL # just in case + */ + __pyx_t_3 = (__pyx_v_oo_nnz != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":756 + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL + * if oo_nnz is not None: + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) # <<<<<<<<<<<<<< + * if o_n == 0: o_nnz = NULL # just in case + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL + */ + __pyx_t_9 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oo_nnz, (&__pyx_v_o_n), (&__pyx_v_o_nnz))); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF_SET(__pyx_v_oo_nnz, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":757 + * if oo_nnz is not None: + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) + * if o_n == 0: o_nnz = NULL # just in case # <<<<<<<<<<<<<< + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL + * if m == PETSC_DECIDE: + */ + __pyx_t_2 = ((__pyx_v_o_n == 0) != 0); + if (__pyx_t_2) { + __pyx_v_o_nnz = NULL; + goto __pyx_L19; + } + + /* "petsc4py/PETSc/petscmat.pxi":758 + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) + * if o_n == 0: o_nnz = NULL # just in case + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL # <<<<<<<<<<<<<< + * if m == PETSC_DECIDE: + * if d_n > 1 and d_n*bs > m: m = d_n*bs + */ + __pyx_t_2 = ((__pyx_v_o_n == 1) != 0); + if (__pyx_t_2) { + __pyx_v_o_nz = (__pyx_v_o_nnz[0]); + __pyx_v_o_n = 0; + __pyx_v_o_nnz = NULL; + } + __pyx_L19:; + + /* "petsc4py/PETSc/petscmat.pxi":755 + * elif d_n == 1: d_nz = d_nnz[0]; d_n=0; d_nnz = NULL + * cdef PetscInt o_nz=PETSC_DECIDE, o_n=0, *o_nnz=NULL + * if oo_nnz is not None: # <<<<<<<<<<<<<< + * oo_nnz = iarray_i(oo_nnz, &o_n, &o_nnz) + * if o_n == 0: o_nnz = NULL # just in case + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":759 + * if o_n == 0: o_nnz = NULL # just in case + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL + * if m == PETSC_DECIDE: # <<<<<<<<<<<<<< + * if d_n > 1 and d_n*bs > m: m = d_n*bs + * if o_n > 1 and o_n*bs > m: m = o_n*bs + */ + __pyx_t_2 = ((__pyx_v_m == PETSC_DECIDE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":760 + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL + * if m == PETSC_DECIDE: + * if d_n > 1 and d_n*bs > m: m = d_n*bs # <<<<<<<<<<<<<< + * if o_n > 1 and o_n*bs > m: m = o_n*bs + * # check array sizes + */ + __pyx_t_3 = ((__pyx_v_d_n > 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L22_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_d_n * __pyx_v_bs) > __pyx_v_m) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L22_bool_binop_done:; + if (__pyx_t_2) { + __pyx_v_m = (__pyx_v_d_n * __pyx_v_bs); + } + + /* "petsc4py/PETSc/petscmat.pxi":761 + * if m == PETSC_DECIDE: + * if d_n > 1 and d_n*bs > m: m = d_n*bs + * if o_n > 1 and o_n*bs > m: m = o_n*bs # <<<<<<<<<<<<<< + * # check array sizes + * if d_n > 1 and d_n*bs != m: raise ValueError( + */ + __pyx_t_3 = ((__pyx_v_o_n > 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L25_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_o_n * __pyx_v_bs) > __pyx_v_m) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L25_bool_binop_done:; + if (__pyx_t_2) { + __pyx_v_m = (__pyx_v_o_n * __pyx_v_bs); + } + + /* "petsc4py/PETSc/petscmat.pxi":759 + * if o_n == 0: o_nnz = NULL # just in case + * elif o_n == 1: o_nz = o_nnz[0]; o_n=0; o_nnz = NULL + * if m == PETSC_DECIDE: # <<<<<<<<<<<<<< + * if d_n > 1 and d_n*bs > m: m = d_n*bs + * if o_n > 1 and o_n*bs > m: m = o_n*bs + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":763 + * if o_n > 1 and o_n*bs > m: m = o_n*bs + * # check array sizes + * if d_n > 1 and d_n*bs != m: raise ValueError( # <<<<<<<<<<<<<< + * "size(d_nnz) is %d, expected %d" % + * (toInt(d_n), toInt(m//bs)) ) + */ + __pyx_t_3 = ((__pyx_v_d_n > 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L28_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_d_n * __pyx_v_bs) != __pyx_v_m) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L28_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscmat.pxi":765 + * if d_n > 1 and d_n*bs != m: raise ValueError( + * "size(d_nnz) is %d, expected %d" % + * (toInt(d_n), toInt(m//bs)) ) # <<<<<<<<<<<<<< + * if o_n > 1 and o_n*bs != m: raise ValueError( + * "size(o_nnz) is %d, expected %d" % + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_d_n); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m / __pyx_v_bs)); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_9 = 0; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":764 + * # check array sizes + * if d_n > 1 and d_n*bs != m: raise ValueError( + * "size(d_nnz) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(d_n), toInt(m//bs)) ) + * if o_n > 1 and o_n*bs != m: raise ValueError( + */ + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_size_d_nnz_is_d_expected_d, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":763 + * if o_n > 1 and o_n*bs > m: m = o_n*bs + * # check array sizes + * if d_n > 1 and d_n*bs != m: raise ValueError( # <<<<<<<<<<<<<< + * "size(d_nnz) is %d, expected %d" % + * (toInt(d_n), toInt(m//bs)) ) + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(20, 763, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":766 + * "size(d_nnz) is %d, expected %d" % + * (toInt(d_n), toInt(m//bs)) ) + * if o_n > 1 and o_n*bs != m: raise ValueError( # <<<<<<<<<<<<<< + * "size(o_nnz) is %d, expected %d" % + * (toInt(o_n), toInt(m//bs)) ) + */ + __pyx_t_3 = ((__pyx_v_o_n > 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L31_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_o_n * __pyx_v_bs) != __pyx_v_m) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L31_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscmat.pxi":768 + * if o_n > 1 and o_n*bs != m: raise ValueError( + * "size(o_nnz) is %d, expected %d" % + * (toInt(o_n), toInt(m//bs)) ) # <<<<<<<<<<<<<< + * # preallocate + * if aij == PETSC_TRUE: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_o_n); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m / __pyx_v_bs)); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); + __pyx_t_8 = 0; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":767 + * (toInt(d_n), toInt(m//bs)) ) + * if o_n > 1 and o_n*bs != m: raise ValueError( + * "size(o_nnz) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(o_n), toInt(m//bs)) ) + * # preallocate + */ + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_size_o_nnz_is_d_expected_d, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":766 + * "size(d_nnz) is %d, expected %d" % + * (toInt(d_n), toInt(m//bs)) ) + * if o_n > 1 and o_n*bs != m: raise ValueError( # <<<<<<<<<<<<<< + * "size(o_nnz) is %d, expected %d" % + * (toInt(o_n), toInt(m//bs)) ) + */ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(20, 766, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":770 + * (toInt(o_n), toInt(m//bs)) ) + * # preallocate + * if aij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + */ + __pyx_t_2 = ((__pyx_v_aij == PETSC_TRUE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":771 + * # preallocate + * if aij == PETSC_TRUE: + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * if baij == PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqAIJSetPreallocation(__pyx_v_A, __pyx_v_d_nz, __pyx_v_d_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 771, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":772 + * if aij == PETSC_TRUE: + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) # <<<<<<<<<<<<<< + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPIAIJSetPreallocation(__pyx_v_A, __pyx_v_d_nz, __pyx_v_d_nnz, __pyx_v_o_nz, __pyx_v_o_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 772, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":770 + * (toInt(o_n), toInt(m//bs)) ) + * # preallocate + * if aij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":773 + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * if baij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + */ + __pyx_t_2 = ((__pyx_v_baij == PETSC_TRUE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":774 + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if sbaij == PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqBAIJSetPreallocation(__pyx_v_A, __pyx_v_bs, __pyx_v_d_nz, __pyx_v_d_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 774, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":775 + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) # <<<<<<<<<<<<<< + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPIBAIJSetPreallocation(__pyx_v_A, __pyx_v_bs, __pyx_v_d_nz, __pyx_v_d_nnz, __pyx_v_o_nz, __pyx_v_o_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 775, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":773 + * CHKERR( MatSeqAIJSetPreallocation(A, d_nz, d_nnz) ) + * CHKERR( MatMPIAIJSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * if baij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":776 + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + */ + __pyx_t_2 = ((__pyx_v_sbaij == PETSC_TRUE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":777 + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if aijis == PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqSBAIJSetPreallocation(__pyx_v_A, __pyx_v_bs, __pyx_v_d_nz, __pyx_v_d_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 777, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":778 + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) # <<<<<<<<<<<<<< + * if aijis == PETSC_TRUE: + * CHKERR( MatISSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPISBAIJSetPreallocation(__pyx_v_A, __pyx_v_bs, __pyx_v_d_nz, __pyx_v_d_nnz, __pyx_v_o_nz, __pyx_v_o_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 778, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":776 + * CHKERR( MatSeqBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPIBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":779 + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if aijis == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatISSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * return PETSC_SUCCESS + */ + __pyx_t_2 = ((__pyx_v_aijis == PETSC_TRUE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":780 + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if aijis == PETSC_TRUE: + * CHKERR( MatISSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISSetPreallocation(__pyx_v_A, __pyx_v_d_nz, __pyx_v_d_nnz, __pyx_v_o_nz, __pyx_v_o_nnz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 780, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":779 + * CHKERR( MatSeqSBAIJSetPreallocation(A, bs, d_nz, d_nnz) ) + * CHKERR( MatMPISBAIJSetPreallocation(A, bs, d_nz, d_nnz, o_nz, o_nnz) ) + * if aijis == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatISSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":781 + * if aijis == PETSC_TRUE: + * CHKERR( MatISSetPreallocation(A, d_nz, d_nnz, o_nz, o_nnz) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode Mat_AllocAIJ_CSR(PetscMat A, object CSR) except PETSC_ERR_PYTHON: + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":732 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ_NNZ( PetscMat A, object NNZ) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocAIJ_NNZ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_od_nnz); + __Pyx_XDECREF(__pyx_v_oo_nnz); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":783 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ_CSR(PetscMat A, object CSR) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_CSR(Mat __pyx_v_A, PyObject *__pyx_v_CSR) { + PetscBool __pyx_v_aij; + PetscBool __pyx_v_baij; + PetscBool __pyx_v_sbaij; + PetscBool __pyx_v_aijis; + PetscInt __pyx_v_m; + PetscInt __pyx_v_bs; + PyObject *__pyx_v_oi = 0; + PyObject *__pyx_v_oj = 0; + PyObject *__pyx_v_ov = 0; + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscInt __pyx_v_nj; + PetscInt *__pyx_v_j; + PetscInt __pyx_v_nv; + PetscScalar *__pyx_v_v; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_t_12; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_AllocAIJ_CSR", 0); + + /* "petsc4py/PETSc/petscmat.pxi":785 + * cdef inline PetscErrorCode Mat_AllocAIJ_CSR(PetscMat A, object CSR) except PETSC_ERR_PYTHON: + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) + * # local row size and block size + */ + __pyx_v_aij = PETSC_FALSE; + __pyx_v_baij = PETSC_FALSE; + __pyx_v_sbaij = PETSC_FALSE; + __pyx_v_aijis = PETSC_FALSE; + + /* "petsc4py/PETSc/petscmat.pxi":786 + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) # <<<<<<<<<<<<<< + * # local row size and block size + * cdef PetscInt m=0, bs = 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatHasPreallocationAIJ(__pyx_v_A, (&__pyx_v_aij), (&__pyx_v_baij), (&__pyx_v_sbaij), (&__pyx_v_aijis))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 786, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":788 + * CHKERR( MatHasPreallocationAIJ(A, &aij, &baij, &sbaij, &aijis)) + * # local row size and block size + * cdef PetscInt m=0, bs = 1 # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + */ + __pyx_v_m = 0; + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":789 + * # local row size and block size + * cdef PetscInt m=0, bs = 1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) # <<<<<<<<<<<<<< + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_A, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 789, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":790 + * cdef PetscInt m=0, bs = 1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" + */ + __pyx_t_3 = ((__pyx_v_baij == PETSC_TRUE) != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_sbaij == PETSC_TRUE) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":791 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) # <<<<<<<<<<<<<< + * assert bs > 0, "block size not set" + * # unpack CSR argument + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSize(__pyx_v_A, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 791, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":792 + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" # <<<<<<<<<<<<<< + * # unpack CSR argument + * cdef object oi, oj, ov + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_bs > 0) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_block_size_not_set); + __PYX_ERR(20, 792, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscmat.pxi":790 + * cdef PetscInt m=0, bs = 1 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * if baij == PETSC_TRUE or sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(A, &bs) ) + * assert bs > 0, "block size not set" + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":795 + * # unpack CSR argument + * cdef object oi, oj, ov + * try: # <<<<<<<<<<<<<< + * oi, oj, ov = CSR + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/petscmat.pxi":796 + * cdef object oi, oj, ov + * try: + * oi, oj, ov = CSR # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * oi, oj = CSR; ov = None + */ + if ((likely(PyTuple_CheckExact(__pyx_v_CSR))) || (PyList_CheckExact(__pyx_v_CSR))) { + PyObject* sequence = __pyx_v_CSR; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 796, __pyx_L6_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 796, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 796, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 796, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_v_CSR); if (unlikely(!__pyx_t_10)) __PYX_ERR(20, 796, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(20, 796, __pyx_L6_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L13_unpacking_done; + __pyx_L12_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 796, __pyx_L6_error) + __pyx_L13_unpacking_done:; + } + __pyx_v_oi = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_oj = __pyx_t_8; + __pyx_t_8 = 0; + __pyx_v_ov = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":795 + * # unpack CSR argument + * cdef object oi, oj, ov + * try: # <<<<<<<<<<<<<< + * oi, oj, ov = CSR + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L11_try_end; + __pyx_L6_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":797 + * try: + * oi, oj, ov = CSR + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * oi, oj = CSR; ov = None + * # rows, cols, and values + */ + __pyx_t_12 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_12) { + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocAIJ_CSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7) < 0) __PYX_ERR(20, 797, __pyx_L8_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_7); + + /* "petsc4py/PETSc/petscmat.pxi":798 + * oi, oj, ov = CSR + * except (TypeError, ValueError): + * oi, oj = CSR; ov = None # <<<<<<<<<<<<<< + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + */ + if ((likely(PyTuple_CheckExact(__pyx_v_CSR))) || (PyList_CheckExact(__pyx_v_CSR))) { + PyObject* sequence = __pyx_v_CSR; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 798, __pyx_L8_except_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_10 = PyList_GET_ITEM(sequence, 0); + __pyx_t_13 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_13); + #else + __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(20, 798, __pyx_L8_except_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(20, 798, __pyx_L8_except_error) + __Pyx_GOTREF(__pyx_t_13); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_14 = PyObject_GetIter(__pyx_v_CSR); if (unlikely(!__pyx_t_14)) __PYX_ERR(20, 798, __pyx_L8_except_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_11 = Py_TYPE(__pyx_t_14)->tp_iternext; + index = 0; __pyx_t_10 = __pyx_t_11(__pyx_t_14); if (unlikely(!__pyx_t_10)) goto __pyx_L16_unpacking_failed; + __Pyx_GOTREF(__pyx_t_10); + index = 1; __pyx_t_13 = __pyx_t_11(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L16_unpacking_failed; + __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_14), 2) < 0) __PYX_ERR(20, 798, __pyx_L8_except_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + goto __pyx_L17_unpacking_done; + __pyx_L16_unpacking_failed:; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 798, __pyx_L8_except_error) + __pyx_L17_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_oi, __pyx_t_10); + __pyx_t_10 = 0; + __Pyx_XDECREF_SET(__pyx_v_oj, __pyx_t_13); + __pyx_t_13 = 0; + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_ov, Py_None); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_exception_handled; + } + goto __pyx_L8_except_error; + __pyx_L8_except_error:; + + /* "petsc4py/PETSc/petscmat.pxi":795 + * # unpack CSR argument + * cdef object oi, oj, ov + * try: # <<<<<<<<<<<<<< + * oi, oj, ov = CSR + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L7_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + __pyx_L11_try_end:; + } + + /* "petsc4py/PETSc/petscmat.pxi":800 + * oi, oj = CSR; ov = None + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":801 + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + */ + __pyx_v_nj = 0; + __pyx_v_j = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":802 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + */ + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscmat.pxi":803 + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":804 + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) # <<<<<<<<<<<<<< + * oj = iarray_i(oj, &nj, &j) + * if ov is not None: + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF_SET(__pyx_v_oi, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":805 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) # <<<<<<<<<<<<<< + * if ov is not None: + * ov = iarray_s(ov, &nv, &v) + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oj, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF_SET(__pyx_v_oj, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":806 + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + * if ov is not None: # <<<<<<<<<<<<<< + * ov = iarray_s(ov, &nv, &v) + * if m == PETSC_DECIDE: m = (ni-1)*bs + */ + __pyx_t_2 = (__pyx_v_ov != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":807 + * oj = iarray_i(oj, &nj, &j) + * if ov is not None: + * ov = iarray_s(ov, &nv, &v) # <<<<<<<<<<<<<< + * if m == PETSC_DECIDE: m = (ni-1)*bs + * # check array sizes + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_ov, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF_SET(__pyx_v_ov, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":806 + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + * if ov is not None: # <<<<<<<<<<<<<< + * ov = iarray_s(ov, &nv, &v) + * if m == PETSC_DECIDE: m = (ni-1)*bs + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":808 + * if ov is not None: + * ov = iarray_s(ov, &nv, &v) + * if m == PETSC_DECIDE: m = (ni-1)*bs # <<<<<<<<<<<<<< + * # check array sizes + * if ((ni-1)*bs != m): + */ + __pyx_t_3 = ((__pyx_v_m == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_m = ((__pyx_v_ni - 1) * __pyx_v_bs); + } + + /* "petsc4py/PETSc/petscmat.pxi":810 + * if m == PETSC_DECIDE: m = (ni-1)*bs + * # check array sizes + * if ((ni-1)*bs != m): # <<<<<<<<<<<<<< + * raise ValueError("size(I) is %d, expected %d" % + * (toInt(ni), toInt(m//bs+1)) ) + */ + __pyx_t_3 = ((((__pyx_v_ni - 1) * __pyx_v_bs) != __pyx_v_m) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":812 + * if ((ni-1)*bs != m): + * raise ValueError("size(I) is %d, expected %d" % + * (toInt(ni), toInt(m//bs+1)) ) # <<<<<<<<<<<<<< + * if (i[0] != 0): + * raise ValueError("I[0] is %d, expected %d" % + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(((__pyx_v_m / __pyx_v_bs) + 1)); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); + __pyx_t_7 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":811 + * # check array sizes + * if ((ni-1)*bs != m): + * raise ValueError("size(I) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(ni), toInt(m//bs+1)) ) + * if (i[0] != 0): + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_size_I_is_d_expected_d, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(20, 811, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":810 + * if m == PETSC_DECIDE: m = (ni-1)*bs + * # check array sizes + * if ((ni-1)*bs != m): # <<<<<<<<<<<<<< + * raise ValueError("size(I) is %d, expected %d" % + * (toInt(ni), toInt(m//bs+1)) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":813 + * raise ValueError("size(I) is %d, expected %d" % + * (toInt(ni), toInt(m//bs+1)) ) + * if (i[0] != 0): # <<<<<<<<<<<<<< + * raise ValueError("I[0] is %d, expected %d" % + * (toInt(i[0]), toInt(0)) ) + */ + __pyx_t_3 = (((__pyx_v_i[0]) != 0) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":815 + * if (i[0] != 0): + * raise ValueError("I[0] is %d, expected %d" % + * (toInt(i[0]), toInt(0)) ) # <<<<<<<<<<<<<< + * if (i[ni-1] != nj): + * raise ValueError("size(J) is %d, expected %d" % + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_i[0])); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); + __pyx_t_9 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":814 + * (toInt(ni), toInt(m//bs+1)) ) + * if (i[0] != 0): + * raise ValueError("I[0] is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(i[0]), toInt(0)) ) + * if (i[ni-1] != nj): + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_I_0_is_d_expected_d, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(20, 814, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":813 + * raise ValueError("size(I) is %d, expected %d" % + * (toInt(ni), toInt(m//bs+1)) ) + * if (i[0] != 0): # <<<<<<<<<<<<<< + * raise ValueError("I[0] is %d, expected %d" % + * (toInt(i[0]), toInt(0)) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":816 + * raise ValueError("I[0] is %d, expected %d" % + * (toInt(i[0]), toInt(0)) ) + * if (i[ni-1] != nj): # <<<<<<<<<<<<<< + * raise ValueError("size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + */ + __pyx_t_3 = (((__pyx_v_i[(__pyx_v_ni - 1)]) != __pyx_v_nj) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":818 + * if (i[ni-1] != nj): + * raise ValueError("size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) # <<<<<<<<<<<<<< + * if v != NULL and (nj*bs*bs != nv): + * raise ValueError("size(V) is %d, expected %d" % + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nj); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_i[(__pyx_v_ni - 1)])); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_8); + __pyx_t_7 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":817 + * (toInt(i[0]), toInt(0)) ) + * if (i[ni-1] != nj): + * raise ValueError("size(J) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(nj), toInt(i[ni-1])) ) + * if v != NULL and (nj*bs*bs != nv): + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_size_J_is_d_expected_d, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(20, 817, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":816 + * raise ValueError("I[0] is %d, expected %d" % + * (toInt(i[0]), toInt(0)) ) + * if (i[ni-1] != nj): # <<<<<<<<<<<<<< + * raise ValueError("size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":819 + * raise ValueError("size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + * if v != NULL and (nj*bs*bs != nv): # <<<<<<<<<<<<<< + * raise ValueError("size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*bs*bs)) ) + */ + __pyx_t_2 = ((__pyx_v_v != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L24_bool_binop_done; + } + __pyx_t_2 = ((((__pyx_v_nj * __pyx_v_bs) * __pyx_v_bs) != __pyx_v_nv) != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L24_bool_binop_done:; + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":821 + * if v != NULL and (nj*bs*bs != nv): + * raise ValueError("size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*bs*bs)) ) # <<<<<<<<<<<<<< + * # preallocate + * if aij == PETSC_TRUE: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(((__pyx_v_nj * __pyx_v_bs) * __pyx_v_bs)); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); + __pyx_t_9 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":820 + * (toInt(nj), toInt(i[ni-1])) ) + * if v != NULL and (nj*bs*bs != nv): + * raise ValueError("size(V) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(nv), toInt(nj*bs*bs)) ) + * # preallocate + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_size_V_is_d_expected_d, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(20, 820, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":819 + * raise ValueError("size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + * if v != NULL and (nj*bs*bs != nv): # <<<<<<<<<<<<<< + * raise ValueError("size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*bs*bs)) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":823 + * (toInt(nv), toInt(nj*bs*bs)) ) + * # preallocate + * if aij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + */ + __pyx_t_3 = ((__pyx_v_aij == PETSC_TRUE) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":824 + * # preallocate + * if aij == PETSC_TRUE: + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + * if baij == PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 824, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":825 + * if aij == PETSC_TRUE: + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) # <<<<<<<<<<<<<< + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPIAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 825, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":823 + * (toInt(nv), toInt(nj*bs*bs)) ) + * # preallocate + * if aij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":826 + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + * if baij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + __pyx_t_3 = ((__pyx_v_baij == PETSC_TRUE) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":827 + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * if sbaij == PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqBAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_bs, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 827, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":828 + * if baij == PETSC_TRUE: + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) # <<<<<<<<<<<<<< + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPIBAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_bs, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 828, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":826 + * CHKERR( MatSeqAIJSetPreallocationCSR(A, i, j, v) ) + * CHKERR( MatMPIAIJSetPreallocationCSR(A, i, j, v) ) + * if baij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":829 + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * if sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPISBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + __pyx_t_3 = ((__pyx_v_sbaij == PETSC_TRUE) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":830 + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPISBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * return PETSC_SUCCESS + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqSBAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_bs, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 830, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":831 + * if sbaij == PETSC_TRUE: + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPISBAIJSetPreallocationCSR(A, bs, i, j, v) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPISBAIJSetPreallocationCSR(__pyx_v_A, __pyx_v_bs, __pyx_v_i, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 831, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":829 + * CHKERR( MatSeqBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPIBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * if sbaij == PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPISBAIJSetPreallocationCSR(A, bs, i, j, v) ) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":832 + * CHKERR( MatSeqSBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * CHKERR( MatMPISBAIJSetPreallocationCSR(A, bs, i, j, v) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":783 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ_CSR(PetscMat A, object CSR) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * # + * cdef PetscBool aij=PETSC_FALSE, baij=PETSC_FALSE, sbaij=PETSC_FALSE, aijis=PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocAIJ_CSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oi); + __Pyx_XDECREF(__pyx_v_oj); + __Pyx_XDECREF(__pyx_v_ov); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":834 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if CSR is not None: + * return Mat_AllocAIJ_CSR(A, CSR) + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(Mat __pyx_v_A, PyObject *__pyx_v_NNZ, PyObject *__pyx_v_CSR) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_AllocAIJ", 0); + + /* "petsc4py/PETSc/petscmat.pxi":835 + * + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: + * if CSR is not None: # <<<<<<<<<<<<<< + * return Mat_AllocAIJ_CSR(A, CSR) + * if NNZ is not None: + */ + __pyx_t_1 = (__pyx_v_CSR != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":836 + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: + * if CSR is not None: + * return Mat_AllocAIJ_CSR(A, CSR) # <<<<<<<<<<<<<< + * if NNZ is not None: + * return Mat_AllocAIJ_NNZ(A, NNZ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_CSR(__pyx_v_A, __pyx_v_CSR); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 836, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":835 + * + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: + * if CSR is not None: # <<<<<<<<<<<<<< + * return Mat_AllocAIJ_CSR(A, CSR) + * if NNZ is not None: + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":837 + * if CSR is not None: + * return Mat_AllocAIJ_CSR(A, CSR) + * if NNZ is not None: # <<<<<<<<<<<<<< + * return Mat_AllocAIJ_NNZ(A, NNZ) + * return PETSC_SUCCESS + */ + __pyx_t_2 = (__pyx_v_NNZ != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":838 + * return Mat_AllocAIJ_CSR(A, CSR) + * if NNZ is not None: + * return Mat_AllocAIJ_NNZ(A, NNZ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_NNZ(__pyx_v_A, __pyx_v_NNZ); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 838, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":837 + * if CSR is not None: + * return Mat_AllocAIJ_CSR(A, CSR) + * if NNZ is not None: # <<<<<<<<<<<<<< + * return Mat_AllocAIJ_NNZ(A, NNZ) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":839 + * if NNZ is not None: + * return Mat_AllocAIJ_NNZ(A, NNZ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline object Mat_AllocDense(PetscMat A, object array): + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":834 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode Mat_AllocAIJ(PetscMat A,object NNZ, object CSR) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * if CSR is not None: + * return Mat_AllocAIJ_CSR(A, CSR) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":841 + * return PETSC_SUCCESS + * + * cdef inline object Mat_AllocDense(PetscMat A, object array): # <<<<<<<<<<<<<< + * cdef PetscInt m=0, N=0 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_Mat_AllocDense(Mat __pyx_v_A, PyObject *__pyx_v_array) { + PetscInt __pyx_v_m; + PetscInt __pyx_v_N; + PetscInt __pyx_v_size; + PetscScalar *__pyx_v_data; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_AllocDense", 0); + __Pyx_INCREF(__pyx_v_array); + + /* "petsc4py/PETSc/petscmat.pxi":842 + * + * cdef inline object Mat_AllocDense(PetscMat A, object array): + * cdef PetscInt m=0, N=0 # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * CHKERR( MatGetSize(A, NULL, &N) ) + */ + __pyx_v_m = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscmat.pxi":843 + * cdef inline object Mat_AllocDense(PetscMat A, object array): + * cdef PetscInt m=0, N=0 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(A, NULL, &N) ) + * cdef PetscInt size=0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_A, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 843, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":844 + * cdef PetscInt m=0, N=0 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * CHKERR( MatGetSize(A, NULL, &N) ) # <<<<<<<<<<<<<< + * cdef PetscInt size=0 + * cdef PetscScalar *data=NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_A, NULL, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 844, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":845 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + * CHKERR( MatGetSize(A, NULL, &N) ) + * cdef PetscInt size=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *data=NULL + * if array is not None: + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/petscmat.pxi":846 + * CHKERR( MatGetSize(A, NULL, &N) ) + * cdef PetscInt size=0 + * cdef PetscScalar *data=NULL # <<<<<<<<<<<<<< + * if array is not None: + * array = ofarray_s(array, &size, &data) + */ + __pyx_v_data = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":847 + * cdef PetscInt size=0 + * cdef PetscScalar *data=NULL + * if array is not None: # <<<<<<<<<<<<<< + * array = ofarray_s(array, &size, &data) + * if m*N != size: raise ValueError( + */ + __pyx_t_2 = (__pyx_v_array != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":848 + * cdef PetscScalar *data=NULL + * if array is not None: + * array = ofarray_s(array, &size, &data) # <<<<<<<<<<<<<< + * if m*N != size: raise ValueError( + * "size(array) is %d, expected %dx%d=%d" % + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ofarray_s(__pyx_v_array, (&__pyx_v_size), (&__pyx_v_data))); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":849 + * if array is not None: + * array = ofarray_s(array, &size, &data) + * if m*N != size: raise ValueError( # <<<<<<<<<<<<<< + * "size(array) is %d, expected %dx%d=%d" % + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) + */ + __pyx_t_3 = (((__pyx_v_m * __pyx_v_N) != __pyx_v_size) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":851 + * if m*N != size: raise ValueError( + * "size(array) is %d, expected %dx%d=%d" % + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) # <<<<<<<<<<<<<< + * CHKERR( MatSeqDenseSetPreallocation(A, data) ) + * CHKERR( MatMPIDenseSetPreallocation(A, data) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m * __pyx_v_N)); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_7); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":850 + * array = ofarray_s(array, &size, &data) + * if m*N != size: raise ValueError( + * "size(array) is %d, expected %dx%d=%d" % # <<<<<<<<<<<<<< + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) + * CHKERR( MatSeqDenseSetPreallocation(A, data) ) + */ + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_size_array_is_d_expected_dx_d_d, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":849 + * if array is not None: + * array = ofarray_s(array, &size, &data) + * if m*N != size: raise ValueError( # <<<<<<<<<<<<<< + * "size(array) is %d, expected %dx%d=%d" % + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(20, 849, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":847 + * cdef PetscInt size=0 + * cdef PetscScalar *data=NULL + * if array is not None: # <<<<<<<<<<<<<< + * array = ofarray_s(array, &size, &data) + * if m*N != size: raise ValueError( + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":852 + * "size(array) is %d, expected %dx%d=%d" % + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) + * CHKERR( MatSeqDenseSetPreallocation(A, data) ) # <<<<<<<<<<<<<< + * CHKERR( MatMPIDenseSetPreallocation(A, data) ) + * return array + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqDenseSetPreallocation(__pyx_v_A, __pyx_v_data)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 852, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":853 + * (toInt(size), toInt(m), toInt(N), toInt(m*N)) ) + * CHKERR( MatSeqDenseSetPreallocation(A, data) ) + * CHKERR( MatMPIDenseSetPreallocation(A, data) ) # <<<<<<<<<<<<<< + * return array + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMPIDenseSetPreallocation(__pyx_v_A, __pyx_v_data)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 853, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":854 + * CHKERR( MatSeqDenseSetPreallocation(A, data) ) + * CHKERR( MatMPIDenseSetPreallocation(A, data) ) + * return array # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_array); + __pyx_r = __pyx_v_array; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":841 + * return PETSC_SUCCESS + * + * cdef inline object Mat_AllocDense(PetscMat A, object array): # <<<<<<<<<<<<<< + * cdef PetscInt m=0, N=0 + * CHKERR( MatGetLocalSize(A, &m, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.Mat_AllocDense", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":863 + * const PetscScalar*,PetscInsertMode) + * + * cdef inline MatSetValuesFcn* matsetvalues_fcn(int blocked, int local): # <<<<<<<<<<<<<< + * cdef MatSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = MatSetValuesBlockedLocal + */ + +static CYTHON_INLINE __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_f_8petsc4py_5PETSc_matsetvalues_fcn(int __pyx_v_blocked, int __pyx_v_local) { + __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_v_setvalues; + __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + __Pyx_RefNannySetupContext("matsetvalues_fcn", 0); + + /* "petsc4py/PETSc/petscmat.pxi":864 + * + * cdef inline MatSetValuesFcn* matsetvalues_fcn(int blocked, int local): + * cdef MatSetValuesFcn *setvalues = NULL # <<<<<<<<<<<<<< + * if blocked and local: setvalues = MatSetValuesBlockedLocal + * elif blocked: setvalues = MatSetValuesBlocked + */ + __pyx_v_setvalues = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":865 + * cdef inline MatSetValuesFcn* matsetvalues_fcn(int blocked, int local): + * cdef MatSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = MatSetValuesBlockedLocal # <<<<<<<<<<<<<< + * elif blocked: setvalues = MatSetValuesBlocked + * elif local: setvalues = MatSetValuesLocal + */ + __pyx_t_2 = (__pyx_v_blocked != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__pyx_v_local != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + __pyx_v_setvalues = MatSetValuesBlockedLocal; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":866 + * cdef MatSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = MatSetValuesBlockedLocal + * elif blocked: setvalues = MatSetValuesBlocked # <<<<<<<<<<<<<< + * elif local: setvalues = MatSetValuesLocal + * else: setvalues = MatSetValues + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_v_setvalues = MatSetValuesBlocked; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":867 + * if blocked and local: setvalues = MatSetValuesBlockedLocal + * elif blocked: setvalues = MatSetValuesBlocked + * elif local: setvalues = MatSetValuesLocal # <<<<<<<<<<<<<< + * else: setvalues = MatSetValues + * return setvalues + */ + __pyx_t_1 = (__pyx_v_local != 0); + if (__pyx_t_1) { + __pyx_v_setvalues = MatSetValuesLocal; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscmat.pxi":868 + * elif blocked: setvalues = MatSetValuesBlocked + * elif local: setvalues = MatSetValuesLocal + * else: setvalues = MatSetValues # <<<<<<<<<<<<<< + * return setvalues + * + */ + /*else*/ { + __pyx_v_setvalues = MatSetValues; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscmat.pxi":869 + * elif local: setvalues = MatSetValuesLocal + * else: setvalues = MatSetValues + * return setvalues # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode matsetvalues(PetscMat A, + */ + __pyx_r = __pyx_v_setvalues; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":863 + * const PetscScalar*,PetscInsertMode) + * + * cdef inline MatSetValuesFcn* matsetvalues_fcn(int blocked, int local): # <<<<<<<<<<<<<< + * cdef MatSetValuesFcn *setvalues = NULL + * if blocked and local: setvalues = MatSetValuesBlockedLocal + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":871 + * return setvalues + * + * cdef inline PetscErrorCode matsetvalues(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, int blocked, int local) except PETSC_ERR_PYTHON: + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues(Mat __pyx_v_A, PyObject *__pyx_v_oi, PyObject *__pyx_v_oj, PyObject *__pyx_v_ov, PyObject *__pyx_v_oaddv, int __pyx_v_blocked, int __pyx_v_local) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscInt __pyx_v_nj; + PetscInt *__pyx_v_j; + PetscInt __pyx_v_nv; + PetscScalar *__pyx_v_v; + __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_v_setvalues; + InsertMode __pyx_v_addv; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + InsertMode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matsetvalues", 0); + __Pyx_INCREF(__pyx_v_oi); + __Pyx_INCREF(__pyx_v_oj); + __Pyx_INCREF(__pyx_v_ov); + + /* "petsc4py/PETSc/petscmat.pxi":875 + * object oaddv, int blocked, int local) except PETSC_ERR_PYTHON: + * # block size + * cdef PetscInt rbs=1, cbs=1 # <<<<<<<<<<<<<< + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + */ + __pyx_v_rbs = 1; + __pyx_v_cbs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":876 + * # block size + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) # <<<<<<<<<<<<<< + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSizes(__pyx_v_A, (&__pyx_v_rbs), (&__pyx_v_cbs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 876, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":877 + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 # <<<<<<<<<<<<<< + * if cbs < 1: cbs = 1 + * # rows, cols, and values + */ + __pyx_t_1 = ((__pyx_v_rbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":878 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 # <<<<<<<<<<<<<< + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + */ + __pyx_t_1 = ((__pyx_v_cbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_cbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":880 + * if cbs < 1: cbs = 1 + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":881 + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + */ + __pyx_v_nj = 0; + __pyx_v_j = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":882 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + */ + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscmat.pxi":883 + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":884 + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) # <<<<<<<<<<<<<< + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_oi, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":885 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) # <<<<<<<<<<<<<< + * ov = iarray_s(ov, &nv, &v) + * if ni*nj*rbs*cbs != nv: raise ValueError( + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oj, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_oj, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":886 + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) # <<<<<<<<<<<<<< + * if ni*nj*rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_ov, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_ov, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":887 + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) + * if ni*nj*rbs*cbs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv)) ) + */ + __pyx_t_1 = (((((__pyx_v_ni * __pyx_v_nj) * __pyx_v_rbs) * __pyx_v_cbs) != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":889 + * if ni*nj*rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv)) ) # <<<<<<<<<<<<<< + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = matsetvalues_fcn(blocked, local) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nj); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":888 + * ov = iarray_s(ov, &nv, &v) + * if ni*nj*rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % # <<<<<<<<<<<<<< + * (toInt(ni), toInt(nj), toInt(nv)) ) + * # MatSetValuesXXX function and insert mode + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_incompatible_array_sizes_ni_d_nj, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":887 + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) + * if ni*nj*rbs*cbs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv)) ) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 887, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(20, 887, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":891 + * (toInt(ni), toInt(nj), toInt(nv)) ) + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = matsetvalues_fcn(blocked, local) # <<<<<<<<<<<<<< + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual call + */ + __pyx_v_setvalues = __pyx_f_8petsc4py_5PETSc_matsetvalues_fcn(__pyx_v_blocked, __pyx_v_local); + + /* "petsc4py/PETSc/petscmat.pxi":892 + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = matsetvalues_fcn(blocked, local) + * cdef PetscInsertMode addv = insertmode(oaddv) # <<<<<<<<<<<<<< + * # actual call + * CHKERR( setvalues(A, ni, i, nj, j, v, addv) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_oaddv); if (unlikely(__pyx_t_7 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(20, 892, __pyx_L1_error) + __pyx_v_addv = __pyx_t_7; + + /* "petsc4py/PETSc/petscmat.pxi":894 + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual call + * CHKERR( setvalues(A, ni, i, nj, j, v, addv) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_v_setvalues(__pyx_v_A, __pyx_v_ni, __pyx_v_i, __pyx_v_nj, __pyx_v_j, __pyx_v_v, __pyx_v_addv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 894, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":895 + * # actual call + * CHKERR( setvalues(A, ni, i, nj, j, v, addv) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode matsetvalues_rcv(PetscMat A, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":871 + * return setvalues + * + * cdef inline PetscErrorCode matsetvalues(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, int blocked, int local) except PETSC_ERR_PYTHON: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.matsetvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oi); + __Pyx_XDECREF(__pyx_v_oj); + __Pyx_XDECREF(__pyx_v_ov); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":897 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_rcv(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(Mat __pyx_v_A, PyObject *__pyx_v_oi, PyObject *__pyx_v_oj, PyObject *__pyx_v_ov, PyObject *__pyx_v_oaddv, int __pyx_v_blocked, int __pyx_v_local) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscInt __pyx_v_nj; + PetscInt *__pyx_v_j; + PetscInt __pyx_v_nv; + PetscScalar *__pyx_v_v; + PyArrayObject *__pyx_v_ai = 0; + PyArrayObject *__pyx_v_aj = 0; + PyArrayObject *__pyx_v_av = 0; + Py_ssize_t __pyx_v_nm; + Py_ssize_t __pyx_v_si; + Py_ssize_t __pyx_v_sj; + Py_ssize_t __pyx_v_sv; + __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_v_setvalues; + InsertMode __pyx_v_addv; + Py_ssize_t __pyx_v_k; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + InsertMode __pyx_t_8; + Py_ssize_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matsetvalues_rcv", 0); + + /* "petsc4py/PETSc/petscmat.pxi":902 + * int blocked, int local) except PETSC_ERR_PYTHON: + * # block size + * cdef PetscInt rbs=1, cbs=1 # <<<<<<<<<<<<<< + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + */ + __pyx_v_rbs = 1; + __pyx_v_cbs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":903 + * # block size + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) # <<<<<<<<<<<<<< + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSizes(__pyx_v_A, (&__pyx_v_rbs), (&__pyx_v_cbs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 903, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":904 + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 # <<<<<<<<<<<<<< + * if cbs < 1: cbs = 1 + * # rows, cols, and values + */ + __pyx_t_1 = ((__pyx_v_rbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":905 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 # <<<<<<<<<<<<<< + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + */ + __pyx_t_1 = ((__pyx_v_cbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_cbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":907 + * if cbs < 1: cbs = 1 + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":908 + * # rows, cols, and values + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + */ + __pyx_v_nj = 0; + __pyx_v_j = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":909 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * cdef ndarray ai = iarray_i(oi, &ni, &i) + */ + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscmat.pxi":910 + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * cdef ndarray ai = iarray_i(oi, &ni, &i) + * cdef ndarray aj = iarray_i(oj, &nj, &j) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":911 + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + * cdef ndarray ai = iarray_i(oi, &ni, &i) # <<<<<<<<<<<<<< + * cdef ndarray aj = iarray_i(oj, &nj, &j) + * cdef ndarray av = iarray_s(ov, &nv, &v) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ai = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":912 + * cdef PetscScalar *v=NULL + * cdef ndarray ai = iarray_i(oi, &ni, &i) + * cdef ndarray aj = iarray_i(oj, &nj, &j) # <<<<<<<<<<<<<< + * cdef ndarray av = iarray_s(ov, &nv, &v) + * # check various dimensions + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oj, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_aj = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":913 + * cdef ndarray ai = iarray_i(oi, &ni, &i) + * cdef ndarray aj = iarray_i(oj, &nj, &j) + * cdef ndarray av = iarray_s(ov, &nv, &v) # <<<<<<<<<<<<<< + * # check various dimensions + * if PyArray_NDIM(ai) != 2: raise ValueError( + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_ov, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 913, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_av = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":915 + * cdef ndarray av = iarray_s(ov, &nv, &v) + * # check various dimensions + * if PyArray_NDIM(ai) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("row indices must have two dimensions: " + * "rows.ndim=%d") % (PyArray_NDIM(ai)) ) + */ + __pyx_t_1 = ((PyArray_NDIM(__pyx_v_ai) != 2) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":917 + * if PyArray_NDIM(ai) != 2: raise ValueError( + * ("row indices must have two dimensions: " + * "rows.ndim=%d") % (PyArray_NDIM(ai)) ) # <<<<<<<<<<<<<< + * elif not PyArray_ISCONTIGUOUS(ai): raise ValueError( + * "expecting a C-contiguous array") + */ + __pyx_t_3 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_ai)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_row_indices_must_have_two_dimens, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":915 + * cdef ndarray av = iarray_s(ov, &nv, &v) + * # check various dimensions + * if PyArray_NDIM(ai) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("row indices must have two dimensions: " + * "rows.ndim=%d") % (PyArray_NDIM(ai)) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 915, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":918 + * ("row indices must have two dimensions: " + * "rows.ndim=%d") % (PyArray_NDIM(ai)) ) + * elif not PyArray_ISCONTIGUOUS(ai): raise ValueError( # <<<<<<<<<<<<<< + * "expecting a C-contiguous array") + * if PyArray_NDIM(aj) != 2: raise ValueError( + */ + __pyx_t_1 = ((!(PyArray_ISCONTIGUOUS(__pyx_v_ai) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 918, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":920 + * elif not PyArray_ISCONTIGUOUS(ai): raise ValueError( + * "expecting a C-contiguous array") + * if PyArray_NDIM(aj) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("column indices must have two dimensions: " + * "cols.ndim=%d") % (PyArray_NDIM(aj)) ) + */ + __pyx_t_1 = ((PyArray_NDIM(__pyx_v_aj) != 2) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":922 + * if PyArray_NDIM(aj) != 2: raise ValueError( + * ("column indices must have two dimensions: " + * "cols.ndim=%d") % (PyArray_NDIM(aj)) ) # <<<<<<<<<<<<<< + * elif not PyArray_ISCONTIGUOUS(aj): raise ValueError( + * "expecting a C-contiguous array") + */ + __pyx_t_3 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_aj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_column_indices_must_have_two_dim, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":920 + * elif not PyArray_ISCONTIGUOUS(ai): raise ValueError( + * "expecting a C-contiguous array") + * if PyArray_NDIM(aj) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("column indices must have two dimensions: " + * "cols.ndim=%d") % (PyArray_NDIM(aj)) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 920, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":923 + * ("column indices must have two dimensions: " + * "cols.ndim=%d") % (PyArray_NDIM(aj)) ) + * elif not PyArray_ISCONTIGUOUS(aj): raise ValueError( # <<<<<<<<<<<<<< + * "expecting a C-contiguous array") + * if PyArray_NDIM(av) < 2: raise ValueError( + */ + __pyx_t_1 = ((!(PyArray_ISCONTIGUOUS(__pyx_v_aj) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 923, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":925 + * elif not PyArray_ISCONTIGUOUS(aj): raise ValueError( + * "expecting a C-contiguous array") + * if PyArray_NDIM(av) < 2: raise ValueError( # <<<<<<<<<<<<<< + * ("values must have two or more dimensions: " + * "vals.ndim=%d") % (PyArray_NDIM(av)) ) + */ + __pyx_t_1 = ((PyArray_NDIM(__pyx_v_av) < 2) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":927 + * if PyArray_NDIM(av) < 2: raise ValueError( + * ("values must have two or more dimensions: " + * "vals.ndim=%d") % (PyArray_NDIM(av)) ) # <<<<<<<<<<<<<< + * elif not PyArray_ISCONTIGUOUS(av): raise ValueError( + * "expecting a C-contiguous array") + */ + __pyx_t_3 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_av)); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_values_must_have_two_or_more_dim, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":925 + * elif not PyArray_ISCONTIGUOUS(aj): raise ValueError( + * "expecting a C-contiguous array") + * if PyArray_NDIM(av) < 2: raise ValueError( # <<<<<<<<<<<<<< + * ("values must have two or more dimensions: " + * "vals.ndim=%d") % (PyArray_NDIM(av)) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 925, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":928 + * ("values must have two or more dimensions: " + * "vals.ndim=%d") % (PyArray_NDIM(av)) ) + * elif not PyArray_ISCONTIGUOUS(av): raise ValueError( # <<<<<<<<<<<<<< + * "expecting a C-contiguous array") + * # check various shapes + */ + __pyx_t_1 = ((!(PyArray_ISCONTIGUOUS(__pyx_v_av) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 928, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":931 + * "expecting a C-contiguous array") + * # check various shapes + * cdef Py_ssize_t nm = PyArray_DIM(ai, 0) # <<<<<<<<<<<<<< + * cdef Py_ssize_t si = PyArray_DIM(ai, 1) + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + */ + __pyx_v_nm = PyArray_DIM(__pyx_v_ai, 0); + + /* "petsc4py/PETSc/petscmat.pxi":932 + * # check various shapes + * cdef Py_ssize_t nm = PyArray_DIM(ai, 0) + * cdef Py_ssize_t si = PyArray_DIM(ai, 1) # <<<<<<<<<<<<<< + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + */ + __pyx_v_si = PyArray_DIM(__pyx_v_ai, 1); + + /* "petsc4py/PETSc/petscmat.pxi":933 + * cdef Py_ssize_t nm = PyArray_DIM(ai, 0) + * cdef Py_ssize_t si = PyArray_DIM(ai, 1) + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) # <<<<<<<<<<<<<< + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + * if ((nm != PyArray_DIM(aj, 0)) or + */ + __pyx_v_sj = PyArray_DIM(__pyx_v_aj, 1); + + /* "petsc4py/PETSc/petscmat.pxi":934 + * cdef Py_ssize_t si = PyArray_DIM(ai, 1) + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) # <<<<<<<<<<<<<< + * if ((nm != PyArray_DIM(aj, 0)) or + * (nm != PyArray_DIM(av, 0)) or + */ + __pyx_v_sv = (PyArray_SIZE(__pyx_v_av) / PyArray_DIM(__pyx_v_av, 0)); + + /* "petsc4py/PETSc/petscmat.pxi":935 + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + * if ((nm != PyArray_DIM(aj, 0)) or # <<<<<<<<<<<<<< + * (nm != PyArray_DIM(av, 0)) or + * (si*rbs * sj*cbs != sv)): raise ValueError( + */ + __pyx_t_5 = ((__pyx_v_nm != PyArray_DIM(__pyx_v_aj, 0)) != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_1 = __pyx_t_5; + goto __pyx_L10_bool_binop_done; + } + + /* "petsc4py/PETSc/petscmat.pxi":936 + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + * if ((nm != PyArray_DIM(aj, 0)) or + * (nm != PyArray_DIM(av, 0)) or # <<<<<<<<<<<<<< + * (si*rbs * sj*cbs != sv)): raise ValueError( + * ("input arrays have incompatible shapes: " + */ + __pyx_t_5 = ((__pyx_v_nm != PyArray_DIM(__pyx_v_av, 0)) != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_1 = __pyx_t_5; + goto __pyx_L10_bool_binop_done; + } + + /* "petsc4py/PETSc/petscmat.pxi":937 + * if ((nm != PyArray_DIM(aj, 0)) or + * (nm != PyArray_DIM(av, 0)) or + * (si*rbs * sj*cbs != sv)): raise ValueError( # <<<<<<<<<<<<<< + * ("input arrays have incompatible shapes: " + * "rows.shape=%s, cols.shape=%s, vals.shape=%s") % + */ + __pyx_t_5 = (((((__pyx_v_si * __pyx_v_rbs) * __pyx_v_sj) * __pyx_v_cbs) != __pyx_v_sv) != 0); + __pyx_t_1 = __pyx_t_5; + __pyx_L10_bool_binop_done:; + + /* "petsc4py/PETSc/petscmat.pxi":935 + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + * if ((nm != PyArray_DIM(aj, 0)) or # <<<<<<<<<<<<<< + * (nm != PyArray_DIM(av, 0)) or + * (si*rbs * sj*cbs != sv)): raise ValueError( + */ + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":940 + * ("input arrays have incompatible shapes: " + * "rows.shape=%s, cols.shape=%s, vals.shape=%s") % + * (ai.shape, aj.shape, av.shape)) # <<<<<<<<<<<<<< + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = \ + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ai), __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_aj), __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_av), __pyx_n_s_shape); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 940, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":939 + * (si*rbs * sj*cbs != sv)): raise ValueError( + * ("input arrays have incompatible shapes: " + * "rows.shape=%s, cols.shape=%s, vals.shape=%s") % # <<<<<<<<<<<<<< + * (ai.shape, aj.shape, av.shape)) + * # MatSetValuesXXX function and insert mode + */ + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_input_arrays_have_incompatible_s, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":937 + * if ((nm != PyArray_DIM(aj, 0)) or + * (nm != PyArray_DIM(av, 0)) or + * (si*rbs * sj*cbs != sv)): raise ValueError( # <<<<<<<<<<<<<< + * ("input arrays have incompatible shapes: " + * "rows.shape=%s, cols.shape=%s, vals.shape=%s") % + */ + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(20, 937, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":935 + * cdef Py_ssize_t sj = PyArray_DIM(aj, 1) + * cdef Py_ssize_t sv = PyArray_SIZE(av) // PyArray_DIM(av, 0) + * if ((nm != PyArray_DIM(aj, 0)) or # <<<<<<<<<<<<<< + * (nm != PyArray_DIM(av, 0)) or + * (si*rbs * sj*cbs != sv)): raise ValueError( + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":943 + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = \ + * matsetvalues_fcn(blocked, local) # <<<<<<<<<<<<<< + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual calls + */ + __pyx_v_setvalues = __pyx_f_8petsc4py_5PETSc_matsetvalues_fcn(__pyx_v_blocked, __pyx_v_local); + + /* "petsc4py/PETSc/petscmat.pxi":944 + * cdef MatSetValuesFcn *setvalues = \ + * matsetvalues_fcn(blocked, local) + * cdef PetscInsertMode addv = insertmode(oaddv) # <<<<<<<<<<<<<< + * # actual calls + * cdef Py_ssize_t k=0 + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_oaddv); if (unlikely(__pyx_t_8 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(20, 944, __pyx_L1_error) + __pyx_v_addv = __pyx_t_8; + + /* "petsc4py/PETSc/petscmat.pxi":946 + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual calls + * cdef Py_ssize_t k=0 # <<<<<<<<<<<<<< + * for k from 0 <= k < nm: + * CHKERR( setvalues(A, + */ + __pyx_v_k = 0; + + /* "petsc4py/PETSc/petscmat.pxi":947 + * # actual calls + * cdef Py_ssize_t k=0 + * for k from 0 <= k < nm: # <<<<<<<<<<<<<< + * CHKERR( setvalues(A, + * si, &i[k*si], + */ + __pyx_t_9 = __pyx_v_nm; + for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_9; __pyx_v_k++) { + + /* "petsc4py/PETSc/petscmat.pxi":948 + * cdef Py_ssize_t k=0 + * for k from 0 <= k < nm: + * CHKERR( setvalues(A, # <<<<<<<<<<<<<< + * si, &i[k*si], + * sj, &j[k*sj], + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_v_setvalues(__pyx_v_A, ((PetscInt)__pyx_v_si), (&(__pyx_v_i[(__pyx_v_k * __pyx_v_si)])), ((PetscInt)__pyx_v_sj), (&(__pyx_v_j[(__pyx_v_k * __pyx_v_sj)])), (&(__pyx_v_v[(__pyx_v_k * __pyx_v_sv)])), __pyx_v_addv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 948, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":952 + * sj, &j[k*sj], + * &v[k*sv], addv) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode matsetvalues_ijv(PetscMat A, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":897 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_rcv(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.matsetvalues_rcv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ai); + __Pyx_XDECREF((PyObject *)__pyx_v_aj); + __Pyx_XDECREF((PyObject *)__pyx_v_av); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":954 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_ijv(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(Mat __pyx_v_A, PyObject *__pyx_v_oi, PyObject *__pyx_v_oj, PyObject *__pyx_v_ov, PyObject *__pyx_v_oaddv, PyObject *__pyx_v_om, int __pyx_v_blocked, int __pyx_v_local) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscInt __pyx_v_nj; + PetscInt *__pyx_v_j; + PetscInt __pyx_v_nv; + PetscScalar *__pyx_v_v; + PetscInt __pyx_v_nm; + PetscInt *__pyx_v_m; + PetscInt __pyx_v_rs; + PetscInt __pyx_v_re; + __pyx_t_8petsc4py_5PETSc_MatSetValuesFcn *__pyx_v_setvalues; + InsertMode __pyx_v_addv; + PetscInt __pyx_v_k; + PetscInt __pyx_v_l; + PetscInt __pyx_v_irow; + PetscInt __pyx_v_ncol; + PetscInt *__pyx_v_icol; + PetscScalar *__pyx_v_sval; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + InsertMode __pyx_t_7; + PetscInt __pyx_t_8; + PetscInt __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matsetvalues_ijv", 0); + __Pyx_INCREF(__pyx_v_oi); + __Pyx_INCREF(__pyx_v_oj); + __Pyx_INCREF(__pyx_v_ov); + __Pyx_INCREF(__pyx_v_om); + + /* "petsc4py/PETSc/petscmat.pxi":960 + * int blocked, int local) except PETSC_ERR_PYTHON: + * # block size + * cdef PetscInt rbs=1, cbs=1 # <<<<<<<<<<<<<< + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + */ + __pyx_v_rbs = 1; + __pyx_v_cbs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":961 + * # block size + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) # <<<<<<<<<<<<<< + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSizes(__pyx_v_A, (&__pyx_v_rbs), (&__pyx_v_cbs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 961, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":962 + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 # <<<<<<<<<<<<<< + * if cbs < 1: cbs = 1 + * # column pointers, column indices, and values + */ + __pyx_t_1 = ((__pyx_v_rbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":963 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 # <<<<<<<<<<<<<< + * # column pointers, column indices, and values + * cdef PetscInt ni=0, *i=NULL + */ + __pyx_t_1 = ((__pyx_v_cbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_cbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":965 + * if cbs < 1: cbs = 1 + * # column pointers, column indices, and values + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":966 + * # column pointers, column indices, and values + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + */ + __pyx_v_nj = 0; + __pyx_v_j = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":967 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + */ + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscmat.pxi":968 + * cdef PetscInt nj=0, *j=NULL + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":969 + * cdef PetscInt nv=0 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) # <<<<<<<<<<<<<< + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_oi, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":970 + * cdef PetscScalar *v=NULL + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) # <<<<<<<<<<<<<< + * ov = iarray_s(ov, &nv, &v) + * # row indices + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_oj, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_oj, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":971 + * oi = iarray_i(oi, &ni, &i) + * oj = iarray_i(oj, &nj, &j) + * ov = iarray_s(ov, &nv, &v) # <<<<<<<<<<<<<< + * # row indices + * cdef PetscInt nm=0, *m=NULL + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_ov, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_ov, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":973 + * ov = iarray_s(ov, &nv, &v) + * # row indices + * cdef PetscInt nm=0, *m=NULL # <<<<<<<<<<<<<< + * cdef PetscInt rs=0, re=ni-1 + * if om is not None: + */ + __pyx_v_nm = 0; + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":974 + * # row indices + * cdef PetscInt nm=0, *m=NULL + * cdef PetscInt rs=0, re=ni-1 # <<<<<<<<<<<<<< + * if om is not None: + * om = iarray_i(om, &nm, &m) + */ + __pyx_v_rs = 0; + __pyx_v_re = (__pyx_v_ni - 1); + + /* "petsc4py/PETSc/petscmat.pxi":975 + * cdef PetscInt nm=0, *m=NULL + * cdef PetscInt rs=0, re=ni-1 + * if om is not None: # <<<<<<<<<<<<<< + * om = iarray_i(om, &nm, &m) + * else: + */ + __pyx_t_1 = (__pyx_v_om != Py_None); + __pyx_t_4 = (__pyx_t_1 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscmat.pxi":976 + * cdef PetscInt rs=0, re=ni-1 + * if om is not None: + * om = iarray_i(om, &nm, &m) # <<<<<<<<<<<<<< + * else: + * if not local: + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_om, (&__pyx_v_nm), (&__pyx_v_m))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_om, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":975 + * cdef PetscInt nm=0, *m=NULL + * cdef PetscInt rs=0, re=ni-1 + * if om is not None: # <<<<<<<<<<<<<< + * om = iarray_i(om, &nm, &m) + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/petscmat.pxi":978 + * om = iarray_i(om, &nm, &m) + * else: + * if not local: # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRange(A, &rs, &re) ) + * rs //= rbs; re //= rbs + */ + /*else*/ { + __pyx_t_4 = ((!(__pyx_v_local != 0)) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscmat.pxi":979 + * else: + * if not local: + * CHKERR( MatGetOwnershipRange(A, &rs, &re) ) # <<<<<<<<<<<<<< + * rs //= rbs; re //= rbs + * nm = re - rs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRange(__pyx_v_A, (&__pyx_v_rs), (&__pyx_v_re))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 979, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":980 + * if not local: + * CHKERR( MatGetOwnershipRange(A, &rs, &re) ) + * rs //= rbs; re //= rbs # <<<<<<<<<<<<<< + * nm = re - rs + * # check various sizes + */ + __pyx_v_rs = (__pyx_v_rs / __pyx_v_rbs); + __pyx_v_re = (__pyx_v_re / __pyx_v_rbs); + + /* "petsc4py/PETSc/petscmat.pxi":978 + * om = iarray_i(om, &nm, &m) + * else: + * if not local: # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRange(A, &rs, &re) ) + * rs //= rbs; re //= rbs + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":981 + * CHKERR( MatGetOwnershipRange(A, &rs, &re) ) + * rs //= rbs; re //= rbs + * nm = re - rs # <<<<<<<<<<<<<< + * # check various sizes + * if (ni-1 != nm): raise ValueError( + */ + __pyx_v_nm = (__pyx_v_re - __pyx_v_rs); + } + __pyx_L6:; + + /* "petsc4py/PETSc/petscmat.pxi":983 + * nm = re - rs + * # check various sizes + * if (ni-1 != nm): raise ValueError( # <<<<<<<<<<<<<< + * "size(I) is %d, expected %d" % + * (toInt(ni), toInt(nm+1)) ) + */ + __pyx_t_4 = (((__pyx_v_ni - 1) != __pyx_v_nm) != 0); + if (unlikely(__pyx_t_4)) { + + /* "petsc4py/PETSc/petscmat.pxi":985 + * if (ni-1 != nm): raise ValueError( + * "size(I) is %d, expected %d" % + * (toInt(ni), toInt(nm+1)) ) # <<<<<<<<<<<<<< + * if (i[0] != 0):raise ValueError( + * "I[0] is %d, expected %d" % + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_nm + 1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":984 + * # check various sizes + * if (ni-1 != nm): raise ValueError( + * "size(I) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(ni), toInt(nm+1)) ) + * if (i[0] != 0):raise ValueError( + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_size_I_is_d_expected_d, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":983 + * nm = re - rs + * # check various sizes + * if (ni-1 != nm): raise ValueError( # <<<<<<<<<<<<<< + * "size(I) is %d, expected %d" % + * (toInt(ni), toInt(nm+1)) ) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(20, 983, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":986 + * "size(I) is %d, expected %d" % + * (toInt(ni), toInt(nm+1)) ) + * if (i[0] != 0):raise ValueError( # <<<<<<<<<<<<<< + * "I[0] is %d, expected %d" % + * (toInt(i[0]), 0) ) + */ + __pyx_t_4 = (((__pyx_v_i[0]) != 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "petsc4py/PETSc/petscmat.pxi":988 + * if (i[0] != 0):raise ValueError( + * "I[0] is %d, expected %d" % + * (toInt(i[0]), 0) ) # <<<<<<<<<<<<<< + * if (i[ni-1] != nj): raise ValueError( + * "size(J) is %d, expected %d" % + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_i[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); + __Pyx_INCREF(__pyx_int_0); + __Pyx_GIVEREF(__pyx_int_0); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_int_0); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":987 + * (toInt(ni), toInt(nm+1)) ) + * if (i[0] != 0):raise ValueError( + * "I[0] is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(i[0]), 0) ) + * if (i[ni-1] != nj): raise ValueError( + */ + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_I_0_is_d_expected_d, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":986 + * "size(I) is %d, expected %d" % + * (toInt(ni), toInt(nm+1)) ) + * if (i[0] != 0):raise ValueError( # <<<<<<<<<<<<<< + * "I[0] is %d, expected %d" % + * (toInt(i[0]), 0) ) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(20, 986, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":989 + * "I[0] is %d, expected %d" % + * (toInt(i[0]), 0) ) + * if (i[ni-1] != nj): raise ValueError( # <<<<<<<<<<<<<< + * "size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + */ + __pyx_t_4 = (((__pyx_v_i[(__pyx_v_ni - 1)]) != __pyx_v_nj) != 0); + if (unlikely(__pyx_t_4)) { + + /* "petsc4py/PETSc/petscmat.pxi":991 + * if (i[ni-1] != nj): raise ValueError( + * "size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) # <<<<<<<<<<<<<< + * if (nj*rbs*cbs != nv): raise ValueError( + * "size(V) is %d, expected %d" % + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nj); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_i[(__pyx_v_ni - 1)])); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":990 + * (toInt(i[0]), 0) ) + * if (i[ni-1] != nj): raise ValueError( + * "size(J) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(nj), toInt(i[ni-1])) ) + * if (nj*rbs*cbs != nv): raise ValueError( + */ + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_size_J_is_d_expected_d, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":989 + * "I[0] is %d, expected %d" % + * (toInt(i[0]), 0) ) + * if (i[ni-1] != nj): raise ValueError( # <<<<<<<<<<<<<< + * "size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 989, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":992 + * "size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + * if (nj*rbs*cbs != nv): raise ValueError( # <<<<<<<<<<<<<< + * "size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*rbs*cbs)) ) + */ + __pyx_t_4 = ((((__pyx_v_nj * __pyx_v_rbs) * __pyx_v_cbs) != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_4)) { + + /* "petsc4py/PETSc/petscmat.pxi":994 + * if (nj*rbs*cbs != nv): raise ValueError( + * "size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*rbs*cbs)) ) # <<<<<<<<<<<<<< + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = \ + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(((__pyx_v_nj * __pyx_v_rbs) * __pyx_v_cbs)); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __pyx_t_3 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":993 + * (toInt(nj), toInt(i[ni-1])) ) + * if (nj*rbs*cbs != nv): raise ValueError( + * "size(V) is %d, expected %d" % # <<<<<<<<<<<<<< + * (toInt(nv), toInt(nj*rbs*cbs)) ) + * # MatSetValuesXXX function and insert mode + */ + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_size_V_is_d_expected_d, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":992 + * "size(J) is %d, expected %d" % + * (toInt(nj), toInt(i[ni-1])) ) + * if (nj*rbs*cbs != nv): raise ValueError( # <<<<<<<<<<<<<< + * "size(V) is %d, expected %d" % + * (toInt(nv), toInt(nj*rbs*cbs)) ) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(20, 992, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":997 + * # MatSetValuesXXX function and insert mode + * cdef MatSetValuesFcn *setvalues = \ + * matsetvalues_fcn(blocked, local) # <<<<<<<<<<<<<< + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual call + */ + __pyx_v_setvalues = __pyx_f_8petsc4py_5PETSc_matsetvalues_fcn(__pyx_v_blocked, __pyx_v_local); + + /* "petsc4py/PETSc/petscmat.pxi":998 + * cdef MatSetValuesFcn *setvalues = \ + * matsetvalues_fcn(blocked, local) + * cdef PetscInsertMode addv = insertmode(oaddv) # <<<<<<<<<<<<<< + * # actual call + * cdef PetscInt k=0, l=0 + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_oaddv); if (unlikely(__pyx_t_7 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(20, 998, __pyx_L1_error) + __pyx_v_addv = __pyx_t_7; + + /* "petsc4py/PETSc/petscmat.pxi":1000 + * cdef PetscInsertMode addv = insertmode(oaddv) + * # actual call + * cdef PetscInt k=0, l=0 # <<<<<<<<<<<<<< + * cdef PetscInt irow=0, ncol=0, *icol=NULL + * cdef PetscScalar *sval=NULL + */ + __pyx_v_k = 0; + __pyx_v_l = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1001 + * # actual call + * cdef PetscInt k=0, l=0 + * cdef PetscInt irow=0, ncol=0, *icol=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *sval=NULL + * for k from 0 <= k < nm: + */ + __pyx_v_irow = 0; + __pyx_v_ncol = 0; + __pyx_v_icol = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1002 + * cdef PetscInt k=0, l=0 + * cdef PetscInt irow=0, ncol=0, *icol=NULL + * cdef PetscScalar *sval=NULL # <<<<<<<<<<<<<< + * for k from 0 <= k < nm: + * irow = m[k] if m!=NULL else rs+k + */ + __pyx_v_sval = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1003 + * cdef PetscInt irow=0, ncol=0, *icol=NULL + * cdef PetscScalar *sval=NULL + * for k from 0 <= k < nm: # <<<<<<<<<<<<<< + * irow = m[k] if m!=NULL else rs+k + * ncol = i[k+1] - i[k] + */ + __pyx_t_8 = __pyx_v_nm; + for (__pyx_v_k = 0; __pyx_v_k < __pyx_t_8; __pyx_v_k++) { + + /* "petsc4py/PETSc/petscmat.pxi":1004 + * cdef PetscScalar *sval=NULL + * for k from 0 <= k < nm: + * irow = m[k] if m!=NULL else rs+k # <<<<<<<<<<<<<< + * ncol = i[k+1] - i[k] + * icol = j + i[k] + */ + if (((__pyx_v_m != NULL) != 0)) { + __pyx_t_9 = (__pyx_v_m[__pyx_v_k]); + } else { + __pyx_t_9 = (__pyx_v_rs + __pyx_v_k); + } + __pyx_v_irow = __pyx_t_9; + + /* "petsc4py/PETSc/petscmat.pxi":1005 + * for k from 0 <= k < nm: + * irow = m[k] if m!=NULL else rs+k + * ncol = i[k+1] - i[k] # <<<<<<<<<<<<<< + * icol = j + i[k] + * if blocked: + */ + __pyx_v_ncol = ((__pyx_v_i[(__pyx_v_k + 1)]) - (__pyx_v_i[__pyx_v_k])); + + /* "petsc4py/PETSc/petscmat.pxi":1006 + * irow = m[k] if m!=NULL else rs+k + * ncol = i[k+1] - i[k] + * icol = j + i[k] # <<<<<<<<<<<<<< + * if blocked: + * sval = v + i[k]*rbs*cbs + */ + __pyx_v_icol = (__pyx_v_j + (__pyx_v_i[__pyx_v_k])); + + /* "petsc4py/PETSc/petscmat.pxi":1007 + * ncol = i[k+1] - i[k] + * icol = j + i[k] + * if blocked: # <<<<<<<<<<<<<< + * sval = v + i[k]*rbs*cbs + * for l from 0 <= l < ncol: + */ + __pyx_t_4 = (__pyx_v_blocked != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscmat.pxi":1008 + * icol = j + i[k] + * if blocked: + * sval = v + i[k]*rbs*cbs # <<<<<<<<<<<<<< + * for l from 0 <= l < ncol: + * CHKERR( setvalues(A, 1, &irow, 1, &icol[l], + */ + __pyx_v_sval = (__pyx_v_v + (((__pyx_v_i[__pyx_v_k]) * __pyx_v_rbs) * __pyx_v_cbs)); + + /* "petsc4py/PETSc/petscmat.pxi":1009 + * if blocked: + * sval = v + i[k]*rbs*cbs + * for l from 0 <= l < ncol: # <<<<<<<<<<<<<< + * CHKERR( setvalues(A, 1, &irow, 1, &icol[l], + * &sval[l*rbs*cbs], addv) ) + */ + __pyx_t_9 = __pyx_v_ncol; + for (__pyx_v_l = 0; __pyx_v_l < __pyx_t_9; __pyx_v_l++) { + + /* "petsc4py/PETSc/petscmat.pxi":1010 + * sval = v + i[k]*rbs*cbs + * for l from 0 <= l < ncol: + * CHKERR( setvalues(A, 1, &irow, 1, &icol[l], # <<<<<<<<<<<<<< + * &sval[l*rbs*cbs], addv) ) + * else: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_v_setvalues(__pyx_v_A, 1, (&__pyx_v_irow), 1, (&(__pyx_v_icol[__pyx_v_l])), (&(__pyx_v_sval[((__pyx_v_l * __pyx_v_rbs) * __pyx_v_cbs)])), __pyx_v_addv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1010, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":1007 + * ncol = i[k+1] - i[k] + * icol = j + i[k] + * if blocked: # <<<<<<<<<<<<<< + * sval = v + i[k]*rbs*cbs + * for l from 0 <= l < ncol: + */ + goto __pyx_L14; + } + + /* "petsc4py/PETSc/petscmat.pxi":1013 + * &sval[l*rbs*cbs], addv) ) + * else: + * sval = v + i[k] # <<<<<<<<<<<<<< + * CHKERR( setvalues(A, 1, &irow, ncol, icol, sval, addv) ) + * return PETSC_SUCCESS + */ + /*else*/ { + __pyx_v_sval = (__pyx_v_v + (__pyx_v_i[__pyx_v_k])); + + /* "petsc4py/PETSc/petscmat.pxi":1014 + * else: + * sval = v + i[k] + * CHKERR( setvalues(A, 1, &irow, ncol, icol, sval, addv) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_v_setvalues(__pyx_v_A, 1, (&__pyx_v_irow), __pyx_v_ncol, __pyx_v_icol, __pyx_v_sval, __pyx_v_addv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1014, __pyx_L1_error) + } + __pyx_L14:; + } + + /* "petsc4py/PETSc/petscmat.pxi":1015 + * sval = v + i[k] + * CHKERR( setvalues(A, 1, &irow, ncol, icol, sval, addv) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode matsetvalues_csr(PetscMat A, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":954 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_ijv(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.matsetvalues_ijv", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oi); + __Pyx_XDECREF(__pyx_v_oj); + __Pyx_XDECREF(__pyx_v_ov); + __Pyx_XDECREF(__pyx_v_om); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1017 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_csr(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(Mat __pyx_v_A, PyObject *__pyx_v_oi, PyObject *__pyx_v_oj, PyObject *__pyx_v_ov, PyObject *__pyx_v_oaddv, int __pyx_v_blocked, int __pyx_v_local) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matsetvalues_csr", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1021 + * object oaddv, + * int blocked, int local) except PETSC_ERR_PYTHON: + * matsetvalues_ijv(A, oi, oj, ov, oaddv, None, blocked, local) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(__pyx_v_A, __pyx_v_oi, __pyx_v_oj, __pyx_v_ov, __pyx_v_oaddv, Py_None, __pyx_v_blocked, __pyx_v_local); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1021, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1022 + * int blocked, int local) except PETSC_ERR_PYTHON: + * matsetvalues_ijv(A, oi, oj, ov, oaddv, None, blocked, local) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef inline matgetvalues(PetscMat mat, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1017 + * return PETSC_SUCCESS + * + * cdef inline PetscErrorCode matsetvalues_csr(PetscMat A, # <<<<<<<<<<<<<< + * object oi, object oj, object ov, + * object oaddv, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.matsetvalues_csr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1024 + * return PETSC_SUCCESS + * + * cdef inline matgetvalues(PetscMat mat, # <<<<<<<<<<<<<< + * object orows, object ocols, object values): + * cdef PetscInt ni=0, nj=0, nv=0 + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_matgetvalues(Mat __pyx_v_mat, PyObject *__pyx_v_orows, PyObject *__pyx_v_ocols, PyObject *__pyx_v_values) { + PetscInt __pyx_v_ni; + PetscInt __pyx_v_nj; + PetscInt __pyx_v_nv; + PetscInt *__pyx_v_i; + PetscInt *__pyx_v_j; + PetscScalar *__pyx_v_v; + PyArrayObject *__pyx_v_rows = 0; + PyArrayObject *__pyx_v_cols = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matgetvalues", 0); + __Pyx_INCREF(__pyx_v_values); + + /* "petsc4py/PETSc/petscmat.pxi":1026 + * cdef inline matgetvalues(PetscMat mat, + * object orows, object ocols, object values): + * cdef PetscInt ni=0, nj=0, nv=0 # <<<<<<<<<<<<<< + * cdef PetscInt *i=NULL, *j=NULL + * cdef PetscScalar *v=NULL + */ + __pyx_v_ni = 0; + __pyx_v_nj = 0; + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1027 + * object orows, object ocols, object values): + * cdef PetscInt ni=0, nj=0, nv=0 + * cdef PetscInt *i=NULL, *j=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL + * cdef ndarray rows = iarray_i(orows, &ni, &i) + */ + __pyx_v_i = NULL; + __pyx_v_j = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1028 + * cdef PetscInt ni=0, nj=0, nv=0 + * cdef PetscInt *i=NULL, *j=NULL + * cdef PetscScalar *v=NULL # <<<<<<<<<<<<<< + * cdef ndarray rows = iarray_i(orows, &ni, &i) + * cdef ndarray cols = iarray_i(ocols, &nj, &j) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1029 + * cdef PetscInt *i=NULL, *j=NULL + * cdef PetscScalar *v=NULL + * cdef ndarray rows = iarray_i(orows, &ni, &i) # <<<<<<<<<<<<<< + * cdef ndarray cols = iarray_i(ocols, &nj, &j) + * if values is None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_orows, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_rows = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1030 + * cdef PetscScalar *v=NULL + * cdef ndarray rows = iarray_i(orows, &ni, &i) + * cdef ndarray cols = iarray_i(ocols, &nj, &j) # <<<<<<<<<<<<<< + * if values is None: + * values = empty_s(ni*nj) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ocols, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cols = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1031 + * cdef ndarray rows = iarray_i(orows, &ni, &i) + * cdef ndarray cols = iarray_i(ocols, &nj, &j) + * if values is None: # <<<<<<<<<<<<<< + * values = empty_s(ni*nj) + * values.shape = rows.shape + cols.shape + */ + __pyx_t_2 = (__pyx_v_values == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":1032 + * cdef ndarray cols = iarray_i(ocols, &nj, &j) + * if values is None: + * values = empty_s(ni*nj) # <<<<<<<<<<<<<< + * values.shape = rows.shape + cols.shape + * values = oarray_s(values, &nv, &v) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_s((__pyx_v_ni * __pyx_v_nj))); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1033 + * if values is None: + * values = empty_s(ni*nj) + * values.shape = rows.shape + cols.shape # <<<<<<<<<<<<<< + * values = oarray_s(values, &nv, &v) + * if (ni*nj != nv): raise ValueError( + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_rows), __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cols), __pyx_n_s_shape); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_values, __pyx_n_s_shape, __pyx_t_5) < 0) __PYX_ERR(20, 1033, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1031 + * cdef ndarray rows = iarray_i(orows, &ni, &i) + * cdef ndarray cols = iarray_i(ocols, &nj, &j) + * if values is None: # <<<<<<<<<<<<<< + * values = empty_s(ni*nj) + * values.shape = rows.shape + cols.shape + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1034 + * values = empty_s(ni*nj) + * values.shape = rows.shape + cols.shape + * values = oarray_s(values, &nv, &v) # <<<<<<<<<<<<<< + * if (ni*nj != nv): raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_s(__pyx_v_values, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 1034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_values, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1035 + * values.shape = rows.shape + cols.shape + * values = oarray_s(values, &nv, &v) + * if (ni*nj != nv): raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv))) + */ + __pyx_t_3 = (((__pyx_v_ni * __pyx_v_nj) != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscmat.pxi":1037 + * if (ni*nj != nv): raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv))) # <<<<<<<<<<<<<< + * CHKERR( MatGetValues(mat, ni, i, nj, j, v) ) + * return values + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_5)) __PYX_ERR(20, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nj); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_4 = 0; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1036 + * values = oarray_s(values, &nv, &v) + * if (ni*nj != nv): raise ValueError( + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % # <<<<<<<<<<<<<< + * (toInt(ni), toInt(nj), toInt(nv))) + * CHKERR( MatGetValues(mat, ni, i, nj, j, v) ) + */ + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_incompatible_array_sizes_ni_d_nj, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1035 + * values.shape = rows.shape + cols.shape + * values = oarray_s(values, &nv, &v) + * if (ni*nj != nv): raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv))) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(20, 1035, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":1038 + * "incompatible array sizes: ni=%d, nj=%d, nv=%d" % + * (toInt(ni), toInt(nj), toInt(nv))) + * CHKERR( MatGetValues(mat, ni, i, nj, j, v) ) # <<<<<<<<<<<<<< + * return values + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetValues(__pyx_v_mat, __pyx_v_ni, __pyx_v_i, __pyx_v_nj, __pyx_v_j, __pyx_v_v)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1038, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1039 + * (toInt(ni), toInt(nj), toInt(nv))) + * CHKERR( MatGetValues(mat, ni, i, nj, j, v) ) + * return values # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_values); + __pyx_r = __pyx_v_values; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1024 + * return PETSC_SUCCESS + * + * cdef inline matgetvalues(PetscMat mat, # <<<<<<<<<<<<<< + * object orows, object ocols, object values): + * cdef PetscInt ni=0, nj=0, nv=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.matgetvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_rows); + __Pyx_XDECREF((PyObject *)__pyx_v_cols); + __Pyx_XDECREF(__pyx_v_values); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1046 + * PetscErrorCode MatFactorInfoDefaults(PetscBool,PetscBool,PetscMatFactorInfo*) + * + * cdef inline PetscMatFactorShiftType matfactorshifttype(object st) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(st, str): + */ + +static CYTHON_INLINE MatFactorShiftType __pyx_f_8petsc4py_5PETSc_matfactorshifttype(PyObject *__pyx_v_st) { + MatFactorShiftType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + MatFactorShiftType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matfactorshifttype", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1048 + * cdef inline PetscMatFactorShiftType matfactorshifttype(object st) \ + * except (-1): + * if isinstance(st, str): # <<<<<<<<<<<<<< + * if st == "none": return MAT_SHIFT_NONE + * if st == "nonzero": return MAT_SHIFT_NONZERO + */ + __pyx_t_1 = PyString_Check(__pyx_v_st); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1049 + * except (-1): + * if isinstance(st, str): + * if st == "none": return MAT_SHIFT_NONE # <<<<<<<<<<<<<< + * if st == "nonzero": return MAT_SHIFT_NONZERO + * if st == "positive_definite": return MAT_SHIFT_POSITIVE_DEFINITE + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_none, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1049, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = MAT_SHIFT_NONE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1050 + * if isinstance(st, str): + * if st == "none": return MAT_SHIFT_NONE + * if st == "nonzero": return MAT_SHIFT_NONZERO # <<<<<<<<<<<<<< + * if st == "positive_definite": return MAT_SHIFT_POSITIVE_DEFINITE + * if st == "inblocks": return MAT_SHIFT_INBLOCKS + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_nonzero, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1050, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = MAT_SHIFT_NONZERO; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1051 + * if st == "none": return MAT_SHIFT_NONE + * if st == "nonzero": return MAT_SHIFT_NONZERO + * if st == "positive_definite": return MAT_SHIFT_POSITIVE_DEFINITE # <<<<<<<<<<<<<< + * if st == "inblocks": return MAT_SHIFT_INBLOCKS + * if st == "na": return MAT_SHIFT_NONZERO + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_positive_definite, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1051, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = MAT_SHIFT_POSITIVE_DEFINITE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1052 + * if st == "nonzero": return MAT_SHIFT_NONZERO + * if st == "positive_definite": return MAT_SHIFT_POSITIVE_DEFINITE + * if st == "inblocks": return MAT_SHIFT_INBLOCKS # <<<<<<<<<<<<<< + * if st == "na": return MAT_SHIFT_NONZERO + * if st == "pd": return MAT_SHIFT_POSITIVE_DEFINITE + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_inblocks, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1052, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = MAT_SHIFT_INBLOCKS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1053 + * if st == "positive_definite": return MAT_SHIFT_POSITIVE_DEFINITE + * if st == "inblocks": return MAT_SHIFT_INBLOCKS + * if st == "na": return MAT_SHIFT_NONZERO # <<<<<<<<<<<<<< + * if st == "pd": return MAT_SHIFT_POSITIVE_DEFINITE + * else: raise ValueError("unknown shift type: %s" % st) + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_na, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1053, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = MAT_SHIFT_NONZERO; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1054 + * if st == "inblocks": return MAT_SHIFT_INBLOCKS + * if st == "na": return MAT_SHIFT_NONZERO + * if st == "pd": return MAT_SHIFT_POSITIVE_DEFINITE # <<<<<<<<<<<<<< + * else: raise ValueError("unknown shift type: %s" % st) + * return st + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_st, __pyx_n_s_pd, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1054, __pyx_L1_error) + if (likely(__pyx_t_2)) { + __pyx_r = MAT_SHIFT_POSITIVE_DEFINITE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1055 + * if st == "na": return MAT_SHIFT_NONZERO + * if st == "pd": return MAT_SHIFT_POSITIVE_DEFINITE + * else: raise ValueError("unknown shift type: %s" % st) # <<<<<<<<<<<<<< + * return st + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_shift_type_s, __pyx_v_st); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(20, 1055, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":1048 + * cdef inline PetscMatFactorShiftType matfactorshifttype(object st) \ + * except (-1): + * if isinstance(st, str): # <<<<<<<<<<<<<< + * if st == "none": return MAT_SHIFT_NONE + * if st == "nonzero": return MAT_SHIFT_NONZERO + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1056 + * if st == "pd": return MAT_SHIFT_POSITIVE_DEFINITE + * else: raise ValueError("unknown shift type: %s" % st) + * return st # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode matfactorinfo(PetscBool inc, PetscBool chol, object opts, + */ + __pyx_t_5 = ((MatFactorShiftType)__Pyx_PyInt_As_MatFactorShiftType(__pyx_v_st)); if (unlikely(PyErr_Occurred())) __PYX_ERR(20, 1056, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1046 + * PetscErrorCode MatFactorInfoDefaults(PetscBool,PetscBool,PetscMatFactorInfo*) + * + * cdef inline PetscMatFactorShiftType matfactorshifttype(object st) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(st, str): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.matfactorshifttype", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((MatFactorShiftType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1058 + * return st + * + * cdef PetscErrorCode matfactorinfo(PetscBool inc, PetscBool chol, object opts, # <<<<<<<<<<<<<< + * PetscMatFactorInfo *info) except PETSC_ERR_PYTHON: + * CHKERR( MatFactorInfoDefaults(inc,chol,info) ) + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_matfactorinfo(PetscBool __pyx_v_inc, PetscBool __pyx_v_chol, PyObject *__pyx_v_opts, MatFactorInfo *__pyx_v_info) { + PyObject *__pyx_v_options = 0; + PyObject *__pyx_v_fill = 0; + PyObject *__pyx_v_zeropivot = 0; + PyObject *__pyx_v_levels = 0; + PyObject *__pyx_v_diagonal_fill = 0; + PyObject *__pyx_v_dt = 0; + PyObject *__pyx_v_dtcol = 0; + PyObject *__pyx_v_dtcount = 0; + PyObject *__pyx_v_shifttype = 0; + PyObject *__pyx_v_shiftamount = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscReal __pyx_t_5; + PetscInt __pyx_t_6; + int __pyx_t_7; + MatFactorShiftType __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matfactorinfo", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1060 + * cdef PetscErrorCode matfactorinfo(PetscBool inc, PetscBool chol, object opts, + * PetscMatFactorInfo *info) except PETSC_ERR_PYTHON: + * CHKERR( MatFactorInfoDefaults(inc,chol,info) ) # <<<<<<<<<<<<<< + * if opts is None: return PETSC_SUCCESS + * cdef dict options = dict(opts) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatFactorInfoDefaults(__pyx_v_inc, __pyx_v_chol, __pyx_v_info)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1060, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1061 + * PetscMatFactorInfo *info) except PETSC_ERR_PYTHON: + * CHKERR( MatFactorInfoDefaults(inc,chol,info) ) + * if opts is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * cdef dict options = dict(opts) + * # + */ + __pyx_t_2 = (__pyx_v_opts == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscmat.pxi":1062 + * CHKERR( MatFactorInfoDefaults(inc,chol,info) ) + * if opts is None: return PETSC_SUCCESS + * cdef dict options = dict(opts) # <<<<<<<<<<<<<< + * # + * cdef fill = options.pop('fill', None) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyDict_Type)), __pyx_v_opts); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_options = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1064 + * cdef dict options = dict(opts) + * # + * cdef fill = options.pop('fill', None) # <<<<<<<<<<<<<< + * if fill is not None: + * info.fill = asReal(fill) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_fill, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_fill = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1065 + * # + * cdef fill = options.pop('fill', None) + * if fill is not None: # <<<<<<<<<<<<<< + * info.fill = asReal(fill) + * # + */ + __pyx_t_3 = (__pyx_v_fill != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1066 + * cdef fill = options.pop('fill', None) + * if fill is not None: + * info.fill = asReal(fill) # <<<<<<<<<<<<<< + * # + * cdef zeropivot = options.pop('zeropivot', None) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(20, 1066, __pyx_L1_error) + __pyx_v_info->fill = __pyx_t_5; + + /* "petsc4py/PETSc/petscmat.pxi":1065 + * # + * cdef fill = options.pop('fill', None) + * if fill is not None: # <<<<<<<<<<<<<< + * info.fill = asReal(fill) + * # + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1068 + * info.fill = asReal(fill) + * # + * cdef zeropivot = options.pop('zeropivot', None) # <<<<<<<<<<<<<< + * if zeropivot is not None: + * info.zeropivot = asReal(zeropivot) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_zeropivot, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_zeropivot = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1069 + * # + * cdef zeropivot = options.pop('zeropivot', None) + * if zeropivot is not None: # <<<<<<<<<<<<<< + * info.zeropivot = asReal(zeropivot) + * # + */ + __pyx_t_2 = (__pyx_v_zeropivot != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":1070 + * cdef zeropivot = options.pop('zeropivot', None) + * if zeropivot is not None: + * info.zeropivot = asReal(zeropivot) # <<<<<<<<<<<<<< + * # + * cdef levels = options.pop('levels', None) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zeropivot); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(20, 1070, __pyx_L1_error) + __pyx_v_info->zeropivot = __pyx_t_5; + + /* "petsc4py/PETSc/petscmat.pxi":1069 + * # + * cdef zeropivot = options.pop('zeropivot', None) + * if zeropivot is not None: # <<<<<<<<<<<<<< + * info.zeropivot = asReal(zeropivot) + * # + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1072 + * info.zeropivot = asReal(zeropivot) + * # + * cdef levels = options.pop('levels', None) # <<<<<<<<<<<<<< + * if levels is not None: + * info.levels = asInt(levels) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_levels, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_levels = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1073 + * # + * cdef levels = options.pop('levels', None) + * if levels is not None: # <<<<<<<<<<<<<< + * info.levels = asInt(levels) + * cdef diagonal_fill = options.pop('diagonal_fill', None) + */ + __pyx_t_3 = (__pyx_v_levels != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1074 + * cdef levels = options.pop('levels', None) + * if levels is not None: + * info.levels = asInt(levels) # <<<<<<<<<<<<<< + * cdef diagonal_fill = options.pop('diagonal_fill', None) + * if diagonal_fill is not None: + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_6 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1074, __pyx_L1_error) + __pyx_v_info->levels = ((PetscReal)__pyx_t_6); + + /* "petsc4py/PETSc/petscmat.pxi":1073 + * # + * cdef levels = options.pop('levels', None) + * if levels is not None: # <<<<<<<<<<<<<< + * info.levels = asInt(levels) + * cdef diagonal_fill = options.pop('diagonal_fill', None) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1075 + * if levels is not None: + * info.levels = asInt(levels) + * cdef diagonal_fill = options.pop('diagonal_fill', None) # <<<<<<<<<<<<<< + * if diagonal_fill is not None: + * info.diagonal_fill = (diagonal_fill) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_diagonal_fill, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_diagonal_fill = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1076 + * info.levels = asInt(levels) + * cdef diagonal_fill = options.pop('diagonal_fill', None) + * if diagonal_fill is not None: # <<<<<<<<<<<<<< + * info.diagonal_fill = (diagonal_fill) + * # + */ + __pyx_t_2 = (__pyx_v_diagonal_fill != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":1077 + * cdef diagonal_fill = options.pop('diagonal_fill', None) + * if diagonal_fill is not None: + * info.diagonal_fill = (diagonal_fill) # <<<<<<<<<<<<<< + * # + * cdef dt = options.pop('dt', None) + */ + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_diagonal_fill); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(20, 1077, __pyx_L1_error) + __pyx_v_info->diagonal_fill = ((PetscReal)__pyx_t_3); + + /* "petsc4py/PETSc/petscmat.pxi":1076 + * info.levels = asInt(levels) + * cdef diagonal_fill = options.pop('diagonal_fill', None) + * if diagonal_fill is not None: # <<<<<<<<<<<<<< + * info.diagonal_fill = (diagonal_fill) + * # + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1079 + * info.diagonal_fill = (diagonal_fill) + * # + * cdef dt = options.pop('dt', None) # <<<<<<<<<<<<<< + * if dt is not None: + * info.dt = asReal(dt) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_dt, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_dt = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1080 + * # + * cdef dt = options.pop('dt', None) + * if dt is not None: # <<<<<<<<<<<<<< + * info.dt = asReal(dt) + * cdef dtcol = options.pop('dtcol', None) + */ + __pyx_t_3 = (__pyx_v_dt != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1081 + * cdef dt = options.pop('dt', None) + * if dt is not None: + * info.dt = asReal(dt) # <<<<<<<<<<<<<< + * cdef dtcol = options.pop('dtcol', None) + * if dtcol is not None: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_dt); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(20, 1081, __pyx_L1_error) + __pyx_v_info->dt = __pyx_t_5; + + /* "petsc4py/PETSc/petscmat.pxi":1080 + * # + * cdef dt = options.pop('dt', None) + * if dt is not None: # <<<<<<<<<<<<<< + * info.dt = asReal(dt) + * cdef dtcol = options.pop('dtcol', None) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1082 + * if dt is not None: + * info.dt = asReal(dt) + * cdef dtcol = options.pop('dtcol', None) # <<<<<<<<<<<<<< + * if dtcol is not None: + * info.dtcol = asReal(dtcol) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_dtcol, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_dtcol = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1083 + * info.dt = asReal(dt) + * cdef dtcol = options.pop('dtcol', None) + * if dtcol is not None: # <<<<<<<<<<<<<< + * info.dtcol = asReal(dtcol) + * cdef dtcount = options.pop('dtcount', None) + */ + __pyx_t_2 = (__pyx_v_dtcol != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscmat.pxi":1084 + * cdef dtcol = options.pop('dtcol', None) + * if dtcol is not None: + * info.dtcol = asReal(dtcol) # <<<<<<<<<<<<<< + * cdef dtcount = options.pop('dtcount', None) + * if dtcount is not None: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_dtcol); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(20, 1084, __pyx_L1_error) + __pyx_v_info->dtcol = __pyx_t_5; + + /* "petsc4py/PETSc/petscmat.pxi":1083 + * info.dt = asReal(dt) + * cdef dtcol = options.pop('dtcol', None) + * if dtcol is not None: # <<<<<<<<<<<<<< + * info.dtcol = asReal(dtcol) + * cdef dtcount = options.pop('dtcount', None) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1085 + * if dtcol is not None: + * info.dtcol = asReal(dtcol) + * cdef dtcount = options.pop('dtcount', None) # <<<<<<<<<<<<<< + * if dtcount is not None: + * info.dtcount = asInt(dtcount) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_dtcount, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_dtcount = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1086 + * info.dtcol = asReal(dtcol) + * cdef dtcount = options.pop('dtcount', None) + * if dtcount is not None: # <<<<<<<<<<<<<< + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or + */ + __pyx_t_3 = (__pyx_v_dtcount != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1087 + * cdef dtcount = options.pop('dtcount', None) + * if dtcount is not None: + * info.dtcount = asInt(dtcount) # <<<<<<<<<<<<<< + * if ((dt is not None) or + * (dtcol is not None) or + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dtcount); if (unlikely(__pyx_t_6 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1087, __pyx_L1_error) + __pyx_v_info->dtcount = ((PetscReal)__pyx_t_6); + + /* "petsc4py/PETSc/petscmat.pxi":1086 + * info.dtcol = asReal(dtcol) + * cdef dtcount = options.pop('dtcount', None) + * if dtcount is not None: # <<<<<<<<<<<<<< + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1088 + * if dtcount is not None: + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or # <<<<<<<<<<<<<< + * (dtcol is not None) or + * (dtcount is not None)): + */ + __pyx_t_3 = (__pyx_v_dt != Py_None); + __pyx_t_7 = (__pyx_t_3 != 0); + if (!__pyx_t_7) { + } else { + __pyx_t_2 = __pyx_t_7; + goto __pyx_L12_bool_binop_done; + } + + /* "petsc4py/PETSc/petscmat.pxi":1089 + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or + * (dtcol is not None) or # <<<<<<<<<<<<<< + * (dtcount is not None)): + * info.usedt = PETSC_TRUE + */ + __pyx_t_7 = (__pyx_v_dtcol != Py_None); + __pyx_t_3 = (__pyx_t_7 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L12_bool_binop_done; + } + + /* "petsc4py/PETSc/petscmat.pxi":1090 + * if ((dt is not None) or + * (dtcol is not None) or + * (dtcount is not None)): # <<<<<<<<<<<<<< + * info.usedt = PETSC_TRUE + * # + */ + __pyx_t_3 = (__pyx_v_dtcount != Py_None); + __pyx_t_7 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_7; + __pyx_L12_bool_binop_done:; + + /* "petsc4py/PETSc/petscmat.pxi":1088 + * if dtcount is not None: + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or # <<<<<<<<<<<<<< + * (dtcol is not None) or + * (dtcount is not None)): + */ + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1091 + * (dtcol is not None) or + * (dtcount is not None)): + * info.usedt = PETSC_TRUE # <<<<<<<<<<<<<< + * # + * cdef shifttype = options.pop('shifttype', None) + */ + __pyx_v_info->usedt = ((PetscReal)PETSC_TRUE); + + /* "petsc4py/PETSc/petscmat.pxi":1088 + * if dtcount is not None: + * info.dtcount = asInt(dtcount) + * if ((dt is not None) or # <<<<<<<<<<<<<< + * (dtcol is not None) or + * (dtcount is not None)): + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1093 + * info.usedt = PETSC_TRUE + * # + * cdef shifttype = options.pop('shifttype', None) # <<<<<<<<<<<<<< + * if shifttype is not None: + * info.shifttype = matfactorshifttype(shifttype) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_shifttype, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1093, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_shifttype = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1094 + * # + * cdef shifttype = options.pop('shifttype', None) + * if shifttype is not None: # <<<<<<<<<<<<<< + * info.shifttype = matfactorshifttype(shifttype) + * cdef shiftamount = options.pop('shiftamount', None) + */ + __pyx_t_2 = (__pyx_v_shifttype != Py_None); + __pyx_t_7 = (__pyx_t_2 != 0); + if (__pyx_t_7) { + + /* "petsc4py/PETSc/petscmat.pxi":1095 + * cdef shifttype = options.pop('shifttype', None) + * if shifttype is not None: + * info.shifttype = matfactorshifttype(shifttype) # <<<<<<<<<<<<<< + * cdef shiftamount = options.pop('shiftamount', None) + * if shiftamount is not None: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_matfactorshifttype(__pyx_v_shifttype); if (unlikely(__pyx_t_8 == ((MatFactorShiftType)((MatFactorShiftType)-1L)))) __PYX_ERR(20, 1095, __pyx_L1_error) + __pyx_v_info->shifttype = ((PetscReal)__pyx_t_8); + + /* "petsc4py/PETSc/petscmat.pxi":1094 + * # + * cdef shifttype = options.pop('shifttype', None) + * if shifttype is not None: # <<<<<<<<<<<<<< + * info.shifttype = matfactorshifttype(shifttype) + * cdef shiftamount = options.pop('shiftamount', None) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1096 + * if shifttype is not None: + * info.shifttype = matfactorshifttype(shifttype) + * cdef shiftamount = options.pop('shiftamount', None) # <<<<<<<<<<<<<< + * if shiftamount is not None: + * info.shiftamount = asReal(shiftamount) + */ + __pyx_t_4 = __Pyx_PyDict_Pop(__pyx_v_options, __pyx_n_s_shiftamount, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_shiftamount = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1097 + * info.shifttype = matfactorshifttype(shifttype) + * cdef shiftamount = options.pop('shiftamount', None) + * if shiftamount is not None: # <<<<<<<<<<<<<< + * info.shiftamount = asReal(shiftamount) + * # + */ + __pyx_t_7 = (__pyx_v_shiftamount != Py_None); + __pyx_t_2 = (__pyx_t_7 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscmat.pxi":1098 + * cdef shiftamount = options.pop('shiftamount', None) + * if shiftamount is not None: + * info.shiftamount = asReal(shiftamount) # <<<<<<<<<<<<<< + * # + * if options: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_shiftamount); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(20, 1098, __pyx_L1_error) + __pyx_v_info->shiftamount = __pyx_t_5; + + /* "petsc4py/PETSc/petscmat.pxi":1097 + * info.shifttype = matfactorshifttype(shifttype) + * cdef shiftamount = options.pop('shiftamount', None) + * if shiftamount is not None: # <<<<<<<<<<<<<< + * info.shiftamount = asReal(shiftamount) + * # + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1100 + * info.shiftamount = asReal(shiftamount) + * # + * if options: # <<<<<<<<<<<<<< + * raise ValueError("unknown options: %s" + * % list(options.keys())) + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_options); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(20, 1100, __pyx_L1_error) + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscmat.pxi":1102 + * if options: + * raise ValueError("unknown options: %s" + * % list(options.keys())) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_4 = __Pyx_PyDict_Keys(__pyx_v_options); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = PySequence_List(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_unknown_options_s, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1101 + * # + * if options: + * raise ValueError("unknown options: %s" # <<<<<<<<<<<<<< + * % list(options.keys())) + * return PETSC_SUCCESS + */ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(20, 1101, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1100 + * info.shiftamount = asReal(shiftamount) + * # + * if options: # <<<<<<<<<<<<<< + * raise ValueError("unknown options: %s" + * % list(options.keys())) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1103 + * raise ValueError("unknown options: %s" + * % list(options.keys())) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1058 + * return st + * + * cdef PetscErrorCode matfactorinfo(PetscBool inc, PetscBool chol, object opts, # <<<<<<<<<<<<<< + * PetscMatFactorInfo *info) except PETSC_ERR_PYTHON: + * CHKERR( MatFactorInfoDefaults(inc,chol,info) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.matfactorinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_options); + __Pyx_XDECREF(__pyx_v_fill); + __Pyx_XDECREF(__pyx_v_zeropivot); + __Pyx_XDECREF(__pyx_v_levels); + __Pyx_XDECREF(__pyx_v_diagonal_fill); + __Pyx_XDECREF(__pyx_v_dt); + __Pyx_XDECREF(__pyx_v_dtcol); + __Pyx_XDECREF(__pyx_v_dtcount); + __Pyx_XDECREF(__pyx_v_shifttype); + __Pyx_XDECREF(__pyx_v_shiftamount); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1107 + * # ----------------------------------------------------------------------------- + * + * cdef object mat_getitem(Mat self, object ij): # <<<<<<<<<<<<<< + * cdef PetscInt M=0, N=0 + * rows, cols = ij + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_mat_getitem(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij) { + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_v_rows = NULL; + PyObject *__pyx_v_cols = NULL; + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_v_stop = NULL; + PyObject *__pyx_v_stride = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *(*__pyx_t_4)(PyObject *); + int __pyx_t_5; + int __pyx_t_6; + PetscErrorCode __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_getitem", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1108 + * + * cdef object mat_getitem(Mat self, object ij): + * cdef PetscInt M=0, N=0 # <<<<<<<<<<<<<< + * rows, cols = ij + * if isinstance(rows, slice): + */ + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1109 + * cdef object mat_getitem(Mat self, object ij): + * cdef PetscInt M=0, N=0 + * rows, cols = ij # <<<<<<<<<<<<<< + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_ij))) || (PyList_CheckExact(__pyx_v_ij))) { + PyObject* sequence = __pyx_v_ij; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1109, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_3 = PyObject_GetIter(__pyx_v_ij); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) __PYX_ERR(20, 1109, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1109, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_rows = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_cols = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1110 + * cdef PetscInt M=0, N=0 + * rows, cols = ij + * if isinstance(rows, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + */ + __pyx_t_5 = PySlice_Check(__pyx_v_rows); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/petscmat.pxi":1111 + * rows, cols = ij + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) # <<<<<<<<<<<<<< + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, (&__pyx_v_M), NULL)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1111, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1112 + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) # <<<<<<<<<<<<<< + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_rows, __pyx_n_s_indices); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1112, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_8 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_9), 3) < 0) __PYX_ERR(20, 1112, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1112, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_start = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_stop = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_stride = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1113 + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) # <<<<<<<<<<<<<< + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1110 + * cdef PetscInt M=0, N=0 + * rows, cols = ij + * if isinstance(rows, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1114 + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + */ + __pyx_t_6 = PySlice_Check(__pyx_v_cols); + __pyx_t_5 = (__pyx_t_6 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/petscmat.pxi":1115 + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) # <<<<<<<<<<<<<< + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, NULL, (&__pyx_v_N))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1115, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1116 + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) # <<<<<<<<<<<<<< + * cols = arange(start, stop, stride) + * return matgetvalues(self.mat, rows, cols, None) + */ + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_cols, __pyx_n_s_indices); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1116, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_8 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_1 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_8 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 1; __pyx_t_3 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_1 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_9), 3) < 0) __PYX_ERR(20, 1116, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1116, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_start, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_stop, __pyx_t_3); + __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_stride, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1117 + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) # <<<<<<<<<<<<<< + * return matgetvalues(self.mat, rows, cols, None) + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_cols, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1114 + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1118 + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) + * return matgetvalues(self.mat, rows, cols, None) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_matgetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1107 + * # ----------------------------------------------------------------------------- + * + * cdef object mat_getitem(Mat self, object ij): # <<<<<<<<<<<<<< + * cdef PetscInt M=0, N=0 + * rows, cols = ij + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.mat_getitem", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XDECREF(__pyx_v_cols); + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_stop); + __Pyx_XDECREF(__pyx_v_stride); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1121 + * + * + * cdef PetscErrorCode mat_setitem(Mat self, object ij, object v) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * cdef PetscInt M=0, N=0 + * rows, cols = ij + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_mat_setitem(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij, PyObject *__pyx_v_v) { + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_v_rows = NULL; + PyObject *__pyx_v_cols = NULL; + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_v_stop = NULL; + PyObject *__pyx_v_stride = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *(*__pyx_t_4)(PyObject *); + int __pyx_t_5; + int __pyx_t_6; + PetscErrorCode __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_setitem", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1122 + * + * cdef PetscErrorCode mat_setitem(Mat self, object ij, object v) except PETSC_ERR_PYTHON: + * cdef PetscInt M=0, N=0 # <<<<<<<<<<<<<< + * rows, cols = ij + * if isinstance(rows, slice): + */ + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1123 + * cdef PetscErrorCode mat_setitem(Mat self, object ij, object v) except PETSC_ERR_PYTHON: + * cdef PetscInt M=0, N=0 + * rows, cols = ij # <<<<<<<<<<<<<< + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_ij))) || (PyList_CheckExact(__pyx_v_ij))) { + PyObject* sequence = __pyx_v_ij; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1123, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_3 = PyObject_GetIter(__pyx_v_ij); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) __PYX_ERR(20, 1123, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1123, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_rows = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_cols = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1124 + * cdef PetscInt M=0, N=0 + * rows, cols = ij + * if isinstance(rows, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + */ + __pyx_t_5 = PySlice_Check(__pyx_v_rows); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/petscmat.pxi":1125 + * rows, cols = ij + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) # <<<<<<<<<<<<<< + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, (&__pyx_v_M), NULL)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1125, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1126 + * if isinstance(rows, slice): + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) # <<<<<<<<<<<<<< + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_rows, __pyx_n_s_indices); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1126, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_8 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_9), 3) < 0) __PYX_ERR(20, 1126, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1126, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_start = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_stop = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_stride = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1127 + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) # <<<<<<<<<<<<<< + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1124 + * cdef PetscInt M=0, N=0 + * rows, cols = ij + * if isinstance(rows, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, NULL) ) + * start, stop, stride = rows.indices(toInt(M)) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1128 + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + */ + __pyx_t_6 = PySlice_Check(__pyx_v_cols); + __pyx_t_5 = (__pyx_t_6 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/petscmat.pxi":1129 + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) # <<<<<<<<<<<<<< + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, NULL, (&__pyx_v_N))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1129, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1130 + * if isinstance(cols, slice): + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) # <<<<<<<<<<<<<< + * cols = arange(start, stop, stride) + * matsetvalues(self.mat, rows, cols, v, None, 0, 0) + */ + __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_cols, __pyx_n_s_indices); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1130, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_8 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_1 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_8 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 1; __pyx_t_3 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_3)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_1 = __pyx_t_4(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_9), 3) < 0) __PYX_ERR(20, 1130, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1130, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_start, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_stop, __pyx_t_3); + __pyx_t_3 = 0; + __Pyx_XDECREF_SET(__pyx_v_stride, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1131 + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, v, None, 0, 0) + * return PETSC_SUCCESS + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_v_start, __pyx_v_stop, __pyx_v_stride)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_cols, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1128 + * start, stop, stride = rows.indices(toInt(M)) + * rows = arange(start, stop, stride) + * if isinstance(cols, slice): # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * start, stop, stride = cols.indices(toInt(N)) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1132 + * start, stop, stride = cols.indices(toInt(N)) + * cols = arange(start, stop, stride) + * matsetvalues(self.mat, rows, cols, v, None, 0, 0) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_matsetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_v, Py_None, 0, 0); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1132, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1133 + * cols = arange(start, stop, stride) + * matsetvalues(self.mat, rows, cols, v, None, 0, 0) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1121 + * + * + * cdef PetscErrorCode mat_setitem(Mat self, object ij, object v) except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * cdef PetscInt M=0, N=0 + * rows, cols = ij + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.mat_setitem", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XDECREF(__pyx_v_cols); + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_stop); + __Pyx_XDECREF(__pyx_v_stride); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1141 + * cdef PetscMatStencil stencil + * property i: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.i = asInt(value) + * property j: + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1i_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1i_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1i___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1i___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1142 + * property i: + * def __set__(self, value): + * self.stencil.i = asInt(value) # <<<<<<<<<<<<<< + * property j: + * def __set__(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1142, __pyx_L1_error) + __pyx_v_self->stencil.i = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":1141 + * cdef PetscMatStencil stencil + * property i: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.i = asInt(value) + * property j: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.i.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1144 + * self.stencil.i = asInt(value) + * property j: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.j = asInt(value) + * property k: + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1j_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1j_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1j___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1j___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1145 + * property j: + * def __set__(self, value): + * self.stencil.j = asInt(value) # <<<<<<<<<<<<<< + * property k: + * def __set__(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1145, __pyx_L1_error) + __pyx_v_self->stencil.j = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":1144 + * self.stencil.i = asInt(value) + * property j: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.j = asInt(value) + * property k: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.j.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1147 + * self.stencil.j = asInt(value) + * property k: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.k = asInt(value) + * property c: + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1k_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1k_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1k___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1k___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1148 + * property k: + * def __set__(self, value): + * self.stencil.k = asInt(value) # <<<<<<<<<<<<<< + * property c: + * def __set__(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1148, __pyx_L1_error) + __pyx_v_self->stencil.k = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":1147 + * self.stencil.j = asInt(value) + * property k: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.k = asInt(value) + * property c: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.k.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1150 + * self.stencil.k = asInt(value) + * property c: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.c = asInt(value) + * property index: + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1c_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1c_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1c___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_1c___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1151 + * property c: + * def __set__(self, value): + * self.stencil.c = asInt(value) # <<<<<<<<<<<<<< + * property index: + * def __set__(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1151, __pyx_L1_error) + __pyx_v_self->stencil.c = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":1150 + * self.stencil.k = asInt(value) + * property c: + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.stencil.c = asInt(value) + * property index: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.c.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1153 + * self.stencil.c = asInt(value) + * property index: + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef PetscMatStencil *s = &self.stencil + * s.k = s.j = s.i = 0 + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5index_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5index_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5index___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5index___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + MatStencil *__pyx_v_s; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1154 + * property index: + * def __set__(self, value): + * cdef PetscMatStencil *s = &self.stencil # <<<<<<<<<<<<<< + * s.k = s.j = s.i = 0 + * asDims(value, &s.i, &s.j, &s.k) + */ + __pyx_v_s = (&__pyx_v_self->stencil); + + /* "petsc4py/PETSc/petscmat.pxi":1155 + * def __set__(self, value): + * cdef PetscMatStencil *s = &self.stencil + * s.k = s.j = s.i = 0 # <<<<<<<<<<<<<< + * asDims(value, &s.i, &s.j, &s.k) + * property field: + */ + __pyx_v_s->k = 0; + __pyx_v_s->j = 0; + __pyx_v_s->i = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1156 + * cdef PetscMatStencil *s = &self.stencil + * s.k = s.j = s.i = 0 + * asDims(value, &s.i, &s.j, &s.k) # <<<<<<<<<<<<<< + * property field: + * def __set__(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_value, (&__pyx_v_s->i), (&__pyx_v_s->j), (&__pyx_v_s->k)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1156, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1153 + * self.stencil.c = asInt(value) + * property index: + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef PetscMatStencil *s = &self.stencil + * s.k = s.j = s.i = 0 + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.index.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1158 + * asDims(value, &s.i, &s.j, &s.k) + * property field: + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef PetscMatStencil *s = &self.stencil + * s.c = asInt(value) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5field_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5field_1__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5field___set__(((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_12_Mat_Stencil_5field___set__(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_self, PyObject *__pyx_v_value) { + MatStencil *__pyx_v_s; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1159 + * property field: + * def __set__(self, value): + * cdef PetscMatStencil *s = &self.stencil # <<<<<<<<<<<<<< + * s.c = asInt(value) + * + */ + __pyx_v_s = (&__pyx_v_self->stencil); + + /* "petsc4py/PETSc/petscmat.pxi":1160 + * def __set__(self, value): + * cdef PetscMatStencil *s = &self.stencil + * s.c = asInt(value) # <<<<<<<<<<<<<< + * + * cdef matsetvaluestencil(PetscMat A, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(20, 1160, __pyx_L1_error) + __pyx_v_s->c = __pyx_t_1; + + /* "petsc4py/PETSc/petscmat.pxi":1158 + * asDims(value, &s.i, &s.j, &s.k) + * property field: + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef PetscMatStencil *s = &self.stencil + * s.c = asInt(value) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._Mat_Stencil.field.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1162 + * s.c = asInt(value) + * + * cdef matsetvaluestencil(PetscMat A, # <<<<<<<<<<<<<< + * _Mat_Stencil r, _Mat_Stencil c, object value, + * PetscInsertMode im, int blocked): + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_matsetvaluestencil(Mat __pyx_v_A, struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_r, struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_c, PyObject *__pyx_v_value, InsertMode __pyx_v_im, int __pyx_v_blocked) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_nv; + PetscScalar *__pyx_v_v; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matsetvaluestencil", 0); + __Pyx_INCREF(__pyx_v_value); + + /* "petsc4py/PETSc/petscmat.pxi":1166 + * PetscInsertMode im, int blocked): + * # block size + * cdef PetscInt rbs=1, cbs=1 # <<<<<<<<<<<<<< + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + */ + __pyx_v_rbs = 1; + __pyx_v_cbs = 1; + + /* "petsc4py/PETSc/petscmat.pxi":1167 + * # block size + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) # <<<<<<<<<<<<<< + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSizes(__pyx_v_A, (&__pyx_v_rbs), (&__pyx_v_cbs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1167, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":1168 + * cdef PetscInt rbs=1, cbs=1 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 # <<<<<<<<<<<<<< + * if cbs < 1: cbs = 1 + * # values + */ + __pyx_t_1 = ((__pyx_v_rbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":1169 + * if blocked: CHKERR( MatGetBlockSizes(A, &rbs, &cbs) ) + * if rbs < 1: rbs = 1 + * if cbs < 1: cbs = 1 # <<<<<<<<<<<<<< + * # values + * cdef PetscInt nv = 1 + */ + __pyx_t_1 = ((__pyx_v_cbs < 1) != 0); + if (__pyx_t_1) { + __pyx_v_cbs = 1; + } + + /* "petsc4py/PETSc/petscmat.pxi":1171 + * if cbs < 1: cbs = 1 + * # values + * cdef PetscInt nv = 1 # <<<<<<<<<<<<<< + * cdef PetscScalar *v = NULL + * value = iarray_s(value, &nv, &v) + */ + __pyx_v_nv = 1; + + /* "petsc4py/PETSc/petscmat.pxi":1172 + * # values + * cdef PetscInt nv = 1 + * cdef PetscScalar *v = NULL # <<<<<<<<<<<<<< + * value = iarray_s(value, &nv, &v) + * if rbs*cbs != nv: raise ValueError( + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1173 + * cdef PetscInt nv = 1 + * cdef PetscScalar *v = NULL + * value = iarray_s(value, &nv, &v) # <<<<<<<<<<<<<< + * if rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: nv=%d" % toInt(nv) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_value, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1174 + * cdef PetscScalar *v = NULL + * value = iarray_s(value, &nv, &v) + * if rbs*cbs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: nv=%d" % toInt(nv) ) + * if blocked: + */ + __pyx_t_1 = (((__pyx_v_rbs * __pyx_v_cbs) != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscmat.pxi":1175 + * value = iarray_s(value, &nv, &v) + * if rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: nv=%d" % toInt(nv) ) # <<<<<<<<<<<<<< + * if blocked: + * CHKERR( MatSetValuesBlockedStencil(A, + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_incompatible_array_sizes_nv_d, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(20, 1175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1174 + * cdef PetscScalar *v = NULL + * value = iarray_s(value, &nv, &v) + * if rbs*cbs != nv: raise ValueError( # <<<<<<<<<<<<<< + * "incompatible array sizes: nv=%d" % toInt(nv) ) + * if blocked: + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(20, 1174, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscmat.pxi":1176 + * if rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: nv=%d" % toInt(nv) ) + * if blocked: # <<<<<<<<<<<<<< + * CHKERR( MatSetValuesBlockedStencil(A, + * 1, &r.stencil, + */ + __pyx_t_1 = (__pyx_v_blocked != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscmat.pxi":1177 + * "incompatible array sizes: nv=%d" % toInt(nv) ) + * if blocked: + * CHKERR( MatSetValuesBlockedStencil(A, # <<<<<<<<<<<<<< + * 1, &r.stencil, + * 1, &c.stencil, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetValuesBlockedStencil(__pyx_v_A, 1, (&__pyx_v_r->stencil), 1, (&__pyx_v_c->stencil), __pyx_v_v, __pyx_v_im)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1177, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1176 + * if rbs*cbs != nv: raise ValueError( + * "incompatible array sizes: nv=%d" % toInt(nv) ) + * if blocked: # <<<<<<<<<<<<<< + * CHKERR( MatSetValuesBlockedStencil(A, + * 1, &r.stencil, + */ + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscmat.pxi":1182 + * v, im) ) + * else: + * CHKERR( MatSetValuesStencil(A, # <<<<<<<<<<<<<< + * 1, &r.stencil, + * 1, &c.stencil, + */ + /*else*/ { + + /* "petsc4py/PETSc/petscmat.pxi":1185 + * 1, &r.stencil, + * 1, &c.stencil, + * v, im) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetValuesStencil(__pyx_v_A, 1, (&__pyx_v_r->stencil), 1, (&__pyx_v_c->stencil), __pyx_v_v, __pyx_v_im)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1182, __pyx_L1_error) + } + __pyx_L7:; + + /* "petsc4py/PETSc/petscmat.pxi":1186 + * 1, &c.stencil, + * v, im) ) + * return 0 # <<<<<<<<<<<<<< + * + * cdef mat_get_dlpack_ctx(Mat self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_int_0); + __pyx_r = __pyx_int_0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1162 + * s.c = asInt(value) + * + * cdef matsetvaluestencil(PetscMat A, # <<<<<<<<<<<<<< + * _Mat_Stencil r, _Mat_Stencil c, object value, + * PetscInsertMode im, int blocked): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.matsetvaluestencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscmat.pxi":1188 + * return 0 + * + * cdef mat_get_dlpack_ctx(Mat self): # <<<<<<<<<<<<<< + * if 'dense' not in self.getType(): + * raise NotImplementedError("Not for type {}".format(self.getType())) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_mat_get_dlpack_ctx(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_v_ctx0 = 0; + PetscInt __pyx_v_n; + PetscInt __pyx_v_m; + PetscInt __pyx_v_lda; + int64_t __pyx_v_ndim; + int64_t *__pyx_v_shape_arr; + int64_t *__pyx_v_strides_arr; + PyObject *__pyx_v_s1 = 0; + PyObject *__pyx_v_s2 = 0; + PetscInt __pyx_v_devId; + PetscMemType __pyx_v_mtype; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_v_devType_ = NULL; + PyObject *__pyx_v_dtype = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscErrorCode __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int64_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mat_get_dlpack_ctx", 0); + + /* "petsc4py/PETSc/petscmat.pxi":1189 + * + * cdef mat_get_dlpack_ctx(Mat self): + * if 'dense' not in self.getType(): # <<<<<<<<<<<<<< + * raise NotImplementedError("Not for type {}".format(self.getType())) + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getType); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_dense, __pyx_t_1, Py_NE)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(20, 1189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_5 = (__pyx_t_4 != 0); + if (unlikely(__pyx_t_5)) { + + /* "petsc4py/PETSc/petscmat.pxi":1190 + * cdef mat_get_dlpack_ctx(Mat self): + * if 'dense' not in self.getType(): + * raise NotImplementedError("Not for type {}".format(self.getType())) # <<<<<<<<<<<<<< + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0, m = 0, lda = 0 + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Not_for_type, __pyx_n_s_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getType); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_6, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_NotImplementedError, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(20, 1190, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1189 + * + * cdef mat_get_dlpack_ctx(Mat self): + * if 'dense' not in self.getType(): # <<<<<<<<<<<<<< + * raise NotImplementedError("Not for type {}".format(self.getType())) + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1191 + * if 'dense' not in self.getType(): + * raise NotImplementedError("Not for type {}".format(self.getType())) + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, m = 0, lda = 0 + * cdef int64_t ndim = 2 + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx0 = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1192 + * raise NotImplementedError("Not for type {}".format(self.getType())) + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0, m = 0, lda = 0 # <<<<<<<<<<<<<< + * cdef int64_t ndim = 2 + * cdef int64_t* shape_arr = NULL + */ + __pyx_v_n = 0; + __pyx_v_m = 0; + __pyx_v_lda = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1193 + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * cdef PetscInt n = 0, m = 0, lda = 0 + * cdef int64_t ndim = 2 # <<<<<<<<<<<<<< + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + */ + __pyx_v_ndim = 2; + + /* "petsc4py/PETSc/petscmat.pxi":1194 + * cdef PetscInt n = 0, m = 0, lda = 0 + * cdef int64_t ndim = 2 + * cdef int64_t* shape_arr = NULL # <<<<<<<<<<<<<< + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None + */ + __pyx_v_shape_arr = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1195 + * cdef int64_t ndim = 2 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL # <<<<<<<<<<<<<< + * cdef object s1 = None + * cdef object s2 = None + */ + __pyx_v_strides_arr = NULL; + + /* "petsc4py/PETSc/petscmat.pxi":1196 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None # <<<<<<<<<<<<<< + * cdef object s2 = None + * cdef PetscInt devId = 0 + */ + __Pyx_INCREF(Py_None); + __pyx_v_s1 = Py_None; + + /* "petsc4py/PETSc/petscmat.pxi":1197 + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None + * cdef object s2 = None # <<<<<<<<<<<<<< + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + */ + __Pyx_INCREF(Py_None); + __pyx_v_s2 = Py_None; + + /* "petsc4py/PETSc/petscmat.pxi":1198 + * cdef object s1 = None + * cdef object s2 = None + * cdef PetscInt devId = 0 # <<<<<<<<<<<<<< + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view + */ + __pyx_v_devId = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1199 + * cdef object s2 = None + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST # <<<<<<<<<<<<<< + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + */ + __pyx_v_mtype = PETSC_MEMTYPE_HOST; + + /* "petsc4py/PETSc/petscmat.pxi":1200 + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view # <<<<<<<<<<<<<< + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + __pyx_t_5 = (__pyx_v_ctx0 == Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscmat.pxi":1201 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) # <<<<<<<<<<<<<< + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( MatGetSize(self.mat, NULL, &n) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_shape_arr)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_s1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1202 + * if ctx0 is None: # First time in, create a linear memory view + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &n) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(20, 1202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_strides_arr)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(20, 1202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_s2, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1203 + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( MatGetSize(self.mat, NULL, &n) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, NULL, (&__pyx_v_n))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1203, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1204 + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * CHKERR( MatGetSize(self.mat, NULL, &n) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * shape_arr[0] = m + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_self->mat, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1204, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1205 + * CHKERR( MatGetSize(self.mat, NULL, &n) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) # <<<<<<<<<<<<<< + * shape_arr[0] = m + * shape_arr[1] = n + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetLDA(__pyx_v_self->mat, (&__pyx_v_lda))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1205, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1206 + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * shape_arr[0] = m # <<<<<<<<<<<<<< + * shape_arr[1] = n + * strides_arr[0] = 1 + */ + (__pyx_v_shape_arr[0]) = ((int64_t)__pyx_v_m); + + /* "petsc4py/PETSc/petscmat.pxi":1207 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * shape_arr[0] = m + * shape_arr[1] = n # <<<<<<<<<<<<<< + * strides_arr[0] = 1 + * strides_arr[1] = lda + */ + (__pyx_v_shape_arr[1]) = ((int64_t)__pyx_v_n); + + /* "petsc4py/PETSc/petscmat.pxi":1208 + * shape_arr[0] = m + * shape_arr[1] = n + * strides_arr[0] = 1 # <<<<<<<<<<<<<< + * strides_arr[1] = lda + * else: + */ + (__pyx_v_strides_arr[0]) = 1; + + /* "petsc4py/PETSc/petscmat.pxi":1209 + * shape_arr[1] = n + * strides_arr[0] = 1 + * strides_arr[1] = lda # <<<<<<<<<<<<<< + * else: + * (_, _, ndim, s1, s2) = ctx0 + */ + (__pyx_v_strides_arr[1]) = ((int64_t)__pyx_v_lda); + + /* "petsc4py/PETSc/petscmat.pxi":1200 + * cdef PetscInt devId = 0 + * cdef PetscMemType mtype = PETSC_MEMTYPE_HOST + * if ctx0 is None: # First time in, create a linear memory view # <<<<<<<<<<<<<< + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/petscmat.pxi":1211 + * strides_arr[1] = lda + * else: + * (_, _, ndim, s1, s2) = ctx0 # <<<<<<<<<<<<<< + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA } + */ + /*else*/ { + if ((likely(PyTuple_CheckExact(__pyx_v_ctx0))) || (PyList_CheckExact(__pyx_v_ctx0))) { + PyObject* sequence = __pyx_v_ctx0; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(20, 1211, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_3 = PyList_GET_ITEM(sequence, 2); + __pyx_t_6 = PyList_GET_ITEM(sequence, 3); + __pyx_t_7 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_3,&__pyx_t_6,&__pyx_t_7}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(20, 1211, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_1,&__pyx_t_3,&__pyx_t_6,&__pyx_t_7}; + __pyx_t_9 = PyObject_GetIter(__pyx_v_ctx0); if (unlikely(!__pyx_t_9)) __PYX_ERR(20, 1211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(20, 1211, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(20, 1211, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_3); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(20, 1211, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v__ = __pyx_t_2; + __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_ndim = __pyx_t_11; + __Pyx_DECREF_SET(__pyx_v_s1, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_s2, __pyx_t_7); + __pyx_t_7 = 0; + } + __pyx_L4:; + + /* "petsc4py/PETSc/petscmat.pxi":1213 + * (_, _, ndim, s1, s2) = ctx0 + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA } # <<<<<<<<<<<<<< + * CHKERR( MatGetCurrentMemType(self.mat, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + */ + __pyx_t_7 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyInt_From_PetscMemType(PETSC_MEMTYPE_HOST); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_3) < 0) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_PetscMemType(PETSC_MEMTYPE_CUDA); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCUDA); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_7, __pyx_t_3, __pyx_t_6) < 0) __PYX_ERR(20, 1213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_devType_ = ((PyObject*)__pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1214 + * + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA } + * CHKERR( MatGetCurrentMemType(self.mat, &mtype) ) # <<<<<<<<<<<<<< + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetCurrentMemType(__pyx_v_self->mat, (&__pyx_v_mtype))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1214, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1215 + * devType_ = { PETSC_MEMTYPE_HOST : kDLCPU, PETSC_MEMTYPE_CUDA : kDLCUDA } + * CHKERR( MatGetCurrentMemType(self.mat, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) # <<<<<<<<<<<<<< + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) + */ + __pyx_t_7 = __Pyx_PyInt_From_PetscMemType(__pyx_v_mtype); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 1215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyDict_GetItemDefault(__pyx_v_devType_, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_dtype = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1216 + * CHKERR( MatGetCurrentMemType(self.mat, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + */ + __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(20, 1216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscmat.pxi":1217 + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) # <<<<<<<<<<<<<< + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetDeviceId(((PetscObject)__pyx_v_self->mat), (&__pyx_v_devId))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(20, 1217, __pyx_L1_error) + + /* "petsc4py/PETSc/petscmat.pxi":1216 + * CHKERR( MatGetCurrentMemType(self.mat, &mtype) ) + * dtype = devType_.get(mtype, kDLCPU) + * if dtype != kDLCPU: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + */ + } + + /* "petsc4py/PETSc/petscmat.pxi":1218 + * if dtype != kDLCPU: + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', ctx0) + * return ctx0 + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_devId); if (unlikely(!__pyx_t_6)) __PYX_ERR(20, 1218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(20, 1218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 1218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_dtype); + __Pyx_GIVEREF(__pyx_v_dtype); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_dtype); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_3); + __Pyx_INCREF(__pyx_v_s1); + __Pyx_GIVEREF(__pyx_v_s1); + PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_v_s1); + __Pyx_INCREF(__pyx_v_s2); + __Pyx_GIVEREF(__pyx_v_s2); + PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_v_s2); + __pyx_t_6 = 0; + __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_ctx0, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1219 + * CHKERR( PetscObjectGetDeviceId(self.mat, &devId) ) + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) # <<<<<<<<<<<<<< + * return ctx0 + * + */ + __pyx_t_7 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), __pyx_v_ctx0); if (unlikely(!__pyx_t_7)) __PYX_ERR(20, 1219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscmat.pxi":1220 + * ctx0 = (dtype, devId, ndim, s1, s2) + * self.set_attr('__dltensor_ctx__', ctx0) + * return ctx0 # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_ctx0); + __pyx_r = __pyx_v_ctx0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscmat.pxi":1188 + * return 0 + * + * cdef mat_get_dlpack_ctx(Mat self): # <<<<<<<<<<<<<< + * if 'dense' not in self.getType(): + * raise NotImplementedError("Not for type {}".format(self.getType())) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.mat_get_dlpack_ctx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx0); + __Pyx_XDECREF(__pyx_v_s1); + __Pyx_XDECREF(__pyx_v_s2); + __Pyx_XDECREF(__pyx_v__); + __Pyx_XDECREF(__pyx_v_devType_); + __Pyx_XDECREF(__pyx_v_dtype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":362 + * # -------------------------------------------------------------------- + * + * cdef inline PC ref_PC(PetscPC pc): # <<<<<<<<<<<<<< + * cdef PC ob = PC() + * ob.pc = pc + */ + +static CYTHON_INLINE struct PyPetscPCObject *__pyx_f_8petsc4py_5PETSc_ref_PC(PC __pyx_v_pc) { + struct PyPetscPCObject *__pyx_v_ob = 0; + struct PyPetscPCObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_PC", 0); + + /* "petsc4py/PETSc/petscpc.pxi":363 + * + * cdef inline PC ref_PC(PetscPC pc): + * cdef PC ob = PC() # <<<<<<<<<<<<<< + * ob.pc = pc + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscPCObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":364 + * cdef inline PC ref_PC(PetscPC pc): + * cdef PC ob = PC() + * ob.pc = pc # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->pc = __pyx_v_pc; + + /* "petsc4py/PETSc/petscpc.pxi":365 + * cdef PC ob = PC() + * ob.pc = pc + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscpc.pxi":366 + * ob.pc = pc + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPatch_ComputeOperator( + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":362 + * # -------------------------------------------------------------------- + * + * cdef inline PC ref_PC(PetscPC pc): # <<<<<<<<<<<<<< + * cdef PC ob = PC() + * ob.pc = pc + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_PC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":368 + * return ob + * + * cdef PetscErrorCode PCPatch_ComputeOperator( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperator(PC __pyx_v_pc, PetscInt __pyx_v_point, Vec __pyx_v_vec, Mat __pyx_v_mat, IS __pyx_v_cells, CYTHON_UNUSED PetscInt __pyx_v_ndof, PetscInt const *__pyx_v_dofmap, PetscInt const *__pyx_v_dofmapWithAll, void *__pyx_v_ctx) { + struct PyPetscVecObject *__pyx_v_Vec = 0; + struct PyPetscMatObject *__pyx_v_Mat = 0; + struct PyPetscPCObject *__pyx_v_Pc = 0; + struct PyPetscISObject *__pyx_v_Is = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_op = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + __Pyx_memviewslice __pyx_v_pydofs = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_pydofsWithAll = { 0, 0, { 0 }, { 0 }, { 0 } }; + PyArrayObject *__pyx_v_dofsall = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + struct __pyx_array_obj *__pyx_t_9 = NULL; + __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } }; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPatch_ComputeOperator", 0); + + /* "petsc4py/PETSc/petscpc.pxi":378 + * const PetscInt *dofmapWithAll, + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Vec = ref_Vec(vec) # <<<<<<<<<<<<<< + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":379 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Vec = ref_Vec(vec) + * cdef Mat Mat = ref_Mat(mat) # <<<<<<<<<<<<<< + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":380 + * cdef Vec Vec = ref_Vec(vec) + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) # <<<<<<<<<<<<<< + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_operator__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_PC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":381 + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) # <<<<<<<<<<<<<< + * cdef object context = Pc.get_attr("__patch_compute_operator__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS(__pyx_v_cells)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Is = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":382 + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_operator__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_Pc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Pc), ((char *)"__patch_compute_operator__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":383 + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_operator__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscpc.pxi":384 + * cdef object context = Pc.get_attr("__patch_compute_operator__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(8, 384, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscpc.pxi":385 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 385, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(8, 385, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 385, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_op = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":386 + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: + */ + if (!__pyx_v_dofmap) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 386, __pyx_L1_error) + } + __pyx_t_5 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_array_new(__pyx_t_6, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_5), (char *) "c", (char *) __pyx_v_dofmap); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 386, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofs = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":388 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: # <<<<<<<<<<<<<< + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) + */ + __pyx_t_2 = ((__pyx_v_dofmapWithAll != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscpc.pxi":389 + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: + * pydofsWithAll = dofmapWithAll # <<<<<<<<<<<<<< + * dofsall = asarray(pydofsWithAll) + * else: + */ + if (!__pyx_v_dofmapWithAll) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 389, __pyx_L1_error) + } + __pyx_t_6 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __pyx_array_new(__pyx_t_5, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_6), (char *) "c", (char *) __pyx_v_dofmapWithAll); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 389, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofsWithAll = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":390 + * if dofmapWithAll != NULL: + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) # <<<<<<<<<<<<<< + * else: + * dofsall = None + */ + __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_pydofsWithAll, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_dofsall = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":388 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: # <<<<<<<<<<<<<< + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscpc.pxi":392 + * dofsall = asarray(pydofsWithAll) + * else: + * dofsall = None # <<<<<<<<<<<<<< + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) + * return PETSC_SUCCESS + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __pyx_v_dofsall = ((PyArrayObject *)Py_None); + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscpc.pxi":393 + * else: + * dofsall = None + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_point); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_pydofs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(7); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pc)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vec)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Vec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Mat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Mat)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_Mat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Is)); + PyTuple_SET_ITEM(__pyx_t_6, 4, ((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 5, __pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_dofsall)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_dofsall)); + PyTuple_SET_ITEM(__pyx_t_6, 6, ((PyObject *)__pyx_v_dofsall)); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(8, 393, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_op, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":394 + * dofsall = None + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPatch_ComputeFunction( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":368 + * return ob + * + * cdef PetscErrorCode PCPatch_ComputeOperator( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(((PyObject *)__pyx_t_9)); + __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPatch_ComputeOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Vec); + __Pyx_XDECREF((PyObject *)__pyx_v_Mat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pc); + __Pyx_XDECREF((PyObject *)__pyx_v_Is); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_op); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofs, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofsWithAll, 1); + __Pyx_XDECREF((PyObject *)__pyx_v_dofsall); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":396 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeFunction( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunction(PC __pyx_v_pc, PetscInt __pyx_v_point, Vec __pyx_v_vec, Vec __pyx_v_out, IS __pyx_v_cells, CYTHON_UNUSED PetscInt __pyx_v_ndof, PetscInt const *__pyx_v_dofmap, PetscInt const *__pyx_v_dofmapWithAll, void *__pyx_v_ctx) { + struct PyPetscVecObject *__pyx_v_Out = 0; + struct PyPetscVecObject *__pyx_v_Vec = 0; + struct PyPetscPCObject *__pyx_v_Pc = 0; + struct PyPetscISObject *__pyx_v_Is = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_op = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + __Pyx_memviewslice __pyx_v_pydofs = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_pydofsWithAll = { 0, 0, { 0 }, { 0 }, { 0 } }; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + struct __pyx_array_obj *__pyx_t_9 = NULL; + __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } }; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPatch_ComputeFunction", 0); + + /* "petsc4py/PETSc/petscpc.pxi":406 + * const PetscInt *dofmapWithAll, + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Out = ref_Vec(out) # <<<<<<<<<<<<<< + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_out)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Out = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":407 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Out = ref_Vec(out) + * cdef Vec Vec = ref_Vec(vec) # <<<<<<<<<<<<<< + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":408 + * cdef Vec Out = ref_Vec(out) + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) # <<<<<<<<<<<<<< + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_function__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_PC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":409 + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) # <<<<<<<<<<<<<< + * cdef object context = Pc.get_attr("__patch_compute_function__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS(__pyx_v_cells)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Is = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":410 + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_function__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_Pc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Pc), ((char *)"__patch_compute_function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":411 + * cdef IS Is = ref_IS(cells) + * cdef object context = Pc.get_attr("__patch_compute_function__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscpc.pxi":412 + * cdef object context = Pc.get_attr("__patch_compute_function__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(8, 412, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscpc.pxi":413 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 413, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(8, 413, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 413, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_op = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":414 + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + */ + if (!__pyx_v_dofmap) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 414, __pyx_L1_error) + } + __pyx_t_5 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_array_new(__pyx_t_6, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_5), (char *) "c", (char *) __pyx_v_dofmap); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 414, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofs = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":415 + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll # <<<<<<<<<<<<<< + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + * return PETSC_SUCCESS + */ + if (!__pyx_v_dofmapWithAll) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 415, __pyx_L1_error) + } + __pyx_t_6 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __pyx_array_new(__pyx_t_5, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_6), (char *) "c", (char *) __pyx_v_dofmapWithAll); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 415, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofsWithAll = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":416 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_pydofs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_pydofsWithAll, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_5)); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pc)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Vec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Out)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Out)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_Out)); + __Pyx_INCREF(((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Is)); + PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_1 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(8, 416, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_7 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } else { + __pyx_t_7 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_op, __pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":417 + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPatch_ComputeOperatorInteriorFacets( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":396 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeFunction( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(((PyObject *)__pyx_t_9)); + __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPatch_ComputeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Out); + __Pyx_XDECREF((PyObject *)__pyx_v_Vec); + __Pyx_XDECREF((PyObject *)__pyx_v_Pc); + __Pyx_XDECREF((PyObject *)__pyx_v_Is); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_op); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofs, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofsWithAll, 1); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":419 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeOperatorInteriorFacets( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperatorInteriorFacets(PC __pyx_v_pc, PetscInt __pyx_v_point, Vec __pyx_v_vec, Mat __pyx_v_mat, IS __pyx_v_facets, CYTHON_UNUSED PetscInt __pyx_v_ndof, PetscInt const *__pyx_v_dofmap, PetscInt const *__pyx_v_dofmapWithAll, void *__pyx_v_ctx) { + struct PyPetscVecObject *__pyx_v_Vec = 0; + struct PyPetscMatObject *__pyx_v_Mat = 0; + struct PyPetscPCObject *__pyx_v_Pc = 0; + struct PyPetscISObject *__pyx_v_Is = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_op = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + __Pyx_memviewslice __pyx_v_pydofs = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_pydofsWithAll = { 0, 0, { 0 }, { 0 }, { 0 } }; + PyArrayObject *__pyx_v_dofsall = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + struct __pyx_array_obj *__pyx_t_9 = NULL; + __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } }; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPatch_ComputeOperatorInteriorFacets", 0); + + /* "petsc4py/PETSc/petscpc.pxi":429 + * const PetscInt *dofmapWithAll, + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Vec = ref_Vec(vec) # <<<<<<<<<<<<<< + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":430 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Vec = ref_Vec(vec) + * cdef Mat Mat = ref_Mat(mat) # <<<<<<<<<<<<<< + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":431 + * cdef Vec Vec = ref_Vec(vec) + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) # <<<<<<<<<<<<<< + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_operator_interior_facets__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_PC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":432 + * cdef Mat Mat = ref_Mat(mat) + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) # <<<<<<<<<<<<<< + * cdef object context = Pc.get_attr("__patch_compute_operator_interior_facets__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS(__pyx_v_facets)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Is = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":433 + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_operator_interior_facets__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_Pc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Pc), ((char *)"__patch_compute_operator_interior_facets__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":434 + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_operator_interior_facets__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscpc.pxi":435 + * cdef object context = Pc.get_attr("__patch_compute_operator_interior_facets__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(8, 435, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscpc.pxi":436 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 436, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(8, 436, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 436, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_op = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":437 + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: + */ + if (!__pyx_v_dofmap) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 437, __pyx_L1_error) + } + __pyx_t_5 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_array_new(__pyx_t_6, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_5), (char *) "c", (char *) __pyx_v_dofmap); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 437, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofs = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":439 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: # <<<<<<<<<<<<<< + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) + */ + __pyx_t_2 = ((__pyx_v_dofmapWithAll != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscpc.pxi":440 + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: + * pydofsWithAll = dofmapWithAll # <<<<<<<<<<<<<< + * dofsall = asarray(pydofsWithAll) + * else: + */ + if (!__pyx_v_dofmapWithAll) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 440, __pyx_L1_error) + } + __pyx_t_6 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __pyx_array_new(__pyx_t_5, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_6), (char *) "c", (char *) __pyx_v_dofmapWithAll); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 440, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofsWithAll = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":441 + * if dofmapWithAll != NULL: + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) # <<<<<<<<<<<<<< + * else: + * dofsall = None + */ + __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_pydofsWithAll, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_6)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_dofsall = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":439 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll + * if dofmapWithAll != NULL: # <<<<<<<<<<<<<< + * pydofsWithAll = dofmapWithAll + * dofsall = asarray(pydofsWithAll) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscpc.pxi":443 + * dofsall = asarray(pydofsWithAll) + * else: + * dofsall = None # <<<<<<<<<<<<<< + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) + * return PETSC_SUCCESS + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __pyx_v_dofsall = ((PyArrayObject *)Py_None); + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscpc.pxi":444 + * else: + * dofsall = None + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_point); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_pydofs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyTuple_New(7); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pc)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vec)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Vec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Mat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Mat)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_Mat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Is)); + PyTuple_SET_ITEM(__pyx_t_6, 4, ((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 5, __pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_dofsall)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_dofsall)); + PyTuple_SET_ITEM(__pyx_t_6, 6, ((PyObject *)__pyx_v_dofsall)); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(8, 444, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_op, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":445 + * dofsall = None + * op(Pc, toInt(point), Vec, Mat, Is, asarray(pydofs), dofsall, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPatch_ComputeFunctionInteriorFacets( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":419 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeOperatorInteriorFacets( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(((PyObject *)__pyx_t_9)); + __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPatch_ComputeOperatorInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Vec); + __Pyx_XDECREF((PyObject *)__pyx_v_Mat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pc); + __Pyx_XDECREF((PyObject *)__pyx_v_Is); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_op); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofs, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofsWithAll, 1); + __Pyx_XDECREF((PyObject *)__pyx_v_dofsall); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":447 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeFunctionInteriorFacets( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunctionInteriorFacets(PC __pyx_v_pc, PetscInt __pyx_v_point, Vec __pyx_v_vec, Vec __pyx_v_out, IS __pyx_v_facets, CYTHON_UNUSED PetscInt __pyx_v_ndof, PetscInt const *__pyx_v_dofmap, PetscInt const *__pyx_v_dofmapWithAll, void *__pyx_v_ctx) { + struct PyPetscVecObject *__pyx_v_Out = 0; + struct PyPetscVecObject *__pyx_v_Vec = 0; + struct PyPetscPCObject *__pyx_v_Pc = 0; + struct PyPetscISObject *__pyx_v_Is = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_op = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + __Pyx_memviewslice __pyx_v_pydofs = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_memviewslice __pyx_v_pydofsWithAll = { 0, 0, { 0 }, { 0 }, { 0 } }; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + struct __pyx_array_obj *__pyx_t_9 = NULL; + __Pyx_memviewslice __pyx_t_10 = { 0, 0, { 0 }, { 0 }, { 0 } }; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPatch_ComputeFunctionInteriorFacets", 0); + + /* "petsc4py/PETSc/petscpc.pxi":457 + * const PetscInt *dofmapWithAll, + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Out = ref_Vec(out) # <<<<<<<<<<<<<< + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_out)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Out = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":458 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef Vec Out = ref_Vec(out) + * cdef Vec Vec = ref_Vec(vec) # <<<<<<<<<<<<<< + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":459 + * cdef Vec Out = ref_Vec(out) + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) # <<<<<<<<<<<<<< + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_function_interior_facets__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_PC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":460 + * cdef Vec Vec = ref_Vec(vec) + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) # <<<<<<<<<<<<<< + * cdef object context = Pc.get_attr("__patch_compute_function_interior_facets__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS(__pyx_v_facets)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Is = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":461 + * cdef PC Pc = ref_PC(pc) + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_function_interior_facets__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_Pc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Pc), ((char *)"__patch_compute_function_interior_facets__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":462 + * cdef IS Is = ref_IS(facets) + * cdef object context = Pc.get_attr("__patch_compute_function_interior_facets__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscpc.pxi":463 + * cdef object context = Pc.get_attr("__patch_compute_function_interior_facets__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(8, 463, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscpc.pxi":464 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 464, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(8, 464, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 464, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_op = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":465 + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap # <<<<<<<<<<<<<< + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + */ + if (!__pyx_v_dofmap) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 465, __pyx_L1_error) + } + __pyx_t_5 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_array_new(__pyx_t_6, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_5), (char *) "c", (char *) __pyx_v_dofmap); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 465, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofs = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":466 + * (op, args, kargs) = context + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll # <<<<<<<<<<<<<< + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + * return PETSC_SUCCESS + */ + if (!__pyx_v_dofmapWithAll) { + PyErr_SetString(PyExc_ValueError,"Cannot create cython.array from NULL pointer"); + __PYX_ERR(8, 466, __pyx_L1_error) + } + __pyx_t_6 = __pyx_format_from_typeinfo(&__Pyx_TypeInfo_nn_PetscInt); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_BuildValue((char*) "(" __PYX_BUILD_PY_SSIZE_T ")", ((Py_ssize_t)__pyx_v_ndof)); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_9 = __pyx_array_new(__pyx_t_5, sizeof(PetscInt), PyBytes_AS_STRING(__pyx_t_6), (char *) "c", (char *) __pyx_v_dofmapWithAll); + if (unlikely(!__pyx_t_9)) __PYX_ERR(8, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(((PyObject *)__pyx_t_9), PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(8, 466, __pyx_L1_error) + __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0; + __pyx_v_pydofsWithAll = __pyx_t_10; + __pyx_t_10.memview = NULL; + __pyx_t_10.data = NULL; + + /* "petsc4py/PETSc/petscpc.pxi":467 + * cdef PetscInt[:] pydofs = dofmap + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_pydofs, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __pyx_memoryview_fromslice(__pyx_v_pydofsWithAll, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn_PetscInt, (int (*)(char *, PyObject *)) __pyx_memview_set_nn_PetscInt, 0);; if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_5)); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyTuple_New(7); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pc)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Vec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Out)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Out)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_Out)); + __Pyx_INCREF(((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Is)); + PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_Is)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_1 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(8, 467, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_7 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } else { + __pyx_t_7 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_op, __pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":468 + * cdef PetscInt[:] pydofsWithAll = dofmapWithAll + * op(Pc, toInt(point), Vec, Out, Is, asarray(pydofs), asarray(pydofsWithAll), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPatch_UserConstructOperator( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":447 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_ComputeFunctionInteriorFacets( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt point, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(((PyObject *)__pyx_t_9)); + __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPatch_ComputeFunctionInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Out); + __Pyx_XDECREF((PyObject *)__pyx_v_Vec); + __Pyx_XDECREF((PyObject *)__pyx_v_Pc); + __Pyx_XDECREF((PyObject *)__pyx_v_Is); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_op); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofs, 1); + __PYX_XDEC_MEMVIEW(&__pyx_v_pydofsWithAll, 1); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpc.pxi":470 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_UserConstructOperator( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt *n, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPatch_UserConstructOperator(PC __pyx_v_pc, PetscInt *__pyx_v_n, IS **__pyx_v_userIS, IS *__pyx_v_userIterationSet, void *__pyx_v_ctx) { + struct PyPetscPCObject *__pyx_v_Pc = 0; + PetscInt __pyx_v_i; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_op = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_patches = NULL; + PyObject *__pyx_v_iterationSet = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Py_ssize_t __pyx_t_9; + PetscErrorCode __pyx_t_10; + PetscInt __pyx_t_11; + PetscInt __pyx_t_12; + PetscInt __pyx_t_13; + IS __pyx_t_14; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPatch_UserConstructOperator", 0); + + /* "petsc4py/PETSc/petscpc.pxi":476 + * PetscIS *userIterationSet, + * void *ctx) except PETSC_ERR_PYTHON with gil: + * cdef PC Pc = ref_PC(pc) # <<<<<<<<<<<<<< + * cdef PetscInt i + * cdef object context = Pc.get_attr("__patch_construction_operator__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_PC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":478 + * cdef PC Pc = ref_PC(pc) + * cdef PetscInt i + * cdef object context = Pc.get_attr("__patch_construction_operator__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_Pc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Pc), ((char *)"__patch_construction_operator__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":479 + * cdef PetscInt i + * cdef object context = Pc.get_attr("__patch_construction_operator__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscpc.pxi":480 + * cdef object context = Pc.get_attr("__patch_construction_operator__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (op, args, kargs) = context + * (patches, iterationSet) = op(Pc, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(8, 480, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscpc.pxi":481 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context # <<<<<<<<<<<<<< + * (patches, iterationSet) = op(Pc, *args, **kargs) + * n[0] = len(patches) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 481, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(8, 481, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 481, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_op = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":482 + * assert context is not None and type(context) is tuple + * (op, args, kargs) = context + * (patches, iterationSet) = op(Pc, *args, **kargs) # <<<<<<<<<<<<<< + * n[0] = len(patches) + * CHKERR(PetscMalloc(n[0]*sizeof(PetscIS), userIS)) + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Pc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pc)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Pc)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(8, 482, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_op, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(8, 482, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(8, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(8, 482, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L11_unpacking_done; + __pyx_L10_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(8, 482, __pyx_L1_error) + __pyx_L11_unpacking_done:; + } + __pyx_v_patches = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_iterationSet = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpc.pxi":483 + * (op, args, kargs) = context + * (patches, iterationSet) = op(Pc, *args, **kargs) + * n[0] = len(patches) # <<<<<<<<<<<<<< + * CHKERR(PetscMalloc(n[0]*sizeof(PetscIS), userIS)) + * for i in range(n[0]): + */ + __pyx_t_9 = PyObject_Length(__pyx_v_patches); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(8, 483, __pyx_L1_error) + (__pyx_v_n[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscpc.pxi":484 + * (patches, iterationSet) = op(Pc, *args, **kargs) + * n[0] = len(patches) + * CHKERR(PetscMalloc(n[0]*sizeof(PetscIS), userIS)) # <<<<<<<<<<<<<< + * for i in range(n[0]): + * userIS[0][i] = (patches[i]).iset + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)(__pyx_v_n[0])) * (sizeof(IS))), __pyx_v_userIS)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(8, 484, __pyx_L1_error) + + /* "petsc4py/PETSc/petscpc.pxi":485 + * n[0] = len(patches) + * CHKERR(PetscMalloc(n[0]*sizeof(PetscIS), userIS)) + * for i in range(n[0]): # <<<<<<<<<<<<<< + * userIS[0][i] = (patches[i]).iset + * PetscINCREF(&(userIS[0][i])) + */ + __pyx_t_11 = (__pyx_v_n[0]); + __pyx_t_12 = __pyx_t_11; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; + + /* "petsc4py/PETSc/petscpc.pxi":486 + * CHKERR(PetscMalloc(n[0]*sizeof(PetscIS), userIS)) + * for i in range(n[0]): + * userIS[0][i] = (patches[i]).iset # <<<<<<<<<<<<<< + * PetscINCREF(&(userIS[0][i])) + * userIterationSet[0] = (iterationSet).iset + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_patches, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(8, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(8, 486, __pyx_L1_error) + __pyx_t_14 = ((struct PyPetscISObject *)__pyx_t_6)->iset; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + ((__pyx_v_userIS[0])[__pyx_v_i]) = __pyx_t_14; + + /* "petsc4py/PETSc/petscpc.pxi":487 + * for i in range(n[0]): + * userIS[0][i] = (patches[i]).iset + * PetscINCREF(&(userIS[0][i])) # <<<<<<<<<<<<<< + * userIterationSet[0] = (iterationSet).iset + * PetscINCREF(&(userIterationSet[0])) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&((__pyx_v_userIS[0])[__pyx_v_i]))))); + } + + /* "petsc4py/PETSc/petscpc.pxi":488 + * userIS[0][i] = (patches[i]).iset + * PetscINCREF(&(userIS[0][i])) + * userIterationSet[0] = (iterationSet).iset # <<<<<<<<<<<<<< + * PetscINCREF(&(userIterationSet[0])) + * return PETSC_SUCCESS + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_iterationSet, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(8, 488, __pyx_L1_error) + __pyx_t_14 = ((struct PyPetscISObject *)__pyx_v_iterationSet)->iset; + (__pyx_v_userIterationSet[0]) = __pyx_t_14; + + /* "petsc4py/PETSc/petscpc.pxi":489 + * PetscINCREF(&(userIS[0][i])) + * userIterationSet[0] = (iterationSet).iset + * PetscINCREF(&(userIterationSet[0])) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&(__pyx_v_userIterationSet[0]))))); + + /* "petsc4py/PETSc/petscpc.pxi":490 + * userIterationSet[0] = (iterationSet).iset + * PetscINCREF(&(userIterationSet[0])) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpc.pxi":470 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCPatch_UserConstructOperator( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscInt *n, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.PCPatch_UserConstructOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Pc); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_op); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_patches); + __Pyx_XDECREF(__pyx_v_iterationSet); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscksp.pxi":208 + * # ----------------------------------------------------------------------------- + * + * cdef inline KSP ref_KSP(PetscKSP ksp): # <<<<<<<<<<<<<< + * cdef KSP ob = KSP() + * ob.ksp = ksp + */ + +static CYTHON_INLINE struct PyPetscKSPObject *__pyx_f_8petsc4py_5PETSc_ref_KSP(KSP __pyx_v_ksp) { + struct PyPetscKSPObject *__pyx_v_ob = 0; + struct PyPetscKSPObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_KSP", 0); + + /* "petsc4py/PETSc/petscksp.pxi":209 + * + * cdef inline KSP ref_KSP(PetscKSP ksp): + * cdef KSP ob = KSP() # <<<<<<<<<<<<<< + * ob.ksp = ksp + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscKSPObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":210 + * cdef inline KSP ref_KSP(PetscKSP ksp): + * cdef KSP ob = KSP() + * ob.ksp = ksp # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->ksp = __pyx_v_ksp; + + /* "petsc4py/PETSc/petscksp.pxi":211 + * cdef KSP ob = KSP() + * ob.ksp = ksp + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscksp.pxi":212 + * ob.ksp = ksp + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscksp.pxi":208 + * # ----------------------------------------------------------------------------- + * + * cdef inline KSP ref_KSP(PetscKSP ksp): # <<<<<<<<<<<<<< + * cdef KSP ob = KSP() + * ob.ksp = ksp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_KSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscksp.pxi":216 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_Converged( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscInt its, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_Converged(KSP __pyx_v_ksp, PetscInt __pyx_v_its, PetscReal __pyx_v_rnm, KSPConvergedReason *__pyx_v_r, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscKSPObject *__pyx_v_Ksp = 0; + PyObject *__pyx_v_converged = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_reason = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + int __pyx_t_8; + KSPConvergedReason __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSP_Converged", 0); + + /* "petsc4py/PETSc/petscksp.pxi":223 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) # <<<<<<<<<<<<<< + * (converged, args, kargs) = Ksp.get_attr('__converged__') + * reason = converged(Ksp, toInt(its), toReal(rnm), *args, **kargs) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_KSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":224 + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) + * (converged, args, kargs) = Ksp.get_attr('__converged__') # <<<<<<<<<<<<<< + * reason = converged(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * if reason is None: r[0] = KSP_CONVERGED_ITERATING + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_Ksp->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ksp), ((char *)"__converged__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(22, 224, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(22, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(22, 224, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(22, 224, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_converged = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_kargs = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":225 + * cdef KSP Ksp = ref_KSP(ksp) + * (converged, args, kargs) = Ksp.get_attr('__converged__') + * reason = converged(Ksp, toInt(its), toReal(rnm), *args, **kargs) # <<<<<<<<<<<<<< + * if reason is None: r[0] = KSP_CONVERGED_ITERATING + * elif reason is False: r[0] = KSP_CONVERGED_ITERATING + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rnm); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ksp)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(22, 225, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_4 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + __pyx_t_4 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_converged, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(22, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_reason = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":226 + * (converged, args, kargs) = Ksp.get_attr('__converged__') + * reason = converged(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * if reason is None: r[0] = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * elif reason is False: r[0] = KSP_CONVERGED_ITERATING + * elif reason is True: r[0] = KSP_CONVERGED_ITS # XXX ? + */ + __pyx_t_7 = (__pyx_v_reason == Py_None); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + (__pyx_v_r[0]) = KSP_CONVERGED_ITERATING; + goto __pyx_L5; + } + + /* "petsc4py/PETSc/petscksp.pxi":227 + * reason = converged(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * if reason is None: r[0] = KSP_CONVERGED_ITERATING + * elif reason is False: r[0] = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * elif reason is True: r[0] = KSP_CONVERGED_ITS # XXX ? + * else: r[0] = reason + */ + __pyx_t_8 = (__pyx_v_reason == Py_False); + __pyx_t_7 = (__pyx_t_8 != 0); + if (__pyx_t_7) { + (__pyx_v_r[0]) = KSP_CONVERGED_ITERATING; + goto __pyx_L5; + } + + /* "petsc4py/PETSc/petscksp.pxi":228 + * if reason is None: r[0] = KSP_CONVERGED_ITERATING + * elif reason is False: r[0] = KSP_CONVERGED_ITERATING + * elif reason is True: r[0] = KSP_CONVERGED_ITS # XXX ? # <<<<<<<<<<<<<< + * else: r[0] = reason + * return PETSC_SUCCESS + */ + __pyx_t_7 = (__pyx_v_reason == Py_True); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + (__pyx_v_r[0]) = KSP_CONVERGED_ITS; + goto __pyx_L5; + } + + /* "petsc4py/PETSc/petscksp.pxi":229 + * elif reason is False: r[0] = KSP_CONVERGED_ITERATING + * elif reason is True: r[0] = KSP_CONVERGED_ITS # XXX ? + * else: r[0] = reason # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + /*else*/ { + __pyx_t_9 = ((KSPConvergedReason)__Pyx_PyInt_As_KSPConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(22, 229, __pyx_L1_error) + (__pyx_v_r[0]) = __pyx_t_9; + } + __pyx_L5:; + + /* "petsc4py/PETSc/petscksp.pxi":230 + * elif reason is True: r[0] = KSP_CONVERGED_ITS # XXX ? + * else: r[0] = reason + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscksp.pxi":216 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_Converged( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscInt its, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.KSP_Converged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ksp); + __Pyx_XDECREF(__pyx_v_converged); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_reason); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscksp.pxi":234 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_Monitor( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscInt its, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_Monitor(KSP __pyx_v_ksp, PetscInt __pyx_v_its, PetscReal __pyx_v_rnm, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscKSPObject *__pyx_v_Ksp = 0; + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_monitor = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSP_Monitor", 0); + + /* "petsc4py/PETSc/petscksp.pxi":240 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) # <<<<<<<<<<<<<< + * cdef object monitorlist = Ksp.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_KSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":241 + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) + * cdef object monitorlist = Ksp.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_Ksp->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ksp), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_monitorlist = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":242 + * cdef KSP Ksp = ref_KSP(ksp) + * cdef object monitorlist = Ksp.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * for (monitor, args, kargs) in monitorlist: + * monitor(Ksp, toInt(its), toReal(rnm), *args, **kargs) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscksp.pxi":243 + * cdef object monitorlist = Ksp.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * return PETSC_SUCCESS + */ + if (likely(PyList_CheckExact(__pyx_v_monitorlist)) || PyTuple_CheckExact(__pyx_v_monitorlist)) { + __pyx_t_1 = __pyx_v_monitorlist; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_monitorlist); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 243, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(22, 243, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(22, 243, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } + } else { + __pyx_t_6 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(22, 243, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_6); + } + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(22, 243, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(22, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(22, 243, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(22, 243, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_monitor, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":244 + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + * monitor(Ksp, toInt(its), toReal(rnm), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rnm); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ksp)); + PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9); + __pyx_t_6 = 0; + __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(22, 244, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_9 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { + __pyx_t_9 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_monitor, __pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(22, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":243 + * cdef object monitorlist = Ksp.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * return PETSC_SUCCESS + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":245 + * for (monitor, args, kargs) in monitorlist: + * monitor(Ksp, toInt(its), toReal(rnm), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscksp.pxi":234 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_Monitor( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscInt its, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.KSP_Monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ksp); + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_monitor); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscksp.pxi":249 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_ComputeRHS( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec rhs, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_ComputeRHS(KSP __pyx_v_ksp, Vec __pyx_v_rhs, void *__pyx_v_ctx) { + struct PyPetscKSPObject *__pyx_v_Ksp = 0; + struct PyPetscVecObject *__pyx_v_Rhs = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_computerhs = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSP_ComputeRHS", 0); + + /* "petsc4py/PETSc/petscksp.pxi":254 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) # <<<<<<<<<<<<<< + * cdef Vec Rhs = ref_Vec(rhs) + * cdef object context = Ksp.get_attr('__rhs__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_KSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":255 + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) + * cdef Vec Rhs = ref_Vec(rhs) # <<<<<<<<<<<<<< + * cdef object context = Ksp.get_attr('__rhs__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_rhs)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Rhs = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":256 + * cdef KSP Ksp = ref_KSP(ksp) + * cdef Vec Rhs = ref_Vec(rhs) + * cdef object context = Ksp.get_attr('__rhs__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_Ksp->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ksp), ((char *)"__rhs__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":257 + * cdef Vec Rhs = ref_Vec(rhs) + * cdef object context = Ksp.get_attr('__rhs__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (computerhs, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscksp.pxi":258 + * cdef object context = Ksp.get_attr('__rhs__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (computerhs, args, kargs) = context + * computerhs(Ksp, Rhs, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(22, 258, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscksp.pxi":259 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (computerhs, args, kargs) = context # <<<<<<<<<<<<<< + * computerhs(Ksp, Rhs, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(22, 259, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(22, 259, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(22, 259, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_computerhs = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":260 + * assert context is not None and type(context) is tuple # sanity check + * (computerhs, args, kargs) = context + * computerhs(Ksp, Rhs, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ksp)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Ksp)); + __Pyx_INCREF(((PyObject *)__pyx_v_Rhs)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Rhs)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Rhs)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(22, 260, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_computerhs, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":261 + * (computerhs, args, kargs) = context + * computerhs(Ksp, Rhs, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSP_ComputeOps( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscksp.pxi":249 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode KSP_ComputeRHS( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec rhs, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.KSP_ComputeRHS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ksp); + __Pyx_XDECREF((PyObject *)__pyx_v_Rhs); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_computerhs); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscksp.pxi":263 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSP_ComputeOps( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscMat A, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSP_ComputeOps(KSP __pyx_v_ksp, Mat __pyx_v_A, Mat __pyx_v_B, void *__pyx_v_ctx) { + struct PyPetscKSPObject *__pyx_v_Ksp = 0; + struct PyPetscMatObject *__pyx_v_Amat = 0; + struct PyPetscMatObject *__pyx_v_Bmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_computeops = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSP_ComputeOps", 0); + + /* "petsc4py/PETSc/petscksp.pxi":269 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) # <<<<<<<<<<<<<< + * cdef Mat Amat = ref_Mat(A) + * cdef Mat Bmat = ref_Mat(B) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_KSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":270 + * ) except PETSC_ERR_PYTHON with gil: + * cdef KSP Ksp = ref_KSP(ksp) + * cdef Mat Amat = ref_Mat(A) # <<<<<<<<<<<<<< + * cdef Mat Bmat = ref_Mat(B) + * cdef object context = Ksp.get_attr('__operators__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_A)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Amat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":271 + * cdef KSP Ksp = ref_KSP(ksp) + * cdef Mat Amat = ref_Mat(A) + * cdef Mat Bmat = ref_Mat(B) # <<<<<<<<<<<<<< + * cdef object context = Ksp.get_attr('__operators__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_B)); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Bmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":272 + * cdef Mat Amat = ref_Mat(A) + * cdef Mat Bmat = ref_Mat(B) + * cdef object context = Ksp.get_attr('__operators__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_Ksp->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ksp), ((char *)"__operators__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":273 + * cdef Mat Bmat = ref_Mat(B) + * cdef object context = Ksp.get_attr('__operators__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (computeops, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscksp.pxi":274 + * cdef object context = Ksp.get_attr('__operators__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (computeops, args, kargs) = context + * computeops(Ksp, Amat, Bmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(22, 274, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscksp.pxi":275 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (computeops, args, kargs) = context # <<<<<<<<<<<<<< + * computeops(Ksp, Amat, Bmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(22, 275, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(22, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(22, 275, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(22, 275, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_computeops = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":276 + * assert context is not None and type(context) is tuple # sanity check + * (computeops, args, kargs) = context + * computeops(Ksp, Amat, Bmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Ksp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ksp)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Ksp)); + __Pyx_INCREF(((PyObject *)__pyx_v_Amat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Amat)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Amat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Bmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Bmat)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Bmat)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(22, 276, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_computeops, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(22, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscksp.pxi":277 + * (computeops, args, kargs) = context + * computeops(Ksp, Amat, Bmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscksp.pxi":263 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSP_ComputeOps( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscMat A, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.KSP_ComputeOps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ksp); + __Pyx_XDECREF((PyObject *)__pyx_v_Amat); + __Pyx_XDECREF((PyObject *)__pyx_v_Bmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_computeops); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":262 + * # ----------------------------------------------------------------------------- + * + * cdef inline SNES ref_SNES(PetscSNES snes): # <<<<<<<<<<<<<< + * cdef SNES ob = SNES() + * ob.snes = snes + */ + +static CYTHON_INLINE struct PyPetscSNESObject *__pyx_f_8petsc4py_5PETSc_ref_SNES(SNES __pyx_v_snes) { + struct PyPetscSNESObject *__pyx_v_ob = 0; + struct PyPetscSNESObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_SNES", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":263 + * + * cdef inline SNES ref_SNES(PetscSNES snes): + * cdef SNES ob = SNES() # <<<<<<<<<<<<<< + * ob.snes = snes + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":264 + * cdef inline SNES ref_SNES(PetscSNES snes): + * cdef SNES ob = SNES() + * ob.snes = snes # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->snes = __pyx_v_snes; + + /* "petsc4py/PETSc/petscsnes.pxi":265 + * cdef SNES ob = SNES() + * ob.snes = snes + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscsnes.pxi":266 + * ob.snes = snes + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":262 + * # ----------------------------------------------------------------------------- + * + * cdef inline SNES ref_SNES(PetscSNES snes): # <<<<<<<<<<<<<< + * cdef SNES ob = SNES() + * ob.snes = snes + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_SNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":270 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_InitialGuess( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_InitialGuess(SNES __pyx_v_snes, Vec __pyx_v_x, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_initialguess = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_InitialGuess", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":275 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__initialguess__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":276 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__initialguess__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":277 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__initialguess__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__initialguess__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":278 + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__initialguess__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (initialguess, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":279 + * cdef object context = Snes.get_attr('__initialguess__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (initialguess, args, kargs) = context + * initialguess(Snes, Xvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 279, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":280 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (initialguess, args, kargs) = context # <<<<<<<<<<<<<< + * initialguess(Snes, Xvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 280, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 280, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 280, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_initialguess = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":281 + * assert context is not None and type(context) is tuple # sanity check + * (initialguess, args, kargs) = context + * initialguess(Snes, Xvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Xvec)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 281, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_initialguess, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":282 + * (initialguess, args, kargs) = context + * initialguess(Snes, Xvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":270 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_InitialGuess( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_InitialGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_initialguess); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":286 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_PreCheck( # <<<<<<<<<<<<<< + * PetscSNESLineSearch linesearch, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_PreCheck(SNESLineSearch __pyx_v_linesearch, Vec __pyx_v_x, Vec __pyx_v_y, PetscBool *__pyx_v_changed, void *__pyx_v_ctx) { + SNES __pyx_v_snes; + PyObject *__pyx_v_b = 0; + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_Yvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_precheck = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + PetscBool __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_PreCheck", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":293 + * void* ctx + * ) except PETSC_ERR_PYTHON with gil: + * cdef PetscSNES snes = NULL; # <<<<<<<<<<<<<< + * CHKERR( SNESLineSearchGetSNES(linesearch, &snes) ); + * cdef object b = False + */ + __pyx_v_snes = NULL; + + /* "petsc4py/PETSc/petscsnes.pxi":294 + * ) except PETSC_ERR_PYTHON with gil: + * cdef PetscSNES snes = NULL; + * CHKERR( SNESLineSearchGetSNES(linesearch, &snes) ); # <<<<<<<<<<<<<< + * cdef object b = False + * cdef SNES Snes = ref_SNES(snes) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLineSearchGetSNES(__pyx_v_linesearch, (&__pyx_v_snes))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(23, 294, __pyx_L1_error) + + /* "petsc4py/PETSc/petscsnes.pxi":295 + * cdef PetscSNES snes = NULL; + * CHKERR( SNESLineSearchGetSNES(linesearch, &snes) ); + * cdef object b = False # <<<<<<<<<<<<<< + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + */ + __Pyx_INCREF(Py_False); + __pyx_v_b = Py_False; + + /* "petsc4py/PETSc/petscsnes.pxi":296 + * CHKERR( SNESLineSearchGetSNES(linesearch, &snes) ); + * cdef object b = False + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Yvec = ref_Vec(y) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":297 + * cdef object b = False + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec Yvec = ref_Vec(y) + * cdef object context = Snes.get_attr('__precheck__') + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":298 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Yvec = ref_Vec(y) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__precheck__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_y)); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_Yvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":299 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Yvec = ref_Vec(y) + * cdef object context = Snes.get_attr('__precheck__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__precheck__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":300 + * cdef Vec Yvec = ref_Vec(y) + * cdef object context = Snes.get_attr('__precheck__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (precheck, args, kargs) = context + */ + __pyx_t_4 = (__pyx_v_context == Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_3 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_3) { + __pyx_t_2 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":301 + * cdef object context = Snes.get_attr('__precheck__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (precheck, args, kargs) = context + * b = precheck(Xvec, Yvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_5 = (__pyx_v_context != Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_3 = __pyx_t_5; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 301, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":302 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (precheck, args, kargs) = context # <<<<<<<<<<<<<< + * b = precheck(Xvec, Yvec, *args, **kargs) + * changed[0] = asBool(b) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 302, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + __pyx_t_7 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_2)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 2; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 3) < 0) __PYX_ERR(23, 302, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 302, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_precheck = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_v_kargs = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":303 + * assert context is not None and type(context) is tuple # sanity check + * (precheck, args, kargs) = context + * b = precheck(Xvec, Yvec, *args, **kargs) # <<<<<<<<<<<<<< + * changed[0] = asBool(b) + * return PETSC_SUCCESS + */ + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Yvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Yvec)); + PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_Yvec)); + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 303, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_precheck, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_b, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":304 + * (precheck, args, kargs) = context + * b = precheck(Xvec, Yvec, *args, **kargs) + * changed[0] = asBool(b) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_b); if (unlikely(__pyx_t_10 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(23, 304, __pyx_L1_error) + (__pyx_v_changed[0]) = __pyx_t_10; + + /* "petsc4py/PETSc/petscsnes.pxi":305 + * b = precheck(Xvec, Yvec, *args, **kargs) + * changed[0] = asBool(b) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":286 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_PreCheck( # <<<<<<<<<<<<<< + * PetscSNESLineSearch linesearch, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_PreCheck", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_b); + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Yvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_precheck); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":310 + * + * + * cdef PetscErrorCode SNES_Function( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Function(SNES __pyx_v_snes, Vec __pyx_v_x, Vec __pyx_v_f, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_Fvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_function = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Function", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":316 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":317 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Snes.get_attr('__function__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":318 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__function__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_f)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":319 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Snes.get_attr('__function__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":320 + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Snes.get_attr('__function__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":321 + * cdef object context = Snes.get_attr('__function__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (function, args, kargs) = context + * function(Snes, Xvec, Fvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 321, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":322 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context # <<<<<<<<<<<<<< + * function(Snes, Xvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 322, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 322, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 322, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":323 + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + * function(Snes, Xvec, Fvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Fvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fvec)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Fvec)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 323, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":324 + * (function, args, kargs) = context + * function(Snes, Xvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":310 + * + * + * cdef PetscErrorCode SNES_Function( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Fvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":328 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Update( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt its, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Update(SNES __pyx_v_snes, PetscInt __pyx_v_its) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_update = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Update", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":332 + * PetscInt its, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":333 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef object context = Snes.get_attr('__update__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__update__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":334 + * cdef SNES Snes = ref_SNES(snes) + * cdef object context = Snes.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (update, args, kargs) = context + * update(Snes, toInt(its), *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = (__pyx_v_context != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_3 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 334, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":335 + * cdef object context = Snes.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context # <<<<<<<<<<<<<< + * update(Snes, toInt(its), *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 335, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 335, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 335, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_update = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":336 + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context + * update(Snes, toInt(its), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 336, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_update, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":337 + * (update, args, kargs) = context + * update(Snes, toInt(its), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":328 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Update( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt its, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_update); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":341 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Jacobian( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Jacobian(SNES __pyx_v_snes, Vec __pyx_v_x, Mat __pyx_v_J, Mat __pyx_v_P, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + struct PyPetscMatObject *__pyx_v_Pmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Jacobian", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":348 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":349 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":350 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Snes.get_attr('__jacobian__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":351 + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__jacobian__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":352 + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Snes.get_attr('__jacobian__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__jacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":353 + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Snes.get_attr('__jacobian__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":354 + * cdef object context = Snes.get_attr('__jacobian__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(Snes, Xvec, Jmat, Pmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 354, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":355 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(Snes, Xvec, Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 355, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 355, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 355, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":356 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(Snes, Xvec, Jmat, Pmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Jmat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Pmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pmat)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_Pmat)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 356, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":357 + * (jacobian, args, kargs) = context + * jacobian(Snes, Xvec, Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":341 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Jacobian( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":361 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Objective( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Objective(SNES __pyx_v_snes, Vec __pyx_v_x, PetscReal *__pyx_v_o, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_objective = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_obj = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscReal __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Objective", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":367 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__objective__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":368 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__objective__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":369 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__objective__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__objective__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":370 + * cdef Vec Xvec = ref_Vec(x) + * cdef object context = Snes.get_attr('__objective__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":371 + * cdef object context = Snes.get_attr('__objective__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (objective, args, kargs) = context + * obj = objective(Snes, Xvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 371, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":372 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context # <<<<<<<<<<<<<< + * obj = objective(Snes, Xvec, *args, **kargs) + * o[0] = asReal(obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 372, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 372, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 372, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_objective = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":373 + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context + * obj = objective(Snes, Xvec, *args, **kargs) # <<<<<<<<<<<<<< + * o[0] = asReal(obj) + * return PETSC_SUCCESS + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Xvec)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 373, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_objective, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_obj = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":374 + * (objective, args, kargs) = context + * obj = objective(Snes, Xvec, *args, **kargs) + * o[0] = asReal(obj) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_obj); if (unlikely(__pyx_t_9 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(23, 374, __pyx_L1_error) + (__pyx_v_o[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscsnes.pxi":375 + * obj = objective(Snes, Xvec, *args, **kargs) + * o[0] = asReal(obj) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":361 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Objective( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Objective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_objective); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":379 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_NGS( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_NGS(SNES __pyx_v_snes, Vec __pyx_v_x, Vec __pyx_v_b, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_Bvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_ngs = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_NGS", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":385 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Bvec = ref_Vec(b) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":386 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec Bvec = ref_Vec(b) + * cdef object context = Snes.get_attr('__ngs__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":387 + * cdef SNES Snes = ref_SNES(snes) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Bvec = ref_Vec(b) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__ngs__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Bvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":388 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Bvec = ref_Vec(b) + * cdef object context = Snes.get_attr('__ngs__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__ngs__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":389 + * cdef Vec Bvec = ref_Vec(b) + * cdef object context = Snes.get_attr('__ngs__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (ngs, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":390 + * cdef object context = Snes.get_attr('__ngs__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (ngs, args, kargs) = context + * ngs(Snes, Xvec, Bvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 390, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":391 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (ngs, args, kargs) = context # <<<<<<<<<<<<<< + * ngs(Snes, Xvec, Bvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 391, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 391, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 391, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_ngs = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":392 + * assert context is not None and type(context) is tuple # sanity check + * (ngs, args, kargs) = context + * ngs(Snes, Xvec, Bvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Bvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Bvec)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_Bvec)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 392, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_ngs, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":393 + * (ngs, args, kargs) = context + * ngs(Snes, Xvec, Bvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":379 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_NGS( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_NGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Bvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_ngs); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":397 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Converged( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt iters, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Converged(SNES __pyx_v_snes, PetscInt __pyx_v_iters, PetscReal __pyx_v_xnorm, PetscReal __pyx_v_gnorm, PetscReal __pyx_v_fnorm, SNESConvergedReason *__pyx_v_r, void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + PyObject *__pyx_v_it = 0; + PyObject *__pyx_v_xn = 0; + PyObject *__pyx_v_gn = 0; + PyObject *__pyx_v_fn = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_converged = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_reason = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + SNESConvergedReason __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Converged", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":406 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef object it = toInt(iters) + * cdef object xn = toReal(xnorm) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":407 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef object it = toInt(iters) # <<<<<<<<<<<<<< + * cdef object xn = toReal(xnorm) + * cdef object gn = toReal(gnorm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_iters); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_it = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":408 + * cdef SNES Snes = ref_SNES(snes) + * cdef object it = toInt(iters) + * cdef object xn = toReal(xnorm) # <<<<<<<<<<<<<< + * cdef object gn = toReal(gnorm) + * cdef object fn = toReal(fnorm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_xnorm); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xn = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":409 + * cdef object it = toInt(iters) + * cdef object xn = toReal(xnorm) + * cdef object gn = toReal(gnorm) # <<<<<<<<<<<<<< + * cdef object fn = toReal(fnorm) + * cdef object context = Snes.get_attr('__converged__') + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_gnorm); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gn = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":410 + * cdef object xn = toReal(xnorm) + * cdef object gn = toReal(gnorm) + * cdef object fn = toReal(fnorm) # <<<<<<<<<<<<<< + * cdef object context = Snes.get_attr('__converged__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_fnorm); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_fn = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":411 + * cdef object gn = toReal(gnorm) + * cdef object fn = toReal(fnorm) + * cdef object context = Snes.get_attr('__converged__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__converged__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":412 + * cdef object fn = toReal(fnorm) + * cdef object context = Snes.get_attr('__converged__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (converged, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":413 + * cdef object context = Snes.get_attr('__converged__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (converged, args, kargs) = context + * reason = converged(Snes, it, (xn, gn, fn), *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(23, 413, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscsnes.pxi":414 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (converged, args, kargs) = context # <<<<<<<<<<<<<< + * reason = converged(Snes, it, (xn, gn, fn), *args, **kargs) + * if reason is None: r[0] = SNES_CONVERGED_ITERATING + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 414, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(23, 414, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 414, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_converged = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":415 + * assert context is not None and type(context) is tuple # sanity check + * (converged, args, kargs) = context + * reason = converged(Snes, it, (xn, gn, fn), *args, **kargs) # <<<<<<<<<<<<<< + * if reason is None: r[0] = SNES_CONVERGED_ITERATING + * elif reason is False: r[0] = SNES_CONVERGED_ITERATING + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_xn); + __Pyx_GIVEREF(__pyx_v_xn); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_xn); + __Pyx_INCREF(__pyx_v_gn); + __Pyx_GIVEREF(__pyx_v_gn); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_gn); + __Pyx_INCREF(__pyx_v_fn); + __Pyx_GIVEREF(__pyx_v_fn); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_fn); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(__pyx_v_it); + __Pyx_GIVEREF(__pyx_v_it); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_it); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 415, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_converged, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_reason = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":416 + * (converged, args, kargs) = context + * reason = converged(Snes, it, (xn, gn, fn), *args, **kargs) + * if reason is None: r[0] = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * elif reason is False: r[0] = SNES_CONVERGED_ITERATING + * elif reason is True: r[0] = SNES_CONVERGED_ITS # XXX ? + */ + __pyx_t_2 = (__pyx_v_reason == Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + (__pyx_v_r[0]) = SNES_CONVERGED_ITERATING; + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscsnes.pxi":417 + * reason = converged(Snes, it, (xn, gn, fn), *args, **kargs) + * if reason is None: r[0] = SNES_CONVERGED_ITERATING + * elif reason is False: r[0] = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * elif reason is True: r[0] = SNES_CONVERGED_ITS # XXX ? + * else: r[0] = reason + */ + __pyx_t_4 = (__pyx_v_reason == Py_False); + __pyx_t_2 = (__pyx_t_4 != 0); + if (__pyx_t_2) { + (__pyx_v_r[0]) = SNES_CONVERGED_ITERATING; + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscsnes.pxi":418 + * if reason is None: r[0] = SNES_CONVERGED_ITERATING + * elif reason is False: r[0] = SNES_CONVERGED_ITERATING + * elif reason is True: r[0] = SNES_CONVERGED_ITS # XXX ? # <<<<<<<<<<<<<< + * else: r[0] = reason + * return PETSC_SUCCESS + */ + __pyx_t_2 = (__pyx_v_reason == Py_True); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + (__pyx_v_r[0]) = SNES_CONVERGED_ITS; + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscsnes.pxi":419 + * elif reason is False: r[0] = SNES_CONVERGED_ITERATING + * elif reason is True: r[0] = SNES_CONVERGED_ITS # XXX ? + * else: r[0] = reason # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + /*else*/ { + __pyx_t_9 = ((SNESConvergedReason)__Pyx_PyInt_As_SNESConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(23, 419, __pyx_L1_error) + (__pyx_v_r[0]) = __pyx_t_9; + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscsnes.pxi":420 + * elif reason is True: r[0] = SNES_CONVERGED_ITS # XXX ? + * else: r[0] = reason + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":397 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Converged( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt iters, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Converged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF(__pyx_v_it); + __Pyx_XDECREF(__pyx_v_xn); + __Pyx_XDECREF(__pyx_v_gn); + __Pyx_XDECREF(__pyx_v_fn); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_converged); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_reason); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscsnes.pxi":424 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Monitor( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt iters, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNES_Monitor(SNES __pyx_v_snes, PetscInt __pyx_v_iters, PetscReal __pyx_v_rnorm, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscSNESObject *__pyx_v_Snes = 0; + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_it = 0; + PyObject *__pyx_v_rn = 0; + PyObject *__pyx_v_monitor = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNES_Monitor", 0); + + /* "petsc4py/PETSc/petscsnes.pxi":430 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) # <<<<<<<<<<<<<< + * cdef object monitorlist = Snes.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_SNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":431 + * ) except PETSC_ERR_PYTHON with gil: + * cdef SNES Snes = ref_SNES(snes) + * cdef object monitorlist = Snes.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: return PETSC_SUCCESS + * cdef object it = toInt(iters) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_Snes->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Snes), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_monitorlist = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":432 + * cdef SNES Snes = ref_SNES(snes) + * cdef object monitorlist = Snes.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * cdef object it = toInt(iters) + * cdef object rn = toReal(rnorm) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscsnes.pxi":433 + * cdef object monitorlist = Snes.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * cdef object it = toInt(iters) # <<<<<<<<<<<<<< + * cdef object rn = toReal(rnorm) + * for (monitor, args, kargs) in monitorlist: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_iters); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_it = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":434 + * if monitorlist is None: return PETSC_SUCCESS + * cdef object it = toInt(iters) + * cdef object rn = toReal(rnorm) # <<<<<<<<<<<<<< + * for (monitor, args, kargs) in monitorlist: + * monitor(Snes, it, rn, *args, **kargs) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rnorm); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_rn = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":435 + * cdef object it = toInt(iters) + * cdef object rn = toReal(rnorm) + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Snes, it, rn, *args, **kargs) + * return PETSC_SUCCESS + */ + if (likely(PyList_CheckExact(__pyx_v_monitorlist)) || PyTuple_CheckExact(__pyx_v_monitorlist)) { + __pyx_t_1 = __pyx_v_monitorlist; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_monitorlist); if (unlikely(!__pyx_t_1)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(23, 435, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(23, 435, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(23, 435, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } + } else { + __pyx_t_6 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(23, 435, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_6); + } + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(23, 435, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(23, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(23, 435, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(23, 435, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_monitor, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":436 + * cdef object rn = toReal(rnorm) + * for (monitor, args, kargs) in monitorlist: + * monitor(Snes, it, rn, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Snes)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Snes)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Snes)); + __Pyx_INCREF(__pyx_v_it); + __Pyx_GIVEREF(__pyx_v_it); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_it); + __Pyx_INCREF(__pyx_v_rn); + __Pyx_GIVEREF(__pyx_v_rn); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_rn); + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyNumber_Add(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(23, 436, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_9 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { + __pyx_t_9 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_monitor, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(23, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":435 + * cdef object it = toInt(iters) + * cdef object rn = toReal(rnorm) + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Snes, it, rn, *args, **kargs) + * return PETSC_SUCCESS + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscsnes.pxi":437 + * for (monitor, args, kargs) in monitorlist: + * monitor(Snes, it, rn, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscsnes.pxi":424 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode SNES_Monitor( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscInt iters, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_Monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Snes); + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_it); + __Pyx_XDECREF(__pyx_v_rn); + __Pyx_XDECREF(__pyx_v_monitor); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":331 + * # ----------------------------------------------------------------------------- + * + * cdef inline TS ref_TS(PetscTS ts): # <<<<<<<<<<<<<< + * cdef TS ob = TS() + * ob.ts = ts + */ + +static CYTHON_INLINE struct PyPetscTSObject *__pyx_f_8petsc4py_5PETSc_ref_TS(TS __pyx_v_ts) { + struct PyPetscTSObject *__pyx_v_ob = 0; + struct PyPetscTSObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_TS", 0); + + /* "petsc4py/PETSc/petscts.pxi":332 + * + * cdef inline TS ref_TS(PetscTS ts): + * cdef TS ob = TS() # <<<<<<<<<<<<<< + * ob.ts = ts + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscTSObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscts.pxi":333 + * cdef inline TS ref_TS(PetscTS ts): + * cdef TS ob = TS() + * ob.ts = ts # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->ts = __pyx_v_ts; + + /* "petsc4py/PETSc/petscts.pxi":334 + * cdef TS ob = TS() + * ob.ts = ts + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscts.pxi":335 + * ob.ts = ts + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":331 + * # ----------------------------------------------------------------------------- + * + * cdef inline TS ref_TS(PetscTS ts): # <<<<<<<<<<<<<< + * cdef TS ob = TS() + * ob.ts = ts + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_TS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":339 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_RHSFunction( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSFunction(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_f, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_Fvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_function = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_RHSFunction", 0); + + /* "petsc4py/PETSc/petscts.pxi":346 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":347 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__rhsfunction__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":348 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__rhsfunction__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_f)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":349 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__rhsfunction__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__rhsfunction__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":350 + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__rhsfunction__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":351 + * cdef object context = Ts.get_attr('__rhsfunction__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, Fvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 351, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":352 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context # <<<<<<<<<<<<<< + * function(Ts, toReal(t), Xvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 352, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 352, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 352, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":353 + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, Fvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Fvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fvec)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_Fvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 353, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":354 + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_RHSJacobian( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":339 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_RHSFunction( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_RHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Fvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":356 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_RHSJacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSJacobian(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Mat __pyx_v_J, Mat __pyx_v_P, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + struct PyPetscMatObject *__pyx_v_Pmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_RHSJacobian", 0); + + /* "petsc4py/PETSc/petscts.pxi":364 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":365 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":366 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__rhsjacobian__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":367 + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__rhsjacobian__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":368 + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__rhsjacobian__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__rhsjacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":369 + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__rhsjacobian__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":370 + * cdef object context = Ts.get_attr('__rhsjacobian__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, Jmat, Pmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 370, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":371 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(Ts, toReal(t), Xvec, Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 371, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 371, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 371, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":372 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, Jmat, Pmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_Jmat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Pmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pmat)); + PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_Pmat)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 372, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":373 + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":356 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_RHSJacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_RHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":377 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_IFunction( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IFunction(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_xdot, Vec __pyx_v_f, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_XDvec = 0; + struct PyPetscVecObject *__pyx_v_Fvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_function = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_IFunction", 0); + + /* "petsc4py/PETSc/petscts.pxi":385 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":386 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec Fvec = ref_Vec(f) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":387 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) # <<<<<<<<<<<<<< + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__ifunction__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":388 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec Fvec = ref_Vec(f) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__ifunction__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_f)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":389 + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__ifunction__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__ifunction__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":390 + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__ifunction__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":391 + * cdef object context = Ts.get_attr('__ifunction__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, Fvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 391, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":392 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context # <<<<<<<<<<<<<< + * function(Ts, toReal(t), Xvec, XDvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 392, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 392, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 392, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":393 + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, Fvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDvec)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_XDvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Fvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fvec)); + PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_Fvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 393, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":394 + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_IJacobian( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":377 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_IFunction( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_IFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Fvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":396 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_IJacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IJacobian(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_xdot, PetscReal __pyx_v_a, Mat __pyx_v_J, Mat __pyx_v_P, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_XDvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + struct PyPetscMatObject *__pyx_v_Pmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_IJacobian", 0); + + /* "petsc4py/PETSc/petscts.pxi":406 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":407 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":408 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":409 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__ijacobian__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":410 + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__ijacobian__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":411 + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__ijacobian__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__ijacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":412 + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__ijacobian__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":413 + * cdef object context = Ts.get_attr('__ijacobian__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, Pmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 413, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":414 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 414, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 414, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 414, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":415 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, Pmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(7); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_Jmat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Pmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pmat)); + PyTuple_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_v_Pmat)); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 415, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":416 + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_IJacobianP( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":396 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_IJacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_IJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":418 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_IJacobianP( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_IJacobianP(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_xdot, PetscReal __pyx_v_a, Mat __pyx_v_J, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_XDvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_IJacobianP", 0); + + /* "petsc4py/PETSc/petscts.pxi":427 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":428 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":429 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__ijacobianp__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":430 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__ijacobianp__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":431 + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__ijacobianp__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__ijacobianp__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":432 + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__ijacobianp__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":433 + * cdef object context = Ts.get_attr('__ijacobianp__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 433, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":434 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 434, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 434, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 434, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":435 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_v_Jmat)); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 435, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":436 + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, toReal(a), Jmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_I2Function( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":418 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_IJacobianP( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_IJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":438 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_I2Function( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_I2Function(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_xdot, Vec __pyx_v_xdotdot, Vec __pyx_v_f, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_XDvec = 0; + struct PyPetscVecObject *__pyx_v_XDDvec = 0; + struct PyPetscVecObject *__pyx_v_Fvec = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_function = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_I2Function", 0); + + /* "petsc4py/PETSc/petscts.pxi":447 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":448 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":449 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) # <<<<<<<<<<<<<< + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Vec Fvec = ref_Vec(f) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":450 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) # <<<<<<<<<<<<<< + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__i2function__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdotdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":451 + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Vec Fvec = ref_Vec(f) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__i2function__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_f)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":452 + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__i2function__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__i2function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":453 + * cdef Vec Fvec = ref_Vec(f) + * cdef object context = Ts.get_attr('__i2function__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":454 + * cdef object context = Ts.get_attr('__i2function__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, XDDvec, Fvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 454, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":455 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context # <<<<<<<<<<<<<< + * function(Ts, toReal(t), Xvec, XDvec, XDDvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 455, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 455, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 455, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":456 + * assert context is not None and type(context) is tuple # sanity check + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, XDDvec, Fvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDvec)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_XDvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDDvec)); + PyTuple_SET_ITEM(__pyx_t_5, 4, ((PyObject *)__pyx_v_XDDvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Fvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fvec)); + PyTuple_SET_ITEM(__pyx_t_5, 5, ((PyObject *)__pyx_v_Fvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 456, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_function, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 456, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":457 + * (function, args, kargs) = context + * function(Ts, toReal(t), Xvec, XDvec, XDDvec, Fvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_I2Jacobian( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":438 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_I2Function( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_I2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Fvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":459 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_I2Jacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_I2Jacobian(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Vec __pyx_v_xdot, Vec __pyx_v_xdotdot, PetscReal __pyx_v_v, PetscReal __pyx_v_a, Mat __pyx_v_J, Mat __pyx_v_P, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscVecObject *__pyx_v_XDvec = 0; + struct PyPetscVecObject *__pyx_v_XDDvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + struct PyPetscMatObject *__pyx_v_Pmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_I2Jacobian", 0); + + /* "petsc4py/PETSc/petscts.pxi":471 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":472 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":473 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) # <<<<<<<<<<<<<< + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":474 + * cdef Vec Xvec = ref_Vec(x) + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_xdotdot)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_XDDvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":475 + * cdef Vec XDvec = ref_Vec(xdot) + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__i2jacobian__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":476 + * cdef Vec XDDvec = ref_Vec(xdotdot) + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__i2jacobian__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Pmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":477 + * cdef Mat Jmat = ref_Mat(J) + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__i2jacobian__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__i2jacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":478 + * cdef Mat Pmat = ref_Mat(P) + * cdef object context = Ts.get_attr('__i2jacobian__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":479 + * cdef object context = Ts.get_attr('__i2jacobian__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, XDDvec, toReal(v), toReal(a), Jmat, Pmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 479, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":480 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(Ts, toReal(t), Xvec, XDvec, XDDvec, toReal(v), toReal(a), Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 480, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 480, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 480, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":481 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, XDDvec, toReal(v), toReal(a), Jmat, Pmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_v); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyTuple_New(9); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDvec)); + PyTuple_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_v_XDvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_XDDvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_XDDvec)); + PyTuple_SET_ITEM(__pyx_t_7, 4, ((PyObject *)__pyx_v_XDDvec)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_7, 7, ((PyObject *)__pyx_v_Jmat)); + __Pyx_INCREF(((PyObject *)__pyx_v_Pmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Pmat)); + PyTuple_SET_ITEM(__pyx_t_7, 8, ((PyObject *)__pyx_v_Pmat)); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 481, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscts.pxi":482 + * (jacobian, args, kargs) = context + * jacobian(Ts, toReal(t), Xvec, XDvec, XDDvec, toReal(v), toReal(a), Jmat, Pmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":459 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_I2Jacobian( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_I2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_XDDvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF((PyObject *)__pyx_v_Pmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":486 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_Monitor( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt step, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_Monitor(TS __pyx_v_ts, PetscInt __pyx_v_step, PetscReal __pyx_v_time, Vec __pyx_v_u, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Vu = 0; + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_monitor = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_Monitor", 0); + + /* "petsc4py/PETSc/petscts.pxi":493 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Vu = ref_Vec(u) + * cdef object monitorlist = Ts.get_attr('__monitor__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":494 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) # <<<<<<<<<<<<<< + * cdef object monitorlist = Ts.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_u)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vu = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":495 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) + * cdef object monitorlist = Ts.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_monitorlist = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":496 + * cdef Vec Vu = ref_Vec(u) + * cdef object monitorlist = Ts.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * for (monitor, args, kargs) in monitorlist: + * monitor(Ts, toInt(step), toReal(time), Vu, *args, **kargs) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscts.pxi":497 + * cdef object monitorlist = Ts.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Ts, toInt(step), toReal(time), Vu, *args, **kargs) + * return PETSC_SUCCESS + */ + if (likely(PyList_CheckExact(__pyx_v_monitorlist)) || PyTuple_CheckExact(__pyx_v_monitorlist)) { + __pyx_t_1 = __pyx_v_monitorlist; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_monitorlist); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 497, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(24, 497, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(24, 497, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } + } else { + __pyx_t_6 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(24, 497, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_6); + } + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 497, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(24, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(24, 497, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 497, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_monitor, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscts.pxi":498 + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + * monitor(Ts, toInt(step), toReal(time), Vu, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_step); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_time); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9); + __Pyx_INCREF(((PyObject *)__pyx_v_Vu)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vu)); + PyTuple_SET_ITEM(__pyx_t_8, 3, ((PyObject *)__pyx_v_Vu)); + __pyx_t_6 = 0; + __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 498, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_9 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { + __pyx_t_9 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_monitor, __pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(24, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscts.pxi":497 + * cdef object monitorlist = Ts.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(Ts, toInt(step), toReal(time), Vu, *args, **kargs) + * return PETSC_SUCCESS + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":499 + * for (monitor, args, kargs) in monitorlist: + * monitor(Ts, toInt(step), toReal(time), Vu, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":486 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_Monitor( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt step, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.TS_Monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Vu); + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_monitor); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":503 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_EventHandler( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal time, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_EventHandler(TS __pyx_v_ts, PetscReal __pyx_v_time, Vec __pyx_v_u, PetscScalar *__pyx_v_fvalue, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Vu = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_eventhandler = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscInt __pyx_v_nevents; + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_fvalue_array = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_EventHandler", 0); + + /* "petsc4py/PETSc/petscts.pxi":510 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__eventhandler__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":511 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__eventhandler__') + * if context is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_u)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vu = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":512 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__eventhandler__') # <<<<<<<<<<<<<< + * if context is None: return PETSC_SUCCESS + * (eventhandler, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__eventhandler__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":513 + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__eventhandler__') + * if context is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * (eventhandler, args, kargs) = context + * cdef PetscInt nevents = 0 + */ + __pyx_t_2 = (__pyx_v_context == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscts.pxi":514 + * cdef object context = Ts.get_attr('__eventhandler__') + * if context is None: return PETSC_SUCCESS + * (eventhandler, args, kargs) = context # <<<<<<<<<<<<<< + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(ts, &nevents) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 514, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + __pyx_t_5 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(24, 514, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 514, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __pyx_v_eventhandler = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_kargs = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":515 + * if context is None: return PETSC_SUCCESS + * (eventhandler, args, kargs) = context + * cdef PetscInt nevents = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetNumEvents(ts, &nevents) ) + * cdef npy_intp s = nevents + */ + __pyx_v_nevents = 0; + + /* "petsc4py/PETSc/petscts.pxi":516 + * (eventhandler, args, kargs) = context + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(ts, &nevents) ) # <<<<<<<<<<<<<< + * cdef npy_intp s = nevents + * fvalue_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_SCALAR, fvalue) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetNumEvents(__pyx_v_ts, (&__pyx_v_nevents))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(24, 516, __pyx_L1_error) + + /* "petsc4py/PETSc/petscts.pxi":517 + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(ts, &nevents) ) + * cdef npy_intp s = nevents # <<<<<<<<<<<<<< + * fvalue_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_SCALAR, fvalue) + * eventhandler(Ts, toReal(time), Vu, fvalue_array, *args, **kargs) + */ + __pyx_v_s = ((npy_intp)__pyx_v_nevents); + + /* "petsc4py/PETSc/petscts.pxi":518 + * CHKERR( TSGetNumEvents(ts, &nevents) ) + * cdef npy_intp s = nevents + * fvalue_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_SCALAR, fvalue) # <<<<<<<<<<<<<< + * eventhandler(Ts, toReal(time), Vu, fvalue_array, *args, **kargs) + * return PETSC_SUCCESS + */ + __pyx_t_5 = ((PyObject *)PyArray_SimpleNewFromData(1, (&__pyx_v_s), NPY_PETSC_SCALAR, __pyx_v_fvalue)); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_fvalue_array = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":519 + * cdef npy_intp s = nevents + * fvalue_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_SCALAR, fvalue) + * eventhandler(Ts, toReal(time), Vu, fvalue_array, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Vu)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vu)); + PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_Vu)); + __Pyx_INCREF(((PyObject *)__pyx_v_fvalue_array)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_fvalue_array)); + PyTuple_SET_ITEM(__pyx_t_4, 3, ((PyObject *)__pyx_v_fvalue_array)); + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 519, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_v_eventhandler, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscts.pxi":520 + * fvalue_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_SCALAR, fvalue) + * eventhandler(Ts, toReal(time), Vu, fvalue_array, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_PostEvent( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":503 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_EventHandler( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal time, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TS_EventHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Vu); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_eventhandler); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF((PyObject *)__pyx_v_fvalue_array); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":522 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PostEvent( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt nevents_zero, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PostEvent(TS __pyx_v_ts, PetscInt __pyx_v_nevents_zero, PetscInt *__pyx_v_events_zero, PetscReal __pyx_v_time, Vec __pyx_v_u, PetscBool __pyx_v_forward, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Vu = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_postevent = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + npy_intp __pyx_v_s; + PyArrayObject *__pyx_v_events_zero_array = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_PostEvent", 0); + + /* "petsc4py/PETSc/petscts.pxi":531 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__postevent__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":532 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__postevent__') + * if context is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_u)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Vu = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":533 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__postevent__') # <<<<<<<<<<<<<< + * if context is None: return PETSC_SUCCESS + * (postevent, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__postevent__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":534 + * cdef Vec Vu = ref_Vec(u) + * cdef object context = Ts.get_attr('__postevent__') + * if context is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * (postevent, args, kargs) = context + * cdef npy_intp s = nevents_zero + */ + __pyx_t_2 = (__pyx_v_context == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscts.pxi":535 + * cdef object context = Ts.get_attr('__postevent__') + * if context is None: return PETSC_SUCCESS + * (postevent, args, kargs) = context # <<<<<<<<<<<<<< + * cdef npy_intp s = nevents_zero + * events_zero_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_INT, events_zero) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 535, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + __pyx_t_5 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) __PYX_ERR(24, 535, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 535, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __pyx_v_postevent = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_kargs = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":536 + * if context is None: return PETSC_SUCCESS + * (postevent, args, kargs) = context + * cdef npy_intp s = nevents_zero # <<<<<<<<<<<<<< + * events_zero_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_INT, events_zero) + * postevent(Ts, events_zero_array, toReal(time), Vu, toBool(forward), *args, **kargs) + */ + __pyx_v_s = ((npy_intp)__pyx_v_nevents_zero); + + /* "petsc4py/PETSc/petscts.pxi":537 + * (postevent, args, kargs) = context + * cdef npy_intp s = nevents_zero + * events_zero_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_INT, events_zero) # <<<<<<<<<<<<<< + * postevent(Ts, events_zero_array, toReal(time), Vu, toBool(forward), *args, **kargs) + * return PETSC_SUCCESS + */ + __pyx_t_5 = ((PyObject *)PyArray_SimpleNewFromData(1, (&__pyx_v_s), NPY_PETSC_INT, __pyx_v_events_zero)); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_events_zero_array = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":538 + * cdef npy_intp s = nevents_zero + * events_zero_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_INT, events_zero) + * postevent(Ts, events_zero_array, toReal(time), Vu, toBool(forward), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_time); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_forward); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyTuple_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_INCREF(((PyObject *)__pyx_v_events_zero_array)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_events_zero_array)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_events_zero_array)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Vu)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Vu)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_Vu)); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 4, __pyx_t_4); + __pyx_t_5 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 538, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_4 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + __pyx_t_4 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_postevent, __pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":539 + * events_zero_array = PyArray_SimpleNewFromData(1, &s, NPY_PETSC_INT, events_zero) + * postevent(Ts, events_zero_array, toReal(time), Vu, toBool(forward), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_PreStep( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":522 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PostEvent( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt nevents_zero, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TS_PostEvent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Vu); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_postevent); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF((PyObject *)__pyx_v_events_zero_array); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":541 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PreStep( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PreStep(TS __pyx_v_ts) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + PyObject *__pyx_v_prestep = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_PreStep", 0); + + /* "petsc4py/PETSc/petscts.pxi":544 + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * (prestep, args, kargs) = Ts.get_attr('__prestep__') + * prestep(Ts, *args, **kargs) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":545 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * (prestep, args, kargs) = Ts.get_attr('__prestep__') # <<<<<<<<<<<<<< + * prestep(Ts, *args, **kargs) + * return PETSC_SUCCESS + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__prestep__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 545, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(24, 545, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 545, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_prestep = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_kargs = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscts.pxi":546 + * cdef TS Ts = ref_TS(ts) + * (prestep, args, kargs) = Ts.get_attr('__prestep__') + * prestep(Ts, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Ts)); + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 546, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_4 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + __pyx_t_4 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_prestep, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":547 + * (prestep, args, kargs) = Ts.get_attr('__prestep__') + * prestep(Ts, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TS_PostStep( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":541 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PreStep( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS_PreStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF(__pyx_v_prestep); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":549 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PostStep( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_PostStep(TS __pyx_v_ts) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + PyObject *__pyx_v_poststep = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_PostStep", 0); + + /* "petsc4py/PETSc/petscts.pxi":552 + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * (poststep, args, kargs) = Ts.get_attr('__poststep__') + * poststep(Ts, *args, **kargs) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":553 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * (poststep, args, kargs) = Ts.get_attr('__poststep__') # <<<<<<<<<<<<<< + * poststep(Ts, *args, **kargs) + * return PETSC_SUCCESS + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__poststep__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 553, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(24, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(24, 553, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 553, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_poststep = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_kargs = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscts.pxi":554 + * cdef TS Ts = ref_TS(ts) + * (poststep, args, kargs) = Ts.get_attr('__poststep__') + * poststep(Ts, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Ts)); + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 554, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_4 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } else { + __pyx_t_4 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_poststep, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":555 + * (poststep, args, kargs) = Ts.get_attr('__poststep__') + * poststep(Ts, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":549 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TS_PostStep( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS_PostStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF(__pyx_v_poststep); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscts.pxi":559 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_RHSJacobianP( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TS_RHSJacobianP(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, Mat __pyx_v_J, void *__pyx_v_ctx) { + struct PyPetscTSObject *__pyx_v_Ts = 0; + struct PyPetscVecObject *__pyx_v_Xvec = 0; + struct PyPetscMatObject *__pyx_v_Jmat = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_jacobianp = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TS_RHSJacobianP", 0); + + /* "petsc4py/PETSc/petscts.pxi":566 + * void* ctx, + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) # <<<<<<<<<<<<<< + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":567 + * ) except PETSC_ERR_PYTHON with gil: + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) # <<<<<<<<<<<<<< + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__rhsjacobianp__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Xvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":568 + * cdef TS Ts = ref_TS(ts) + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) # <<<<<<<<<<<<<< + * cdef object context = Ts.get_attr('__rhsjacobianp__') + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Jmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":569 + * cdef Vec Xvec = ref_Vec(x) + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__rhsjacobianp__') # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_Ts->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Ts), ((char *)"__rhsjacobianp__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscts.pxi":570 + * cdef Mat Jmat = ref_Mat(J) + * cdef object context = Ts.get_attr('__rhsjacobianp__') + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobianp, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petscts.pxi":571 + * cdef object context = Ts.get_attr('__rhsjacobianp__') + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobianp, args, kargs) = context + * jacobianp(Ts, toReal(t), Xvec, Jmat, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(24, 571, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscts.pxi":572 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobianp, args, kargs) = context # <<<<<<<<<<<<<< + * jacobianp(Ts, toReal(t), Xvec, Jmat, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(24, 572, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(24, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(24, 572, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(24, 572, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobianp = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscts.pxi":573 + * assert context is not None and type(context) is tuple # sanity check + * (jacobianp, args, kargs) = context + * jacobianp(Ts, toReal(t), Xvec, Jmat, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Ts)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_Ts)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Xvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Xvec)); + PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_Xvec)); + __Pyx_INCREF(((PyObject *)__pyx_v_Jmat)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Jmat)); + PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_Jmat)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(24, 573, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_jacobianp, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(24, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscts.pxi":574 + * (jacobianp, args, kargs) = context + * jacobianp(Ts, toReal(t), Xvec, Jmat, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscts.pxi":559 + * # ----------------------------------------------------------------------------- + * + * cdef PetscErrorCode TS_RHSJacobianP( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TS_RHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Ts); + __Pyx_XDECREF((PyObject *)__pyx_v_Xvec); + __Pyx_XDECREF((PyObject *)__pyx_v_Jmat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobianp); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":187 + * # -------------------------------------------------------------------- + * + * cdef inline TAO ref_TAO(PetscTAO tao): # <<<<<<<<<<<<<< + * cdef TAO ob = TAO() + * ob.tao = tao + */ + +static CYTHON_INLINE struct PyPetscTAOObject *__pyx_f_8petsc4py_5PETSc_ref_TAO(Tao __pyx_v_tao) { + struct PyPetscTAOObject *__pyx_v_ob = 0; + struct PyPetscTAOObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_TAO", 0); + + /* "petsc4py/PETSc/petsctao.pxi":188 + * + * cdef inline TAO ref_TAO(PetscTAO tao): + * cdef TAO ob = TAO() # <<<<<<<<<<<<<< + * ob.tao = tao + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscTAOObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":189 + * cdef inline TAO ref_TAO(PetscTAO tao): + * cdef TAO ob = TAO() + * ob.tao = tao # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->tao = __pyx_v_tao; + + /* "petsc4py/PETSc/petsctao.pxi":190 + * cdef TAO ob = TAO() + * ob.tao = tao + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petsctao.pxi":191 + * ob.tao = tao + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":187 + * # -------------------------------------------------------------------- + * + * cdef inline TAO ref_TAO(PetscTAO tao): # <<<<<<<<<<<<<< + * cdef TAO ob = TAO() + * ob.tao = tao + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_TAO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":195 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode TAO_Objective(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Objective(Tao __pyx_v__tao, Vec __pyx_v__x, PetscReal *__pyx_v__f, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_objective = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_retv = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscReal __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Objective", 0); + + /* "petsc4py/PETSc/petsctao.pxi":199 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * context = tao.get_attr("__objective__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":200 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * context = tao.get_attr("__objective__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":201 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * context = tao.get_attr("__objective__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__objective__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":202 + * cdef Vec x = ref_Vec(_x) + * context = tao.get_attr("__objective__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":203 + * context = tao.get_attr("__objective__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (objective, args, kargs) = context + * retv = objective(tao, x, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 203, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":204 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context # <<<<<<<<<<<<<< + * retv = objective(tao, x, *args, **kargs) + * _f[0] = asReal(retv) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 204, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 204, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 204, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_objective = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":205 + * assert context is not None and type(context) is tuple # sanity check + * (objective, args, kargs) = context + * retv = objective(tao, x, *args, **kargs) # <<<<<<<<<<<<<< + * _f[0] = asReal(retv) + * return PETSC_SUCCESS + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 205, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_objective, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_retv = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":206 + * (objective, args, kargs) = context + * retv = objective(tao, x, *args, **kargs) + * _f[0] = asReal(retv) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_retv); if (unlikely(__pyx_t_9 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(25, 206, __pyx_L1_error) + (__pyx_v__f[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petsctao.pxi":207 + * retv = objective(tao, x, *args, **kargs) + * _f[0] = asReal(retv) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Residual(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":195 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode TAO_Objective(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Objective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_objective); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_retv); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":209 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Residual(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _r, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Residual(Tao __pyx_v__tao, Vec __pyx_v__x, Vec __pyx_v__r, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_r = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_residual = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Residual", 0); + + /* "petsc4py/PETSc/petsctao.pxi":213 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":214 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__residual__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":215 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) # <<<<<<<<<<<<<< + * context = tao.get_attr("__residual__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_r = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":216 + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__residual__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__residual__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":217 + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__residual__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (residual, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":218 + * context = tao.get_attr("__residual__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (residual, args, kargs) = context + * residual(tao, x, r, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 218, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":219 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (residual, args, kargs) = context # <<<<<<<<<<<<<< + * residual(tao, x, r, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 219, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 219, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 219, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_residual = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":220 + * assert context is not None and type(context) is tuple # sanity check + * (residual, args, kargs) = context + * residual(tao, x, r, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_r)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_r)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_r)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 220, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_residual, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":221 + * (residual, args, kargs) = context + * residual(tao, x, r, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Gradient(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":209 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Residual(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _r, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Residual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_residual); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":223 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Gradient(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Gradient(Tao __pyx_v__tao, Vec __pyx_v__x, Vec __pyx_v__g, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_gradient = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Gradient", 0); + + /* "petsc4py/PETSc/petsctao.pxi":227 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":228 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__gradient__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":229 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) # <<<<<<<<<<<<<< + * context = tao.get_attr("__gradient__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__g)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_g = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":230 + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__gradient__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__gradient__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":231 + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__gradient__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (gradient, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":232 + * context = tao.get_attr("__gradient__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (gradient, args, kargs) = context + * gradient(tao, x, g, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 232, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":233 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (gradient, args, kargs) = context # <<<<<<<<<<<<<< + * gradient(tao, x, g, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 233, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 233, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 233, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_gradient = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":234 + * assert context is not None and type(context) is tuple # sanity check + * (gradient, args, kargs) = context + * gradient(tao, x, g, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_g)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_g)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_g)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 234, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_gradient, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":235 + * (gradient, args, kargs) = context + * gradient(tao, x, g, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":223 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Gradient(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Gradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_g); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_gradient); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":238 + * + * + * cdef PetscErrorCode TAO_ObjGrad(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_ObjGrad(Tao __pyx_v__tao, Vec __pyx_v__x, PetscReal *__pyx_v__f, Vec __pyx_v__g, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_objgrad = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_retv = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscReal __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_ObjGrad", 0); + + /* "petsc4py/PETSc/petsctao.pxi":242 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":243 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__objgrad__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":244 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) # <<<<<<<<<<<<<< + * context = tao.get_attr("__objgrad__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__g)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_g = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":245 + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__objgrad__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__objgrad__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":246 + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__objgrad__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":247 + * context = tao.get_attr("__objgrad__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 247, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":248 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context # <<<<<<<<<<<<<< + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 248, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 248, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 248, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_objgrad = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":249 + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) # <<<<<<<<<<<<<< + * _f[0] = asReal(retv) + * return PETSC_SUCCESS + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_g)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_g)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_g)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 249, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_objgrad, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_retv = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":250 + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_retv); if (unlikely(__pyx_t_9 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(25, 250, __pyx_L1_error) + (__pyx_v__f[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petsctao.pxi":251 + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_BRGNRegObjGrad(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":238 + * + * + * cdef PetscErrorCode TAO_ObjGrad(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_ObjGrad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_g); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_objgrad); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_retv); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":253 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_BRGNRegObjGrad(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegObjGrad(Tao __pyx_v__tao, Vec __pyx_v__x, PetscReal *__pyx_v__f, Vec __pyx_v__g, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_objgrad = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_retv = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PetscReal __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_BRGNRegObjGrad", 0); + + /* "petsc4py/PETSc/petsctao.pxi":257 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":258 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__brgnregobjgrad__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":259 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) # <<<<<<<<<<<<<< + * context = tao.get_attr("__brgnregobjgrad__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__g)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_g = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":260 + * cdef Vec x = ref_Vec(_x) + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__brgnregobjgrad__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__brgnregobjgrad__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":261 + * cdef Vec g = ref_Vec(_g) + * context = tao.get_attr("__brgnregobjgrad__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":262 + * context = tao.get_attr("__brgnregobjgrad__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 262, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":263 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context # <<<<<<<<<<<<<< + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 263, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 263, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 263, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_objgrad = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":264 + * assert context is not None and type(context) is tuple # sanity check + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) # <<<<<<<<<<<<<< + * _f[0] = asReal(retv) + * return PETSC_SUCCESS + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_g)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_g)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_g)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 264, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_objgrad, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_retv = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":265 + * (objgrad, args, kargs) = context + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_retv); if (unlikely(__pyx_t_9 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(25, 265, __pyx_L1_error) + (__pyx_v__f[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petsctao.pxi":266 + * retv = objgrad(tao, x, g, *args, **kargs) + * _f[0] = asReal(retv) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Constraints(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":253 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_BRGNRegObjGrad(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscReal *_f, PetscVec _g, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_BRGNRegObjGrad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_g); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_objgrad); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_retv); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":268 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Constraints(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _r, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Constraints(Tao __pyx_v__tao, Vec __pyx_v__x, Vec __pyx_v__r, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_r = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_constraints = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Constraints", 0); + + /* "petsc4py/PETSc/petsctao.pxi":272 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":273 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__constraints__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":274 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) # <<<<<<<<<<<<<< + * context = tao.get_attr("__constraints__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__r)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_r = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":275 + * cdef Vec x = ref_Vec(_x) + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__constraints__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__constraints__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":276 + * cdef Vec r = ref_Vec(_r) + * context = tao.get_attr("__constraints__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (constraints, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":277 + * context = tao.get_attr("__constraints__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (constraints, args, kargs) = context + * constraints(tao, x, r, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 277, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":278 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (constraints, args, kargs) = context # <<<<<<<<<<<<<< + * constraints(tao, x, r, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 278, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 278, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 278, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_constraints = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":279 + * assert context is not None and type(context) is tuple # sanity check + * (constraints, args, kargs) = context + * constraints(tao, x, r, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_r)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_r)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_r)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 279, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_constraints, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":280 + * (constraints, args, kargs) = context + * constraints(tao, x, r, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_VarBounds(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":268 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Constraints(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, PetscVec _r, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Constraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_constraints); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":282 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_VarBounds(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _xl, PetscVec _xu, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_VarBounds(Tao __pyx_v__tao, Vec __pyx_v__xl, Vec __pyx_v__xu, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_varbounds = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_VarBounds", 0); + + /* "petsc4py/PETSc/petsctao.pxi":286 + * void *ctx) except PETSC_ERR_PYTHON with gil: + * + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec xl = ref_Vec(_xl) + * cdef Vec xu = ref_Vec(_xu) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":287 + * + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec xl = ref_Vec(_xl) # <<<<<<<<<<<<<< + * cdef Vec xu = ref_Vec(_xu) + * context = tao.get_attr("__varbounds__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__xl)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":288 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec xl = ref_Vec(_xl) + * cdef Vec xu = ref_Vec(_xu) # <<<<<<<<<<<<<< + * context = tao.get_attr("__varbounds__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__xu)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xu = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":289 + * cdef Vec xl = ref_Vec(_xl) + * cdef Vec xu = ref_Vec(_xu) + * context = tao.get_attr("__varbounds__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__varbounds__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":290 + * cdef Vec xu = ref_Vec(_xu) + * context = tao.get_attr("__varbounds__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (varbounds, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":291 + * context = tao.get_attr("__varbounds__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (varbounds, args, kargs) = context + * varbounds(tao, xl, xu, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 291, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":292 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (varbounds, args, kargs) = context # <<<<<<<<<<<<<< + * varbounds(tao, xl, xu, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 292, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 292, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 292, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_varbounds = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":293 + * assert context is not None and type(context) is tuple # sanity check + * (varbounds, args, kargs) = context + * varbounds(tao, xl, xu, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_xl)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_xl)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_xl)); + __Pyx_INCREF(((PyObject *)__pyx_v_xu)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_xu)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_xu)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 293, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_varbounds, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":294 + * (varbounds, args, kargs) = context + * varbounds(tao, xl, xu, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Hessian(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":282 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_VarBounds(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _xl, PetscVec _xu, + * void *ctx) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_VarBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_xl); + __Pyx_XDECREF((PyObject *)__pyx_v_xu); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_varbounds); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":296 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Hessian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _H, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Hessian(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__H, Mat __pyx_v__P, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_H = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_hessian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Hessian", 0); + + /* "petsc4py/PETSc/petsctao.pxi":301 + * PetscMat _P, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":302 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat H = ref_Mat(_H) + * cdef Mat P = ref_Mat(_P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":303 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) # <<<<<<<<<<<<<< + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__hessian__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__H)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_H = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":304 + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) + * cdef Mat P = ref_Mat(_P) # <<<<<<<<<<<<<< + * context = tao.get_attr("__hessian__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":305 + * cdef Mat H = ref_Mat(_H) + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__hessian__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__hessian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":306 + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__hessian__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":307 + * context = tao.get_attr("__hessian__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (hessian, args, kargs) = context + * hessian(tao, x, H, P, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 307, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":308 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context # <<<<<<<<<<<<<< + * hessian(tao, x, H, P, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 308, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 308, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 308, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_hessian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":309 + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context + * hessian(tao, x, H, P, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_H)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_H)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_H)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_P)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 309, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_hessian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":310 + * (hessian, args, kargs) = context + * hessian(tao, x, H, P, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_BRGNRegHessian(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":296 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Hessian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _H, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Hessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_H); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_hessian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":312 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_BRGNRegHessian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _H, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegHessian(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__H, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_H = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_hessian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_BRGNRegHessian", 0); + + /* "petsc4py/PETSc/petsctao.pxi":316 + * PetscMat _H, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":317 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat H = ref_Mat(_H) + * context = tao.get_attr("__brgnreghessian__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":318 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) # <<<<<<<<<<<<<< + * context = tao.get_attr("__brgnreghessian__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__H)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_H = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":319 + * cdef Vec x = ref_Vec(_x) + * cdef Mat H = ref_Mat(_H) + * context = tao.get_attr("__brgnreghessian__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__brgnreghessian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":320 + * cdef Mat H = ref_Mat(_H) + * context = tao.get_attr("__brgnreghessian__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":321 + * context = tao.get_attr("__brgnreghessian__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (hessian, args, kargs) = context + * hessian(tao, x, H, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 321, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":322 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context # <<<<<<<<<<<<<< + * hessian(tao, x, H, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 322, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 322, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 322, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_hessian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":323 + * assert context is not None and type(context) is tuple # sanity check + * (hessian, args, kargs) = context + * hessian(tao, x, H, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_H)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_H)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_H)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 323, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_hessian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":324 + * (hessian, args, kargs) = context + * hessian(tao, x, H, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Jacobian(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":312 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_BRGNRegHessian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _H, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_BRGNRegHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_H); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_hessian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":326 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Jacobian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Jacobian(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__J, Mat __pyx_v__P, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Jacobian", 0); + + /* "petsc4py/PETSc/petsctao.pxi":331 + * PetscMat _P, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":332 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":333 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) # <<<<<<<<<<<<<< + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":334 + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) # <<<<<<<<<<<<<< + * context = tao.get_attr("__jacobian__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":335 + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__jacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":336 + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":337 + * context = tao.get_attr("__jacobian__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 337, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":338 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 338, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 338, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 338, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":339 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_P)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 339, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":340 + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_JacobianResidual(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":326 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Jacobian(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":342 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianResidual(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianResidual(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__J, Mat __pyx_v__P, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_JacobianResidual", 0); + + /* "petsc4py/PETSc/petsctao.pxi":347 + * PetscMat _P, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":348 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":349 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) # <<<<<<<<<<<<<< + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_residual__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 349, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":350 + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) # <<<<<<<<<<<<<< + * context = tao.get_attr("__jacobian_residual__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":351 + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_residual__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__jacobian_residual__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":352 + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_residual__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":353 + * context = tao.get_attr("__jacobian_residual__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 353, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":354 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 354, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 354, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 354, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":355 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_P)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 355, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":356 + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_JacobianState(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":342 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianResidual(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_JacobianResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":358 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianState(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianState(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__J, Mat __pyx_v__P, Mat __pyx_v__I, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + struct PyPetscMatObject *__pyx_v_I = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_JacobianState", 0); + + /* "petsc4py/PETSc/petsctao.pxi":364 + * PetscMat _I, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":365 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":366 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) # <<<<<<<<<<<<<< + * cdef Mat P = ref_Mat(_P) + * cdef Mat I = ref_Mat(_I) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":367 + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) # <<<<<<<<<<<<<< + * cdef Mat I = ref_Mat(_I) + * context = tao.get_attr("__jacobian_state__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":368 + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + * cdef Mat I = ref_Mat(_I) # <<<<<<<<<<<<<< + * context = tao.get_attr("__jacobian_state__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__I)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_I = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":369 + * cdef Mat P = ref_Mat(_P) + * cdef Mat I = ref_Mat(_I) + * context = tao.get_attr("__jacobian_state__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__jacobian_state__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":370 + * cdef Mat I = ref_Mat(_I) + * context = tao.get_attr("__jacobian_state__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":371 + * context = tao.get_attr("__jacobian_state__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, I, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 371, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":372 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(tao, x, J, P, I, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 372, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 372, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 372, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":373 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, I, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(((PyObject *)__pyx_v_I)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_I)); + PyTuple_SET_ITEM(__pyx_t_6, 4, ((PyObject *)__pyx_v_I)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 373, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":374 + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, I, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_JacobianDesign(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":358 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianState(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_JacobianState", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF((PyObject *)__pyx_v_I); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":376 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianDesign(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianDesign(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__J, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_JacobianDesign", 0); + + /* "petsc4py/PETSc/petsctao.pxi":380 + * PetscMat _J, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":381 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat J = ref_Mat(_J) + * context = tao.get_attr("__jacobian_design__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":382 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) # <<<<<<<<<<<<<< + * context = tao.get_attr("__jacobian_design__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":383 + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + * context = tao.get_attr("__jacobian_design__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__jacobian_design__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":384 + * cdef Mat J = ref_Mat(_J) + * context = tao.get_attr("__jacobian_design__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":385 + * context = tao.get_attr("__jacobian_design__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 385, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":386 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(tao, x, J, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 386, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 386, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 386, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":387 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_J)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 387, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":388 + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_EqualityConstraints(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":376 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianDesign(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_JacobianDesign", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":390 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_EqualityConstraints(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscVec _c, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_EqualityConstraints(Tao __pyx_v__tao, Vec __pyx_v__x, Vec __pyx_v__c, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_c = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_f = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_EqualityConstraints", 0); + + /* "petsc4py/PETSc/petsctao.pxi":394 + * PetscVec _c, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Vec c = ref_Vec(_c) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":395 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Vec c = ref_Vec(_c) + * context = tao.get_attr("__equality_constraints__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":396 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Vec c = ref_Vec(_c) # <<<<<<<<<<<<<< + * context = tao.get_attr("__equality_constraints__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_c = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":397 + * cdef Vec x = ref_Vec(_x) + * cdef Vec c = ref_Vec(_c) + * context = tao.get_attr("__equality_constraints__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__equality_constraints__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":398 + * cdef Vec c = ref_Vec(_c) + * context = tao.get_attr("__equality_constraints__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (f, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":399 + * context = tao.get_attr("__equality_constraints__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (f, args, kargs) = context + * f(tao, x, c, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 399, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":400 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (f, args, kargs) = context # <<<<<<<<<<<<<< + * f(tao, x, c, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 400, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 400, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 400, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 400, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_f = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":401 + * assert context is not None and type(context) is tuple # sanity check + * (f, args, kargs) = context + * f(tao, x, c, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_c)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_c)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_c)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 401, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_f, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":402 + * (f, args, kargs) = context + * f(tao, x, c, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_JacobianEquality(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":390 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_EqualityConstraints(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscVec _c, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_EqualityConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_f); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":404 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianEquality(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_JacobianEquality(Tao __pyx_v__tao, Vec __pyx_v__x, Mat __pyx_v__J, Mat __pyx_v__P, void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_jacobian = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_JacobianEquality", 0); + + /* "petsc4py/PETSc/petsctao.pxi":409 + * PetscMat _P, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":410 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) # <<<<<<<<<<<<<< + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v__x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_x = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":411 + * cdef TAO tao = ref_TAO(_tao) + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) # <<<<<<<<<<<<<< + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_equality__") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__J)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":412 + * cdef Vec x = ref_Vec(_x) + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) # <<<<<<<<<<<<<< + * context = tao.get_attr("__jacobian_equality__") + * if context is None and ctx != NULL: context = ctx + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v__P)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":413 + * cdef Mat J = ref_Mat(_J) + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_equality__") # <<<<<<<<<<<<<< + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__jacobian_equality__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":414 + * cdef Mat P = ref_Mat(_P) + * context = tao.get_attr("__jacobian_equality__") + * if context is None and ctx != NULL: context = ctx # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + */ + __pyx_t_3 = (__pyx_v_context == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_ctx != NULL) != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_context, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/petsctao.pxi":415 + * context = tao.get_attr("__jacobian_equality__") + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_3 != 0); + __pyx_t_2 = __pyx_t_4; + __pyx_L6_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 415, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":416 + * if context is None and ctx != NULL: context = ctx + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context # <<<<<<<<<<<<<< + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 416, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 416, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 416, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":417 + * assert context is not None and type(context) is tuple # sanity check + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_x)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_x)); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_v_P)); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 417, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_jacobian, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":418 + * (jacobian, args, kargs) = context + * jacobian(tao, x, J, P, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # ctx is unused + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":404 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_JacobianEquality(PetscTAO _tao, # <<<<<<<<<<<<<< + * PetscVec _x, + * PetscMat _J, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_JacobianEquality", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":421 + * + * # ctx is unused + * cdef PetscErrorCode TAO_Update( # <<<<<<<<<<<<<< + * PetscTAO _tao, + * PetscInt its, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Update(Tao __pyx_v__tao, PetscInt __pyx_v_its, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_update = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Update", 0); + + /* "petsc4py/PETSc/petsctao.pxi":425 + * PetscInt its, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef object context = tao.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":426 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef object context = tao.get_attr('__update__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__update__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":427 + * cdef TAO tao = ref_TAO(_tao) + * cdef object context = tao.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check # <<<<<<<<<<<<<< + * (update, args, kargs) = context + * update(tao, toInt(its), *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = (__pyx_v_context != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_3 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 427, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":428 + * cdef object context = tao.get_attr('__update__') + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context # <<<<<<<<<<<<<< + * update(tao, toInt(its), *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 428, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 428, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 428, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_update = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":429 + * assert context is not None and type(context) is tuple # sanity check + * (update, args, kargs) = context + * update(tao, toInt(its), *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 429, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_v_update, __pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":430 + * (update, args, kargs) = context + * update(tao, toInt(its), *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":421 + * + * # ctx is unused + * cdef PetscErrorCode TAO_Update( # <<<<<<<<<<<<<< + * PetscTAO _tao, + * PetscInt its, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Update", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_update); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":433 + * + * + * cdef PetscErrorCode TAO_Converged(PetscTAO _tao, # <<<<<<<<<<<<<< + * void* ctx) except PETSC_ERR_PYTHON with gil: + * # call first the default convergence test + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Converged(Tao __pyx_v__tao, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + PyObject *__pyx_v_converged = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_reason = NULL; + TaoConvergedReason __pyx_v_creason; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_t_9; + int __pyx_t_10; + int __pyx_t_11; + TaoConvergedReason __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Converged", 0); + + /* "petsc4py/PETSc/petsctao.pxi":436 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * # call first the default convergence test + * CHKERR( TaoDefaultConvergenceTest(_tao, NULL) ) # <<<<<<<<<<<<<< + * # call next the user-provided convergence test + * cdef TAO tao = ref_TAO(_tao) + */ + __pyx_t_1 = TaoDefaultConvergenceTest(__pyx_v__tao, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(25, 436, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(25, 436, __pyx_L1_error) + + /* "petsc4py/PETSc/petsctao.pxi":438 + * CHKERR( TaoDefaultConvergenceTest(_tao, NULL) ) + * # call next the user-provided convergence test + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * (converged, args, kargs) = tao.get_attr('__converged__') + * reason = converged(tao, *args, **kargs) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":439 + * # call next the user-provided convergence test + * cdef TAO tao = ref_TAO(_tao) + * (converged, args, kargs) = tao.get_attr('__converged__') # <<<<<<<<<<<<<< + * reason = converged(tao, *args, **kargs) + * if reason is None: return PETSC_SUCCESS + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__converged__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 439, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(25, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(25, 439, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 439, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_converged = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_args = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":440 + * cdef TAO tao = ref_TAO(_tao) + * (converged, args, kargs) = tao.get_attr('__converged__') + * reason = converged(tao, *args, **kargs) # <<<<<<<<<<<<<< + * if reason is None: return PETSC_SUCCESS + * # handle value of convergence reason + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_tao)); + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 440, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_v_converged, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_reason = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":441 + * (converged, args, kargs) = tao.get_attr('__converged__') + * reason = converged(tao, *args, **kargs) + * if reason is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * # handle value of convergence reason + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + */ + __pyx_t_9 = (__pyx_v_reason == Py_None); + __pyx_t_10 = (__pyx_t_9 != 0); + if (__pyx_t_10) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petsctao.pxi":443 + * if reason is None: return PETSC_SUCCESS + * # handle value of convergence reason + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING # <<<<<<<<<<<<<< + * if reason is False or reason == -1: + * creason = TAO_DIVERGED_USER + */ + __pyx_v_creason = TAO_CONTINUE_ITERATING; + + /* "petsc4py/PETSc/petsctao.pxi":444 + * # handle value of convergence reason + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + * if reason is False or reason == -1: # <<<<<<<<<<<<<< + * creason = TAO_DIVERGED_USER + * elif reason is True or reason == 1: + */ + __pyx_t_9 = (__pyx_v_reason == Py_False); + __pyx_t_11 = (__pyx_t_9 != 0); + if (!__pyx_t_11) { + } else { + __pyx_t_10 = __pyx_t_11; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_reason, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(25, 444, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __pyx_t_11; + __pyx_L7_bool_binop_done:; + if (__pyx_t_10) { + + /* "petsc4py/PETSc/petsctao.pxi":445 + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + * if reason is False or reason == -1: + * creason = TAO_DIVERGED_USER # <<<<<<<<<<<<<< + * elif reason is True or reason == 1: + * creason = TAO_CONVERGED_USER + */ + __pyx_v_creason = TAO_DIVERGED_USER; + + /* "petsc4py/PETSc/petsctao.pxi":444 + * # handle value of convergence reason + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + * if reason is False or reason == -1: # <<<<<<<<<<<<<< + * creason = TAO_DIVERGED_USER + * elif reason is True or reason == 1: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/petsctao.pxi":446 + * if reason is False or reason == -1: + * creason = TAO_DIVERGED_USER + * elif reason is True or reason == 1: # <<<<<<<<<<<<<< + * creason = TAO_CONVERGED_USER + * else: + */ + __pyx_t_11 = (__pyx_v_reason == Py_True); + __pyx_t_9 = (__pyx_t_11 != 0); + if (!__pyx_t_9) { + } else { + __pyx_t_10 = __pyx_t_9; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_reason, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(25, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(25, 446, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = __pyx_t_9; + __pyx_L9_bool_binop_done:; + if (__pyx_t_10) { + + /* "petsc4py/PETSc/petsctao.pxi":447 + * creason = TAO_DIVERGED_USER + * elif reason is True or reason == 1: + * creason = TAO_CONVERGED_USER # <<<<<<<<<<<<<< + * else: + * creason = reason + */ + __pyx_v_creason = TAO_CONVERGED_USER; + + /* "petsc4py/PETSc/petsctao.pxi":446 + * if reason is False or reason == -1: + * creason = TAO_DIVERGED_USER + * elif reason is True or reason == 1: # <<<<<<<<<<<<<< + * creason = TAO_CONVERGED_USER + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/petsctao.pxi":449 + * creason = TAO_CONVERGED_USER + * else: + * creason = reason # <<<<<<<<<<<<<< + * assert creason >= TAO_DIVERGED_USER + * assert creason <= TAO_CONVERGED_USER + */ + /*else*/ { + __pyx_t_12 = ((TaoConvergedReason)__Pyx_PyInt_As_TaoConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(25, 449, __pyx_L1_error) + __pyx_v_creason = __pyx_t_12; + + /* "petsc4py/PETSc/petsctao.pxi":450 + * else: + * creason = reason + * assert creason >= TAO_DIVERGED_USER # <<<<<<<<<<<<<< + * assert creason <= TAO_CONVERGED_USER + * CHKERR( TaoSetConvergedReason(_tao, creason) ) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_creason >= TAO_DIVERGED_USER) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 450, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petsctao.pxi":451 + * creason = reason + * assert creason >= TAO_DIVERGED_USER + * assert creason <= TAO_CONVERGED_USER # <<<<<<<<<<<<<< + * CHKERR( TaoSetConvergedReason(_tao, creason) ) + * return PETSC_SUCCESS + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_creason <= TAO_CONVERGED_USER) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(25, 451, __pyx_L1_error) + } + } + #endif + } + __pyx_L6:; + + /* "petsc4py/PETSc/petsctao.pxi":452 + * assert creason >= TAO_DIVERGED_USER + * assert creason <= TAO_CONVERGED_USER + * CHKERR( TaoSetConvergedReason(_tao, creason) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConvergedReason(__pyx_v__tao, __pyx_v_creason)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(25, 452, __pyx_L1_error) + + /* "petsc4py/PETSc/petsctao.pxi":453 + * assert creason <= TAO_CONVERGED_USER + * CHKERR( TaoSetConvergedReason(_tao, creason) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TAO_Monitor(PetscTAO _tao, + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":433 + * + * + * cdef PetscErrorCode TAO_Converged(PetscTAO _tao, # <<<<<<<<<<<<<< + * void* ctx) except PETSC_ERR_PYTHON with gil: + * # call first the default convergence test + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Converged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF(__pyx_v_converged); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_reason); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petsctao.pxi":455 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Monitor(PetscTAO _tao, # <<<<<<<<<<<<<< + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TAO_Monitor(Tao __pyx_v__tao, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscTAOObject *__pyx_v_tao = 0; + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_monitor = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TAO_Monitor", 0); + + /* "petsc4py/PETSc/petsctao.pxi":457 + * cdef PetscErrorCode TAO_Monitor(PetscTAO _tao, + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) # <<<<<<<<<<<<<< + * cdef object monitorlist = tao.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_TAO(__pyx_v__tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tao = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":458 + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + * cdef object monitorlist = tao.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_tao->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_tao), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_monitorlist = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":459 + * cdef TAO tao = ref_TAO(_tao) + * cdef object monitorlist = tao.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * for (monitor, args, kargs) in monitorlist: + * monitor(tao, *args, **kargs) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petsctao.pxi":460 + * cdef object monitorlist = tao.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(tao, *args, **kargs) + * return PETSC_SUCCESS + */ + if (likely(PyList_CheckExact(__pyx_v_monitorlist)) || PyTuple_CheckExact(__pyx_v_monitorlist)) { + __pyx_t_1 = __pyx_v_monitorlist; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_monitorlist); if (unlikely(!__pyx_t_1)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(25, 460, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_5)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(25, 460, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(25, 460, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } + } else { + __pyx_t_6 = __pyx_t_5(__pyx_t_1); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(25, 460, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_6); + } + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(25, 460, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(25, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(25, 460, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(25, 460, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_monitor, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":461 + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: + * monitor(tao, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_tao)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_tao)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_tao)); + __pyx_t_9 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_9)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = PyNumber_Add(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(25, 461, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_9 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_9)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } else { + __pyx_t_9 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_monitor, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(25, 461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":460 + * cdef object monitorlist = tao.get_attr('__monitor__') + * if monitorlist is None: return PETSC_SUCCESS + * for (monitor, args, kargs) in monitorlist: # <<<<<<<<<<<<<< + * monitor(tao, *args, **kargs) + * return PETSC_SUCCESS + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petsctao.pxi":462 + * for (monitor, args, kargs) in monitorlist: + * monitor(tao, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petsctao.pxi":455 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TAO_Monitor(PetscTAO _tao, # <<<<<<<<<<<<<< + * void* ctx) except PETSC_ERR_PYTHON with gil: + * cdef TAO tao = ref_TAO(_tao) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_Monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tao); + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_monitor); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":190 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMBoundaryType asBoundaryType(object boundary) \ # <<<<<<<<<<<<<< + * except (-1): + * if boundary is None: + */ + +static CYTHON_INLINE DMBoundaryType __pyx_f_8petsc4py_5PETSc_asBoundaryType(PyObject *__pyx_v_boundary) { + DMBoundaryType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMBoundaryType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asBoundaryType", 0); + + /* "petsc4py/PETSc/petscdm.pxi":192 + * cdef inline PetscDMBoundaryType asBoundaryType(object boundary) \ + * except (-1): + * if boundary is None: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * if boundary is False: + */ + __pyx_t_1 = (__pyx_v_boundary == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdm.pxi":193 + * except (-1): + * if boundary is None: + * return DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * if boundary is False: + * return DM_BOUNDARY_NONE + */ + __pyx_r = DM_BOUNDARY_NONE; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":192 + * cdef inline PetscDMBoundaryType asBoundaryType(object boundary) \ + * except (-1): + * if boundary is None: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * if boundary is False: + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":194 + * if boundary is None: + * return DM_BOUNDARY_NONE + * if boundary is False: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * if boundary is True: + */ + __pyx_t_2 = (__pyx_v_boundary == Py_False); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":195 + * return DM_BOUNDARY_NONE + * if boundary is False: + * return DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * if boundary is True: + * return DM_BOUNDARY_PERIODIC + */ + __pyx_r = DM_BOUNDARY_NONE; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":194 + * if boundary is None: + * return DM_BOUNDARY_NONE + * if boundary is False: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * if boundary is True: + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":196 + * if boundary is False: + * return DM_BOUNDARY_NONE + * if boundary is True: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): + */ + __pyx_t_1 = (__pyx_v_boundary == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdm.pxi":197 + * return DM_BOUNDARY_NONE + * if boundary is True: + * return DM_BOUNDARY_PERIODIC # <<<<<<<<<<<<<< + * if isinstance(boundary, str): + * if boundary == 'none': + */ + __pyx_r = DM_BOUNDARY_PERIODIC; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":196 + * if boundary is False: + * return DM_BOUNDARY_NONE + * if boundary is True: # <<<<<<<<<<<<<< + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":198 + * if boundary is True: + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): # <<<<<<<<<<<<<< + * if boundary == 'none': + * return DM_BOUNDARY_NONE + */ + __pyx_t_2 = PyString_Check(__pyx_v_boundary); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":199 + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): + * if boundary == 'none': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * elif boundary == 'ghosted': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_boundary, __pyx_n_s_none, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(26, 199, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":200 + * if isinstance(boundary, str): + * if boundary == 'none': + * return DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * elif boundary == 'ghosted': + * return DM_BOUNDARY_GHOSTED + */ + __pyx_r = DM_BOUNDARY_NONE; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":199 + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): + * if boundary == 'none': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_NONE + * elif boundary == 'ghosted': + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":201 + * if boundary == 'none': + * return DM_BOUNDARY_NONE + * elif boundary == 'ghosted': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_GHOSTED + * elif boundary == 'mirror': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_boundary, __pyx_n_s_ghosted, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(26, 201, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":202 + * return DM_BOUNDARY_NONE + * elif boundary == 'ghosted': + * return DM_BOUNDARY_GHOSTED # <<<<<<<<<<<<<< + * elif boundary == 'mirror': + * return DM_BOUNDARY_MIRROR + */ + __pyx_r = DM_BOUNDARY_GHOSTED; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":201 + * if boundary == 'none': + * return DM_BOUNDARY_NONE + * elif boundary == 'ghosted': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_GHOSTED + * elif boundary == 'mirror': + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":203 + * elif boundary == 'ghosted': + * return DM_BOUNDARY_GHOSTED + * elif boundary == 'mirror': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_MIRROR + * elif boundary == 'periodic': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_boundary, __pyx_n_s_mirror, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(26, 203, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":204 + * return DM_BOUNDARY_GHOSTED + * elif boundary == 'mirror': + * return DM_BOUNDARY_MIRROR # <<<<<<<<<<<<<< + * elif boundary == 'periodic': + * return DM_BOUNDARY_PERIODIC + */ + __pyx_r = DM_BOUNDARY_MIRROR; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":203 + * elif boundary == 'ghosted': + * return DM_BOUNDARY_GHOSTED + * elif boundary == 'mirror': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_MIRROR + * elif boundary == 'periodic': + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":205 + * elif boundary == 'mirror': + * return DM_BOUNDARY_MIRROR + * elif boundary == 'periodic': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_PERIODIC + * elif boundary == 'twist': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_boundary, __pyx_n_s_periodic, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(26, 205, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":206 + * return DM_BOUNDARY_MIRROR + * elif boundary == 'periodic': + * return DM_BOUNDARY_PERIODIC # <<<<<<<<<<<<<< + * elif boundary == 'twist': + * return DM_BOUNDARY_TWIST + */ + __pyx_r = DM_BOUNDARY_PERIODIC; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":205 + * elif boundary == 'mirror': + * return DM_BOUNDARY_MIRROR + * elif boundary == 'periodic': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_PERIODIC + * elif boundary == 'twist': + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":207 + * elif boundary == 'periodic': + * return DM_BOUNDARY_PERIODIC + * elif boundary == 'twist': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_TWIST + * else: + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_boundary, __pyx_n_s_twist, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(26, 207, __pyx_L1_error) + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/petscdm.pxi":208 + * return DM_BOUNDARY_PERIODIC + * elif boundary == 'twist': + * return DM_BOUNDARY_TWIST # <<<<<<<<<<<<<< + * else: + * raise ValueError("unknown boundary type: %s" % boundary) + */ + __pyx_r = DM_BOUNDARY_TWIST; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":207 + * elif boundary == 'periodic': + * return DM_BOUNDARY_PERIODIC + * elif boundary == 'twist': # <<<<<<<<<<<<<< + * return DM_BOUNDARY_TWIST + * else: + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":210 + * return DM_BOUNDARY_TWIST + * else: + * raise ValueError("unknown boundary type: %s" % boundary) # <<<<<<<<<<<<<< + * return boundary + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_boundary_type_s, __pyx_v_boundary); if (unlikely(!__pyx_t_3)) __PYX_ERR(26, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(26, 210, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdm.pxi":198 + * if boundary is True: + * return DM_BOUNDARY_PERIODIC + * if isinstance(boundary, str): # <<<<<<<<<<<<<< + * if boundary == 'none': + * return DM_BOUNDARY_NONE + */ + } + + /* "petsc4py/PETSc/petscdm.pxi":211 + * else: + * raise ValueError("unknown boundary type: %s" % boundary) + * return boundary # <<<<<<<<<<<<<< + * + * cdef inline PetscInt asBoundary(object boundary, + */ + __pyx_t_5 = ((DMBoundaryType)__Pyx_PyInt_As_DMBoundaryType(__pyx_v_boundary)); if (unlikely(PyErr_Occurred())) __PYX_ERR(26, 211, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":190 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMBoundaryType asBoundaryType(object boundary) \ # <<<<<<<<<<<<<< + * except (-1): + * if boundary is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.asBoundaryType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMBoundaryType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":213 + * return boundary + * + * cdef inline PetscInt asBoundary(object boundary, # <<<<<<<<<<<<<< + * PetscDMBoundaryType *_x, + * PetscDMBoundaryType *_y, + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asBoundary(PyObject *__pyx_v_boundary, DMBoundaryType *__pyx_v__x, DMBoundaryType *__pyx_v__y, DMBoundaryType *__pyx_v__z) { + PetscInt __pyx_v_dim; + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_z = 0; + PetscInt __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + DMBoundaryType __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asBoundary", 0); + __Pyx_INCREF(__pyx_v_boundary); + + /* "petsc4py/PETSc/petscdm.pxi":217 + * PetscDMBoundaryType *_y, + * PetscDMBoundaryType *_z) except -1: + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * cdef object x=None, y=None, z=None + * if (boundary is None or + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/petscdm.pxi":218 + * PetscDMBoundaryType *_z) except -1: + * cdef PetscInt dim = 0 + * cdef object x=None, y=None, z=None # <<<<<<<<<<<<<< + * if (boundary is None or + * isinstance(boundary, str) or + */ + __Pyx_INCREF(Py_None); + __pyx_v_x = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_y = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_z = Py_None; + + /* "petsc4py/PETSc/petscdm.pxi":219 + * cdef PetscInt dim = 0 + * cdef object x=None, y=None, z=None + * if (boundary is None or # <<<<<<<<<<<<<< + * isinstance(boundary, str) or + * isinstance(boundary, int)): + */ + __pyx_t_2 = (__pyx_v_boundary == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + + /* "petsc4py/PETSc/petscdm.pxi":220 + * cdef object x=None, y=None, z=None + * if (boundary is None or + * isinstance(boundary, str) or # <<<<<<<<<<<<<< + * isinstance(boundary, int)): + * _x[0] = _y[0] = _z[0] = asBoundaryType(boundary) + */ + __pyx_t_3 = PyString_Check(__pyx_v_boundary); + __pyx_t_2 = (__pyx_t_3 != 0); + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + + /* "petsc4py/PETSc/petscdm.pxi":221 + * if (boundary is None or + * isinstance(boundary, str) or + * isinstance(boundary, int)): # <<<<<<<<<<<<<< + * _x[0] = _y[0] = _z[0] = asBoundaryType(boundary) + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_int); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = PyObject_IsInstance(__pyx_v_boundary, __pyx_t_4); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(26, 221, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + __pyx_t_1 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + + /* "petsc4py/PETSc/petscdm.pxi":219 + * cdef PetscInt dim = 0 + * cdef object x=None, y=None, z=None + * if (boundary is None or # <<<<<<<<<<<<<< + * isinstance(boundary, str) or + * isinstance(boundary, int)): + */ + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdm.pxi":222 + * isinstance(boundary, str) or + * isinstance(boundary, int)): + * _x[0] = _y[0] = _z[0] = asBoundaryType(boundary) # <<<<<<<<<<<<<< + * else: + * _x[0] = _y[0] = _z[0] = DM_BOUNDARY_NONE + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asBoundaryType(__pyx_v_boundary); if (unlikely(__pyx_t_5 == ((DMBoundaryType)((DMBoundaryType)-1L)))) __PYX_ERR(26, 222, __pyx_L1_error) + (__pyx_v__x[0]) = __pyx_t_5; + (__pyx_v__y[0]) = __pyx_t_5; + (__pyx_v__z[0]) = __pyx_t_5; + + /* "petsc4py/PETSc/petscdm.pxi":219 + * cdef PetscInt dim = 0 + * cdef object x=None, y=None, z=None + * if (boundary is None or # <<<<<<<<<<<<<< + * isinstance(boundary, str) or + * isinstance(boundary, int)): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdm.pxi":224 + * _x[0] = _y[0] = _z[0] = asBoundaryType(boundary) + * else: + * _x[0] = _y[0] = _z[0] = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * boundary = tuple(boundary) + * dim = len(boundary) + */ + /*else*/ { + (__pyx_v__x[0]) = DM_BOUNDARY_NONE; + (__pyx_v__y[0]) = DM_BOUNDARY_NONE; + (__pyx_v__z[0]) = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/petscdm.pxi":225 + * else: + * _x[0] = _y[0] = _z[0] = DM_BOUNDARY_NONE + * boundary = tuple(boundary) # <<<<<<<<<<<<<< + * dim = len(boundary) + * if dim == 0: pass + */ + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_boundary); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_boundary, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":226 + * _x[0] = _y[0] = _z[0] = DM_BOUNDARY_NONE + * boundary = tuple(boundary) + * dim = len(boundary) # <<<<<<<<<<<<<< + * if dim == 0: pass + * elif dim == 1: (x,) = boundary + */ + __pyx_t_6 = PyObject_Length(__pyx_v_boundary); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(26, 226, __pyx_L1_error) + __pyx_v_dim = ((PetscInt)__pyx_t_6); + + /* "petsc4py/PETSc/petscdm.pxi":227 + * boundary = tuple(boundary) + * dim = len(boundary) + * if dim == 0: pass # <<<<<<<<<<<<<< + * elif dim == 1: (x,) = boundary + * elif dim == 2: (x, y) = boundary + */ + __pyx_t_1 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_1) { + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscdm.pxi":228 + * dim = len(boundary) + * if dim == 0: pass + * elif dim == 1: (x,) = boundary # <<<<<<<<<<<<<< + * elif dim == 2: (x, y) = boundary + * elif dim == 3: (x, y, z) = boundary + */ + __pyx_t_1 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_1) { + if ((likely(PyTuple_CheckExact(__pyx_v_boundary))) || (PyList_CheckExact(__pyx_v_boundary))) { + PyObject* sequence = __pyx_v_boundary; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 1)) { + if (size > 1) __Pyx_RaiseTooManyValuesError(1); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(26, 228, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + } + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_boundary); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 1) < 0) __PYX_ERR(26, 228, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(26, 228, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscdm.pxi":229 + * if dim == 0: pass + * elif dim == 1: (x,) = boundary + * elif dim == 2: (x, y) = boundary # <<<<<<<<<<<<<< + * elif dim == 3: (x, y, z) = boundary + * if dim >= 1: _x[0] = asBoundaryType(x) + */ + __pyx_t_1 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_1) { + if ((likely(PyTuple_CheckExact(__pyx_v_boundary))) || (PyList_CheckExact(__pyx_v_boundary))) { + PyObject* sequence = __pyx_v_boundary; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(26, 229, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_7 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_v_boundary); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_9); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L10_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_9), 2) < 0) __PYX_ERR(26, 229, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L11_unpacking_done; + __pyx_L10_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(26, 229, __pyx_L1_error) + __pyx_L11_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_7); + __pyx_t_7 = 0; + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscdm.pxi":230 + * elif dim == 1: (x,) = boundary + * elif dim == 2: (x, y) = boundary + * elif dim == 3: (x, y, z) = boundary # <<<<<<<<<<<<<< + * if dim >= 1: _x[0] = asBoundaryType(x) + * if dim >= 2: _y[0] = asBoundaryType(y) + */ + __pyx_t_1 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_1) { + if ((likely(PyTuple_CheckExact(__pyx_v_boundary))) || (PyList_CheckExact(__pyx_v_boundary))) { + PyObject* sequence = __pyx_v_boundary; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(26, 230, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_v_boundary); if (unlikely(!__pyx_t_10)) __PYX_ERR(26, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_8 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_4 = __pyx_t_8(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 2; __pyx_t_9 = __pyx_t_8(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_10), 3) < 0) __PYX_ERR(26, 230, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L13_unpacking_done; + __pyx_L12_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(26, 230, __pyx_L1_error) + __pyx_L13_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_z, __pyx_t_9); + __pyx_t_9 = 0; + } + __pyx_L7:; + + /* "petsc4py/PETSc/petscdm.pxi":231 + * elif dim == 2: (x, y) = boundary + * elif dim == 3: (x, y, z) = boundary + * if dim >= 1: _x[0] = asBoundaryType(x) # <<<<<<<<<<<<<< + * if dim >= 2: _y[0] = asBoundaryType(y) + * if dim >= 3: _z[0] = asBoundaryType(z) + */ + __pyx_t_1 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_1) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asBoundaryType(__pyx_v_x); if (unlikely(__pyx_t_5 == ((DMBoundaryType)((DMBoundaryType)-1L)))) __PYX_ERR(26, 231, __pyx_L1_error) + (__pyx_v__x[0]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/petscdm.pxi":232 + * elif dim == 3: (x, y, z) = boundary + * if dim >= 1: _x[0] = asBoundaryType(x) + * if dim >= 2: _y[0] = asBoundaryType(y) # <<<<<<<<<<<<<< + * if dim >= 3: _z[0] = asBoundaryType(z) + * return dim + */ + __pyx_t_1 = ((__pyx_v_dim >= 2) != 0); + if (__pyx_t_1) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asBoundaryType(__pyx_v_y); if (unlikely(__pyx_t_5 == ((DMBoundaryType)((DMBoundaryType)-1L)))) __PYX_ERR(26, 232, __pyx_L1_error) + (__pyx_v__y[0]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/petscdm.pxi":233 + * if dim >= 1: _x[0] = asBoundaryType(x) + * if dim >= 2: _y[0] = asBoundaryType(y) + * if dim >= 3: _z[0] = asBoundaryType(z) # <<<<<<<<<<<<<< + * return dim + * + */ + __pyx_t_1 = ((__pyx_v_dim >= 3) != 0); + if (__pyx_t_1) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asBoundaryType(__pyx_v_z); if (unlikely(__pyx_t_5 == ((DMBoundaryType)((DMBoundaryType)-1L)))) __PYX_ERR(26, 233, __pyx_L1_error) + (__pyx_v__z[0]) = __pyx_t_5; + } + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdm.pxi":234 + * if dim >= 2: _y[0] = asBoundaryType(y) + * if dim >= 3: _z[0] = asBoundaryType(z) + * return dim # <<<<<<<<<<<<<< + * + * cdef inline object toBoundary(PetscInt dim, + */ + __pyx_r = __pyx_v_dim; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":213 + * return boundary + * + * cdef inline PetscInt asBoundary(object boundary, # <<<<<<<<<<<<<< + * PetscDMBoundaryType *_x, + * PetscDMBoundaryType *_y, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.asBoundary", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_x); + __Pyx_XDECREF(__pyx_v_y); + __Pyx_XDECREF(__pyx_v_z); + __Pyx_XDECREF(__pyx_v_boundary); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":236 + * return dim + * + * cdef inline object toBoundary(PetscInt dim, # <<<<<<<<<<<<<< + * PetscDMBoundaryType x, + * PetscDMBoundaryType y, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toBoundary(PetscInt __pyx_v_dim, DMBoundaryType __pyx_v_x, DMBoundaryType __pyx_v_y, DMBoundaryType __pyx_v_z) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toBoundary", 0); + + /* "petsc4py/PETSc/petscdm.pxi":240 + * PetscDMBoundaryType y, + * PetscDMBoundaryType z): + * if dim == 0: return () # <<<<<<<<<<<<<< + * elif dim == 1: return (x,) + * elif dim == 2: return (x, y) + */ + __pyx_t_1 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_empty_tuple); + __pyx_r = __pyx_empty_tuple; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdm.pxi":241 + * PetscDMBoundaryType z): + * if dim == 0: return () + * elif dim == 1: return (x,) # <<<<<<<<<<<<<< + * elif dim == 2: return (x, y) + * elif dim == 3: return (x, y, z) + */ + __pyx_t_1 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(26, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdm.pxi":242 + * if dim == 0: return () + * elif dim == 1: return (x,) + * elif dim == 2: return (x, y) # <<<<<<<<<<<<<< + * elif dim == 3: return (x, y, z) + * + */ + __pyx_t_1 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(26, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdm.pxi":243 + * elif dim == 1: return (x,) + * elif dim == 2: return (x, y) + * elif dim == 3: return (x, y, z) # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_t_1 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(26, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(26, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_DMBoundaryType(__pyx_v_z); if (unlikely(!__pyx_t_3)) __PYX_ERR(26, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(26, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdm.pxi":236 + * return dim + * + * cdef inline object toBoundary(PetscInt dim, # <<<<<<<<<<<<<< + * PetscDMBoundaryType x, + * PetscDMBoundaryType y, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.toBoundary", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":247 + * # ----------------------------------------------------------------------------- + * + * cdef inline DM ref_DM(PetscDM dm): # <<<<<<<<<<<<<< + * cdef DM ob = DM() + * ob.dm = dm + */ + +static CYTHON_INLINE struct PyPetscDMObject *__pyx_f_8petsc4py_5PETSc_ref_DM(DM __pyx_v_dm) { + struct PyPetscDMObject *__pyx_v_ob = 0; + struct PyPetscDMObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ref_DM", 0); + + /* "petsc4py/PETSc/petscdm.pxi":248 + * + * cdef inline DM ref_DM(PetscDM dm): + * cdef DM ob = DM() # <<<<<<<<<<<<<< + * ob.dm = dm + * PetscINCREF(ob.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ob = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":249 + * cdef inline DM ref_DM(PetscDM dm): + * cdef DM ob = DM() + * ob.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(ob.obj) + * return ob + */ + __pyx_v_ob->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdm.pxi":250 + * cdef DM ob = DM() + * ob.dm = dm + * PetscINCREF(ob.obj) # <<<<<<<<<<<<<< + * return ob + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ob->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdm.pxi":251 + * ob.dm = dm + * PetscINCREF(ob.obj) + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":247 + * # ----------------------------------------------------------------------------- + * + * cdef inline DM ref_DM(PetscDM dm): # <<<<<<<<<<<<<< + * cdef DM ob = DM() + * ob.dm = dm + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ref_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":255 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode DM_PyCoarsenHook( # <<<<<<<<<<<<<< + * PetscDM fine, + * PetscDM coarse, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DM_PyCoarsenHook(DM __pyx_v_fine, DM __pyx_v_coarse, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscDMObject *__pyx_v_Fine = 0; + struct PyPetscDMObject *__pyx_v_Coarse = 0; + PyObject *__pyx_v_hooks = 0; + PyObject *__pyx_v_hook = NULL; + PyObject *__pyx_v_hookop = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DM_PyCoarsenHook", 0); + + /* "petsc4py/PETSc/petscdm.pxi":261 + * ) except PETSC_ERR_PYTHON with gil: + * + * cdef DM Fine = ref_DM(fine) # <<<<<<<<<<<<<< + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__coarsenhooks__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_DM(__pyx_v_fine)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fine = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":262 + * + * cdef DM Fine = ref_DM(fine) + * cdef DM Coarse = ref_DM(coarse) # <<<<<<<<<<<<<< + * cdef object hooks = Fine.get_attr('__coarsenhooks__') + * assert hooks is not None and type(hooks) is list + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_DM(__pyx_v_coarse)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Coarse = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":263 + * cdef DM Fine = ref_DM(fine) + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__coarsenhooks__') # <<<<<<<<<<<<<< + * assert hooks is not None and type(hooks) is list + * for hook in hooks: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Fine->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Fine), ((char *)"__coarsenhooks__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_hooks = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":264 + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__coarsenhooks__') + * assert hooks is not None and type(hooks) is list # <<<<<<<<<<<<<< + * for hook in hooks: + * (hookop, args, kargs) = hook + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = (__pyx_v_hooks != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_hooks)) == ((PyObject *)(&PyList_Type))); + __pyx_t_3 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(26, 264, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdm.pxi":265 + * cdef object hooks = Fine.get_attr('__coarsenhooks__') + * assert hooks is not None and type(hooks) is list + * for hook in hooks: # <<<<<<<<<<<<<< + * (hookop, args, kargs) = hook + * hookop(Fine, Coarse, *args, **kargs) + */ + if (likely(PyList_CheckExact(__pyx_v_hooks)) || PyTuple_CheckExact(__pyx_v_hooks)) { + __pyx_t_1 = __pyx_v_hooks; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_hooks); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(26, 265, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(26, 265, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(26, 265, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(26, 265, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_hook, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":266 + * assert hooks is not None and type(hooks) is list + * for hook in hooks: + * (hookop, args, kargs) = hook # <<<<<<<<<<<<<< + * hookop(Fine, Coarse, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_hook))) || (PyList_CheckExact(__pyx_v_hook))) { + PyObject* sequence = __pyx_v_hook; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(26, 266, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_v_hook); if (unlikely(!__pyx_t_10)) __PYX_ERR(26, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(26, 266, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(26, 266, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_hookop, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":267 + * for hook in hooks: + * (hookop, args, kargs) = hook + * hookop(Fine, Coarse, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF(((PyObject *)__pyx_v_Fine)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fine)); + PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_Fine)); + __Pyx_INCREF(((PyObject *)__pyx_v_Coarse)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Coarse)); + PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_Coarse)); + __pyx_t_8 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyNumber_Add(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(26, 267, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_8 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } else { + __pyx_t_8 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_hookop, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":265 + * cdef object hooks = Fine.get_attr('__coarsenhooks__') + * assert hooks is not None and type(hooks) is list + * for hook in hooks: # <<<<<<<<<<<<<< + * (hookop, args, kargs) = hook + * hookop(Fine, Coarse, *args, **kargs) + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":268 + * (hookop, args, kargs) = hook + * hookop(Fine, Coarse, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DM_PyRestrictHook( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":255 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode DM_PyCoarsenHook( # <<<<<<<<<<<<<< + * PetscDM fine, + * PetscDM coarse, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.DM_PyCoarsenHook", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Fine); + __Pyx_XDECREF((PyObject *)__pyx_v_Coarse); + __Pyx_XDECREF(__pyx_v_hooks); + __Pyx_XDECREF(__pyx_v_hook); + __Pyx_XDECREF(__pyx_v_hookop); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdm.pxi":270 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DM_PyRestrictHook( # <<<<<<<<<<<<<< + * PetscDM fine, + * PetscMat mrestrict, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DM_PyRestrictHook(DM __pyx_v_fine, Mat __pyx_v_mrestrict, Vec __pyx_v_rscale, Mat __pyx_v_inject, DM __pyx_v_coarse, CYTHON_UNUSED void *__pyx_v_ctx) { + struct PyPetscDMObject *__pyx_v_Fine = 0; + struct PyPetscMatObject *__pyx_v_Mrestrict = 0; + struct PyPetscVecObject *__pyx_v_Rscale = 0; + struct PyPetscMatObject *__pyx_v_Inject = 0; + struct PyPetscDMObject *__pyx_v_Coarse = 0; + PyObject *__pyx_v_hooks = 0; + PyObject *__pyx_v_hook = NULL; + PyObject *__pyx_v_hookop = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *(*__pyx_t_11)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DM_PyRestrictHook", 0); + + /* "petsc4py/PETSc/petscdm.pxi":279 + * ) except PETSC_ERR_PYTHON with gil: + * + * cdef DM Fine = ref_DM(fine) # <<<<<<<<<<<<<< + * cdef Mat Mrestrict = ref_Mat(mrestrict) + * cdef Vec Rscale = ref_Vec(rscale) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_DM(__pyx_v_fine)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Fine = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":280 + * + * cdef DM Fine = ref_DM(fine) + * cdef Mat Mrestrict = ref_Mat(mrestrict) # <<<<<<<<<<<<<< + * cdef Vec Rscale = ref_Vec(rscale) + * cdef Mat Inject = ref_Mat(inject) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_mrestrict)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Mrestrict = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":281 + * cdef DM Fine = ref_DM(fine) + * cdef Mat Mrestrict = ref_Mat(mrestrict) + * cdef Vec Rscale = ref_Vec(rscale) # <<<<<<<<<<<<<< + * cdef Mat Inject = ref_Mat(inject) + * cdef DM Coarse = ref_DM(coarse) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_rscale)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Rscale = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":282 + * cdef Mat Mrestrict = ref_Mat(mrestrict) + * cdef Vec Rscale = ref_Vec(rscale) + * cdef Mat Inject = ref_Mat(inject) # <<<<<<<<<<<<<< + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__restricthooks__') + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Mat(__pyx_v_inject)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Inject = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":283 + * cdef Vec Rscale = ref_Vec(rscale) + * cdef Mat Inject = ref_Mat(inject) + * cdef DM Coarse = ref_DM(coarse) # <<<<<<<<<<<<<< + * cdef object hooks = Fine.get_attr('__restricthooks__') + * assert hooks is not None and type(hooks) is list + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_DM(__pyx_v_coarse)); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_Coarse = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":284 + * cdef Mat Inject = ref_Mat(inject) + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__restricthooks__') # <<<<<<<<<<<<<< + * assert hooks is not None and type(hooks) is list + * for hook in hooks: + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Fine->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Fine), ((char *)"__restricthooks__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_hooks = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":285 + * cdef DM Coarse = ref_DM(coarse) + * cdef object hooks = Fine.get_attr('__restricthooks__') + * assert hooks is not None and type(hooks) is list # <<<<<<<<<<<<<< + * for hook in hooks: + * (hookop, args, kargs) = hook + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = (__pyx_v_hooks != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = (((PyObject *)Py_TYPE(__pyx_v_hooks)) == ((PyObject *)(&PyList_Type))); + __pyx_t_3 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(26, 285, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdm.pxi":286 + * cdef object hooks = Fine.get_attr('__restricthooks__') + * assert hooks is not None and type(hooks) is list + * for hook in hooks: # <<<<<<<<<<<<<< + * (hookop, args, kargs) = hook + * hookop(Fine, Mrestrict, Rscale, Inject, Coarse, *args, **kargs) + */ + if (likely(PyList_CheckExact(__pyx_v_hooks)) || PyTuple_CheckExact(__pyx_v_hooks)) { + __pyx_t_1 = __pyx_v_hooks; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_hooks); if (unlikely(!__pyx_t_1)) __PYX_ERR(26, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(26, 286, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_1))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(26, 286, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(26, 286, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_1); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(26, 286, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_hook, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":287 + * assert hooks is not None and type(hooks) is list + * for hook in hooks: + * (hookop, args, kargs) = hook # <<<<<<<<<<<<<< + * hookop(Fine, Mrestrict, Rscale, Inject, Coarse, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_hook))) || (PyList_CheckExact(__pyx_v_hook))) { + PyObject* sequence = __pyx_v_hook; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(26, 287, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_10 = PyObject_GetIter(__pyx_v_hook); if (unlikely(!__pyx_t_10)) __PYX_ERR(26, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + index = 2; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 3) < 0) __PYX_ERR(26, 287, __pyx_L1_error) + __pyx_t_11 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(26, 287, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_hookop, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_args, __pyx_t_8); + __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_kargs, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":288 + * for hook in hooks: + * (hookop, args, kargs) = hook + * hookop(Fine, Mrestrict, Rscale, Inject, Coarse, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * # ----------------------------------------------------------------------------- + */ + __pyx_t_9 = PyTuple_New(5); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_INCREF(((PyObject *)__pyx_v_Fine)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Fine)); + PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_Fine)); + __Pyx_INCREF(((PyObject *)__pyx_v_Mrestrict)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Mrestrict)); + PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_Mrestrict)); + __Pyx_INCREF(((PyObject *)__pyx_v_Rscale)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Rscale)); + PyTuple_SET_ITEM(__pyx_t_9, 2, ((PyObject *)__pyx_v_Rscale)); + __Pyx_INCREF(((PyObject *)__pyx_v_Inject)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Inject)); + PyTuple_SET_ITEM(__pyx_t_9, 3, ((PyObject *)__pyx_v_Inject)); + __Pyx_INCREF(((PyObject *)__pyx_v_Coarse)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Coarse)); + PyTuple_SET_ITEM(__pyx_t_9, 4, ((PyObject *)__pyx_v_Coarse)); + __pyx_t_8 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyNumber_Add(__pyx_t_9, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(26, 288, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_8 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } else { + __pyx_t_8 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + } + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_hookop, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(26, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":286 + * cdef object hooks = Fine.get_attr('__restricthooks__') + * assert hooks is not None and type(hooks) is list + * for hook in hooks: # <<<<<<<<<<<<<< + * (hookop, args, kargs) = hook + * hookop(Fine, Mrestrict, Rscale, Inject, Coarse, *args, **kargs) + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdm.pxi":289 + * (hookop, args, kargs) = hook + * hookop(Fine, Mrestrict, Rscale, Inject, Coarse, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * # ----------------------------------------------------------------------------- + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdm.pxi":270 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DM_PyRestrictHook( # <<<<<<<<<<<<<< + * PetscDM fine, + * PetscMat mrestrict, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.DM_PyRestrictHook", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Fine); + __Pyx_XDECREF((PyObject *)__pyx_v_Mrestrict); + __Pyx_XDECREF((PyObject *)__pyx_v_Rscale); + __Pyx_XDECREF((PyObject *)__pyx_v_Inject); + __Pyx_XDECREF((PyObject *)__pyx_v_Coarse); + __Pyx_XDECREF(__pyx_v_hooks); + __Pyx_XDECREF(__pyx_v_hook); + __Pyx_XDECREF(__pyx_v_hookop); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":88 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMDAStencilType asStencil(object stencil) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil, str): + */ + +static CYTHON_INLINE DMDAStencilType __pyx_f_8petsc4py_5PETSc_asStencil(PyObject *__pyx_v_stencil) { + DMDAStencilType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMDAStencilType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStencil", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":90 + * cdef inline PetscDMDAStencilType asStencil(object stencil) \ + * except (-1): + * if isinstance(stencil, str): # <<<<<<<<<<<<<< + * if stencil == "star": return DMDA_STENCIL_STAR + * elif stencil == "box": return DMDA_STENCIL_BOX + */ + __pyx_t_1 = PyString_Check(__pyx_v_stencil); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":91 + * except (-1): + * if isinstance(stencil, str): + * if stencil == "star": return DMDA_STENCIL_STAR # <<<<<<<<<<<<<< + * elif stencil == "box": return DMDA_STENCIL_BOX + * else: raise ValueError("unknown stencil type: %s" % stencil) + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil, __pyx_n_s_star, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 91, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMDA_STENCIL_STAR; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":92 + * if isinstance(stencil, str): + * if stencil == "star": return DMDA_STENCIL_STAR + * elif stencil == "box": return DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * else: raise ValueError("unknown stencil type: %s" % stencil) + * return stencil + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil, __pyx_n_s_box, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 92, __pyx_L1_error) + if (likely(__pyx_t_2)) { + __pyx_r = DMDA_STENCIL_BOX; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":93 + * if stencil == "star": return DMDA_STENCIL_STAR + * elif stencil == "box": return DMDA_STENCIL_BOX + * else: raise ValueError("unknown stencil type: %s" % stencil) # <<<<<<<<<<<<<< + * return stencil + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_stencil_type_s, __pyx_v_stencil); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(9, 93, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmda.pxi":90 + * cdef inline PetscDMDAStencilType asStencil(object stencil) \ + * except (-1): + * if isinstance(stencil, str): # <<<<<<<<<<<<<< + * if stencil == "star": return DMDA_STENCIL_STAR + * elif stencil == "box": return DMDA_STENCIL_BOX + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":94 + * elif stencil == "box": return DMDA_STENCIL_BOX + * else: raise ValueError("unknown stencil type: %s" % stencil) + * return stencil # <<<<<<<<<<<<<< + * + * cdef inline object toStencil(PetscDMDAStencilType stype): + */ + __pyx_t_5 = ((DMDAStencilType)__Pyx_PyInt_As_DMDAStencilType(__pyx_v_stencil)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 94, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":88 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMDAStencilType asStencil(object stencil) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil, str): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.asStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMDAStencilType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":96 + * return stencil + * + * cdef inline object toStencil(PetscDMDAStencilType stype): # <<<<<<<<<<<<<< + * if stype == DMDA_STENCIL_STAR: return "star" + * elif stype == DMDA_STENCIL_BOX: return "box" + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStencil(DMDAStencilType __pyx_v_stype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("toStencil", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":97 + * + * cdef inline object toStencil(PetscDMDAStencilType stype): + * if stype == DMDA_STENCIL_STAR: return "star" # <<<<<<<<<<<<<< + * elif stype == DMDA_STENCIL_BOX: return "box" + * + */ + __pyx_t_1 = ((__pyx_v_stype == DMDA_STENCIL_STAR) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_star); + __pyx_r = __pyx_n_s_star; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":98 + * cdef inline object toStencil(PetscDMDAStencilType stype): + * if stype == DMDA_STENCIL_STAR: return "star" + * elif stype == DMDA_STENCIL_BOX: return "box" # <<<<<<<<<<<<<< + * + * cdef inline PetscDMDAInterpolationType dainterpolationtype(object itype) \ + */ + __pyx_t_1 = ((__pyx_v_stype == DMDA_STENCIL_BOX) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_box); + __pyx_r = __pyx_n_s_box; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":96 + * return stencil + * + * cdef inline object toStencil(PetscDMDAStencilType stype): # <<<<<<<<<<<<<< + * if stype == DMDA_STENCIL_STAR: return "star" + * elif stype == DMDA_STENCIL_BOX: return "box" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":100 + * elif stype == DMDA_STENCIL_BOX: return "box" + * + * cdef inline PetscDMDAInterpolationType dainterpolationtype(object itype) \ # <<<<<<<<<<<<<< + * except (-1): + * if (isinstance(itype, str)): + */ + +static CYTHON_INLINE DMDAInterpolationType __pyx_f_8petsc4py_5PETSc_dainterpolationtype(PyObject *__pyx_v_itype) { + DMDAInterpolationType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMDAInterpolationType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("dainterpolationtype", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":102 + * cdef inline PetscDMDAInterpolationType dainterpolationtype(object itype) \ + * except (-1): + * if (isinstance(itype, str)): # <<<<<<<<<<<<<< + * if itype in ("q0", "Q0"): return DMDA_INTERPOLATION_Q0 + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 + */ + __pyx_t_1 = PyString_Check(__pyx_v_itype); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":103 + * except (-1): + * if (isinstance(itype, str)): + * if itype in ("q0", "Q0"): return DMDA_INTERPOLATION_Q0 # <<<<<<<<<<<<<< + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 + * else: raise ValueError("unknown interpolation type: %s" % itype) + */ + __Pyx_INCREF(__pyx_v_itype); + __pyx_t_3 = __pyx_v_itype; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_q0, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 103, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_Q0, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 103, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = DMDA_Q0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":104 + * if (isinstance(itype, str)): + * if itype in ("q0", "Q0"): return DMDA_INTERPOLATION_Q0 + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 # <<<<<<<<<<<<<< + * else: raise ValueError("unknown interpolation type: %s" % itype) + * return itype + */ + __Pyx_INCREF(__pyx_v_itype); + __pyx_t_3 = __pyx_v_itype; + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_q1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 104, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_Q1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 104, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L8_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = (__pyx_t_1 != 0); + if (likely(__pyx_t_2)) { + __pyx_r = DMDA_Q1; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":105 + * if itype in ("q0", "Q0"): return DMDA_INTERPOLATION_Q0 + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 + * else: raise ValueError("unknown interpolation type: %s" % itype) # <<<<<<<<<<<<<< + * return itype + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_interpolation_type_s, __pyx_v_itype); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(9, 105, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmda.pxi":102 + * cdef inline PetscDMDAInterpolationType dainterpolationtype(object itype) \ + * except (-1): + * if (isinstance(itype, str)): # <<<<<<<<<<<<<< + * if itype in ("q0", "Q0"): return DMDA_INTERPOLATION_Q0 + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":106 + * if itype in ("q1", "Q1"): return DMDA_INTERPOLATION_Q1 + * else: raise ValueError("unknown interpolation type: %s" % itype) + * return itype # <<<<<<<<<<<<<< + * + * cdef inline PetscDMDAElementType daelementtype(object etype) \ + */ + __pyx_t_5 = ((DMDAInterpolationType)__Pyx_PyInt_As_DMDAInterpolationType(__pyx_v_itype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 106, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":100 + * elif stype == DMDA_STENCIL_BOX: return "box" + * + * cdef inline PetscDMDAInterpolationType dainterpolationtype(object itype) \ # <<<<<<<<<<<<<< + * except (-1): + * if (isinstance(itype, str)): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.dainterpolationtype", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMDAInterpolationType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":108 + * return itype + * + * cdef inline PetscDMDAElementType daelementtype(object etype) \ # <<<<<<<<<<<<<< + * except (-1): + * if (isinstance(etype, str)): + */ + +static CYTHON_INLINE DMDAElementType __pyx_f_8petsc4py_5PETSc_daelementtype(PyObject *__pyx_v_etype) { + DMDAElementType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMDAElementType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("daelementtype", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":110 + * cdef inline PetscDMDAElementType daelementtype(object etype) \ + * except (-1): + * if (isinstance(etype, str)): # <<<<<<<<<<<<<< + * if etype in ("p1", "P1"): return DMDA_ELEMENT_P1 + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 + */ + __pyx_t_1 = PyString_Check(__pyx_v_etype); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":111 + * except (-1): + * if (isinstance(etype, str)): + * if etype in ("p1", "P1"): return DMDA_ELEMENT_P1 # <<<<<<<<<<<<<< + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 + * else: raise ValueError("unknown element type: %s" % etype) + */ + __Pyx_INCREF(__pyx_v_etype); + __pyx_t_3 = __pyx_v_etype; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_p1, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 111, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_P1, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(9, 111, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_r = DMDA_ELEMENT_P1; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":112 + * if (isinstance(etype, str)): + * if etype in ("p1", "P1"): return DMDA_ELEMENT_P1 + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 # <<<<<<<<<<<<<< + * else: raise ValueError("unknown element type: %s" % etype) + * return etype + */ + __Pyx_INCREF(__pyx_v_etype); + __pyx_t_3 = __pyx_v_etype; + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_q1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 112, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_Q1, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(9, 112, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L8_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = (__pyx_t_1 != 0); + if (likely(__pyx_t_2)) { + __pyx_r = DMDA_ELEMENT_Q1; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":113 + * if etype in ("p1", "P1"): return DMDA_ELEMENT_P1 + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 + * else: raise ValueError("unknown element type: %s" % etype) # <<<<<<<<<<<<<< + * return etype + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_element_type_s, __pyx_v_etype); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(9, 113, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmda.pxi":110 + * cdef inline PetscDMDAElementType daelementtype(object etype) \ + * except (-1): + * if (isinstance(etype, str)): # <<<<<<<<<<<<<< + * if etype in ("p1", "P1"): return DMDA_ELEMENT_P1 + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":114 + * if etype in ("q1", "Q1"): return DMDA_ELEMENT_Q1 + * else: raise ValueError("unknown element type: %s" % etype) + * return etype # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode DMDAGetDim(PetscDM da, PetscInt *dim) nogil: + */ + __pyx_t_5 = ((DMDAElementType)__Pyx_PyInt_As_DMDAElementType(__pyx_v_etype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(9, 114, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":108 + * return itype + * + * cdef inline PetscDMDAElementType daelementtype(object etype) \ # <<<<<<<<<<<<<< + * except (-1): + * if (isinstance(etype, str)): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.daelementtype", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMDAElementType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":116 + * return etype + * + * cdef inline PetscErrorCode DMDAGetDim(PetscDM da, PetscInt *dim) nogil: # <<<<<<<<<<<<<< + * return DMDAGetInfo(da, dim, + * NULL, NULL, NULL, + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMDAGetDim(DM __pyx_v_da, PetscInt *__pyx_v_dim) { + PetscErrorCode __pyx_r; + + /* "petsc4py/PETSc/petscdmda.pxi":117 + * + * cdef inline PetscErrorCode DMDAGetDim(PetscDM da, PetscInt *dim) nogil: + * return DMDAGetInfo(da, dim, # <<<<<<<<<<<<<< + * NULL, NULL, NULL, + * NULL, NULL, NULL, + */ + __pyx_r = DMDAGetInfo(__pyx_v_da, __pyx_v_dim, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":116 + * return etype + * + * cdef inline PetscErrorCode DMDAGetDim(PetscDM da, PetscInt *dim) nogil: # <<<<<<<<<<<<<< + * return DMDAGetInfo(da, dim, + * NULL, NULL, NULL, + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":124 + * NULL) + * + * cdef inline PetscInt asDims(dims, # <<<<<<<<<<<<<< + * PetscInt *_M, + * PetscInt *_N, + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asDims(PyObject *__pyx_v_dims, PetscInt *__pyx_v__M, PetscInt *__pyx_v__N, PetscInt *__pyx_v__P) { + PetscInt __pyx_v_dim; + PyObject *__pyx_v_M = 0; + PyObject *__pyx_v_N = 0; + PyObject *__pyx_v_P = 0; + PetscInt __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscInt __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asDims", 0); + __Pyx_INCREF(__pyx_v_dims); + + /* "petsc4py/PETSc/petscdmda.pxi":128 + * PetscInt *_N, + * PetscInt *_P) except? -1: + * cdef PetscInt dim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef object M=None, N=None, P=None + * dims = tuple(dims) + */ + __pyx_v_dim = PETSC_DECIDE; + + /* "petsc4py/PETSc/petscdmda.pxi":129 + * PetscInt *_P) except? -1: + * cdef PetscInt dim = PETSC_DECIDE + * cdef object M=None, N=None, P=None # <<<<<<<<<<<<<< + * dims = tuple(dims) + * dim = len(dims) + */ + __Pyx_INCREF(Py_None); + __pyx_v_M = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_N = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_P = Py_None; + + /* "petsc4py/PETSc/petscdmda.pxi":130 + * cdef PetscInt dim = PETSC_DECIDE + * cdef object M=None, N=None, P=None + * dims = tuple(dims) # <<<<<<<<<<<<<< + * dim = len(dims) + * if dim == 0: pass + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_dims); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dims, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":131 + * cdef object M=None, N=None, P=None + * dims = tuple(dims) + * dim = len(dims) # <<<<<<<<<<<<<< + * if dim == 0: pass + * elif dim == 1: M, = dims + */ + __pyx_t_2 = PyObject_Length(__pyx_v_dims); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(9, 131, __pyx_L1_error) + __pyx_v_dim = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/petscdmda.pxi":132 + * dims = tuple(dims) + * dim = len(dims) + * if dim == 0: pass # <<<<<<<<<<<<<< + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims + */ + __pyx_t_3 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_3) { + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":133 + * dim = len(dims) + * if dim == 0: pass + * elif dim == 1: M, = dims # <<<<<<<<<<<<<< + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims + */ + __pyx_t_3 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 1)) { + if (size > 1) __Pyx_RaiseTooManyValuesError(1); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(9, 133, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + } + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_4 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 1) < 0) __PYX_ERR(9, 133, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(9, 133, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":134 + * if dim == 0: pass + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims # <<<<<<<<<<<<<< + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) + */ + __pyx_t_3 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(9, 134, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_4 = __pyx_t_5(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_6), 2) < 0) __PYX_ERR(9, 134, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(9, 134, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_N, __pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":135 + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims # <<<<<<<<<<<<<< + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) + */ + __pyx_t_3 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(9, 135, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_1 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_7), 3) < 0) __PYX_ERR(9, 135, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(9, 135, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_N, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_P, __pyx_t_6); + __pyx_t_6 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmda.pxi":136 + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) # <<<<<<<<<<<<<< + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) + */ + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_M); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(9, 136, __pyx_L1_error) + (__pyx_v__M[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmda.pxi":137 + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) # <<<<<<<<<<<<<< + * if dim >= 3: _P[0] = asInt(P) + * return dim + */ + __pyx_t_3 = ((__pyx_v_dim >= 2) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_N); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(9, 137, __pyx_L1_error) + (__pyx_v__N[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmda.pxi":138 + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) # <<<<<<<<<<<<<< + * return dim + * + */ + __pyx_t_3 = ((__pyx_v_dim >= 3) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_P); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(9, 138, __pyx_L1_error) + (__pyx_v__P[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmda.pxi":139 + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) + * return dim # <<<<<<<<<<<<<< + * + * cdef inline tuple toDims(PetscInt dim, + */ + __pyx_r = __pyx_v_dim; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":124 + * NULL) + * + * cdef inline PetscInt asDims(dims, # <<<<<<<<<<<<<< + * PetscInt *_M, + * PetscInt *_N, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.asDims", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_M); + __Pyx_XDECREF(__pyx_v_N); + __Pyx_XDECREF(__pyx_v_P); + __Pyx_XDECREF(__pyx_v_dims); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":141 + * return dim + * + * cdef inline tuple toDims(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt M, + * PetscInt N, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDims(PetscInt __pyx_v_dim, PetscInt __pyx_v_M, PetscInt __pyx_v_N, PetscInt __pyx_v_P) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toDims", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":145 + * PetscInt N, + * PetscInt P): + * if dim == 0: return () # <<<<<<<<<<<<<< + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) + */ + __pyx_t_1 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_empty_tuple); + __pyx_r = __pyx_empty_tuple; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":146 + * PetscInt P): + * if dim == 0: return () + * elif dim == 1: return (toInt(M),) # <<<<<<<<<<<<<< + * elif dim == 2: return (toInt(M), toInt(N)) + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + */ + __pyx_t_1 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":147 + * if dim == 0: return () + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) # <<<<<<<<<<<<<< + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + */ + __pyx_t_1 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":148 + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) # <<<<<<<<<<<<<< + * + * cdef inline tuple asOwnershipRanges(object ownership_ranges, + */ + __pyx_t_1 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_P); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":141 + * return dim + * + * cdef inline tuple toDims(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt M, + * PetscInt N, + */ + + /* function exit code */ + __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.toDims", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":150 + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + * cdef inline tuple asOwnershipRanges(object ownership_ranges, # <<<<<<<<<<<<<< + * PetscInt dim, + * PetscInt *m, PetscInt *n, PetscInt *p, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_asOwnershipRanges(PyObject *__pyx_v_ownership_ranges, PetscInt __pyx_v_dim, PetscInt *__pyx_v_m, PetscInt *__pyx_v_n, PetscInt *__pyx_v_p, PetscInt **__pyx_v__x, PetscInt **__pyx_v__y, PetscInt **__pyx_v__z) { + PyObject *__pyx_v_ranges = 0; + PetscInt __pyx_v_rdim; + PetscInt __pyx_v_nlx; + PetscInt __pyx_v_nly; + PetscInt __pyx_v_nlz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asOwnershipRanges", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":156 + * PetscInt **_y, + * PetscInt **_z): + * cdef object ranges = list(ownership_ranges) # <<<<<<<<<<<<<< + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 + */ + __pyx_t_1 = PySequence_List(__pyx_v_ownership_ranges); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ranges = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":157 + * PetscInt **_z): + * cdef object ranges = list(ownership_ranges) + * cdef PetscInt rdim = len(ranges) # <<<<<<<<<<<<<< + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + */ + __pyx_t_2 = PyObject_Length(__pyx_v_ranges); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(9, 157, __pyx_L1_error) + __pyx_v_rdim = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/petscdmda.pxi":158 + * cdef object ranges = list(ownership_ranges) + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 # <<<<<<<<<<<<<< + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( + */ + __pyx_v_nlx = 0; + __pyx_v_nly = 0; + __pyx_v_nlz = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":159 + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim # <<<<<<<<<<<<<< + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % + */ + __pyx_t_3 = ((__pyx_v_dim == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_dim = __pyx_v_rdim; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":160 + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( # <<<<<<<<<<<<<< + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + */ + __pyx_t_3 = ((__pyx_v_dim != __pyx_v_rdim) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmda.pxi":162 + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) # <<<<<<<<<<<<<< + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_rdim); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":161 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % # <<<<<<<<<<<<<< + * (toInt(dim), toInt(rdim))) + * if dim >= 1: + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_number_of_dimensions_d_and_numbe, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":160 + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( # <<<<<<<<<<<<<< + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(9, 160, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmda.pxi":163 + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + * if dim >= 1: # <<<<<<<<<<<<<< + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + */ + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":164 + * (toInt(dim), toInt(rdim))) + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) # <<<<<<<<<<<<<< + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ranges, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_5, (&__pyx_v_nlx), __pyx_v__x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(9, 164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":165 + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx # <<<<<<<<<<<<<< + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_m[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_m[0]) = __pyx_v_nlx; + goto __pyx_L5; + } + + /* "petsc4py/PETSc/petscdmda.pxi":166 + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + */ + __pyx_t_3 = (((__pyx_v_m[0]) != __pyx_v_nlx) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmda.pxi":168 + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) # <<<<<<<<<<<<<< + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nlx); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":167 + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":166 + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(9, 166, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/petscdmda.pxi":163 + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + * if dim >= 1: # <<<<<<<<<<<<<< + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":169 + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: # <<<<<<<<<<<<<< + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + */ + __pyx_t_3 = ((__pyx_v_dim >= 2) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":170 + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) # <<<<<<<<<<<<<< + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_ranges, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_1, (&__pyx_v_nly), __pyx_v__y)); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 1, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(9, 170, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":171 + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly # <<<<<<<<<<<<<< + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_n[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_n[0]) = __pyx_v_nly; + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscdmda.pxi":172 + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + */ + __pyx_t_3 = (((__pyx_v_n[0]) != __pyx_v_nly) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmda.pxi":174 + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) # <<<<<<<<<<<<<< + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nly); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_n[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":173 + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: + */ + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":172 + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(9, 172, __pyx_L1_error) + } + __pyx_L7:; + + /* "petsc4py/PETSc/petscdmda.pxi":169 + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: # <<<<<<<<<<<<<< + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":175 + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: # <<<<<<<<<<<<<< + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + */ + __pyx_t_3 = ((__pyx_v_dim >= 3) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":176 + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) # <<<<<<<<<<<<<< + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( + */ + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_ranges, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_4, (&__pyx_v_nlz), __pyx_v__z)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 2, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(9, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":177 + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz # <<<<<<<<<<<<<< + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_p[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_p[0]) = __pyx_v_nlz; + goto __pyx_L9; + } + + /* "petsc4py/PETSc/petscdmda.pxi":178 + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + */ + __pyx_t_3 = (((__pyx_v_p[0]) != __pyx_v_nlz) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmda.pxi":180 + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) # <<<<<<<<<<<<<< + * return tuple(ranges) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nlz); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_p[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":179 + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nlz), toInt(p[0]))) + * return tuple(ranges) + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":178 + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(9, 178, __pyx_L1_error) + } + __pyx_L9:; + + /* "petsc4py/PETSc/petscdmda.pxi":175 + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: # <<<<<<<<<<<<<< + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":181 + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + * return tuple(ranges) # <<<<<<<<<<<<<< + * + * cdef inline tuple toOwnershipRanges(PetscInt dim, + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_ranges); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":150 + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + * cdef inline tuple asOwnershipRanges(object ownership_ranges, # <<<<<<<<<<<<<< + * PetscInt dim, + * PetscInt *m, PetscInt *n, PetscInt *p, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.asOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":183 + * return tuple(ranges) + * + * cdef inline tuple toOwnershipRanges(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt m, PetscInt n, PetscInt p, + * const PetscInt *lx, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toOwnershipRanges(PetscInt __pyx_v_dim, PetscInt __pyx_v_m, PetscInt __pyx_v_n, PetscInt __pyx_v_p, PetscInt const *__pyx_v_lx, PetscInt const *__pyx_v_ly, PetscInt const *__pyx_v_lz) { + PyObject *__pyx_v_ranges = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toOwnershipRanges", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":189 + * const PetscInt *lz): + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] # <<<<<<<<<<<<<< + * if dim > 1: + * ranges.append(array_i(n, ly)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_m, __pyx_v_lx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(9, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_ranges = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":190 + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] + * if dim > 1: # <<<<<<<<<<<<<< + * ranges.append(array_i(n, ly)) + * if dim > 2: + */ + __pyx_t_3 = ((__pyx_v_dim > 1) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":191 + * ranges = [array_i(m, lx)] + * if dim > 1: + * ranges.append(array_i(n, ly)) # <<<<<<<<<<<<<< + * if dim > 2: + * ranges.append(array_i(p, lz)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_n, __pyx_v_ly)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_ranges, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(9, 191, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":190 + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] + * if dim > 1: # <<<<<<<<<<<<<< + * ranges.append(array_i(n, ly)) + * if dim > 2: + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":192 + * if dim > 1: + * ranges.append(array_i(n, ly)) + * if dim > 2: # <<<<<<<<<<<<<< + * ranges.append(array_i(p, lz)) + * return tuple(ranges) + */ + __pyx_t_3 = ((__pyx_v_dim > 2) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":193 + * ranges.append(array_i(n, ly)) + * if dim > 2: + * ranges.append(array_i(p, lz)) # <<<<<<<<<<<<<< + * return tuple(ranges) + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_p, __pyx_v_lz)); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_ranges, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(9, 193, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":192 + * if dim > 1: + * ranges.append(array_i(n, ly)) + * if dim > 2: # <<<<<<<<<<<<<< + * ranges.append(array_i(p, lz)) + * return tuple(ranges) + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":194 + * if dim > 2: + * ranges.append(array_i(p, lz)) + * return tuple(ranges) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_AsTuple(__pyx_v_ranges); if (unlikely(!__pyx_t_2)) __PYX_ERR(9, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":183 + * return tuple(ranges) + * + * cdef inline tuple toOwnershipRanges(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt m, PetscInt n, PetscInt p, + * const PetscInt *lx, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.toOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":205 + * cdef readonly ndarray array + * + * def __cinit__(self, DMDA da, Vec vec, bint DOF=False): # <<<<<<<<<<<<<< + * # + * cdef PetscInt dim=0, dof=0 + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_da = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_v_DOF; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_da,&__pyx_n_s_vec,&__pyx_n_s_DOF,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(9, 205, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_DOF); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(9, 205, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_da = ((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)values[0]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + if (values[2]) { + __pyx_v_DOF = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_DOF == (int)-1) && PyErr_Occurred())) __PYX_ERR(9, 205, __pyx_L3_error) + } else { + __pyx_v_DOF = ((int)0); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(9, 205, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_da), __pyx_ptype_8petsc4py_5PETSc_DMDA, 0, "da", 0))) __PYX_ERR(9, 205, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(9, 205, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array___cinit__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self), __pyx_v_da, __pyx_v_vec, __pyx_v_DOF); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array___cinit__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_da, struct PyPetscVecObject *__pyx_v_vec, int __pyx_v_DOF) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_dof; + PetscInt __pyx_v_lxs; + PetscInt __pyx_v_lys; + PetscInt __pyx_v_lzs; + PetscInt __pyx_v_lxm; + PetscInt __pyx_v_lym; + PetscInt __pyx_v_lzm; + PetscInt __pyx_v_gxs; + PetscInt __pyx_v_gys; + PetscInt __pyx_v_gzs; + PetscInt __pyx_v_gxm; + PetscInt __pyx_v_gym; + PetscInt __pyx_v_gzm; + PetscInt __pyx_v_n; + PetscInt __pyx_v_xs; + PetscInt __pyx_v_ys; + PetscInt __pyx_v_zs; + PetscInt __pyx_v_xm; + PetscInt __pyx_v_ym; + PetscInt __pyx_v_zm; + PyObject *__pyx_v_starts = 0; + PyObject *__pyx_v_sizes = 0; + Py_ssize_t __pyx_v_k; + Py_ssize_t __pyx_v_f; + Py_ssize_t __pyx_v_d; + PyObject *__pyx_v_shape = 0; + PyObject *__pyx_v_strides = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscInt __pyx_t_4; + PetscInt __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":207 + * def __cinit__(self, DMDA da, Vec vec, bint DOF=False): + * # + * cdef PetscInt dim=0, dof=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(da.dm, + * &dim, NULL, NULL, NULL, NULL, NULL, NULL, + */ + __pyx_v_dim = 0; + __pyx_v_dof = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":208 + * # + * cdef PetscInt dim=0, dof=0 + * CHKERR( DMDAGetInfo(da.dm, # <<<<<<<<<<<<<< + * &dim, NULL, NULL, NULL, NULL, NULL, NULL, + * &dof, NULL, NULL, NULL, NULL, NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_da->__pyx_base.dm, (&__pyx_v_dim), NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_dof), NULL, NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(9, 208, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":211 + * &dim, NULL, NULL, NULL, NULL, NULL, NULL, + * &dof, NULL, NULL, NULL, NULL, NULL) ) + * cdef PetscInt lxs=0, lys=0, lzs=0 # <<<<<<<<<<<<<< + * cdef PetscInt lxm=0, lym=0, lzm=0 + * CHKERR( DMDAGetCorners(da.dm, + */ + __pyx_v_lxs = 0; + __pyx_v_lys = 0; + __pyx_v_lzs = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":212 + * &dof, NULL, NULL, NULL, NULL, NULL) ) + * cdef PetscInt lxs=0, lys=0, lzs=0 + * cdef PetscInt lxm=0, lym=0, lzm=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetCorners(da.dm, + * &lxs, &lys, &lzs, + */ + __pyx_v_lxm = 0; + __pyx_v_lym = 0; + __pyx_v_lzm = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":213 + * cdef PetscInt lxs=0, lys=0, lzs=0 + * cdef PetscInt lxm=0, lym=0, lzm=0 + * CHKERR( DMDAGetCorners(da.dm, # <<<<<<<<<<<<<< + * &lxs, &lys, &lzs, + * &lxm, &lym, &lzm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetCorners(__pyx_v_da->__pyx_base.dm, (&__pyx_v_lxs), (&__pyx_v_lys), (&__pyx_v_lzs), (&__pyx_v_lxm), (&__pyx_v_lym), (&__pyx_v_lzm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(9, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":216 + * &lxs, &lys, &lzs, + * &lxm, &lym, &lzm) ) + * cdef PetscInt gxs=0, gys=0, gzs=0 # <<<<<<<<<<<<<< + * cdef PetscInt gxm=0, gym=0, gzm=0 + * CHKERR( DMDAGetGhostCorners(da.dm, + */ + __pyx_v_gxs = 0; + __pyx_v_gys = 0; + __pyx_v_gzs = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":217 + * &lxm, &lym, &lzm) ) + * cdef PetscInt gxs=0, gys=0, gzs=0 + * cdef PetscInt gxm=0, gym=0, gzm=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetGhostCorners(da.dm, + * &gxs, &gys, &gzs, + */ + __pyx_v_gxm = 0; + __pyx_v_gym = 0; + __pyx_v_gzm = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":218 + * cdef PetscInt gxs=0, gys=0, gzs=0 + * cdef PetscInt gxm=0, gym=0, gzm=0 + * CHKERR( DMDAGetGhostCorners(da.dm, # <<<<<<<<<<<<<< + * &gxs, &gys, &gzs, + * &gxm, &gym, &gzm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetGhostCorners(__pyx_v_da->__pyx_base.dm, (&__pyx_v_gxs), (&__pyx_v_gys), (&__pyx_v_gzs), (&__pyx_v_gxm), (&__pyx_v_gym), (&__pyx_v_gzm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(9, 218, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":222 + * &gxm, &gym, &gzm) ) + * # + * cdef PetscInt n=0 # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(vec.vec, &n) ) + * cdef PetscInt xs, ys, zs, xm, ym, zm + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":223 + * # + * cdef PetscInt n=0 + * CHKERR( VecGetLocalSize(vec.vec, &n) ) # <<<<<<<<<<<<<< + * cdef PetscInt xs, ys, zs, xm, ym, zm + * if (n == lxm*lym*lzm*dof): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_vec->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(9, 223, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":225 + * CHKERR( VecGetLocalSize(vec.vec, &n) ) + * cdef PetscInt xs, ys, zs, xm, ym, zm + * if (n == lxm*lym*lzm*dof): # <<<<<<<<<<<<<< + * xs, ys, zs = lxs, lys, lzs + * xm, ym, zm = lxm, lym, lzm + */ + __pyx_t_2 = ((__pyx_v_n == (((__pyx_v_lxm * __pyx_v_lym) * __pyx_v_lzm) * __pyx_v_dof)) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":226 + * cdef PetscInt xs, ys, zs, xm, ym, zm + * if (n == lxm*lym*lzm*dof): + * xs, ys, zs = lxs, lys, lzs # <<<<<<<<<<<<<< + * xm, ym, zm = lxm, lym, lzm + * elif (n == gxm*gym*gzm*dof): + */ + __pyx_t_3 = __pyx_v_lxs; + __pyx_t_4 = __pyx_v_lys; + __pyx_t_5 = __pyx_v_lzs; + __pyx_v_xs = __pyx_t_3; + __pyx_v_ys = __pyx_t_4; + __pyx_v_zs = __pyx_t_5; + + /* "petsc4py/PETSc/petscdmda.pxi":227 + * if (n == lxm*lym*lzm*dof): + * xs, ys, zs = lxs, lys, lzs + * xm, ym, zm = lxm, lym, lzm # <<<<<<<<<<<<<< + * elif (n == gxm*gym*gzm*dof): + * xs, ys, zs = gxs, gys, gzs + */ + __pyx_t_5 = __pyx_v_lxm; + __pyx_t_4 = __pyx_v_lym; + __pyx_t_3 = __pyx_v_lzm; + __pyx_v_xm = __pyx_t_5; + __pyx_v_ym = __pyx_t_4; + __pyx_v_zm = __pyx_t_3; + + /* "petsc4py/PETSc/petscdmda.pxi":225 + * CHKERR( VecGetLocalSize(vec.vec, &n) ) + * cdef PetscInt xs, ys, zs, xm, ym, zm + * if (n == lxm*lym*lzm*dof): # <<<<<<<<<<<<<< + * xs, ys, zs = lxs, lys, lzs + * xm, ym, zm = lxm, lym, lzm + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":228 + * xs, ys, zs = lxs, lys, lzs + * xm, ym, zm = lxm, lym, lzm + * elif (n == gxm*gym*gzm*dof): # <<<<<<<<<<<<<< + * xs, ys, zs = gxs, gys, gzs + * xm, ym, zm = gxm, gym, gzm + */ + __pyx_t_2 = ((__pyx_v_n == (((__pyx_v_gxm * __pyx_v_gym) * __pyx_v_gzm) * __pyx_v_dof)) != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/petscdmda.pxi":229 + * xm, ym, zm = lxm, lym, lzm + * elif (n == gxm*gym*gzm*dof): + * xs, ys, zs = gxs, gys, gzs # <<<<<<<<<<<<<< + * xm, ym, zm = gxm, gym, gzm + * else: + */ + __pyx_t_3 = __pyx_v_gxs; + __pyx_t_4 = __pyx_v_gys; + __pyx_t_5 = __pyx_v_gzs; + __pyx_v_xs = __pyx_t_3; + __pyx_v_ys = __pyx_t_4; + __pyx_v_zs = __pyx_t_5; + + /* "petsc4py/PETSc/petscdmda.pxi":230 + * elif (n == gxm*gym*gzm*dof): + * xs, ys, zs = gxs, gys, gzs + * xm, ym, zm = gxm, gym, gzm # <<<<<<<<<<<<<< + * else: + * raise ValueError( + */ + __pyx_t_5 = __pyx_v_gxm; + __pyx_t_4 = __pyx_v_gym; + __pyx_t_3 = __pyx_v_gzm; + __pyx_v_xm = __pyx_t_5; + __pyx_v_ym = __pyx_t_4; + __pyx_v_zm = __pyx_t_3; + + /* "petsc4py/PETSc/petscdmda.pxi":228 + * xs, ys, zs = lxs, lys, lzs + * xm, ym, zm = lxm, lym, lzm + * elif (n == gxm*gym*gzm*dof): # <<<<<<<<<<<<<< + * xs, ys, zs = gxs, gys, gzs + * xm, ym, zm = gxm, gym, gzm + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmda.pxi":232 + * xm, ym, zm = gxm, gym, gzm + * else: + * raise ValueError( # <<<<<<<<<<<<<< + * "Vector local size %d is not compatible " + * "with DMDA local sizes %s" + */ + /*else*/ { + + /* "petsc4py/PETSc/petscdmda.pxi":235 + * "Vector local size %d is not compatible " + * "with DMDA local sizes %s" + * % (n, toDims(dim, lxm, lym, lzm))) # <<<<<<<<<<<<<< + * # + * cdef tuple starts = toDims(dim, xs, ys, zs) + */ + __pyx_t_6 = PyInt_FromSsize_t(((Py_ssize_t)__pyx_v_n)); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_lxm, __pyx_v_lym, __pyx_v_lzm); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_Vector_local_size_d_is_not_compa, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":232 + * xm, ym, zm = gxm, gym, gzm + * else: + * raise ValueError( # <<<<<<<<<<<<<< + * "Vector local size %d is not compatible " + * "with DMDA local sizes %s" + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(9, 232, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmda.pxi":237 + * % (n, toDims(dim, lxm, lym, lzm))) + * # + * cdef tuple starts = toDims(dim, xs, ys, zs) # <<<<<<<<<<<<<< + * cdef tuple sizes = toDims(dim, xm, ym, zm) + * cdef Py_ssize_t k = sizeof(PetscScalar) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_xs, __pyx_v_ys, __pyx_v_zs); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_v_starts = ((PyObject*)__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":238 + * # + * cdef tuple starts = toDims(dim, xs, ys, zs) + * cdef tuple sizes = toDims(dim, xm, ym, zm) # <<<<<<<<<<<<<< + * cdef Py_ssize_t k = sizeof(PetscScalar) + * cdef Py_ssize_t f = dof + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_xm, __pyx_v_ym, __pyx_v_zm); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_v_sizes = ((PyObject*)__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":239 + * cdef tuple starts = toDims(dim, xs, ys, zs) + * cdef tuple sizes = toDims(dim, xm, ym, zm) + * cdef Py_ssize_t k = sizeof(PetscScalar) # <<<<<<<<<<<<<< + * cdef Py_ssize_t f = dof + * cdef Py_ssize_t d = dim + */ + __pyx_v_k = ((Py_ssize_t)(sizeof(PetscScalar))); + + /* "petsc4py/PETSc/petscdmda.pxi":240 + * cdef tuple sizes = toDims(dim, xm, ym, zm) + * cdef Py_ssize_t k = sizeof(PetscScalar) + * cdef Py_ssize_t f = dof # <<<<<<<<<<<<<< + * cdef Py_ssize_t d = dim + * cdef tuple shape = toDims(dim, xm, ym, zm) + */ + __pyx_v_f = ((Py_ssize_t)__pyx_v_dof); + + /* "petsc4py/PETSc/petscdmda.pxi":241 + * cdef Py_ssize_t k = sizeof(PetscScalar) + * cdef Py_ssize_t f = dof + * cdef Py_ssize_t d = dim # <<<<<<<<<<<<<< + * cdef tuple shape = toDims(dim, xm, ym, zm) + * cdef tuple strides = (k*f, k*f*xm, k*f*xm*ym)[:d] + */ + __pyx_v_d = ((Py_ssize_t)__pyx_v_dim); + + /* "petsc4py/PETSc/petscdmda.pxi":242 + * cdef Py_ssize_t f = dof + * cdef Py_ssize_t d = dim + * cdef tuple shape = toDims(dim, xm, ym, zm) # <<<<<<<<<<<<<< + * cdef tuple strides = (k*f, k*f*xm, k*f*xm*ym)[:d] + * if DOF or f > 1: shape += (f,) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_xm, __pyx_v_ym, __pyx_v_zm); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_v_shape = ((PyObject*)__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":243 + * cdef Py_ssize_t d = dim + * cdef tuple shape = toDims(dim, xm, ym, zm) + * cdef tuple strides = (k*f, k*f*xm, k*f*xm*ym)[:d] # <<<<<<<<<<<<<< + * if DOF or f > 1: shape += (f,) + * if DOF or f > 1: strides += (k,) + */ + __pyx_t_8 = PyInt_FromSsize_t((__pyx_v_k * __pyx_v_f)); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyInt_FromSsize_t(((__pyx_v_k * __pyx_v_f) * __pyx_v_xm)); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = PyInt_FromSsize_t((((__pyx_v_k * __pyx_v_f) * __pyx_v_xm) * __pyx_v_ym)); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_6); + __pyx_t_8 = 0; + __pyx_t_7 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_t_9, 0, __pyx_v_d, NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (!(likely(PyTuple_CheckExact(__pyx_t_6))||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(9, 243, __pyx_L1_error) + __pyx_v_strides = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":244 + * cdef tuple shape = toDims(dim, xm, ym, zm) + * cdef tuple strides = (k*f, k*f*xm, k*f*xm*ym)[:d] + * if DOF or f > 1: shape += (f,) # <<<<<<<<<<<<<< + * if DOF or f > 1: strides += (k,) + * # + */ + __pyx_t_10 = (__pyx_v_DOF != 0); + if (!__pyx_t_10) { + } else { + __pyx_t_2 = __pyx_t_10; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_10 = ((__pyx_v_f > 1) != 0); + __pyx_t_2 = __pyx_t_10; + __pyx_L5_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_f); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_shape, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF_SET(__pyx_v_shape, ((PyObject*)__pyx_t_6)); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":245 + * cdef tuple strides = (k*f, k*f*xm, k*f*xm*ym)[:d] + * if DOF or f > 1: shape += (f,) + * if DOF or f > 1: strides += (k,) # <<<<<<<<<<<<<< + * # + * self.vecbuf = _Vec_buffer(vec) + */ + __pyx_t_10 = (__pyx_v_DOF != 0); + if (!__pyx_t_10) { + } else { + __pyx_t_2 = __pyx_t_10; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_10 = ((__pyx_v_f > 1) != 0); + __pyx_t_2 = __pyx_t_10; + __pyx_L8_bool_binop_done:; + if (__pyx_t_2) { + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(9, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); + __pyx_t_6 = 0; + __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_strides, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF_SET(__pyx_v_strides, ((PyObject*)__pyx_t_6)); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":247 + * if DOF or f > 1: strides += (k,) + * # + * self.vecbuf = _Vec_buffer(vec) # <<<<<<<<<<<<<< + * self.starts = starts + * self.sizes = sizes + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_buffer), ((PyObject *)__pyx_v_vec)); if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_v_self->vecbuf); + __Pyx_DECREF(((PyObject *)__pyx_v_self->vecbuf)); + __pyx_v_self->vecbuf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":248 + * # + * self.vecbuf = _Vec_buffer(vec) + * self.starts = starts # <<<<<<<<<<<<<< + * self.sizes = sizes + * self.shape = shape + */ + __Pyx_INCREF(__pyx_v_starts); + __Pyx_GIVEREF(__pyx_v_starts); + __Pyx_GOTREF(__pyx_v_self->starts); + __Pyx_DECREF(__pyx_v_self->starts); + __pyx_v_self->starts = __pyx_v_starts; + + /* "petsc4py/PETSc/petscdmda.pxi":249 + * self.vecbuf = _Vec_buffer(vec) + * self.starts = starts + * self.sizes = sizes # <<<<<<<<<<<<<< + * self.shape = shape + * self.strides = strides + */ + __Pyx_INCREF(__pyx_v_sizes); + __Pyx_GIVEREF(__pyx_v_sizes); + __Pyx_GOTREF(__pyx_v_self->sizes); + __Pyx_DECREF(__pyx_v_self->sizes); + __pyx_v_self->sizes = __pyx_v_sizes; + + /* "petsc4py/PETSc/petscdmda.pxi":250 + * self.starts = starts + * self.sizes = sizes + * self.shape = shape # <<<<<<<<<<<<<< + * self.strides = strides + * + */ + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + __Pyx_GOTREF(__pyx_v_self->shape); + __Pyx_DECREF(__pyx_v_self->shape); + __pyx_v_self->shape = __pyx_v_shape; + + /* "petsc4py/PETSc/petscdmda.pxi":251 + * self.sizes = sizes + * self.shape = shape + * self.strides = strides # <<<<<<<<<<<<<< + * + * cdef int acquire(self) except -1: + */ + __Pyx_INCREF(__pyx_v_strides); + __Pyx_GIVEREF(__pyx_v_strides); + __Pyx_GOTREF(__pyx_v_self->strides); + __Pyx_DECREF(__pyx_v_self->strides); + __pyx_v_self->strides = __pyx_v_strides; + + /* "petsc4py/PETSc/petscdmda.pxi":205 + * cdef readonly ndarray array + * + * def __cinit__(self, DMDA da, Vec vec, bint DOF=False): # <<<<<<<<<<<<<< + * # + * cdef PetscInt dim=0, dof=0 + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_starts); + __Pyx_XDECREF(__pyx_v_sizes); + __Pyx_XDECREF(__pyx_v_shape); + __Pyx_XDECREF(__pyx_v_strides); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":253 + * self.strides = strides + * + * cdef int acquire(self) except -1: # <<<<<<<<<<<<<< + * self.vecbuf.acquire() + * if self.array is None: + */ + +static int __pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_acquire(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("acquire", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":254 + * + * cdef int acquire(self) except -1: + * self.vecbuf.acquire() # <<<<<<<<<<<<<< + * if self.array is None: + * self.array = asarray(self.vecbuf) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->vecbuf->__pyx_vtab)->acquire(__pyx_v_self->vecbuf); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 254, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":255 + * cdef int acquire(self) except -1: + * self.vecbuf.acquire() + * if self.array is None: # <<<<<<<<<<<<<< + * self.array = asarray(self.vecbuf) + * self.array.shape = self.shape + */ + __pyx_t_2 = (((PyObject *)__pyx_v_self->array) == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmda.pxi":256 + * self.vecbuf.acquire() + * if self.array is None: + * self.array = asarray(self.vecbuf) # <<<<<<<<<<<<<< + * self.array.shape = self.shape + * self.array.strides = self.strides + */ + __pyx_t_4 = ((PyObject *)__pyx_v_self->vecbuf); + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_4)); if (unlikely(!__pyx_t_5)) __PYX_ERR(9, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GIVEREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_v_self->array); + __Pyx_DECREF(((PyObject *)__pyx_v_self->array)); + __pyx_v_self->array = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":257 + * if self.array is None: + * self.array = asarray(self.vecbuf) + * self.array.shape = self.shape # <<<<<<<<<<<<<< + * self.array.strides = self.strides + * return 0 + */ + __pyx_t_5 = __pyx_v_self->shape; + __Pyx_INCREF(__pyx_t_5); + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->array), __pyx_n_s_shape, __pyx_t_5) < 0) __PYX_ERR(9, 257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":258 + * self.array = asarray(self.vecbuf) + * self.array.shape = self.shape + * self.array.strides = self.strides # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_5 = __pyx_v_self->strides; + __Pyx_INCREF(__pyx_t_5); + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->array), __pyx_n_s_strides, __pyx_t_5) < 0) __PYX_ERR(9, 258, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":255 + * cdef int acquire(self) except -1: + * self.vecbuf.acquire() + * if self.array is None: # <<<<<<<<<<<<<< + * self.array = asarray(self.vecbuf) + * self.array.shape = self.shape + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":259 + * self.array.shape = self.shape + * self.array.strides = self.strides + * return 0 # <<<<<<<<<<<<<< + * + * cdef int release(self) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":253 + * self.strides = strides + * + * cdef int acquire(self) except -1: # <<<<<<<<<<<<<< + * self.vecbuf.acquire() + * if self.array is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.acquire", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":261 + * return 0 + * + * cdef int release(self) except -1: # <<<<<<<<<<<<<< + * self.vecbuf.release() + * self.array = None + */ + +static int __pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_release(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("release", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":262 + * + * cdef int release(self) except -1: + * self.vecbuf.release() # <<<<<<<<<<<<<< + * self.array = None + * return 0 + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_self->vecbuf->__pyx_vtab)->release(__pyx_v_self->vecbuf); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 262, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":263 + * cdef int release(self) except -1: + * self.vecbuf.release() + * self.array = None # <<<<<<<<<<<<<< + * return 0 + * + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->array); + __Pyx_DECREF(((PyObject *)__pyx_v_self->array)); + __pyx_v_self->array = ((PyArrayObject *)Py_None); + + /* "petsc4py/PETSc/petscdmda.pxi":264 + * self.vecbuf.release() + * self.array = None + * return 0 # <<<<<<<<<<<<<< + * + * # + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":261 + * return 0 + * + * cdef int release(self) except -1: # <<<<<<<<<<<<<< + * self.vecbuf.release() + * self.array = None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.release", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":268 + * # + * + * def __getitem__(self, index): # <<<<<<<<<<<<<< + * self.acquire() + * index = adjust_index_exp(self.starts, index) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_3__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_2__getitem__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self), ((PyObject *)__pyx_v_index)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_2__getitem__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "petsc4py/PETSc/petscdmda.pxi":269 + * + * def __getitem__(self, index): + * self.acquire() # <<<<<<<<<<<<<< + * index = adjust_index_exp(self.starts, index) + * return self.array[index] + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 269, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":270 + * def __getitem__(self, index): + * self.acquire() + * index = adjust_index_exp(self.starts, index) # <<<<<<<<<<<<<< + * return self.array[index] + * + */ + __pyx_t_2 = __pyx_v_self->starts; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_adjust_index_exp(__pyx_t_2, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":271 + * self.acquire() + * index = adjust_index_exp(self.starts, index) + * return self.array[index] # <<<<<<<<<<<<<< + * + * def __setitem__(self, index, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self->array), __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":268 + * # + * + * def __getitem__(self, index): # <<<<<<<<<<<<<< + * self.acquire() + * index = adjust_index_exp(self.starts, index) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":273 + * return self.array[index] + * + * def __setitem__(self, index, value): # <<<<<<<<<<<<<< + * self.acquire() + * index = adjust_index_exp(self.starts, index) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_4__setitem__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_4__setitem__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "petsc4py/PETSc/petscdmda.pxi":274 + * + * def __setitem__(self, index, value): + * self.acquire() # <<<<<<<<<<<<<< + * index = adjust_index_exp(self.starts, index) + * self.array[index] = value + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 274, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":275 + * def __setitem__(self, index, value): + * self.acquire() + * index = adjust_index_exp(self.starts, index) # <<<<<<<<<<<<<< + * self.array[index] = value + * + */ + __pyx_t_2 = __pyx_v_self->starts; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_adjust_index_exp(__pyx_t_2, __pyx_v_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":276 + * self.acquire() + * index = adjust_index_exp(self.starts, index) + * self.array[index] = value # <<<<<<<<<<<<<< + * + * # 'with' statement (PEP 343) + */ + if (unlikely(PyObject_SetItem(((PyObject *)__pyx_v_self->array), __pyx_v_index, __pyx_v_value) < 0)) __PYX_ERR(9, 276, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":273 + * return self.array[index] + * + * def __setitem__(self, index, value): # <<<<<<<<<<<<<< + * self.acquire() + * index = adjust_index_exp(self.starts, index) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_index); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":280 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.acquire() + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15_DMDA_Vec_array_6__enter__[] = "_DMDA_Vec_array.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6__enter__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6__enter__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":281 + * + * def __enter__(self): + * self.acquire() # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self->__pyx_vtab)->acquire(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":282 + * def __enter__(self): + * self.acquire() + * return self # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":280 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.acquire() + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":284 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_9__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15_DMDA_Vec_array_8__exit__[] = "_DMDA_Vec_array.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_9__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_8__exit__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_8__exit__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":285 + * + * def __exit__(self, *exc): + * self.release() # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self->__pyx_vtab)->release(__pyx_v_self); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(9, 285, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmda.pxi":286 + * def __exit__(self, *exc): + * self.release() + * return None # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":284 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.release() + * return None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._DMDA_Vec_array.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":201 + * + * cdef _Vec_buffer vecbuf + * cdef readonly tuple starts, sizes # <<<<<<<<<<<<<< + * cdef readonly tuple shape, strides + * cdef readonly ndarray array + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts___get__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->starts); + __pyx_r = __pyx_v_self->starts; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->sizes); + __pyx_r = __pyx_v_self->sizes; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":202 + * cdef _Vec_buffer vecbuf + * cdef readonly tuple starts, sizes + * cdef readonly tuple shape, strides # <<<<<<<<<<<<<< + * cdef readonly ndarray array + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape___get__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->shape); + __pyx_r = __pyx_v_self->shape; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides___get__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->strides); + __pyx_r = __pyx_v_self->strides; + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":203 + * cdef readonly tuple starts, sizes + * cdef readonly tuple shape, strides + * cdef readonly ndarray array # <<<<<<<<<<<<<< + * + * def __cinit__(self, DMDA da, Vec vec, bint DOF=False): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5array_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5array_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5array___get__(((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15_DMDA_Vec_array_5array___get__(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self->array)); + __pyx_r = ((PyObject *)__pyx_v_self->array); + goto __pyx_L0; + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":289 + * + * + * cdef object adjust_index_exp(object starts, object index): # <<<<<<<<<<<<<< + * if not isinstance(index, tuple): + * return adjust_index(starts[0], index) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_adjust_index_exp(PyObject *__pyx_v_starts, PyObject *__pyx_v_index) { + PyObject *__pyx_v_i = NULL; + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjust_index_exp", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "petsc4py/PETSc/petscdmda.pxi":290 + * + * cdef object adjust_index_exp(object starts, object index): + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * return adjust_index(starts[0], index) + * index = list(index) + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_index); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":291 + * cdef object adjust_index_exp(object starts, object index): + * if not isinstance(index, tuple): + * return adjust_index(starts[0], index) # <<<<<<<<<<<<<< + * index = list(index) + * for i, start in enumerate(starts): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_starts, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_adjust_index(__pyx_t_3, __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":290 + * + * cdef object adjust_index_exp(object starts, object index): + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * return adjust_index(starts[0], index) + * index = list(index) + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":292 + * if not isinstance(index, tuple): + * return adjust_index(starts[0], index) + * index = list(index) # <<<<<<<<<<<<<< + * for i, start in enumerate(starts): + * index[i] = adjust_index(start, index[i]) + */ + __pyx_t_4 = PySequence_List(__pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":293 + * return adjust_index(starts[0], index) + * index = list(index) + * for i, start in enumerate(starts): # <<<<<<<<<<<<<< + * index[i] = adjust_index(start, index[i]) + * index = tuple(index) + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_4 = __pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_starts)) || PyTuple_CheckExact(__pyx_v_starts)) { + __pyx_t_3 = __pyx_v_starts; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_starts); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(9, 293, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(9, 293, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(9, 293, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_3); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(9, 293, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_start, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_INCREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_4); + __pyx_t_4 = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":294 + * index = list(index) + * for i, start in enumerate(starts): + * index[i] = adjust_index(start, index[i]) # <<<<<<<<<<<<<< + * index = tuple(index) + * return index + */ + __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_index, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(9, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_adjust_index(__pyx_v_start, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(9, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(PyObject_SetItem(__pyx_v_index, __pyx_v_i, __pyx_t_8) < 0)) __PYX_ERR(9, 294, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":293 + * return adjust_index(starts[0], index) + * index = list(index) + * for i, start in enumerate(starts): # <<<<<<<<<<<<<< + * index[i] = adjust_index(start, index[i]) + * index = tuple(index) + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":295 + * for i, start in enumerate(starts): + * index[i] = adjust_index(start, index[i]) + * index = tuple(index) # <<<<<<<<<<<<<< + * return index + * + */ + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(9, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":296 + * index[i] = adjust_index(start, index[i]) + * index = tuple(index) + * return index # <<<<<<<<<<<<<< + * + * cdef object adjust_index(object lbound, object index): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_index); + __pyx_r = __pyx_v_index; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":289 + * + * + * cdef object adjust_index_exp(object starts, object index): # <<<<<<<<<<<<<< + * if not isinstance(index, tuple): + * return adjust_index(starts[0], index) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.adjust_index_exp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmda.pxi":298 + * return index + * + * cdef object adjust_index(object lbound, object index): # <<<<<<<<<<<<<< + * if index is None: + * return index + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_adjust_index(PyObject *__pyx_v_lbound, PyObject *__pyx_v_index) { + PyObject *__pyx_v_start = NULL; + PyObject *__pyx_v_stop = NULL; + PyObject *__pyx_v_step = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjust_index", 0); + + /* "petsc4py/PETSc/petscdmda.pxi":299 + * + * cdef object adjust_index(object lbound, object index): + * if index is None: # <<<<<<<<<<<<<< + * return index + * if index is Ellipsis: + */ + __pyx_t_1 = (__pyx_v_index == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":300 + * cdef object adjust_index(object lbound, object index): + * if index is None: + * return index # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return index + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_index); + __pyx_r = __pyx_v_index; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":299 + * + * cdef object adjust_index(object lbound, object index): + * if index is None: # <<<<<<<<<<<<<< + * return index + * if index is Ellipsis: + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":301 + * if index is None: + * return index + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return index + * if isinstance(index, slice): + */ + __pyx_t_2 = (__pyx_v_index == __pyx_builtin_Ellipsis); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/petscdmda.pxi":302 + * return index + * if index is Ellipsis: + * return index # <<<<<<<<<<<<<< + * if isinstance(index, slice): + * start = index.start + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_index); + __pyx_r = __pyx_v_index; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":301 + * if index is None: + * return index + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return index + * if isinstance(index, slice): + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":303 + * if index is Ellipsis: + * return index + * if isinstance(index, slice): # <<<<<<<<<<<<<< + * start = index.start + * stop = index.stop + */ + __pyx_t_1 = PySlice_Check(__pyx_v_index); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmda.pxi":304 + * return index + * if isinstance(index, slice): + * start = index.start # <<<<<<<<<<<<<< + * stop = index.stop + * step = index.step + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_start = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":305 + * if isinstance(index, slice): + * start = index.start + * stop = index.stop # <<<<<<<<<<<<<< + * step = index.step + * if start is not None: start -= lbound + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_stop = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":306 + * start = index.start + * stop = index.stop + * step = index.step # <<<<<<<<<<<<<< + * if start is not None: start -= lbound + * if stop is not None: stop -= lbound + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_step = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":307 + * stop = index.stop + * step = index.step + * if start is not None: start -= lbound # <<<<<<<<<<<<<< + * if stop is not None: stop -= lbound + * return slice(start, stop, step) + */ + __pyx_t_2 = (__pyx_v_start != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_v_start, __pyx_v_lbound); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_start, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":308 + * step = index.step + * if start is not None: start -= lbound + * if stop is not None: stop -= lbound # <<<<<<<<<<<<<< + * return slice(start, stop, step) + * try: + */ + __pyx_t_1 = (__pyx_v_stop != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_v_stop, __pyx_v_lbound); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_stop, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":309 + * if start is not None: start -= lbound + * if stop is not None: stop -= lbound + * return slice(start, stop, step) # <<<<<<<<<<<<<< + * try: + * return index - lbound + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PySlice_New(__pyx_v_start, __pyx_v_stop, __pyx_v_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmda.pxi":303 + * if index is Ellipsis: + * return index + * if isinstance(index, slice): # <<<<<<<<<<<<<< + * start = index.start + * stop = index.stop + */ + } + + /* "petsc4py/PETSc/petscdmda.pxi":310 + * if stop is not None: stop -= lbound + * return slice(start, stop, step) + * try: # <<<<<<<<<<<<<< + * return index - lbound + * except TypeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/petscdmda.pxi":311 + * return slice(start, stop, step) + * try: + * return index - lbound # <<<<<<<<<<<<<< + * except TypeError: + * return index + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyNumber_Subtract(__pyx_v_index, __pyx_v_lbound); if (unlikely(!__pyx_t_3)) __PYX_ERR(9, 311, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L12_try_return; + + /* "petsc4py/PETSc/petscdmda.pxi":310 + * if stop is not None: stop -= lbound + * return slice(start, stop, step) + * try: # <<<<<<<<<<<<<< + * return index - lbound + * except TypeError: + */ + } + __pyx_L8_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmda.pxi":312 + * try: + * return index - lbound + * except TypeError: # <<<<<<<<<<<<<< + * return index + * + */ + __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_7) { + __Pyx_AddTraceback("petsc4py.PETSc.adjust_index", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) __PYX_ERR(9, 312, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_9); + + /* "petsc4py/PETSc/petscdmda.pxi":313 + * return index - lbound + * except TypeError: + * return index # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_index); + __pyx_r = __pyx_v_index; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L11_except_return; + } + goto __pyx_L10_except_error; + __pyx_L10_except_error:; + + /* "petsc4py/PETSc/petscdmda.pxi":310 + * if stop is not None: stop -= lbound + * return slice(start, stop, step) + * try: # <<<<<<<<<<<<<< + * return index - lbound + * except TypeError: + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L12_try_return:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L0; + __pyx_L11_except_return:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmda.pxi":298 + * return index + * + * cdef object adjust_index(object lbound, object index): # <<<<<<<<<<<<<< + * if index is None: + * return index + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.adjust_index", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_start); + __Pyx_XDECREF(__pyx_v_stop); + __Pyx_XDECREF(__pyx_v_step); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":85 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMStagStencilType asStagStencil(object stencil) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil, str): + */ + +static CYTHON_INLINE DMStagStencilType __pyx_f_8petsc4py_5PETSc_asStagStencil(PyObject *__pyx_v_stencil) { + DMStagStencilType __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMStagStencilType __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStagStencil", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":87 + * cdef inline PetscDMStagStencilType asStagStencil(object stencil) \ + * except (-1): + * if isinstance(stencil, str): # <<<<<<<<<<<<<< + * if stencil == "star": return DMSTAG_STENCIL_STAR + * elif stencil == "box": return DMSTAG_STENCIL_BOX + */ + __pyx_t_1 = PyString_Check(__pyx_v_stencil); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmstag.pxi":88 + * except (-1): + * if isinstance(stencil, str): + * if stencil == "star": return DMSTAG_STENCIL_STAR # <<<<<<<<<<<<<< + * elif stencil == "box": return DMSTAG_STENCIL_BOX + * elif stencil == "none": return DMSTAG_STENCIL_NONE + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil, __pyx_n_s_star, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 88, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_STENCIL_STAR; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":89 + * if isinstance(stencil, str): + * if stencil == "star": return DMSTAG_STENCIL_STAR + * elif stencil == "box": return DMSTAG_STENCIL_BOX # <<<<<<<<<<<<<< + * elif stencil == "none": return DMSTAG_STENCIL_NONE + * else: raise ValueError("unknown stencil type: %s" % stencil) + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil, __pyx_n_s_box, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 89, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_STENCIL_BOX; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":90 + * if stencil == "star": return DMSTAG_STENCIL_STAR + * elif stencil == "box": return DMSTAG_STENCIL_BOX + * elif stencil == "none": return DMSTAG_STENCIL_NONE # <<<<<<<<<<<<<< + * else: raise ValueError("unknown stencil type: %s" % stencil) + * return stencil + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil, __pyx_n_s_none, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 90, __pyx_L1_error) + if (likely(__pyx_t_2)) { + __pyx_r = DMSTAG_STENCIL_NONE; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":91 + * elif stencil == "box": return DMSTAG_STENCIL_BOX + * elif stencil == "none": return DMSTAG_STENCIL_NONE + * else: raise ValueError("unknown stencil type: %s" % stencil) # <<<<<<<<<<<<<< + * return stencil + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_stencil_type_s, __pyx_v_stencil); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(27, 91, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmstag.pxi":87 + * cdef inline PetscDMStagStencilType asStagStencil(object stencil) \ + * except (-1): + * if isinstance(stencil, str): # <<<<<<<<<<<<<< + * if stencil == "star": return DMSTAG_STENCIL_STAR + * elif stencil == "box": return DMSTAG_STENCIL_BOX + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":92 + * elif stencil == "none": return DMSTAG_STENCIL_NONE + * else: raise ValueError("unknown stencil type: %s" % stencil) + * return stencil # <<<<<<<<<<<<<< + * + * cdef inline object toStagStencil(PetscDMStagStencilType stype): + */ + __pyx_t_5 = ((DMStagStencilType)__Pyx_PyInt_As_DMStagStencilType(__pyx_v_stencil)); if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 92, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":85 + * # -------------------------------------------------------------------- + * + * cdef inline PetscDMStagStencilType asStagStencil(object stencil) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil, str): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.asStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMStagStencilType)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":94 + * return stencil + * + * cdef inline object toStagStencil(PetscDMStagStencilType stype): # <<<<<<<<<<<<<< + * if stype == DMSTAG_STENCIL_STAR: return "star" + * elif stype == DMSTAG_STENCIL_BOX: return "box" + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagStencil(DMStagStencilType __pyx_v_stype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("toStagStencil", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":95 + * + * cdef inline object toStagStencil(PetscDMStagStencilType stype): + * if stype == DMSTAG_STENCIL_STAR: return "star" # <<<<<<<<<<<<<< + * elif stype == DMSTAG_STENCIL_BOX: return "box" + * elif stype == DMSTAG_STENCIL_NONE: return "none" + */ + __pyx_t_1 = ((__pyx_v_stype == DMSTAG_STENCIL_STAR) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_star); + __pyx_r = __pyx_n_s_star; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":96 + * cdef inline object toStagStencil(PetscDMStagStencilType stype): + * if stype == DMSTAG_STENCIL_STAR: return "star" + * elif stype == DMSTAG_STENCIL_BOX: return "box" # <<<<<<<<<<<<<< + * elif stype == DMSTAG_STENCIL_NONE: return "none" + * + */ + __pyx_t_1 = ((__pyx_v_stype == DMSTAG_STENCIL_BOX) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_box); + __pyx_r = __pyx_n_s_box; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":97 + * if stype == DMSTAG_STENCIL_STAR: return "star" + * elif stype == DMSTAG_STENCIL_BOX: return "box" + * elif stype == DMSTAG_STENCIL_NONE: return "none" # <<<<<<<<<<<<<< + * + * cdef inline PetscDMStagStencilLocation asStagStencilLocation(object stencil_location) \ + */ + __pyx_t_1 = ((__pyx_v_stype == DMSTAG_STENCIL_NONE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_none); + __pyx_r = __pyx_n_s_none; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":94 + * return stencil + * + * cdef inline object toStagStencil(PetscDMStagStencilType stype): # <<<<<<<<<<<<<< + * if stype == DMSTAG_STENCIL_STAR: return "star" + * elif stype == DMSTAG_STENCIL_BOX: return "box" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":99 + * elif stype == DMSTAG_STENCIL_NONE: return "none" + * + * cdef inline PetscDMStagStencilLocation asStagStencilLocation(object stencil_location) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil_location, str): + */ + +static CYTHON_INLINE DMStagStencilLocation __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(PyObject *__pyx_v_stencil_location) { + DMStagStencilLocation __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + DMStagStencilLocation __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStagStencilLocation", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":101 + * cdef inline PetscDMStagStencilLocation asStagStencilLocation(object stencil_location) \ + * except (-1): + * if isinstance(stencil_location, str): # <<<<<<<<<<<<<< + * if stencil_location == "null": return DMSTAG_NULL_LOCATION + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT + */ + __pyx_t_1 = PyString_Check(__pyx_v_stencil_location); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/petscdmstag.pxi":102 + * except (-1): + * if isinstance(stencil_location, str): + * if stencil_location == "null": return DMSTAG_NULL_LOCATION # <<<<<<<<<<<<<< + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT + * elif stencil_location == "back_down": return DMSTAG_BACK_DOWN + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_null, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 102, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_NULL_LOCATION; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":103 + * if isinstance(stencil_location, str): + * if stencil_location == "null": return DMSTAG_NULL_LOCATION + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "back_down": return DMSTAG_BACK_DOWN + * elif stencil_location == "back_down_right": return DMSTAG_BACK_DOWN_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_down_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 103, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_DOWN_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":104 + * if stencil_location == "null": return DMSTAG_NULL_LOCATION + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT + * elif stencil_location == "back_down": return DMSTAG_BACK_DOWN # <<<<<<<<<<<<<< + * elif stencil_location == "back_down_right": return DMSTAG_BACK_DOWN_RIGHT + * elif stencil_location == "back_left": return DMSTAG_BACK_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_down, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 104, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_DOWN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":105 + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT + * elif stencil_location == "back_down": return DMSTAG_BACK_DOWN + * elif stencil_location == "back_down_right": return DMSTAG_BACK_DOWN_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "back_left": return DMSTAG_BACK_LEFT + * elif stencil_location == "back": return DMSTAG_BACK + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_down_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 105, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_DOWN_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":106 + * elif stencil_location == "back_down": return DMSTAG_BACK_DOWN + * elif stencil_location == "back_down_right": return DMSTAG_BACK_DOWN_RIGHT + * elif stencil_location == "back_left": return DMSTAG_BACK_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "back": return DMSTAG_BACK + * elif stencil_location == "back_right": return DMSTAG_BACK_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 106, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":107 + * elif stencil_location == "back_down_right": return DMSTAG_BACK_DOWN_RIGHT + * elif stencil_location == "back_left": return DMSTAG_BACK_LEFT + * elif stencil_location == "back": return DMSTAG_BACK # <<<<<<<<<<<<<< + * elif stencil_location == "back_right": return DMSTAG_BACK_RIGHT + * elif stencil_location == "back_up_left": return DMSTAG_BACK_UP_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 107, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":108 + * elif stencil_location == "back_left": return DMSTAG_BACK_LEFT + * elif stencil_location == "back": return DMSTAG_BACK + * elif stencil_location == "back_right": return DMSTAG_BACK_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "back_up_left": return DMSTAG_BACK_UP_LEFT + * elif stencil_location == "back_up": return DMSTAG_BACK_UP + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 108, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":109 + * elif stencil_location == "back": return DMSTAG_BACK + * elif stencil_location == "back_right": return DMSTAG_BACK_RIGHT + * elif stencil_location == "back_up_left": return DMSTAG_BACK_UP_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "back_up": return DMSTAG_BACK_UP + * elif stencil_location == "back_up_right": return DMSTAG_BACK_UP_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_up_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 109, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_UP_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":110 + * elif stencil_location == "back_right": return DMSTAG_BACK_RIGHT + * elif stencil_location == "back_up_left": return DMSTAG_BACK_UP_LEFT + * elif stencil_location == "back_up": return DMSTAG_BACK_UP # <<<<<<<<<<<<<< + * elif stencil_location == "back_up_right": return DMSTAG_BACK_UP_RIGHT + * elif stencil_location == "down_left": return DMSTAG_DOWN_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_up, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 110, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_UP; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":111 + * elif stencil_location == "back_up_left": return DMSTAG_BACK_UP_LEFT + * elif stencil_location == "back_up": return DMSTAG_BACK_UP + * elif stencil_location == "back_up_right": return DMSTAG_BACK_UP_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "down_left": return DMSTAG_DOWN_LEFT + * elif stencil_location == "down": return DMSTAG_DOWN + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_back_up_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 111, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_BACK_UP_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":112 + * elif stencil_location == "back_up": return DMSTAG_BACK_UP + * elif stencil_location == "back_up_right": return DMSTAG_BACK_UP_RIGHT + * elif stencil_location == "down_left": return DMSTAG_DOWN_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "down": return DMSTAG_DOWN + * elif stencil_location == "down_right": return DMSTAG_DOWN_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_down_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 112, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_DOWN_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":113 + * elif stencil_location == "back_up_right": return DMSTAG_BACK_UP_RIGHT + * elif stencil_location == "down_left": return DMSTAG_DOWN_LEFT + * elif stencil_location == "down": return DMSTAG_DOWN # <<<<<<<<<<<<<< + * elif stencil_location == "down_right": return DMSTAG_DOWN_RIGHT + * elif stencil_location == "left": return DMSTAG_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_down, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 113, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_DOWN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":114 + * elif stencil_location == "down_left": return DMSTAG_DOWN_LEFT + * elif stencil_location == "down": return DMSTAG_DOWN + * elif stencil_location == "down_right": return DMSTAG_DOWN_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "left": return DMSTAG_LEFT + * elif stencil_location == "element": return DMSTAG_ELEMENT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_down_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 114, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_DOWN_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":115 + * elif stencil_location == "down": return DMSTAG_DOWN + * elif stencil_location == "down_right": return DMSTAG_DOWN_RIGHT + * elif stencil_location == "left": return DMSTAG_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "element": return DMSTAG_ELEMENT + * elif stencil_location == "right": return DMSTAG_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 115, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":116 + * elif stencil_location == "down_right": return DMSTAG_DOWN_RIGHT + * elif stencil_location == "left": return DMSTAG_LEFT + * elif stencil_location == "element": return DMSTAG_ELEMENT # <<<<<<<<<<<<<< + * elif stencil_location == "right": return DMSTAG_RIGHT + * elif stencil_location == "up_left": return DMSTAG_UP_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_element, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 116, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_ELEMENT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":117 + * elif stencil_location == "left": return DMSTAG_LEFT + * elif stencil_location == "element": return DMSTAG_ELEMENT + * elif stencil_location == "right": return DMSTAG_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "up_left": return DMSTAG_UP_LEFT + * elif stencil_location == "up": return DMSTAG_UP + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 117, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":118 + * elif stencil_location == "element": return DMSTAG_ELEMENT + * elif stencil_location == "right": return DMSTAG_RIGHT + * elif stencil_location == "up_left": return DMSTAG_UP_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "up": return DMSTAG_UP + * elif stencil_location == "up_right": return DMSTAG_UP_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_up_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 118, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_UP_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":119 + * elif stencil_location == "right": return DMSTAG_RIGHT + * elif stencil_location == "up_left": return DMSTAG_UP_LEFT + * elif stencil_location == "up": return DMSTAG_UP # <<<<<<<<<<<<<< + * elif stencil_location == "up_right": return DMSTAG_UP_RIGHT + * elif stencil_location == "front_down_left": return DMSTAG_FRONT_DOWN_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_up, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 119, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_UP; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":120 + * elif stencil_location == "up_left": return DMSTAG_UP_LEFT + * elif stencil_location == "up": return DMSTAG_UP + * elif stencil_location == "up_right": return DMSTAG_UP_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "front_down_left": return DMSTAG_FRONT_DOWN_LEFT + * elif stencil_location == "front_down": return DMSTAG_FRONT_DOWN + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_up_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 120, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_UP_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":121 + * elif stencil_location == "up": return DMSTAG_UP + * elif stencil_location == "up_right": return DMSTAG_UP_RIGHT + * elif stencil_location == "front_down_left": return DMSTAG_FRONT_DOWN_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "front_down": return DMSTAG_FRONT_DOWN + * elif stencil_location == "front_down_right": return DMSTAG_FRONT_DOWN_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_down_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 121, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_DOWN_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":122 + * elif stencil_location == "up_right": return DMSTAG_UP_RIGHT + * elif stencil_location == "front_down_left": return DMSTAG_FRONT_DOWN_LEFT + * elif stencil_location == "front_down": return DMSTAG_FRONT_DOWN # <<<<<<<<<<<<<< + * elif stencil_location == "front_down_right": return DMSTAG_FRONT_DOWN_RIGHT + * elif stencil_location == "front_left": return DMSTAG_FRONT_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_down, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 122, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_DOWN; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":123 + * elif stencil_location == "front_down_left": return DMSTAG_FRONT_DOWN_LEFT + * elif stencil_location == "front_down": return DMSTAG_FRONT_DOWN + * elif stencil_location == "front_down_right": return DMSTAG_FRONT_DOWN_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "front_left": return DMSTAG_FRONT_LEFT + * elif stencil_location == "front": return DMSTAG_FRONT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_down_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 123, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_DOWN_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":124 + * elif stencil_location == "front_down": return DMSTAG_FRONT_DOWN + * elif stencil_location == "front_down_right": return DMSTAG_FRONT_DOWN_RIGHT + * elif stencil_location == "front_left": return DMSTAG_FRONT_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "front": return DMSTAG_FRONT + * elif stencil_location == "front_right": return DMSTAG_FRONT_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 124, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":125 + * elif stencil_location == "front_down_right": return DMSTAG_FRONT_DOWN_RIGHT + * elif stencil_location == "front_left": return DMSTAG_FRONT_LEFT + * elif stencil_location == "front": return DMSTAG_FRONT # <<<<<<<<<<<<<< + * elif stencil_location == "front_right": return DMSTAG_FRONT_RIGHT + * elif stencil_location == "front_up_left": return DMSTAG_FRONT_UP_LEFT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 125, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":126 + * elif stencil_location == "front_left": return DMSTAG_FRONT_LEFT + * elif stencil_location == "front": return DMSTAG_FRONT + * elif stencil_location == "front_right": return DMSTAG_FRONT_RIGHT # <<<<<<<<<<<<<< + * elif stencil_location == "front_up_left": return DMSTAG_FRONT_UP_LEFT + * elif stencil_location == "front_up": return DMSTAG_FRONT_UP + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 126, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":127 + * elif stencil_location == "front": return DMSTAG_FRONT + * elif stencil_location == "front_right": return DMSTAG_FRONT_RIGHT + * elif stencil_location == "front_up_left": return DMSTAG_FRONT_UP_LEFT # <<<<<<<<<<<<<< + * elif stencil_location == "front_up": return DMSTAG_FRONT_UP + * elif stencil_location == "front_up_right": return DMSTAG_FRONT_UP_RIGHT + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_up_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 127, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_UP_LEFT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":128 + * elif stencil_location == "front_right": return DMSTAG_FRONT_RIGHT + * elif stencil_location == "front_up_left": return DMSTAG_FRONT_UP_LEFT + * elif stencil_location == "front_up": return DMSTAG_FRONT_UP # <<<<<<<<<<<<<< + * elif stencil_location == "front_up_right": return DMSTAG_FRONT_UP_RIGHT + * else: raise ValueError("unknown stencil location type: %s" % stencil_location) + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_up, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 128, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_r = DMSTAG_FRONT_UP; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":129 + * elif stencil_location == "front_up_left": return DMSTAG_FRONT_UP_LEFT + * elif stencil_location == "front_up": return DMSTAG_FRONT_UP + * elif stencil_location == "front_up_right": return DMSTAG_FRONT_UP_RIGHT # <<<<<<<<<<<<<< + * else: raise ValueError("unknown stencil location type: %s" % stencil_location) + * return stencil_location + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_stencil_location, __pyx_n_s_front_up_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(27, 129, __pyx_L1_error) + if (likely(__pyx_t_2)) { + __pyx_r = DMSTAG_FRONT_UP_RIGHT; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":130 + * elif stencil_location == "front_up": return DMSTAG_FRONT_UP + * elif stencil_location == "front_up_right": return DMSTAG_FRONT_UP_RIGHT + * else: raise ValueError("unknown stencil location type: %s" % stencil_location) # <<<<<<<<<<<<<< + * return stencil_location + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_stencil_location_type_s, __pyx_v_stencil_location); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(27, 130, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmstag.pxi":101 + * cdef inline PetscDMStagStencilLocation asStagStencilLocation(object stencil_location) \ + * except (-1): + * if isinstance(stencil_location, str): # <<<<<<<<<<<<<< + * if stencil_location == "null": return DMSTAG_NULL_LOCATION + * elif stencil_location == "back_down_left": return DMSTAG_BACK_DOWN_LEFT + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":131 + * elif stencil_location == "front_up_right": return DMSTAG_FRONT_UP_RIGHT + * else: raise ValueError("unknown stencil location type: %s" % stencil_location) + * return stencil_location # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = ((DMStagStencilLocation)__Pyx_PyInt_As_DMStagStencilLocation(__pyx_v_stencil_location)); if (unlikely(PyErr_Occurred())) __PYX_ERR(27, 131, __pyx_L1_error) + __pyx_r = __pyx_t_5; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":99 + * elif stype == DMSTAG_STENCIL_NONE: return "none" + * + * cdef inline PetscDMStagStencilLocation asStagStencilLocation(object stencil_location) \ # <<<<<<<<<<<<<< + * except (-1): + * if isinstance(stencil_location, str): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.asStagStencilLocation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = ((DMStagStencilLocation)-1L); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":134 + * + * + * cdef inline PetscInt asStagDims(dims, # <<<<<<<<<<<<<< + * PetscInt *_M, + * PetscInt *_N, + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asStagDims(PyObject *__pyx_v_dims, PetscInt *__pyx_v__M, PetscInt *__pyx_v__N, PetscInt *__pyx_v__P) { + PetscInt __pyx_v_dim; + PyObject *__pyx_v_M = 0; + PyObject *__pyx_v_N = 0; + PyObject *__pyx_v_P = 0; + PetscInt __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *(*__pyx_t_5)(PyObject *); + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscInt __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStagDims", 0); + __Pyx_INCREF(__pyx_v_dims); + + /* "petsc4py/PETSc/petscdmstag.pxi":138 + * PetscInt *_N, + * PetscInt *_P) except? -1: + * cdef PetscInt dim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef object M=None, N=None, P=None + * dims = tuple(dims) + */ + __pyx_v_dim = PETSC_DECIDE; + + /* "petsc4py/PETSc/petscdmstag.pxi":139 + * PetscInt *_P) except? -1: + * cdef PetscInt dim = PETSC_DECIDE + * cdef object M=None, N=None, P=None # <<<<<<<<<<<<<< + * dims = tuple(dims) + * dim = len(dims) + */ + __Pyx_INCREF(Py_None); + __pyx_v_M = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_N = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_P = Py_None; + + /* "petsc4py/PETSc/petscdmstag.pxi":140 + * cdef PetscInt dim = PETSC_DECIDE + * cdef object M=None, N=None, P=None + * dims = tuple(dims) # <<<<<<<<<<<<<< + * dim = len(dims) + * if dim == 0: pass + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_dims); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dims, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":141 + * cdef object M=None, N=None, P=None + * dims = tuple(dims) + * dim = len(dims) # <<<<<<<<<<<<<< + * if dim == 0: pass + * elif dim == 1: M, = dims + */ + __pyx_t_2 = PyObject_Length(__pyx_v_dims); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(27, 141, __pyx_L1_error) + __pyx_v_dim = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/petscdmstag.pxi":142 + * dims = tuple(dims) + * dim = len(dims) + * if dim == 0: pass # <<<<<<<<<<<<<< + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims + */ + __pyx_t_3 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_3) { + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":143 + * dim = len(dims) + * if dim == 0: pass + * elif dim == 1: M, = dims # <<<<<<<<<<<<<< + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims + */ + __pyx_t_3 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 1)) { + if (size > 1) __Pyx_RaiseTooManyValuesError(1); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 143, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + } + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_4 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 1) < 0) __PYX_ERR(27, 143, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 143, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":144 + * if dim == 0: pass + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims # <<<<<<<<<<<<<< + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) + */ + __pyx_t_3 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 144, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_6)) __PYX_ERR(27, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_4 = __pyx_t_5(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_6), 2) < 0) __PYX_ERR(27, 144, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 144, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_N, __pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":145 + * elif dim == 1: M, = dims + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims # <<<<<<<<<<<<<< + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) + */ + __pyx_t_3 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dims))) || (PyList_CheckExact(__pyx_v_dims))) { + PyObject* sequence = __pyx_v_dims; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 145, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(27, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_dims); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_5 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_1 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_5(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_7), 3) < 0) __PYX_ERR(27, 145, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 145, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_M, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_N, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_P, __pyx_t_6); + __pyx_t_6 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmstag.pxi":146 + * elif dim == 2: M, N = dims + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) # <<<<<<<<<<<<<< + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) + */ + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_M); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 146, __pyx_L1_error) + (__pyx_v__M[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":147 + * elif dim == 3: M, N, P = dims + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) # <<<<<<<<<<<<<< + * if dim >= 3: _P[0] = asInt(P) + * return dim + */ + __pyx_t_3 = ((__pyx_v_dim >= 2) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_N); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 147, __pyx_L1_error) + (__pyx_v__N[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":148 + * if dim >= 1: _M[0] = asInt(M) + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) # <<<<<<<<<<<<<< + * return dim + * + */ + __pyx_t_3 = ((__pyx_v_dim >= 3) != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_P); if (unlikely(__pyx_t_8 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 148, __pyx_L1_error) + (__pyx_v__P[0]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":149 + * if dim >= 2: _N[0] = asInt(N) + * if dim >= 3: _P[0] = asInt(P) + * return dim # <<<<<<<<<<<<<< + * + * cdef inline tuple toStagDims(PetscInt dim, + */ + __pyx_r = __pyx_v_dim; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":134 + * + * + * cdef inline PetscInt asStagDims(dims, # <<<<<<<<<<<<<< + * PetscInt *_M, + * PetscInt *_N, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.asStagDims", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_M); + __Pyx_XDECREF(__pyx_v_N); + __Pyx_XDECREF(__pyx_v_P); + __Pyx_XDECREF(__pyx_v_dims); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":151 + * return dim + * + * cdef inline tuple toStagDims(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt M, + * PetscInt N, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagDims(PetscInt __pyx_v_dim, PetscInt __pyx_v_M, PetscInt __pyx_v_N, PetscInt __pyx_v_P) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toStagDims", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":155 + * PetscInt N, + * PetscInt P): + * if dim == 0: return () # <<<<<<<<<<<<<< + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) + */ + __pyx_t_1 = ((__pyx_v_dim == 0) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_empty_tuple); + __pyx_r = __pyx_empty_tuple; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":156 + * PetscInt P): + * if dim == 0: return () + * elif dim == 1: return (toInt(M),) # <<<<<<<<<<<<<< + * elif dim == 2: return (toInt(M), toInt(N)) + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + */ + __pyx_t_1 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":157 + * if dim == 0: return () + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) # <<<<<<<<<<<<<< + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + */ + __pyx_t_1 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":158 + * elif dim == 1: return (toInt(M),) + * elif dim == 2: return (toInt(M), toInt(N)) + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) # <<<<<<<<<<<<<< + * + * cdef inline PetscInt asDofs(dofs, + */ + __pyx_t_1 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_P); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":151 + * return dim + * + * cdef inline tuple toStagDims(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt M, + * PetscInt N, + */ + + /* function exit code */ + __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.toStagDims", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":160 + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + * cdef inline PetscInt asDofs(dofs, # <<<<<<<<<<<<<< + * PetscInt *_dof0, + * PetscInt *_dof1, + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_asDofs(PyObject *__pyx_v_dofs, PetscInt *__pyx_v__dof0, PetscInt *__pyx_v__dof1, PetscInt *__pyx_v__dof2, PetscInt *__pyx_v__dof3) { + PetscInt __pyx_v_ndofs; + PyObject *__pyx_v_dof0 = 0; + PyObject *__pyx_v_dof1 = 0; + PyObject *__pyx_v_dof2 = 0; + PyObject *__pyx_v_dof3 = 0; + PetscInt __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PetscInt __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asDofs", 0); + __Pyx_INCREF(__pyx_v_dofs); + + /* "petsc4py/PETSc/petscdmstag.pxi":165 + * PetscInt *_dof2, + * PetscInt *_dof3) except? -1: + * cdef PetscInt ndofs = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef object dof0=None, dof1=None, dof2=None, dof3=None + * dofs = tuple(dofs) + */ + __pyx_v_ndofs = PETSC_DECIDE; + + /* "petsc4py/PETSc/petscdmstag.pxi":166 + * PetscInt *_dof3) except? -1: + * cdef PetscInt ndofs = PETSC_DECIDE + * cdef object dof0=None, dof1=None, dof2=None, dof3=None # <<<<<<<<<<<<<< + * dofs = tuple(dofs) + * ndofs = len(dofs) + */ + __Pyx_INCREF(Py_None); + __pyx_v_dof0 = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_dof1 = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_dof2 = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_dof3 = Py_None; + + /* "petsc4py/PETSc/petscdmstag.pxi":167 + * cdef PetscInt ndofs = PETSC_DECIDE + * cdef object dof0=None, dof1=None, dof2=None, dof3=None + * dofs = tuple(dofs) # <<<<<<<<<<<<<< + * ndofs = len(dofs) + * if ndofs == 2: dof0, dof1 = dofs + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_dofs); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dofs, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":168 + * cdef object dof0=None, dof1=None, dof2=None, dof3=None + * dofs = tuple(dofs) + * ndofs = len(dofs) # <<<<<<<<<<<<<< + * if ndofs == 2: dof0, dof1 = dofs + * elif ndofs == 3: dof0, dof1, dof2 = dofs + */ + __pyx_t_2 = PyObject_Length(__pyx_v_dofs); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(27, 168, __pyx_L1_error) + __pyx_v_ndofs = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/petscdmstag.pxi":169 + * dofs = tuple(dofs) + * ndofs = len(dofs) + * if ndofs == 2: dof0, dof1 = dofs # <<<<<<<<<<<<<< + * elif ndofs == 3: dof0, dof1, dof2 = dofs + * elif ndofs == 4: dof0, dof1, dof2, dof3 = dofs + */ + __pyx_t_3 = ((__pyx_v_ndofs == 2) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dofs))) || (PyList_CheckExact(__pyx_v_dofs))) { + PyObject* sequence = __pyx_v_dofs; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 169, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_5 = PyObject_GetIter(__pyx_v_dofs); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) __PYX_ERR(27, 169, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 169, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_dof0, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_dof1, __pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":170 + * ndofs = len(dofs) + * if ndofs == 2: dof0, dof1 = dofs + * elif ndofs == 3: dof0, dof1, dof2 = dofs # <<<<<<<<<<<<<< + * elif ndofs == 4: dof0, dof1, dof2, dof3 = dofs + * if ndofs >= 2: _dof0[0] = asInt(dof0) + */ + __pyx_t_3 = ((__pyx_v_ndofs == 3) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dofs))) || (PyList_CheckExact(__pyx_v_dofs))) { + PyObject* sequence = __pyx_v_dofs; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 170, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_5 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_dofs); if (unlikely(!__pyx_t_7)) __PYX_ERR(27, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_6(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_1 = __pyx_t_6(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_5 = __pyx_t_6(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_7), 3) < 0) __PYX_ERR(27, 170, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 170, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_dof0, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_dof1, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_dof2, __pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":171 + * if ndofs == 2: dof0, dof1 = dofs + * elif ndofs == 3: dof0, dof1, dof2 = dofs + * elif ndofs == 4: dof0, dof1, dof2, dof3 = dofs # <<<<<<<<<<<<<< + * if ndofs >= 2: _dof0[0] = asInt(dof0) + * if ndofs >= 2: _dof1[0] = asInt(dof1) + */ + __pyx_t_3 = ((__pyx_v_ndofs == 4) != 0); + if (__pyx_t_3) { + if ((likely(PyTuple_CheckExact(__pyx_v_dofs))) || (PyList_CheckExact(__pyx_v_dofs))) { + PyObject* sequence = __pyx_v_dofs; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 4)) { + if (size > 4) __Pyx_RaiseTooManyValuesError(4); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(27, 171, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + __pyx_t_7 = PyList_GET_ITEM(sequence, 3); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_7); + #else + { + Py_ssize_t i; + PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_1,&__pyx_t_4,&__pyx_t_7}; + for (i=0; i < 4; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(27, 171, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + } else { + Py_ssize_t index = -1; + PyObject** temps[4] = {&__pyx_t_5,&__pyx_t_1,&__pyx_t_4,&__pyx_t_7}; + __pyx_t_8 = PyObject_GetIter(__pyx_v_dofs); if (unlikely(!__pyx_t_8)) __PYX_ERR(27, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = Py_TYPE(__pyx_t_8)->tp_iternext; + for (index=0; index < 4; index++) { + PyObject* item = __pyx_t_6(__pyx_t_8); if (unlikely(!item)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_8), 4) < 0) __PYX_ERR(27, 171, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(27, 171, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_dof0, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_dof1, __pyx_t_1); + __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_dof2, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_dof3, __pyx_t_7); + __pyx_t_7 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmstag.pxi":172 + * elif ndofs == 3: dof0, dof1, dof2 = dofs + * elif ndofs == 4: dof0, dof1, dof2, dof3 = dofs + * if ndofs >= 2: _dof0[0] = asInt(dof0) # <<<<<<<<<<<<<< + * if ndofs >= 2: _dof1[0] = asInt(dof1) + * if ndofs >= 3: _dof2[0] = asInt(dof2) + */ + __pyx_t_3 = ((__pyx_v_ndofs >= 2) != 0); + if (__pyx_t_3) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof0); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 172, __pyx_L1_error) + (__pyx_v__dof0[0]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":173 + * elif ndofs == 4: dof0, dof1, dof2, dof3 = dofs + * if ndofs >= 2: _dof0[0] = asInt(dof0) + * if ndofs >= 2: _dof1[0] = asInt(dof1) # <<<<<<<<<<<<<< + * if ndofs >= 3: _dof2[0] = asInt(dof2) + * if ndofs >= 4: _dof3[0] = asInt(dof3) + */ + __pyx_t_3 = ((__pyx_v_ndofs >= 2) != 0); + if (__pyx_t_3) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof1); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 173, __pyx_L1_error) + (__pyx_v__dof1[0]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":174 + * if ndofs >= 2: _dof0[0] = asInt(dof0) + * if ndofs >= 2: _dof1[0] = asInt(dof1) + * if ndofs >= 3: _dof2[0] = asInt(dof2) # <<<<<<<<<<<<<< + * if ndofs >= 4: _dof3[0] = asInt(dof3) + * return ndofs + */ + __pyx_t_3 = ((__pyx_v_ndofs >= 3) != 0); + if (__pyx_t_3) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof2); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 174, __pyx_L1_error) + (__pyx_v__dof2[0]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":175 + * if ndofs >= 2: _dof1[0] = asInt(dof1) + * if ndofs >= 3: _dof2[0] = asInt(dof2) + * if ndofs >= 4: _dof3[0] = asInt(dof3) # <<<<<<<<<<<<<< + * return ndofs + * + */ + __pyx_t_3 = ((__pyx_v_ndofs >= 4) != 0); + if (__pyx_t_3) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof3); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(27, 175, __pyx_L1_error) + (__pyx_v__dof3[0]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":176 + * if ndofs >= 3: _dof2[0] = asInt(dof2) + * if ndofs >= 4: _dof3[0] = asInt(dof3) + * return ndofs # <<<<<<<<<<<<<< + * + * cdef inline tuple toDofs(PetscInt ndofs, + */ + __pyx_r = __pyx_v_ndofs; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":160 + * elif dim == 3: return (toInt(M), toInt(N), toInt(P)) + * + * cdef inline PetscInt asDofs(dofs, # <<<<<<<<<<<<<< + * PetscInt *_dof0, + * PetscInt *_dof1, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.asDofs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1L; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dof0); + __Pyx_XDECREF(__pyx_v_dof1); + __Pyx_XDECREF(__pyx_v_dof2); + __Pyx_XDECREF(__pyx_v_dof3); + __Pyx_XDECREF(__pyx_v_dofs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":178 + * return ndofs + * + * cdef inline tuple toDofs(PetscInt ndofs, # <<<<<<<<<<<<<< + * PetscInt dof0, + * PetscInt dof1, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toDofs(PetscInt __pyx_v_ndofs, PetscInt __pyx_v_dof0, PetscInt __pyx_v_dof1, PetscInt __pyx_v_dof2, PetscInt __pyx_v_dof3) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toDofs", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":183 + * PetscInt dof2, + * PetscInt dof3): + * if ndofs == 2: return (toInt(dof0), toInt(dof1)) # <<<<<<<<<<<<<< + * elif ndofs == 3: return (toInt(dof0), toInt(dof1), toInt(dof2)) + * elif ndofs == 4: return (toInt(dof0), toInt(dof1), toInt(dof2), toInt(dof3)) + */ + __pyx_t_1 = ((__pyx_v_ndofs == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof0); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof1); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":184 + * PetscInt dof3): + * if ndofs == 2: return (toInt(dof0), toInt(dof1)) + * elif ndofs == 3: return (toInt(dof0), toInt(dof1), toInt(dof2)) # <<<<<<<<<<<<<< + * elif ndofs == 4: return (toInt(dof0), toInt(dof1), toInt(dof2), toInt(dof3)) + * + */ + __pyx_t_1 = ((__pyx_v_ndofs == 3) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof0); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof1); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof2); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":185 + * if ndofs == 2: return (toInt(dof0), toInt(dof1)) + * elif ndofs == 3: return (toInt(dof0), toInt(dof1), toInt(dof2)) + * elif ndofs == 4: return (toInt(dof0), toInt(dof1), toInt(dof2), toInt(dof3)) # <<<<<<<<<<<<<< + * + * cdef inline tuple asStagOwnershipRanges(object ownership_ranges, + */ + __pyx_t_1 = ((__pyx_v_ndofs == 4) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof0); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof2); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof3); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(27, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4); + __pyx_t_5 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":178 + * return ndofs + * + * cdef inline tuple toDofs(PetscInt ndofs, # <<<<<<<<<<<<<< + * PetscInt dof0, + * PetscInt dof1, + */ + + /* function exit code */ + __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.toDofs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":187 + * elif ndofs == 4: return (toInt(dof0), toInt(dof1), toInt(dof2), toInt(dof3)) + * + * cdef inline tuple asStagOwnershipRanges(object ownership_ranges, # <<<<<<<<<<<<<< + * PetscInt dim, + * PetscInt *m, PetscInt *n, PetscInt *p, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_asStagOwnershipRanges(PyObject *__pyx_v_ownership_ranges, PetscInt __pyx_v_dim, PetscInt *__pyx_v_m, PetscInt *__pyx_v_n, PetscInt *__pyx_v_p, PetscInt **__pyx_v__x, PetscInt **__pyx_v__y, PetscInt **__pyx_v__z) { + PyObject *__pyx_v_ranges = 0; + PetscInt __pyx_v_rdim; + PetscInt __pyx_v_nlx; + PetscInt __pyx_v_nly; + PetscInt __pyx_v_nlz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("asStagOwnershipRanges", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":193 + * PetscInt **_y, + * PetscInt **_z): + * cdef object ranges = list(ownership_ranges) # <<<<<<<<<<<<<< + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 + */ + __pyx_t_1 = PySequence_List(__pyx_v_ownership_ranges); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ranges = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":194 + * PetscInt **_z): + * cdef object ranges = list(ownership_ranges) + * cdef PetscInt rdim = len(ranges) # <<<<<<<<<<<<<< + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + */ + __pyx_t_2 = PyObject_Length(__pyx_v_ranges); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(27, 194, __pyx_L1_error) + __pyx_v_rdim = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/petscdmstag.pxi":195 + * cdef object ranges = list(ownership_ranges) + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 # <<<<<<<<<<<<<< + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( + */ + __pyx_v_nlx = 0; + __pyx_v_nly = 0; + __pyx_v_nlz = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":196 + * cdef PetscInt rdim = len(ranges) + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim # <<<<<<<<<<<<<< + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % + */ + __pyx_t_3 = ((__pyx_v_dim == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_dim = __pyx_v_rdim; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":197 + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( # <<<<<<<<<<<<<< + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + */ + __pyx_t_3 = ((__pyx_v_dim != __pyx_v_rdim) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmstag.pxi":199 + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) # <<<<<<<<<<<<<< + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_rdim); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":198 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( + * "number of dimensions %d and number ownership ranges %d" % # <<<<<<<<<<<<<< + * (toInt(dim), toInt(rdim))) + * if dim >= 1: + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_number_of_dimensions_d_and_numbe, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":197 + * cdef PetscInt nlx=0, nly=0, nlz=0 + * if dim == PETSC_DECIDE: dim = rdim + * elif dim != rdim: raise ValueError( # <<<<<<<<<<<<<< + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(27, 197, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/petscdmstag.pxi":200 + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + * if dim >= 1: # <<<<<<<<<<<<<< + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + */ + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmstag.pxi":201 + * (toInt(dim), toInt(rdim))) + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) # <<<<<<<<<<<<<< + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ranges, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_5, (&__pyx_v_nlx), __pyx_v__x)); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(27, 201, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":202 + * if dim >= 1: + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx # <<<<<<<<<<<<<< + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_m[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_m[0]) = __pyx_v_nlx; + goto __pyx_L5; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":203 + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + */ + __pyx_t_3 = (((__pyx_v_m[0]) != __pyx_v_nlx) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmstag.pxi":205 + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) # <<<<<<<<<<<<<< + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nlx); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":204 + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: + */ + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":203 + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + * elif m[0] != nlx: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(27, 203, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/petscdmstag.pxi":200 + * "number of dimensions %d and number ownership ranges %d" % + * (toInt(dim), toInt(rdim))) + * if dim >= 1: # <<<<<<<<<<<<<< + * ranges[0] = iarray_i(ranges[0], &nlx, _x) + * if m[0] == PETSC_DECIDE: m[0] = nlx + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":206 + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: # <<<<<<<<<<<<<< + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + */ + __pyx_t_3 = ((__pyx_v_dim >= 2) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmstag.pxi":207 + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) # <<<<<<<<<<<<<< + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_ranges, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_1, (&__pyx_v_nly), __pyx_v__y)); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 1, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(27, 207, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":208 + * if dim >= 2: + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly # <<<<<<<<<<<<<< + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_n[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_n[0]) = __pyx_v_nly; + goto __pyx_L7; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":209 + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + */ + __pyx_t_3 = (((__pyx_v_n[0]) != __pyx_v_nly) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmstag.pxi":211 + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) # <<<<<<<<<<<<<< + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nly); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_n[0])); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":210 + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: + */ + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":209 + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + * elif n[0] != nly: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(27, 209, __pyx_L1_error) + } + __pyx_L7:; + + /* "petsc4py/PETSc/petscdmstag.pxi":206 + * "ownership range size %d and number or processors %d" % + * (toInt(nlx), toInt(m[0]))) + * if dim >= 2: # <<<<<<<<<<<<<< + * ranges[1] = iarray_i(ranges[1], &nly, _y) + * if n[0] == PETSC_DECIDE: n[0] = nly + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":212 + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: # <<<<<<<<<<<<<< + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + */ + __pyx_t_3 = ((__pyx_v_dim >= 3) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmstag.pxi":213 + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) # <<<<<<<<<<<<<< + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( + */ + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_ranges, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_4, (&__pyx_v_nlz), __pyx_v__z)); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_ranges, 2, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(27, 213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":214 + * if dim >= 3: + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz # <<<<<<<<<<<<<< + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % + */ + __pyx_t_3 = (((__pyx_v_p[0]) == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + (__pyx_v_p[0]) = __pyx_v_nlz; + goto __pyx_L9; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":215 + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + */ + __pyx_t_3 = (((__pyx_v_p[0]) != __pyx_v_nlz) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/petscdmstag.pxi":217 + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) # <<<<<<<<<<<<<< + * return tuple(ranges) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nlz); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_p[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":216 + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( + * "ownership range size %d and number or processors %d" % # <<<<<<<<<<<<<< + * (toInt(nlz), toInt(p[0]))) + * return tuple(ranges) + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":215 + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + * elif p[0] != nlz: raise ValueError( # <<<<<<<<<<<<<< + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(27, 215, __pyx_L1_error) + } + __pyx_L9:; + + /* "petsc4py/PETSc/petscdmstag.pxi":212 + * "ownership range size %d and number or processors %d" % + * (toInt(nly), toInt(n[0]))) + * if dim >= 3: # <<<<<<<<<<<<<< + * ranges[2] = iarray_i(ranges[2], &nlz, _z) + * if p[0] == PETSC_DECIDE: p[0] = nlz + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":218 + * "ownership range size %d and number or processors %d" % + * (toInt(nlz), toInt(p[0]))) + * return tuple(ranges) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_ranges); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":187 + * elif ndofs == 4: return (toInt(dof0), toInt(dof1), toInt(dof2), toInt(dof3)) + * + * cdef inline tuple asStagOwnershipRanges(object ownership_ranges, # <<<<<<<<<<<<<< + * PetscInt dim, + * PetscInt *m, PetscInt *n, PetscInt *p, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.asStagOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":221 + * + * + * cdef inline tuple toStagOwnershipRanges(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt m, PetscInt n, PetscInt p, + * const PetscInt *lx, + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagOwnershipRanges(PetscInt __pyx_v_dim, PetscInt __pyx_v_m, PetscInt __pyx_v_n, PetscInt __pyx_v_p, PetscInt const *__pyx_v_lx, PetscInt const *__pyx_v_ly, PetscInt const *__pyx_v_lz) { + PyObject *__pyx_v_ranges = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toStagOwnershipRanges", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":227 + * const PetscInt *lz): + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] # <<<<<<<<<<<<<< + * if dim > 1: + * ranges.append(array_i(n, ly)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_m, __pyx_v_lx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(27, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_ranges = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":228 + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] + * if dim > 1: # <<<<<<<<<<<<<< + * ranges.append(array_i(n, ly)) + * if dim > 2: + */ + __pyx_t_3 = ((__pyx_v_dim > 1) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmstag.pxi":229 + * ranges = [array_i(m, lx)] + * if dim > 1: + * ranges.append(array_i(n, ly)) # <<<<<<<<<<<<<< + * if dim > 2: + * ranges.append(array_i(p, lz)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_n, __pyx_v_ly)); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_ranges, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(27, 229, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":228 + * # Returns tuple of arrays containing ownership ranges as Python arrays + * ranges = [array_i(m, lx)] + * if dim > 1: # <<<<<<<<<<<<<< + * ranges.append(array_i(n, ly)) + * if dim > 2: + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":230 + * if dim > 1: + * ranges.append(array_i(n, ly)) + * if dim > 2: # <<<<<<<<<<<<<< + * ranges.append(array_i(p, lz)) + * return tuple(ranges) + */ + __pyx_t_3 = ((__pyx_v_dim > 2) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmstag.pxi":231 + * ranges.append(array_i(n, ly)) + * if dim > 2: + * ranges.append(array_i(p, lz)) # <<<<<<<<<<<<<< + * return tuple(ranges) + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_p, __pyx_v_lz)); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_ranges, __pyx_t_2); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(27, 231, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmstag.pxi":230 + * if dim > 1: + * ranges.append(array_i(n, ly)) + * if dim > 2: # <<<<<<<<<<<<<< + * ranges.append(array_i(p, lz)) + * return tuple(ranges) + */ + } + + /* "petsc4py/PETSc/petscdmstag.pxi":232 + * if dim > 2: + * ranges.append(array_i(p, lz)) + * return tuple(ranges) # <<<<<<<<<<<<<< + * + * cdef inline object toStagBoundary(PetscDMBoundaryType btype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_AsTuple(__pyx_v_ranges); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmstag.pxi":221 + * + * + * cdef inline tuple toStagOwnershipRanges(PetscInt dim, # <<<<<<<<<<<<<< + * PetscInt m, PetscInt n, PetscInt p, + * const PetscInt *lx, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.toStagOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":234 + * return tuple(ranges) + * + * cdef inline object toStagBoundary(PetscDMBoundaryType btype): # <<<<<<<<<<<<<< + * if btype == DM_BOUNDARY_NONE: return "none" + * elif btype == DM_BOUNDARY_PERIODIC: return "periodic" + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagBoundary(DMBoundaryType __pyx_v_btype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("toStagBoundary", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":235 + * + * cdef inline object toStagBoundary(PetscDMBoundaryType btype): + * if btype == DM_BOUNDARY_NONE: return "none" # <<<<<<<<<<<<<< + * elif btype == DM_BOUNDARY_PERIODIC: return "periodic" + * elif btype == DM_BOUNDARY_GHOSTED: return "ghosted" + */ + __pyx_t_1 = ((__pyx_v_btype == DM_BOUNDARY_NONE) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_none); + __pyx_r = __pyx_n_s_none; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":236 + * cdef inline object toStagBoundary(PetscDMBoundaryType btype): + * if btype == DM_BOUNDARY_NONE: return "none" + * elif btype == DM_BOUNDARY_PERIODIC: return "periodic" # <<<<<<<<<<<<<< + * elif btype == DM_BOUNDARY_GHOSTED: return "ghosted" + * + */ + __pyx_t_1 = ((__pyx_v_btype == DM_BOUNDARY_PERIODIC) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_periodic); + __pyx_r = __pyx_n_s_periodic; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":237 + * if btype == DM_BOUNDARY_NONE: return "none" + * elif btype == DM_BOUNDARY_PERIODIC: return "periodic" + * elif btype == DM_BOUNDARY_GHOSTED: return "ghosted" # <<<<<<<<<<<<<< + * + * cdef inline tuple toStagBoundaryTypes(PetscInt dim, PetscDMBoundaryType btx, PetscDMBoundaryType bty, PetscDMBoundaryType btz): + */ + __pyx_t_1 = ((__pyx_v_btype == DM_BOUNDARY_GHOSTED) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_n_s_ghosted); + __pyx_r = __pyx_n_s_ghosted; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":234 + * return tuple(ranges) + * + * cdef inline object toStagBoundary(PetscDMBoundaryType btype): # <<<<<<<<<<<<<< + * if btype == DM_BOUNDARY_NONE: return "none" + * elif btype == DM_BOUNDARY_PERIODIC: return "periodic" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmstag.pxi":239 + * elif btype == DM_BOUNDARY_GHOSTED: return "ghosted" + * + * cdef inline tuple toStagBoundaryTypes(PetscInt dim, PetscDMBoundaryType btx, PetscDMBoundaryType bty, PetscDMBoundaryType btz): # <<<<<<<<<<<<<< + * if dim == 1: return (toStagBoundary(btx), ) + * if dim == 2: return (toStagBoundary(btx), toStagBoundary(bty)) + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toStagBoundaryTypes(PetscInt __pyx_v_dim, DMBoundaryType __pyx_v_btx, DMBoundaryType __pyx_v_bty, DMBoundaryType __pyx_v_btz) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toStagBoundaryTypes", 0); + + /* "petsc4py/PETSc/petscdmstag.pxi":240 + * + * cdef inline tuple toStagBoundaryTypes(PetscInt dim, PetscDMBoundaryType btx, PetscDMBoundaryType bty, PetscDMBoundaryType btz): + * if dim == 1: return (toStagBoundary(btx), ) # <<<<<<<<<<<<<< + * if dim == 2: return (toStagBoundary(btx), toStagBoundary(bty)) + * if dim == 3: return (toStagBoundary(btx), toStagBoundary(bty), toStagBoundary(btz)) + */ + __pyx_t_1 = ((__pyx_v_dim == 1) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_btx); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":241 + * cdef inline tuple toStagBoundaryTypes(PetscInt dim, PetscDMBoundaryType btx, PetscDMBoundaryType bty, PetscDMBoundaryType btz): + * if dim == 1: return (toStagBoundary(btx), ) + * if dim == 2: return (toStagBoundary(btx), toStagBoundary(bty)) # <<<<<<<<<<<<<< + * if dim == 3: return (toStagBoundary(btx), toStagBoundary(bty), toStagBoundary(btz)) + * + */ + __pyx_t_1 = ((__pyx_v_dim == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_btx); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_bty); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_r = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":242 + * if dim == 1: return (toStagBoundary(btx), ) + * if dim == 2: return (toStagBoundary(btx), toStagBoundary(bty)) + * if dim == 3: return (toStagBoundary(btx), toStagBoundary(bty), toStagBoundary(btz)) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = ((__pyx_v_dim == 3) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_btx); if (unlikely(!__pyx_t_4)) __PYX_ERR(27, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_bty); if (unlikely(!__pyx_t_2)) __PYX_ERR(27, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toStagBoundary(__pyx_v_btz); if (unlikely(!__pyx_t_3)) __PYX_ERR(27, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(27, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/petscdmstag.pxi":239 + * elif btype == DM_BOUNDARY_GHOSTED: return "ghosted" + * + * cdef inline tuple toStagBoundaryTypes(PetscInt dim, PetscDMBoundaryType btx, PetscDMBoundaryType bty, PetscDMBoundaryType btz): # <<<<<<<<<<<<<< + * if dim == 1: return (toStagBoundary(btx), ) + * if dim == 2: return (toStagBoundary(btx), toStagBoundary(bty)) + */ + + /* function exit code */ + __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.toStagBoundaryTypes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmcomposite.pxi":27 + * cdef object access + * + * def __cinit__(self, DM dm, Vec gvec, locs=None): # <<<<<<<<<<<<<< + * self.dm = dm.dm + * CHKERR( PetscINCREF(&self.dm) ) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + PyObject *__pyx_v_locs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,&__pyx_n_s_gvec,&__pyx_n_s_locs,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gvec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(28, 27, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_locs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(28, 27, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + __pyx_v_gvec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_locs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(28, 27, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._DMComposite_access.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(28, 27, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gvec", 0))) __PYX_ERR(28, 27, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access___cinit__(((struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)__pyx_v_self), __pyx_v_dm, __pyx_v_gvec, __pyx_v_locs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access___cinit__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_locs) { + int __pyx_r; + __Pyx_RefNannyDeclarations + DM __pyx_t_1; + PetscErrorCode __pyx_t_2; + Vec __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + __Pyx_INCREF(__pyx_v_locs); + + /* "petsc4py/PETSc/petscdmcomposite.pxi":28 + * + * def __cinit__(self, DM dm, Vec gvec, locs=None): + * self.dm = dm.dm # <<<<<<<<<<<<<< + * CHKERR( PetscINCREF(&self.dm) ) + * self.gvec = gvec.vec + */ + __pyx_t_1 = __pyx_v_dm->dm; + __pyx_v_self->dm = __pyx_t_1; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":29 + * def __cinit__(self, DM dm, Vec gvec, locs=None): + * self.dm = dm.dm + * CHKERR( PetscINCREF(&self.dm) ) # <<<<<<<<<<<<<< + * self.gvec = gvec.vec + * CHKERR( PetscINCREF(&self.gvec) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&__pyx_v_self->dm)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 29, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":30 + * self.dm = dm.dm + * CHKERR( PetscINCREF(&self.dm) ) + * self.gvec = gvec.vec # <<<<<<<<<<<<<< + * CHKERR( PetscINCREF(&self.gvec) ) + * if locs is None: + */ + __pyx_t_3 = __pyx_v_gvec->vec; + __pyx_v_self->gvec = __pyx_t_3; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":31 + * CHKERR( PetscINCREF(&self.dm) ) + * self.gvec = gvec.vec + * CHKERR( PetscINCREF(&self.gvec) ) # <<<<<<<<<<<<<< + * if locs is None: + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&__pyx_v_self->gvec)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 31, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":32 + * self.gvec = gvec.vec + * CHKERR( PetscINCREF(&self.gvec) ) + * if locs is None: # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) + * locs = arange(0, self.nlocs, 1) + */ + __pyx_t_4 = (__pyx_v_locs == Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/petscdmcomposite.pxi":33 + * CHKERR( PetscINCREF(&self.gvec) ) + * if locs is None: + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) # <<<<<<<<<<<<<< + * locs = arange(0, self.nlocs, 1) + * self.locs_mem = iarray_i(locs, &self.nlocs, &self.locs) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->dm, (&__pyx_v_self->nlocs))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":34 + * if locs is None: + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) + * locs = arange(0, self.nlocs, 1) # <<<<<<<<<<<<<< + * self.locs_mem = iarray_i(locs, &self.nlocs, &self.locs) + * self.vecs_mem = oarray_p(empty_p(self.nlocs), NULL, &self.vecs) + */ + __pyx_t_6 = __Pyx_PyInt_From_long(((long)__pyx_v_self->nlocs)); if (unlikely(!__pyx_t_6)) __PYX_ERR(28, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_int_0, __pyx_t_6, __pyx_int_1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_locs, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":32 + * self.gvec = gvec.vec + * CHKERR( PetscINCREF(&self.gvec) ) + * if locs is None: # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) + * locs = arange(0, self.nlocs, 1) + */ + } + + /* "petsc4py/PETSc/petscdmcomposite.pxi":35 + * CHKERR( DMCompositeGetNumberDM(self.dm, &self.nlocs) ) + * locs = arange(0, self.nlocs, 1) + * self.locs_mem = iarray_i(locs, &self.nlocs, &self.locs) # <<<<<<<<<<<<<< + * self.vecs_mem = oarray_p(empty_p(self.nlocs), NULL, &self.vecs) + * self.access = None + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_locs, (&__pyx_v_self->nlocs), (&__pyx_v_self->locs))); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_v_self->locs_mem); + __Pyx_DECREF(__pyx_v_self->locs_mem); + __pyx_v_self->locs_mem = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":36 + * locs = arange(0, self.nlocs, 1) + * self.locs_mem = iarray_i(locs, &self.nlocs, &self.locs) + * self.vecs_mem = oarray_p(empty_p(self.nlocs), NULL, &self.vecs) # <<<<<<<<<<<<<< + * self.access = None + * + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_self->nlocs)); if (unlikely(!__pyx_t_7)) __PYX_ERR(28, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_7, NULL, ((void **)(&__pyx_v_self->vecs)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(28, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GIVEREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_v_self->vecs_mem); + __Pyx_DECREF(__pyx_v_self->vecs_mem); + __pyx_v_self->vecs_mem = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":37 + * self.locs_mem = iarray_i(locs, &self.nlocs, &self.locs) + * self.vecs_mem = oarray_p(empty_p(self.nlocs), NULL, &self.vecs) + * self.access = None # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->access); + __Pyx_DECREF(__pyx_v_self->access); + __pyx_v_self->access = Py_None; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":27 + * cdef object access + * + * def __cinit__(self, DM dm, Vec gvec, locs=None): # <<<<<<<<<<<<<< + * self.dm = dm.dm + * CHKERR( PetscINCREF(&self.dm) ) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc._DMComposite_access.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_locs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmcomposite.pxi":39 + * self.access = None + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( DMDestroy(&self.dm) ) + * CHKERR( VecDestroy(&self.gvec) ) + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_2__dealloc__(((struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/petscdmcomposite.pxi":40 + * + * def __dealloc__(self): + * CHKERR( DMDestroy(&self.dm) ) # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&self.gvec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDestroy((&__pyx_v_self->dm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 40, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":41 + * def __dealloc__(self): + * CHKERR( DMDestroy(&self.dm) ) + * CHKERR( VecDestroy(&self.gvec) ) # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_self->gvec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":39 + * self.access = None + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( DMDestroy(&self.dm) ) + * CHKERR( VecDestroy(&self.gvec) ) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc._DMComposite_access.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/petscdmcomposite.pxi":43 + * CHKERR( VecDestroy(&self.gvec) ) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = self.nlocs + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_19_DMComposite_access_4__enter__[] = "_DMComposite_access.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_4__enter__(((struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_4__enter__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self) { + Py_ssize_t __pyx_v_n; + Py_ssize_t __pyx_7genexpr__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/petscdmcomposite.pxi":44 + * + * def __enter__(self): + * cdef Py_ssize_t i, n = self.nlocs # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + * self.access = [ref_Vec(self.vecs[i]) for i from 0 <= i < n] + */ + __pyx_t_1 = __pyx_v_self->nlocs; + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":45 + * def __enter__(self): + * cdef Py_ssize_t i, n = self.nlocs + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) # <<<<<<<<<<<<<< + * self.access = [ref_Vec(self.vecs[i]) for i from 0 <= i < n] + * return tuple(self.access) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetAccessArray(__pyx_v_self->dm, __pyx_v_self->gvec, __pyx_v_self->nlocs, __pyx_v_self->locs, __pyx_v_self->vecs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 45, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":46 + * cdef Py_ssize_t i, n = self.nlocs + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + * self.access = [ref_Vec(self.vecs[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * return tuple(self.access) + * + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_n; + for (__pyx_7genexpr__pyx_v_i = 0; __pyx_7genexpr__pyx_v_i < __pyx_t_4; __pyx_7genexpr__pyx_v_i++) { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_self->vecs[__pyx_7genexpr__pyx_v_i]))); if (unlikely(!__pyx_t_5)) __PYX_ERR(28, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(28, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } /* exit inner scope */ + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->access); + __Pyx_DECREF(__pyx_v_self->access); + __pyx_v_self->access = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":47 + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + * self.access = [ref_Vec(self.vecs[i]) for i from 0 <= i < n] + * return tuple(self.access) # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_self->access); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":43 + * CHKERR( VecDestroy(&self.gvec) ) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = self.nlocs + * CHKERR( DMCompositeGetAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc._DMComposite_access.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmcomposite.pxi":49 + * return tuple(self.access) + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = self.nlocs + * for i from 0 <= i < n: (self.access[i]).vec = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_19_DMComposite_access_6__exit__[] = "_DMComposite_access.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_6__exit__(((struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_19_DMComposite_access_6__exit__(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/petscdmcomposite.pxi":50 + * + * def __exit__(self, *exc): + * cdef Py_ssize_t i, n = self.nlocs # <<<<<<<<<<<<<< + * for i from 0 <= i < n: (self.access[i]).vec = NULL + * CHKERR( DMCompositeRestoreAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + */ + __pyx_t_1 = __pyx_v_self->nlocs; + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":51 + * def __exit__(self, *exc): + * cdef Py_ssize_t i, n = self.nlocs + * for i from 0 <= i < n: (self.access[i]).vec = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeRestoreAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + * self.access = None + */ + __pyx_t_2 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->access, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(28, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + ((struct PyPetscVecObject *)__pyx_t_3)->vec = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/petscdmcomposite.pxi":52 + * cdef Py_ssize_t i, n = self.nlocs + * for i from 0 <= i < n: (self.access[i]).vec = NULL + * CHKERR( DMCompositeRestoreAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) # <<<<<<<<<<<<<< + * self.access = None + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeRestoreAccessArray(__pyx_v_self->dm, __pyx_v_self->gvec, __pyx_v_self->nlocs, __pyx_v_self->locs, __pyx_v_self->vecs)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(28, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmcomposite.pxi":53 + * for i from 0 <= i < n: (self.access[i]).vec = NULL + * CHKERR( DMCompositeRestoreAccessArray(self.dm, self.gvec, self.nlocs, self.locs, self.vecs) ) + * self.access = None # <<<<<<<<<<<<<< + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->access); + __Pyx_DECREF(__pyx_v_self->access); + __pyx_v_self->access = Py_None; + + /* "petsc4py/PETSc/petscdmcomposite.pxi":49 + * return tuple(self.access) + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = self.nlocs + * for i from 0 <= i < n: (self.access[i]).vec = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc._DMComposite_access.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":74 + * + * + * cdef PetscErrorCode DMSHELL_CreateGlobalVector( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateGlobalVector(DM __pyx_v_dm, Vec *__pyx_v_v) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_create_gvec = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + DM __pyx_v_odm; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Vec __pyx_t_9; + PetscErrorCode __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateGlobalVector", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":77 + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec vec + * Dm.dm = dm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 77, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":79 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec vec + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_global_vector__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":80 + * cdef Vec vec + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__create_global_vector__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":81 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_global_vector__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (create_gvec, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_global_vector__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":82 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_global_vector__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (create_gvec, args, kargs) = context + * vec = create_gvec(Dm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 82, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":83 + * context = Dm.get_attr('__create_global_vector__') + * assert context is not None and type(context) is tuple + * (create_gvec, args, kargs) = context # <<<<<<<<<<<<<< + * vec = create_gvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 83, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 83, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 83, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_create_gvec = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":84 + * assert context is not None and type(context) is tuple + * (create_gvec, args, kargs) = context + * vec = create_gvec(Dm, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * v[0] = vec.vec + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 84, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_create_gvec, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(29, 84, __pyx_L1_error) + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":85 + * (create_gvec, args, kargs) = context + * vec = create_gvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * v[0] = vec.vec + * cdef PetscDM odm = NULL + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":86 + * vec = create_gvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) + * v[0] = vec.vec # <<<<<<<<<<<<<< + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + */ + __pyx_t_9 = __pyx_v_vec->vec; + (__pyx_v_v[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":87 + * PetscINCREF(vec.obj) + * v[0] = vec.vec + * cdef PetscDM odm = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: + */ + __pyx_v_odm = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":88 + * v[0] = vec.vec + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) # <<<<<<<<<<<<<< + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetDM((__pyx_v_v[0]), (&__pyx_v_odm))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":89 + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS + */ + __pyx_t_3 = ((__pyx_v_odm == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":90 + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetDM((__pyx_v_v[0]), __pyx_v_dm)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 90, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":89 + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":91 + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateLocalVector( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":74 + * + * + * cdef PetscErrorCode DMSHELL_CreateGlobalVector( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateGlobalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_create_gvec); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":93 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateLocalVector( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateLocalVector(DM __pyx_v_dm, Vec *__pyx_v_v) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_create_lvec = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + DM __pyx_v_odm; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Vec __pyx_t_9; + PetscErrorCode __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateLocalVector", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":96 + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec vec + * Dm.dm = dm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 96, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":98 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec vec + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_local_vector__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":99 + * cdef Vec vec + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__create_local_vector__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":100 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_local_vector__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (create_lvec, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_local_vector__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":101 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_local_vector__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (create_lvec, args, kargs) = context + * vec = create_lvec(Dm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 101, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":102 + * context = Dm.get_attr('__create_local_vector__') + * assert context is not None and type(context) is tuple + * (create_lvec, args, kargs) = context # <<<<<<<<<<<<<< + * vec = create_lvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 102, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 102, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 102, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_create_lvec = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":103 + * assert context is not None and type(context) is tuple + * (create_lvec, args, kargs) = context + * vec = create_lvec(Dm, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * v[0] = vec.vec + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 103, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_create_lvec, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(29, 103, __pyx_L1_error) + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":104 + * (create_lvec, args, kargs) = context + * vec = create_lvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * v[0] = vec.vec + * cdef PetscDM odm = NULL + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":105 + * vec = create_lvec(Dm, *args, **kargs) + * PetscINCREF(vec.obj) + * v[0] = vec.vec # <<<<<<<<<<<<<< + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + */ + __pyx_t_9 = __pyx_v_vec->vec; + (__pyx_v_v[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":106 + * PetscINCREF(vec.obj) + * v[0] = vec.vec + * cdef PetscDM odm = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: + */ + __pyx_v_odm = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":107 + * v[0] = vec.vec + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) # <<<<<<<<<<<<<< + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetDM((__pyx_v_v[0]), (&__pyx_v_odm))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 107, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":108 + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS + */ + __pyx_t_3 = ((__pyx_v_odm == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":109 + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetDM((__pyx_v_v[0]), __pyx_v_dm)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":108 + * cdef PetscDM odm = NULL + * CHKERR( VecGetDM(v[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":110 + * if odm == NULL: + * CHKERR( VecSetDM(v[0], dm) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalBegin( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":93 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateLocalVector( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec *v) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_create_lvec); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":112 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalBegin(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_begin = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_GlobalToLocalBegin", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":117 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 117, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":118 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":119 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":120 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_begin__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":121 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__g2l_begin__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":122 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_begin__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__g2l_begin__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":123 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_begin__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 123, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":124 + * context = Dm.get_attr('__g2l_begin__') + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context # <<<<<<<<<<<<<< + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 124, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 124, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 124, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_begin = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":125 + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 125, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_begin, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":126 + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalEnd( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":112 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_GlobalToLocalBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":128 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalEnd(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_end = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_GlobalToLocalEnd", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":133 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 133, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":134 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":135 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":136 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_end__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":137 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__g2l_end__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":138 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_end__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__g2l_end__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":139 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__g2l_end__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 139, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":140 + * context = Dm.get_attr('__g2l_end__') + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context # <<<<<<<<<<<<<< + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 140, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 140, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 140, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_end = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":141 + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 141, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_end, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":142 + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalBegin( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":128 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_GlobalToLocalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_GlobalToLocalEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_end); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":144 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalBegin(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_begin = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_LocalToGlobalBegin", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":149 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 149, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":150 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":151 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":152 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_begin__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":153 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__l2g_begin__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":154 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_begin__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__l2g_begin__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":155 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_begin__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 155, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":156 + * context = Dm.get_attr('__l2g_begin__') + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context # <<<<<<<<<<<<<< + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 156, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 156, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 156, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_begin = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":157 + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 157, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_begin, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":158 + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalEnd( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":144 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_LocalToGlobalBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":160 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalEnd(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_end = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_LocalToGlobalEnd", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":165 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 165, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":166 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":167 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":168 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_end__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":169 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__l2g_end__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":170 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_end__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__l2g_end__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":171 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2g_end__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 171, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":172 + * context = Dm.get_attr('__l2g_end__') + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context # <<<<<<<<<<<<<< + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 172, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 172, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 172, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_end = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":173 + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 173, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_end, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":174 + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_LocalToLocalBegin( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":160 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToGlobalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_LocalToGlobalEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_end); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":176 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToLocalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalBegin(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_begin = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_LocalToLocalBegin", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":181 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 181, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":182 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":183 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":184 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_begin__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":185 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__l2l_begin__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":186 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_begin__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__l2l_begin__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":187 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_begin__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 187, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":188 + * context = Dm.get_attr('__l2l_begin__') + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context # <<<<<<<<<<<<<< + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 188, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 188, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 188, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_begin = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":189 + * assert context is not None and type(context) is tuple + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 189, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_begin, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":190 + * (begin, args, kargs) = context + * begin(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_LocalToLocalEnd( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":176 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToLocalBegin( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_LocalToLocalBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":192 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToLocalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalEnd(DM __pyx_v_dm, Vec __pyx_v_g, InsertMode __pyx_v_mode, Vec __pyx_v_l) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscVecObject *__pyx_v_gvec = 0; + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_end = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_LocalToLocalEnd", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":197 + * PetscInsertMode mode, + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 197, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":198 + * PetscVec l) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) # <<<<<<<<<<<<<< + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_g)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_gvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":199 + * cdef DM Dm = subtype_DM(dm)() + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_l)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":200 + * cdef Vec gvec = ref_Vec(g) + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_end__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":201 + * cdef Vec lvec = ref_Vec(l) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__l2l_end__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":202 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_end__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__l2l_end__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":203 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__l2l_end__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 203, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":204 + * context = Dm.get_attr('__l2l_end__') + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context # <<<<<<<<<<<<<< + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 204, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 204, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 204, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_end = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":205 + * assert context is not None and type(context) is tuple + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_6 = __Pyx_PyInt_From_InsertMode(__pyx_v_mode); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lvec)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_lvec)); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 205, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } else { + __pyx_t_6 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + } + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_v_end, __pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":206 + * (end, args, kargs) = context + * end(Dm, gvec, mode, lvec, *args, **kargs) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateMatrix( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":192 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_LocalToLocalEnd( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscVec g, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_LocalToLocalEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_gvec); + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_end); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":208 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateMatrix( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateMatrix(DM __pyx_v_dm, Mat *__pyx_v_cmat) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_matrix = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + DM __pyx_v_odm; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Mat __pyx_t_9; + PetscErrorCode __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateMatrix", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":211 + * PetscDM dm, + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef Mat mat + * Dm.dm = dm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 211, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":213 + * cdef DM Dm = subtype_DM(dm)() + * cdef Mat mat + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_matrix__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":214 + * cdef Mat mat + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__create_matrix__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":215 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_matrix__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (matrix, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_matrix__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":216 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_matrix__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (matrix, args, kargs) = context + * mat = matrix(Dm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 216, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":217 + * context = Dm.get_attr('__create_matrix__') + * assert context is not None and type(context) is tuple + * (matrix, args, kargs) = context # <<<<<<<<<<<<<< + * mat = matrix(Dm, *args, **kargs) + * PetscINCREF(mat.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 217, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 217, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 217, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_matrix = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":218 + * assert context is not None and type(context) is tuple + * (matrix, args, kargs) = context + * mat = matrix(Dm, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 218, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_matrix, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(29, 218, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":219 + * (matrix, args, kargs) = context + * mat = matrix(Dm, *args, **kargs) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * cmat[0] = mat.mat + * cdef PetscDM odm = NULL + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":220 + * mat = matrix(Dm, *args, **kargs) + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat # <<<<<<<<<<<<<< + * cdef PetscDM odm = NULL + * CHKERR( MatGetDM(cmat[0], &odm) ) + */ + __pyx_t_9 = __pyx_v_mat->mat; + (__pyx_v_cmat[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":221 + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + * cdef PetscDM odm = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetDM(cmat[0], &odm) ) + * if odm == NULL: + */ + __pyx_v_odm = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":222 + * cmat[0] = mat.mat + * cdef PetscDM odm = NULL + * CHKERR( MatGetDM(cmat[0], &odm) ) # <<<<<<<<<<<<<< + * if odm == NULL: + * CHKERR( MatSetDM(cmat[0], dm) ) + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetDM((__pyx_v_cmat[0]), (&__pyx_v_odm))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 222, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":223 + * cdef PetscDM odm = NULL + * CHKERR( MatGetDM(cmat[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatSetDM(cmat[0], dm) ) + * return PETSC_SUCCESS + */ + __pyx_t_3 = ((__pyx_v_odm == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":224 + * CHKERR( MatGetDM(cmat[0], &odm) ) + * if odm == NULL: + * CHKERR( MatSetDM(cmat[0], dm) ) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetDM((__pyx_v_cmat[0]), __pyx_v_dm)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 224, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":223 + * cdef PetscDM odm = NULL + * CHKERR( MatGetDM(cmat[0], &odm) ) + * if odm == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatSetDM(cmat[0], dm) ) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":225 + * if odm == NULL: + * CHKERR( MatSetDM(cmat[0], dm) ) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_Coarsen( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":208 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateMatrix( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_matrix); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":227 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_Coarsen( # <<<<<<<<<<<<<< + * PetscDM dm, + * MPI_Comm comm, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_Coarsen(DM __pyx_v_dm, MPI_Comm __pyx_v_comm, DM *__pyx_v_dmc) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscDMObject *__pyx_v_Dmc = 0; + struct PyPetscCommObject *__pyx_v_Comm = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_coarsen = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + DM __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_Coarsen", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":231 + * MPI_Comm comm, + * PetscDM *dmc) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef DM Dmc + * cdef Comm Comm = new_Comm(comm) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 231, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":233 + * cdef DM Dm = subtype_DM(dm)() + * cdef DM Dmc + * cdef Comm Comm = new_Comm(comm) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_new_Comm(__pyx_v_comm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_Comm = ((struct PyPetscCommObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":234 + * cdef DM Dmc + * cdef Comm Comm = new_Comm(comm) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__coarsen__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":235 + * cdef Comm Comm = new_Comm(comm) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__coarsen__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":236 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__coarsen__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (coarsen, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__coarsen__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":237 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__coarsen__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (coarsen, args, kargs) = context + * Dmc = coarsen(Dm, Comm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 237, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":238 + * context = Dm.get_attr('__coarsen__') + * assert context is not None and type(context) is tuple + * (coarsen, args, kargs) = context # <<<<<<<<<<<<<< + * Dmc = coarsen(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmc.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 238, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 238, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 238, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_coarsen = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":239 + * assert context is not None and type(context) is tuple + * (coarsen, args, kargs) = context + * Dmc = coarsen(Dm, Comm, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(Dmc.obj) + * dmc[0] = Dmc.dm + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_Comm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Comm)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Comm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 239, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_coarsen, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 239, __pyx_L1_error) + __pyx_v_Dmc = ((struct PyPetscDMObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":240 + * (coarsen, args, kargs) = context + * Dmc = coarsen(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmc.obj) # <<<<<<<<<<<<<< + * dmc[0] = Dmc.dm + * return PETSC_SUCCESS + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmc->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":241 + * Dmc = coarsen(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmc.obj) + * dmc[0] = Dmc.dm # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_v_Dmc->dm; + (__pyx_v_dmc[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":242 + * PetscINCREF(Dmc.obj) + * dmc[0] = Dmc.dm + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_Refine( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":227 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_Coarsen( # <<<<<<<<<<<<<< + * PetscDM dm, + * MPI_Comm comm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_Coarsen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_Dmc); + __Pyx_XDECREF((PyObject *)__pyx_v_Comm); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_coarsen); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":244 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_Refine( # <<<<<<<<<<<<<< + * PetscDM dm, + * MPI_Comm comm, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_Refine(DM __pyx_v_dm, MPI_Comm __pyx_v_comm, DM *__pyx_v_dmf) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + struct PyPetscDMObject *__pyx_v_Dmf = 0; + struct PyPetscCommObject *__pyx_v_Comm = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_refine = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + DM __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_Refine", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":248 + * MPI_Comm comm, + * PetscDM *dmf) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef DM Dmf + * cdef Comm Comm = new_Comm(comm) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 248, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":250 + * cdef DM Dm = subtype_DM(dm)() + * cdef DM Dmf + * cdef Comm Comm = new_Comm(comm) # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_new_Comm(__pyx_v_comm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_Comm = ((struct PyPetscCommObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":251 + * cdef DM Dmf + * cdef Comm Comm = new_Comm(comm) + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__refine__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":252 + * cdef Comm Comm = new_Comm(comm) + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__refine__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":253 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__refine__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (refine, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__refine__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":254 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__refine__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (refine, args, kargs) = context + * Dmf = refine(Dm, Comm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 254, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":255 + * context = Dm.get_attr('__refine__') + * assert context is not None and type(context) is tuple + * (refine, args, kargs) = context # <<<<<<<<<<<<<< + * Dmf = refine(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmf.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 255, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 255, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 255, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_refine = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":256 + * assert context is not None and type(context) is tuple + * (refine, args, kargs) = context + * Dmf = refine(Dm, Comm, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(Dmf.obj) + * dmf[0] = Dmf.dm + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_Comm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Comm)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Comm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 256, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_refine, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 256, __pyx_L1_error) + __pyx_v_Dmf = ((struct PyPetscDMObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":257 + * (refine, args, kargs) = context + * Dmf = refine(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmf.obj) # <<<<<<<<<<<<<< + * dmf[0] = Dmf.dm + * return PETSC_SUCCESS + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmf->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":258 + * Dmf = refine(Dm, Comm, *args, **kargs) + * PetscINCREF(Dmf.obj) + * dmf[0] = Dmf.dm # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_v_Dmf->dm; + (__pyx_v_dmf[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":259 + * PetscINCREF(Dmf.obj) + * dmf[0] = Dmf.dm + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateInterpolation( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":244 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_Refine( # <<<<<<<<<<<<<< + * PetscDM dm, + * MPI_Comm comm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_Refine", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_Dmf); + __Pyx_XDECREF((PyObject *)__pyx_v_Comm); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_refine); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":261 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateInterpolation( # <<<<<<<<<<<<<< + * PetscDM dmc, + * PetscDM dmf, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInterpolation(DM __pyx_v_dmc, DM __pyx_v_dmf, Mat *__pyx_v_cmat, Vec *__pyx_v_cvec) { + struct PyPetscDMObject *__pyx_v_Dmc = 0; + struct PyPetscDMObject *__pyx_v_Dmf = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_interpolation = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Mat __pyx_t_9; + Vec __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateInterpolation", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":266 + * PetscMat *cmat, + * PetscVec *cvec) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmc = subtype_DM(dmc)() # <<<<<<<<<<<<<< + * cdef DM Dmf = subtype_DM(dmf)() + * cdef Mat mat + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 266, __pyx_L1_error) + __pyx_v_Dmc = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":267 + * PetscVec *cvec) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmc = subtype_DM(dmc)() + * cdef DM Dmf = subtype_DM(dmf)() # <<<<<<<<<<<<<< + * cdef Mat mat + * cdef Vec vec + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmf)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 267, __pyx_L1_error) + __pyx_v_Dmf = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":270 + * cdef Mat mat + * cdef Vec vec + * Dmc.dm = dmc # <<<<<<<<<<<<<< + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf + */ + __pyx_v_Dmc->dm = __pyx_v_dmc; + + /* "petsc4py/PETSc/petscdmshell.pxi":271 + * cdef Vec vec + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) # <<<<<<<<<<<<<< + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmc->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":272 + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf # <<<<<<<<<<<<<< + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_interpolation__') + */ + __pyx_v_Dmf->dm = __pyx_v_dmf; + + /* "petsc4py/PETSc/petscdmshell.pxi":273 + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) # <<<<<<<<<<<<<< + * context = Dmc.get_attr('__create_interpolation__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmf->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":274 + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_interpolation__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (interpolation, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dmc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dmc), ((char *)"__create_interpolation__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":275 + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_interpolation__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (interpolation, args, kargs) = context + * mat, vec = interpolation(Dmc, Dmf, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 275, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":276 + * context = Dmc.get_attr('__create_interpolation__') + * assert context is not None and type(context) is tuple + * (interpolation, args, kargs) = context # <<<<<<<<<<<<<< + * mat, vec = interpolation(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 276, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 276, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 276, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_interpolation = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":277 + * assert context is not None and type(context) is tuple + * (interpolation, args, kargs) = context + * mat, vec = interpolation(Dmc, Dmf, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmc)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dmc)); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmf)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmf)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Dmf)); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 277, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_2 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { + __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_interpolation, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 277, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(29, 277, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 277, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(29, 277, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(29, 277, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":278 + * (interpolation, args, kargs) = context + * mat, vec = interpolation(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * cmat[0] = mat.mat + * if cvec == NULL: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":279 + * mat, vec = interpolation(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat # <<<<<<<<<<<<<< + * if cvec == NULL: + * return PETSC_SUCCESS + */ + __pyx_t_9 = __pyx_v_mat->mat; + (__pyx_v_cmat[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":280 + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + * if cvec == NULL: # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * if vec is None: + */ + __pyx_t_3 = ((__pyx_v_cvec == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":281 + * cmat[0] = mat.mat + * if cvec == NULL: + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * if vec is None: + * cvec[0] = NULL + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":280 + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + * if cvec == NULL: # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * if vec is None: + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":282 + * if cvec == NULL: + * return PETSC_SUCCESS + * if vec is None: # <<<<<<<<<<<<<< + * cvec[0] = NULL + * else: + */ + __pyx_t_3 = (((PyObject *)__pyx_v_vec) == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":283 + * return PETSC_SUCCESS + * if vec is None: + * cvec[0] = NULL # <<<<<<<<<<<<<< + * else: + * PetscINCREF(vec.obj) + */ + (__pyx_v_cvec[0]) = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":282 + * if cvec == NULL: + * return PETSC_SUCCESS + * if vec is None: # <<<<<<<<<<<<<< + * cvec[0] = NULL + * else: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":285 + * cvec[0] = NULL + * else: + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * cvec[0] = vec.vec + * return PETSC_SUCCESS + */ + /*else*/ { + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":286 + * else: + * PetscINCREF(vec.obj) + * cvec[0] = vec.vec # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_10 = __pyx_v_vec->vec; + (__pyx_v_cvec[0]) = __pyx_t_10; + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscdmshell.pxi":287 + * PetscINCREF(vec.obj) + * cvec[0] = vec.vec + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateInjection( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":261 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateInterpolation( # <<<<<<<<<<<<<< + * PetscDM dmc, + * PetscDM dmf, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dmc); + __Pyx_XDECREF((PyObject *)__pyx_v_Dmf); + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_interpolation); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":289 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateInjection( # <<<<<<<<<<<<<< + * PetscDM dmc, + * PetscDM dmf, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInjection(DM __pyx_v_dmc, DM __pyx_v_dmf, Mat *__pyx_v_cmat) { + struct PyPetscDMObject *__pyx_v_Dmc = 0; + struct PyPetscDMObject *__pyx_v_Dmf = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_injection = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Mat __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateInjection", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":293 + * PetscDM dmf, + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmc = subtype_DM(dmc)() # <<<<<<<<<<<<<< + * cdef DM Dmf = subtype_DM(dmf)() + * cdef Mat mat + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 293, __pyx_L1_error) + __pyx_v_Dmc = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":294 + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmc = subtype_DM(dmc)() + * cdef DM Dmf = subtype_DM(dmf)() # <<<<<<<<<<<<<< + * cdef Mat mat + * Dmc.dm = dmc + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmf)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 294, __pyx_L1_error) + __pyx_v_Dmf = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":296 + * cdef DM Dmf = subtype_DM(dmf)() + * cdef Mat mat + * Dmc.dm = dmc # <<<<<<<<<<<<<< + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf + */ + __pyx_v_Dmc->dm = __pyx_v_dmc; + + /* "petsc4py/PETSc/petscdmshell.pxi":297 + * cdef Mat mat + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) # <<<<<<<<<<<<<< + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmc->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":298 + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf # <<<<<<<<<<<<<< + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_injection__') + */ + __pyx_v_Dmf->dm = __pyx_v_dmf; + + /* "petsc4py/PETSc/petscdmshell.pxi":299 + * PetscINCREF(Dmc.obj) + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) # <<<<<<<<<<<<<< + * context = Dmc.get_attr('__create_injection__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmf->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":300 + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_injection__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (injection, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dmc->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dmc), ((char *)"__create_injection__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":301 + * PetscINCREF(Dmf.obj) + * context = Dmc.get_attr('__create_injection__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (injection, args, kargs) = context + * mat = injection(Dmc, Dmf, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 301, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":302 + * context = Dmc.get_attr('__create_injection__') + * assert context is not None and type(context) is tuple + * (injection, args, kargs) = context # <<<<<<<<<<<<<< + * mat = injection(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 302, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 302, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 302, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_injection = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":303 + * assert context is not None and type(context) is tuple + * (injection, args, kargs) = context + * mat = injection(Dmc, Dmf, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmc)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dmc)); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmf)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmf)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Dmf)); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 303, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_2 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { + __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_injection, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(29, 303, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":304 + * (injection, args, kargs) = context + * mat = injection(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * cmat[0] = mat.mat + * return PETSC_SUCCESS + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":305 + * mat = injection(Dmc, Dmf, *args, **kargs) + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_v_mat->mat; + (__pyx_v_cmat[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":306 + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateRestriction( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":289 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateInjection( # <<<<<<<<<<<<<< + * PetscDM dmc, + * PetscDM dmf, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dmc); + __Pyx_XDECREF((PyObject *)__pyx_v_Dmf); + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_injection); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":308 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateRestriction( # <<<<<<<<<<<<<< + * PetscDM dmf, + * PetscDM dmc, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateRestriction(DM __pyx_v_dmf, DM __pyx_v_dmc, Mat *__pyx_v_cmat) { + struct PyPetscDMObject *__pyx_v_Dmf = 0; + struct PyPetscDMObject *__pyx_v_Dmc = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_restriction = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Mat __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateRestriction", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":312 + * PetscDM dmc, + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmf = subtype_DM(dmf)() # <<<<<<<<<<<<<< + * cdef DM Dmc = subtype_DM(dmc)() + * cdef Mat mat + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 312, __pyx_L1_error) + __pyx_v_Dmf = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":313 + * PetscMat *cmat) except PETSC_ERR_PYTHON with gil: + * cdef DM Dmf = subtype_DM(dmf)() + * cdef DM Dmc = subtype_DM(dmc)() # <<<<<<<<<<<<<< + * cdef Mat mat + * Dmf.dm = dmf + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dmc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 313, __pyx_L1_error) + __pyx_v_Dmc = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":315 + * cdef DM Dmc = subtype_DM(dmc)() + * cdef Mat mat + * Dmf.dm = dmf # <<<<<<<<<<<<<< + * PetscINCREF(Dmf.obj) + * Dmc.dm = dmc + */ + __pyx_v_Dmf->dm = __pyx_v_dmf; + + /* "petsc4py/PETSc/petscdmshell.pxi":316 + * cdef Mat mat + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) # <<<<<<<<<<<<<< + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmf->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":317 + * Dmf.dm = dmf + * PetscINCREF(Dmf.obj) + * Dmc.dm = dmc # <<<<<<<<<<<<<< + * PetscINCREF(Dmc.obj) + * context = Dmf.get_attr('__create_restriction__') + */ + __pyx_v_Dmc->dm = __pyx_v_dmc; + + /* "petsc4py/PETSc/petscdmshell.pxi":318 + * PetscINCREF(Dmf.obj) + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) # <<<<<<<<<<<<<< + * context = Dmf.get_attr('__create_restriction__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dmc->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":319 + * Dmc.dm = dmc + * PetscINCREF(Dmc.obj) + * context = Dmf.get_attr('__create_restriction__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (restriction, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dmf->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dmf), ((char *)"__create_restriction__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":320 + * PetscINCREF(Dmc.obj) + * context = Dmf.get_attr('__create_restriction__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (restriction, args, kargs) = context + * mat = restriction(Dmf, Dmc, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 320, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":321 + * context = Dmf.get_attr('__create_restriction__') + * assert context is not None and type(context) is tuple + * (restriction, args, kargs) = context # <<<<<<<<<<<<<< + * mat = restriction(Dmf, Dmc, *args, **kargs) + * PetscINCREF(mat.obj) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 321, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 321, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 321, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_restriction = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":322 + * assert context is not None and type(context) is tuple + * (restriction, args, kargs) = context + * mat = restriction(Dmf, Dmc, *args, **kargs) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmf)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmf)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dmf)); + __Pyx_INCREF(((PyObject *)__pyx_v_Dmc)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dmc)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_Dmc)); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 322, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_2 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { + __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_restriction, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(29, 322, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":323 + * (restriction, args, kargs) = context + * mat = restriction(Dmf, Dmc, *args, **kargs) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * cmat[0] = mat.mat + * return PETSC_SUCCESS + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":324 + * mat = restriction(Dmf, Dmc, *args, **kargs) + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __pyx_v_mat->mat; + (__pyx_v_cmat[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":325 + * PetscINCREF(mat.obj) + * cmat[0] = mat.mat + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateFieldDecomposition( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":308 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateRestriction( # <<<<<<<<<<<<<< + * PetscDM dmf, + * PetscDM dmc, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dmf); + __Pyx_XDECREF((PyObject *)__pyx_v_Dmc); + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_restriction); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":327 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateFieldDecomposition( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt *clen, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateFieldDecomposition(DM __pyx_v_dm, PetscInt *__pyx_v_clen, char ***__pyx_v_namelist, IS **__pyx_v_islist, DM **__pyx_v_dmlist) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + int __pyx_v_i; + char const *__pyx_v_cname; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_decomp = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_names = NULL; + PyObject *__pyx_v_ises = NULL; + PyObject *__pyx_v_dms = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + Py_ssize_t __pyx_t_10; + PetscErrorCode __pyx_t_11; + Py_ssize_t __pyx_t_12; + int __pyx_t_13; + IS __pyx_t_14; + DM __pyx_t_15; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateFieldDecomposition", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":333 + * PetscIS **islist, + * PetscDM **dmlist) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef int i + * cdef const char *cname = NULL + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 333, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":335 + * cdef DM Dm = subtype_DM(dm)() + * cdef int i + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":336 + * cdef int i + * cdef const char *cname = NULL + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_field_decomp__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":337 + * cdef const char *cname = NULL + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__create_field_decomp__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":338 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_field_decomp__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_field_decomp__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":339 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_field_decomp__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (decomp, args, kargs) = context + * names, ises, dms = decomp(Dm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 339, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":340 + * context = Dm.get_attr('__create_field_decomp__') + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context # <<<<<<<<<<<<<< + * names, ises, dms = decomp(Dm, *args, **kargs) + * + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 340, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 340, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 340, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_decomp = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":341 + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context + * names, ises, dms = decomp(Dm, *args, **kargs) # <<<<<<<<<<<<<< + * + * if clen != NULL: + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 341, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_decomp, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 341, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_7 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_7); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 2; __pyx_t_7 = __pyx_t_8(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_9), 3) < 0) __PYX_ERR(29, 341, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 341, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __pyx_v_names = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_ises = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_dms = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":343 + * names, ises, dms = decomp(Dm, *args, **kargs) + * + * if clen != NULL: # <<<<<<<<<<<<<< + * if names is not None: + * clen[0] = len(names) + */ + __pyx_t_3 = ((__pyx_v_clen != NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":344 + * + * if clen != NULL: + * if names is not None: # <<<<<<<<<<<<<< + * clen[0] = len(names) + * elif ises is not None: + */ + __pyx_t_3 = (__pyx_v_names != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":345 + * if clen != NULL: + * if names is not None: + * clen[0] = len(names) # <<<<<<<<<<<<<< + * elif ises is not None: + * clen[0] = len(ises) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 345, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_10); + + /* "petsc4py/PETSc/petscdmshell.pxi":344 + * + * if clen != NULL: + * if names is not None: # <<<<<<<<<<<<<< + * clen[0] = len(names) + * elif ises is not None: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":346 + * if names is not None: + * clen[0] = len(names) + * elif ises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(ises) + * elif dms is not None: + */ + __pyx_t_4 = (__pyx_v_ises != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":347 + * clen[0] = len(names) + * elif ises is not None: + * clen[0] = len(ises) # <<<<<<<<<<<<<< + * elif dms is not None: + * clen[0] = len(dms) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_ises); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 347, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_10); + + /* "petsc4py/PETSc/petscdmshell.pxi":346 + * if names is not None: + * clen[0] = len(names) + * elif ises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(ises) + * elif dms is not None: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":348 + * elif ises is not None: + * clen[0] = len(ises) + * elif dms is not None: # <<<<<<<<<<<<<< + * clen[0] = len(dms) + * else: + */ + __pyx_t_3 = (__pyx_v_dms != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":349 + * clen[0] = len(ises) + * elif dms is not None: + * clen[0] = len(dms) # <<<<<<<<<<<<<< + * else: + * clen[0] = 0 + */ + __pyx_t_10 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 349, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_10); + + /* "petsc4py/PETSc/petscdmshell.pxi":348 + * elif ises is not None: + * clen[0] = len(ises) + * elif dms is not None: # <<<<<<<<<<<<<< + * clen[0] = len(dms) + * else: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":351 + * clen[0] = len(dms) + * else: + * clen[0] = 0 # <<<<<<<<<<<<<< + * + * if namelist != NULL and names is not None: + */ + /*else*/ { + (__pyx_v_clen[0]) = 0; + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscdmshell.pxi":343 + * names, ises, dms = decomp(Dm, *args, **kargs) + * + * if clen != NULL: # <<<<<<<<<<<<<< + * if names is not None: + * clen[0] = len(names) + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":353 + * clen[0] = 0 + * + * if namelist != NULL and names is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + */ + __pyx_t_3 = ((__pyx_v_namelist != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_4 = __pyx_t_3; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_3 = (__pyx_v_names != Py_None); + __pyx_t_5 = (__pyx_t_3 != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L12_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":354 + * + * if namelist != NULL and names is not None: + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) # <<<<<<<<<<<<<< + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 354, __pyx_L1_error) + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_10 * (sizeof(char **))), __pyx_v_namelist)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 354, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":355 + * if namelist != NULL and names is not None: + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): # <<<<<<<<<<<<<< + * names[i] = str2bytes(names[i], &cname) + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 355, __pyx_L1_error) + __pyx_t_12 = __pyx_t_10; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; + + /* "petsc4py/PETSc/petscdmshell.pxi":356 + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) # <<<<<<<<<<<<<< + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_names, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_t_6, (&__pyx_v_cname)); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_names, __pyx_v_i, __pyx_t_7, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(29, 356, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":357 + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) # <<<<<<<<<<<<<< + * + * if islist != NULL and ises is not None: + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscStrallocpy(__pyx_v_cname, (&((__pyx_v_namelist[0])[__pyx_v_i])))); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 357, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmshell.pxi":353 + * clen[0] = 0 + * + * if namelist != NULL and names is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":359 + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + * if islist != NULL and ises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(ises)*sizeof(PetscIS), islist) ) + * for i in range(len(ises)): + */ + __pyx_t_5 = ((__pyx_v_islist != NULL) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_4 = __pyx_t_5; + goto __pyx_L17_bool_binop_done; + } + __pyx_t_5 = (__pyx_v_ises != Py_None); + __pyx_t_3 = (__pyx_t_5 != 0); + __pyx_t_4 = __pyx_t_3; + __pyx_L17_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":360 + * + * if islist != NULL and ises is not None: + * CHKERR( PetscMalloc(len(ises)*sizeof(PetscIS), islist) ) # <<<<<<<<<<<<<< + * for i in range(len(ises)): + * islist[0][i] = (ises[i]).iset + */ + __pyx_t_10 = PyObject_Length(__pyx_v_ises); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 360, __pyx_L1_error) + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_10 * (sizeof(IS))), __pyx_v_islist)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 360, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":361 + * if islist != NULL and ises is not None: + * CHKERR( PetscMalloc(len(ises)*sizeof(PetscIS), islist) ) + * for i in range(len(ises)): # <<<<<<<<<<<<<< + * islist[0][i] = (ises[i]).iset + * PetscINCREF((ises[i]).obj) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_ises); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 361, __pyx_L1_error) + __pyx_t_12 = __pyx_t_10; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; + + /* "petsc4py/PETSc/petscdmshell.pxi":362 + * CHKERR( PetscMalloc(len(ises)*sizeof(PetscIS), islist) ) + * for i in range(len(ises)): + * islist[0][i] = (ises[i]).iset # <<<<<<<<<<<<<< + * PetscINCREF((ises[i]).obj) + * + */ + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_ises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (!(likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 362, __pyx_L1_error) + __pyx_t_14 = ((struct PyPetscISObject *)__pyx_t_7)->iset; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + ((__pyx_v_islist[0])[__pyx_v_i]) = __pyx_t_14; + + /* "petsc4py/PETSc/petscdmshell.pxi":363 + * for i in range(len(ises)): + * islist[0][i] = (ises[i]).iset + * PetscINCREF((ises[i]).obj) # <<<<<<<<<<<<<< + * + * if dmlist != NULL and dms is not None: + */ + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_ises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (!(likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 363, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscISObject *)__pyx_t_7)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":359 + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + * if islist != NULL and ises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(ises)*sizeof(PetscIS), islist) ) + * for i in range(len(ises)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":365 + * PetscINCREF((ises[i]).obj) + * + * if dmlist != NULL and dms is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + */ + __pyx_t_3 = ((__pyx_v_dmlist != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_4 = __pyx_t_3; + goto __pyx_L22_bool_binop_done; + } + __pyx_t_3 = (__pyx_v_dms != Py_None); + __pyx_t_5 = (__pyx_t_3 != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L22_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":366 + * + * if dmlist != NULL and dms is not None: + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) # <<<<<<<<<<<<<< + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm + */ + __pyx_t_10 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 366, __pyx_L1_error) + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_10 * (sizeof(DM))), __pyx_v_dmlist)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 366, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":367 + * if dmlist != NULL and dms is not None: + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): # <<<<<<<<<<<<<< + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) + */ + __pyx_t_10 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(29, 367, __pyx_L1_error) + __pyx_t_12 = __pyx_t_10; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; + + /* "petsc4py/PETSc/petscdmshell.pxi":368 + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm # <<<<<<<<<<<<<< + * PetscINCREF((dms[i]).obj) + * return PETSC_SUCCESS + */ + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (!(likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(29, 368, __pyx_L1_error) + __pyx_t_15 = ((struct PyPetscDMObject *)__pyx_t_7)->dm; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + ((__pyx_v_dmlist[0])[__pyx_v_i]) = __pyx_t_15; + + /* "petsc4py/PETSc/petscdmshell.pxi":369 + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_7 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (!(likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(29, 369, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscDMObject *)__pyx_t_7)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":365 + * PetscINCREF((ises[i]).obj) + * + * if dmlist != NULL and dms is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":370 + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecomposition( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":327 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateFieldDecomposition( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt *clen, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateFieldDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_decomp); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_names); + __Pyx_XDECREF(__pyx_v_ises); + __Pyx_XDECREF(__pyx_v_dms); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":372 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecomposition( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt *clen, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecomposition(DM __pyx_v_dm, PetscInt *__pyx_v_clen, char ***__pyx_v_namelist, IS **__pyx_v_innerislist, IS **__pyx_v_outerislist, DM **__pyx_v_dmlist) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + int __pyx_v_i; + char const *__pyx_v_cname; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_decomp = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_names = NULL; + PyObject *__pyx_v_innerises = NULL; + PyObject *__pyx_v_outerises = NULL; + PyObject *__pyx_v_dms = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + PetscErrorCode __pyx_t_12; + Py_ssize_t __pyx_t_13; + int __pyx_t_14; + IS __pyx_t_15; + DM __pyx_t_16; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateDomainDecomposition", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":379 + * PetscIS **outerislist, + * PetscDM **dmlist) except PETSC_ERR_PYTHON with gil: + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef int i + * cdef const char *cname = NULL + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 379, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":381 + * cdef DM Dm = subtype_DM(dm)() + * cdef int i + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * Dm.dm = dm + * PetscINCREF(Dm.obj) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":382 + * cdef int i + * cdef const char *cname = NULL + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_domain_decomp__') + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":383 + * cdef const char *cname = NULL + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * context = Dm.get_attr('__create_domain_decomp__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":384 + * Dm.dm = dm + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_domain_decomp__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_domain_decomp__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":385 + * PetscINCREF(Dm.obj) + * context = Dm.get_attr('__create_domain_decomp__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (decomp, args, kargs) = context + * names, innerises, outerises, dms = decomp(Dm, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 385, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":386 + * context = Dm.get_attr('__create_domain_decomp__') + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context # <<<<<<<<<<<<<< + * names, innerises, outerises, dms = decomp(Dm, *args, **kargs) + * + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 386, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 386, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 386, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_decomp = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":387 + * assert context is not None and type(context) is tuple + * (decomp, args, kargs) = context + * names, innerises, outerises, dms = decomp(Dm, *args, **kargs) # <<<<<<<<<<<<<< + * + * if clen != NULL: + */ + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_Dm)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 387, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_decomp, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 4)) { + if (size > 4) __Pyx_RaiseTooManyValuesError(4); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 387, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_7 = PyList_GET_ITEM(sequence, 2); + __pyx_t_9 = PyList_GET_ITEM(sequence, 3); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_9); + #else + { + Py_ssize_t i; + PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_2,&__pyx_t_7,&__pyx_t_9}; + for (i=0; i < 4; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_2,&__pyx_t_7,&__pyx_t_9}; + __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(29, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_10)->tp_iternext; + for (index=0; index < 4; index++) { + PyObject* item = __pyx_t_8(__pyx_t_10); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_10), 4) < 0) __PYX_ERR(29, 387, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 387, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __pyx_v_names = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_innerises = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_outerises = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_dms = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":389 + * names, innerises, outerises, dms = decomp(Dm, *args, **kargs) + * + * if clen != NULL: # <<<<<<<<<<<<<< + * if names is not None: + * clen[0] = len(names) + */ + __pyx_t_3 = ((__pyx_v_clen != NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":390 + * + * if clen != NULL: + * if names is not None: # <<<<<<<<<<<<<< + * clen[0] = len(names) + * elif innerises is not None: + */ + __pyx_t_3 = (__pyx_v_names != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":391 + * if clen != NULL: + * if names is not None: + * clen[0] = len(names) # <<<<<<<<<<<<<< + * elif innerises is not None: + * clen[0] = len(innerises) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 391, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_11); + + /* "petsc4py/PETSc/petscdmshell.pxi":390 + * + * if clen != NULL: + * if names is not None: # <<<<<<<<<<<<<< + * clen[0] = len(names) + * elif innerises is not None: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":392 + * if names is not None: + * clen[0] = len(names) + * elif innerises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(innerises) + * elif outerises is not None: + */ + __pyx_t_4 = (__pyx_v_innerises != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":393 + * clen[0] = len(names) + * elif innerises is not None: + * clen[0] = len(innerises) # <<<<<<<<<<<<<< + * elif outerises is not None: + * clen[0] = len(outerises) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_innerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 393, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_11); + + /* "petsc4py/PETSc/petscdmshell.pxi":392 + * if names is not None: + * clen[0] = len(names) + * elif innerises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(innerises) + * elif outerises is not None: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":394 + * elif innerises is not None: + * clen[0] = len(innerises) + * elif outerises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(outerises) + * elif dms is not None: + */ + __pyx_t_3 = (__pyx_v_outerises != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/petscdmshell.pxi":395 + * clen[0] = len(innerises) + * elif outerises is not None: + * clen[0] = len(outerises) # <<<<<<<<<<<<<< + * elif dms is not None: + * clen[0] = len(dms) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_outerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 395, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_11); + + /* "petsc4py/PETSc/petscdmshell.pxi":394 + * elif innerises is not None: + * clen[0] = len(innerises) + * elif outerises is not None: # <<<<<<<<<<<<<< + * clen[0] = len(outerises) + * elif dms is not None: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":396 + * elif outerises is not None: + * clen[0] = len(outerises) + * elif dms is not None: # <<<<<<<<<<<<<< + * clen[0] = len(dms) + * else: + */ + __pyx_t_4 = (__pyx_v_dms != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":397 + * clen[0] = len(outerises) + * elif dms is not None: + * clen[0] = len(dms) # <<<<<<<<<<<<<< + * else: + * clen[0] = 0 + */ + __pyx_t_11 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 397, __pyx_L1_error) + (__pyx_v_clen[0]) = ((PetscInt)__pyx_t_11); + + /* "petsc4py/PETSc/petscdmshell.pxi":396 + * elif outerises is not None: + * clen[0] = len(outerises) + * elif dms is not None: # <<<<<<<<<<<<<< + * clen[0] = len(dms) + * else: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":399 + * clen[0] = len(dms) + * else: + * clen[0] = 0 # <<<<<<<<<<<<<< + * + * if namelist != NULL and names is not None: + */ + /*else*/ { + (__pyx_v_clen[0]) = 0; + } + __pyx_L10:; + + /* "petsc4py/PETSc/petscdmshell.pxi":389 + * names, innerises, outerises, dms = decomp(Dm, *args, **kargs) + * + * if clen != NULL: # <<<<<<<<<<<<<< + * if names is not None: + * clen[0] = len(names) + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":401 + * clen[0] = 0 + * + * if namelist != NULL and names is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + */ + __pyx_t_4 = ((__pyx_v_namelist != NULL) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_4 = (__pyx_v_names != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_3 = __pyx_t_5; + __pyx_L12_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":402 + * + * if namelist != NULL and names is not None: + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) # <<<<<<<<<<<<<< + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 402, __pyx_L1_error) + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_11 * (sizeof(char **))), __pyx_v_namelist)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 402, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":403 + * if namelist != NULL and names is not None: + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): # <<<<<<<<<<<<<< + * names[i] = str2bytes(names[i], &cname) + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 403, __pyx_L1_error) + __pyx_t_13 = __pyx_t_11; + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + /* "petsc4py/PETSc/petscdmshell.pxi":404 + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) # <<<<<<<<<<<<<< + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_names, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_t_6, (&__pyx_v_cname)); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_names, __pyx_v_i, __pyx_t_9, int, 1, __Pyx_PyInt_From_int, 0, 1, 1) < 0)) __PYX_ERR(29, 404, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":405 + * for i in range(len(names)): + * names[i] = str2bytes(names[i], &cname) + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) # <<<<<<<<<<<<<< + * + * if innerislist != NULL and innerises is not None: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscStrallocpy(__pyx_v_cname, (&((__pyx_v_namelist[0])[__pyx_v_i])))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 405, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmshell.pxi":401 + * clen[0] = 0 + * + * if namelist != NULL and names is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(names)*sizeof(char**), namelist) ) + * for i in range(len(names)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":407 + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + * if innerislist != NULL and innerises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(innerises)*sizeof(PetscIS), innerislist) ) + * for i in range(len(innerises)): + */ + __pyx_t_5 = ((__pyx_v_innerislist != NULL) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L17_bool_binop_done; + } + __pyx_t_5 = (__pyx_v_innerises != Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L17_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":408 + * + * if innerislist != NULL and innerises is not None: + * CHKERR( PetscMalloc(len(innerises)*sizeof(PetscIS), innerislist) ) # <<<<<<<<<<<<<< + * for i in range(len(innerises)): + * innerislist[0][i] = (innerises[i]).iset + */ + __pyx_t_11 = PyObject_Length(__pyx_v_innerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 408, __pyx_L1_error) + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_11 * (sizeof(IS))), __pyx_v_innerislist)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 408, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":409 + * if innerislist != NULL and innerises is not None: + * CHKERR( PetscMalloc(len(innerises)*sizeof(PetscIS), innerislist) ) + * for i in range(len(innerises)): # <<<<<<<<<<<<<< + * innerislist[0][i] = (innerises[i]).iset + * PetscINCREF((innerises[i]).obj) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_innerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 409, __pyx_L1_error) + __pyx_t_13 = __pyx_t_11; + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + /* "petsc4py/PETSc/petscdmshell.pxi":410 + * CHKERR( PetscMalloc(len(innerises)*sizeof(PetscIS), innerislist) ) + * for i in range(len(innerises)): + * innerislist[0][i] = (innerises[i]).iset # <<<<<<<<<<<<<< + * PetscINCREF((innerises[i]).obj) + * + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_innerises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 410, __pyx_L1_error) + __pyx_t_15 = ((struct PyPetscISObject *)__pyx_t_9)->iset; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + ((__pyx_v_innerislist[0])[__pyx_v_i]) = __pyx_t_15; + + /* "petsc4py/PETSc/petscdmshell.pxi":411 + * for i in range(len(innerises)): + * innerislist[0][i] = (innerises[i]).iset + * PetscINCREF((innerises[i]).obj) # <<<<<<<<<<<<<< + * + * if outerislist != NULL and outerises is not None: + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_innerises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 411, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscISObject *)__pyx_t_9)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":407 + * CHKERR( PetscStrallocpy(cname, &(namelist[0][i])) ) + * + * if innerislist != NULL and innerises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(innerises)*sizeof(PetscIS), innerislist) ) + * for i in range(len(innerises)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":413 + * PetscINCREF((innerises[i]).obj) + * + * if outerislist != NULL and outerises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(outerises)*sizeof(PetscIS), outerislist) ) + * for i in range(len(outerises)): + */ + __pyx_t_4 = ((__pyx_v_outerislist != NULL) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L22_bool_binop_done; + } + __pyx_t_4 = (__pyx_v_outerises != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_3 = __pyx_t_5; + __pyx_L22_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":414 + * + * if outerislist != NULL and outerises is not None: + * CHKERR( PetscMalloc(len(outerises)*sizeof(PetscIS), outerislist) ) # <<<<<<<<<<<<<< + * for i in range(len(outerises)): + * outerislist[0][i] = (outerises[i]).iset + */ + __pyx_t_11 = PyObject_Length(__pyx_v_outerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 414, __pyx_L1_error) + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_11 * (sizeof(IS))), __pyx_v_outerislist)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 414, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":415 + * if outerislist != NULL and outerises is not None: + * CHKERR( PetscMalloc(len(outerises)*sizeof(PetscIS), outerislist) ) + * for i in range(len(outerises)): # <<<<<<<<<<<<<< + * outerislist[0][i] = (outerises[i]).iset + * PetscINCREF((outerises[i]).obj) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_outerises); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 415, __pyx_L1_error) + __pyx_t_13 = __pyx_t_11; + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + /* "petsc4py/PETSc/petscdmshell.pxi":416 + * CHKERR( PetscMalloc(len(outerises)*sizeof(PetscIS), outerislist) ) + * for i in range(len(outerises)): + * outerislist[0][i] = (outerises[i]).iset # <<<<<<<<<<<<<< + * PetscINCREF((outerises[i]).obj) + * + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_outerises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 416, __pyx_L1_error) + __pyx_t_15 = ((struct PyPetscISObject *)__pyx_t_9)->iset; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + ((__pyx_v_outerislist[0])[__pyx_v_i]) = __pyx_t_15; + + /* "petsc4py/PETSc/petscdmshell.pxi":417 + * for i in range(len(outerises)): + * outerislist[0][i] = (outerises[i]).iset + * PetscINCREF((outerises[i]).obj) # <<<<<<<<<<<<<< + * + * if dmlist != NULL and dms is not None: + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_outerises, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(29, 417, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscISObject *)__pyx_t_9)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":413 + * PetscINCREF((innerises[i]).obj) + * + * if outerislist != NULL and outerises is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(outerises)*sizeof(PetscIS), outerislist) ) + * for i in range(len(outerises)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":419 + * PetscINCREF((outerises[i]).obj) + * + * if dmlist != NULL and dms is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + */ + __pyx_t_5 = ((__pyx_v_dmlist != NULL) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L27_bool_binop_done; + } + __pyx_t_5 = (__pyx_v_dms != Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L27_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscdmshell.pxi":420 + * + * if dmlist != NULL and dms is not None: + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) # <<<<<<<<<<<<<< + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm + */ + __pyx_t_11 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 420, __pyx_L1_error) + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_t_11 * (sizeof(DM))), __pyx_v_dmlist)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 420, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":421 + * if dmlist != NULL and dms is not None: + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): # <<<<<<<<<<<<<< + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) + */ + __pyx_t_11 = PyObject_Length(__pyx_v_dms); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(29, 421, __pyx_L1_error) + __pyx_t_13 = __pyx_t_11; + for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) { + __pyx_v_i = __pyx_t_14; + + /* "petsc4py/PETSc/petscdmshell.pxi":422 + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm # <<<<<<<<<<<<<< + * PetscINCREF((dms[i]).obj) + * return PETSC_SUCCESS + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(29, 422, __pyx_L1_error) + __pyx_t_16 = ((struct PyPetscDMObject *)__pyx_t_9)->dm; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + ((__pyx_v_dmlist[0])[__pyx_v_i]) = __pyx_t_16; + + /* "petsc4py/PETSc/petscdmshell.pxi":423 + * for i in range(len(dms)): + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (!(likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(29, 423, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscDMObject *)__pyx_t_9)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":419 + * PetscINCREF((outerises[i]).obj) + * + * if dmlist != NULL and dms is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(len(dms)*sizeof(PetscDM), dmlist) ) + * for i in range(len(dms)): + */ + } + + /* "petsc4py/PETSc/petscdmshell.pxi":424 + * dmlist[0][i] = (dms[i]).dm + * PetscINCREF((dms[i]).obj) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecompositionScatters( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":372 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecomposition( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt *clen, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateDomainDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_decomp); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_names); + __Pyx_XDECREF(__pyx_v_innerises); + __Pyx_XDECREF(__pyx_v_outerises); + __Pyx_XDECREF(__pyx_v_dms); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":426 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecompositionScatters( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt clen, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecompositionScatters(DM __pyx_v_dm, PetscInt __pyx_v_clen, DM *__pyx_v_subdms, VecScatter **__pyx_v_iscat, VecScatter **__pyx_v_oscat, VecScatter **__pyx_v_gscat) { + struct PyPetscDMObject *__pyx_v_Dm = 0; + int __pyx_v_i; + CYTHON_UNUSED char const *__pyx_v_cname; + struct PyPetscDMObject *__pyx_v_subdm = 0; + PyObject *__pyx_v_psubdms = NULL; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_scatters = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyObject *__pyx_v_iscatter = NULL; + PyObject *__pyx_v_oscatter = NULL; + PyObject *__pyx_v_gscatter = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + PyObject *__pyx_t_11 = NULL; + Py_ssize_t __pyx_t_12; + PetscErrorCode __pyx_t_13; + PetscInt __pyx_t_14; + int __pyx_t_15; + VecScatter __pyx_t_16; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateDomainDecompositionScatters", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":434 + * PetscScatter** gscat) except PETSC_ERR_PYTHON with gil: + * + * cdef DM Dm = subtype_DM(dm)() # <<<<<<<<<<<<<< + * cdef int i + * cdef const char *cname = NULL + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_dm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 434, __pyx_L1_error) + __pyx_v_Dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":436 + * cdef DM Dm = subtype_DM(dm)() + * cdef int i + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * cdef DM subdm = None + * + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/petscdmshell.pxi":437 + * cdef int i + * cdef const char *cname = NULL + * cdef DM subdm = None # <<<<<<<<<<<<<< + * + * Dm.dm = dm + */ + __Pyx_INCREF(Py_None); + __pyx_v_subdm = ((struct PyPetscDMObject *)Py_None); + + /* "petsc4py/PETSc/petscdmshell.pxi":439 + * cdef DM subdm = None + * + * Dm.dm = dm # <<<<<<<<<<<<<< + * PetscINCREF(Dm.obj) + * + */ + __pyx_v_Dm->dm = __pyx_v_dm; + + /* "petsc4py/PETSc/petscdmshell.pxi":440 + * + * Dm.dm = dm + * PetscINCREF(Dm.obj) # <<<<<<<<<<<<<< + * + * psubdms = [] + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_Dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":442 + * PetscINCREF(Dm.obj) + * + * psubdms = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < clen: + * subdm = subtype_DM(subdms[i])() + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_psubdms = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":443 + * + * psubdms = [] + * for i from 0 <= i < clen: # <<<<<<<<<<<<<< + * subdm = subtype_DM(subdms[i])() + * subdm.dm = subdms[i] + */ + __pyx_t_3 = __pyx_v_clen; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/petscdmshell.pxi":444 + * psubdms = [] + * for i from 0 <= i < clen: + * subdm = subtype_DM(subdms[i])() # <<<<<<<<<<<<<< + * subdm.dm = subdms[i] + * PetscINCREF(subdm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM((__pyx_v_subdms[__pyx_v_i]))); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 444, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_subdm, ((struct PyPetscDMObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":445 + * for i from 0 <= i < clen: + * subdm = subtype_DM(subdms[i])() + * subdm.dm = subdms[i] # <<<<<<<<<<<<<< + * PetscINCREF(subdm.obj) + * psubdms.append(subdm) + */ + __pyx_v_subdm->dm = (__pyx_v_subdms[__pyx_v_i]); + + /* "petsc4py/PETSc/petscdmshell.pxi":446 + * subdm = subtype_DM(subdms[i])() + * subdm.dm = subdms[i] + * PetscINCREF(subdm.obj) # <<<<<<<<<<<<<< + * psubdms.append(subdm) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_subdm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":447 + * subdm.dm = subdms[i] + * PetscINCREF(subdm.obj) + * psubdms.append(subdm) # <<<<<<<<<<<<<< + * + * context = Dm.get_attr('__create_domain_decomp_scatters__') + */ + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_psubdms, ((PyObject *)__pyx_v_subdm)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(29, 447, __pyx_L1_error) + } + + /* "petsc4py/PETSc/petscdmshell.pxi":449 + * psubdms.append(subdm) + * + * context = Dm.get_attr('__create_domain_decomp_scatters__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (scatters, args, kargs) = context + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_Dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_Dm), ((char *)"__create_domain_decomp_scatters__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":450 + * + * context = Dm.get_attr('__create_domain_decomp_scatters__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (scatters, args, kargs) = context + * (iscatter, oscatter, gscatter) = scatters(Dm, psubdms, *args, **kargs) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_6 = (__pyx_v_context != Py_None); + __pyx_t_7 = (__pyx_t_6 != 0); + if (__pyx_t_7) { + } else { + __pyx_t_5 = __pyx_t_7; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_7 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_6 = (__pyx_t_7 != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L5_bool_binop_done:; + if (unlikely(!__pyx_t_5)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 450, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":451 + * context = Dm.get_attr('__create_domain_decomp_scatters__') + * assert context is not None and type(context) is tuple + * (scatters, args, kargs) = context # <<<<<<<<<<<<<< + * (iscatter, oscatter, gscatter) = scatters(Dm, psubdms, *args, **kargs) + * + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 451, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_1)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) __PYX_ERR(29, 451, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 451, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + __pyx_v_scatters = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_args = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_kargs = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":452 + * assert context is not None and type(context) is tuple + * (scatters, args, kargs) = context + * (iscatter, oscatter, gscatter) = scatters(Dm, psubdms, *args, **kargs) # <<<<<<<<<<<<<< + * + * assert len(iscatter) == clen + */ + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(((PyObject *)__pyx_v_Dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_Dm)); + PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_Dm)); + __Pyx_INCREF(__pyx_v_psubdms); + __Pyx_GIVEREF(__pyx_v_psubdms); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_psubdms); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 452, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_2 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } else { + __pyx_t_2 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + } + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_scatters, __pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { + PyObject* sequence = __pyx_t_8; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 452, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_11 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(29, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_11)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_10(__pyx_t_11); if (unlikely(!__pyx_t_2)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_11); if (unlikely(!__pyx_t_1)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_9 = __pyx_t_10(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_11), 3) < 0) __PYX_ERR(29, 452, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 452, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + __pyx_v_iscatter = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_oscatter = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_gscatter = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":454 + * (iscatter, oscatter, gscatter) = scatters(Dm, psubdms, *args, **kargs) + * + * assert len(iscatter) == clen # <<<<<<<<<<<<<< + * assert len(oscatter) == clen + * assert len(gscatter) == clen + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_12 = PyObject_Length(__pyx_v_iscatter); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(29, 454, __pyx_L1_error) + if (unlikely(!((__pyx_t_12 == __pyx_v_clen) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 454, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":455 + * + * assert len(iscatter) == clen + * assert len(oscatter) == clen # <<<<<<<<<<<<<< + * assert len(gscatter) == clen + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_12 = PyObject_Length(__pyx_v_oscatter); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(29, 455, __pyx_L1_error) + if (unlikely(!((__pyx_t_12 == __pyx_v_clen) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 455, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":456 + * assert len(iscatter) == clen + * assert len(oscatter) == clen + * assert len(gscatter) == clen # <<<<<<<<<<<<<< + * + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), iscat) ) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_12 = PyObject_Length(__pyx_v_gscatter); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(29, 456, __pyx_L1_error) + if (unlikely(!((__pyx_t_12 == __pyx_v_clen) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 456, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":458 + * assert len(gscatter) == clen + * + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), iscat) ) # <<<<<<<<<<<<<< + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), oscat) ) + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), gscat) ) + */ + __pyx_t_13 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_v_clen * (sizeof(VecScatter))), __pyx_v_iscat)); if (unlikely(__pyx_t_13 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 458, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":459 + * + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), iscat) ) + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), oscat) ) # <<<<<<<<<<<<<< + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), gscat) ) + * + */ + __pyx_t_13 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_v_clen * (sizeof(VecScatter))), __pyx_v_oscat)); if (unlikely(__pyx_t_13 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 459, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":460 + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), iscat) ) + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), oscat) ) + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), gscat) ) # <<<<<<<<<<<<<< + * + * for i in range(clen): + */ + __pyx_t_13 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((__pyx_v_clen * (sizeof(VecScatter))), __pyx_v_gscat)); if (unlikely(__pyx_t_13 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(29, 460, __pyx_L1_error) + + /* "petsc4py/PETSc/petscdmshell.pxi":462 + * CHKERR ( PetscMalloc(clen*sizeof(PetscScatter), gscat) ) + * + * for i in range(clen): # <<<<<<<<<<<<<< + * iscat[0][i] = (iscatter[i]).sct + * PetscINCREF((iscatter[i]).obj) + */ + __pyx_t_3 = __pyx_v_clen; + __pyx_t_14 = __pyx_t_3; + for (__pyx_t_15 = 0; __pyx_t_15 < __pyx_t_14; __pyx_t_15+=1) { + __pyx_v_i = __pyx_t_15; + + /* "petsc4py/PETSc/petscdmshell.pxi":463 + * + * for i in range(clen): + * iscat[0][i] = (iscatter[i]).sct # <<<<<<<<<<<<<< + * PetscINCREF((iscatter[i]).obj) + * + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_iscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 463, __pyx_L1_error) + __pyx_t_16 = ((struct PyPetscScatterObject *)__pyx_t_8)->sct; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + ((__pyx_v_iscat[0])[__pyx_v_i]) = __pyx_t_16; + + /* "petsc4py/PETSc/petscdmshell.pxi":464 + * for i in range(clen): + * iscat[0][i] = (iscatter[i]).sct + * PetscINCREF((iscatter[i]).obj) # <<<<<<<<<<<<<< + * + * oscat[0][i] = (oscatter[i]).sct + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_iscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 464, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscScatterObject *)__pyx_t_8)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":466 + * PetscINCREF((iscatter[i]).obj) + * + * oscat[0][i] = (oscatter[i]).sct # <<<<<<<<<<<<<< + * PetscINCREF((oscatter[i]).obj) + * + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_oscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 466, __pyx_L1_error) + __pyx_t_16 = ((struct PyPetscScatterObject *)__pyx_t_8)->sct; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + ((__pyx_v_oscat[0])[__pyx_v_i]) = __pyx_t_16; + + /* "petsc4py/PETSc/petscdmshell.pxi":467 + * + * oscat[0][i] = (oscatter[i]).sct + * PetscINCREF((oscatter[i]).obj) # <<<<<<<<<<<<<< + * + * gscat[0][i] = (gscatter[i]).sct + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_oscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 467, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscScatterObject *)__pyx_t_8)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":469 + * PetscINCREF((oscatter[i]).obj) + * + * gscat[0][i] = (gscatter[i]).sct # <<<<<<<<<<<<<< + * PetscINCREF((gscatter[i]).obj) + * + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_gscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 469, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 469, __pyx_L1_error) + __pyx_t_16 = ((struct PyPetscScatterObject *)__pyx_t_8)->sct; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + ((__pyx_v_gscat[0])[__pyx_v_i]) = __pyx_t_16; + + /* "petsc4py/PETSc/petscdmshell.pxi":470 + * + * gscat[0][i] = (gscatter[i]).sct + * PetscINCREF((gscatter[i]).obj) # <<<<<<<<<<<<<< + * + * return PETSC_SUCCESS + */ + __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_gscatter, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(29, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(29, 470, __pyx_L1_error) + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((struct PyPetscScatterObject *)__pyx_t_8)->__pyx_base.obj)); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + + /* "petsc4py/PETSc/petscdmshell.pxi":472 + * PetscINCREF((gscatter[i]).obj) + * + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode DMSHELL_CreateSubDM( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":426 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateDomainDecompositionScatters( # <<<<<<<<<<<<<< + * PetscDM dm, + * PetscInt clen, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateDomainDecompositionScatters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_Dm); + __Pyx_XDECREF((PyObject *)__pyx_v_subdm); + __Pyx_XDECREF(__pyx_v_psubdms); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_scatters); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF(__pyx_v_iscatter); + __Pyx_XDECREF(__pyx_v_oscatter); + __Pyx_XDECREF(__pyx_v_gscatter); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscdmshell.pxi":474 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateSubDM( # <<<<<<<<<<<<<< + * PetscDM cdm, + * PetscInt numFields, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateSubDM(DM __pyx_v_cdm, PetscInt __pyx_v_numFields, PetscInt const *__pyx_v_cfields, IS *__pyx_v_ciset, DM *__pyx_v_csubdm) { + struct PyPetscDMObject *__pyx_v_dm = 0; + struct PyPetscISObject *__pyx_v_iset = 0; + struct PyPetscDMObject *__pyx_v_subdm = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_v_create_subdm = NULL; + PyObject *__pyx_v_args = NULL; + PyObject *__pyx_v_kargs = NULL; + PyArrayObject *__pyx_v_fields = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + IS __pyx_t_9; + DM __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("DMSHELL_CreateSubDM", 0); + + /* "petsc4py/PETSc/petscdmshell.pxi":480 + * PetscIS *ciset, + * PetscDM *csubdm) except PETSC_ERR_PYTHON with gil: + * cdef DM dm = subtype_DM(cdm)() # <<<<<<<<<<<<<< + * cdef IS iset + * cdef DM subdm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_cdm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 480, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 480, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":483 + * cdef IS iset + * cdef DM subdm + * dm.dm = cdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * context = dm.get_attr('__create_subdm__') + */ + __pyx_v_dm->dm = __pyx_v_cdm; + + /* "petsc4py/PETSc/petscdmshell.pxi":484 + * cdef DM subdm + * dm.dm = cdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * context = dm.get_attr('__create_subdm__') + * assert context is not None and type(context) is tuple + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":485 + * dm.dm = cdm + * PetscINCREF(dm.obj) + * context = dm.get_attr('__create_subdm__') # <<<<<<<<<<<<<< + * assert context is not None and type(context) is tuple + * (create_subdm, args, kargs) = context + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_dm->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_dm), ((char *)"__create_subdm__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_context = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":486 + * PetscINCREF(dm.obj) + * context = dm.get_attr('__create_subdm__') + * assert context is not None and type(context) is tuple # <<<<<<<<<<<<<< + * (create_subdm, args, kargs) = context + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + __pyx_t_4 = (__pyx_t_5 != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(29, 486, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/petscdmshell.pxi":487 + * context = dm.get_attr('__create_subdm__') + * assert context is not None and type(context) is tuple + * (create_subdm, args, kargs) = context # <<<<<<<<<<<<<< + * + * fields = array_i(numFields, cfields) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_context))) || (PyList_CheckExact(__pyx_v_context))) { + PyObject* sequence = __pyx_v_context; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 487, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_v_context); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) __PYX_ERR(29, 487, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 487, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_create_subdm = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_args = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_kargs = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":489 + * (create_subdm, args, kargs) = context + * + * fields = array_i(numFields, cfields) # <<<<<<<<<<<<<< + * + * iset, subdm = create_subdm(dm, fields, *args, **kargs) + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_numFields, __pyx_v_cfields)); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_fields = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":491 + * fields = array_i(numFields, cfields) + * + * iset, subdm = create_subdm(dm, fields, *args, **kargs) # <<<<<<<<<<<<<< + * + * PetscINCREF(iset.obj) + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_dm)); + PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_dm)); + __Pyx_INCREF(((PyObject *)__pyx_v_fields)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_fields)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_fields)); + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__pyx_v_kargs == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(29, 491, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_kargs))) { + __pyx_t_1 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } else { + __pyx_t_1 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_kargs, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + } + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_v_create_subdm, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) { + PyObject* sequence = __pyx_t_6; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(29, 491, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(29, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_1)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(29, 491, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(29, 491, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_IS))))) __PYX_ERR(29, 491, __pyx_L1_error) + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(29, 491, __pyx_L1_error) + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_v_subdm = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/petscdmshell.pxi":493 + * iset, subdm = create_subdm(dm, fields, *args, **kargs) + * + * PetscINCREF(iset.obj) # <<<<<<<<<<<<<< + * PetscINCREF(subdm.obj) + * ciset[0] = iset.iset + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_iset->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":494 + * + * PetscINCREF(iset.obj) + * PetscINCREF(subdm.obj) # <<<<<<<<<<<<<< + * ciset[0] = iset.iset + * csubdm[0] = subdm.dm + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_subdm->__pyx_base.obj)); + + /* "petsc4py/PETSc/petscdmshell.pxi":495 + * PetscINCREF(iset.obj) + * PetscINCREF(subdm.obj) + * ciset[0] = iset.iset # <<<<<<<<<<<<<< + * csubdm[0] = subdm.dm + * return PETSC_SUCCESS + */ + __pyx_t_9 = __pyx_v_iset->iset; + (__pyx_v_ciset[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/petscdmshell.pxi":496 + * PetscINCREF(subdm.obj) + * ciset[0] = iset.iset + * csubdm[0] = subdm.dm # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + */ + __pyx_t_10 = __pyx_v_subdm->dm; + (__pyx_v_csubdm[0]) = __pyx_t_10; + + /* "petsc4py/PETSc/petscdmshell.pxi":497 + * ciset[0] = iset.iset + * csubdm[0] = subdm.dm + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscdmshell.pxi":474 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode DMSHELL_CreateSubDM( # <<<<<<<<<<<<<< + * PetscDM cdm, + * PetscInt numFields, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMSHELL_CreateSubDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XDECREF((PyObject *)__pyx_v_subdm); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_create_subdm); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XDECREF((PyObject *)__pyx_v_fields); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpyappctx.pxi":3 + * cdef set appctx_registry = set() + * + * cdef inline object registerAppCtx(void *appctx): # <<<<<<<<<<<<<< + * cdef object key = appctx + * appctx_registry.add(key) + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_registerAppCtx(void *__pyx_v_appctx) { + PyObject *__pyx_v_key = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("registerAppCtx", 0); + + /* "petsc4py/PETSc/petscpyappctx.pxi":4 + * + * cdef inline object registerAppCtx(void *appctx): + * cdef object key = appctx # <<<<<<<<<<<<<< + * appctx_registry.add(key) + * + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(((Py_uintptr_t)__pyx_v_appctx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_key = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpyappctx.pxi":5 + * cdef inline object registerAppCtx(void *appctx): + * cdef object key = appctx + * appctx_registry.add(key) # <<<<<<<<<<<<<< + * + * cdef inline object toAppCtx(void *appctx): + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_appctx_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "add"); + __PYX_ERR(30, 5, __pyx_L1_error) + } + __pyx_t_2 = PySet_Add(__pyx_v_8petsc4py_5PETSc_appctx_registry, __pyx_v_key); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(30, 5, __pyx_L1_error) + + /* "petsc4py/PETSc/petscpyappctx.pxi":3 + * cdef set appctx_registry = set() + * + * cdef inline object registerAppCtx(void *appctx): # <<<<<<<<<<<<<< + * cdef object key = appctx + * appctx_registry.add(key) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.registerAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/petscpyappctx.pxi":7 + * appctx_registry.add(key) + * + * cdef inline object toAppCtx(void *appctx): # <<<<<<<<<<<<<< + * cdef object key = appctx + * if key in appctx_registry: + */ + +static CYTHON_INLINE PyObject *__pyx_f_8petsc4py_5PETSc_toAppCtx(void *__pyx_v_appctx) { + PyObject *__pyx_v_key = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toAppCtx", 0); + + /* "petsc4py/PETSc/petscpyappctx.pxi":8 + * + * cdef inline object toAppCtx(void *appctx): + * cdef object key = appctx # <<<<<<<<<<<<<< + * if key in appctx_registry: + * return appctx + */ + __pyx_t_1 = __Pyx_PyInt_FromSize_t(((Py_uintptr_t)__pyx_v_appctx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_key = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpyappctx.pxi":9 + * cdef inline object toAppCtx(void *appctx): + * cdef object key = appctx + * if key in appctx_registry: # <<<<<<<<<<<<<< + * return appctx + * else: + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_appctx_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(30, 9, __pyx_L1_error) + } + __pyx_t_2 = (__Pyx_PySet_ContainsTF(__pyx_v_key, __pyx_v_8petsc4py_5PETSc_appctx_registry, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(30, 9, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscpyappctx.pxi":10 + * cdef object key = appctx + * if key in appctx_registry: + * return appctx # <<<<<<<<<<<<<< + * else: + * if appctx != NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_appctx)); + __pyx_r = ((PyObject *)__pyx_v_appctx); + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpyappctx.pxi":9 + * cdef inline object toAppCtx(void *appctx): + * cdef object key = appctx + * if key in appctx_registry: # <<<<<<<<<<<<<< + * return appctx + * else: + */ + } + + /* "petsc4py/PETSc/petscpyappctx.pxi":12 + * return appctx + * else: + * if appctx != NULL: # <<<<<<<<<<<<<< + * return PyLong_FromVoidPtr(appctx) + * else: + */ + /*else*/ { + __pyx_t_3 = ((__pyx_v_appctx != NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/petscpyappctx.pxi":13 + * else: + * if appctx != NULL: + * return PyLong_FromVoidPtr(appctx) # <<<<<<<<<<<<<< + * else: + * return None + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyLong_FromVoidPtr(__pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/petscpyappctx.pxi":12 + * return appctx + * else: + * if appctx != NULL: # <<<<<<<<<<<<<< + * return PyLong_FromVoidPtr(appctx) + * else: + */ + } + + /* "petsc4py/PETSc/petscpyappctx.pxi":15 + * return PyLong_FromVoidPtr(appctx) + * else: + * return None # <<<<<<<<<<<<<< + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/petscpyappctx.pxi":7 + * appctx_registry.add(key) + * + * cdef inline object toAppCtx(void *appctx): # <<<<<<<<<<<<<< + * cdef object key = appctx + * if key in appctx_registry: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.toAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Error.pyx":7 + * _traceback_ = [] + * + * def __init__(self, int ierr=0): # <<<<<<<<<<<<<< + * self.ierr = ierr + * RuntimeError.__init__(self, self.ierr) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Error___init__[] = "Error.__init__(self, int ierr=0)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_5Error_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Error_1__init__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Error___init__}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + int __pyx_v_ierr; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_ierr,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ierr); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 7, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_self = values[0]; + if (values[1]) { + __pyx_v_ierr = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_ierr == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 7, __pyx_L3_error) + } else { + __pyx_v_ierr = ((int)((int)0)); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 7, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Error.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Error___init__(__pyx_self, __pyx_v_self, __pyx_v_ierr); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_ierr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "petsc4py/PETSc/Error.pyx":8 + * + * def __init__(self, int ierr=0): + * self.ierr = ierr # <<<<<<<<<<<<<< + * RuntimeError.__init__(self, self.ierr) + * + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ierr); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ierr, __pyx_t_1) < 0) __PYX_ERR(1, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Error.pyx":9 + * def __init__(self, int ierr=0): + * self.ierr = ierr + * RuntimeError.__init__(self, self.ierr) # <<<<<<<<<<<<<< + * + * def __nonzero__(self): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_RuntimeError, __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ierr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = NULL; + __pyx_t_5 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_5 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_self, __pyx_t_3}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_self, __pyx_t_3}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 2+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else + #endif + { + __pyx_t_6 = PyTuple_New(2+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__pyx_t_4) { + __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL; + } + __Pyx_INCREF(__pyx_v_self); + __Pyx_GIVEREF(__pyx_v_self); + PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_self); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Error.pyx":7 + * _traceback_ = [] + * + * def __init__(self, int ierr=0): # <<<<<<<<<<<<<< + * self.ierr = ierr + * RuntimeError.__init__(self, self.ierr) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Error.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Error.pyx":11 + * RuntimeError.__init__(self, self.ierr) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * cdef int ierr = self.ierr + * return ierr != 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_3__nonzero__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Error_2__nonzero__[] = "Error.__nonzero__(self)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_5Error_3__nonzero__ = {"__nonzero__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Error_3__nonzero__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Error_2__nonzero__}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_3__nonzero__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__nonzero__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__nonzero__") < 0)) __PYX_ERR(1, 11, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_self = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__nonzero__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 11, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Error.__nonzero__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Error_2__nonzero__(__pyx_self, __pyx_v_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_2__nonzero__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + int __pyx_v_ierr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__nonzero__", 0); + + /* "petsc4py/PETSc/Error.pyx":12 + * + * def __nonzero__(self): + * cdef int ierr = self.ierr # <<<<<<<<<<<<<< + * return ierr != 0 + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ierr); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ierr = __pyx_t_2; + + /* "petsc4py/PETSc/Error.pyx":13 + * def __nonzero__(self): + * cdef int ierr = self.ierr + * return ierr != 0 # <<<<<<<<<<<<<< + * + * def __repr__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyBool_FromLong((__pyx_v_ierr != 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Error.pyx":11 + * RuntimeError.__init__(self, self.ierr) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * cdef int ierr = self.ierr + * return ierr != 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Error.__nonzero__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Error.pyx":15 + * return ierr != 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return 'PETSc.Error(%d)' % self.ierr + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_5__repr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Error_4__repr__[] = "Error.__repr__(self)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_5Error_5__repr__ = {"__repr__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Error_5__repr__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Error_4__repr__}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_5__repr__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__repr__") < 0)) __PYX_ERR(1, 15, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_self = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__repr__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 15, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Error.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Error_4__repr__(__pyx_self, __pyx_v_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_4__repr__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "petsc4py/PETSc/Error.pyx":16 + * + * def __repr__(self): + * return 'PETSc.Error(%d)' % self.ierr # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ierr); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_PETSc_Error_d, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Error.pyx":15 + * return ierr != 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return 'PETSc.Error(%d)' % self.ierr + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Error.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Error.pyx":18 + * return 'PETSc.Error(%d)' % self.ierr + * + * def __str__(self): # <<<<<<<<<<<<<< + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_7__str__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Error_6__str__[] = "Error.__str__(self)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_5Error_7__str__ = {"__str__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Error_7__str__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Error_6__str__}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Error_7__str__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__str__") < 0)) __PYX_ERR(1, 18, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_self = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__str__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 18, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Error.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Error_6__str__(__pyx_self, __pyx_v_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Error_6__str__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) { + int __pyx_v_csize; + int __pyx_v_crank; + Py_ssize_t __pyx_v_width; + int __pyx_v_rank; + PyObject *__pyx_v_tblist = NULL; + PyObject *__pyx_v_entry = NULL; + PyObject *__pyx_v_tbline = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + int __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "petsc4py/PETSc/Error.pyx":19 + * + * def __str__(self): + * cdef int csize=1, crank=0 # <<<<<<<<<<<<<< + * if not (PetscFinalizeCalled): + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) + */ + __pyx_v_csize = 1; + __pyx_v_crank = 0; + + /* "petsc4py/PETSc/Error.pyx":20 + * def __str__(self): + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): # <<<<<<<<<<<<<< + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) + */ + __pyx_t_1 = ((!(((int)PetscFinalizeCalled) != 0)) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Error.pyx":21 + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) # <<<<<<<<<<<<<< + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) + * width, rank = len(str(csize-1)), crank + */ + (void)(MPI_Comm_size(PETSC_COMM_WORLD, (&__pyx_v_csize))); + + /* "petsc4py/PETSc/Error.pyx":22 + * if not (PetscFinalizeCalled): + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) # <<<<<<<<<<<<<< + * width, rank = len(str(csize-1)), crank + * tblist = ['error code %d' % self.ierr] + */ + (void)(MPI_Comm_rank(PETSC_COMM_WORLD, (&__pyx_v_crank))); + + /* "petsc4py/PETSc/Error.pyx":20 + * def __str__(self): + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): # <<<<<<<<<<<<<< + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) + */ + } + + /* "petsc4py/PETSc/Error.pyx":23 + * MPI_Comm_size(PETSC_COMM_WORLD, &csize) + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) + * width, rank = len(str(csize-1)), crank # <<<<<<<<<<<<<< + * tblist = ['error code %d' % self.ierr] + * for entry in self._traceback_: + */ + __pyx_t_2 = __Pyx_PyInt_From_long((__pyx_v_csize - 1)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_5 = __pyx_v_crank; + __pyx_v_width = __pyx_t_4; + __pyx_v_rank = __pyx_t_5; + + /* "petsc4py/PETSc/Error.pyx":24 + * MPI_Comm_rank(PETSC_COMM_WORLD, &crank) + * width, rank = len(str(csize-1)), crank + * tblist = ['error code %d' % self.ierr] # <<<<<<<<<<<<<< + * for entry in self._traceback_: + * tbline = '[%*d] %s' % (width, rank, entry) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ierr); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_error_code_d, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_v_tblist = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Error.pyx":25 + * width, rank = len(str(csize-1)), crank + * tblist = ['error code %d' % self.ierr] + * for entry in self._traceback_: # <<<<<<<<<<<<<< + * tbline = '[%*d] %s' % (width, rank, entry) + * tblist.append(tbline) + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_traceback); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 25, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 25, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(1, 25, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_6(__pyx_t_2); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(1, 25, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Error.pyx":26 + * tblist = ['error code %d' % self.ierr] + * for entry in self._traceback_: + * tbline = '[%*d] %s' % (width, rank, entry) # <<<<<<<<<<<<<< + * tblist.append(tbline) + * return '\n'.join(tblist) + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_width); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = __Pyx_PyInt_From_int(__pyx_v_rank); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __Pyx_INCREF(__pyx_v_entry); + __Pyx_GIVEREF(__pyx_v_entry); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_entry); + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_d_s, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_tbline, ((PyObject*)__pyx_t_7)); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Error.pyx":27 + * for entry in self._traceback_: + * tbline = '[%*d] %s' % (width, rank, entry) + * tblist.append(tbline) # <<<<<<<<<<<<<< + * return '\n'.join(tblist) + * + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_tblist, __pyx_v_tbline); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 27, __pyx_L1_error) + + /* "petsc4py/PETSc/Error.pyx":25 + * width, rank = len(str(csize-1)), crank + * tblist = ['error code %d' % self.ierr] + * for entry in self._traceback_: # <<<<<<<<<<<<<< + * tbline = '[%*d] %s' % (width, rank, entry) + * tblist.append(tbline) + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Error.pyx":28 + * tbline = '[%*d] %s' % (width, rank, entry) + * tblist.append(tbline) + * return '\n'.join(tblist) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__13, __pyx_v_tblist); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Error.pyx":18 + * return 'PETSc.Error(%d)' % self.ierr + * + * def __str__(self): # <<<<<<<<<<<<<< + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.Error.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tblist); + __Pyx_XDECREF(__pyx_v_entry); + __Pyx_XDECREF(__pyx_v_tbline); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":8 + * cdef object _prefix + * + * def __init__(self, prefix=None): # <<<<<<<<<<<<<< + * self.opt = NULL + * self.prefix = prefix + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(31, 8, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 8, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options___init__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options___init__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__init__", 0); + + /* "petsc4py/PETSc/Options.pyx":9 + * + * def __init__(self, prefix=None): + * self.opt = NULL # <<<<<<<<<<<<<< + * self.prefix = prefix + * + */ + __pyx_v_self->opt = NULL; + + /* "petsc4py/PETSc/Options.pyx":10 + * def __init__(self, prefix=None): + * self.opt = NULL + * self.prefix = prefix # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix, __pyx_v_prefix) < 0) __PYX_ERR(31, 10, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":8 + * cdef object _prefix + * + * def __init__(self, prefix=None): # <<<<<<<<<<<<<< + * self.opt = NULL + * self.prefix = prefix + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":12 + * self.prefix = prefix + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_7Options_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_7Options_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_7Options_2__dealloc__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_7Options_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Options.pyx":13 + * + * def __dealloc__(self): + * if self.opt == NULL: return # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsDestroy(&self.opt) ) + * + */ + __pyx_t_1 = ((__pyx_v_self->opt == NULL) != 0); + if (__pyx_t_1) { + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Options.pyx":14 + * def __dealloc__(self): + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) # <<<<<<<<<<<<<< + * + * def __contains__(self, item): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsDestroy((&__pyx_v_self->opt))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 14, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":12 + * self.prefix = prefix + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc.Options.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Options.pyx":16 + * CHKERR( PetscOptionsDestroy(&self.opt) ) + * + * def __contains__(self, item): # <<<<<<<<<<<<<< + * return self.hasName(item) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_5__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_4__contains__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options_4__contains__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__contains__", 0); + + /* "petsc4py/PETSc/Options.pyx":17 + * + * def __contains__(self, item): + * return self.hasName(item) # <<<<<<<<<<<<<< + * + * def __getitem__(self, item): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hasName); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(31, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":16 + * CHKERR( PetscOptionsDestroy(&self.opt) ) + * + * def __contains__(self, item): # <<<<<<<<<<<<<< + * return self.hasName(item) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Options.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":19 + * return self.hasName(item) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.getString(item) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_6__getitem__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_6__getitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "petsc4py/PETSc/Options.pyx":20 + * + * def __getitem__(self, item): + * return self.getString(item) # <<<<<<<<<<<<<< + * + * def __setitem__(self, item, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getString); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":19 + * return self.hasName(item) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.getString(item) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Options.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":22 + * return self.getString(item) + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.setValue(item, value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_8__setitem__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options_8__setitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "petsc4py/PETSc/Options.pyx":23 + * + * def __setitem__(self, item, value): + * self.setValue(item, value) # <<<<<<<<<<<<<< + * + * def __delitem__(self, item): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_item, __pyx_v_value}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 23, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_item, __pyx_v_value}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 23, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(31, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_item); + __Pyx_GIVEREF(__pyx_v_item); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_item); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_value); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":22 + * return self.getString(item) + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.setValue(item, value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Options.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":25 + * self.setValue(item, value) + * + * def __delitem__(self, item): # <<<<<<<<<<<<<< + * self.delValue(item) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_11__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_11__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__delitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_10__delitem__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options_10__delitem__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_item) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__delitem__", 0); + + /* "petsc4py/PETSc/Options.pyx":26 + * + * def __delitem__(self, item): + * self.delValue(item) # <<<<<<<<<<<<<< + * + * property prefix: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_delValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_item) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_item); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":25 + * self.setValue(item, value) + * + * def __delitem__(self, item): # <<<<<<<<<<<<<< + * self.delValue(item) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Options.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":29 + * + * property prefix: + * def __get__(self): # <<<<<<<<<<<<<< + * return self._prefix + * def __set__(self, prefix): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_6prefix_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_6prefix_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_6prefix___get__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_6prefix___get__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Options.pyx":30 + * property prefix: + * def __get__(self): + * return self._prefix # <<<<<<<<<<<<<< + * def __set__(self, prefix): + * self._prefix = getprefix(prefix) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->_prefix); + __pyx_r = __pyx_v_self->_prefix; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":29 + * + * property prefix: + * def __get__(self): # <<<<<<<<<<<<<< + * return self._prefix + * def __set__(self, prefix): + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":31 + * def __get__(self): + * return self._prefix + * def __set__(self, prefix): # <<<<<<<<<<<<<< + * self._prefix = getprefix(prefix) + * def __del__(self): + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_prefix); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), ((PyObject *)__pyx_v_prefix)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_2__set__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Options.pyx":32 + * return self._prefix + * def __set__(self, prefix): + * self._prefix = getprefix(prefix) # <<<<<<<<<<<<<< + * def __del__(self): + * self._prefix = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getprefix(__pyx_v_prefix, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v_self->_prefix); + __Pyx_DECREF(__pyx_v_self->_prefix); + __pyx_v_self->_prefix = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":31 + * def __get__(self): + * return self._prefix + * def __set__(self, prefix): # <<<<<<<<<<<<<< + * self._prefix = getprefix(prefix) + * def __del__(self): + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Options.prefix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":33 + * def __set__(self, prefix): + * self._prefix = getprefix(prefix) + * def __del__(self): # <<<<<<<<<<<<<< + * self._prefix = None + * # + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_5__del__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_5__del__(PyObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__del__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_4__del__(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Options_6prefix_4__del__(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__del__", 0); + + /* "petsc4py/PETSc/Options.pyx":34 + * self._prefix = getprefix(prefix) + * def __del__(self): + * self._prefix = None # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->_prefix); + __Pyx_DECREF(__pyx_v_self->_prefix); + __pyx_v_self->_prefix = Py_None; + + /* "petsc4py/PETSc/Options.pyx":33 + * def __set__(self, prefix): + * self._prefix = getprefix(prefix) + * def __del__(self): # <<<<<<<<<<<<<< + * self._prefix = None + * # + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":37 + * # + * + * def create(self): # <<<<<<<<<<<<<< + * if self.opt != NULL: return + * CHKERR( PetscOptionsCreate(&self.opt) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_12create[] = "Options.create(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("create", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "create", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_12create(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_12create(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Options.pyx":38 + * + * def create(self): + * if self.opt != NULL: return # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsCreate(&self.opt) ) + * return self + */ + __pyx_t_1 = ((__pyx_v_self->opt != NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Options.pyx":39 + * def create(self): + * if self.opt != NULL: return + * CHKERR( PetscOptionsCreate(&self.opt) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsCreate((&__pyx_v_self->opt))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 39, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":40 + * if self.opt != NULL: return + * CHKERR( PetscOptionsCreate(&self.opt) ) + * return self # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":37 + * # + * + * def create(self): # <<<<<<<<<<<<<< + * if self.opt != NULL: return + * CHKERR( PetscOptionsCreate(&self.opt) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":42 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_15destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_14destroy[] = "Options.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_15destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_14destroy(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_14destroy(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Options.pyx":43 + * + * def destroy(self): + * if self.opt == NULL: return # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsDestroy(&self.opt) ) + * return self + */ + __pyx_t_1 = ((__pyx_v_self->opt == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Options.pyx":44 + * def destroy(self): + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsDestroy((&__pyx_v_self->opt))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 44, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":45 + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) + * return self # <<<<<<<<<<<<<< + * + * def clear(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":42 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsDestroy(&self.opt) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":47 + * return self + * + * def clear(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsClear(self.opt) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_17clear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_16clear[] = "Options.clear(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_17clear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clear (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clear", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clear", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_16clear(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_16clear(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clear", 0); + + /* "petsc4py/PETSc/Options.pyx":48 + * + * def clear(self): + * if self.opt == NULL: return # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsClear(self.opt) ) + * return self + */ + __pyx_t_1 = ((__pyx_v_self->opt == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Options.pyx":49 + * def clear(self): + * if self.opt == NULL: return + * CHKERR( PetscOptionsClear(self.opt) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsClear(__pyx_v_self->opt)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 49, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":50 + * if self.opt == NULL: return + * CHKERR( PetscOptionsClear(self.opt) ) + * return self # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":47 + * return self + * + * def clear(self): # <<<<<<<<<<<<<< + * if self.opt == NULL: return + * CHKERR( PetscOptionsClear(self.opt) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.clear", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":52 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_19view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_18view[] = "Options.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_19view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(31, 52, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 52, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(31, 52, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_18view(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_18view(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Options.pyx":53 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscOptionsView(self.opt, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Options.pyx":54 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsView(self.opt, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Options.pyx":55 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscOptionsView(self.opt, vwr) ) # <<<<<<<<<<<<<< + * + * def prefixPush(self, prefix): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsView(__pyx_v_self->opt, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":52 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":57 + * CHKERR( PetscOptionsView(self.opt, vwr) ) + * + * def prefixPush(self, prefix): # <<<<<<<<<<<<<< + * prefix = getprefix(prefix) + * cdef const char *cprefix = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_21prefixPush(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_20prefixPush[] = "Options.prefixPush(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_21prefixPush(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("prefixPush (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "prefixPush") < 0)) __PYX_ERR(31, 57, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("prefixPush", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 57, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.prefixPush", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_20prefixPush(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_20prefixPush(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cprefix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("prefixPush", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Options.pyx":58 + * + * def prefixPush(self, prefix): + * prefix = getprefix(prefix) # <<<<<<<<<<<<<< + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_getprefix(__pyx_v_prefix, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":59 + * def prefixPush(self, prefix): + * prefix = getprefix(prefix) + * cdef const char *cprefix = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscOptionsPrefixPush(self.opt, cprefix) ) + */ + __pyx_v_cprefix = NULL; + + /* "petsc4py/PETSc/Options.pyx":60 + * prefix = getprefix(prefix) + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsPrefixPush(self.opt, cprefix) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cprefix)); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":61 + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscOptionsPrefixPush(self.opt, cprefix) ) # <<<<<<<<<<<<<< + * + * def prefixPop(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsPrefixPush(__pyx_v_self->opt, __pyx_v_cprefix)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 61, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":57 + * CHKERR( PetscOptionsView(self.opt, vwr) ) + * + * def prefixPush(self, prefix): # <<<<<<<<<<<<<< + * prefix = getprefix(prefix) + * cdef const char *cprefix = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Options.prefixPush", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":63 + * CHKERR( PetscOptionsPrefixPush(self.opt, cprefix) ) + * + * def prefixPop(self): # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsPrefixPop(self.opt) ) + * # + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_23prefixPop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_22prefixPop[] = "Options.prefixPop(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_23prefixPop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("prefixPop (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("prefixPop", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "prefixPop", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_22prefixPop(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_22prefixPop(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("prefixPop", 0); + + /* "petsc4py/PETSc/Options.pyx":64 + * + * def prefixPop(self): + * CHKERR( PetscOptionsPrefixPop(self.opt) ) # <<<<<<<<<<<<<< + * # + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsPrefixPop(__pyx_v_self->opt)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":63 + * CHKERR( PetscOptionsPrefixPush(self.opt, cprefix) ) + * + * def prefixPop(self): # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsPrefixPop(self.opt) ) + * # + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.prefixPop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":67 + * # + * + * def hasName(self, name): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_25hasName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_24hasName[] = "Options.hasName(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_25hasName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasName") < 0)) __PYX_ERR(31, 67, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 67, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.hasName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_24hasName(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_24hasName(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_pr; + char const *__pyx_v_nm; + CYTHON_UNUSED PyObject *__pyx_v_tmp = NULL; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasName", 0); + + /* "petsc4py/PETSc/Options.pyx":68 + * + * def hasName(self, name): + * cdef const char *pr = NULL # <<<<<<<<<<<<<< + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + */ + __pyx_v_pr = NULL; + + /* "petsc4py/PETSc/Options.pyx":69 + * def hasName(self, name): + * cdef const char *pr = NULL + * cdef const char *nm = NULL # <<<<<<<<<<<<<< + * tmp = getpair(self.prefix, name, &pr, &nm) + * cdef PetscBool flag = PETSC_FALSE + */ + __pyx_v_nm = NULL; + + /* "petsc4py/PETSc/Options.pyx":70 + * cdef const char *pr = NULL + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsHasName(self.opt, pr, nm, &flag) ) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getpair(__pyx_t_1, __pyx_v_name, (&__pyx_v_pr), (&__pyx_v_nm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":71 + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsHasName(self.opt, pr, nm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Options.pyx":72 + * tmp = getpair(self.prefix, name, &pr, &nm) + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsHasName(self.opt, pr, nm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsHasName(__pyx_v_self->opt, __pyx_v_pr, __pyx_v_nm, (&__pyx_v_flag))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":73 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscOptionsHasName(self.opt, pr, nm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setValue(self, name, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":67 + * # + * + * def hasName(self, name): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.hasName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":75 + * return toBool(flag) + * + * def setValue(self, name, value): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_27setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_26setValue[] = "Options.setValue(self, name, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_27setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValue", 1, 2, 2, 1); __PYX_ERR(31, 75, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValue") < 0)) __PYX_ERR(31, 75, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValue", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 75, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_26setValue(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_26setValue(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { + char const *__pyx_v_pr; + char const *__pyx_v_nm; + CYTHON_UNUSED PyObject *__pyx_v_tmp = NULL; + PyObject *__pyx_v_option = NULL; + char const *__pyx_v_key; + char const *__pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValue", 0); + __Pyx_INCREF(__pyx_v_value); + + /* "petsc4py/PETSc/Options.pyx":76 + * + * def setValue(self, name, value): + * cdef const char *pr = NULL # <<<<<<<<<<<<<< + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + */ + __pyx_v_pr = NULL; + + /* "petsc4py/PETSc/Options.pyx":77 + * def setValue(self, name, value): + * cdef const char *pr = NULL + * cdef const char *nm = NULL # <<<<<<<<<<<<<< + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: + */ + __pyx_v_nm = NULL; + + /* "petsc4py/PETSc/Options.pyx":78 + * cdef const char *pr = NULL + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) # <<<<<<<<<<<<<< + * if pr == NULL: + * option = bytes2str(nm) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getpair(__pyx_t_1, __pyx_v_name, (&__pyx_v_pr), (&__pyx_v_nm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":79 + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: # <<<<<<<<<<<<<< + * option = bytes2str(nm) + * else: + */ + __pyx_t_3 = ((__pyx_v_pr == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Options.pyx":80 + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: + * option = bytes2str(nm) # <<<<<<<<<<<<<< + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_nm); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_option = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":79 + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: # <<<<<<<<<<<<<< + * option = bytes2str(nm) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Options.pyx":82 + * option = bytes2str(nm) + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) # <<<<<<<<<<<<<< + * if type(value) is bool: + * value = str(value).lower() + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_pr); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str((&(__pyx_v_nm[1]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(31, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_option = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Options.pyx":83 + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + * if type(value) is bool: # <<<<<<<<<<<<<< + * value = str(value).lower() + * elif value is not None : + */ + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_value)) == ((PyObject*)&PyBool_Type)); + __pyx_t_5 = (__pyx_t_3 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/Options.pyx":84 + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + * if type(value) is bool: + * value = str(value).lower() # <<<<<<<<<<<<<< + * elif value is not None : + * value = str(value) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(31, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_lower); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":83 + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + * if type(value) is bool: # <<<<<<<<<<<<<< + * value = str(value).lower() + * elif value is not None : + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Options.pyx":85 + * if type(value) is bool: + * value = str(value).lower() + * elif value is not None : # <<<<<<<<<<<<<< + * value = str(value) + * cdef const char *key = NULL + */ + __pyx_t_5 = (__pyx_v_value != Py_None); + __pyx_t_3 = (__pyx_t_5 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Options.pyx":86 + * value = str(value).lower() + * elif value is not None : + * value = str(value) # <<<<<<<<<<<<<< + * cdef const char *key = NULL + * cdef const char *val = NULL + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":85 + * if type(value) is bool: + * value = str(value).lower() + * elif value is not None : # <<<<<<<<<<<<<< + * value = str(value) + * cdef const char *key = NULL + */ + } + __pyx_L4:; + + /* "petsc4py/PETSc/Options.pyx":87 + * elif value is not None : + * value = str(value) + * cdef const char *key = NULL # <<<<<<<<<<<<<< + * cdef const char *val = NULL + * option = str2bytes(option, &key) + */ + __pyx_v_key = NULL; + + /* "petsc4py/PETSc/Options.pyx":88 + * value = str(value) + * cdef const char *key = NULL + * cdef const char *val = NULL # <<<<<<<<<<<<<< + * option = str2bytes(option, &key) + * value = str2bytes(value, &val) + */ + __pyx_v_val = NULL; + + /* "petsc4py/PETSc/Options.pyx":89 + * cdef const char *key = NULL + * cdef const char *val = NULL + * option = str2bytes(option, &key) # <<<<<<<<<<<<<< + * value = str2bytes(value, &val) + * CHKERR( PetscOptionsSetValue(self.opt, key, val) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_option, (&__pyx_v_key)); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_option, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":90 + * cdef const char *val = NULL + * option = str2bytes(option, &key) + * value = str2bytes(value, &val) # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsSetValue(self.opt, key, val) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_value, (&__pyx_v_val)); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":91 + * option = str2bytes(option, &key) + * value = str2bytes(value, &val) + * CHKERR( PetscOptionsSetValue(self.opt, key, val) ) # <<<<<<<<<<<<<< + * + * def delValue(self, name): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsSetValue(__pyx_v_self->opt, __pyx_v_key, __pyx_v_val)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 91, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":75 + * return toBool(flag) + * + * def setValue(self, name, value): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Options.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_option); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":93 + * CHKERR( PetscOptionsSetValue(self.opt, key, val) ) + * + * def delValue(self, name): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_29delValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_28delValue[] = "Options.delValue(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_29delValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("delValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "delValue") < 0)) __PYX_ERR(31, 93, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("delValue", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 93, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.delValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_28delValue(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_28delValue(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_pr; + char const *__pyx_v_nm; + CYTHON_UNUSED PyObject *__pyx_v_tmp = NULL; + PyObject *__pyx_v_option = NULL; + char const *__pyx_v_key; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("delValue", 0); + + /* "petsc4py/PETSc/Options.pyx":94 + * + * def delValue(self, name): + * cdef const char *pr = NULL # <<<<<<<<<<<<<< + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + */ + __pyx_v_pr = NULL; + + /* "petsc4py/PETSc/Options.pyx":95 + * def delValue(self, name): + * cdef const char *pr = NULL + * cdef const char *nm = NULL # <<<<<<<<<<<<<< + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: + */ + __pyx_v_nm = NULL; + + /* "petsc4py/PETSc/Options.pyx":96 + * cdef const char *pr = NULL + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) # <<<<<<<<<<<<<< + * if pr == NULL: + * option = bytes2str(nm) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getpair(__pyx_t_1, __pyx_v_name, (&__pyx_v_pr), (&__pyx_v_nm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":97 + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: # <<<<<<<<<<<<<< + * option = bytes2str(nm) + * else: + */ + __pyx_t_3 = ((__pyx_v_pr == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Options.pyx":98 + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: + * option = bytes2str(nm) # <<<<<<<<<<<<<< + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_nm); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_option = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":97 + * cdef const char *nm = NULL + * tmp = getpair(self.prefix, name, &pr, &nm) + * if pr == NULL: # <<<<<<<<<<<<<< + * option = bytes2str(nm) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Options.pyx":100 + * option = bytes2str(nm) + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) # <<<<<<<<<<<<<< + * cdef const char *key = NULL + * option = str2bytes(option, &key) + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_pr); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str((&(__pyx_v_nm[1]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(31, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_s, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_option = __pyx_t_1; + __pyx_t_1 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Options.pyx":101 + * else: + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + * cdef const char *key = NULL # <<<<<<<<<<<<<< + * option = str2bytes(option, &key) + * CHKERR( PetscOptionsClearValue(self.opt, key) ) + */ + __pyx_v_key = NULL; + + /* "petsc4py/PETSc/Options.pyx":102 + * option = '-%s%s' % (bytes2str(pr), bytes2str(&nm[1])) + * cdef const char *key = NULL + * option = str2bytes(option, &key) # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsClearValue(self.opt, key) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_option, (&__pyx_v_key)); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_option, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":103 + * cdef const char *key = NULL + * option = str2bytes(option, &key) + * CHKERR( PetscOptionsClearValue(self.opt, key) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsClearValue(__pyx_v_self->opt, __pyx_v_key)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 103, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":93 + * CHKERR( PetscOptionsSetValue(self.opt, key, val) ) + * + * def delValue(self, name): # <<<<<<<<<<<<<< + * cdef const char *pr = NULL + * cdef const char *nm = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Options.delValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_option); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":107 + * # + * + * def getBool(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_BOOL, self.prefix, name, default) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_31getBool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_30getBool[] = "Options.getBool(self, name, default=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_31getBool(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_default = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBool (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_default,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBool") < 0)) __PYX_ERR(31, 107, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_default = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getBool", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 107, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.getBool", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_30getBool(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_30getBool(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBool", 0); + + /* "petsc4py/PETSc/Options.pyx":108 + * + * def getBool(self, name, default=None): + * return getopt(self.opt, OPT_BOOL, self.prefix, name, default) # <<<<<<<<<<<<<< + * + * def getInt(self, name, default=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getopt(__pyx_v_self->opt, __pyx_e_8petsc4py_5PETSc_OPT_BOOL, __pyx_t_1, __pyx_v_name, __pyx_v_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":107 + * # + * + * def getBool(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_BOOL, self.prefix, name, default) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getBool", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":110 + * return getopt(self.opt, OPT_BOOL, self.prefix, name, default) + * + * def getInt(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_INT, self.prefix, name, default) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_33getInt(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_32getInt[] = "Options.getInt(self, name, default=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_33getInt(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_default = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInt (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_default,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getInt") < 0)) __PYX_ERR(31, 110, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_default = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getInt", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 110, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.getInt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_32getInt(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_32getInt(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInt", 0); + + /* "petsc4py/PETSc/Options.pyx":111 + * + * def getInt(self, name, default=None): + * return getopt(self.opt, OPT_INT, self.prefix, name, default) # <<<<<<<<<<<<<< + * + * def getReal(self, name, default=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getopt(__pyx_v_self->opt, __pyx_e_8petsc4py_5PETSc_OPT_INT, __pyx_t_1, __pyx_v_name, __pyx_v_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":110 + * return getopt(self.opt, OPT_BOOL, self.prefix, name, default) + * + * def getInt(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_INT, self.prefix, name, default) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getInt", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":113 + * return getopt(self.opt, OPT_INT, self.prefix, name, default) + * + * def getReal(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_REAL, self.prefix, name, default) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_35getReal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_34getReal[] = "Options.getReal(self, name, default=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_35getReal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_default = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getReal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_default,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getReal") < 0)) __PYX_ERR(31, 113, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_default = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getReal", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 113, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.getReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_34getReal(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_34getReal(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getReal", 0); + + /* "petsc4py/PETSc/Options.pyx":114 + * + * def getReal(self, name, default=None): + * return getopt(self.opt, OPT_REAL, self.prefix, name, default) # <<<<<<<<<<<<<< + * + * def getScalar(self, name, default=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getopt(__pyx_v_self->opt, __pyx_e_8petsc4py_5PETSc_OPT_REAL, __pyx_t_1, __pyx_v_name, __pyx_v_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":113 + * return getopt(self.opt, OPT_INT, self.prefix, name, default) + * + * def getReal(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_REAL, self.prefix, name, default) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":116 + * return getopt(self.opt, OPT_REAL, self.prefix, name, default) + * + * def getScalar(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_SCALAR, self.prefix, name, default) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_37getScalar(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_36getScalar[] = "Options.getScalar(self, name, default=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_37getScalar(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_default = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getScalar (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_default,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getScalar") < 0)) __PYX_ERR(31, 116, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_default = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getScalar", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 116, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.getScalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_36getScalar(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_36getScalar(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getScalar", 0); + + /* "petsc4py/PETSc/Options.pyx":117 + * + * def getScalar(self, name, default=None): + * return getopt(self.opt, OPT_SCALAR, self.prefix, name, default) # <<<<<<<<<<<<<< + * + * def getString(self, name, default=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getopt(__pyx_v_self->opt, __pyx_e_8petsc4py_5PETSc_OPT_SCALAR, __pyx_t_1, __pyx_v_name, __pyx_v_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":116 + * return getopt(self.opt, OPT_REAL, self.prefix, name, default) + * + * def getScalar(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_SCALAR, self.prefix, name, default) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getScalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":119 + * return getopt(self.opt, OPT_SCALAR, self.prefix, name, default) + * + * def getString(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_STRING, self.prefix, name, default) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_39getString(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_38getString[] = "Options.getString(self, name, default=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_39getString(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_default = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getString (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_default,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_default); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getString") < 0)) __PYX_ERR(31, 119, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_default = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getString", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 119, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.getString", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_38getString(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_name, __pyx_v_default); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_38getString(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_default) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getString", 0); + + /* "petsc4py/PETSc/Options.pyx":120 + * + * def getString(self, name, default=None): + * return getopt(self.opt, OPT_STRING, self.prefix, name, default) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getopt(__pyx_v_self->opt, __pyx_e_8petsc4py_5PETSc_OPT_STRING, __pyx_t_1, __pyx_v_name, __pyx_v_default); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":119 + * return getopt(self.opt, OPT_SCALAR, self.prefix, name, default) + * + * def getString(self, name, default=None): # <<<<<<<<<<<<<< + * return getopt(self.opt, OPT_STRING, self.prefix, name, default) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getString", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":124 + * # + * + * def insertString(self, string): # <<<<<<<<<<<<<< + * cdef const char *cstring = NULL + * string = str2bytes(string, &cstring) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_41insertString(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_40insertString[] = "Options.insertString(self, string)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_41insertString(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_string = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("insertString (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_string,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_string)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insertString") < 0)) __PYX_ERR(31, 124, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_string = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("insertString", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(31, 124, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Options.insertString", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_40insertString(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self), __pyx_v_string); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_40insertString(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self, PyObject *__pyx_v_string) { + char const *__pyx_v_cstring; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertString", 0); + __Pyx_INCREF(__pyx_v_string); + + /* "petsc4py/PETSc/Options.pyx":125 + * + * def insertString(self, string): + * cdef const char *cstring = NULL # <<<<<<<<<<<<<< + * string = str2bytes(string, &cstring) + * CHKERR( PetscOptionsInsertString(self.opt, cstring) ) + */ + __pyx_v_cstring = NULL; + + /* "petsc4py/PETSc/Options.pyx":126 + * def insertString(self, string): + * cdef const char *cstring = NULL + * string = str2bytes(string, &cstring) # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsInsertString(self.opt, cstring) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_string, (&__pyx_v_cstring)); if (unlikely(!__pyx_t_1)) __PYX_ERR(31, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_string, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Options.pyx":127 + * cdef const char *cstring = NULL + * string = str2bytes(string, &cstring) + * CHKERR( PetscOptionsInsertString(self.opt, cstring) ) # <<<<<<<<<<<<<< + * + * def getAll(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsInsertString(__pyx_v_self->opt, __pyx_v_cstring)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":124 + * # + * + * def insertString(self, string): # <<<<<<<<<<<<<< + * cdef const char *cstring = NULL + * string = str2bytes(string, &cstring) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Options.insertString", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_string); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Options.pyx":129 + * CHKERR( PetscOptionsInsertString(self.opt, cstring) ) + * + * def getAll(self): # <<<<<<<<<<<<<< + * cdef char *allopts = NULL + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_43getAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Options_42getAll[] = "Options.getAll(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Options_43getAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAll (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAll", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAll", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Options_42getAll(((struct __pyx_obj_8petsc4py_5PETSc_Options *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Options_42getAll(struct __pyx_obj_8petsc4py_5PETSc_Options *__pyx_v_self) { + char *__pyx_v_allopts; + PyObject *__pyx_v_options = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAll", 0); + + /* "petsc4py/PETSc/Options.pyx":130 + * + * def getAll(self): + * cdef char *allopts = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) + * options = bytes2str(allopts) + */ + __pyx_v_allopts = NULL; + + /* "petsc4py/PETSc/Options.pyx":131 + * def getAll(self): + * cdef char *allopts = NULL + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) # <<<<<<<<<<<<<< + * options = bytes2str(allopts) + * CHKERR( PetscFree(allopts) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetAll(__pyx_v_self->opt, (&__pyx_v_allopts))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 131, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":132 + * cdef char *allopts = NULL + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) + * options = bytes2str(allopts) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(allopts) ) + * return parseopt(options, self.prefix) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_allopts); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_options = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Options.pyx":133 + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) + * options = bytes2str(allopts) + * CHKERR( PetscFree(allopts) ) # <<<<<<<<<<<<<< + * return parseopt(options, self.prefix) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_allopts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(31, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/Options.pyx":134 + * options = bytes2str(allopts) + * CHKERR( PetscFree(allopts) ) + * return parseopt(options, self.prefix) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_prefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(31, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_parseopt(__pyx_v_options, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(31, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Options.pyx":129 + * CHKERR( PetscOptionsInsertString(self.opt, cstring) ) + * + * def getAll(self): # <<<<<<<<<<<<<< + * cdef char *allopts = NULL + * CHKERR( PetscOptionsGetAll(self.opt, &allopts) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Options.getAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_options); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":6 + * + * @classmethod + * def getVersion(cls, devel=False, date=False, author=False): # <<<<<<<<<<<<<< + * cdef char cversion[256] + * cdef PetscInt major=0, minor=0, micro=0, release=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_1getVersion(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_getVersion[] = "Sys.getVersion(type cls, devel=False, date=False, author=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_1getVersion(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_devel = 0; + PyObject *__pyx_v_date = 0; + PyObject *__pyx_v_author = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVersion (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_devel,&__pyx_n_s_date,&__pyx_n_s_author,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_False); + values[1] = ((PyObject *)Py_False); + values[2] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_devel); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_date); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_author); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getVersion") < 0)) __PYX_ERR(32, 6, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_devel = values[0]; + __pyx_v_date = values[1]; + __pyx_v_author = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getVersion", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 6, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.getVersion", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_getVersion(((PyTypeObject*)__pyx_v_cls), __pyx_v_devel, __pyx_v_date, __pyx_v_author); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_getVersion(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_devel, PyObject *__pyx_v_date, PyObject *__pyx_v_author) { + char __pyx_v_cversion[0x100]; + PetscInt __pyx_v_major; + PetscInt __pyx_v_minor; + PetscInt __pyx_v_micro; + PetscInt __pyx_v_release; + PyObject *__pyx_v_out = NULL; + PyObject *__pyx_v_version = NULL; + PyObject *__pyx_v_vstr = NULL; + PyObject *__pyx_8genexpr1__pyx_v_s = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + PyObject *(*__pyx_t_10)(PyObject *); + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVersion", 0); + __Pyx_INCREF(__pyx_v_date); + __Pyx_INCREF(__pyx_v_author); + + /* "petsc4py/PETSc/Sys.pyx":8 + * def getVersion(cls, devel=False, date=False, author=False): + * cdef char cversion[256] + * cdef PetscInt major=0, minor=0, micro=0, release=0 # <<<<<<<<<<<<<< + * CHKERR( PetscGetVersion(cversion, sizeof(cversion)) ) + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) + */ + __pyx_v_major = 0; + __pyx_v_minor = 0; + __pyx_v_micro = 0; + __pyx_v_release = 0; + + /* "petsc4py/PETSc/Sys.pyx":9 + * cdef char cversion[256] + * cdef PetscInt major=0, minor=0, micro=0, release=0 + * CHKERR( PetscGetVersion(cversion, sizeof(cversion)) ) # <<<<<<<<<<<<<< + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) + * out = version = (toInt(major), toInt(minor), toInt(micro)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGetVersion(__pyx_v_cversion, (sizeof(__pyx_v_cversion)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 9, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":10 + * cdef PetscInt major=0, minor=0, micro=0, release=0 + * CHKERR( PetscGetVersion(cversion, sizeof(cversion)) ) + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) # <<<<<<<<<<<<<< + * out = version = (toInt(major), toInt(minor), toInt(micro)) + * if devel or date or author: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGetVersionNumber((&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_micro), (&__pyx_v_release))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 10, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":11 + * CHKERR( PetscGetVersion(cversion, sizeof(cversion)) ) + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) + * out = version = (toInt(major), toInt(minor), toInt(micro)) # <<<<<<<<<<<<<< + * if devel or date or author: + * out = [version] + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_major); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_minor); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_micro); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __Pyx_INCREF(__pyx_t_5); + __pyx_v_out = __pyx_t_5; + __Pyx_INCREF(__pyx_t_5); + __pyx_v_version = __pyx_t_5; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":12 + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) + * out = version = (toInt(major), toInt(minor), toInt(micro)) + * if devel or date or author: # <<<<<<<<<<<<<< + * out = [version] + * if devel: + */ + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_devel); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(32, 12, __pyx_L1_error) + if (!__pyx_t_7) { + } else { + __pyx_t_6 = __pyx_t_7; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_date); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(32, 12, __pyx_L1_error) + if (!__pyx_t_7) { + } else { + __pyx_t_6 = __pyx_t_7; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_author); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(32, 12, __pyx_L1_error) + __pyx_t_6 = __pyx_t_7; + __pyx_L4_bool_binop_done:; + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Sys.pyx":13 + * out = version = (toInt(major), toInt(minor), toInt(micro)) + * if devel or date or author: + * out = [version] # <<<<<<<<<<<<<< + * if devel: + * out.append(not release) + */ + __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_version); + __Pyx_GIVEREF(__pyx_v_version); + PyList_SET_ITEM(__pyx_t_5, 0, __pyx_v_version); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":14 + * if devel or date or author: + * out = [version] + * if devel: # <<<<<<<<<<<<<< + * out.append(not release) + * if date: + */ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_devel); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(32, 14, __pyx_L1_error) + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Sys.pyx":15 + * out = [version] + * if devel: + * out.append(not release) # <<<<<<<<<<<<<< + * if date: + * vstr = bytes2str(cversion) + */ + __pyx_t_5 = __Pyx_PyBool_FromLong((!((__pyx_v_release != 0) != 0))); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_out, __pyx_t_5); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(32, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":14 + * if devel or date or author: + * out = [version] + * if devel: # <<<<<<<<<<<<<< + * out.append(not release) + * if date: + */ + } + + /* "petsc4py/PETSc/Sys.pyx":16 + * if devel: + * out.append(not release) + * if date: # <<<<<<<<<<<<<< + * vstr = bytes2str(cversion) + * if release != 0: + */ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_date); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(32, 16, __pyx_L1_error) + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Sys.pyx":17 + * out.append(not release) + * if date: + * vstr = bytes2str(cversion) # <<<<<<<<<<<<<< + * if release != 0: + * date = vstr.split(",", 1)[-1].strip() + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cversion); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_vstr = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":18 + * if date: + * vstr = bytes2str(cversion) + * if release != 0: # <<<<<<<<<<<<<< + * date = vstr.split(",", 1)[-1].strip() + * else: + */ + __pyx_t_6 = ((__pyx_v_release != 0) != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Sys.pyx":19 + * vstr = bytes2str(cversion) + * if release != 0: + * date = vstr.split(",", 1)[-1].strip() # <<<<<<<<<<<<<< + * else: + * date = vstr.split("GIT Date:")[-1].strip() + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_vstr, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_strip); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_date, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":18 + * if date: + * vstr = bytes2str(cversion) + * if release != 0: # <<<<<<<<<<<<<< + * date = vstr.split(",", 1)[-1].strip() + * else: + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/Sys.pyx":21 + * date = vstr.split(",", 1)[-1].strip() + * else: + * date = vstr.split("GIT Date:")[-1].strip() # <<<<<<<<<<<<<< + * out.append(date) + * if author: + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_vstr, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_kp_s_GIT_Date) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_GIT_Date); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_strip); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_date, __pyx_t_5); + __pyx_t_5 = 0; + } + __pyx_L9:; + + /* "petsc4py/PETSc/Sys.pyx":22 + * else: + * date = vstr.split("GIT Date:")[-1].strip() + * out.append(date) # <<<<<<<<<<<<<< + * if author: + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') + */ + __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_out, __pyx_v_date); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(32, 22, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":16 + * if devel: + * out.append(not release) + * if date: # <<<<<<<<<<<<<< + * vstr = bytes2str(cversion) + * if release != 0: + */ + } + + /* "petsc4py/PETSc/Sys.pyx":23 + * date = vstr.split("GIT Date:")[-1].strip() + * out.append(date) + * if author: # <<<<<<<<<<<<<< + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') + * author = tuple([s.strip() for s in author if s]) + */ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_author); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(32, 23, __pyx_L1_error) + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Sys.pyx":24 + * out.append(date) + * if author: + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') # <<<<<<<<<<<<<< + * author = tuple([s.strip() for s in author if s]) + * out.append(author) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(PETSC_AUTHOR_INFO); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_s__13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s__13); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_author, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":25 + * if author: + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') + * author = tuple([s.strip() for s in author if s]) # <<<<<<<<<<<<<< + * out.append(author) + * return tuple(out) + */ + { /* enter inner scope */ + __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_5); + if (likely(PyList_CheckExact(__pyx_v_author)) || PyTuple_CheckExact(__pyx_v_author)) { + __pyx_t_4 = __pyx_v_author; __Pyx_INCREF(__pyx_t_4); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { + __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_author); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(32, 25, __pyx_L13_error) + } + for (;;) { + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(32, 25, __pyx_L13_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(32, 25, __pyx_L13_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_10(__pyx_t_4); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(32, 25, __pyx_L13_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v_s, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_8genexpr1__pyx_v_s); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(32, 25, __pyx_L13_error) + if (__pyx_t_6) { + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_8genexpr1__pyx_v_s, __pyx_n_s_strip); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_11)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_11) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_11) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_3))) __PYX_ERR(32, 25, __pyx_L13_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_s); __pyx_8genexpr1__pyx_v_s = 0; + goto __pyx_L17_exit_scope; + __pyx_L13_error:; + __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_s); __pyx_8genexpr1__pyx_v_s = 0; + goto __pyx_L1_error; + __pyx_L17_exit_scope:; + } /* exit inner scope */ + __pyx_t_4 = PyList_AsTuple(((PyObject*)__pyx_t_5)); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_author, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Sys.pyx":26 + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') + * author = tuple([s.strip() for s in author if s]) + * out.append(author) # <<<<<<<<<<<<<< + * return tuple(out) + * + */ + __pyx_t_8 = __Pyx_PyObject_Append(__pyx_v_out, __pyx_v_author); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(32, 26, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":23 + * date = vstr.split("GIT Date:")[-1].strip() + * out.append(date) + * if author: # <<<<<<<<<<<<<< + * author = bytes2str(PETSC_AUTHOR_INFO).split('\n') + * author = tuple([s.strip() for s in author if s]) + */ + } + + /* "petsc4py/PETSc/Sys.pyx":12 + * CHKERR( PetscGetVersionNumber(&major, &minor, µ, &release) ) + * out = version = (toInt(major), toInt(minor), toInt(micro)) + * if devel or date or author: # <<<<<<<<<<<<<< + * out = [version] + * if devel: + */ + } + + /* "petsc4py/PETSc/Sys.pyx":27 + * author = tuple([s.strip() for s in author if s]) + * out.append(author) + * return tuple(out) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_out); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":6 + * + * @classmethod + * def getVersion(cls, devel=False, date=False, author=False): # <<<<<<<<<<<<<< + * cdef char cversion[256] + * cdef PetscInt major=0, minor=0, micro=0, release=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.getVersion", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_out); + __Pyx_XDECREF(__pyx_v_version); + __Pyx_XDECREF(__pyx_v_vstr); + __Pyx_XDECREF(__pyx_8genexpr1__pyx_v_s); + __Pyx_XDECREF(__pyx_v_date); + __Pyx_XDECREF(__pyx_v_author); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":30 + * + * @classmethod + * def getVersionInfo(cls): # <<<<<<<<<<<<<< + * version, dev, date, author = cls.getVersion(True, True, True) + * return dict(major = version[0], + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_3getVersionInfo(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_2getVersionInfo[] = "Sys.getVersionInfo(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_3getVersionInfo(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVersionInfo (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVersionInfo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVersionInfo", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_2getVersionInfo(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_2getVersionInfo(PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_v_version = NULL; + PyObject *__pyx_v_dev = NULL; + PyObject *__pyx_v_date = NULL; + PyObject *__pyx_v_author = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVersionInfo", 0); + + /* "petsc4py/PETSc/Sys.pyx":31 + * @classmethod + * def getVersionInfo(cls): + * version, dev, date, author = cls.getVersion(True, True, True) # <<<<<<<<<<<<<< + * return dict(major = version[0], + * minor = version[1], + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_n_s_getVersion); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 4)) { + if (size > 4) __Pyx_RaiseTooManyValuesError(4); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(32, 31, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + __pyx_t_5 = PyList_GET_ITEM(sequence, 3); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + { + Py_ssize_t i; + PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5}; + for (i=0; i < 4; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(32, 31, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5}; + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + for (index=0; index < 4; index++) { + PyObject* item = __pyx_t_7(__pyx_t_6); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) __PYX_ERR(32, 31, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(32, 31, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_version = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_dev = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v_date = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_author = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":32 + * def getVersionInfo(cls): + * version, dev, date, author = cls.getVersion(True, True, True) + * return dict(major = version[0], # <<<<<<<<<<<<<< + * minor = version[1], + * subminor = version[2], + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_version, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_major, __pyx_t_5) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":33 + * version, dev, date, author = cls.getVersion(True, True, True) + * return dict(major = version[0], + * minor = version[1], # <<<<<<<<<<<<<< + * subminor = version[2], + * release = not dev, + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_version, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_minor, __pyx_t_5) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":34 + * return dict(major = version[0], + * minor = version[1], + * subminor = version[2], # <<<<<<<<<<<<<< + * release = not dev, + * date = date, + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_version, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_subminor, __pyx_t_5) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":35 + * minor = version[1], + * subminor = version[2], + * release = not dev, # <<<<<<<<<<<<<< + * date = date, + * authorinfo = author) + */ + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_dev); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(32, 35, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyBool_FromLong((!__pyx_t_8)); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_release, __pyx_t_5) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Sys.pyx":36 + * subminor = version[2], + * release = not dev, + * date = date, # <<<<<<<<<<<<<< + * authorinfo = author) + * + */ + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_date, __pyx_v_date) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":37 + * release = not dev, + * date = date, + * authorinfo = author) # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_authorinfo, __pyx_v_author) < 0) __PYX_ERR(32, 32, __pyx_L1_error) + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":30 + * + * @classmethod + * def getVersionInfo(cls): # <<<<<<<<<<<<<< + * version, dev, date, author = cls.getVersion(True, True, True) + * return dict(major = version[0], + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.getVersionInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_version); + __Pyx_XDECREF(__pyx_v_dev); + __Pyx_XDECREF(__pyx_v_date); + __Pyx_XDECREF(__pyx_v_author); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":42 + * + * @classmethod + * def isInitialized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscInitializeCalled) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_5isInitialized(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_4isInitialized[] = "Sys.isInitialized(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_5isInitialized(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isInitialized (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isInitialized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isInitialized", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_4isInitialized(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_4isInitialized(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isInitialized", 0); + + /* "petsc4py/PETSc/Sys.pyx":43 + * @classmethod + * def isInitialized(cls): + * return toBool(PetscInitializeCalled) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toBool(PetscInitializeCalled); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":42 + * + * @classmethod + * def isInitialized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscInitializeCalled) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.isInitialized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":46 + * + * @classmethod + * def isFinalized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscFinalizeCalled) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_7isFinalized(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_6isFinalized[] = "Sys.isFinalized(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_7isFinalized(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isFinalized (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isFinalized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isFinalized", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_6isFinalized(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_6isFinalized(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isFinalized", 0); + + /* "petsc4py/PETSc/Sys.pyx":47 + * @classmethod + * def isFinalized(cls): + * return toBool(PetscFinalizeCalled) # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toBool(PetscFinalizeCalled); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":46 + * + * @classmethod + * def isFinalized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscFinalizeCalled) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.isFinalized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":52 + * + * @classmethod + * def getDefaultComm(cls): # <<<<<<<<<<<<<< + * cdef Comm comm = Comm() + * comm.comm = PETSC_COMM_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_9getDefaultComm(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_8getDefaultComm[] = "Sys.getDefaultComm(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_9getDefaultComm(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDefaultComm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDefaultComm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDefaultComm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_8getDefaultComm(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_8getDefaultComm(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + struct PyPetscCommObject *__pyx_v_comm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDefaultComm", 0); + + /* "petsc4py/PETSc/Sys.pyx":53 + * @classmethod + * def getDefaultComm(cls): + * cdef Comm comm = Comm() # <<<<<<<<<<<<<< + * comm.comm = PETSC_COMM_DEFAULT + * return comm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_comm = ((struct PyPetscCommObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":54 + * def getDefaultComm(cls): + * cdef Comm comm = Comm() + * comm.comm = PETSC_COMM_DEFAULT # <<<<<<<<<<<<<< + * return comm + * + */ + __pyx_v_comm->comm = __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT; + + /* "petsc4py/PETSc/Sys.pyx":55 + * cdef Comm comm = Comm() + * comm.comm = PETSC_COMM_DEFAULT + * return comm # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_comm)); + __pyx_r = ((PyObject *)__pyx_v_comm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":52 + * + * @classmethod + * def getDefaultComm(cls): # <<<<<<<<<<<<<< + * cdef Comm comm = Comm() + * comm.comm = PETSC_COMM_DEFAULT + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.getDefaultComm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":58 + * + * @classmethod + * def setDefaultComm(cls, comm): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_11setDefaultComm(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_10setDefaultComm[] = "Sys.setDefaultComm(type cls, comm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_11setDefaultComm(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDefaultComm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDefaultComm") < 0)) __PYX_ERR(32, 58, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDefaultComm", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 58, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.setDefaultComm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_10setDefaultComm(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_10setDefaultComm(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDefaultComm", 0); + + /* "petsc4py/PETSc/Sys.pyx":59 + * @classmethod + * def setDefaultComm(cls, comm): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) # <<<<<<<<<<<<<< + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_WORLD); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 59, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Sys.pyx":60 + * def setDefaultComm(cls, comm): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * global PETSC_COMM_DEFAULT + */ + __pyx_t_2 = ((__pyx_v_ccomm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Sys.pyx":61 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * global PETSC_COMM_DEFAULT + * PETSC_COMM_DEFAULT = ccomm + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(32, 61, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":60 + * def setDefaultComm(cls, comm): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * global PETSC_COMM_DEFAULT + */ + } + + /* "petsc4py/PETSc/Sys.pyx":63 + * raise ValueError("null communicator") + * global PETSC_COMM_DEFAULT + * PETSC_COMM_DEFAULT = ccomm # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT = __pyx_v_ccomm; + + /* "petsc4py/PETSc/Sys.pyx":58 + * + * @classmethod + * def setDefaultComm(cls, comm): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.setDefaultComm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":68 + * + * @classmethod + * def Print(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_13Print(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_12Print[] = "Sys.Print(type cls, *args, **kargs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_13Print(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("Print (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "Print", 1))) return NULL; + __pyx_v_kargs = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_kargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kargs); + __Pyx_INCREF(__pyx_args); + __pyx_v_args = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_12Print(((PyTypeObject*)__pyx_v_cls), __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_12Print(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_comm = 0; + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_v_sep = 0; + PyObject *__pyx_v_end = 0; + PyObject *__pyx_v_format = NULL; + PyObject *__pyx_v_message = NULL; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + MPI_Comm __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Print", 0); + __Pyx_INCREF(__pyx_v_args); + + /* "petsc4py/PETSc/Sys.pyx":69 + * @classmethod + * def Print(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_comm, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_comm = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":70 + * def Print(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 70, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_2; + + /* "petsc4py/PETSc/Sys.pyx":71 + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') # <<<<<<<<<<<<<< + * cdef object end = kargs.get('end', '\n') + * if comm_rank(ccomm) == 0: + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_sep, __pyx_kp_s_); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sep = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":72 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') # <<<<<<<<<<<<<< + * if comm_rank(ccomm) == 0: + * if not args: args = ('',) + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_end, __pyx_kp_s__13); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_end = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":73 + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') + * if comm_rank(ccomm) == 0: # <<<<<<<<<<<<<< + * if not args: args = ('',) + * format = ['%s', sep] * len(args) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_comm_rank(__pyx_v_ccomm); if (unlikely(__pyx_t_3 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(32, 73, __pyx_L1_error) + __pyx_t_4 = ((__pyx_t_3 == 0) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/Sys.pyx":74 + * cdef object end = kargs.get('end', '\n') + * if comm_rank(ccomm) == 0: + * if not args: args = ('',) # <<<<<<<<<<<<<< + * format = ['%s', sep] * len(args) + * format[-1] = end + */ + __pyx_t_4 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); + __pyx_t_5 = ((!__pyx_t_4) != 0); + if (__pyx_t_5) { + __Pyx_INCREF(__pyx_tuple__17); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_tuple__17); + } + + /* "petsc4py/PETSc/Sys.pyx":75 + * if comm_rank(ccomm) == 0: + * if not args: args = ('',) + * format = ['%s', sep] * len(args) # <<<<<<<<<<<<<< + * format[-1] = end + * message = ''.join(format) % args + */ + __pyx_t_6 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(32, 75, __pyx_L1_error) + __pyx_t_1 = PyList_New(2 * ((__pyx_t_6<0) ? 0:__pyx_t_6)); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_t_6; __pyx_temp++) { + __Pyx_INCREF(__pyx_kp_s_s); + __Pyx_GIVEREF(__pyx_kp_s_s); + PyList_SET_ITEM(__pyx_t_1, __pyx_temp * 2, __pyx_kp_s_s); + __Pyx_INCREF(__pyx_v_sep); + __Pyx_GIVEREF(__pyx_v_sep); + PyList_SET_ITEM(__pyx_t_1, __pyx_temp * 2 + 1, __pyx_v_sep); + } + } + __pyx_v_format = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":76 + * if not args: args = ('',) + * format = ['%s', sep] * len(args) + * format[-1] = end # <<<<<<<<<<<<<< + * message = ''.join(format) % args + * else: + */ + if (unlikely(__Pyx_SetItemInt(__pyx_v_format, -1L, __pyx_v_end, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(32, 76, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":77 + * format = ['%s', sep] * len(args) + * format[-1] = end + * message = ''.join(format) % args # <<<<<<<<<<<<<< + * else: + * message = '' + */ + __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyNumber_Remainder(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_message = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Sys.pyx":73 + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') + * if comm_rank(ccomm) == 0: # <<<<<<<<<<<<<< + * if not args: args = ('',) + * format = ['%s', sep] * len(args) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":79 + * message = ''.join(format) % args + * else: + * message = '' # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * message = str2bytes(message, &m) + */ + /*else*/ { + __Pyx_INCREF(__pyx_kp_s__7); + __pyx_v_message = __pyx_kp_s__7; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Sys.pyx":80 + * else: + * message = '' + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * message = str2bytes(message, &m) + * CHKERR( PetscPrintf(ccomm, '%s', m) ) + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Sys.pyx":81 + * message = '' + * cdef const char *m = NULL + * message = str2bytes(message, &m) # <<<<<<<<<<<<<< + * CHKERR( PetscPrintf(ccomm, '%s', m) ) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_message, (&__pyx_v_m)); if (unlikely(!__pyx_t_7)) __PYX_ERR(32, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Sys.pyx":82 + * cdef const char *m = NULL + * message = str2bytes(message, &m) + * CHKERR( PetscPrintf(ccomm, '%s', m) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPrintf(__pyx_v_ccomm, ((char *)"%s"), __pyx_v_m)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 82, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":68 + * + * @classmethod + * def Print(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.Print", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XDECREF(__pyx_v_sep); + __Pyx_XDECREF(__pyx_v_end); + __Pyx_XDECREF(__pyx_v_format); + __Pyx_XDECREF(__pyx_v_message); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":85 + * + * @classmethod + * def syncPrint(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_15syncPrint(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_14syncPrint[] = "Sys.syncPrint(type cls, *args, **kargs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_15syncPrint(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("syncPrint (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "syncPrint", 1))) return NULL; + __pyx_v_kargs = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_kargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kargs); + __Pyx_INCREF(__pyx_args); + __pyx_v_args = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_14syncPrint(((PyTypeObject*)__pyx_v_cls), __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_14syncPrint(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_comm = 0; + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_v_sep = 0; + PyObject *__pyx_v_end = 0; + PyObject *__pyx_v_flush = 0; + PyObject *__pyx_v_format = NULL; + PyObject *__pyx_v_message = NULL; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + MPI_Comm __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("syncPrint", 0); + __Pyx_INCREF(__pyx_v_args); + + /* "petsc4py/PETSc/Sys.pyx":86 + * @classmethod + * def syncPrint(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_comm, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_comm = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":87 + * def syncPrint(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 87, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_2; + + /* "petsc4py/PETSc/Sys.pyx":88 + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') # <<<<<<<<<<<<<< + * cdef object end = kargs.get('end', '\n') + * cdef object flush = kargs.get('flush', False) + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_sep, __pyx_kp_s_); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sep = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":89 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') # <<<<<<<<<<<<<< + * cdef object flush = kargs.get('flush', False) + * if not args: args = ('',) + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_end, __pyx_kp_s__13); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_end = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":90 + * cdef object sep = kargs.get('sep', ' ') + * cdef object end = kargs.get('end', '\n') + * cdef object flush = kargs.get('flush', False) # <<<<<<<<<<<<<< + * if not args: args = ('',) + * format = ['%s', sep] * len(args) + */ + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_kargs, __pyx_n_s_flush, Py_False); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_flush = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":91 + * cdef object end = kargs.get('end', '\n') + * cdef object flush = kargs.get('flush', False) + * if not args: args = ('',) # <<<<<<<<<<<<<< + * format = ['%s', sep] * len(args) + * format[-1] = end + */ + __pyx_t_3 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); + __pyx_t_4 = ((!__pyx_t_3) != 0); + if (__pyx_t_4) { + __Pyx_INCREF(__pyx_tuple__17); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_tuple__17); + } + + /* "petsc4py/PETSc/Sys.pyx":92 + * cdef object flush = kargs.get('flush', False) + * if not args: args = ('',) + * format = ['%s', sep] * len(args) # <<<<<<<<<<<<<< + * format[-1] = end + * message = ''.join(format) % args + */ + __pyx_t_5 = PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(32, 92, __pyx_L1_error) + __pyx_t_1 = PyList_New(2 * ((__pyx_t_5<0) ? 0:__pyx_t_5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_t_5; __pyx_temp++) { + __Pyx_INCREF(__pyx_kp_s_s); + __Pyx_GIVEREF(__pyx_kp_s_s); + PyList_SET_ITEM(__pyx_t_1, __pyx_temp * 2, __pyx_kp_s_s); + __Pyx_INCREF(__pyx_v_sep); + __Pyx_GIVEREF(__pyx_v_sep); + PyList_SET_ITEM(__pyx_t_1, __pyx_temp * 2 + 1, __pyx_v_sep); + } + } + __pyx_v_format = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":93 + * if not args: args = ('',) + * format = ['%s', sep] * len(args) + * format[-1] = end # <<<<<<<<<<<<<< + * message = ''.join(format) % args + * cdef const char *m = NULL + */ + if (unlikely(__Pyx_SetItemInt(__pyx_v_format, -1L, __pyx_v_end, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0)) __PYX_ERR(32, 93, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":94 + * format = ['%s', sep] * len(args) + * format[-1] = end + * message = ''.join(format) % args # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * message = str2bytes(message, &m) + */ + __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_format); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyNumber_Remainder(__pyx_t_1, __pyx_v_args); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_message = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Sys.pyx":95 + * format[-1] = end + * message = ''.join(format) % args + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * message = str2bytes(message, &m) + * CHKERR( PetscSynchronizedPrintf(ccomm, '%s', m) ) + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Sys.pyx":96 + * message = ''.join(format) % args + * cdef const char *m = NULL + * message = str2bytes(message, &m) # <<<<<<<<<<<<<< + * CHKERR( PetscSynchronizedPrintf(ccomm, '%s', m) ) + * if flush: CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_message, (&__pyx_v_m)); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Sys.pyx":97 + * cdef const char *m = NULL + * message = str2bytes(message, &m) + * CHKERR( PetscSynchronizedPrintf(ccomm, '%s', m) ) # <<<<<<<<<<<<<< + * if flush: CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSynchronizedPrintf(__pyx_v_ccomm, ((char *)"%s"), __pyx_v_m)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":98 + * message = str2bytes(message, &m) + * CHKERR( PetscSynchronizedPrintf(ccomm, '%s', m) ) + * if flush: CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_flush); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(32, 98, __pyx_L1_error) + if (__pyx_t_4) { + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSynchronizedFlush(__pyx_v_ccomm, PETSC_STDOUT)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 98, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Sys.pyx":85 + * + * @classmethod + * def syncPrint(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.syncPrint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XDECREF(__pyx_v_sep); + __Pyx_XDECREF(__pyx_v_end); + __Pyx_XDECREF(__pyx_v_flush); + __Pyx_XDECREF(__pyx_v_format); + __Pyx_XDECREF(__pyx_v_message); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":101 + * + * @classmethod + * def syncFlush(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_17syncFlush(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_16syncFlush[] = "Sys.syncFlush(type cls, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_17syncFlush(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("syncFlush (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "syncFlush") < 0)) __PYX_ERR(32, 101, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("syncFlush", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 101, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.syncFlush", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_16syncFlush(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_16syncFlush(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("syncFlush", 0); + + /* "petsc4py/PETSc/Sys.pyx":102 + * @classmethod + * def syncFlush(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 102, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Sys.pyx":103 + * def syncFlush(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSynchronizedFlush(__pyx_v_ccomm, PETSC_STDOUT)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 103, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":101 + * + * @classmethod + * def syncFlush(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.syncFlush", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":108 + * + * @classmethod + * def splitOwnership(cls, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_19splitOwnership(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_18splitOwnership[] = "Sys.splitOwnership(type cls, size, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_19splitOwnership(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("splitOwnership (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "splitOwnership") < 0)) __PYX_ERR(32, 108, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("splitOwnership", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 108, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.splitOwnership", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_18splitOwnership(((PyTypeObject*)__pyx_v_cls), __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_18splitOwnership(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("splitOwnership", 0); + + /* "petsc4py/PETSc/Sys.pyx":109 + * @classmethod + * def splitOwnership(cls, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Sys_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(32, 109, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Sys.pyx":110 + * def splitOwnership(cls, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Sys_Sizes(size, bsize, &bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Sys.pyx":111 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Sys_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if n > 0: n = n // bs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 111, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":112 + * cdef PetscInt bs=0, n=0, N=0 + * Sys_Sizes(size, bsize, &bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if n > 0: n = n // bs + * if N > 0: N = N // bs + */ + __pyx_t_3 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Sys.pyx":113 + * Sys_Sizes(size, bsize, &bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if n > 0: n = n // bs # <<<<<<<<<<<<<< + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(ccomm, &n, &N) ) + */ + __pyx_t_3 = ((__pyx_v_n > 0) != 0); + if (__pyx_t_3) { + __pyx_v_n = (__pyx_v_n / __pyx_v_bs); + } + + /* "petsc4py/PETSc/Sys.pyx":114 + * if bs == PETSC_DECIDE: bs = 1 + * if n > 0: n = n // bs + * if N > 0: N = N // bs # <<<<<<<<<<<<<< + * CHKERR( PetscSplitOwnership(ccomm, &n, &N) ) + * n = n * bs + */ + __pyx_t_3 = ((__pyx_v_N > 0) != 0); + if (__pyx_t_3) { + __pyx_v_N = (__pyx_v_N / __pyx_v_bs); + } + + /* "petsc4py/PETSc/Sys.pyx":115 + * if n > 0: n = n // bs + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(ccomm, &n, &N) ) # <<<<<<<<<<<<<< + * n = n * bs + * N = N * bs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSplitOwnership(__pyx_v_ccomm, (&__pyx_v_n), (&__pyx_v_N))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 115, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":116 + * if N > 0: N = N // bs + * CHKERR( PetscSplitOwnership(ccomm, &n, &N) ) + * n = n * bs # <<<<<<<<<<<<<< + * N = N * bs + * return (toInt(n), toInt(N)) + */ + __pyx_v_n = (__pyx_v_n * __pyx_v_bs); + + /* "petsc4py/PETSc/Sys.pyx":117 + * CHKERR( PetscSplitOwnership(ccomm, &n, &N) ) + * n = n * bs + * N = N * bs # <<<<<<<<<<<<<< + * return (toInt(n), toInt(N)) + * + */ + __pyx_v_N = (__pyx_v_N * __pyx_v_bs); + + /* "petsc4py/PETSc/Sys.pyx":118 + * n = n * bs + * N = N * bs + * return (toInt(n), toInt(N)) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_5)) __PYX_ERR(32, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(32, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":108 + * + * @classmethod + * def splitOwnership(cls, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.splitOwnership", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":121 + * + * @classmethod + * def sleep(cls, seconds=1): # <<<<<<<<<<<<<< + * cdef int s = seconds + * CHKERR( PetscSleep(s) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_21sleep(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_20sleep[] = "Sys.sleep(type cls, seconds=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_21sleep(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_seconds = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sleep (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_seconds,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seconds); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sleep") < 0)) __PYX_ERR(32, 121, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_seconds = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sleep", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 121, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.sleep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_20sleep(((PyTypeObject*)__pyx_v_cls), __pyx_v_seconds); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_20sleep(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_seconds) { + int __pyx_v_s; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sleep", 0); + + /* "petsc4py/PETSc/Sys.pyx":122 + * @classmethod + * def sleep(cls, seconds=1): + * cdef int s = seconds # <<<<<<<<<<<<<< + * CHKERR( PetscSleep(s) ) + * + */ + __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_seconds); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 122, __pyx_L1_error) + __pyx_v_s = __pyx_t_1; + + /* "petsc4py/PETSc/Sys.pyx":123 + * def sleep(cls, seconds=1): + * cdef int s = seconds + * CHKERR( PetscSleep(s) ) # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSleep(__pyx_v_s)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 123, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":121 + * + * @classmethod + * def sleep(cls, seconds=1): # <<<<<<<<<<<<<< + * cdef int s = seconds + * CHKERR( PetscSleep(s) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.sleep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":128 + * + * @classmethod + * def pushErrorHandler(cls, errhandler): # <<<<<<<<<<<<<< + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_23pushErrorHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_22pushErrorHandler[] = "Sys.pushErrorHandler(type cls, errhandler)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_23pushErrorHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_errhandler = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushErrorHandler (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_errhandler,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_errhandler)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pushErrorHandler") < 0)) __PYX_ERR(32, 128, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_errhandler = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pushErrorHandler", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 128, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.pushErrorHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_22pushErrorHandler(((PyTypeObject*)__pyx_v_cls), __pyx_v_errhandler); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_22pushErrorHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_errhandler) { + PetscErrorHandlerFunction __pyx_v_handler; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushErrorHandler", 0); + + /* "petsc4py/PETSc/Sys.pyx":129 + * @classmethod + * def pushErrorHandler(cls, errhandler): + * cdef PetscErrorHandlerFunction handler = NULL # <<<<<<<<<<<<<< + * if errhandler == "python": + * handler = \ + */ + __pyx_v_handler = NULL; + + /* "petsc4py/PETSc/Sys.pyx":130 + * def pushErrorHandler(cls, errhandler): + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": # <<<<<<<<<<<<<< + * handler = \ + * PetscPythonErrorHandler + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_python, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 130, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":131 + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": + * handler = \ # <<<<<<<<<<<<<< + * PetscPythonErrorHandler + * elif errhandler == "debugger": + */ + __pyx_v_handler = ((PetscErrorHandlerFunction)__pyx_f_8petsc4py_5PETSc_PetscPythonErrorHandler); + + /* "petsc4py/PETSc/Sys.pyx":130 + * def pushErrorHandler(cls, errhandler): + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": # <<<<<<<<<<<<<< + * handler = \ + * PetscPythonErrorHandler + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":133 + * handler = \ + * PetscPythonErrorHandler + * elif errhandler == "debugger": # <<<<<<<<<<<<<< + * handler = PetscAttachDebuggerErrorHandler + * elif errhandler == "emacs": + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_debugger, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 133, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":134 + * PetscPythonErrorHandler + * elif errhandler == "debugger": + * handler = PetscAttachDebuggerErrorHandler # <<<<<<<<<<<<<< + * elif errhandler == "emacs": + * handler = PetscEmacsClientErrorHandler + */ + __pyx_v_handler = PetscAttachDebuggerErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":133 + * handler = \ + * PetscPythonErrorHandler + * elif errhandler == "debugger": # <<<<<<<<<<<<<< + * handler = PetscAttachDebuggerErrorHandler + * elif errhandler == "emacs": + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":135 + * elif errhandler == "debugger": + * handler = PetscAttachDebuggerErrorHandler + * elif errhandler == "emacs": # <<<<<<<<<<<<<< + * handler = PetscEmacsClientErrorHandler + * elif errhandler == "traceback": + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_emacs, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 135, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":136 + * handler = PetscAttachDebuggerErrorHandler + * elif errhandler == "emacs": + * handler = PetscEmacsClientErrorHandler # <<<<<<<<<<<<<< + * elif errhandler == "traceback": + * handler = PetscTraceBackErrorHandler + */ + __pyx_v_handler = PetscEmacsClientErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":135 + * elif errhandler == "debugger": + * handler = PetscAttachDebuggerErrorHandler + * elif errhandler == "emacs": # <<<<<<<<<<<<<< + * handler = PetscEmacsClientErrorHandler + * elif errhandler == "traceback": + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":137 + * elif errhandler == "emacs": + * handler = PetscEmacsClientErrorHandler + * elif errhandler == "traceback": # <<<<<<<<<<<<<< + * handler = PetscTraceBackErrorHandler + * elif errhandler == "ignore": + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_traceback_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 137, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":138 + * handler = PetscEmacsClientErrorHandler + * elif errhandler == "traceback": + * handler = PetscTraceBackErrorHandler # <<<<<<<<<<<<<< + * elif errhandler == "ignore": + * handler = PetscIgnoreErrorHandler + */ + __pyx_v_handler = PetscTraceBackErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":137 + * elif errhandler == "emacs": + * handler = PetscEmacsClientErrorHandler + * elif errhandler == "traceback": # <<<<<<<<<<<<<< + * handler = PetscTraceBackErrorHandler + * elif errhandler == "ignore": + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":139 + * elif errhandler == "traceback": + * handler = PetscTraceBackErrorHandler + * elif errhandler == "ignore": # <<<<<<<<<<<<<< + * handler = PetscIgnoreErrorHandler + * elif errhandler == "mpiabort": + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_ignore, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 139, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":140 + * handler = PetscTraceBackErrorHandler + * elif errhandler == "ignore": + * handler = PetscIgnoreErrorHandler # <<<<<<<<<<<<<< + * elif errhandler == "mpiabort": + * handler = PetscMPIAbortErrorHandler + */ + __pyx_v_handler = PetscIgnoreErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":139 + * elif errhandler == "traceback": + * handler = PetscTraceBackErrorHandler + * elif errhandler == "ignore": # <<<<<<<<<<<<<< + * handler = PetscIgnoreErrorHandler + * elif errhandler == "mpiabort": + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":141 + * elif errhandler == "ignore": + * handler = PetscIgnoreErrorHandler + * elif errhandler == "mpiabort": # <<<<<<<<<<<<<< + * handler = PetscMPIAbortErrorHandler + * elif errhandler == "abort": + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_mpiabort, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 141, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Sys.pyx":142 + * handler = PetscIgnoreErrorHandler + * elif errhandler == "mpiabort": + * handler = PetscMPIAbortErrorHandler # <<<<<<<<<<<<<< + * elif errhandler == "abort": + * handler = PetscAbortErrorHandler + */ + __pyx_v_handler = PetscMPIAbortErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":141 + * elif errhandler == "ignore": + * handler = PetscIgnoreErrorHandler + * elif errhandler == "mpiabort": # <<<<<<<<<<<<<< + * handler = PetscMPIAbortErrorHandler + * elif errhandler == "abort": + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":143 + * elif errhandler == "mpiabort": + * handler = PetscMPIAbortErrorHandler + * elif errhandler == "abort": # <<<<<<<<<<<<<< + * handler = PetscAbortErrorHandler + * else: + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_errhandler, __pyx_n_s_abort, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 143, __pyx_L1_error) + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Sys.pyx":144 + * handler = PetscMPIAbortErrorHandler + * elif errhandler == "abort": + * handler = PetscAbortErrorHandler # <<<<<<<<<<<<<< + * else: + * raise ValueError( + */ + __pyx_v_handler = PetscAbortErrorHandler; + + /* "petsc4py/PETSc/Sys.pyx":143 + * elif errhandler == "mpiabort": + * handler = PetscMPIAbortErrorHandler + * elif errhandler == "abort": # <<<<<<<<<<<<<< + * handler = PetscAbortErrorHandler + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Sys.pyx":146 + * handler = PetscAbortErrorHandler + * else: + * raise ValueError( # <<<<<<<<<<<<<< + * "unknown error handler: %s" % errhandler) + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + */ + /*else*/ { + + /* "petsc4py/PETSc/Sys.pyx":147 + * else: + * raise ValueError( + * "unknown error handler: %s" % errhandler) # <<<<<<<<<<<<<< + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + * + */ + __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_unknown_error_handler_s, __pyx_v_errhandler); if (unlikely(!__pyx_t_2)) __PYX_ERR(32, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "petsc4py/PETSc/Sys.pyx":146 + * handler = PetscAbortErrorHandler + * else: + * raise ValueError( # <<<<<<<<<<<<<< + * "unknown error handler: %s" % errhandler) + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(32, 146, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Sys.pyx":148 + * raise ValueError( + * "unknown error handler: %s" % errhandler) + * CHKERR( PetscPushErrorHandler(handler, NULL) ) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPushErrorHandler(__pyx_v_handler, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 148, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":128 + * + * @classmethod + * def pushErrorHandler(cls, errhandler): # <<<<<<<<<<<<<< + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.pushErrorHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":152 + * + * @classmethod + * def popErrorHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopErrorHandler() ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_25popErrorHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_24popErrorHandler[] = "Sys.popErrorHandler(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_25popErrorHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popErrorHandler (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popErrorHandler", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popErrorHandler", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_24popErrorHandler(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_24popErrorHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popErrorHandler", 0); + + /* "petsc4py/PETSc/Sys.pyx":153 + * @classmethod + * def popErrorHandler(cls): + * CHKERR( PetscPopErrorHandler() ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPopErrorHandler()); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":152 + * + * @classmethod + * def popErrorHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopErrorHandler() ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.popErrorHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":156 + * + * @classmethod + * def popSignalHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopSignalHandler() ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_27popSignalHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_26popSignalHandler[] = "Sys.popSignalHandler(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_27popSignalHandler(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popSignalHandler (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popSignalHandler", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popSignalHandler", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_26popSignalHandler(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_26popSignalHandler(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popSignalHandler", 0); + + /* "petsc4py/PETSc/Sys.pyx":157 + * @classmethod + * def popSignalHandler(cls): + * CHKERR( PetscPopSignalHandler() ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPopSignalHandler()); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":156 + * + * @classmethod + * def popSignalHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopSignalHandler() ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.popSignalHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":160 + * + * @classmethod + * def infoAllow(cls, flag, filename=None, mode="w"): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * cdef const char *cfilename = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_29infoAllow(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_28infoAllow[] = "Sys.infoAllow(type cls, flag, filename=None, mode='w')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_29infoAllow(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + PyObject *__pyx_v_filename = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("infoAllow (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,&__pyx_n_s_filename,&__pyx_n_s_mode,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)__pyx_n_s_w); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "infoAllow") < 0)) __PYX_ERR(32, 160, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_flag = values[0]; + __pyx_v_filename = values[1]; + __pyx_v_mode = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("infoAllow", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 160, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.infoAllow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_28infoAllow(((PyTypeObject*)__pyx_v_cls), __pyx_v_flag, __pyx_v_filename, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_28infoAllow(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flag, PyObject *__pyx_v_filename, PyObject *__pyx_v_mode) { + PetscBool __pyx_v_tval; + char const *__pyx_v_cfilename; + char const *__pyx_v_cmode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("infoAllow", 0); + __Pyx_INCREF(__pyx_v_filename); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Sys.pyx":161 + * @classmethod + * def infoAllow(cls, flag, filename=None, mode="w"): + * cdef PetscBool tval = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef const char *cfilename = NULL + * cdef const char *cmode = NULL + */ + __pyx_v_tval = PETSC_FALSE; + + /* "petsc4py/PETSc/Sys.pyx":162 + * def infoAllow(cls, flag, filename=None, mode="w"): + * cdef PetscBool tval = PETSC_FALSE + * cdef const char *cfilename = NULL # <<<<<<<<<<<<<< + * cdef const char *cmode = NULL + * if flag: tval = PETSC_TRUE + */ + __pyx_v_cfilename = NULL; + + /* "petsc4py/PETSc/Sys.pyx":163 + * cdef PetscBool tval = PETSC_FALSE + * cdef const char *cfilename = NULL + * cdef const char *cmode = NULL # <<<<<<<<<<<<<< + * if flag: tval = PETSC_TRUE + * CHKERR( PetscInfoAllow(tval) ) + */ + __pyx_v_cmode = NULL; + + /* "petsc4py/PETSc/Sys.pyx":164 + * cdef const char *cfilename = NULL + * cdef const char *cmode = NULL + * if flag: tval = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PetscInfoAllow(tval) ) + * if filename is not None: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 164, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_tval = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Sys.pyx":165 + * cdef const char *cmode = NULL + * if flag: tval = PETSC_TRUE + * CHKERR( PetscInfoAllow(tval) ) # <<<<<<<<<<<<<< + * if filename is not None: + * filename = str2bytes(filename, &cfilename) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscInfoAllow(__pyx_v_tval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 165, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":166 + * if flag: tval = PETSC_TRUE + * CHKERR( PetscInfoAllow(tval) ) + * if filename is not None: # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfilename) + * mode = str2bytes(mode, &cmode) + */ + __pyx_t_1 = (__pyx_v_filename != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Sys.pyx":167 + * CHKERR( PetscInfoAllow(tval) ) + * if filename is not None: + * filename = str2bytes(filename, &cfilename) # <<<<<<<<<<<<<< + * mode = str2bytes(mode, &cmode) + * CHKERR( PetscInfoSetFile(cfilename, cmode) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cfilename)); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Sys.pyx":168 + * if filename is not None: + * filename = str2bytes(filename, &cfilename) + * mode = str2bytes(mode, &cmode) # <<<<<<<<<<<<<< + * CHKERR( PetscInfoSetFile(cfilename, cmode) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_cmode)); if (unlikely(!__pyx_t_4)) __PYX_ERR(32, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Sys.pyx":169 + * filename = str2bytes(filename, &cfilename) + * mode = str2bytes(mode, &cmode) + * CHKERR( PetscInfoSetFile(cfilename, cmode) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscInfoSetFile(__pyx_v_cfilename, __pyx_v_cmode)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 169, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":166 + * if flag: tval = PETSC_TRUE + * CHKERR( PetscInfoAllow(tval) ) + * if filename is not None: # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfilename) + * mode = str2bytes(mode, &cmode) + */ + } + + /* "petsc4py/PETSc/Sys.pyx":160 + * + * @classmethod + * def infoAllow(cls, flag, filename=None, mode="w"): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * cdef const char *cfilename = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.infoAllow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":172 + * + * @classmethod + * def registerCitation(cls, citation): # <<<<<<<<<<<<<< + * if not citation: raise ValueError("empty citation") + * cdef const char *cit = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_31registerCitation(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_30registerCitation[] = "Sys.registerCitation(type cls, citation)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_31registerCitation(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_citation = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("registerCitation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_citation,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_citation)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "registerCitation") < 0)) __PYX_ERR(32, 172, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_citation = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("registerCitation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 172, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.registerCitation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_30registerCitation(((PyTypeObject*)__pyx_v_cls), __pyx_v_citation); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_30registerCitation(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_citation) { + char const *__pyx_v_cit; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("registerCitation", 0); + __Pyx_INCREF(__pyx_v_citation); + + /* "petsc4py/PETSc/Sys.pyx":173 + * @classmethod + * def registerCitation(cls, citation): + * if not citation: raise ValueError("empty citation") # <<<<<<<<<<<<<< + * cdef const char *cit = NULL + * citation = str2bytes(citation, &cit) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_citation); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(32, 173, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (unlikely(__pyx_t_2)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(32, 173, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Sys.pyx":174 + * def registerCitation(cls, citation): + * if not citation: raise ValueError("empty citation") + * cdef const char *cit = NULL # <<<<<<<<<<<<<< + * citation = str2bytes(citation, &cit) + * cdef PetscBool flag = get_citation(citation) + */ + __pyx_v_cit = NULL; + + /* "petsc4py/PETSc/Sys.pyx":175 + * if not citation: raise ValueError("empty citation") + * cdef const char *cit = NULL + * citation = str2bytes(citation, &cit) # <<<<<<<<<<<<<< + * cdef PetscBool flag = get_citation(citation) + * CHKERR( PetscCitationsRegister(cit, &flag) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_citation, (&__pyx_v_cit)); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_citation, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Sys.pyx":176 + * cdef const char *cit = NULL + * citation = str2bytes(citation, &cit) + * cdef PetscBool flag = get_citation(citation) # <<<<<<<<<<<<<< + * CHKERR( PetscCitationsRegister(cit, &flag) ) + * set_citation(citation, toBool(flag)) + */ + __pyx_v_flag = __pyx_f_8petsc4py_5PETSc_get_citation(__pyx_v_citation); + + /* "petsc4py/PETSc/Sys.pyx":177 + * citation = str2bytes(citation, &cit) + * cdef PetscBool flag = get_citation(citation) + * CHKERR( PetscCitationsRegister(cit, &flag) ) # <<<<<<<<<<<<<< + * set_citation(citation, toBool(flag)) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscCitationsRegister(__pyx_v_cit, (&__pyx_v_flag))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":178 + * cdef PetscBool flag = get_citation(citation) + * CHKERR( PetscCitationsRegister(cit, &flag) ) + * set_citation(citation, toBool(flag)) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_set_citation(__pyx_v_citation, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Sys.pyx":172 + * + * @classmethod + * def registerCitation(cls, citation): # <<<<<<<<<<<<<< + * if not citation: raise ValueError("empty citation") + * cdef const char *cit = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.registerCitation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_citation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":181 + * + * @classmethod + * def hasExternalPackage(cls, package): # <<<<<<<<<<<<<< + * cdef const char *cpackage = NULL + * package = str2bytes(package, &cpackage) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_33hasExternalPackage(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Sys_32hasExternalPackage[] = "Sys.hasExternalPackage(type cls, package)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Sys_33hasExternalPackage(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_package = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasExternalPackage (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_package,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_package)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasExternalPackage") < 0)) __PYX_ERR(32, 181, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_package = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasExternalPackage", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(32, 181, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Sys.hasExternalPackage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Sys_32hasExternalPackage(((PyTypeObject*)__pyx_v_cls), __pyx_v_package); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Sys_32hasExternalPackage(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_package) { + char const *__pyx_v_cpackage; + PetscBool __pyx_v_has; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasExternalPackage", 0); + __Pyx_INCREF(__pyx_v_package); + + /* "petsc4py/PETSc/Sys.pyx":182 + * @classmethod + * def hasExternalPackage(cls, package): + * cdef const char *cpackage = NULL # <<<<<<<<<<<<<< + * package = str2bytes(package, &cpackage) + * cdef PetscBool has = PETSC_FALSE + */ + __pyx_v_cpackage = NULL; + + /* "petsc4py/PETSc/Sys.pyx":183 + * def hasExternalPackage(cls, package): + * cdef const char *cpackage = NULL + * package = str2bytes(package, &cpackage) # <<<<<<<<<<<<<< + * cdef PetscBool has = PETSC_FALSE + * CHKERR( PetscHasExternalPackage(cpackage, &has) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_package, (&__pyx_v_cpackage)); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_package, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":184 + * cdef const char *cpackage = NULL + * package = str2bytes(package, &cpackage) + * cdef PetscBool has = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscHasExternalPackage(cpackage, &has) ) + * return toBool(has) + */ + __pyx_v_has = PETSC_FALSE; + + /* "petsc4py/PETSc/Sys.pyx":185 + * package = str2bytes(package, &cpackage) + * cdef PetscBool has = PETSC_FALSE + * CHKERR( PetscHasExternalPackage(cpackage, &has) ) # <<<<<<<<<<<<<< + * return toBool(has) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscHasExternalPackage(__pyx_v_cpackage, (&__pyx_v_has))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(32, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/Sys.pyx":186 + * cdef PetscBool has = PETSC_FALSE + * CHKERR( PetscHasExternalPackage(cpackage, &has) ) + * return toBool(has) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_has); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":181 + * + * @classmethod + * def hasExternalPackage(cls, package): # <<<<<<<<<<<<<< + * cdef const char *cpackage = NULL + * package = str2bytes(package, &cpackage) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Sys.hasExternalPackage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_package); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":191 + * cdef dict citations_registry = { } + * + * cdef PetscBool get_citation(object citation): # <<<<<<<<<<<<<< + * cdef bint is_set = citations_registry.get(citation) + * return PETSC_TRUE if is_set else PETSC_FALSE + */ + +static PetscBool __pyx_f_8petsc4py_5PETSc_get_citation(PyObject *__pyx_v_citation) { + int __pyx_v_is_set; + PetscBool __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PetscBool __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_citation", 0); + + /* "petsc4py/PETSc/Sys.pyx":192 + * + * cdef PetscBool get_citation(object citation): + * cdef bint is_set = citations_registry.get(citation) # <<<<<<<<<<<<<< + * return PETSC_TRUE if is_set else PETSC_FALSE + * + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_citations_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(32, 192, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_8petsc4py_5PETSc_citations_registry, __pyx_v_citation, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(32, 192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_is_set = __pyx_t_2; + + /* "petsc4py/PETSc/Sys.pyx":193 + * cdef PetscBool get_citation(object citation): + * cdef bint is_set = citations_registry.get(citation) + * return PETSC_TRUE if is_set else PETSC_FALSE # <<<<<<<<<<<<<< + * + * cdef set_citation(object citation, bint is_set): + */ + if ((__pyx_v_is_set != 0)) { + __pyx_t_3 = PETSC_TRUE; + } else { + __pyx_t_3 = PETSC_FALSE; + } + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/Sys.pyx":191 + * cdef dict citations_registry = { } + * + * cdef PetscBool get_citation(object citation): # <<<<<<<<<<<<<< + * cdef bint is_set = citations_registry.get(citation) + * return PETSC_TRUE if is_set else PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_WriteUnraisable("petsc4py.PETSc.get_citation", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = (PetscBool) 0; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Sys.pyx":195 + * return PETSC_TRUE if is_set else PETSC_FALSE + * + * cdef set_citation(object citation, bint is_set): # <<<<<<<<<<<<<< + * citations_registry[citation] = is_set + * + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_set_citation(PyObject *__pyx_v_citation, int __pyx_v_is_set) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_citation", 0); + + /* "petsc4py/PETSc/Sys.pyx":196 + * + * cdef set_citation(object citation, bint is_set): + * citations_registry[citation] = is_set # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_is_set); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(__pyx_v_8petsc4py_5PETSc_citations_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(32, 196, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_citations_registry, __pyx_v_citation, __pyx_t_1) < 0)) __PYX_ERR(32, 196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":195 + * return PETSC_TRUE if is_set else PETSC_FALSE + * + * cdef set_citation(object citation, bint is_set): # <<<<<<<<<<<<<< + * citations_registry[citation] = is_set + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.set_citation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":8 + * + * @classmethod + * def Stage(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_1Stage(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_Stage[] = "Log.Stage(type cls, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_1Stage(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("Stage (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Stage") < 0)) __PYX_ERR(33, 8, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("Stage", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 8, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.Stage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_Stage(((PyTypeObject*)__pyx_v_cls), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_Stage(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + PetscLogStage __pyx_v_stageid; + struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_stage = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Stage", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Log.pyx":9 + * @classmethod + * def Stage(cls, name): + * if not name: raise ValueError("empty name") # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 9, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (unlikely(__pyx_t_2)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(33, 9, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Log.pyx":10 + * def Stage(cls, name): + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscLogStage stageid = -1 + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Log.pyx":11 + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscLogStage stageid = -1 + * cdef LogStage stage = get_LogStage(name) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":12 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscLogStage stageid = -1 # <<<<<<<<<<<<<< + * cdef LogStage stage = get_LogStage(name) + * if stage is not None: return stage + */ + __pyx_v_stageid = -1; + + /* "petsc4py/PETSc/Log.pyx":13 + * name = str2bytes(name, &cname) + * cdef PetscLogStage stageid = -1 + * cdef LogStage stage = get_LogStage(name) # <<<<<<<<<<<<<< + * if stage is not None: return stage + * CHKERR( PetscLogStageFindId(cname, &stageid) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_get_LogStage(__pyx_v_name)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_stage = ((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":14 + * cdef PetscLogStage stageid = -1 + * cdef LogStage stage = get_LogStage(name) + * if stage is not None: return stage # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageFindId(cname, &stageid) ) + * if stageid == -1: + */ + __pyx_t_2 = (((PyObject *)__pyx_v_stage) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_stage)); + __pyx_r = ((PyObject *)__pyx_v_stage); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Log.pyx":15 + * cdef LogStage stage = get_LogStage(name) + * if stage is not None: return stage + * CHKERR( PetscLogStageFindId(cname, &stageid) ) # <<<<<<<<<<<<<< + * if stageid == -1: + * CHKERR( PetscLogStageRegister(cname, &stageid) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageFindId(__pyx_v_cname, (&__pyx_v_stageid))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 15, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":16 + * if stage is not None: return stage + * CHKERR( PetscLogStageFindId(cname, &stageid) ) + * if stageid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageRegister(cname, &stageid) ) + * stage = reg_LogStage(name, stageid) + */ + __pyx_t_1 = ((__pyx_v_stageid == -1L) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Log.pyx":17 + * CHKERR( PetscLogStageFindId(cname, &stageid) ) + * if stageid == -1: + * CHKERR( PetscLogStageRegister(cname, &stageid) ) # <<<<<<<<<<<<<< + * stage = reg_LogStage(name, stageid) + * return stage + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageRegister(__pyx_v_cname, (&__pyx_v_stageid))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 17, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":16 + * if stage is not None: return stage + * CHKERR( PetscLogStageFindId(cname, &stageid) ) + * if stageid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageRegister(cname, &stageid) ) + * stage = reg_LogStage(name, stageid) + */ + } + + /* "petsc4py/PETSc/Log.pyx":18 + * if stageid == -1: + * CHKERR( PetscLogStageRegister(cname, &stageid) ) + * stage = reg_LogStage(name, stageid) # <<<<<<<<<<<<<< + * return stage + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_reg_LogStage(__pyx_v_name, __pyx_v_stageid)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_stage, ((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":19 + * CHKERR( PetscLogStageRegister(cname, &stageid) ) + * stage = reg_LogStage(name, stageid) + * return stage # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_stage)); + __pyx_r = ((PyObject *)__pyx_v_stage); + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":8 + * + * @classmethod + * def Stage(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Log.Stage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stage); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":22 + * + * @classmethod + * def Class(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_3Class(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_2Class[] = "Log.Class(type cls, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_3Class(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("Class (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Class") < 0)) __PYX_ERR(33, 22, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("Class", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 22, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.Class", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_2Class(((PyTypeObject*)__pyx_v_cls), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_2Class(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + PetscClassId __pyx_v_classid; + struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_klass = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Class", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Log.pyx":23 + * @classmethod + * def Class(cls, name): + * if not name: raise ValueError("empty name") # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 23, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (unlikely(__pyx_t_2)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(33, 23, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Log.pyx":24 + * def Class(cls, name): + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = -1 + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Log.pyx":25 + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscLogClass classid = -1 + * cdef LogClass klass = get_LogClass(name) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":26 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = -1 # <<<<<<<<<<<<<< + * cdef LogClass klass = get_LogClass(name) + * if klass is not None: return klass + */ + __pyx_v_classid = -1; + + /* "petsc4py/PETSc/Log.pyx":27 + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = -1 + * cdef LogClass klass = get_LogClass(name) # <<<<<<<<<<<<<< + * if klass is not None: return klass + * CHKERR( PetscLogClassFindId(cname, &classid) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_get_LogClass(__pyx_v_name)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_klass = ((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":28 + * cdef PetscLogClass classid = -1 + * cdef LogClass klass = get_LogClass(name) + * if klass is not None: return klass # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassFindId(cname, &classid) ) + * if classid == -1: + */ + __pyx_t_2 = (((PyObject *)__pyx_v_klass) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_klass)); + __pyx_r = ((PyObject *)__pyx_v_klass); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Log.pyx":29 + * cdef LogClass klass = get_LogClass(name) + * if klass is not None: return klass + * CHKERR( PetscLogClassFindId(cname, &classid) ) # <<<<<<<<<<<<<< + * if classid == -1: + * CHKERR( PetscLogClassRegister(cname, &classid) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogClassFindId(__pyx_v_cname, (&__pyx_v_classid))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 29, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":30 + * if klass is not None: return klass + * CHKERR( PetscLogClassFindId(cname, &classid) ) + * if classid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassRegister(cname, &classid) ) + * klass = reg_LogClass(name, classid) + */ + __pyx_t_1 = ((__pyx_v_classid == -1L) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Log.pyx":31 + * CHKERR( PetscLogClassFindId(cname, &classid) ) + * if classid == -1: + * CHKERR( PetscLogClassRegister(cname, &classid) ) # <<<<<<<<<<<<<< + * klass = reg_LogClass(name, classid) + * return klass + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscClassIdRegister(__pyx_v_cname, (&__pyx_v_classid))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 31, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":30 + * if klass is not None: return klass + * CHKERR( PetscLogClassFindId(cname, &classid) ) + * if classid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassRegister(cname, &classid) ) + * klass = reg_LogClass(name, classid) + */ + } + + /* "petsc4py/PETSc/Log.pyx":32 + * if classid == -1: + * CHKERR( PetscLogClassRegister(cname, &classid) ) + * klass = reg_LogClass(name, classid) # <<<<<<<<<<<<<< + * return klass + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_reg_LogClass(__pyx_v_name, __pyx_v_classid)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_klass, ((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":33 + * CHKERR( PetscLogClassRegister(cname, &classid) ) + * klass = reg_LogClass(name, classid) + * return klass # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_klass)); + __pyx_r = ((PyObject *)__pyx_v_klass); + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":22 + * + * @classmethod + * def Class(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Log.Class", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_klass); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":36 + * + * @classmethod + * def Event(cls, name, klass=None): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_5Event(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_4Event[] = "Log.Event(type cls, name, klass=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_5Event(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_klass = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("Event (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_klass,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_klass); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Event") < 0)) __PYX_ERR(33, 36, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_klass = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("Event", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 36, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.Event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_4Event(((PyTypeObject*)__pyx_v_cls), __pyx_v_name, __pyx_v_klass); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_4Event(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_klass) { + char const *__pyx_v_cname; + PetscClassId __pyx_v_classid; + PetscLogEvent __pyx_v_eventid; + struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_event = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscClassId __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Event", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Log.pyx":37 + * @classmethod + * def Event(cls, name, klass=None): + * if not name: raise ValueError("empty name") # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 37, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (unlikely(__pyx_t_2)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(33, 37, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Log.pyx":38 + * def Event(cls, name, klass=None): + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = PETSC_OBJECT_CLASSID + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Log.pyx":39 + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscLogClass classid = PETSC_OBJECT_CLASSID + * cdef PetscLogEvent eventid = -1 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":40 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = PETSC_OBJECT_CLASSID # <<<<<<<<<<<<<< + * cdef PetscLogEvent eventid = -1 + * if klass is not None: classid = klass + */ + __pyx_v_classid = PETSC_OBJECT_CLASSID; + + /* "petsc4py/PETSc/Log.pyx":41 + * name = str2bytes(name, &cname) + * cdef PetscLogClass classid = PETSC_OBJECT_CLASSID + * cdef PetscLogEvent eventid = -1 # <<<<<<<<<<<<<< + * if klass is not None: classid = klass + * cdef LogEvent event = get_LogEvent(name) + */ + __pyx_v_eventid = -1; + + /* "petsc4py/PETSc/Log.pyx":42 + * cdef PetscLogClass classid = PETSC_OBJECT_CLASSID + * cdef PetscLogEvent eventid = -1 + * if klass is not None: classid = klass # <<<<<<<<<<<<<< + * cdef LogEvent event = get_LogEvent(name) + * if event is not None: return event + */ + __pyx_t_2 = (__pyx_v_klass != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyInt_As_PetscClassId(__pyx_v_klass); if (unlikely((__pyx_t_4 == ((PetscClassId)-1)) && PyErr_Occurred())) __PYX_ERR(33, 42, __pyx_L1_error) + __pyx_v_classid = __pyx_t_4; + } + + /* "petsc4py/PETSc/Log.pyx":43 + * cdef PetscLogEvent eventid = -1 + * if klass is not None: classid = klass + * cdef LogEvent event = get_LogEvent(name) # <<<<<<<<<<<<<< + * if event is not None: return event + * CHKERR( PetscLogEventFindId(cname, &eventid) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_get_LogEvent(__pyx_v_name)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_event = ((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":44 + * if klass is not None: classid = klass + * cdef LogEvent event = get_LogEvent(name) + * if event is not None: return event # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventFindId(cname, &eventid) ) + * if eventid == -1: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_event) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_event)); + __pyx_r = ((PyObject *)__pyx_v_event); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Log.pyx":45 + * cdef LogEvent event = get_LogEvent(name) + * if event is not None: return event + * CHKERR( PetscLogEventFindId(cname, &eventid) ) # <<<<<<<<<<<<<< + * if eventid == -1: + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventFindId(__pyx_v_cname, (&__pyx_v_eventid))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 45, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":46 + * if event is not None: return event + * CHKERR( PetscLogEventFindId(cname, &eventid) ) + * if eventid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) + * event = reg_LogEvent(name, eventid) + */ + __pyx_t_2 = ((__pyx_v_eventid == -1L) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Log.pyx":47 + * CHKERR( PetscLogEventFindId(cname, &eventid) ) + * if eventid == -1: + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) # <<<<<<<<<<<<<< + * event = reg_LogEvent(name, eventid) + * return event + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventRegister(__pyx_v_cname, __pyx_v_classid, (&__pyx_v_eventid))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 47, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":46 + * if event is not None: return event + * CHKERR( PetscLogEventFindId(cname, &eventid) ) + * if eventid == -1: # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) + * event = reg_LogEvent(name, eventid) + */ + } + + /* "petsc4py/PETSc/Log.pyx":48 + * if eventid == -1: + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) + * event = reg_LogEvent(name, eventid) # <<<<<<<<<<<<<< + * return event + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_reg_LogEvent(__pyx_v_name, __pyx_v_eventid)); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_event, ((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":49 + * CHKERR( PetscLogEventRegister(cname, classid, &eventid) ) + * event = reg_LogEvent(name, eventid) + * return event # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_event)); + __pyx_r = ((PyObject *)__pyx_v_event); + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":36 + * + * @classmethod + * def Event(cls, name, klass=None): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Log.Event", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_event); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":52 + * + * @classmethod + * def begin(cls, all=False): # <<<<<<<<<<<<<< + * if all: CHKERR( PetscLogAllBegin() ) + * else: CHKERR( PetscLogDefaultBegin() ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_7begin(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_6begin[] = "Log.begin(type cls, all=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_7begin(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_all = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("begin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_all,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_all); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "begin") < 0)) __PYX_ERR(33, 52, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_all = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("begin", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 52, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.begin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_6begin(((PyTypeObject*)__pyx_v_cls), __pyx_v_all); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_6begin(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_all) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("begin", 0); + + /* "petsc4py/PETSc/Log.pyx":53 + * @classmethod + * def begin(cls, all=False): + * if all: CHKERR( PetscLogAllBegin() ) # <<<<<<<<<<<<<< + * else: CHKERR( PetscLogDefaultBegin() ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_all); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 53, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogAllBegin()); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 53, __pyx_L1_error) + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Log.pyx":54 + * def begin(cls, all=False): + * if all: CHKERR( PetscLogAllBegin() ) + * else: CHKERR( PetscLogDefaultBegin() ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogDefaultBegin()); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 54, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Log.pyx":52 + * + * @classmethod + * def begin(cls, all=False): # <<<<<<<<<<<<<< + * if all: CHKERR( PetscLogAllBegin() ) + * else: CHKERR( PetscLogDefaultBegin() ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.begin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":57 + * + * @classmethod + * def view(cls, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_9view(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_8view[] = "Log.view(type cls, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_9view(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(33, 57, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 57, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(33, 57, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_8view(((PyTypeObject*)__pyx_v_cls), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_8view(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Log.pyx":58 + * @classmethod + * def view(cls, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * if vwr == NULL: vwr = PETSC_VIEWER_STDOUT_WORLD + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Log.pyx":59 + * def view(cls, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * if vwr == NULL: vwr = PETSC_VIEWER_STDOUT_WORLD + * CHKERR( PetscLogView(vwr) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Log.pyx":60 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * if vwr == NULL: vwr = PETSC_VIEWER_STDOUT_WORLD # <<<<<<<<<<<<<< + * CHKERR( PetscLogView(vwr) ) + * + */ + __pyx_t_2 = ((__pyx_v_vwr == NULL) != 0); + if (__pyx_t_2) { + __pyx_v_vwr = PETSC_VIEWER_STDOUT_WORLD; + } + + /* "petsc4py/PETSc/Log.pyx":61 + * if viewer is not None: vwr = viewer.vwr + * if vwr == NULL: vwr = PETSC_VIEWER_STDOUT_WORLD + * CHKERR( PetscLogView(vwr) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogView(__pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 61, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":57 + * + * @classmethod + * def view(cls, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":64 + * + * @classmethod + * def logFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_11logFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_10logFlops[] = "Log.logFlops(type cls, flops)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_11logFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flops = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("logFlops (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flops,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flops)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "logFlops") < 0)) __PYX_ERR(33, 64, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flops = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("logFlops", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 64, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.logFlops", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_10logFlops(((PyTypeObject*)__pyx_v_cls), __pyx_v_flops); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_10logFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flops) { + PetscLogDouble __pyx_v_cflops; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscLogDouble __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("logFlops", 0); + + /* "petsc4py/PETSc/Log.pyx":65 + * @classmethod + * def logFlops(cls, flops): + * cdef PetscLogDouble cflops=flops # <<<<<<<<<<<<<< + * CHKERR( PetscLogFlops(cflops) ) + * + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_flops); if (unlikely((__pyx_t_1 == ((PetscLogDouble)-1)) && PyErr_Occurred())) __PYX_ERR(33, 65, __pyx_L1_error) + __pyx_v_cflops = __pyx_t_1; + + /* "petsc4py/PETSc/Log.pyx":66 + * def logFlops(cls, flops): + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogFlops(__pyx_v_cflops)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 66, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":64 + * + * @classmethod + * def logFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.logFlops", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":69 + * + * @classmethod + * def addFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_13addFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_12addFlops[] = "Log.addFlops(type cls, flops)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_13addFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flops = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addFlops (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flops,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flops)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addFlops") < 0)) __PYX_ERR(33, 69, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flops = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addFlops", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 69, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.addFlops", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_12addFlops(((PyTypeObject*)__pyx_v_cls), __pyx_v_flops); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_12addFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_flops) { + PetscLogDouble __pyx_v_cflops; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscLogDouble __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addFlops", 0); + + /* "petsc4py/PETSc/Log.pyx":70 + * @classmethod + * def addFlops(cls, flops): + * cdef PetscLogDouble cflops=flops # <<<<<<<<<<<<<< + * CHKERR( PetscLogFlops(cflops) ) + * + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_flops); if (unlikely((__pyx_t_1 == ((PetscLogDouble)-1)) && PyErr_Occurred())) __PYX_ERR(33, 70, __pyx_L1_error) + __pyx_v_cflops = __pyx_t_1; + + /* "petsc4py/PETSc/Log.pyx":71 + * def addFlops(cls, flops): + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogFlops(__pyx_v_cflops)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 71, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":69 + * + * @classmethod + * def addFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.addFlops", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":74 + * + * @classmethod + * def getFlops(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=0 + * CHKERR( PetscGetFlops(&cflops) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_15getFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_14getFlops[] = "Log.getFlops(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_15getFlops(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFlops (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFlops", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFlops", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_14getFlops(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14getFlops(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PetscLogDouble __pyx_v_cflops; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFlops", 0); + + /* "petsc4py/PETSc/Log.pyx":75 + * @classmethod + * def getFlops(cls): + * cdef PetscLogDouble cflops=0 # <<<<<<<<<<<<<< + * CHKERR( PetscGetFlops(&cflops) ) + * return cflops + */ + __pyx_v_cflops = 0.0; + + /* "petsc4py/PETSc/Log.pyx":76 + * def getFlops(cls): + * cdef PetscLogDouble cflops=0 + * CHKERR( PetscGetFlops(&cflops) ) # <<<<<<<<<<<<<< + * return cflops + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGetFlops((&__pyx_v_cflops))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 76, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":77 + * cdef PetscLogDouble cflops=0 + * CHKERR( PetscGetFlops(&cflops) ) + * return cflops # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cflops); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":74 + * + * @classmethod + * def getFlops(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=0 + * CHKERR( PetscGetFlops(&cflops) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Log.getFlops", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":80 + * + * @classmethod + * def getTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble wctime=0 + * CHKERR( PetscTime(&wctime) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_17getTime(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_16getTime[] = "Log.getTime(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_17getTime(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_16getTime(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_16getTime(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PetscLogDouble __pyx_v_wctime; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTime", 0); + + /* "petsc4py/PETSc/Log.pyx":81 + * @classmethod + * def getTime(cls): + * cdef PetscLogDouble wctime=0 # <<<<<<<<<<<<<< + * CHKERR( PetscTime(&wctime) ) + * return wctime + */ + __pyx_v_wctime = 0.0; + + /* "petsc4py/PETSc/Log.pyx":82 + * def getTime(cls): + * cdef PetscLogDouble wctime=0 + * CHKERR( PetscTime(&wctime) ) # <<<<<<<<<<<<<< + * return wctime + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscTime((&__pyx_v_wctime))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 82, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":83 + * cdef PetscLogDouble wctime=0 + * CHKERR( PetscTime(&wctime) ) + * return wctime # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_wctime); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":80 + * + * @classmethod + * def getTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble wctime=0 + * CHKERR( PetscTime(&wctime) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Log.getTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":86 + * + * @classmethod + * def getCPUTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cputime=0 + * CHKERR( PetscGetCPUTime(&cputime) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_19getCPUTime(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_18getCPUTime[] = "Log.getCPUTime(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_19getCPUTime(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCPUTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCPUTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCPUTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_18getCPUTime(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_18getCPUTime(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PetscLogDouble __pyx_v_cputime; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCPUTime", 0); + + /* "petsc4py/PETSc/Log.pyx":87 + * @classmethod + * def getCPUTime(cls): + * cdef PetscLogDouble cputime=0 # <<<<<<<<<<<<<< + * CHKERR( PetscGetCPUTime(&cputime) ) + * return cputime + */ + __pyx_v_cputime = 0.0; + + /* "petsc4py/PETSc/Log.pyx":88 + * def getCPUTime(cls): + * cdef PetscLogDouble cputime=0 + * CHKERR( PetscGetCPUTime(&cputime) ) # <<<<<<<<<<<<<< + * return cputime + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGetCPUTime((&__pyx_v_cputime))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":89 + * cdef PetscLogDouble cputime=0 + * CHKERR( PetscGetCPUTime(&cputime) ) + * return cputime # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cputime); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":86 + * + * @classmethod + * def getCPUTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cputime=0 + * CHKERR( PetscGetCPUTime(&cputime) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Log.getCPUTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":92 + * + * @classmethod + * def EventDecorator(cls, name=None, klass=None): # <<<<<<<<<<<<<< + * """Decorate a function with a PETSc event. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_21EventDecorator(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_20EventDecorator[] = "Log.EventDecorator(type cls, name=None, klass=None)\nDecorate a function with a PETSc event.\n\n If no event name is specified it will default to the name of the function.\n \n Usage:\n @EventDecorator(\"My Function\")\n def myfunc():\n ...\n\n or\n\n @EventDecorator()\n def myfunc():\n ...\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_21EventDecorator(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_klass = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("EventDecorator (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_klass,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_klass); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "EventDecorator") < 0)) __PYX_ERR(33, 92, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_klass = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("EventDecorator", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 92, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_20EventDecorator(((PyTypeObject*)__pyx_v_cls), __pyx_v_name, __pyx_v_klass); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_1decorator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_3Log_14EventDecorator_1decorator = {"decorator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_1decorator, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_1decorator(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_func = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("decorator (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "decorator") < 0)) __PYX_ERR(33, 108, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_func = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("decorator", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 108, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator.decorator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_decorator(__pyx_self, __pyx_v_func); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":110 + * def decorator(func): + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): # <<<<<<<<<<<<<< + * if name: + * name_ = name + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_1wrapped_func(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_1wrapped_func = {"wrapped_func", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_1wrapped_func, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_1wrapped_func(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("wrapped_func (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "wrapped_func", 1))) return NULL; + __pyx_v_kwargs = (__pyx_kwds) ? PyDict_Copy(__pyx_kwds) : PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + __Pyx_INCREF(__pyx_args); + __pyx_v_args = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_wrapped_func(__pyx_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_wrapped_func(PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *__pyx_cur_scope; + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *__pyx_outer_scope; + PyObject *__pyx_v_name_ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("wrapped_func", 0); + __pyx_outer_scope = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *) __Pyx_CyFunction_GetClosure(__pyx_self); + __pyx_cur_scope = __pyx_outer_scope; + + /* "petsc4py/PETSc/Log.pyx":111 + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + * if name: # <<<<<<<<<<<<<< + * name_ = name + * else: + */ + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_name)) { __Pyx_RaiseClosureNameError("name"); __PYX_ERR(33, 111, __pyx_L1_error) } + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_name); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 111, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Log.pyx":112 + * def wrapped_func(*args, **kwargs): + * if name: + * name_ = name # <<<<<<<<<<<<<< + * else: + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) + */ + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_name)) { __Pyx_RaiseClosureNameError("name"); __PYX_ERR(33, 112, __pyx_L1_error) } + __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_name); + __pyx_v_name_ = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_name; + + /* "petsc4py/PETSc/Log.pyx":111 + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + * if name: # <<<<<<<<<<<<<< + * name_ = name + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Log.pyx":114 + * name_ = name + * else: + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) # <<<<<<<<<<<<<< + * with cls.Event(name_, klass): + * return func(*args, **kwargs) + */ + /*else*/ { + if (unlikely(!__pyx_cur_scope->__pyx_v_func)) { __Pyx_RaiseClosureNameError("func"); __PYX_ERR(33, 114, __pyx_L1_error) } + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_func, __pyx_n_s_module); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely(!__pyx_cur_scope->__pyx_v_func)) { __Pyx_RaiseClosureNameError("func"); __PYX_ERR(33, 114, __pyx_L1_error) } + __pyx_t_3 = __pyx_cur_scope->__pyx_v_func; + __Pyx_INCREF(__pyx_t_3); + if (unlikely(!__pyx_cur_scope->__pyx_v_func)) { __Pyx_RaiseClosureNameError("func"); __PYX_ERR(33, 114, __pyx_L1_error) } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_func, __pyx_n_s_name_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_GetAttr3(__pyx_t_3, __pyx_n_s_qualname, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_5); + PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyString_Join(__pyx_kp_s__20, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_name_ = __pyx_t_5; + __pyx_t_5 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Log.pyx":115 + * else: + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) + * with cls.Event(name_, klass): # <<<<<<<<<<<<<< + * return func(*args, **kwargs) + * return wrapped_func + */ + /*with:*/ { + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_cls)) { __Pyx_RaiseClosureNameError("cls"); __PYX_ERR(33, 115, __pyx_L1_error) } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_cur_scope->__pyx_outer_scope->__pyx_v_cls), __pyx_n_s_Event); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass)) { __Pyx_RaiseClosureNameError("klass"); __PYX_ERR(33, 115, __pyx_L1_error) } + __pyx_t_2 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name_, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass}; + __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_name_, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass}; + __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_GOTREF(__pyx_t_5); + } else + #endif + { + __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__pyx_t_2) { + __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL; + } + __Pyx_INCREF(__pyx_v_name_); + __Pyx_GIVEREF(__pyx_v_name_); + PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_v_name_); + __Pyx_INCREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass); + PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_klass); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_7 = __Pyx_PyObject_LookupSpecial(__pyx_t_5, __pyx_n_s_exit); if (unlikely(!__pyx_t_7)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = __Pyx_PyObject_LookupSpecial(__pyx_t_5, __pyx_n_s_enter); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 115, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 115, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /*try:*/ { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + /*try:*/ { + + /* "petsc4py/PETSc/Log.pyx":116 + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) + * with cls.Event(name_, klass): + * return func(*args, **kwargs) # <<<<<<<<<<<<<< + * return wrapped_func + * return decorator + */ + __Pyx_XDECREF(__pyx_r); + if (unlikely(!__pyx_cur_scope->__pyx_v_func)) { __Pyx_RaiseClosureNameError("func"); __PYX_ERR(33, 116, __pyx_L8_error) } + __pyx_t_5 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 116, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_cur_scope->__pyx_v_func, __pyx_v_args, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 116, __pyx_L8_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L12_try_return; + + /* "petsc4py/PETSc/Log.pyx":115 + * else: + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) + * with cls.Event(name_, klass): # <<<<<<<<<<<<<< + * return func(*args, **kwargs) + * return wrapped_func + */ + } + __pyx_L8_error:; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + /*except:*/ { + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_5, &__pyx_t_3) < 0) __PYX_ERR(33, 115, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_Pack(3, __pyx_t_4, __pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 115, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_11)) __PYX_ERR(33, 115, __pyx_L10_except_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__pyx_t_1 < 0) __PYX_ERR(33, 115, __pyx_L10_except_error) + __pyx_t_12 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_12) { + __Pyx_GIVEREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ErrRestoreWithState(__pyx_t_4, __pyx_t_5, __pyx_t_3); + __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_3 = 0; + __PYX_ERR(33, 115, __pyx_L10_except_error) + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L9_exception_handled; + } + __pyx_L10_except_error:; + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + goto __pyx_L1_error; + __pyx_L12_try_return:; + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + goto __pyx_L5_return; + __pyx_L9_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_7) { + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__21, NULL); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_10)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + goto __pyx_L7; + } + __pyx_L5_return: { + __pyx_t_10 = __pyx_r; + __pyx_r = 0; + if (__pyx_t_7) { + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_tuple__21, NULL); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __pyx_r = __pyx_t_10; + __pyx_t_10 = 0; + goto __pyx_L0; + } + __pyx_L7:; + } + goto __pyx_L17; + __pyx_L4_error:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L1_error; + __pyx_L17:; + } + + /* "petsc4py/PETSc/Log.pyx":110 + * def decorator(func): + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): # <<<<<<<<<<<<<< + * if name: + * name_ = name + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator.decorator.wrapped_func", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name_); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_14EventDecorator_decorator(PyObject *__pyx_self, PyObject *__pyx_v_func) { + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *__pyx_cur_scope; + PyObject *__pyx_v_wrapped_func = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("decorator", 0); + __pyx_cur_scope = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(__pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct_1_decorator, __pyx_empty_tuple, NULL); + if (unlikely(!__pyx_cur_scope)) { + __pyx_cur_scope = ((struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)Py_None); + __Pyx_INCREF(Py_None); + __PYX_ERR(33, 108, __pyx_L1_error) + } else { + __Pyx_GOTREF(__pyx_cur_scope); + } + __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *) __Pyx_CyFunction_GetClosure(__pyx_self); + __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope)); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope); + __pyx_cur_scope->__pyx_v_func = __pyx_v_func; + __Pyx_INCREF(__pyx_cur_scope->__pyx_v_func); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_func); + + /* "petsc4py/PETSc/Log.pyx":109 + * """ + * def decorator(func): + * @functools.wraps(func) # <<<<<<<<<<<<<< + * def wrapped_func(*args, **kwargs): + * if name: + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_functools); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_wraps); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_cur_scope->__pyx_v_func) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_cur_scope->__pyx_v_func); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Log.pyx":110 + * def decorator(func): + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): # <<<<<<<<<<<<<< + * if name: + * name_ = name + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_3Log_14EventDecorator_9decorator_1wrapped_func, 0, __pyx_n_s_EventDecorator_locals_decorator, ((PyObject*)__pyx_cur_scope), __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__23)); if (unlikely(!__pyx_t_4)) __PYX_ERR(33, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_wrapped_func = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":117 + * with cls.Event(name_, klass): + * return func(*args, **kwargs) + * return wrapped_func # <<<<<<<<<<<<<< + * return decorator + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_wrapped_func); + __pyx_r = __pyx_v_wrapped_func; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator.decorator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_wrapped_func); + __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":92 + * + * @classmethod + * def EventDecorator(cls, name=None, klass=None): # <<<<<<<<<<<<<< + * """Decorate a function with a PETSc event. + * + */ + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_20EventDecorator(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_klass) { + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *__pyx_cur_scope; + PyObject *__pyx_v_decorator = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("EventDecorator", 0); + __pyx_cur_scope = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(__pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator, __pyx_empty_tuple, NULL); + if (unlikely(!__pyx_cur_scope)) { + __pyx_cur_scope = ((struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)Py_None); + __Pyx_INCREF(Py_None); + __PYX_ERR(33, 92, __pyx_L1_error) + } else { + __Pyx_GOTREF(__pyx_cur_scope); + } + __pyx_cur_scope->__pyx_v_cls = __pyx_v_cls; + __Pyx_INCREF(__pyx_cur_scope->__pyx_v_cls); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_cls); + __pyx_cur_scope->__pyx_v_name = __pyx_v_name; + __Pyx_INCREF(__pyx_cur_scope->__pyx_v_name); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_name); + __pyx_cur_scope->__pyx_v_klass = __pyx_v_klass; + __Pyx_INCREF(__pyx_cur_scope->__pyx_v_klass); + __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_klass); + + /* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ + __pyx_t_1 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_3Log_14EventDecorator_1decorator, 0, __pyx_n_s_EventDecorator_locals_decorator_2, ((PyObject*)__pyx_cur_scope), __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__25)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_decorator = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":118 + * return func(*args, **kwargs) + * return wrapped_func + * return decorator # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_decorator); + __pyx_r = __pyx_v_decorator; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":92 + * + * @classmethod + * def EventDecorator(cls, name=None, klass=None): # <<<<<<<<<<<<<< + * """Decorate a function with a PETSc event. + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Log.EventDecorator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_decorator); + __Pyx_DECREF(((PyObject *)__pyx_cur_scope)); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":121 + * + * @classmethod + * def isActive(cls): # <<<<<<<<<<<<<< + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + * cdef PetscBool flag = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_23isActive(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Log_22isActive[] = "Log.isActive(type cls)\nReturn ``True`` if logging is switched on and ``False`` otherwise."; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Log_23isActive(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isActive (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isActive", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isActive", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Log_22isActive(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Log_22isActive(CYTHON_UNUSED PyTypeObject *__pyx_v_cls) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isActive", 0); + + /* "petsc4py/PETSc/Log.pyx":123 + * def isActive(cls): + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscLogIsActive(&flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":124 + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogIsActive(&flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogIsActive((&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 124, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":125 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogIsActive(&flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":121 + * + * @classmethod + * def isActive(cls): # <<<<<<<<<<<<<< + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Log.isActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":133 + * cdef readonly PetscLogStage id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = 0 + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage___cinit__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogStage___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Log.pyx":134 + * + * def __cinit__(self): + * self.id = 0 # <<<<<<<<<<<<<< + * + * def __int__(self): + */ + __pyx_v_self->id = 0; + + /* "petsc4py/PETSc/Log.pyx":133 + * cdef readonly PetscLogStage id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = 0 + * + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":136 + * self.id = 0 + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_3__int__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_3__int__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__int__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_2__int__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__int__", 0); + + /* "petsc4py/PETSc/Log.pyx":137 + * + * def __int__(self): + * return self.id # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_v_self->id)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":136 + * self.id = 0 + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":139 + * return self.id + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.push() + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_4__enter__[] = "LogStage.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_4__enter__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_4__enter__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/Log.pyx":140 + * + * def __enter__(self): + * self.push() # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_push); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":141 + * def __enter__(self): + * self.push() + * return self # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":139 + * return self.id + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.push() + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":143 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.pop() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_6__exit__[] = "LogStage.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_6__exit__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_6__exit__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/Log.pyx":144 + * + * def __exit__(self, *exc): + * self.pop() # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":143 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.pop() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":148 + * # + * + * def push(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStagePush(self.id) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_9push(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_8push[] = "LogStage.push(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_9push(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("push (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("push", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "push", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_8push(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_8push(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("push", 0); + + /* "petsc4py/PETSc/Log.pyx":149 + * + * def push(self): + * CHKERR( PetscLogStagePush(self.id) ) # <<<<<<<<<<<<<< + * + * def pop(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStagePush(__pyx_v_self->id)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":148 + * # + * + * def push(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStagePush(self.id) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.push", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":151 + * CHKERR( PetscLogStagePush(self.id) ) + * + * def pop(self): # <<<<<<<<<<<<<< + * self # unused + * CHKERR( PetscLogStagePop() ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_11pop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_10pop[] = "LogStage.pop(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_11pop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pop (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("pop", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "pop", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_10pop(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_10pop(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pop", 0); + + /* "petsc4py/PETSc/Log.pyx":152 + * + * def pop(self): + * self # unused # <<<<<<<<<<<<<< + * CHKERR( PetscLogStagePop() ) + * + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/Log.pyx":153 + * def pop(self): + * self # unused + * CHKERR( PetscLogStagePop() ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStagePop()); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":151 + * CHKERR( PetscLogStagePush(self.id) ) + * + * def pop(self): # <<<<<<<<<<<<<< + * self # unused + * CHKERR( PetscLogStagePop() ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.pop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":157 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogStageFindName(self.id, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_13getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_12getName[] = "LogStage.getName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_13getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_12getName(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_12getName(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getName", 0); + + /* "petsc4py/PETSc/Log.pyx":158 + * + * def getName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageFindName(self.id, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Log.pyx":159 + * def getName(self): + * cdef const char *cval = NULL + * CHKERR( PetscLogStageFindName(self.id, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageFindName(__pyx_v_self->id, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":160 + * cdef const char *cval = NULL + * CHKERR( PetscLogStageFindName(self.id, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * property name: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":157 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogStageFindName(self.id, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.getName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":163 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_4name___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":164 + * property name: + * def __get__(self): + * return self.getName() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self; value; # unused + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getName); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":163 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":165 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_4name_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":166 + * return self.getName() + * def __set__(self, value): + * self; value; # unused # <<<<<<<<<<<<<< + * raise TypeError("readonly attribute") + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_value); + + /* "petsc4py/PETSc/Log.pyx":167 + * def __set__(self, value): + * self; value; # unused + * raise TypeError("readonly attribute") # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(33, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":165 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":171 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetActive(self.id, PETSC_TRUE) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_15activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_14activate[] = "LogStage.activate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_15activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("activate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("activate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "activate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_14activate(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_14activate(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("activate", 0); + + /* "petsc4py/PETSc/Log.pyx":172 + * + * def activate(self): + * CHKERR( PetscLogStageSetActive(self.id, PETSC_TRUE) ) # <<<<<<<<<<<<<< + * + * def deactivate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageSetActive(__pyx_v_self->id, PETSC_TRUE)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":171 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetActive(self.id, PETSC_TRUE) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.activate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":174 + * CHKERR( PetscLogStageSetActive(self.id, PETSC_TRUE) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetActive(self.id, PETSC_FALSE) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_17deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_16deactivate[] = "LogStage.deactivate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_17deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("deactivate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("deactivate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "deactivate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_16deactivate(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_16deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("deactivate", 0); + + /* "petsc4py/PETSc/Log.pyx":175 + * + * def deactivate(self): + * CHKERR( PetscLogStageSetActive(self.id, PETSC_FALSE) ) # <<<<<<<<<<<<<< + * + * def getActive(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageSetActive(__pyx_v_self->id, PETSC_FALSE)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 175, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":174 + * CHKERR( PetscLogStageSetActive(self.id, PETSC_TRUE) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetActive(self.id, PETSC_FALSE) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.deactivate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":177 + * CHKERR( PetscLogStageSetActive(self.id, PETSC_FALSE) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetActive(self.id, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_19getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_18getActive[] = "LogStage.getActive(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_19getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getActive (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getActive", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getActive", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_18getActive(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_18getActive(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getActive", 0); + + /* "petsc4py/PETSc/Log.pyx":178 + * + * def getActive(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageGetActive(self.id, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":179 + * def getActive(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetActive(self.id, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageGetActive(__pyx_v_self->id, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 179, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":180 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetActive(self.id, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setActive(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":177 + * CHKERR( PetscLogStageSetActive(self.id, PETSC_FALSE) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetActive(self.id, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.getActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":182 + * return toBool(flag) + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_21setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_20setActive[] = "LogStage.setActive(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_21setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setActive (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setActive") < 0)) __PYX_ERR(33, 182, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setActive", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 182, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_20setActive(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_20setActive(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_tval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setActive", 0); + + /* "petsc4py/PETSc/Log.pyx":183 + * + * def setActive(self, flag): + * cdef PetscBool tval = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogStageSetActive(self.id, tval) ) + */ + __pyx_v_tval = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":184 + * def setActive(self, flag): + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetActive(self.id, tval) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 184, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_tval = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Log.pyx":185 + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogStageSetActive(self.id, tval) ) # <<<<<<<<<<<<<< + * + * property active: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageSetActive(__pyx_v_self->id, __pyx_v_tval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":182 + * return toBool(flag) + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":188 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_6active_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_6active_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_6active___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":189 + * property active: + * def __get__(self): + * return self.getActive() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setActive(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":188 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":190 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_6active_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":191 + * return self.getActive() + * def __set__(self, value): + * self.setActive(value) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":190 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.active.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":195 + * # + * + * def getVisible(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetVisible(self.id, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_23getVisible(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_22getVisible[] = "LogStage.getVisible(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_23getVisible(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVisible (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVisible", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVisible", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_22getVisible(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_22getVisible(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVisible", 0); + + /* "petsc4py/PETSc/Log.pyx":196 + * + * def getVisible(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageGetVisible(self.id, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":197 + * def getVisible(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetVisible(self.id, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageGetVisible(__pyx_v_self->id, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 197, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":198 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetVisible(self.id, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setVisible(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":195 + * # + * + * def getVisible(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( PetscLogStageGetVisible(self.id, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.getVisible", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":200 + * return toBool(flag) + * + * def setVisible(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_25setVisible(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogStage_24setVisible[] = "LogStage.setVisible(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_25setVisible(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVisible (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVisible") < 0)) __PYX_ERR(33, 200, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVisible", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 200, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.setVisible", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_24setVisible(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_24setVisible(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_tval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVisible", 0); + + /* "petsc4py/PETSc/Log.pyx":201 + * + * def setVisible(self, flag): + * cdef PetscBool tval = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogStageSetVisible(self.id, tval) ) + */ + __pyx_v_tval = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":202 + * def setVisible(self, flag): + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PetscLogStageSetVisible(self.id, tval) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 202, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_tval = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Log.pyx":203 + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogStageSetVisible(self.id, tval) ) # <<<<<<<<<<<<<< + * + * property visible: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogStageSetVisible(__pyx_v_self->id, __pyx_v_tval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":200 + * return toBool(flag) + * + * def setVisible(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.setVisible", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":206 + * + * property visible: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getVisible() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_7visible___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_7visible___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":207 + * property visible: + * def __get__(self): + * return self.getVisible() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setVisible(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getVisible); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":206 + * + * property visible: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getVisible() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.visible.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":208 + * def __get__(self): + * return self.getVisible() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setVisible(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_7visible_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogStage_7visible_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":209 + * return self.getVisible() + * def __set__(self, value): + * self.setVisible(value) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setVisible); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":208 + * def __get__(self): + * return self.getVisible() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setVisible(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.visible.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":131 + * cdef class LogStage: + * + * cdef readonly PetscLogStage id # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_2id_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogStage_2id_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogStage_2id___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogStage_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscLogStage(__pyx_v_self->id); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogStage.id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":214 + * cdef dict stage_registry = { } + * + * cdef LogStage get_LogStage(object name): # <<<<<<<<<<<<<< + * return stage_registry.get(name) + * + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_f_8petsc4py_5PETSc_get_LogStage(PyObject *__pyx_v_name) { + struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_LogStage", 0); + + /* "petsc4py/PETSc/Log.pyx":215 + * + * cdef LogStage get_LogStage(object name): + * return stage_registry.get(name) # <<<<<<<<<<<<<< + * + * cdef LogStage reg_LogStage(object name, PetscLogStage stageid): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + if (unlikely(__pyx_v_8petsc4py_5PETSc_stage_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(33, 215, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_8petsc4py_5PETSc_stage_registry, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_LogStage))))) __PYX_ERR(33, 215, __pyx_L1_error) + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":214 + * cdef dict stage_registry = { } + * + * cdef LogStage get_LogStage(object name): # <<<<<<<<<<<<<< + * return stage_registry.get(name) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.get_LogStage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":217 + * return stage_registry.get(name) + * + * cdef LogStage reg_LogStage(object name, PetscLogStage stageid): # <<<<<<<<<<<<<< + * cdef LogStage stage = LogStage() + * stage.id = stageid + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_f_8petsc4py_5PETSc_reg_LogStage(PyObject *__pyx_v_name, PetscLogStage __pyx_v_stageid) { + struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_v_stage = 0; + struct __pyx_obj_8petsc4py_5PETSc_LogStage *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reg_LogStage", 0); + + /* "petsc4py/PETSc/Log.pyx":218 + * + * cdef LogStage reg_LogStage(object name, PetscLogStage stageid): + * cdef LogStage stage = LogStage() # <<<<<<<<<<<<<< + * stage.id = stageid + * stage_registry[name] = stage + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LogStage)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_stage = ((struct __pyx_obj_8petsc4py_5PETSc_LogStage *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":219 + * cdef LogStage reg_LogStage(object name, PetscLogStage stageid): + * cdef LogStage stage = LogStage() + * stage.id = stageid # <<<<<<<<<<<<<< + * stage_registry[name] = stage + * return stage + */ + __pyx_v_stage->id = __pyx_v_stageid; + + /* "petsc4py/PETSc/Log.pyx":220 + * cdef LogStage stage = LogStage() + * stage.id = stageid + * stage_registry[name] = stage # <<<<<<<<<<<<<< + * return stage + * + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_stage_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(33, 220, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_stage_registry, __pyx_v_name, ((PyObject *)__pyx_v_stage)) < 0)) __PYX_ERR(33, 220, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":221 + * stage.id = stageid + * stage_registry[name] = stage + * return stage # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_stage)); + __pyx_r = __pyx_v_stage; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":217 + * return stage_registry.get(name) + * + * cdef LogStage reg_LogStage(object name, PetscLogStage stageid): # <<<<<<<<<<<<<< + * cdef LogStage stage = LogStage() + * stage.id = stageid + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.reg_LogStage", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_stage); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":229 + * cdef readonly PetscLogClass id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = PETSC_OBJECT_CLASSID + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass___cinit__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogClass___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Log.pyx":230 + * + * def __cinit__(self): + * self.id = PETSC_OBJECT_CLASSID # <<<<<<<<<<<<<< + * + * def __int__(self): + */ + __pyx_v_self->id = PETSC_OBJECT_CLASSID; + + /* "petsc4py/PETSc/Log.pyx":229 + * cdef readonly PetscLogClass id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = PETSC_OBJECT_CLASSID + * + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":232 + * self.id = PETSC_OBJECT_CLASSID + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_3__int__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_3__int__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__int__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_2__int__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__int__", 0); + + /* "petsc4py/PETSc/Log.pyx":233 + * + * def __int__(self): + * return self.id # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_v_self->id)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":232 + * self.id = PETSC_OBJECT_CLASSID + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":237 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogClassFindName(self.id, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_5getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogClass_4getName[] = "LogClass.getName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_5getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_4getName(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_4getName(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getName", 0); + + /* "petsc4py/PETSc/Log.pyx":238 + * + * def getName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassFindName(self.id, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Log.pyx":239 + * def getName(self): + * cdef const char *cval = NULL + * CHKERR( PetscLogClassFindName(self.id, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogClassFindName(__pyx_v_self->id, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 239, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":240 + * cdef const char *cval = NULL + * CHKERR( PetscLogClassFindName(self.id, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * property name: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":237 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogClassFindName(self.id, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.getName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":243 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_4name___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":244 + * property name: + * def __get__(self): + * return self.getName() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self; value; # unused + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getName); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":243 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":245 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_4name_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogClass_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":246 + * return self.getName() + * def __set__(self, value): + * self; value; # unused # <<<<<<<<<<<<<< + * raise TypeError("readonly attribute") + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_value); + + /* "petsc4py/PETSc/Log.pyx":247 + * def __set__(self, value): + * self; value; # unused + * raise TypeError("readonly attribute") # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(33, 247, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":245 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":251 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassActivate(self.id) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_7activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogClass_6activate[] = "LogClass.activate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_7activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("activate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("activate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "activate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_6activate(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_6activate(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("activate", 0); + + /* "petsc4py/PETSc/Log.pyx":252 + * + * def activate(self): + * CHKERR( PetscLogClassActivate(self.id) ) # <<<<<<<<<<<<<< + * + * def deactivate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventActivateClass(__pyx_v_self->id)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 252, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":251 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassActivate(self.id) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.activate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":254 + * CHKERR( PetscLogClassActivate(self.id) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassDeactivate(self.id) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_9deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogClass_8deactivate[] = "LogClass.deactivate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_9deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("deactivate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("deactivate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "deactivate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_8deactivate(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_8deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("deactivate", 0); + + /* "petsc4py/PETSc/Log.pyx":255 + * + * def deactivate(self): + * CHKERR( PetscLogClassDeactivate(self.id) ) # <<<<<<<<<<<<<< + * + * def getActive(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventDeactivateClass(__pyx_v_self->id)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 255, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":254 + * CHKERR( PetscLogClassActivate(self.id) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassDeactivate(self.id) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.deactivate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":257 + * CHKERR( PetscLogClassDeactivate(self.id) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_11getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogClass_10getActive[] = "LogClass.getActive(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_11getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getActive (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getActive", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getActive", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_10getActive(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_10getActive(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getActive", 0); + + /* "petsc4py/PETSc/Log.pyx":258 + * + * def getActive(self): + * self # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/Log.pyx":259 + * def getActive(self): + * self # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def setActive(self, flag): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(33, 259, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":257 + * CHKERR( PetscLogClassDeactivate(self.id) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.getActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":261 + * raise NotImplementedError + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * if flag: + * CHKERR( PetscLogClassActivate(self.id) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_13setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogClass_12setActive[] = "LogClass.setActive(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_13setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setActive (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setActive") < 0)) __PYX_ERR(33, 261, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setActive", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 261, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_12setActive(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_12setActive(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_flag) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setActive", 0); + + /* "petsc4py/PETSc/Log.pyx":262 + * + * def setActive(self, flag): + * if flag: # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassActivate(self.id) ) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 262, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Log.pyx":263 + * def setActive(self, flag): + * if flag: + * CHKERR( PetscLogClassActivate(self.id) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( PetscLogClassDeactivate(self.id) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventActivateClass(__pyx_v_self->id)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 263, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":262 + * + * def setActive(self, flag): + * if flag: # <<<<<<<<<<<<<< + * CHKERR( PetscLogClassActivate(self.id) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Log.pyx":265 + * CHKERR( PetscLogClassActivate(self.id) ) + * else: + * CHKERR( PetscLogClassDeactivate(self.id) ) # <<<<<<<<<<<<<< + * + * property active: + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventDeactivateClass(__pyx_v_self->id)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 265, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Log.pyx":261 + * raise NotImplementedError + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * if flag: + * CHKERR( PetscLogClassActivate(self.id) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":268 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_6active_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_6active_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_6active___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":269 + * property active: + * def __get__(self): + * return self.getActive() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setActive(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":268 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":270 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogClass_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_6active_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogClass_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":271 + * return self.getActive() + * def __set__(self, value): + * self.setActive(value) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":270 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.active.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":227 + * cdef class LogClass: + * + * cdef readonly PetscLogClass id # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_2id_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogClass_2id_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogClass_2id___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogClass_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscClassId(__pyx_v_self->id); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogClass.id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":276 + * cdef dict class_registry = { } + * + * cdef LogClass get_LogClass(object name): # <<<<<<<<<<<<<< + * return class_registry.get(name) + * + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_f_8petsc4py_5PETSc_get_LogClass(PyObject *__pyx_v_name) { + struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_LogClass", 0); + + /* "petsc4py/PETSc/Log.pyx":277 + * + * cdef LogClass get_LogClass(object name): + * return class_registry.get(name) # <<<<<<<<<<<<<< + * + * cdef LogClass reg_LogClass(object name, PetscLogClass classid): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + if (unlikely(__pyx_v_8petsc4py_5PETSc_class_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(33, 277, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_8petsc4py_5PETSc_class_registry, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_LogClass))))) __PYX_ERR(33, 277, __pyx_L1_error) + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":276 + * cdef dict class_registry = { } + * + * cdef LogClass get_LogClass(object name): # <<<<<<<<<<<<<< + * return class_registry.get(name) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.get_LogClass", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":279 + * return class_registry.get(name) + * + * cdef LogClass reg_LogClass(object name, PetscLogClass classid): # <<<<<<<<<<<<<< + * cdef LogClass klass = LogClass() + * klass.id = classid + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_f_8petsc4py_5PETSc_reg_LogClass(PyObject *__pyx_v_name, PetscClassId __pyx_v_classid) { + struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_v_klass = 0; + struct __pyx_obj_8petsc4py_5PETSc_LogClass *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reg_LogClass", 0); + + /* "petsc4py/PETSc/Log.pyx":280 + * + * cdef LogClass reg_LogClass(object name, PetscLogClass classid): + * cdef LogClass klass = LogClass() # <<<<<<<<<<<<<< + * klass.id = classid + * class_registry[name] = klass + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LogClass)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_klass = ((struct __pyx_obj_8petsc4py_5PETSc_LogClass *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":281 + * cdef LogClass reg_LogClass(object name, PetscLogClass classid): + * cdef LogClass klass = LogClass() + * klass.id = classid # <<<<<<<<<<<<<< + * class_registry[name] = klass + * return klass + */ + __pyx_v_klass->id = __pyx_v_classid; + + /* "petsc4py/PETSc/Log.pyx":282 + * cdef LogClass klass = LogClass() + * klass.id = classid + * class_registry[name] = klass # <<<<<<<<<<<<<< + * return klass + * + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_class_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(33, 282, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_class_registry, __pyx_v_name, ((PyObject *)__pyx_v_klass)) < 0)) __PYX_ERR(33, 282, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":283 + * klass.id = classid + * class_registry[name] = klass + * return klass # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_klass)); + __pyx_r = __pyx_v_klass; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":279 + * return class_registry.get(name) + * + * cdef LogClass reg_LogClass(object name, PetscLogClass classid): # <<<<<<<<<<<<<< + * cdef LogClass klass = LogClass() + * klass.id = classid + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.reg_LogClass", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_klass); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":291 + * cdef readonly PetscLogEvent id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = 0 + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent___cinit__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent___cinit__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Log.pyx":292 + * + * def __cinit__(self): + * self.id = 0 # <<<<<<<<<<<<<< + * + * def __int__(self): + */ + __pyx_v_self->id = 0; + + /* "petsc4py/PETSc/Log.pyx":291 + * cdef readonly PetscLogEvent id + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.id = 0 + * + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":294 + * self.id = 0 + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_3__int__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_3__int__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__int__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_2__int__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_2__int__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__int__", 0); + + /* "petsc4py/PETSc/Log.pyx":295 + * + * def __int__(self): + * return self.id # <<<<<<<<<<<<<< + * + * def __enter__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(((int)__pyx_v_self->id)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":294 + * self.id = 0 + * + * def __int__(self): # <<<<<<<<<<<<<< + * return self.id + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.__int__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":297 + * return self.id + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.begin() + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_4__enter__[] = "LogEvent.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_5__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_4__enter__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_4__enter__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/Log.pyx":298 + * + * def __enter__(self): + * self.begin() # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_begin); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":299 + * def __enter__(self): + * self.begin() + * return self # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":297 + * return self.id + * + * def __enter__(self): # <<<<<<<<<<<<<< + * self.begin() + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":301 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.end() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_6__exit__[] = "LogEvent.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_7__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_6__exit__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_6__exit__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/Log.pyx":302 + * + * def __exit__(self, *exc): + * self.end() # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_end); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":301 + * return self + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * self.end() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":306 + * # + * + * def begin(self, *objs): # <<<<<<<<<<<<<< + * cdef PetscObject o[4] + * event_args2objs(objs, o) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_9begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_8begin[] = "LogEvent.begin(self, *objs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_9begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("begin (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "begin", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_objs = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_8begin(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_objs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_objs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_8begin(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_objs) { + PetscObject __pyx_v_o[4]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("begin", 0); + + /* "petsc4py/PETSc/Log.pyx":308 + * def begin(self, *objs): + * cdef PetscObject o[4] + * event_args2objs(objs, o) # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventBegin(self.id, o[0], o[1], o[2], o[3]) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_event_args2objs(__pyx_v_objs, __pyx_v_o); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(33, 308, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":309 + * cdef PetscObject o[4] + * event_args2objs(objs, o) + * CHKERR( PetscLogEventBegin(self.id, o[0], o[1], o[2], o[3]) ) # <<<<<<<<<<<<<< + * + * def end(self, *objs): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventBegin(__pyx_v_self->id, (__pyx_v_o[0]), (__pyx_v_o[1]), (__pyx_v_o[2]), (__pyx_v_o[3]))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 309, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":306 + * # + * + * def begin(self, *objs): # <<<<<<<<<<<<<< + * cdef PetscObject o[4] + * event_args2objs(objs, o) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.begin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":311 + * CHKERR( PetscLogEventBegin(self.id, o[0], o[1], o[2], o[3]) ) + * + * def end(self, *objs): # <<<<<<<<<<<<<< + * cdef PetscObject o[4] + * event_args2objs(objs, o) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_11end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_10end[] = "LogEvent.end(self, *objs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_11end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objs = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("end (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "end", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_objs = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_10end(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_objs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_objs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_10end(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_objs) { + PetscObject __pyx_v_o[4]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("end", 0); + + /* "petsc4py/PETSc/Log.pyx":313 + * def end(self, *objs): + * cdef PetscObject o[4] + * event_args2objs(objs, o) # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventEnd(self.id, o[0], o[1], o[2], o[3]) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_event_args2objs(__pyx_v_objs, __pyx_v_o); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(33, 313, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":314 + * cdef PetscObject o[4] + * event_args2objs(objs, o) + * CHKERR( PetscLogEventEnd(self.id, o[0], o[1], o[2], o[3]) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventEnd(__pyx_v_self->id, (__pyx_v_o[0]), (__pyx_v_o[1]), (__pyx_v_o[2]), (__pyx_v_o[3]))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 314, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":311 + * CHKERR( PetscLogEventBegin(self.id, o[0], o[1], o[2], o[3]) ) + * + * def end(self, *objs): # <<<<<<<<<<<<<< + * cdef PetscObject o[4] + * event_args2objs(objs, o) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.end", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":318 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogEventFindName(self.id, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_13getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_12getName[] = "LogEvent.getName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_13getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_12getName(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_12getName(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getName", 0); + + /* "petsc4py/PETSc/Log.pyx":319 + * + * def getName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventFindName(self.id, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Log.pyx":320 + * def getName(self): + * cdef const char *cval = NULL + * CHKERR( PetscLogEventFindName(self.id, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventFindName(__pyx_v_self->id, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":321 + * cdef const char *cval = NULL + * CHKERR( PetscLogEventFindName(self.id, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * property name: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":318 + * # + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscLogEventFindName(self.id, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.getName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":324 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_4name___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_4name___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":325 + * property name: + * def __get__(self): + * return self.getName() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self; value; # unused + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getName); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":324 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":326 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_4name_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_4name_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":327 + * return self.getName() + * def __set__(self, value): + * self; value; # unused # <<<<<<<<<<<<<< + * raise TypeError("readonly attribute") + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_value); + + /* "petsc4py/PETSc/Log.pyx":328 + * def __set__(self, value): + * self; value; # unused + * raise TypeError("readonly attribute") # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(33, 328, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":326 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self; value; # unused + * raise TypeError("readonly attribute") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":332 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventActivate(self.id) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_15activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_14activate[] = "LogEvent.activate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_15activate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("activate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("activate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "activate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_14activate(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_14activate(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("activate", 0); + + /* "petsc4py/PETSc/Log.pyx":333 + * + * def activate(self): + * CHKERR( PetscLogEventActivate(self.id) ) # <<<<<<<<<<<<<< + * + * def deactivate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventActivate(__pyx_v_self->id)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 333, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":332 + * # + * + * def activate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventActivate(self.id) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.activate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":335 + * CHKERR( PetscLogEventActivate(self.id) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventDeactivate(self.id) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_17deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_16deactivate[] = "LogEvent.deactivate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_17deactivate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("deactivate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("deactivate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "deactivate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_16deactivate(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_16deactivate(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("deactivate", 0); + + /* "petsc4py/PETSc/Log.pyx":336 + * + * def deactivate(self): + * CHKERR( PetscLogEventDeactivate(self.id) ) # <<<<<<<<<<<<<< + * + * def getActive(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventDeactivate(__pyx_v_self->id)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 336, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":335 + * CHKERR( PetscLogEventActivate(self.id) ) + * + * def deactivate(self): # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventDeactivate(self.id) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.deactivate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":338 + * CHKERR( PetscLogEventDeactivate(self.id) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_19getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_18getActive[] = "LogEvent.getActive(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_19getActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getActive (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getActive", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getActive", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_18getActive(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_18getActive(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getActive", 0); + + /* "petsc4py/PETSc/Log.pyx":339 + * + * def getActive(self): + * self # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/Log.pyx":340 + * def getActive(self): + * self # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def setActive(self, flag): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(33, 340, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":338 + * CHKERR( PetscLogEventDeactivate(self.id) ) + * + * def getActive(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.getActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":342 + * raise NotImplementedError + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * if flag: + * CHKERR( PetscLogEventActivate(self.id) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_21setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_20setActive[] = "LogEvent.setActive(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_21setActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setActive (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setActive") < 0)) __PYX_ERR(33, 342, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setActive", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 342, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_20setActive(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_20setActive(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_flag) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setActive", 0); + + /* "petsc4py/PETSc/Log.pyx":343 + * + * def setActive(self, flag): + * if flag: # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventActivate(self.id) ) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 343, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Log.pyx":344 + * def setActive(self, flag): + * if flag: + * CHKERR( PetscLogEventActivate(self.id) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( PetscLogEventDeactivate(self.id) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventActivate(__pyx_v_self->id)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 344, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":343 + * + * def setActive(self, flag): + * if flag: # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventActivate(self.id) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Log.pyx":346 + * CHKERR( PetscLogEventActivate(self.id) ) + * else: + * CHKERR( PetscLogEventDeactivate(self.id) ) # <<<<<<<<<<<<<< + * + * property active: + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventDeactivate(__pyx_v_self->id)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 346, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Log.pyx":342 + * raise NotImplementedError + * + * def setActive(self, flag): # <<<<<<<<<<<<<< + * if flag: + * CHKERR( PetscLogEventActivate(self.id) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.setActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":349 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_6active___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_6active___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":350 + * property active: + * def __get__(self): + * return self.getActive() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setActive(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":349 + * + * property active: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getActive() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.active.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":351 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_6active_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_6active_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":352 + * return self.getActive() + * def __set__(self, value): + * self.setActive(value) # <<<<<<<<<<<<<< + * + * def getActiveAll(self): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setActive); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":351 + * def __get__(self): + * return self.getActive() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActive(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.active.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":354 + * self.setActive(value) + * + * def getActiveAll(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_23getActiveAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_22getActiveAll[] = "LogEvent.getActiveAll(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_23getActiveAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getActiveAll (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getActiveAll", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getActiveAll", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_22getActiveAll(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_22getActiveAll(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getActiveAll", 0); + + /* "petsc4py/PETSc/Log.pyx":355 + * + * def getActiveAll(self): + * self # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/Log.pyx":356 + * def getActiveAll(self): + * self # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def setActiveAll(self, flag): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(33, 356, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":354 + * self.setActive(value) + * + * def getActiveAll(self): # <<<<<<<<<<<<<< + * self # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.getActiveAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":358 + * raise NotImplementedError + * + * def setActiveAll(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_25setActiveAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_24setActiveAll[] = "LogEvent.setActiveAll(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_25setActiveAll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setActiveAll (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setActiveAll") < 0)) __PYX_ERR(33, 358, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setActiveAll", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 358, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.setActiveAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_24setActiveAll(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_24setActiveAll(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_tval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setActiveAll", 0); + + /* "petsc4py/PETSc/Log.pyx":359 + * + * def setActiveAll(self, flag): + * cdef PetscBool tval = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogEventSetActiveAll(self.id, tval) ) + */ + __pyx_v_tval = PETSC_FALSE; + + /* "petsc4py/PETSc/Log.pyx":360 + * def setActiveAll(self, flag): + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventSetActiveAll(self.id, tval) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(33, 360, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_tval = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Log.pyx":361 + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + * CHKERR( PetscLogEventSetActiveAll(self.id, tval) ) # <<<<<<<<<<<<<< + * + * property active_all: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventSetActiveAll(__pyx_v_self->id, __pyx_v_tval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 361, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":358 + * raise NotImplementedError + * + * def setActiveAll(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * if flag: tval = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.setActiveAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":364 + * + * property active_all: + * def __get__(self): # <<<<<<<<<<<<<< + * self.getActiveAll() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Log.pyx":365 + * property active_all: + * def __get__(self): + * self.getActiveAll() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setActiveAll(value) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getActiveAll); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":364 + * + * property active_all: + * def __get__(self): # <<<<<<<<<<<<<< + * self.getActiveAll() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.active_all.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":366 + * def __get__(self): + * self.getActiveAll() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActiveAll(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all_2__set__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_8LogEvent_10active_all_2__set__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Log.pyx":367 + * self.getActiveAll() + * def __set__(self, value): + * self.setActiveAll(value) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setActiveAll); if (unlikely(!__pyx_t_2)) __PYX_ERR(33, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":366 + * def __get__(self): + * self.getActiveAll() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setActiveAll(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.active_all.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":371 + * # + * + * def getPerfInfo(self, stage=None): # <<<<<<<<<<<<<< + * cdef PetscEventPerfInfo info + * cdef PetscInt cstage = PETSC_DETERMINE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_27getPerfInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8LogEvent_26getPerfInfo[] = "LogEvent.getPerfInfo(self, stage=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_27getPerfInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stage = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPerfInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stage,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stage); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPerfInfo") < 0)) __PYX_ERR(33, 371, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_stage = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPerfInfo", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(33, 371, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.getPerfInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_26getPerfInfo(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self), __pyx_v_stage); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_26getPerfInfo(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self, PyObject *__pyx_v_stage) { + PetscEventPerfInfo __pyx_v_info; + PetscInt __pyx_v_cstage; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPerfInfo", 0); + + /* "petsc4py/PETSc/Log.pyx":373 + * def getPerfInfo(self, stage=None): + * cdef PetscEventPerfInfo info + * cdef PetscInt cstage = PETSC_DETERMINE # <<<<<<<<<<<<<< + * if stage is not None: cstage = asInt(stage) + * CHKERR( PetscLogEventGetPerfInfo(cstage, self.id, &info) ) + */ + __pyx_v_cstage = PETSC_DETERMINE; + + /* "petsc4py/PETSc/Log.pyx":374 + * cdef PetscEventPerfInfo info + * cdef PetscInt cstage = PETSC_DETERMINE + * if stage is not None: cstage = asInt(stage) # <<<<<<<<<<<<<< + * CHKERR( PetscLogEventGetPerfInfo(cstage, self.id, &info) ) + * return info + */ + __pyx_t_1 = (__pyx_v_stage != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stage); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(33, 374, __pyx_L1_error) + __pyx_v_cstage = __pyx_t_3; + } + + /* "petsc4py/PETSc/Log.pyx":375 + * cdef PetscInt cstage = PETSC_DETERMINE + * if stage is not None: cstage = asInt(stage) + * CHKERR( PetscLogEventGetPerfInfo(cstage, self.id, &info) ) # <<<<<<<<<<<<<< + * return info + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLogEventGetPerfInfo(__pyx_v_cstage, __pyx_v_self->id, (&__pyx_v_info))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(33, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":376 + * if stage is not None: cstage = asInt(stage) + * CHKERR( PetscLogEventGetPerfInfo(cstage, self.id, &info) ) + * return info # <<<<<<<<<<<<<< + * + * cdef dict event_registry = { } + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_convert__to_py_PetscEventPerfInfo(__pyx_v_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(33, 376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":371 + * # + * + * def getPerfInfo(self, stage=None): # <<<<<<<<<<<<<< + * cdef PetscEventPerfInfo info + * cdef PetscInt cstage = PETSC_DETERMINE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.getPerfInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":289 + * cdef class LogEvent: + * + * cdef readonly PetscLogEvent id # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_2id_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_8LogEvent_2id_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8LogEvent_2id___get__(((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8LogEvent_2id___get__(struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscLogEvent(__pyx_v_self->id); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LogEvent.id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":380 + * cdef dict event_registry = { } + * + * cdef LogEvent get_LogEvent(object name): # <<<<<<<<<<<<<< + * return event_registry.get(name) + * + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_f_8petsc4py_5PETSc_get_LogEvent(PyObject *__pyx_v_name) { + struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_LogEvent", 0); + + /* "petsc4py/PETSc/Log.pyx":381 + * + * cdef LogEvent get_LogEvent(object name): + * return event_registry.get(name) # <<<<<<<<<<<<<< + * + * cdef LogEvent reg_LogEvent(object name, PetscLogEvent eventid): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + if (unlikely(__pyx_v_8petsc4py_5PETSc_event_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(33, 381, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItemDefault(__pyx_v_8petsc4py_5PETSc_event_registry, __pyx_v_name, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_LogEvent))))) __PYX_ERR(33, 381, __pyx_L1_error) + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_t_1); + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":380 + * cdef dict event_registry = { } + * + * cdef LogEvent get_LogEvent(object name): # <<<<<<<<<<<<<< + * return event_registry.get(name) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.get_LogEvent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Log.pyx":383 + * return event_registry.get(name) + * + * cdef LogEvent reg_LogEvent(object name, PetscLogEvent eventid): # <<<<<<<<<<<<<< + * cdef LogEvent event = LogEvent() + * event.id = eventid + */ + +static struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_f_8petsc4py_5PETSc_reg_LogEvent(PyObject *__pyx_v_name, PetscLogEvent __pyx_v_eventid) { + struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_v_event = 0; + struct __pyx_obj_8petsc4py_5PETSc_LogEvent *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reg_LogEvent", 0); + + /* "petsc4py/PETSc/Log.pyx":384 + * + * cdef LogEvent reg_LogEvent(object name, PetscLogEvent eventid): + * cdef LogEvent event = LogEvent() # <<<<<<<<<<<<<< + * event.id = eventid + * event_registry[name] = event + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LogEvent)); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_event = ((struct __pyx_obj_8petsc4py_5PETSc_LogEvent *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Log.pyx":385 + * cdef LogEvent reg_LogEvent(object name, PetscLogEvent eventid): + * cdef LogEvent event = LogEvent() + * event.id = eventid # <<<<<<<<<<<<<< + * event_registry[name] = event + * return event + */ + __pyx_v_event->id = __pyx_v_eventid; + + /* "petsc4py/PETSc/Log.pyx":386 + * cdef LogEvent event = LogEvent() + * event.id = eventid + * event_registry[name] = event # <<<<<<<<<<<<<< + * return event + * + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_event_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(33, 386, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_event_registry, __pyx_v_name, ((PyObject *)__pyx_v_event)) < 0)) __PYX_ERR(33, 386, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":387 + * event.id = eventid + * event_registry[name] = event + * return event # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_event)); + __pyx_r = __pyx_v_event; + goto __pyx_L0; + + /* "petsc4py/PETSc/Log.pyx":383 + * return event_registry.get(name) + * + * cdef LogEvent reg_LogEvent(object name, PetscLogEvent eventid): # <<<<<<<<<<<<<< + * cdef LogEvent event = LogEvent() + * event.id = eventid + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.reg_LogEvent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_event); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":7 + * # + * + * def __cinit__(self, comm=None): # <<<<<<<<<<<<<< + * self.comm = def_Comm(comm, MPI_COMM_NULL) + * self.isdup = 0 + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4Comm_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4Comm_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(10, 7, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(10, 7, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Comm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm___cinit__(((struct PyPetscCommObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4Comm___cinit__(struct PyPetscCommObject *__pyx_v_self, PyObject *__pyx_v_comm) { + int __pyx_r; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Comm.pyx":8 + * + * def __cinit__(self, comm=None): + * self.comm = def_Comm(comm, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * self.isdup = 0 + * if self.comm != MPI_COMM_NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 8, __pyx_L1_error) + __pyx_v_self->comm = __pyx_t_1; + + /* "petsc4py/PETSc/Comm.pyx":9 + * def __cinit__(self, comm=None): + * self.comm = def_Comm(comm, MPI_COMM_NULL) + * self.isdup = 0 # <<<<<<<<<<<<<< + * if self.comm != MPI_COMM_NULL: + * self.base = comm + */ + __pyx_v_self->isdup = 0; + + /* "petsc4py/PETSc/Comm.pyx":10 + * self.comm = def_Comm(comm, MPI_COMM_NULL) + * self.isdup = 0 + * if self.comm != MPI_COMM_NULL: # <<<<<<<<<<<<<< + * self.base = comm + * else: + */ + __pyx_t_2 = ((__pyx_v_self->comm != MPI_COMM_NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Comm.pyx":11 + * self.isdup = 0 + * if self.comm != MPI_COMM_NULL: + * self.base = comm # <<<<<<<<<<<<<< + * else: + * self.base = None + */ + __Pyx_INCREF(__pyx_v_comm); + __Pyx_GIVEREF(__pyx_v_comm); + __Pyx_GOTREF(__pyx_v_self->base); + __Pyx_DECREF(__pyx_v_self->base); + __pyx_v_self->base = __pyx_v_comm; + + /* "petsc4py/PETSc/Comm.pyx":10 + * self.comm = def_Comm(comm, MPI_COMM_NULL) + * self.isdup = 0 + * if self.comm != MPI_COMM_NULL: # <<<<<<<<<<<<<< + * self.base = comm + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Comm.pyx":13 + * self.base = comm + * else: + * self.base = None # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->base); + __Pyx_DECREF(__pyx_v_self->base); + __pyx_v_self->base = Py_None; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Comm.pyx":7 + * # + * + * def __cinit__(self, comm=None): # <<<<<<<<<<<<<< + * self.comm = def_Comm(comm, MPI_COMM_NULL) + * self.isdup = 0 + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Comm.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":15 + * self.base = None + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.isdup: + * CHKERR( PetscCommDEALLOC(&self.comm) ) + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_4Comm_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_4Comm_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_4Comm_2__dealloc__(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_4Comm_2__dealloc__(struct PyPetscCommObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Comm.pyx":16 + * + * def __dealloc__(self): + * if self.isdup: # <<<<<<<<<<<<<< + * CHKERR( PetscCommDEALLOC(&self.comm) ) + * self.comm = MPI_COMM_NULL + */ + __pyx_t_1 = (__pyx_v_self->isdup != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Comm.pyx":17 + * def __dealloc__(self): + * if self.isdup: + * CHKERR( PetscCommDEALLOC(&self.comm) ) # <<<<<<<<<<<<<< + * self.comm = MPI_COMM_NULL + * self.isdup = 0 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscCommDEALLOC((&__pyx_v_self->comm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(10, 17, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":16 + * + * def __dealloc__(self): + * if self.isdup: # <<<<<<<<<<<<<< + * CHKERR( PetscCommDEALLOC(&self.comm) ) + * self.comm = MPI_COMM_NULL + */ + } + + /* "petsc4py/PETSc/Comm.pyx":18 + * if self.isdup: + * CHKERR( PetscCommDEALLOC(&self.comm) ) + * self.comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * self.isdup = 0 + * self.base = None + */ + __pyx_v_self->comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Comm.pyx":19 + * CHKERR( PetscCommDEALLOC(&self.comm) ) + * self.comm = MPI_COMM_NULL + * self.isdup = 0 # <<<<<<<<<<<<<< + * self.base = None + * + */ + __pyx_v_self->isdup = 0; + + /* "petsc4py/PETSc/Comm.pyx":20 + * self.comm = MPI_COMM_NULL + * self.isdup = 0 + * self.base = None # <<<<<<<<<<<<<< + * + * def __richcmp__(self, other, int op): + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->base); + __Pyx_DECREF(__pyx_v_self->base); + __pyx_v_self->base = Py_None; + + /* "petsc4py/PETSc/Comm.pyx":15 + * self.base = None + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * if self.isdup: + * CHKERR( PetscCommDEALLOC(&self.comm) ) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc.Comm.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Comm.pyx":22 + * self.base = None + * + * def __richcmp__(self, other, int op): # <<<<<<<<<<<<<< + * if not isinstance(self, Comm): return NotImplemented + * if not isinstance(other, Comm): return NotImplemented + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_4__richcmp__(((struct PyPetscCommObject *)__pyx_v_self), ((PyObject *)__pyx_v_other), ((int)__pyx_v_op)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4__richcmp__(struct PyPetscCommObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { + struct PyPetscCommObject *__pyx_v_s = 0; + struct PyPetscCommObject *__pyx_v_o = 0; + int __pyx_v_eq; + MPI_Comm __pyx_v_comm1; + MPI_Comm __pyx_v_comm2; + int __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + MPI_Comm __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__richcmp__", 0); + + /* "petsc4py/PETSc/Comm.pyx":23 + * + * def __richcmp__(self, other, int op): + * if not isinstance(self, Comm): return NotImplemented # <<<<<<<<<<<<<< + * if not isinstance(other, Comm): return NotImplemented + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_self), __pyx_ptype_8petsc4py_5PETSc_Comm); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_NotImplemented); + __pyx_r = __pyx_builtin_NotImplemented; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":24 + * def __richcmp__(self, other, int op): + * if not isinstance(self, Comm): return NotImplemented + * if not isinstance(other, Comm): return NotImplemented # <<<<<<<<<<<<<< + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") + * cdef Comm s = self + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Comm); + __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_NotImplemented); + __pyx_r = __pyx_builtin_NotImplemented; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":25 + * if not isinstance(self, Comm): return NotImplemented + * if not isinstance(other, Comm): return NotImplemented + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") # <<<<<<<<<<<<<< + * cdef Comm s = self + * cdef Comm o = other + */ + __pyx_t_2 = ((__pyx_v_op != 2) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_op != 3) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L6_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(10, 25, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Comm.pyx":26 + * if not isinstance(other, Comm): return NotImplemented + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") + * cdef Comm s = self # <<<<<<<<<<<<<< + * cdef Comm o = other + * cdef int eq = (op == 2) + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_v_s = __pyx_v_self; + + /* "petsc4py/PETSc/Comm.pyx":27 + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") + * cdef Comm s = self + * cdef Comm o = other # <<<<<<<<<<<<<< + * cdef int eq = (op == 2) + * cdef MPI_Comm comm1 = s.comm + */ + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Comm))))) __PYX_ERR(10, 27, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_o = ((struct PyPetscCommObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Comm.pyx":28 + * cdef Comm s = self + * cdef Comm o = other + * cdef int eq = (op == 2) # <<<<<<<<<<<<<< + * cdef MPI_Comm comm1 = s.comm + * cdef MPI_Comm comm2 = o.comm + */ + __pyx_v_eq = (__pyx_v_op == 2); + + /* "petsc4py/PETSc/Comm.pyx":29 + * cdef Comm o = other + * cdef int eq = (op == 2) + * cdef MPI_Comm comm1 = s.comm # <<<<<<<<<<<<<< + * cdef MPI_Comm comm2 = o.comm + * cdef int flag = 0 + */ + __pyx_t_4 = __pyx_v_s->comm; + __pyx_v_comm1 = __pyx_t_4; + + /* "petsc4py/PETSc/Comm.pyx":30 + * cdef int eq = (op == 2) + * cdef MPI_Comm comm1 = s.comm + * cdef MPI_Comm comm2 = o.comm # <<<<<<<<<<<<<< + * cdef int flag = 0 + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: + */ + __pyx_t_4 = __pyx_v_o->comm; + __pyx_v_comm2 = __pyx_t_4; + + /* "petsc4py/PETSc/Comm.pyx":31 + * cdef MPI_Comm comm1 = s.comm + * cdef MPI_Comm comm2 = o.comm + * cdef int flag = 0 # <<<<<<<<<<<<<< + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) + */ + __pyx_v_flag = 0; + + /* "petsc4py/PETSc/Comm.pyx":32 + * cdef MPI_Comm comm2 = o.comm + * cdef int flag = 0 + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) + * if eq: return (flag==MPI_IDENT or flag==MPI_CONGRUENT) + */ + __pyx_t_2 = ((__pyx_v_comm1 != MPI_COMM_NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_comm2 != MPI_COMM_NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L9_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Comm.pyx":33 + * cdef int flag = 0 + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) # <<<<<<<<<<<<<< + * if eq: return (flag==MPI_IDENT or flag==MPI_CONGRUENT) + * else: return (flag!=MPI_IDENT and flag!=MPI_CONGRUENT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_compare(__pyx_v_comm1, __pyx_v_comm2, (&__pyx_v_flag)))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(10, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":34 + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) + * if eq: return (flag==MPI_IDENT or flag==MPI_CONGRUENT) # <<<<<<<<<<<<<< + * else: return (flag!=MPI_IDENT and flag!=MPI_CONGRUENT) + * else: + */ + __pyx_t_1 = (__pyx_v_eq != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = (__pyx_v_flag == ((int)MPI_IDENT)); + if (!__pyx_t_1) { + } else { + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_1 = (__pyx_v_flag == ((int)MPI_CONGRUENT)); + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_L12_bool_binop_done:; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":35 + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) + * if eq: return (flag==MPI_IDENT or flag==MPI_CONGRUENT) + * else: return (flag!=MPI_IDENT and flag!=MPI_CONGRUENT) # <<<<<<<<<<<<<< + * else: + * if eq: return (comm1 == comm2) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = (__pyx_v_flag != ((int)MPI_IDENT)); + if (__pyx_t_1) { + } else { + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L14_bool_binop_done; + } + __pyx_t_1 = (__pyx_v_flag != ((int)MPI_CONGRUENT)); + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(10, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_t_6; + __pyx_t_6 = 0; + __pyx_L14_bool_binop_done:; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":32 + * cdef MPI_Comm comm2 = o.comm + * cdef int flag = 0 + * if comm1 != MPI_COMM_NULL and comm2 != MPI_COMM_NULL: # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_compare(comm1, comm2, &flag) ) + * if eq: return (flag==MPI_IDENT or flag==MPI_CONGRUENT) + */ + } + + /* "petsc4py/PETSc/Comm.pyx":37 + * else: return (flag!=MPI_IDENT and flag!=MPI_CONGRUENT) + * else: + * if eq: return (comm1 == comm2) # <<<<<<<<<<<<<< + * else: return (comm1 != comm2) + * + */ + /*else*/ { + __pyx_t_1 = (__pyx_v_eq != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_comm1 == __pyx_v_comm2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":38 + * else: + * if eq: return (comm1 == comm2) + * else: return (comm1 != comm2) # <<<<<<<<<<<<<< + * + * def __nonzero__(self): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyBool_FromLong((__pyx_v_comm1 != __pyx_v_comm2)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/Comm.pyx":22 + * self.base = None + * + * def __richcmp__(self, other, int op): # <<<<<<<<<<<<<< + * if not isinstance(self, Comm): return NotImplemented + * if not isinstance(other, Comm): return NotImplemented + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_s); + __Pyx_XDECREF((PyObject *)__pyx_v_o); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":40 + * else: return (comm1 != comm2) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * return self.comm != MPI_COMM_NULL + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4Comm_7__nonzero__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4Comm_7__nonzero__(PyObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__nonzero__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_6__nonzero__(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4Comm_6__nonzero__(struct PyPetscCommObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__nonzero__", 0); + + /* "petsc4py/PETSc/Comm.pyx":41 + * + * def __nonzero__(self): + * return self.comm != MPI_COMM_NULL # <<<<<<<<<<<<<< + * + * # + */ + __pyx_r = (__pyx_v_self->comm != MPI_COMM_NULL); + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":40 + * else: return (comm1 != comm2) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * return self.comm != MPI_COMM_NULL + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":45 + * # + * + * def destroy(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_8destroy[] = "Comm.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_8destroy(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_8destroy(struct PyPetscCommObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Comm.pyx":46 + * + * def destroy(self): + * if self.comm == MPI_COMM_NULL: return # <<<<<<<<<<<<<< + * if not self.isdup: + * raise ValueError("communicator not owned") + */ + __pyx_t_1 = ((__pyx_v_self->comm == MPI_COMM_NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Comm.pyx":47 + * def destroy(self): + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: # <<<<<<<<<<<<<< + * raise ValueError("communicator not owned") + * CHKERR( PetscCommDestroy(&self.comm) ) + */ + __pyx_t_1 = ((!(__pyx_v_self->isdup != 0)) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Comm.pyx":48 + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: + * raise ValueError("communicator not owned") # <<<<<<<<<<<<<< + * CHKERR( PetscCommDestroy(&self.comm) ) + * self.comm = MPI_COMM_NULL + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(10, 48, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":47 + * def destroy(self): + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: # <<<<<<<<<<<<<< + * raise ValueError("communicator not owned") + * CHKERR( PetscCommDestroy(&self.comm) ) + */ + } + + /* "petsc4py/PETSc/Comm.pyx":49 + * if not self.isdup: + * raise ValueError("communicator not owned") + * CHKERR( PetscCommDestroy(&self.comm) ) # <<<<<<<<<<<<<< + * self.comm = MPI_COMM_NULL + * self.isdup = 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscCommDestroy((&__pyx_v_self->comm))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(10, 49, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":50 + * raise ValueError("communicator not owned") + * CHKERR( PetscCommDestroy(&self.comm) ) + * self.comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * self.isdup = 0 + * self.base = None + */ + __pyx_v_self->comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Comm.pyx":51 + * CHKERR( PetscCommDestroy(&self.comm) ) + * self.comm = MPI_COMM_NULL + * self.isdup = 0 # <<<<<<<<<<<<<< + * self.base = None + * + */ + __pyx_v_self->isdup = 0; + + /* "petsc4py/PETSc/Comm.pyx":52 + * self.comm = MPI_COMM_NULL + * self.isdup = 0 + * self.base = None # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->base); + __Pyx_DECREF(__pyx_v_self->base); + __pyx_v_self->base = Py_None; + + /* "petsc4py/PETSc/Comm.pyx":45 + * # + * + * def destroy(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":54 + * self.base = None + * + * def duplicate(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_11duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_10duplicate[] = "Comm.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_11duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_10duplicate(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_10duplicate(struct PyPetscCommObject *__pyx_v_self) { + MPI_Comm __pyx_v_newcomm; + struct PyPetscCommObject *__pyx_v_comm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/Comm.pyx":55 + * + * def duplicate(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef MPI_Comm newcomm = MPI_COMM_NULL + */ + __pyx_t_1 = ((__pyx_v_self->comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Comm.pyx":56 + * def duplicate(self): + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef MPI_Comm newcomm = MPI_COMM_NULL + * CHKERR( PetscCommDuplicate(self.comm, &newcomm, NULL) ) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(10, 56, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":55 + * + * def duplicate(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef MPI_Comm newcomm = MPI_COMM_NULL + */ + } + + /* "petsc4py/PETSc/Comm.pyx":57 + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * cdef MPI_Comm newcomm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscCommDuplicate(self.comm, &newcomm, NULL) ) + * cdef Comm comm = type(self)() + */ + __pyx_v_newcomm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Comm.pyx":58 + * raise ValueError("null communicator") + * cdef MPI_Comm newcomm = MPI_COMM_NULL + * CHKERR( PetscCommDuplicate(self.comm, &newcomm, NULL) ) # <<<<<<<<<<<<<< + * cdef Comm comm = type(self)() + * comm.comm = newcomm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscCommDuplicate(__pyx_v_self->comm, (&__pyx_v_newcomm), NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(10, 58, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":59 + * cdef MPI_Comm newcomm = MPI_COMM_NULL + * CHKERR( PetscCommDuplicate(self.comm, &newcomm, NULL) ) + * cdef Comm comm = type(self)() # <<<<<<<<<<<<<< + * comm.comm = newcomm + * comm.isdup = 1 + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_4 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Comm))))) __PYX_ERR(10, 59, __pyx_L1_error) + __pyx_v_comm = ((struct PyPetscCommObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Comm.pyx":60 + * CHKERR( PetscCommDuplicate(self.comm, &newcomm, NULL) ) + * cdef Comm comm = type(self)() + * comm.comm = newcomm # <<<<<<<<<<<<<< + * comm.isdup = 1 + * comm.base = self.base + */ + __pyx_v_comm->comm = __pyx_v_newcomm; + + /* "petsc4py/PETSc/Comm.pyx":61 + * cdef Comm comm = type(self)() + * comm.comm = newcomm + * comm.isdup = 1 # <<<<<<<<<<<<<< + * comm.base = self.base + * return comm + */ + __pyx_v_comm->isdup = 1; + + /* "petsc4py/PETSc/Comm.pyx":62 + * comm.comm = newcomm + * comm.isdup = 1 + * comm.base = self.base # <<<<<<<<<<<<<< + * return comm + * + */ + __pyx_t_2 = __pyx_v_self->base; + __Pyx_INCREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_comm->base); + __Pyx_DECREF(__pyx_v_comm->base); + __pyx_v_comm->base = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Comm.pyx":63 + * comm.isdup = 1 + * comm.base = self.base + * return comm # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_comm)); + __pyx_r = ((PyObject *)__pyx_v_comm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":54 + * self.base = None + * + * def duplicate(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":65 + * return comm + * + * def getSize(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_13getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_12getSize[] = "Comm.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_13getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_12getSize(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_12getSize(struct PyPetscCommObject *__pyx_v_self) { + int __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/Comm.pyx":66 + * + * def getSize(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef int size=0 + */ + __pyx_t_1 = ((__pyx_v_self->comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Comm.pyx":67 + * def getSize(self): + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef int size=0 + * MPI_Comm_size(self.comm, &size) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(10, 67, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":66 + * + * def getSize(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef int size=0 + */ + } + + /* "petsc4py/PETSc/Comm.pyx":68 + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * cdef int size=0 # <<<<<<<<<<<<<< + * MPI_Comm_size(self.comm, &size) + * return size + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/Comm.pyx":69 + * raise ValueError("null communicator") + * cdef int size=0 + * MPI_Comm_size(self.comm, &size) # <<<<<<<<<<<<<< + * return size + * + */ + (void)(MPI_Comm_size(__pyx_v_self->comm, (&__pyx_v_size))); + + /* "petsc4py/PETSc/Comm.pyx":70 + * cdef int size=0 + * MPI_Comm_size(self.comm, &size) + * return size # <<<<<<<<<<<<<< + * + * def getRank(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":65 + * return comm + * + * def getSize(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":72 + * return size + * + * def getRank(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_15getRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_14getRank[] = "Comm.getRank(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_15getRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRank (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRank", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_14getRank(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_14getRank(struct PyPetscCommObject *__pyx_v_self) { + int __pyx_v_rank; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRank", 0); + + /* "petsc4py/PETSc/Comm.pyx":73 + * + * def getRank(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef int rank=0 + */ + __pyx_t_1 = ((__pyx_v_self->comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Comm.pyx":74 + * def getRank(self): + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef int rank=0 + * MPI_Comm_rank(self.comm, &rank) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(10, 74, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":73 + * + * def getRank(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * cdef int rank=0 + */ + } + + /* "petsc4py/PETSc/Comm.pyx":75 + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * cdef int rank=0 # <<<<<<<<<<<<<< + * MPI_Comm_rank(self.comm, &rank) + * return rank + */ + __pyx_v_rank = 0; + + /* "petsc4py/PETSc/Comm.pyx":76 + * raise ValueError("null communicator") + * cdef int rank=0 + * MPI_Comm_rank(self.comm, &rank) # <<<<<<<<<<<<<< + * return rank + * + */ + (void)(MPI_Comm_rank(__pyx_v_self->comm, (&__pyx_v_rank))); + + /* "petsc4py/PETSc/Comm.pyx":77 + * cdef int rank=0 + * MPI_Comm_rank(self.comm, &rank) + * return rank # <<<<<<<<<<<<<< + * + * def barrier(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_rank); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":72 + * return size + * + * def getRank(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.getRank", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":79 + * return rank + * + * def barrier(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_17barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_16barrier[] = "Comm.barrier(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_17barrier(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("barrier (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("barrier", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "barrier", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_16barrier(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_16barrier(struct PyPetscCommObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("barrier", 0); + + /* "petsc4py/PETSc/Comm.pyx":80 + * + * def barrier(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * MPI_Barrier(self.comm) + */ + __pyx_t_1 = ((__pyx_v_self->comm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Comm.pyx":81 + * def barrier(self): + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * MPI_Barrier(self.comm) + * + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(10, 81, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":80 + * + * def barrier(self): + * if self.comm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * MPI_Barrier(self.comm) + */ + } + + /* "petsc4py/PETSc/Comm.pyx":82 + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * MPI_Barrier(self.comm) # <<<<<<<<<<<<<< + * + * # --- properties --- + */ + (void)(MPI_Barrier(__pyx_v_self->comm)); + + /* "petsc4py/PETSc/Comm.pyx":79 + * return rank + * + * def barrier(self): # <<<<<<<<<<<<<< + * if self.comm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.barrier", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":87 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_4size___get__(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4size___get__(struct PyPetscCommObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Comm.pyx":88 + * property size: + * def __get__(self): + * return self.getSize() # <<<<<<<<<<<<<< + * + * property rank: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":87 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":91 + * + * property rank: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRank() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_4rank_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_4rank_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_4rank___get__(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_4rank___get__(struct PyPetscCommObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Comm.pyx":92 + * property rank: + * def __get__(self): + * return self.getRank() # <<<<<<<<<<<<<< + * + * # --- Fortran support --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRank); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(10, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":91 + * + * property rank: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRank() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.rank.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":97 + * + * property fortran: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = self.comm + * return MPI_Comm_c2f(comm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_7fortran_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_7fortran_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_7fortran___get__(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_7fortran___get__(struct PyPetscCommObject *__pyx_v_self) { + MPI_Comm __pyx_v_comm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Comm.pyx":98 + * property fortran: + * def __get__(self): + * cdef MPI_Comm comm = self.comm # <<<<<<<<<<<<<< + * return MPI_Comm_c2f(comm) + * + */ + __pyx_t_1 = __pyx_v_self->comm; + __pyx_v_comm = __pyx_t_1; + + /* "petsc4py/PETSc/Comm.pyx":99 + * def __get__(self): + * cdef MPI_Comm comm = self.comm + * return MPI_Comm_c2f(comm) # <<<<<<<<<<<<<< + * + * # --- mpi4py support --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_MPI_Fint(MPI_Comm_c2f(__pyx_v_comm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":97 + * + * property fortran: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = self.comm + * return MPI_Comm_c2f(comm) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.fortran.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":103 + * # --- mpi4py support --- + * + * def tompi4py(self): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = self.comm + * return mpi4py_Comm_New(comm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_19tompi4py(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Comm_18tompi4py[] = "Comm.tompi4py(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Comm_19tompi4py(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("tompi4py (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("tompi4py", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "tompi4py", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Comm_18tompi4py(((struct PyPetscCommObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Comm_18tompi4py(struct PyPetscCommObject *__pyx_v_self) { + MPI_Comm __pyx_v_comm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("tompi4py", 0); + + /* "petsc4py/PETSc/Comm.pyx":104 + * + * def tompi4py(self): + * cdef MPI_Comm comm = self.comm # <<<<<<<<<<<<<< + * return mpi4py_Comm_New(comm) + * + */ + __pyx_t_1 = __pyx_v_self->comm; + __pyx_v_comm = __pyx_t_1; + + /* "petsc4py/PETSc/Comm.pyx":105 + * def tompi4py(self): + * cdef MPI_Comm comm = self.comm + * return mpi4py_Comm_New(comm) # <<<<<<<<<<<<<< + * + * # --- mpi4py compatibility API --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Comm_New(__pyx_v_comm); if (unlikely(!__pyx_t_2)) __PYX_ERR(10, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":103 + * # --- mpi4py support --- + * + * def tompi4py(self): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = self.comm + * return mpi4py_Comm_New(comm) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Comm.tompi4py", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":130 + * cdef MPI_Comm PETSC_COMM_DEFAULT = MPI_COMM_NULL + * + * cdef MPI_Comm GetComm(object comm, MPI_Comm defv) except *: # <<<<<<<<<<<<<< + * return def_Comm(comm, defv) + * + */ + +static MPI_Comm __pyx_f_8petsc4py_5PETSc_GetComm(PyObject *__pyx_v_comm, MPI_Comm __pyx_v_defv) { + MPI_Comm __pyx_r; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("GetComm", 0); + + /* "petsc4py/PETSc/Comm.pyx":131 + * + * cdef MPI_Comm GetComm(object comm, MPI_Comm defv) except *: + * return def_Comm(comm, defv) # <<<<<<<<<<<<<< + * + * cdef MPI_Comm GetCommDefault(): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_defv); if (unlikely(PyErr_Occurred())) __PYX_ERR(10, 131, __pyx_L1_error) + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":130 + * cdef MPI_Comm PETSC_COMM_DEFAULT = MPI_COMM_NULL + * + * cdef MPI_Comm GetComm(object comm, MPI_Comm defv) except *: # <<<<<<<<<<<<<< + * return def_Comm(comm, defv) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.GetComm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Comm.pyx":133 + * return def_Comm(comm, defv) + * + * cdef MPI_Comm GetCommDefault(): # <<<<<<<<<<<<<< + * return PETSC_COMM_DEFAULT + * + */ + +static MPI_Comm __pyx_f_8petsc4py_5PETSc_GetCommDefault(void) { + MPI_Comm __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("GetCommDefault", 0); + + /* "petsc4py/PETSc/Comm.pyx":134 + * + * cdef MPI_Comm GetCommDefault(): + * return PETSC_COMM_DEFAULT # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT; + goto __pyx_L0; + + /* "petsc4py/PETSc/Comm.pyx":133 + * return def_Comm(comm, defv) + * + * cdef MPI_Comm GetCommDefault(): # <<<<<<<<<<<<<< + * return PETSC_COMM_DEFAULT + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":7 + * # --- special methods --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.oval = NULL + * self.obj = &self.oval + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Object_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Object_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object___cinit__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Object___cinit__(struct PyPetscObjectObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Object.pyx":8 + * + * def __cinit__(self): + * self.oval = NULL # <<<<<<<<<<<<<< + * self.obj = &self.oval + * + */ + __pyx_v_self->oval = NULL; + + /* "petsc4py/PETSc/Object.pyx":9 + * def __cinit__(self): + * self.oval = NULL + * self.obj = &self.oval # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->obj = (&__pyx_v_self->oval); + + /* "petsc4py/PETSc/Object.pyx":7 + * # --- special methods --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.oval = NULL + * self.obj = &self.oval + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":11 + * self.obj = &self.oval + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDEALLOC(&self.obj[0]) ) + * self.obj = NULL + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_6Object_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_6Object_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_6Object_2__dealloc__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_6Object_2__dealloc__(struct PyPetscObjectObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Object.pyx":12 + * + * def __dealloc__(self): + * CHKERR( PetscDEALLOC(&self.obj[0]) ) # <<<<<<<<<<<<<< + * self.obj = NULL + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscDEALLOC((&(__pyx_v_self->obj[0])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 12, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":13 + * def __dealloc__(self): + * CHKERR( PetscDEALLOC(&self.obj[0]) ) + * self.obj = NULL # <<<<<<<<<<<<<< + * + * def __richcmp__(self, other, int op): + */ + __pyx_v_self->obj = NULL; + + /* "petsc4py/PETSc/Object.pyx":11 + * self.obj = &self.oval + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDEALLOC(&self.obj[0]) ) + * self.obj = NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc.Object.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Object.pyx":15 + * self.obj = NULL + * + * def __richcmp__(self, other, int op): # <<<<<<<<<<<<<< + * if not isinstance(self, Object): return NotImplemented + * if not isinstance(other, Object): return NotImplemented + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_5__richcmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__richcmp__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4__richcmp__(((struct PyPetscObjectObject *)__pyx_v_self), ((PyObject *)__pyx_v_other), ((int)__pyx_v_op)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4__richcmp__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_other, int __pyx_v_op) { + struct PyPetscObjectObject *__pyx_v_s = 0; + struct PyPetscObjectObject *__pyx_v_o = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__richcmp__", 0); + + /* "petsc4py/PETSc/Object.pyx":16 + * + * def __richcmp__(self, other, int op): + * if not isinstance(self, Object): return NotImplemented # <<<<<<<<<<<<<< + * if not isinstance(other, Object): return NotImplemented + * cdef Object s = self, o = other + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_self), __pyx_ptype_8petsc4py_5PETSc_Object); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_NotImplemented); + __pyx_r = __pyx_builtin_NotImplemented; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":17 + * def __richcmp__(self, other, int op): + * if not isinstance(self, Object): return NotImplemented + * if not isinstance(other, Object): return NotImplemented # <<<<<<<<<<<<<< + * cdef Object s = self, o = other + * if op == 2: return (s.obj[0] == o.obj[0]) + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Object); + __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_builtin_NotImplemented); + __pyx_r = __pyx_builtin_NotImplemented; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":18 + * if not isinstance(self, Object): return NotImplemented + * if not isinstance(other, Object): return NotImplemented + * cdef Object s = self, o = other # <<<<<<<<<<<<<< + * if op == 2: return (s.obj[0] == o.obj[0]) + * elif op == 3: return (s.obj[0] != o.obj[0]) + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_v_s = __pyx_v_self; + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(34, 18, __pyx_L1_error) + __pyx_t_3 = __pyx_v_other; + __Pyx_INCREF(__pyx_t_3); + __pyx_v_o = ((struct PyPetscObjectObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Object.pyx":19 + * if not isinstance(other, Object): return NotImplemented + * cdef Object s = self, o = other + * if op == 2: return (s.obj[0] == o.obj[0]) # <<<<<<<<<<<<<< + * elif op == 3: return (s.obj[0] != o.obj[0]) + * else: raise TypeError("only '==' and '!='") + */ + __pyx_t_1 = ((__pyx_v_op == 2) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyBool_FromLong(((__pyx_v_s->obj[0]) == (__pyx_v_o->obj[0]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":20 + * cdef Object s = self, o = other + * if op == 2: return (s.obj[0] == o.obj[0]) + * elif op == 3: return (s.obj[0] != o.obj[0]) # <<<<<<<<<<<<<< + * else: raise TypeError("only '==' and '!='") + * + */ + __pyx_t_1 = ((__pyx_v_op == 3) != 0); + if (likely(__pyx_t_1)) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyBool_FromLong(((__pyx_v_s->obj[0]) != (__pyx_v_o->obj[0]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":21 + * if op == 2: return (s.obj[0] == o.obj[0]) + * elif op == 3: return (s.obj[0] != o.obj[0]) + * else: raise TypeError("only '==' and '!='") # <<<<<<<<<<<<<< + * + * def __nonzero__(self): + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(34, 21, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Object.pyx":15 + * self.obj = NULL + * + * def __richcmp__(self, other, int op): # <<<<<<<<<<<<<< + * if not isinstance(self, Object): return NotImplemented + * if not isinstance(other, Object): return NotImplemented + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_s); + __Pyx_XDECREF((PyObject *)__pyx_v_o); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":23 + * else: raise TypeError("only '==' and '!='") + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * return self.obj[0] != NULL + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Object_7__nonzero__(PyObject *__pyx_v_self); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Object_7__nonzero__(PyObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__nonzero__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_6__nonzero__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Object_6__nonzero__(struct PyPetscObjectObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__nonzero__", 0); + + /* "petsc4py/PETSc/Object.pyx":24 + * + * def __nonzero__(self): + * return self.obj[0] != NULL # <<<<<<<<<<<<<< + * + * def __copy__(self): + */ + __pyx_r = ((__pyx_v_self->obj[0]) != NULL); + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":23 + * else: raise TypeError("only '==' and '!='") + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * return self.obj[0] != NULL + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":26 + * return self.obj[0] != NULL + * + * def __copy__(self): # <<<<<<<<<<<<<< + * cdef Object obj = type(self)() + * cdef PetscObject o = self.obj[0] + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_9__copy__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_8__copy__[] = "Object.__copy__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_9__copy__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__copy__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__copy__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__copy__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_8__copy__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_8__copy__(struct PyPetscObjectObject *__pyx_v_self) { + struct PyPetscObjectObject *__pyx_v_obj = 0; + PetscObject __pyx_v_o; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__copy__", 0); + + /* "petsc4py/PETSc/Object.pyx":27 + * + * def __copy__(self): + * cdef Object obj = type(self)() # <<<<<<<<<<<<<< + * cdef PetscObject o = self.obj[0] + * if o != NULL: + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(34, 27, __pyx_L1_error) + __pyx_v_obj = ((struct PyPetscObjectObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":28 + * def __copy__(self): + * cdef Object obj = type(self)() + * cdef PetscObject o = self.obj[0] # <<<<<<<<<<<<<< + * if o != NULL: + * CHKERR( PetscObjectReference(o) ) + */ + __pyx_v_o = (__pyx_v_self->obj[0]); + + /* "petsc4py/PETSc/Object.pyx":29 + * cdef Object obj = type(self)() + * cdef PetscObject o = self.obj[0] + * if o != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(o) ) + * obj.obj[0] = o + */ + __pyx_t_4 = ((__pyx_v_o != NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/Object.pyx":30 + * cdef PetscObject o = self.obj[0] + * if o != NULL: + * CHKERR( PetscObjectReference(o) ) # <<<<<<<<<<<<<< + * obj.obj[0] = o + * return obj + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectReference(__pyx_v_o)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":29 + * cdef Object obj = type(self)() + * cdef PetscObject o = self.obj[0] + * if o != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(o) ) + * obj.obj[0] = o + */ + } + + /* "petsc4py/PETSc/Object.pyx":31 + * if o != NULL: + * CHKERR( PetscObjectReference(o) ) + * obj.obj[0] = o # <<<<<<<<<<<<<< + * return obj + * + */ + (__pyx_v_obj->obj[0]) = __pyx_v_o; + + /* "petsc4py/PETSc/Object.pyx":32 + * CHKERR( PetscObjectReference(o) ) + * obj.obj[0] = o + * return obj # <<<<<<<<<<<<<< + * + * def __deepcopy__(self, dict memo): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_obj)); + __pyx_r = ((PyObject *)__pyx_v_obj); + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":26 + * return self.obj[0] != NULL + * + * def __copy__(self): # <<<<<<<<<<<<<< + * cdef Object obj = type(self)() + * cdef PetscObject o = self.obj[0] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.__copy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":34 + * return obj + * + * def __deepcopy__(self, dict memo): # <<<<<<<<<<<<<< + * cdef object obj_copy = None + * try: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_11__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_10__deepcopy__[] = "Object.__deepcopy__(self, dict memo)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_11__deepcopy__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_memo = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__deepcopy__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_memo,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_memo)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__deepcopy__") < 0)) __PYX_ERR(34, 34, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_memo = ((PyObject*)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__deepcopy__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 34, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_memo), (&PyDict_Type), 0, "memo", 1))) __PYX_ERR(34, 34, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_10__deepcopy__(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_memo); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_10__deepcopy__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_memo) { + PyObject *__pyx_v_obj_copy = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__deepcopy__", 0); + + /* "petsc4py/PETSc/Object.pyx":35 + * + * def __deepcopy__(self, dict memo): + * cdef object obj_copy = None # <<<<<<<<<<<<<< + * try: + * obj_copy = self.copy + */ + __Pyx_INCREF(Py_None); + __pyx_v_obj_copy = Py_None; + + /* "petsc4py/PETSc/Object.pyx":36 + * def __deepcopy__(self, dict memo): + * cdef object obj_copy = None + * try: # <<<<<<<<<<<<<< + * obj_copy = self.copy + * except AttributeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + + /* "petsc4py/PETSc/Object.pyx":37 + * cdef object obj_copy = None + * try: + * obj_copy = self.copy # <<<<<<<<<<<<<< + * except AttributeError: + * raise NotImplementedError + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_copy); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 37, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_obj_copy, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Object.pyx":36 + * def __deepcopy__(self, dict memo): + * cdef object obj_copy = None + * try: # <<<<<<<<<<<<<< + * obj_copy = self.copy + * except AttributeError: + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Object.pyx":38 + * try: + * obj_copy = self.copy + * except AttributeError: # <<<<<<<<<<<<<< + * raise NotImplementedError + * memo # unused + */ + __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_AttributeError); + if (__pyx_t_5) { + __Pyx_AddTraceback("petsc4py.PETSc.Object.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(34, 38, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + + /* "petsc4py/PETSc/Object.pyx":39 + * obj_copy = self.copy + * except AttributeError: + * raise NotImplementedError # <<<<<<<<<<<<<< + * memo # unused + * return obj_copy() + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(34, 39, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/Object.pyx":36 + * def __deepcopy__(self, dict memo): + * cdef object obj_copy = None + * try: # <<<<<<<<<<<<<< + * obj_copy = self.copy + * except AttributeError: + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L8_try_end:; + } + + /* "petsc4py/PETSc/Object.pyx":40 + * except AttributeError: + * raise NotImplementedError + * memo # unused # <<<<<<<<<<<<<< + * return obj_copy() + * + */ + ((void)__pyx_v_memo); + + /* "petsc4py/PETSc/Object.pyx":41 + * raise NotImplementedError + * memo # unused + * return obj_copy() # <<<<<<<<<<<<<< + * + * # --- attribute management --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_obj_copy); + __pyx_t_6 = __pyx_v_obj_copy; __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + __pyx_t_7 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(34, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_r = __pyx_t_7; + __pyx_t_7 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":34 + * return obj + * + * def __deepcopy__(self, dict memo): # <<<<<<<<<<<<<< + * cdef object obj_copy = None + * try: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Object.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_obj_copy); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":45 + * # --- attribute management --- + * + * cdef object get_attr(self, char name[]): # <<<<<<<<<<<<<< + * return PetscGetPyObj(self.obj[0], name) + * + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_get_attr(struct PyPetscObjectObject *__pyx_v_self, char *__pyx_v_name) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_attr", 0); + + /* "petsc4py/PETSc/Object.pyx":46 + * + * cdef object get_attr(self, char name[]): + * return PetscGetPyObj(self.obj[0], name) # <<<<<<<<<<<<<< + * + * cdef object set_attr(self, char name[], object attr): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PetscGetPyObj((__pyx_v_self->obj[0]), __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":45 + * # --- attribute management --- + * + * cdef object get_attr(self, char name[]): # <<<<<<<<<<<<<< + * return PetscGetPyObj(self.obj[0], name) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.get_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":48 + * return PetscGetPyObj(self.obj[0], name) + * + * cdef object set_attr(self, char name[], object attr): # <<<<<<<<<<<<<< + * return PetscSetPyObj(self.obj[0], name, attr) + * + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_set_attr(struct PyPetscObjectObject *__pyx_v_self, char *__pyx_v_name, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set_attr", 0); + + /* "petsc4py/PETSc/Object.pyx":49 + * + * cdef object set_attr(self, char name[], object attr): + * return PetscSetPyObj(self.obj[0], name, attr) # <<<<<<<<<<<<<< + * + * cdef object get_dict(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PetscSetPyObj((__pyx_v_self->obj[0]), __pyx_v_name, __pyx_v_attr); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":48 + * return PetscGetPyObj(self.obj[0], name) + * + * cdef object set_attr(self, char name[], object attr): # <<<<<<<<<<<<<< + * return PetscSetPyObj(self.obj[0], name, attr) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.set_attr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":51 + * return PetscSetPyObj(self.obj[0], name, attr) + * + * cdef object get_dict(self): # <<<<<<<<<<<<<< + * return PetscGetPyDict(self.obj[0], True) + * + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_6Object_get_dict(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_dict", 0); + + /* "petsc4py/PETSc/Object.pyx":52 + * + * cdef object get_dict(self): + * return PetscGetPyDict(self.obj[0], True) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PetscGetPyDict((__pyx_v_self->obj[0]), 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":51 + * return PetscSetPyObj(self.obj[0], name, attr) + * + * cdef object get_dict(self): # <<<<<<<<<<<<<< + * return PetscGetPyDict(self.obj[0], True) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.get_dict", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":56 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_13view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_12view[] = "Object.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_13view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(34, 56, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 56, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(34, 56, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_12view(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_12view(struct PyPetscObjectObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Object.pyx":57 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscObjectView(self.obj[0], vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Object.pyx":58 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscObjectView(self.obj[0], vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Object.pyx":59 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscObjectView(self.obj[0], vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectView((__pyx_v_self->obj[0]), __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 59, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":56 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":61 + * CHKERR( PetscObjectView(self.obj[0], vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDestroy(&self.obj[0]) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_15destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_14destroy[] = "Object.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_15destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_14destroy(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_14destroy(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Object.pyx":62 + * + * def destroy(self): + * CHKERR( PetscObjectDestroy(&self.obj[0]) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectDestroy((&(__pyx_v_self->obj[0])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":63 + * def destroy(self): + * CHKERR( PetscObjectDestroy(&self.obj[0]) ) + * return self # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":61 + * CHKERR( PetscObjectView(self.obj[0], vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDestroy(&self.obj[0]) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":65 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetType(self.obj[0], &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_17getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_16getType[] = "Object.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_17getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_16getType(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_16getType(struct PyPetscObjectObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Object.pyx":66 + * + * def getType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetType(self.obj[0], &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":67 + * def getType(self): + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetType(self.obj[0], &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetType((__pyx_v_self->obj[0]), (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 67, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":68 + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetType(self.obj[0], &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":65 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetType(self.obj[0], &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":72 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_19setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_18setOptionsPrefix[] = "Object.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_19setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(34, 72, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 72, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_18setOptionsPrefix(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_18setOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Object.pyx":73 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( PetscObjectSetOptionsPrefix(self.obj[0], cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":74 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectSetOptionsPrefix(self.obj[0], cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":75 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( PetscObjectSetOptionsPrefix(self.obj[0], cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectSetOptionsPrefix((__pyx_v_self->obj[0]), __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 75, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":72 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":77 + * CHKERR( PetscObjectSetOptionsPrefix(self.obj[0], cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetOptionsPrefix(self.obj[0], &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_21getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_20getOptionsPrefix[] = "Object.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_21getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_20getOptionsPrefix(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_20getOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/Object.pyx":78 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetOptionsPrefix(self.obj[0], &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":79 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetOptionsPrefix(self.obj[0], &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetOptionsPrefix((__pyx_v_self->obj[0]), (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 79, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":80 + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetOptionsPrefix(self.obj[0], &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":77 + * CHKERR( PetscObjectSetOptionsPrefix(self.obj[0], cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetOptionsPrefix(self.obj[0], &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":82 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_23appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_22appendOptionsPrefix[] = "Object.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_23appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(34, 82, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 82, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_22appendOptionsPrefix(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_22appendOptionsPrefix(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Object.pyx":83 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( PetscObjectAppendOptionsPrefix(self.obj[0], cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":84 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectAppendOptionsPrefix(self.obj[0], cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":85 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( PetscObjectAppendOptionsPrefix(self.obj[0], cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectAppendOptionsPrefix((__pyx_v_self->obj[0]), __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 85, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":82 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":87 + * CHKERR( PetscObjectAppendOptionsPrefix(self.obj[0], cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectSetFromOptions(self.obj[0]) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_25setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_24setFromOptions[] = "Object.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_25setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_24setFromOptions(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_24setFromOptions(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Object.pyx":88 + * + * def setFromOptions(self): + * CHKERR( PetscObjectSetFromOptions(self.obj[0]) ) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object prefix=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectSetFromOptions((__pyx_v_self->obj[0]))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":87 + * CHKERR( PetscObjectAppendOptionsPrefix(self.obj[0], cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectSetFromOptions(self.obj[0]) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":90 + * CHKERR( PetscObjectSetFromOptions(self.obj[0]) ) + * + * def viewFromOptions(self, name, Object prefix=None): # <<<<<<<<<<<<<< + * cdef PetscObject pobj = NULL + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_27viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_26viewFromOptions[] = "Object.viewFromOptions(self, name, Object prefix=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_27viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_prefix,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(34, 90, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_prefix = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 90, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_prefix), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "prefix", 0))) __PYX_ERR(34, 90, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_26viewFromOptions(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name, __pyx_v_prefix); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_26viewFromOptions(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_prefix) { + PetscObject __pyx_v_pobj; + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscObject __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":91 + * + * def viewFromOptions(self, name, Object prefix=None): + * cdef PetscObject pobj = NULL # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * pobj = prefix.obj[0] if prefix is not None else NULL + */ + __pyx_v_pobj = NULL; + + /* "petsc4py/PETSc/Object.pyx":92 + * def viewFromOptions(self, name, Object prefix=None): + * cdef PetscObject pobj = NULL + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * pobj = prefix.obj[0] if prefix is not None else NULL + * name = str2bytes(name, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":93 + * cdef PetscObject pobj = NULL + * cdef const char *cval = NULL + * pobj = prefix.obj[0] if prefix is not None else NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectViewFromOptions(self.obj[0], pobj, cval) ) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_prefix) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = (__pyx_v_prefix->obj[0]); + } else { + __pyx_t_1 = NULL; + } + __pyx_v_pobj = __pyx_t_1; + + /* "petsc4py/PETSc/Object.pyx":94 + * cdef const char *cval = NULL + * pobj = prefix.obj[0] if prefix is not None else NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectViewFromOptions(self.obj[0], pobj, cval) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Object.pyx":95 + * pobj = prefix.obj[0] if prefix is not None else NULL + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectViewFromOptions(self.obj[0], pobj, cval) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectViewFromOptions((__pyx_v_self->obj[0]), __pyx_v_pobj, __pyx_v_cval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 95, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":90 + * CHKERR( PetscObjectSetFromOptions(self.obj[0]) ) + * + * def viewFromOptions(self, name, Object prefix=None): # <<<<<<<<<<<<<< + * cdef PetscObject pobj = NULL + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":99 + * # + * + * def getComm(self): # <<<<<<<<<<<<<< + * cdef Comm comm = Comm() + * CHKERR( PetscObjectGetComm(self.obj[0], &comm.comm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_29getComm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_28getComm[] = "Object.getComm(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_29getComm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getComm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getComm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getComm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_28getComm(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_28getComm(struct PyPetscObjectObject *__pyx_v_self) { + struct PyPetscCommObject *__pyx_v_comm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getComm", 0); + + /* "petsc4py/PETSc/Object.pyx":100 + * + * def getComm(self): + * cdef Comm comm = Comm() # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.obj[0], &comm.comm) ) + * return comm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_comm = ((struct PyPetscCommObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":101 + * def getComm(self): + * cdef Comm comm = Comm() + * CHKERR( PetscObjectGetComm(self.obj[0], &comm.comm) ) # <<<<<<<<<<<<<< + * return comm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm((__pyx_v_self->obj[0]), (&__pyx_v_comm->comm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 101, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":102 + * cdef Comm comm = Comm() + * CHKERR( PetscObjectGetComm(self.obj[0], &comm.comm) ) + * return comm # <<<<<<<<<<<<<< + * + * def getName(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_comm)); + __pyx_r = ((PyObject *)__pyx_v_comm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":99 + * # + * + * def getComm(self): # <<<<<<<<<<<<<< + * cdef Comm comm = Comm() + * CHKERR( PetscObjectGetComm(self.obj[0], &comm.comm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getComm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":104 + * return comm + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetName(self.obj[0], &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_31getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_30getName[] = "Object.getName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_31getName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_30getName(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_30getName(struct PyPetscObjectObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getName", 0); + + /* "petsc4py/PETSc/Object.pyx":105 + * + * def getName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetName(self.obj[0], &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":106 + * def getName(self): + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetName(self.obj[0], &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetName((__pyx_v_self->obj[0]), (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 106, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":107 + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetName(self.obj[0], &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setName(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":104 + * return comm + * + * def getName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetName(self.obj[0], &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":109 + * return bytes2str(cval) + * + * def setName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_33setName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_32setName[] = "Object.setName(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_33setName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setName") < 0)) __PYX_ERR(34, 109, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 109, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_32setName(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_32setName(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setName", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":110 + * + * def setName(self, name): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectSetName(self.obj[0], cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":111 + * def setName(self, name): + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectSetName(self.obj[0], cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":112 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectSetName(self.obj[0], cval) ) # <<<<<<<<<<<<<< + * + * def getClassId(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectSetName((__pyx_v_self->obj[0]), __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":109 + * return bytes2str(cval) + * + * def setName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.setName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":114 + * CHKERR( PetscObjectSetName(self.obj[0], cval) ) + * + * def getClassId(self): # <<<<<<<<<<<<<< + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(self.obj[0], &classid) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_35getClassId(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_34getClassId[] = "Object.getClassId(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_35getClassId(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getClassId (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getClassId", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getClassId", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_34getClassId(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_34getClassId(struct PyPetscObjectObject *__pyx_v_self) { + PetscClassId __pyx_v_classid; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getClassId", 0); + + /* "petsc4py/PETSc/Object.pyx":115 + * + * def getClassId(self): + * cdef PetscClassId classid = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetClassId(self.obj[0], &classid) ) + * return classid + */ + __pyx_v_classid = 0; + + /* "petsc4py/PETSc/Object.pyx":116 + * def getClassId(self): + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(self.obj[0], &classid) ) # <<<<<<<<<<<<<< + * return classid + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetClassId((__pyx_v_self->obj[0]), (&__pyx_v_classid))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 116, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":117 + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(self.obj[0], &classid) ) + * return classid # <<<<<<<<<<<<<< + * + * def getClassName(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_long(((long)__pyx_v_classid)); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":114 + * CHKERR( PetscObjectSetName(self.obj[0], cval) ) + * + * def getClassId(self): # <<<<<<<<<<<<<< + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(self.obj[0], &classid) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getClassId", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":119 + * return classid + * + * def getClassName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetClassName(self.obj[0], &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_37getClassName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_36getClassName[] = "Object.getClassName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_37getClassName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getClassName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getClassName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getClassName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_36getClassName(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_36getClassName(struct PyPetscObjectObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getClassName", 0); + + /* "petsc4py/PETSc/Object.pyx":120 + * + * def getClassName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetClassName(self.obj[0], &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":121 + * def getClassName(self): + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetClassName(self.obj[0], &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetClassName((__pyx_v_self->obj[0]), (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":122 + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetClassName(self.obj[0], &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getRefCount(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":119 + * return classid + * + * def getClassName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscObjectGetClassName(self.obj[0], &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getClassName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":124 + * return bytes2str(cval) + * + * def getRefCount(self): # <<<<<<<<<<<<<< + * if self.obj[0] == NULL: return 0 + * cdef PetscInt refcnt = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_39getRefCount(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_38getRefCount[] = "Object.getRefCount(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_39getRefCount(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRefCount (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRefCount", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRefCount", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_38getRefCount(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_38getRefCount(struct PyPetscObjectObject *__pyx_v_self) { + PetscInt __pyx_v_refcnt; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRefCount", 0); + + /* "petsc4py/PETSc/Object.pyx":125 + * + * def getRefCount(self): + * if self.obj[0] == NULL: return 0 # <<<<<<<<<<<<<< + * cdef PetscInt refcnt = 0 + * CHKERR( PetscObjectGetReference(self.obj[0], &refcnt) ) + */ + __pyx_t_1 = (((__pyx_v_self->obj[0]) == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_int_0); + __pyx_r = __pyx_int_0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":126 + * def getRefCount(self): + * if self.obj[0] == NULL: return 0 + * cdef PetscInt refcnt = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetReference(self.obj[0], &refcnt) ) + * return toInt(refcnt) + */ + __pyx_v_refcnt = 0; + + /* "petsc4py/PETSc/Object.pyx":127 + * if self.obj[0] == NULL: return 0 + * cdef PetscInt refcnt = 0 + * CHKERR( PetscObjectGetReference(self.obj[0], &refcnt) ) # <<<<<<<<<<<<<< + * return toInt(refcnt) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetReference((__pyx_v_self->obj[0]), (&__pyx_v_refcnt))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":128 + * cdef PetscInt refcnt = 0 + * CHKERR( PetscObjectGetReference(self.obj[0], &refcnt) ) + * return toInt(refcnt) # <<<<<<<<<<<<<< + * + * # --- general support --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_refcnt); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":124 + * return bytes2str(cval) + * + * def getRefCount(self): # <<<<<<<<<<<<<< + * if self.obj[0] == NULL: return 0 + * cdef PetscInt refcnt = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getRefCount", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":132 + * # --- general support --- + * + * def compose(self, name, Object obj or None): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_41compose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_40compose[] = "Object.compose(self, name, Object obj)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_41compose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("compose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("compose", 1, 2, 2, 1); __PYX_ERR(34, 132, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compose") < 0)) __PYX_ERR(34, 132, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("compose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 132, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.compose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(34, 132, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_40compose(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_40compose(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cval; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("compose", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":133 + * + * def compose(self, name, Object obj or None): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":134 + * def compose(self, name, Object obj or None): + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * if obj is not None: cobj = obj.obj[0] + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/Object.pyx":135 + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscObjectCompose(self.obj[0], cval, cobj) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":136 + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) + * if obj is not None: cobj = obj.obj[0] # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(self.obj[0], cval, cobj) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + } + + /* "petsc4py/PETSc/Object.pyx":137 + * name = str2bytes(name, &cval) + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscObjectCompose(self.obj[0], cval, cobj) ) # <<<<<<<<<<<<<< + * + * def query(self, name): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose((__pyx_v_self->obj[0]), __pyx_v_cval, __pyx_v_cobj)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":132 + * # --- general support --- + * + * def compose(self, name, Object obj or None): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.compose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":139 + * CHKERR( PetscObjectCompose(self.obj[0], cval, cobj) ) + * + * def query(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_43query(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_42query[] = "Object.query(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_43query(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("query (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "query") < 0)) __PYX_ERR(34, 139, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("query", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 139, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.query", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_42query(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_42query(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cval; + PetscObject __pyx_v_cobj; + struct PyPetscObjectObject *__pyx_v_obj = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("query", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":140 + * + * def query(self, name): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":141 + * def query(self, name): + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectQuery(self.obj[0], cval, &cobj) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/Object.pyx":142 + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery(self.obj[0], cval, &cobj) ) + * if cobj == NULL: return None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":143 + * cdef PetscObject cobj = NULL + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectQuery(self.obj[0], cval, &cobj) ) # <<<<<<<<<<<<<< + * if cobj == NULL: return None + * cdef Object obj = subtype_Object(cobj)() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery((__pyx_v_self->obj[0]), __pyx_v_cval, (&__pyx_v_cobj))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":144 + * name = str2bytes(name, &cval) + * CHKERR( PetscObjectQuery(self.obj[0], cval, &cobj) ) + * if cobj == NULL: return None # <<<<<<<<<<<<<< + * cdef Object obj = subtype_Object(cobj)() + * obj.obj[0] = cobj + */ + __pyx_t_3 = ((__pyx_v_cobj == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Object.pyx":145 + * CHKERR( PetscObjectQuery(self.obj[0], cval, &cobj) ) + * if cobj == NULL: return None + * cdef Object obj = subtype_Object(cobj)() # <<<<<<<<<<<<<< + * obj.obj[0] = cobj + * PetscINCREF(obj.obj) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_Object(__pyx_v_cobj)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(34, 145, __pyx_L1_error) + __pyx_v_obj = ((struct PyPetscObjectObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Object.pyx":146 + * if cobj == NULL: return None + * cdef Object obj = subtype_Object(cobj)() + * obj.obj[0] = cobj # <<<<<<<<<<<<<< + * PetscINCREF(obj.obj) + * return obj + */ + (__pyx_v_obj->obj[0]) = __pyx_v_cobj; + + /* "petsc4py/PETSc/Object.pyx":147 + * cdef Object obj = subtype_Object(cobj)() + * obj.obj[0] = cobj + * PetscINCREF(obj.obj) # <<<<<<<<<<<<<< + * return obj + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_obj->obj)); + + /* "petsc4py/PETSc/Object.pyx":148 + * obj.obj[0] = cobj + * PetscINCREF(obj.obj) + * return obj # <<<<<<<<<<<<<< + * + * def incRef(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_obj)); + __pyx_r = ((PyObject *)__pyx_v_obj); + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":139 + * CHKERR( PetscObjectCompose(self.obj[0], cval, cobj) ) + * + * def query(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscObject cobj = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Object.query", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":150 + * return obj + * + * def incRef(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_45incRef(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_44incRef[] = "Object.incRef(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_45incRef(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("incRef (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("incRef", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "incRef", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_44incRef(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_44incRef(struct PyPetscObjectObject *__pyx_v_self) { + PetscObject __pyx_v_obj; + PetscInt __pyx_v_refct; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("incRef", 0); + + /* "petsc4py/PETSc/Object.pyx":151 + * + * def incRef(self): + * cdef PetscObject obj = self.obj[0] # <<<<<<<<<<<<<< + * cdef PetscInt refct = 0 + * if obj != NULL: + */ + __pyx_v_obj = (__pyx_v_self->obj[0]); + + /* "petsc4py/PETSc/Object.pyx":152 + * def incRef(self): + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 # <<<<<<<<<<<<<< + * if obj != NULL: + * CHKERR( PetscObjectReference(obj) ) + */ + __pyx_v_refct = 0; + + /* "petsc4py/PETSc/Object.pyx":153 + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(obj) ) + * CHKERR( PetscObjectGetReference(obj, &refct) ) + */ + __pyx_t_1 = ((__pyx_v_obj != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Object.pyx":154 + * cdef PetscInt refct = 0 + * if obj != NULL: + * CHKERR( PetscObjectReference(obj) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * return (refct) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectReference(__pyx_v_obj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 154, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":155 + * if obj != NULL: + * CHKERR( PetscObjectReference(obj) ) + * CHKERR( PetscObjectGetReference(obj, &refct) ) # <<<<<<<<<<<<<< + * return (refct) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetReference(__pyx_v_obj, (&__pyx_v_refct))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 155, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":153 + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(obj) ) + * CHKERR( PetscObjectGetReference(obj, &refct) ) + */ + } + + /* "petsc4py/PETSc/Object.pyx":156 + * CHKERR( PetscObjectReference(obj) ) + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * return (refct) # <<<<<<<<<<<<<< + * + * def decRef(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_From_long(((long)__pyx_v_refct)); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":150 + * return obj + * + * def incRef(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.incRef", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":158 + * return (refct) + * + * def decRef(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_47decRef(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_46decRef[] = "Object.decRef(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_47decRef(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("decRef (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("decRef", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "decRef", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_46decRef(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_46decRef(struct PyPetscObjectObject *__pyx_v_self) { + PetscObject __pyx_v_obj; + PetscInt __pyx_v_refct; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("decRef", 0); + + /* "petsc4py/PETSc/Object.pyx":159 + * + * def decRef(self): + * cdef PetscObject obj = self.obj[0] # <<<<<<<<<<<<<< + * cdef PetscInt refct = 0 + * if obj != NULL: + */ + __pyx_v_obj = (__pyx_v_self->obj[0]); + + /* "petsc4py/PETSc/Object.pyx":160 + * def decRef(self): + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 # <<<<<<<<<<<<<< + * if obj != NULL: + * CHKERR( PetscObjectGetReference(obj, &refct) ) + */ + __pyx_v_refct = 0; + + /* "petsc4py/PETSc/Object.pyx":161 + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * CHKERR( PetscObjectDereference(obj) ) + */ + __pyx_t_1 = ((__pyx_v_obj != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Object.pyx":162 + * cdef PetscInt refct = 0 + * if obj != NULL: + * CHKERR( PetscObjectGetReference(obj, &refct) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDereference(obj) ) + * if refct == 1: self.obj[0] = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetReference(__pyx_v_obj, (&__pyx_v_refct))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 162, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":163 + * if obj != NULL: + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * CHKERR( PetscObjectDereference(obj) ) # <<<<<<<<<<<<<< + * if refct == 1: self.obj[0] = NULL + * refct -= 1 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectDereference(__pyx_v_obj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":164 + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * CHKERR( PetscObjectDereference(obj) ) + * if refct == 1: self.obj[0] = NULL # <<<<<<<<<<<<<< + * refct -= 1 + * return (refct) + */ + __pyx_t_1 = ((__pyx_v_refct == 1) != 0); + if (__pyx_t_1) { + (__pyx_v_self->obj[0]) = NULL; + } + + /* "petsc4py/PETSc/Object.pyx":165 + * CHKERR( PetscObjectDereference(obj) ) + * if refct == 1: self.obj[0] = NULL + * refct -= 1 # <<<<<<<<<<<<<< + * return (refct) + * + */ + __pyx_v_refct = (__pyx_v_refct - 1); + + /* "petsc4py/PETSc/Object.pyx":161 + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetReference(obj, &refct) ) + * CHKERR( PetscObjectDereference(obj) ) + */ + } + + /* "petsc4py/PETSc/Object.pyx":166 + * if refct == 1: self.obj[0] = NULL + * refct -= 1 + * return (refct) # <<<<<<<<<<<<<< + * + * def getAttr(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_From_long(((long)__pyx_v_refct)); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":158 + * return (refct) + * + * def decRef(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * cdef PetscInt refct = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.decRef", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":168 + * return (refct) + * + * def getAttr(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_49getAttr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_48getAttr[] = "Object.getAttr(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_49getAttr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAttr (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getAttr") < 0)) __PYX_ERR(34, 168, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getAttr", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 168, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.getAttr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_48getAttr(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_48getAttr(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAttr", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":169 + * + * def getAttr(self, name): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * return self.get_attr(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":170 + * def getAttr(self, name): + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * return self.get_attr(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":171 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * return self.get_attr(cval) # <<<<<<<<<<<<<< + * + * def setAttr(self, name, attr): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *)__pyx_v_self->__pyx_vtab)->get_attr(__pyx_v_self, ((char *)__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":168 + * return (refct) + * + * def getAttr(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getAttr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":173 + * return self.get_attr(cval) + * + * def setAttr(self, name, attr): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_51setAttr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_50setAttr[] = "Object.setAttr(self, name, attr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_51setAttr(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_attr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAttr (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_attr,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_attr)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setAttr", 1, 2, 2, 1); __PYX_ERR(34, 173, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAttr") < 0)) __PYX_ERR(34, 173, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_attr = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAttr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 173, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setAttr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_50setAttr(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_name, __pyx_v_attr); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_50setAttr(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_attr) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAttr", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Object.pyx":174 + * + * def setAttr(self, name, attr): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * self.set_attr(cval, attr) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Object.pyx":175 + * def setAttr(self, name, attr): + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * self.set_attr(cval, attr) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":176 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * self.set_attr(cval, attr) # <<<<<<<<<<<<<< + * + * def getDict(self): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *)__pyx_v_self->__pyx_vtab)->set_attr(__pyx_v_self, ((char *)__pyx_v_cval), __pyx_v_attr); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":173 + * return self.get_attr(cval) + * + * def setAttr(self, name, attr): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.setAttr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":178 + * self.set_attr(cval, attr) + * + * def getDict(self): # <<<<<<<<<<<<<< + * return self.get_dict() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_53getDict(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_52getDict[] = "Object.getDict(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_53getDict(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDict (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDict", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDict", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_52getDict(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_52getDict(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDict", 0); + + /* "petsc4py/PETSc/Object.pyx":179 + * + * def getDict(self): + * return self.get_dict() # <<<<<<<<<<<<<< + * + * # --- state manipulation --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *)__pyx_v_self->__pyx_vtab)->get_dict(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":178 + * self.set_attr(cval, attr) + * + * def getDict(self): # <<<<<<<<<<<<<< + * return self.get_dict() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getDict", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":182 + * + * # --- state manipulation --- + * def stateIncrease(self): # <<<<<<<<<<<<<< + * PetscINCSTATE(self.obj) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_55stateIncrease(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_54stateIncrease[] = "Object.stateIncrease(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_55stateIncrease(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stateIncrease (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("stateIncrease", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "stateIncrease", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_54stateIncrease(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_54stateIncrease(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stateIncrease", 0); + + /* "petsc4py/PETSc/Object.pyx":183 + * # --- state manipulation --- + * def stateIncrease(self): + * PetscINCSTATE(self.obj) # <<<<<<<<<<<<<< + * + * def stateGet(self): + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCSTATE(__pyx_v_self->obj)); + + /* "petsc4py/PETSc/Object.pyx":182 + * + * # --- state manipulation --- + * def stateIncrease(self): # <<<<<<<<<<<<<< + * PetscINCSTATE(self.obj) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":185 + * PetscINCSTATE(self.obj) + * + * def stateGet(self): # <<<<<<<<<<<<<< + * cdef PetscObjectState state = 0 + * CHKERR( PetscObjectStateGet(self.obj[0], &state) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_57stateGet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_56stateGet[] = "Object.stateGet(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_57stateGet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stateGet (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("stateGet", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "stateGet", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_56stateGet(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_56stateGet(struct PyPetscObjectObject *__pyx_v_self) { + PetscObjectState __pyx_v_state; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stateGet", 0); + + /* "petsc4py/PETSc/Object.pyx":186 + * + * def stateGet(self): + * cdef PetscObjectState state = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateGet(self.obj[0], &state) ) + * return toInt(state) + */ + __pyx_v_state = 0; + + /* "petsc4py/PETSc/Object.pyx":187 + * def stateGet(self): + * cdef PetscObjectState state = 0 + * CHKERR( PetscObjectStateGet(self.obj[0], &state) ) # <<<<<<<<<<<<<< + * return toInt(state) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateGet((__pyx_v_self->obj[0]), (&__pyx_v_state))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":188 + * cdef PetscObjectState state = 0 + * CHKERR( PetscObjectStateGet(self.obj[0], &state) ) + * return toInt(state) # <<<<<<<<<<<<<< + * + * def stateSet(self, state): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_state); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":185 + * PetscINCSTATE(self.obj) + * + * def stateGet(self): # <<<<<<<<<<<<<< + * cdef PetscObjectState state = 0 + * CHKERR( PetscObjectStateGet(self.obj[0], &state) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.stateGet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":190 + * return toInt(state) + * + * def stateSet(self, state): # <<<<<<<<<<<<<< + * cdef PetscObjectState cstate = asInt(state) + * CHKERR( PetscObjectStateSet(self.obj[0], cstate) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_59stateSet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_58stateSet[] = "Object.stateSet(self, state)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_59stateSet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_state = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stateSet (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_state)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stateSet") < 0)) __PYX_ERR(34, 190, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_state = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stateSet", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 190, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.stateSet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_58stateSet(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_58stateSet(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_state) { + PetscObjectState __pyx_v_cstate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stateSet", 0); + + /* "petsc4py/PETSc/Object.pyx":191 + * + * def stateSet(self, state): + * cdef PetscObjectState cstate = asInt(state) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateSet(self.obj[0], cstate) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_state); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(34, 191, __pyx_L1_error) + __pyx_v_cstate = __pyx_t_1; + + /* "petsc4py/PETSc/Object.pyx":192 + * def stateSet(self, state): + * cdef PetscObjectState cstate = asInt(state) + * CHKERR( PetscObjectStateSet(self.obj[0], cstate) ) # <<<<<<<<<<<<<< + * + * # --- tab level --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateSet((__pyx_v_self->obj[0]), __pyx_v_cstate)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 192, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":190 + * return toInt(state) + * + * def stateSet(self, state): # <<<<<<<<<<<<<< + * cdef PetscObjectState cstate = asInt(state) + * CHKERR( PetscObjectStateSet(self.obj[0], cstate) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.stateSet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":196 + * # --- tab level --- + * + * def incrementTabLevel(self, tab, Object parent=None): # <<<<<<<<<<<<<< + * cdef PetscInt ctab = asInt(tab) + * cdef PetscObject cobj = NULL if parent is None else parent.obj[0] + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_61incrementTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_60incrementTabLevel[] = "Object.incrementTabLevel(self, tab, Object parent=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_61incrementTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tab = 0; + struct PyPetscObjectObject *__pyx_v_parent = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("incrementTabLevel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tab,&__pyx_n_s_parent,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tab)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parent); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "incrementTabLevel") < 0)) __PYX_ERR(34, 196, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_tab = values[0]; + __pyx_v_parent = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("incrementTabLevel", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 196, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.incrementTabLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parent), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "parent", 0))) __PYX_ERR(34, 196, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_60incrementTabLevel(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_tab, __pyx_v_parent); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_60incrementTabLevel(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_tab, struct PyPetscObjectObject *__pyx_v_parent) { + PetscInt __pyx_v_ctab; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscObject __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("incrementTabLevel", 0); + + /* "petsc4py/PETSc/Object.pyx":197 + * + * def incrementTabLevel(self, tab, Object parent=None): + * cdef PetscInt ctab = asInt(tab) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL if parent is None else parent.obj[0] + * CHKERR( PetscObjectIncrementTabLevel(self.obj[0], cobj, ctab) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_tab); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(34, 197, __pyx_L1_error) + __pyx_v_ctab = __pyx_t_1; + + /* "petsc4py/PETSc/Object.pyx":198 + * def incrementTabLevel(self, tab, Object parent=None): + * cdef PetscInt ctab = asInt(tab) + * cdef PetscObject cobj = NULL if parent is None else parent.obj[0] # <<<<<<<<<<<<<< + * CHKERR( PetscObjectIncrementTabLevel(self.obj[0], cobj, ctab) ) + * + */ + __pyx_t_3 = (((PyObject *)__pyx_v_parent) == Py_None); + if ((__pyx_t_3 != 0)) { + __pyx_t_2 = ((PetscObject)NULL); + } else { + __pyx_t_2 = (__pyx_v_parent->obj[0]); + } + __pyx_v_cobj = __pyx_t_2; + + /* "petsc4py/PETSc/Object.pyx":199 + * cdef PetscInt ctab = asInt(tab) + * cdef PetscObject cobj = NULL if parent is None else parent.obj[0] + * CHKERR( PetscObjectIncrementTabLevel(self.obj[0], cobj, ctab) ) # <<<<<<<<<<<<<< + * + * def setTabLevel(self, level): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectIncrementTabLevel((__pyx_v_self->obj[0]), __pyx_v_cobj, __pyx_v_ctab)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 199, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":196 + * # --- tab level --- + * + * def incrementTabLevel(self, tab, Object parent=None): # <<<<<<<<<<<<<< + * cdef PetscInt ctab = asInt(tab) + * cdef PetscObject cobj = NULL if parent is None else parent.obj[0] + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.incrementTabLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":201 + * CHKERR( PetscObjectIncrementTabLevel(self.obj[0], cobj, ctab) ) + * + * def setTabLevel(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_63setTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_62setTabLevel[] = "Object.setTabLevel(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_63setTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTabLevel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTabLevel") < 0)) __PYX_ERR(34, 201, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTabLevel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(34, 201, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setTabLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_62setTabLevel(((struct PyPetscObjectObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_62setTabLevel(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTabLevel", 0); + + /* "petsc4py/PETSc/Object.pyx":202 + * + * def setTabLevel(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(34, 202, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/Object.pyx":203 + * def setTabLevel(self, level): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) # <<<<<<<<<<<<<< + * + * def getTabLevel(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectSetTabLevel((__pyx_v_self->obj[0]), __pyx_v_clevel)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":201 + * CHKERR( PetscObjectIncrementTabLevel(self.obj[0], cobj, ctab) ) + * + * def setTabLevel(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Object.setTabLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":205 + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) + * + * def getTabLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = 0 + * CHKERR( PetscObjectGetTabLevel(self.obj[0], &clevel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_65getTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Object_64getTabLevel[] = "Object.getTabLevel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_65getTabLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTabLevel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTabLevel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTabLevel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_64getTabLevel(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_64getTabLevel(struct PyPetscObjectObject *__pyx_v_self) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTabLevel", 0); + + /* "petsc4py/PETSc/Object.pyx":206 + * + * def getTabLevel(self): + * cdef PetscInt clevel = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetTabLevel(self.obj[0], &clevel) ) + * return toInt(clevel) + */ + __pyx_v_clevel = 0; + + /* "petsc4py/PETSc/Object.pyx":207 + * def getTabLevel(self): + * cdef PetscInt clevel = 0 + * CHKERR( PetscObjectGetTabLevel(self.obj[0], &clevel) ) # <<<<<<<<<<<<<< + * return toInt(clevel) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetTabLevel((__pyx_v_self->obj[0]), (&__pyx_v_clevel))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(34, 207, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":208 + * cdef PetscInt clevel = 0 + * CHKERR( PetscObjectGetTabLevel(self.obj[0], &clevel) ) + * return toInt(clevel) # <<<<<<<<<<<<<< + * + * # --- properties --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_clevel); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":205 + * CHKERR( PetscObjectSetTabLevel(self.obj[0], clevel) ) + * + * def getTabLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = 0 + * CHKERR( PetscObjectGetTabLevel(self.obj[0], &clevel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Object.getTabLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":213 + * + * property type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getType() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4type___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4type___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":214 + * property type: + * def __get__(self): + * return self.getType() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setType(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getType); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":213 + * + * property type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getType() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":215 + * def __get__(self): + * return self.getType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setType(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Object_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Object_4type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4type_2__set__(((struct PyPetscObjectObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Object_4type_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Object.pyx":216 + * return self.getType() + * def __set__(self, value): + * self.setType(value) # <<<<<<<<<<<<<< + * + * property prefix: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setType); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":215 + * def __get__(self): + * return self.getType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setType(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":219 + * + * property prefix: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOptionsPrefix() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_6prefix_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_6prefix_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_6prefix___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_6prefix___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":220 + * property prefix: + * def __get__(self): + * return self.getOptionsPrefix() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setOptionsPrefix(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOptionsPrefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":219 + * + * property prefix: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOptionsPrefix() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.prefix.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":221 + * def __get__(self): + * return self.getOptionsPrefix() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setOptionsPrefix(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Object_6prefix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Object_6prefix_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_6prefix_2__set__(((struct PyPetscObjectObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Object_6prefix_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Object.pyx":222 + * return self.getOptionsPrefix() + * def __set__(self, value): + * self.setOptionsPrefix(value) # <<<<<<<<<<<<<< + * + * property comm: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setOptionsPrefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":221 + * def __get__(self): + * return self.getOptionsPrefix() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setOptionsPrefix(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.prefix.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":225 + * + * property comm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getComm() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4comm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4comm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4comm___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4comm___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":226 + * property comm: + * def __get__(self): + * return self.getComm() # <<<<<<<<<<<<<< + * + * property name: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getComm); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":225 + * + * property comm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getComm() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.comm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":229 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4name_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_4name_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4name___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_4name___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":230 + * property name: + * def __get__(self): + * return self.getName() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setName(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getName); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":229 + * + * property name: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getName() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.name.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":231 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setName(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Object_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Object_4name_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_4name_2__set__(((struct PyPetscObjectObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Object_4name_2__set__(struct PyPetscObjectObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Object.pyx":232 + * return self.getName() + * def __set__(self, value): + * self.setName(value) # <<<<<<<<<<<<<< + * + * property classid: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setName); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":231 + * def __get__(self): + * return self.getName() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setName(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":235 + * + * property classid: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getClassId() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_7classid_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_7classid_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_7classid___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_7classid___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":236 + * property classid: + * def __get__(self): + * return self.getClassId() # <<<<<<<<<<<<<< + * + * property klass: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getClassId); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":235 + * + * property classid: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getClassId() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.classid.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":239 + * + * property klass: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getClassName() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_5klass_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_5klass_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_5klass___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_5klass___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":240 + * property klass: + * def __get__(self): + * return self.getClassName() # <<<<<<<<<<<<<< + * + * property refcount: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getClassName); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":239 + * + * property klass: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getClassName() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.klass.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":243 + * + * property refcount: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRefCount() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_8refcount_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_8refcount_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_8refcount___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_8refcount___get__(struct PyPetscObjectObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":244 + * property refcount: + * def __get__(self): + * return self.getRefCount() # <<<<<<<<<<<<<< + * + * # --- ctypes support --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRefCount); if (unlikely(!__pyx_t_2)) __PYX_ERR(34, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":243 + * + * property refcount: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRefCount() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Object.refcount.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":249 + * + * property handle: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * return PyLong_FromVoidPtr(obj) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_6handle_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_6handle_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_6handle___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_6handle___get__(struct PyPetscObjectObject *__pyx_v_self) { + PetscObject __pyx_v_obj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":250 + * property handle: + * def __get__(self): + * cdef PetscObject obj = self.obj[0] # <<<<<<<<<<<<<< + * return PyLong_FromVoidPtr(obj) + * + */ + __pyx_v_obj = (__pyx_v_self->obj[0]); + + /* "petsc4py/PETSc/Object.pyx":251 + * def __get__(self): + * cdef PetscObject obj = self.obj[0] + * return PyLong_FromVoidPtr(obj) # <<<<<<<<<<<<<< + * + * # --- Fortran support --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyLong_FromVoidPtr(((void *)__pyx_v_obj)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":249 + * + * property handle: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * return PyLong_FromVoidPtr(obj) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.handle.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":256 + * + * property fortran: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * return Object_toFortran(obj) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_7fortran_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Object_7fortran_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Object_7fortran___get__(((struct PyPetscObjectObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Object_7fortran___get__(struct PyPetscObjectObject *__pyx_v_self) { + PetscObject __pyx_v_obj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Object.pyx":257 + * property fortran: + * def __get__(self): + * cdef PetscObject obj = self.obj[0] # <<<<<<<<<<<<<< + * return Object_toFortran(obj) + * + */ + __pyx_v_obj = (__pyx_v_self->obj[0]); + + /* "petsc4py/PETSc/Object.pyx":258 + * def __get__(self): + * cdef PetscObject obj = self.obj[0] + * return Object_toFortran(obj) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyInt_FromSsize_t(__pyx_f_8petsc4py_5PETSc_Object_toFortran(__pyx_v_obj)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":256 + * + * property fortran: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef PetscObject obj = self.obj[0] + * return Object_toFortran(obj) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Object.fortran.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/cyclicgc.pxi":22 + * PetscErrorCode PetscGarbageView(MPI_Comm,PetscViewer); + * + * cdef int tp_traverse(PyObject *o, visitproc visit, void *arg): # <<<<<<<<<<<<<< + * ## printf("%s.tp_traverse(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject p = (o).obj[0] + */ + +static int __pyx_f_8petsc4py_5PETSc_tp_traverse(PyObject *__pyx_v_o, visitproc __pyx_v_visit, void *__pyx_v_arg) { + PetscObject __pyx_v_p; + PyObject *__pyx_v_d; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("tp_traverse", 0); + + /* "petsc4py/PETSc/cyclicgc.pxi":24 + * cdef int tp_traverse(PyObject *o, visitproc visit, void *arg): + * ## printf("%s.tp_traverse(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject p = (o).obj[0] # <<<<<<<<<<<<<< + * if p == NULL: return 0 + * cdef PyObject *d = p.python_context + */ + __pyx_v_p = (((struct PyPetscObjectObject *)__pyx_v_o)->obj[0]); + + /* "petsc4py/PETSc/cyclicgc.pxi":25 + * ## printf("%s.tp_traverse(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject p = (o).obj[0] + * if p == NULL: return 0 # <<<<<<<<<<<<<< + * cdef PyObject *d = p.python_context + * if d == NULL: return 0 + */ + __pyx_t_1 = ((__pyx_v_p == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":26 + * cdef PetscObject p = (o).obj[0] + * if p == NULL: return 0 + * cdef PyObject *d = p.python_context # <<<<<<<<<<<<<< + * if d == NULL: return 0 + * return visit(d, arg) + */ + __pyx_v_d = ((PyObject *)__pyx_v_p->python_context); + + /* "petsc4py/PETSc/cyclicgc.pxi":27 + * if p == NULL: return 0 + * cdef PyObject *d = p.python_context + * if d == NULL: return 0 # <<<<<<<<<<<<<< + * return visit(d, arg) + * + */ + __pyx_t_1 = ((__pyx_v_d == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":28 + * cdef PyObject *d = p.python_context + * if d == NULL: return 0 + * return visit(d, arg) # <<<<<<<<<<<<<< + * + * cdef int tp_clear(PyObject *o): + */ + __pyx_r = __pyx_v_visit(__pyx_v_d, __pyx_v_arg); + goto __pyx_L0; + + /* "petsc4py/PETSc/cyclicgc.pxi":22 + * PetscErrorCode PetscGarbageView(MPI_Comm,PetscViewer); + * + * cdef int tp_traverse(PyObject *o, visitproc visit, void *arg): # <<<<<<<<<<<<<< + * ## printf("%s.tp_traverse(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject p = (o).obj[0] + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/cyclicgc.pxi":30 + * return visit(d, arg) + * + * cdef int tp_clear(PyObject *o): # <<<<<<<<<<<<<< + * ## printf("%s.tp_clear(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject *p = (o).obj + */ + +static int __pyx_f_8petsc4py_5PETSc_tp_clear(PyObject *__pyx_v_o) { + PetscObject *__pyx_v_p; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscObject *__pyx_t_1; + __Pyx_RefNannySetupContext("tp_clear", 0); + + /* "petsc4py/PETSc/cyclicgc.pxi":32 + * cdef int tp_clear(PyObject *o): + * ## printf("%s.tp_clear(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject *p = (o).obj # <<<<<<<<<<<<<< + * PetscDEALLOC(p) + * return 0 + */ + __pyx_t_1 = ((struct PyPetscObjectObject *)__pyx_v_o)->obj; + __pyx_v_p = __pyx_t_1; + + /* "petsc4py/PETSc/cyclicgc.pxi":33 + * ## printf("%s.tp_clear(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject *p = (o).obj + * PetscDEALLOC(p) # <<<<<<<<<<<<<< + * return 0 + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscDEALLOC(__pyx_v_p)); + + /* "petsc4py/PETSc/cyclicgc.pxi":34 + * cdef PetscObject *p = (o).obj + * PetscDEALLOC(p) + * return 0 # <<<<<<<<<<<<<< + * + * cdef inline void TypeEnableGC(PyTypeObject *t): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/cyclicgc.pxi":30 + * return visit(d, arg) + * + * cdef int tp_clear(PyObject *o): # <<<<<<<<<<<<<< + * ## printf("%s.tp_clear(%p)\n", Py_TYPE(o).tp_name, o) + * cdef PetscObject *p = (o).obj + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/cyclicgc.pxi":36 + * return 0 + * + * cdef inline void TypeEnableGC(PyTypeObject *t): # <<<<<<<<<<<<<< + * ## printf("%s: enforcing GC support\n", t.tp_name) + * t.tp_traverse = tp_traverse + */ + +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_TypeEnableGC(PyTypeObject *__pyx_v_t) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("TypeEnableGC", 0); + + /* "petsc4py/PETSc/cyclicgc.pxi":38 + * cdef inline void TypeEnableGC(PyTypeObject *t): + * ## printf("%s: enforcing GC support\n", t.tp_name) + * t.tp_traverse = tp_traverse # <<<<<<<<<<<<<< + * t.tp_clear = tp_clear + * + */ + __pyx_v_t->tp_traverse = __pyx_f_8petsc4py_5PETSc_tp_traverse; + + /* "petsc4py/PETSc/cyclicgc.pxi":39 + * ## printf("%s: enforcing GC support\n", t.tp_name) + * t.tp_traverse = tp_traverse + * t.tp_clear = tp_clear # <<<<<<<<<<<<<< + * + * def garbage_cleanup(comm=None): + */ + __pyx_v_t->tp_clear = __pyx_f_8petsc4py_5PETSc_tp_clear; + + /* "petsc4py/PETSc/cyclicgc.pxi":36 + * return 0 + * + * cdef inline void TypeEnableGC(PyTypeObject *t): # <<<<<<<<<<<<<< + * ## printf("%s: enforcing GC support\n", t.tp_name) + * t.tp_traverse = tp_traverse + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/cyclicgc.pxi":41 + * t.tp_clear = tp_clear + * + * def garbage_cleanup(comm=None): # <<<<<<<<<<<<<< + * """Cleans up unused PETSc objects on the communicator `comm`. If no + * communicator is provided first clean up on PETSC_COMM_WORLD, then + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_1garbage_cleanup(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_garbage_cleanup[] = "garbage_cleanup(comm=None)\nCleans up unused PETSc objects on the communicator `comm`. If no\n communicator is provided first clean up on PETSC_COMM_WORLD, then\n clean up on PETSC_COMM_SELF.\n\n Optional argument `comm=None`.\n\n No return value.\n "; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_1garbage_cleanup = {"garbage_cleanup", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_1garbage_cleanup, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_garbage_cleanup}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_1garbage_cleanup(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("garbage_cleanup (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "garbage_cleanup") < 0)) __PYX_ERR(35, 41, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("garbage_cleanup", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(35, 41, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.garbage_cleanup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_garbage_cleanup(__pyx_self, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_garbage_cleanup(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + MPI_Comm __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("garbage_cleanup", 0); + + /* "petsc4py/PETSc/cyclicgc.pxi":50 + * No return value. + * """ + * if not (PetscInitializeCalled): return # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + */ + __pyx_t_1 = ((!(((int)PetscInitializeCalled) != 0)) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":51 + * """ + * if not (PetscInitializeCalled): return + * if (PetscFinalizeCalled): return # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm + * if comm is None: + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":53 + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + * if comm is None: # <<<<<<<<<<<<<< + * ccomm = GetComm(COMM_WORLD, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) + */ + __pyx_t_1 = (__pyx_v_comm == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/cyclicgc.pxi":54 + * cdef MPI_Comm ccomm + * if comm is None: + * ccomm = GetComm(COMM_WORLD, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * CHKERR( PetscGarbageCleanup(ccomm) ) + * ccomm = GetComm(COMM_SELF, MPI_COMM_NULL) + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_GetComm(__pyx_t_3, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(35, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_ccomm = __pyx_t_4; + + /* "petsc4py/PETSc/cyclicgc.pxi":55 + * if comm is None: + * ccomm = GetComm(COMM_WORLD, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) # <<<<<<<<<<<<<< + * ccomm = GetComm(COMM_SELF, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGarbageCleanup(__pyx_v_ccomm)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(35, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":56 + * ccomm = GetComm(COMM_WORLD, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) + * ccomm = GetComm(COMM_SELF, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * CHKERR( PetscGarbageCleanup(ccomm) ) + * else: + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_COMM_SELF); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_GetComm(__pyx_t_3, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(35, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_ccomm = __pyx_t_4; + + /* "petsc4py/PETSc/cyclicgc.pxi":57 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * ccomm = GetComm(COMM_SELF, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) # <<<<<<<<<<<<<< + * else: + * ccomm = GetComm(comm, MPI_COMM_NULL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGarbageCleanup(__pyx_v_ccomm)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(35, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":53 + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + * if comm is None: # <<<<<<<<<<<<<< + * ccomm = GetComm(COMM_WORLD, MPI_COMM_NULL) + * CHKERR( PetscGarbageCleanup(ccomm) ) + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":59 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * else: + * ccomm = GetComm(comm, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_GetComm(__pyx_v_comm, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(35, 59, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_4; + + /* "petsc4py/PETSc/cyclicgc.pxi":60 + * else: + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * CHKERR( PetscGarbageCleanup(ccomm) ) + */ + __pyx_t_2 = ((__pyx_v_ccomm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/cyclicgc.pxi":61 + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * CHKERR( PetscGarbageCleanup(ccomm) ) + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(35, 61, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":60 + * else: + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * CHKERR( PetscGarbageCleanup(ccomm) ) + */ + } + + /* "petsc4py/PETSc/cyclicgc.pxi":62 + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * CHKERR( PetscGarbageCleanup(ccomm) ) # <<<<<<<<<<<<<< + * + * def garbage_view(comm=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGarbageCleanup(__pyx_v_ccomm)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(35, 62, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/cyclicgc.pxi":41 + * t.tp_clear = tp_clear + * + * def garbage_cleanup(comm=None): # <<<<<<<<<<<<<< + * """Cleans up unused PETSc objects on the communicator `comm`. If no + * communicator is provided first clean up on PETSC_COMM_WORLD, then + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.garbage_cleanup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/cyclicgc.pxi":64 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * + * def garbage_view(comm=None): # <<<<<<<<<<<<<< + * """Prints out summary of the unused PETSc objects on each rank of + * the communicator `comm`. If no communicator is provided then + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3garbage_view(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2garbage_view[] = "garbage_view(comm=None)\nPrints out summary of the unused PETSc objects on each rank of\n the communicator `comm`. If no communicator is provided then\n PETSC_COMM_WORLD is used.\n\n Optional argument `comm=None`.\n\n No return value.\n "; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_3garbage_view = {"garbage_view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3garbage_view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2garbage_view}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3garbage_view(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("garbage_view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "garbage_view") < 0)) __PYX_ERR(35, 64, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("garbage_view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(35, 64, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.garbage_view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2garbage_view(__pyx_self, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2garbage_view(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + MPI_Comm __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("garbage_view", 0); + __Pyx_INCREF(__pyx_v_comm); + + /* "petsc4py/PETSc/cyclicgc.pxi":73 + * No return value. + * """ + * if not (PetscInitializeCalled): return # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + */ + __pyx_t_1 = ((!(((int)PetscInitializeCalled) != 0)) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":74 + * """ + * if not (PetscInitializeCalled): return + * if (PetscFinalizeCalled): return # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm + * if comm is None: + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/cyclicgc.pxi":76 + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + * if comm is None: # <<<<<<<<<<<<<< + * comm = COMM_WORLD + * ccomm = GetComm(comm, MPI_COMM_NULL) + */ + __pyx_t_1 = (__pyx_v_comm == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/cyclicgc.pxi":77 + * cdef MPI_Comm ccomm + * if comm is None: + * comm = COMM_WORLD # <<<<<<<<<<<<<< + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_COMM_WORLD); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_comm, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/cyclicgc.pxi":76 + * if (PetscFinalizeCalled): return + * cdef MPI_Comm ccomm + * if comm is None: # <<<<<<<<<<<<<< + * comm = COMM_WORLD + * ccomm = GetComm(comm, MPI_COMM_NULL) + */ + } + + /* "petsc4py/PETSc/cyclicgc.pxi":78 + * if comm is None: + * comm = COMM_WORLD + * ccomm = GetComm(comm, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_GetComm(__pyx_v_comm, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(35, 78, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_4; + + /* "petsc4py/PETSc/cyclicgc.pxi":79 + * comm = COMM_WORLD + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * CHKERR( PetscGarbageView(ccomm, NULL) ) + */ + __pyx_t_2 = ((__pyx_v_ccomm == MPI_COMM_NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/cyclicgc.pxi":80 + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") # <<<<<<<<<<<<<< + * CHKERR( PetscGarbageView(ccomm, NULL) ) + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(35, 80, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":79 + * comm = COMM_WORLD + * ccomm = GetComm(comm, MPI_COMM_NULL) + * if ccomm == MPI_COMM_NULL: # <<<<<<<<<<<<<< + * raise ValueError("null communicator") + * CHKERR( PetscGarbageView(ccomm, NULL) ) + */ + } + + /* "petsc4py/PETSc/cyclicgc.pxi":81 + * if ccomm == MPI_COMM_NULL: + * raise ValueError("null communicator") + * CHKERR( PetscGarbageView(ccomm, NULL) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscGarbageView(__pyx_v_ccomm, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(35, 81, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":64 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * + * def garbage_view(comm=None): # <<<<<<<<<<<<<< + * """Prints out summary of the unused PETSc objects on each rank of + * the communicator `comm`. If no communicator is provided then + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.garbage_view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":267 + * __type_registry__ = type_registry + * + * cdef int PyPetscType_Register(int classid, type cls) except -1: # <<<<<<<<<<<<<< + * global type_registry + * cdef object key = classid + */ + +static int __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(int __pyx_v_classid, PyTypeObject *__pyx_v_cls) { + PyObject *__pyx_v_key = 0; + PyObject *__pyx_v_value = 0; + char const *__pyx_v_dummy; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscType_Register", 0); + + /* "petsc4py/PETSc/Object.pyx":269 + * cdef int PyPetscType_Register(int classid, type cls) except -1: + * global type_registry + * cdef object key = classid # <<<<<<<<<<<<<< + * cdef object value = cls + * cdef const char *dummy = NULL + */ + __pyx_t_1 = __Pyx_PyInt_From_long(((long)__pyx_v_classid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_key = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":270 + * global type_registry + * cdef object key = classid + * cdef object value = cls # <<<<<<<<<<<<<< + * cdef const char *dummy = NULL + * if key not in type_registry: + */ + __Pyx_INCREF(((PyObject *)__pyx_v_cls)); + __pyx_v_value = ((PyObject *)__pyx_v_cls); + + /* "petsc4py/PETSc/Object.pyx":271 + * cdef object key = classid + * cdef object value = cls + * cdef const char *dummy = NULL # <<<<<<<<<<<<<< + * if key not in type_registry: + * type_registry[key] = cls + */ + __pyx_v_dummy = NULL; + + /* "petsc4py/PETSc/Object.pyx":272 + * cdef object value = cls + * cdef const char *dummy = NULL + * if key not in type_registry: # <<<<<<<<<<<<<< + * type_registry[key] = cls + * reg_LogClass(str2bytes(cls.__name__, &dummy), + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_type_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(34, 272, __pyx_L1_error) + } + __pyx_t_2 = (__Pyx_PyDict_ContainsTF(__pyx_v_key, __pyx_v_8petsc4py_5PETSc_type_registry, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(34, 272, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Object.pyx":273 + * cdef const char *dummy = NULL + * if key not in type_registry: + * type_registry[key] = cls # <<<<<<<<<<<<<< + * reg_LogClass(str2bytes(cls.__name__, &dummy), + * classid) + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_type_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(34, 273, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_type_registry, __pyx_v_key, ((PyObject *)__pyx_v_cls)) < 0)) __PYX_ERR(34, 273, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":274 + * if key not in type_registry: + * type_registry[key] = cls + * reg_LogClass(str2bytes(cls.__name__, &dummy), # <<<<<<<<<<<<<< + * classid) + * TypeEnableGC(cls) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_t_1, (&__pyx_v_dummy)); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":275 + * type_registry[key] = cls + * reg_LogClass(str2bytes(cls.__name__, &dummy), + * classid) # <<<<<<<<<<<<<< + * TypeEnableGC(cls) + * else: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_reg_LogClass(__pyx_t_4, ((PetscClassId)__pyx_v_classid))); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":276 + * reg_LogClass(str2bytes(cls.__name__, &dummy), + * classid) + * TypeEnableGC(cls) # <<<<<<<<<<<<<< + * else: + * value = type_registry[key] + */ + __pyx_f_8petsc4py_5PETSc_TypeEnableGC(((PyTypeObject *)__pyx_v_cls)); + + /* "petsc4py/PETSc/Object.pyx":272 + * cdef object value = cls + * cdef const char *dummy = NULL + * if key not in type_registry: # <<<<<<<<<<<<<< + * type_registry[key] = cls + * reg_LogClass(str2bytes(cls.__name__, &dummy), + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Object.pyx":278 + * TypeEnableGC(cls) + * else: + * value = type_registry[key] # <<<<<<<<<<<<<< + * if cls is not value: + * raise ValueError( + */ + /*else*/ { + if (unlikely(__pyx_v_8petsc4py_5PETSc_type_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(34, 278, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_8petsc4py_5PETSc_type_registry, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":279 + * else: + * value = type_registry[key] + * if cls is not value: # <<<<<<<<<<<<<< + * raise ValueError( + * "key: %d, cannot register: %s, " \ + */ + __pyx_t_3 = (__pyx_v_cls != ((PyTypeObject*)__pyx_v_value)); + __pyx_t_2 = (__pyx_t_3 != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Object.pyx":282 + * raise ValueError( + * "key: %d, cannot register: %s, " \ + * "already registered: %s" % (key, cls, value)) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_key); + __Pyx_GIVEREF(__pyx_v_key); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key); + __Pyx_INCREF(((PyObject *)__pyx_v_cls)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_cls)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cls)); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_value); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_key_d_cannot_register_s_already, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(34, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":280 + * value = type_registry[key] + * if cls is not value: + * raise ValueError( # <<<<<<<<<<<<<< + * "key: %d, cannot register: %s, " \ + * "already registered: %s" % (key, cls, value)) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(34, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/Object.pyx":279 + * else: + * value = type_registry[key] + * if cls is not value: # <<<<<<<<<<<<<< + * raise ValueError( + * "key: %d, cannot register: %s, " \ + */ + } + } + __pyx_L3:; + + /* "petsc4py/PETSc/Object.pyx":283 + * "key: %d, cannot register: %s, " \ + * "already registered: %s" % (key, cls, value)) + * return 0 # <<<<<<<<<<<<<< + * + * cdef type PyPetscType_Lookup(int classid): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":267 + * __type_registry__ = type_registry + * + * cdef int PyPetscType_Register(int classid, type cls) except -1: # <<<<<<<<<<<<<< + * global type_registry + * cdef object key = classid + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscType_Register", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_value); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Object.pyx":285 + * return 0 + * + * cdef type PyPetscType_Lookup(int classid): # <<<<<<<<<<<<<< + * global type_registry + * cdef object key = classid + */ + +static PyTypeObject *__pyx_f_8petsc4py_5PETSc_PyPetscType_Lookup(int __pyx_v_classid) { + PyObject *__pyx_v_key = 0; + PyTypeObject *__pyx_v_cls = 0; + PyTypeObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscType_Lookup", 0); + + /* "petsc4py/PETSc/Object.pyx":287 + * cdef type PyPetscType_Lookup(int classid): + * global type_registry + * cdef object key = classid # <<<<<<<<<<<<<< + * cdef type cls = Object + * try: + */ + __pyx_t_1 = __Pyx_PyInt_From_long(((long)__pyx_v_classid)); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_key = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":288 + * global type_registry + * cdef object key = classid + * cdef type cls = Object # <<<<<<<<<<<<<< + * try: + * cls = type_registry[key] + */ + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Object)); + __pyx_v_cls = __pyx_ptype_8petsc4py_5PETSc_Object; + + /* "petsc4py/PETSc/Object.pyx":289 + * cdef object key = classid + * cdef type cls = Object + * try: # <<<<<<<<<<<<<< + * cls = type_registry[key] + * except KeyError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + /*try:*/ { + + /* "petsc4py/PETSc/Object.pyx":290 + * cdef type cls = Object + * try: + * cls = type_registry[key] # <<<<<<<<<<<<<< + * except KeyError: + * cls = Object + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_type_registry == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(34, 290, __pyx_L3_error) + } + __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_8petsc4py_5PETSc_type_registry, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(34, 290, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(PyType_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "type", Py_TYPE(__pyx_t_1)->tp_name), 0))) __PYX_ERR(34, 290, __pyx_L3_error) + __Pyx_DECREF_SET(__pyx_v_cls, ((PyTypeObject*)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":289 + * cdef object key = classid + * cdef type cls = Object + * try: # <<<<<<<<<<<<<< + * cls = type_registry[key] + * except KeyError: + */ + } + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Object.pyx":291 + * try: + * cls = type_registry[key] + * except KeyError: # <<<<<<<<<<<<<< + * cls = Object + * return cls + */ + __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_KeyError); + if (__pyx_t_5) { + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscType_Lookup", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_1, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(34, 291, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + + /* "petsc4py/PETSc/Object.pyx":292 + * cls = type_registry[key] + * except KeyError: + * cls = Object # <<<<<<<<<<<<<< + * return cls + * + */ + __Pyx_INCREF(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Object)); + __Pyx_DECREF_SET(__pyx_v_cls, __pyx_ptype_8petsc4py_5PETSc_Object); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L4_exception_handled; + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/Object.pyx":289 + * cdef object key = classid + * cdef type cls = Object + * try: # <<<<<<<<<<<<<< + * cls = type_registry[key] + * except KeyError: + */ + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L1_error; + __pyx_L4_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + __pyx_L8_try_end:; + } + + /* "petsc4py/PETSc/Object.pyx":293 + * except KeyError: + * cls = Object + * return cls # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_cls)); + __pyx_r = __pyx_v_cls; + goto __pyx_L0; + + /* "petsc4py/PETSc/Object.pyx":285 + * return 0 + * + * cdef type PyPetscType_Lookup(int classid): # <<<<<<<<<<<<<< + * global type_registry + * cdef object key = classid + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscType_Lookup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_key); + __Pyx_XDECREF(__pyx_v_cls); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":93 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.vwr + * self.vwr = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Viewer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Viewer_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer___cinit__(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Viewer___cinit__(struct PyPetscViewerObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Viewer.pyx":94 + * + * def __cinit__(self): + * self.obj = &self.vwr # <<<<<<<<<<<<<< + * self.vwr = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->vwr)); + + /* "petsc4py/PETSc/Viewer.pyx":95 + * def __cinit__(self): + * self.obj = &self.vwr + * self.vwr = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, Object obj): + */ + __pyx_v_self->vwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":93 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.vwr + * self.vwr = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":97 + * self.vwr = NULL + * + * def __call__(self, Object obj): # <<<<<<<<<<<<<< + * assert obj.obj != NULL + * CHKERR( PetscObjectView(obj.obj[0], self.vwr) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(36, 97, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_obj = ((struct PyPetscObjectObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 97, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 0, "obj", 0))) __PYX_ERR(36, 97, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_2__call__(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_2__call__(struct PyPetscViewerObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_obj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/Viewer.pyx":98 + * + * def __call__(self, Object obj): + * assert obj.obj != NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectView(obj.obj[0], self.vwr) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_obj->obj != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(36, 98, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Viewer.pyx":99 + * def __call__(self, Object obj): + * assert obj.obj != NULL + * CHKERR( PetscObjectView(obj.obj[0], self.vwr) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectView((__pyx_v_obj->obj[0]), __pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 99, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":97 + * self.vwr = NULL + * + * def __call__(self, Object obj): # <<<<<<<<<<<<<< + * assert obj.obj != NULL + * CHKERR( PetscObjectView(obj.obj[0], self.vwr) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":103 + * # + * + * def view(self, obj=None): # <<<<<<<<<<<<<< + * if obj is None: + * CHKERR( PetscViewerView(self.vwr, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_4view[] = "Viewer.view(self, obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(36, 103, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_obj = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 103, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_4view(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_obj); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_4view(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_obj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Viewer.pyx":104 + * + * def view(self, obj=None): + * if obj is None: # <<<<<<<<<<<<<< + * CHKERR( PetscViewerView(self.vwr, NULL) ) + * elif isinstance(obj, Viewer): + */ + __pyx_t_1 = (__pyx_v_obj == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Viewer.pyx":105 + * def view(self, obj=None): + * if obj is None: + * CHKERR( PetscViewerView(self.vwr, NULL) ) # <<<<<<<<<<<<<< + * elif isinstance(obj, Viewer): + * CHKERR( PetscViewerView(self.vwr, (obj).vwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerView(__pyx_v_self->vwr, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 105, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":104 + * + * def view(self, obj=None): + * if obj is None: # <<<<<<<<<<<<<< + * CHKERR( PetscViewerView(self.vwr, NULL) ) + * elif isinstance(obj, Viewer): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Viewer.pyx":106 + * if obj is None: + * CHKERR( PetscViewerView(self.vwr, NULL) ) + * elif isinstance(obj, Viewer): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerView(self.vwr, (obj).vwr) ) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_ptype_8petsc4py_5PETSc_Viewer); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Viewer.pyx":107 + * CHKERR( PetscViewerView(self.vwr, NULL) ) + * elif isinstance(obj, Viewer): + * CHKERR( PetscViewerView(self.vwr, (obj).vwr) ) # <<<<<<<<<<<<<< + * else: + * assert (obj).obj != NULL + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_obj, __pyx_ptype_8petsc4py_5PETSc_Viewer)))) __PYX_ERR(36, 107, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerView(__pyx_v_self->vwr, ((struct PyPetscViewerObject *)__pyx_v_obj)->vwr)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 107, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":106 + * if obj is None: + * CHKERR( PetscViewerView(self.vwr, NULL) ) + * elif isinstance(obj, Viewer): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerView(self.vwr, (obj).vwr) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Viewer.pyx":109 + * CHKERR( PetscViewerView(self.vwr, (obj).vwr) ) + * else: + * assert (obj).obj != NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectView((obj).obj[0], self.vwr) ) + * + */ + /*else*/ { + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (!(likely(__Pyx_TypeTest(__pyx_v_obj, __pyx_ptype_8petsc4py_5PETSc_Object)))) __PYX_ERR(36, 109, __pyx_L1_error) + if (unlikely(!((((struct PyPetscObjectObject *)__pyx_v_obj)->obj != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(36, 109, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Viewer.pyx":110 + * else: + * assert (obj).obj != NULL + * CHKERR( PetscObjectView((obj).obj[0], self.vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_obj, __pyx_ptype_8petsc4py_5PETSc_Object)))) __PYX_ERR(36, 110, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectView((((struct PyPetscObjectObject *)__pyx_v_obj)->obj[0]), __pyx_v_self->vwr)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 110, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Viewer.pyx":103 + * # + * + * def view(self, obj=None): # <<<<<<<<<<<<<< + * if obj is None: + * CHKERR( PetscViewerView(self.vwr, NULL) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":112 + * CHKERR( PetscObjectView((obj).obj[0], self.vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDestroy(&self.vwr) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_6destroy[] = "Viewer.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_6destroy(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_6destroy(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Viewer.pyx":113 + * + * def destroy(self): + * CHKERR( PetscViewerDestroy(&self.vwr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerDestroy((&__pyx_v_self->vwr))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 113, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":114 + * def destroy(self): + * CHKERR( PetscViewerDestroy(&self.vwr) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":112 + * CHKERR( PetscObjectView((obj).obj[0], self.vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDestroy(&self.vwr) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":116 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscViewer newvwr = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_8create[] = "Viewer.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(36, 116, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 116, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_8create(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_8create(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Viewer.pyx":117 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 117, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":118 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":119 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 119, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":120 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":121 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * return self # <<<<<<<<<<<<<< + * + * def createASCII(self, name, mode=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":116 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscViewer newvwr = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":123 + * return self + * + * def createASCII(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_11createASCII(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_10createASCII[] = "Viewer.createASCII(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_11createASCII(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createASCII (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createASCII") < 0)) __PYX_ERR(36, 123, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createASCII", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_10createASCII(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_10createASCII(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscFileMode __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createASCII", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":124 + * + * def createASCII(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 124, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":125 + * def createASCII(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = PETSC_FILE_MODE_WRITE + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":126 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = PETSC_FILE_MODE_WRITE + * if mode is not None: cmode = filemode(mode) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":127 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = PETSC_FILE_MODE_WRITE # <<<<<<<<<<<<<< + * if mode is not None: cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_v_cmode = FILE_MODE_WRITE; + + /* "petsc4py/PETSc/Viewer.pyx":128 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = PETSC_FILE_MODE_WRITE + * if mode is not None: cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_3 = (__pyx_v_mode != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_5 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 128, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_5; + } + + /* "petsc4py/PETSc/Viewer.pyx":129 + * cdef PetscFileMode cmode = PETSC_FILE_MODE_WRITE + * if mode is not None: cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":130 + * if mode is not None: cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERASCII) ) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 130, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":131 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERASCII) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":132 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERASCII) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->vwr, PETSCVIEWERASCII)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 132, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":133 + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERASCII) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->vwr, __pyx_v_cmode)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":134 + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERASCII) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->vwr, __pyx_v_cname)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 134, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":135 + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self # <<<<<<<<<<<<<< + * + * def createBinary(self, name, mode=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":123 + * return self + * + * def createASCII(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":137 + * return self + * + * def createBinary(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_13createBinary(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_12createBinary[] = "Viewer.createBinary(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_13createBinary(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBinary (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBinary") < 0)) __PYX_ERR(36, 137, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBinary", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 137, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createBinary", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_12createBinary(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_12createBinary(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscFileMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBinary", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":138 + * + * def createBinary(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 138, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":139 + * def createBinary(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":140 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":141 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerBinaryOpen(ccomm, cname, cmode, &newvwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_3 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 141, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":142 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerBinaryOpen(ccomm, cname, cmode, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":143 + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerBinaryOpen(ccomm, cname, cmode, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerBinaryOpen(__pyx_v_ccomm, __pyx_v_cname, __pyx_v_cmode, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":144 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerBinaryOpen(ccomm, cname, cmode, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":145 + * CHKERR( PetscViewerBinaryOpen(ccomm, cname, cmode, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * return self # <<<<<<<<<<<<<< + * + * def createMPIIO(self, name, mode=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":137 + * return self + * + * def createBinary(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createBinary", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":147 + * return self + * + * def createMPIIO(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_15createMPIIO(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_14createMPIIO[] = "Viewer.createMPIIO(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_15createMPIIO(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMPIIO (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createMPIIO") < 0)) __PYX_ERR(36, 147, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createMPIIO", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 147, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createMPIIO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_14createMPIIO(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_14createMPIIO(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscFileMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMPIIO", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":148 + * + * def createMPIIO(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 148, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":149 + * def createMPIIO(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":150 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":151 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_3 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 151, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":152 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":153 + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERBINARY) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":154 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERBINARY) ) + * CHKERR( PetscViewerBinarySetUseMPIIO(self.vwr, PETSC_TRUE) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":155 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERBINARY) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerBinarySetUseMPIIO(self.vwr, PETSC_TRUE) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->vwr, PETSCVIEWERBINARY)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 155, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":156 + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERBINARY) ) + * CHKERR( PetscViewerBinarySetUseMPIIO(self.vwr, PETSC_TRUE) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerBinarySetUseMPIIO(__pyx_v_self->vwr, PETSC_TRUE)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 156, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":157 + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERBINARY) ) + * CHKERR( PetscViewerBinarySetUseMPIIO(self.vwr, PETSC_TRUE) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->vwr, __pyx_v_cmode)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":158 + * CHKERR( PetscViewerBinarySetUseMPIIO(self.vwr, PETSC_TRUE) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->vwr, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 158, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":159 + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self # <<<<<<<<<<<<<< + * + * def createVTK(self, name, mode=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":147 + * return self + * + * def createMPIIO(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createMPIIO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":161 + * return self + * + * def createVTK(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_17createVTK(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_16createVTK[] = "Viewer.createVTK(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_17createVTK(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createVTK (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createVTK") < 0)) __PYX_ERR(36, 161, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createVTK", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createVTK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_16createVTK(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_16createVTK(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscFileMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createVTK", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":162 + * + * def createVTK(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 162, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":163 + * def createVTK(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":164 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":165 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_3 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 165, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":166 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":167 + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERVTK) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":168 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERVTK) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":169 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERVTK) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->vwr, PETSCVIEWERVTK)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 169, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":170 + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERVTK) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->vwr, __pyx_v_cmode)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":171 + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERVTK) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->vwr, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 171, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":172 + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self # <<<<<<<<<<<<<< + * + * def createHDF5(self, name, mode=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":161 + * return self + * + * def createVTK(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createVTK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":174 + * return self + * + * def createHDF5(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_19createHDF5(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_18createHDF5[] = "Viewer.createHDF5(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_19createHDF5(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createHDF5 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createHDF5") < 0)) __PYX_ERR(36, 174, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createHDF5", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 174, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createHDF5", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_18createHDF5(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_18createHDF5(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscFileMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createHDF5", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":175 + * + * def createHDF5(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 175, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":176 + * def createHDF5(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":177 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":178 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_3 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 178, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":179 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":180 + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 180, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":181 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":182 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->vwr, PETSCVIEWERHDF5)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 182, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":183 + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->vwr, __pyx_v_cmode)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 183, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":184 + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->vwr, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":185 + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self # <<<<<<<<<<<<<< + * + * def createDraw(self, display=None, title=None, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":174 + * return self + * + * def createHDF5(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createHDF5", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":187 + * return self + * + * def createDraw(self, display=None, title=None, # <<<<<<<<<<<<<< + * position=None, size=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_21createDraw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_20createDraw[] = "Viewer.createDraw(self, display=None, title=None, position=None, size=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_21createDraw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_display = 0; + PyObject *__pyx_v_title = 0; + PyObject *__pyx_v_position = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createDraw (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_display,&__pyx_n_s_title,&__pyx_n_s_position,&__pyx_n_s_size,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/Viewer.pyx":188 + * + * def createDraw(self, display=None, title=None, + * position=None, size=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cdisplay = NULL + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_display); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_title); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_position); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createDraw") < 0)) __PYX_ERR(36, 187, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_display = values[0]; + __pyx_v_title = values[1]; + __pyx_v_position = values[2]; + __pyx_v_size = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createDraw", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 187, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createDraw", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_20createDraw(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_display, __pyx_v_title, __pyx_v_position, __pyx_v_size, __pyx_v_comm); + + /* "petsc4py/PETSc/Viewer.pyx":187 + * return self + * + * def createDraw(self, display=None, title=None, # <<<<<<<<<<<<<< + * position=None, size=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_20createDraw(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_display, PyObject *__pyx_v_title, PyObject *__pyx_v_position, PyObject *__pyx_v_size, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cdisplay; + char const *__pyx_v_ctitle; + int __pyx_v_x; + int __pyx_v_y; + int __pyx_v_h; + int __pyx_v_w; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_t_8; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PetscErrorCode __pyx_t_13; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createDraw", 0); + __Pyx_INCREF(__pyx_v_display); + __Pyx_INCREF(__pyx_v_title); + + /* "petsc4py/PETSc/Viewer.pyx":189 + * def createDraw(self, display=None, title=None, + * position=None, size=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 189, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":190 + * position=None, size=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cdisplay = NULL # <<<<<<<<<<<<<< + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) + */ + __pyx_v_cdisplay = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":191 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL # <<<<<<<<<<<<<< + * display = str2bytes(display, &cdisplay) + * title = str2bytes(title, &ctitle) + */ + __pyx_v_ctitle = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":192 + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) # <<<<<<<<<<<<<< + * title = str2bytes(title, &ctitle) + * cdef int x, y, h, w + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_display, (&__pyx_v_cdisplay)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_display, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":193 + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) + * title = str2bytes(title, &ctitle) # <<<<<<<<<<<<<< + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_title, (&__pyx_v_ctitle)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_title, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":195 + * title = str2bytes(title, &ctitle) + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE # <<<<<<<<<<<<<< + * if position not in (None, PETSC_DECIDE): + * x, y = position + */ + __pyx_v_x = PETSC_DECIDE; + __pyx_v_y = PETSC_DECIDE; + __pyx_v_h = PETSC_DECIDE; + __pyx_v_w = PETSC_DECIDE; + + /* "petsc4py/PETSc/Viewer.pyx":196 + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * x, y = position + * if size not in (None, PETSC_DECIDE): + */ + __Pyx_INCREF(__pyx_v_position); + __pyx_t_2 = __pyx_v_position; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 196, __pyx_L1_error) + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(36, 196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__pyx_t_5) { + } else { + __pyx_t_3 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(36, 196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(36, 196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_3 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_5 = (__pyx_t_3 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/Viewer.pyx":197 + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): + * x, y = position # <<<<<<<<<<<<<< + * if size not in (None, PETSC_DECIDE): + * try: + */ + if ((likely(PyTuple_CheckExact(__pyx_v_position))) || (PyList_CheckExact(__pyx_v_position))) { + PyObject* sequence = __pyx_v_position; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(36, 197, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(36, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_4 = PyObject_GetIter(__pyx_v_position); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_6 = __pyx_t_7(__pyx_t_4); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_4), 2) < 0) __PYX_ERR(36, 197, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(36, 197, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_x = __pyx_t_8; + __pyx_v_y = __pyx_t_9; + + /* "petsc4py/PETSc/Viewer.pyx":196 + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * x, y = position + * if size not in (None, PETSC_DECIDE): + */ + } + + /* "petsc4py/PETSc/Viewer.pyx":198 + * if position not in (None, PETSC_DECIDE): + * x, y = position + * if size not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * try: + * w, h = size + */ + __Pyx_INCREF(__pyx_v_size); + __pyx_t_6 = __pyx_v_size; + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 198, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(36, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_3) { + } else { + __pyx_t_5 = __pyx_t_3; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_2, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(36, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = __pyx_t_3; + __pyx_L9_bool_binop_done:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_3 = (__pyx_t_5 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Viewer.pyx":199 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + /*try:*/ { + + /* "petsc4py/PETSc/Viewer.pyx":200 + * if size not in (None, PETSC_DECIDE): + * try: + * w, h = size # <<<<<<<<<<<<<< + * except TypeError: + * w = h = size + */ + if ((likely(PyTuple_CheckExact(__pyx_v_size))) || (PyList_CheckExact(__pyx_v_size))) { + PyObject* sequence = __pyx_v_size; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(36, 200, __pyx_L11_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(36, 200, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 200, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_2 = PyObject_GetIter(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 200, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; + index = 0; __pyx_t_6 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_6)) goto __pyx_L17_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_2); if (unlikely(!__pyx_t_4)) goto __pyx_L17_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_2), 2) < 0) __PYX_ERR(36, 200, __pyx_L11_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L18_unpacking_done; + __pyx_L17_unpacking_failed:; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(36, 200, __pyx_L11_error) + __pyx_L18_unpacking_done:; + } + __pyx_t_9 = __Pyx_PyInt_As_int(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 200, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 200, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_w = __pyx_t_9; + __pyx_v_h = __pyx_t_8; + + /* "petsc4py/PETSc/Viewer.pyx":199 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + } + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L16_try_end; + __pyx_L11_error:; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":201 + * try: + * w, h = size + * except TypeError: # <<<<<<<<<<<<<< + * w = h = size + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_8 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_8) { + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createDraw", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(36, 201, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_2); + + /* "petsc4py/PETSc/Viewer.pyx":202 + * w, h = size + * except TypeError: + * w = h = size # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerDrawOpen(ccomm, cdisplay, ctitle, + */ + __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_v_size); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 202, __pyx_L13_except_error) + __pyx_v_w = __pyx_t_8; + __pyx_v_h = __pyx_t_8; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L12_exception_handled; + } + goto __pyx_L13_except_error; + __pyx_L13_except_error:; + + /* "petsc4py/PETSc/Viewer.pyx":199 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + goto __pyx_L1_error; + __pyx_L12_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_L16_try_end:; + } + + /* "petsc4py/PETSc/Viewer.pyx":198 + * if position not in (None, PETSC_DECIDE): + * x, y = position + * if size not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * try: + * w, h = size + */ + } + + /* "petsc4py/PETSc/Viewer.pyx":203 + * except TypeError: + * w = h = size + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDrawOpen(ccomm, cdisplay, ctitle, + * x, y, w, h, &newvwr) ) + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":204 + * w = h = size + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerDrawOpen(ccomm, cdisplay, ctitle, # <<<<<<<<<<<<<< + * x, y, w, h, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_t_13 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerDrawOpen(__pyx_v_ccomm, __pyx_v_cdisplay, __pyx_v_ctitle, __pyx_v_x, __pyx_v_y, __pyx_v_w, __pyx_v_h, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_13 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 204, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":206 + * CHKERR( PetscViewerDrawOpen(ccomm, cdisplay, ctitle, + * x, y, w, h, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":207 + * x, y, w, h, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * return self # <<<<<<<<<<<<<< + * + * def setType(self, vwr_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":187 + * return self + * + * def createDraw(self, display=None, title=None, # <<<<<<<<<<<<<< + * position=None, size=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.createDraw", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_display); + __Pyx_XDECREF(__pyx_v_title); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":209 + * return self + * + * def setType(self, vwr_type): # <<<<<<<<<<<<<< + * cdef PetscViewerType cval = NULL + * vwr_type = str2bytes(vwr_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_23setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_22setType[] = "Viewer.setType(self, vwr_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_23setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vwr_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vwr_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vwr_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(36, 209, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vwr_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 209, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_22setType(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_vwr_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_22setType(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_vwr_type) { + PetscViewerType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_vwr_type); + + /* "petsc4py/PETSc/Viewer.pyx":210 + * + * def setType(self, vwr_type): + * cdef PetscViewerType cval = NULL # <<<<<<<<<<<<<< + * vwr_type = str2bytes(vwr_type, &cval) + * CHKERR( PetscViewerSetType(self.vwr, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":211 + * def setType(self, vwr_type): + * cdef PetscViewerType cval = NULL + * vwr_type = str2bytes(vwr_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_vwr_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_vwr_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":212 + * cdef PetscViewerType cval = NULL + * vwr_type = str2bytes(vwr_type, &cval) + * CHKERR( PetscViewerSetType(self.vwr, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->vwr, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 212, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":209 + * return self + * + * def setType(self, vwr_type): # <<<<<<<<<<<<<< + * cdef PetscViewerType cval = NULL + * vwr_type = str2bytes(vwr_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vwr_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":214 + * CHKERR( PetscViewerSetType(self.vwr, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscViewerType cval = NULL + * CHKERR( PetscViewerGetType(self.vwr, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_25getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_24getType[] = "Viewer.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_25getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_24getType(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_24getType(struct PyPetscViewerObject *__pyx_v_self) { + PetscViewerType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Viewer.pyx":215 + * + * def getType(self): + * cdef PetscViewerType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerGetType(self.vwr, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":216 + * def getType(self): + * cdef PetscViewerType cval = NULL + * CHKERR( PetscViewerGetType(self.vwr, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerGetType(__pyx_v_self->vwr, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":217 + * cdef PetscViewerType cval = NULL + * CHKERR( PetscViewerGetType(self.vwr, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getFormat(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":214 + * CHKERR( PetscViewerSetType(self.vwr, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscViewerType cval = NULL + * CHKERR( PetscViewerGetType(self.vwr, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":219 + * return bytes2str(cval) + * + * def getFormat(self): # <<<<<<<<<<<<<< + * cdef PetscViewerFormat format = PETSC_VIEWER_DEFAULT + * CHKERR( PetscViewerGetFormat(self.vwr, &format) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_27getFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_26getFormat[] = "Viewer.getFormat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_27getFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFormat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFormat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFormat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_26getFormat(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_26getFormat(struct PyPetscViewerObject *__pyx_v_self) { + PetscViewerFormat __pyx_v_format; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFormat", 0); + + /* "petsc4py/PETSc/Viewer.pyx":220 + * + * def getFormat(self): + * cdef PetscViewerFormat format = PETSC_VIEWER_DEFAULT # <<<<<<<<<<<<<< + * CHKERR( PetscViewerGetFormat(self.vwr, &format) ) + * return format + */ + __pyx_v_format = PETSC_VIEWER_DEFAULT; + + /* "petsc4py/PETSc/Viewer.pyx":221 + * def getFormat(self): + * cdef PetscViewerFormat format = PETSC_VIEWER_DEFAULT + * CHKERR( PetscViewerGetFormat(self.vwr, &format) ) # <<<<<<<<<<<<<< + * return format + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerGetFormat(__pyx_v_self->vwr, (&__pyx_v_format))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 221, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":222 + * cdef PetscViewerFormat format = PETSC_VIEWER_DEFAULT + * CHKERR( PetscViewerGetFormat(self.vwr, &format) ) + * return format # <<<<<<<<<<<<<< + * + * def pushFormat(self, format): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscViewerFormat(__pyx_v_format); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":219 + * return bytes2str(cval) + * + * def getFormat(self): # <<<<<<<<<<<<<< + * cdef PetscViewerFormat format = PETSC_VIEWER_DEFAULT + * CHKERR( PetscViewerGetFormat(self.vwr, &format) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getFormat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":224 + * return format + * + * def pushFormat(self, format): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerPushFormat(self.vwr, format) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_29pushFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_28pushFormat[] = "Viewer.pushFormat(self, format)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_29pushFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_format = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushFormat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_format,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pushFormat") < 0)) __PYX_ERR(36, 224, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_format = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pushFormat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 224, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.pushFormat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_28pushFormat(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_format); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_28pushFormat(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_format) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscViewerFormat __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushFormat", 0); + + /* "petsc4py/PETSc/Viewer.pyx":225 + * + * def pushFormat(self, format): + * CHKERR( PetscViewerPushFormat(self.vwr, format) ) # <<<<<<<<<<<<<< + * + * def popFormat(self): + */ + __pyx_t_1 = ((PetscViewerFormat)__Pyx_PyInt_As_PetscViewerFormat(__pyx_v_format)); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 225, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerPushFormat(__pyx_v_self->vwr, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 225, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":224 + * return format + * + * def pushFormat(self, format): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerPushFormat(self.vwr, format) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.pushFormat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":227 + * CHKERR( PetscViewerPushFormat(self.vwr, format) ) + * + * def popFormat(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerPopFormat(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_31popFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_30popFormat[] = "Viewer.popFormat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_31popFormat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popFormat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popFormat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popFormat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_30popFormat(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_30popFormat(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popFormat", 0); + + /* "petsc4py/PETSc/Viewer.pyx":228 + * + * def popFormat(self): + * CHKERR( PetscViewerPopFormat(self.vwr) ) # <<<<<<<<<<<<<< + * + * def getSubViewer(self, comm = None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerPopFormat(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":227 + * CHKERR( PetscViewerPushFormat(self.vwr, format) ) + * + * def popFormat(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerPopFormat(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.popFormat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":230 + * CHKERR( PetscViewerPopFormat(self.vwr) ) + * + * def getSubViewer(self, comm = None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef Viewer sub = Viewer() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_33getSubViewer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_32getSubViewer[] = "Viewer.getSubViewer(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_33getSubViewer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSubViewer (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getSubViewer") < 0)) __PYX_ERR(36, 230, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getSubViewer", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 230, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getSubViewer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_32getSubViewer(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_32getSubViewer(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + struct PyPetscViewerObject *__pyx_v_sub = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSubViewer", 0); + + /* "petsc4py/PETSc/Viewer.pyx":231 + * + * def getSubViewer(self, comm = None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * cdef Viewer sub = Viewer() + * CHKERR( PetscViewerGetSubViewer(self.vwr, ccomm, &sub.vwr) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 231, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":232 + * def getSubViewer(self, comm = None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef Viewer sub = Viewer() # <<<<<<<<<<<<<< + * CHKERR( PetscViewerGetSubViewer(self.vwr, ccomm, &sub.vwr) ) + * return sub + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sub = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":233 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef Viewer sub = Viewer() + * CHKERR( PetscViewerGetSubViewer(self.vwr, ccomm, &sub.vwr) ) # <<<<<<<<<<<<<< + * return sub + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerGetSubViewer(__pyx_v_self->vwr, __pyx_v_ccomm, (&__pyx_v_sub->vwr))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":234 + * cdef Viewer sub = Viewer() + * CHKERR( PetscViewerGetSubViewer(self.vwr, ccomm, &sub.vwr) ) + * return sub # <<<<<<<<<<<<<< + * + * def restoreSubViewer(self, Viewer sub): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sub)); + __pyx_r = ((PyObject *)__pyx_v_sub); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":230 + * CHKERR( PetscViewerPopFormat(self.vwr) ) + * + * def getSubViewer(self, comm = None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef Viewer sub = Viewer() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getSubViewer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sub); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":236 + * return sub + * + * def restoreSubViewer(self, Viewer sub): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(sub.getComm(), PETSC_COMM_SELF) + * CHKERR( PetscViewerRestoreSubViewer(self.vwr, ccomm, &sub.vwr) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_35restoreSubViewer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_34restoreSubViewer[] = "Viewer.restoreSubViewer(self, Viewer sub)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_35restoreSubViewer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_sub = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreSubViewer (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sub,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sub)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreSubViewer") < 0)) __PYX_ERR(36, 236, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sub = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreSubViewer", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 236, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.restoreSubViewer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sub), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "sub", 0))) __PYX_ERR(36, 236, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_34restoreSubViewer(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_sub); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_34restoreSubViewer(struct PyPetscViewerObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_sub) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + MPI_Comm __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreSubViewer", 0); + + /* "petsc4py/PETSc/Viewer.pyx":237 + * + * def restoreSubViewer(self, Viewer sub): + * cdef MPI_Comm ccomm = def_Comm(sub.getComm(), PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerRestoreSubViewer(self.vwr, ccomm, &sub.vwr) ) + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_sub), __pyx_n_s_getComm); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_t_1, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 237, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ccomm = __pyx_t_4; + + /* "petsc4py/PETSc/Viewer.pyx":238 + * def restoreSubViewer(self, Viewer sub): + * cdef MPI_Comm ccomm = def_Comm(sub.getComm(), PETSC_COMM_SELF) + * CHKERR( PetscViewerRestoreSubViewer(self.vwr, ccomm, &sub.vwr) ) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerRestoreSubViewer(__pyx_v_self->vwr, __pyx_v_ccomm, (&__pyx_v_sub->vwr))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 238, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":236 + * return sub + * + * def restoreSubViewer(self, Viewer sub): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(sub.getComm(), PETSC_COMM_SELF) + * CHKERR( PetscViewerRestoreSubViewer(self.vwr, ccomm, &sub.vwr) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.restoreSubViewer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":241 + * + * @classmethod + * def STDOUT(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_37STDOUT(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_36STDOUT[] = "Viewer.STDOUT(type cls, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_37STDOUT(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STDOUT (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STDOUT") < 0)) __PYX_ERR(36, 241, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STDOUT", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 241, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.STDOUT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_36STDOUT(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_36STDOUT(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscViewer __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STDOUT", 0); + + /* "petsc4py/PETSc/Viewer.pyx":242 + * @classmethod + * def STDOUT(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDOUT_(ccomm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 242, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":243 + * def STDOUT(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() # <<<<<<<<<<<<<< + * viewer.vwr = PETSC_VIEWER_STDOUT_(ccomm) + * PetscINCREF(viewer.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_viewer = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":244 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDOUT_(ccomm) # <<<<<<<<<<<<<< + * PetscINCREF(viewer.obj) + * return viewer + */ + __pyx_t_3 = PETSC_VIEWER_STDOUT_(__pyx_v_ccomm); if (unlikely(__pyx_t_3 == ((PetscViewer)NULL) && PyErr_Occurred())) __PYX_ERR(36, 244, __pyx_L1_error) + __pyx_v_viewer->vwr = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":245 + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDOUT_(ccomm) + * PetscINCREF(viewer.obj) # <<<<<<<<<<<<<< + * return viewer + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_viewer->__pyx_base.obj)); + + /* "petsc4py/PETSc/Viewer.pyx":246 + * viewer.vwr = PETSC_VIEWER_STDOUT_(ccomm) + * PetscINCREF(viewer.obj) + * return viewer # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_viewer)); + __pyx_r = ((PyObject *)__pyx_v_viewer); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":241 + * + * @classmethod + * def STDOUT(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.STDOUT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_viewer); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":249 + * + * @classmethod + * def STDERR(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_39STDERR(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_38STDERR[] = "Viewer.STDERR(type cls, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_39STDERR(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("STDERR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "STDERR") < 0)) __PYX_ERR(36, 249, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("STDERR", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 249, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.STDERR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_38STDERR(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_38STDERR(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscViewer __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("STDERR", 0); + + /* "petsc4py/PETSc/Viewer.pyx":250 + * @classmethod + * def STDERR(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDERR_(ccomm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 250, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":251 + * def STDERR(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() # <<<<<<<<<<<<<< + * viewer.vwr = PETSC_VIEWER_STDERR_(ccomm) + * PetscINCREF(viewer.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_viewer = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":252 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDERR_(ccomm) # <<<<<<<<<<<<<< + * PetscINCREF(viewer.obj) + * return viewer + */ + __pyx_t_3 = PETSC_VIEWER_STDERR_(__pyx_v_ccomm); if (unlikely(__pyx_t_3 == ((PetscViewer)NULL) && PyErr_Occurred())) __PYX_ERR(36, 252, __pyx_L1_error) + __pyx_v_viewer->vwr = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":253 + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_STDERR_(ccomm) + * PetscINCREF(viewer.obj) # <<<<<<<<<<<<<< + * return viewer + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_viewer->__pyx_base.obj)); + + /* "petsc4py/PETSc/Viewer.pyx":254 + * viewer.vwr = PETSC_VIEWER_STDERR_(ccomm) + * PetscINCREF(viewer.obj) + * return viewer # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_viewer)); + __pyx_r = ((PyObject *)__pyx_v_viewer); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":249 + * + * @classmethod + * def STDERR(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.STDERR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_viewer); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":257 + * + * @classmethod + * def ASCII(cls, name, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_41ASCII(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_40ASCII[] = "Viewer.ASCII(type cls, name, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_41ASCII(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ASCII (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ASCII") < 0)) __PYX_ERR(36, 257, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ASCII", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 257, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.ASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_40ASCII(((PyTypeObject*)__pyx_v_cls), __pyx_v_name, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_40ASCII(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_name, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ASCII", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":258 + * @classmethod + * def ASCII(cls, name, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 258, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":259 + * def ASCII(cls, name, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef Viewer viewer = Viewer() + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":260 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef Viewer viewer = Viewer() + * CHKERR( PetscViewerASCIIOpen(ccomm, cname, &viewer.vwr) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":261 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef Viewer viewer = Viewer() # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIOpen(ccomm, cname, &viewer.vwr) ) + * return viewer + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_viewer = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":262 + * name = str2bytes(name, &cname) + * cdef Viewer viewer = Viewer() + * CHKERR( PetscViewerASCIIOpen(ccomm, cname, &viewer.vwr) ) # <<<<<<<<<<<<<< + * return viewer + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIOpen(__pyx_v_ccomm, __pyx_v_cname, (&__pyx_v_viewer->vwr))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 262, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":263 + * cdef Viewer viewer = Viewer() + * CHKERR( PetscViewerASCIIOpen(ccomm, cname, &viewer.vwr) ) + * return viewer # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_viewer)); + __pyx_r = ((PyObject *)__pyx_v_viewer); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":257 + * + * @classmethod + * def ASCII(cls, name, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.ASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_viewer); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":266 + * + * @classmethod + * def BINARY(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_43BINARY(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_42BINARY[] = "Viewer.BINARY(type cls, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_43BINARY(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("BINARY (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "BINARY") < 0)) __PYX_ERR(36, 266, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("BINARY", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 266, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.BINARY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_42BINARY(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_42BINARY(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscViewer __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("BINARY", 0); + + /* "petsc4py/PETSc/Viewer.pyx":267 + * @classmethod + * def BINARY(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_BINARY_(ccomm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 267, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":268 + * def BINARY(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() # <<<<<<<<<<<<<< + * viewer.vwr = PETSC_VIEWER_BINARY_(ccomm) + * PetscINCREF(viewer.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_viewer = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":269 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_BINARY_(ccomm) # <<<<<<<<<<<<<< + * PetscINCREF(viewer.obj) + * return viewer + */ + __pyx_t_3 = PETSC_VIEWER_BINARY_(__pyx_v_ccomm); if (unlikely(__pyx_t_3 == ((PetscViewer)NULL) && PyErr_Occurred())) __PYX_ERR(36, 269, __pyx_L1_error) + __pyx_v_viewer->vwr = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":270 + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_BINARY_(ccomm) + * PetscINCREF(viewer.obj) # <<<<<<<<<<<<<< + * return viewer + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_viewer->__pyx_base.obj)); + + /* "petsc4py/PETSc/Viewer.pyx":271 + * viewer.vwr = PETSC_VIEWER_BINARY_(ccomm) + * PetscINCREF(viewer.obj) + * return viewer # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_viewer)); + __pyx_r = ((PyObject *)__pyx_v_viewer); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":266 + * + * @classmethod + * def BINARY(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.BINARY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_viewer); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":274 + * + * @classmethod + * def DRAW(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_45DRAW(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_44DRAW[] = "Viewer.DRAW(type cls, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_45DRAW(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("DRAW (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "DRAW") < 0)) __PYX_ERR(36, 274, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("DRAW", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 274, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.DRAW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_44DRAW(((PyTypeObject*)__pyx_v_cls), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_44DRAW(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscViewer __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("DRAW", 0); + + /* "petsc4py/PETSc/Viewer.pyx":275 + * @classmethod + * def DRAW(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_DRAW_(ccomm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 275, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":276 + * def DRAW(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() # <<<<<<<<<<<<<< + * viewer.vwr = PETSC_VIEWER_DRAW_(ccomm) + * PetscINCREF(viewer.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_viewer = ((struct PyPetscViewerObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":277 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_DRAW_(ccomm) # <<<<<<<<<<<<<< + * PetscINCREF(viewer.obj) + * return viewer + */ + __pyx_t_3 = PETSC_VIEWER_DRAW_(__pyx_v_ccomm); if (unlikely(__pyx_t_3 == ((PetscViewer)NULL) && PyErr_Occurred())) __PYX_ERR(36, 277, __pyx_L1_error) + __pyx_v_viewer->vwr = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":278 + * cdef Viewer viewer = Viewer() + * viewer.vwr = PETSC_VIEWER_DRAW_(ccomm) + * PetscINCREF(viewer.obj) # <<<<<<<<<<<<<< + * return viewer + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_viewer->__pyx_base.obj)); + + /* "petsc4py/PETSc/Viewer.pyx":279 + * viewer.vwr = PETSC_VIEWER_DRAW_(ccomm) + * PetscINCREF(viewer.obj) + * return viewer # <<<<<<<<<<<<<< + * + * # --- ASCII viewers --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_viewer)); + __pyx_r = ((PyObject *)__pyx_v_viewer); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":274 + * + * @classmethod + * def DRAW(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.DRAW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_viewer); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":283 + * # --- ASCII viewers --- + * + * def setASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_47setASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_46setASCIITab[] = "Viewer.setASCIITab(self, tabs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_47setASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tabs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setASCIITab (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tabs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tabs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASCIITab") < 0)) __PYX_ERR(36, 283, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tabs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASCIITab", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 283, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_46setASCIITab(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_tabs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_46setASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs) { + PetscInt __pyx_v_ctabs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":284 + * + * def setASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_tabs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(36, 284, __pyx_L1_error) + __pyx_v_ctabs = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":285 + * def setASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) # <<<<<<<<<<<<<< + * + * def getASCIITab(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIISetTab(__pyx_v_self->vwr, __pyx_v_ctabs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 285, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":283 + * # --- ASCII viewers --- + * + * def setASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":287 + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) + * + * def getASCIITab(self): # <<<<<<<<<<<<<< + * cdef PetscInt tabs = 0 + * CHKERR( PetscViewerASCIIGetTab(self.vwr, &tabs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_49getASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_48getASCIITab[] = "Viewer.getASCIITab(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_49getASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getASCIITab (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getASCIITab", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getASCIITab", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_48getASCIITab(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_48getASCIITab(struct PyPetscViewerObject *__pyx_v_self) { + PetscInt __pyx_v_tabs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":288 + * + * def getASCIITab(self): + * cdef PetscInt tabs = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIGetTab(self.vwr, &tabs) ) + * return toInt(tabs) + */ + __pyx_v_tabs = 0; + + /* "petsc4py/PETSc/Viewer.pyx":289 + * def getASCIITab(self): + * cdef PetscInt tabs = 0 + * CHKERR( PetscViewerASCIIGetTab(self.vwr, &tabs) ) # <<<<<<<<<<<<<< + * return toInt(tabs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIGetTab(__pyx_v_self->vwr, (&__pyx_v_tabs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 289, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":290 + * cdef PetscInt tabs = 0 + * CHKERR( PetscViewerASCIIGetTab(self.vwr, &tabs) ) + * return toInt(tabs) # <<<<<<<<<<<<<< + * + * def addASCIITab(self, tabs): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_tabs); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":287 + * CHKERR( PetscViewerASCIISetTab(self.vwr, ctabs) ) + * + * def getASCIITab(self): # <<<<<<<<<<<<<< + * cdef PetscInt tabs = 0 + * CHKERR( PetscViewerASCIIGetTab(self.vwr, &tabs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":292 + * return toInt(tabs) + * + * def addASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_51addASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_50addASCIITab[] = "Viewer.addASCIITab(self, tabs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_51addASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tabs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addASCIITab (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tabs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tabs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addASCIITab") < 0)) __PYX_ERR(36, 292, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tabs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addASCIITab", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 292, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.addASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_50addASCIITab(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_tabs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_50addASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs) { + PetscInt __pyx_v_ctabs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":293 + * + * def addASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_tabs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(36, 293, __pyx_L1_error) + __pyx_v_ctabs = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":294 + * def addASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) # <<<<<<<<<<<<<< + * + * def subtractASCIITab(self, tabs): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIAddTab(__pyx_v_self->vwr, __pyx_v_ctabs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 294, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":292 + * return toInt(tabs) + * + * def addASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.addASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":296 + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) + * + * def subtractASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_53subtractASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_52subtractASCIITab[] = "Viewer.subtractASCIITab(self, tabs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_53subtractASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tabs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("subtractASCIITab (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tabs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tabs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "subtractASCIITab") < 0)) __PYX_ERR(36, 296, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tabs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("subtractASCIITab", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 296, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.subtractASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_52subtractASCIITab(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_tabs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_52subtractASCIITab(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_tabs) { + PetscInt __pyx_v_ctabs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("subtractASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":297 + * + * def subtractASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_tabs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(36, 297, __pyx_L1_error) + __pyx_v_ctabs = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":298 + * def subtractASCIITab(self, tabs): + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) # <<<<<<<<<<<<<< + * + * def pushASCIISynchronized(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIISubtractTab(__pyx_v_self->vwr, __pyx_v_ctabs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 298, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":296 + * CHKERR( PetscViewerASCIIAddTab(self.vwr, ctabs) ) + * + * def subtractASCIITab(self, tabs): # <<<<<<<<<<<<<< + * cdef PetscInt ctabs = asInt(tabs) + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.subtractASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":300 + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) + * + * def pushASCIISynchronized(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPushSynchronized(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_55pushASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_54pushASCIISynchronized[] = "Viewer.pushASCIISynchronized(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_55pushASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushASCIISynchronized (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("pushASCIISynchronized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "pushASCIISynchronized", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_54pushASCIISynchronized(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_54pushASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushASCIISynchronized", 0); + + /* "petsc4py/PETSc/Viewer.pyx":301 + * + * def pushASCIISynchronized(self): + * CHKERR( PetscViewerASCIIPushSynchronized(self.vwr) ) # <<<<<<<<<<<<<< + * + * def popASCIISynchronized(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPushSynchronized(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 301, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":300 + * CHKERR( PetscViewerASCIISubtractTab(self.vwr, ctabs) ) + * + * def pushASCIISynchronized(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPushSynchronized(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.pushASCIISynchronized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":303 + * CHKERR( PetscViewerASCIIPushSynchronized(self.vwr) ) + * + * def popASCIISynchronized(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPopSynchronized(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_57popASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_56popASCIISynchronized[] = "Viewer.popASCIISynchronized(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_57popASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popASCIISynchronized (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popASCIISynchronized", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popASCIISynchronized", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_56popASCIISynchronized(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_56popASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popASCIISynchronized", 0); + + /* "petsc4py/PETSc/Viewer.pyx":304 + * + * def popASCIISynchronized(self): + * CHKERR( PetscViewerASCIIPopSynchronized(self.vwr) ) # <<<<<<<<<<<<<< + * + * def pushASCIITab(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPopSynchronized(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 304, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":303 + * CHKERR( PetscViewerASCIIPushSynchronized(self.vwr) ) + * + * def popASCIISynchronized(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPopSynchronized(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.popASCIISynchronized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":306 + * CHKERR( PetscViewerASCIIPopSynchronized(self.vwr) ) + * + * def pushASCIITab(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPushTab(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_59pushASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_58pushASCIITab[] = "Viewer.pushASCIITab(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_59pushASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushASCIITab (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("pushASCIITab", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "pushASCIITab", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_58pushASCIITab(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_58pushASCIITab(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":307 + * + * def pushASCIITab(self): + * CHKERR( PetscViewerASCIIPushTab(self.vwr) ) # <<<<<<<<<<<<<< + * + * def popASCIITab(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPushTab(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 307, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":306 + * CHKERR( PetscViewerASCIIPopSynchronized(self.vwr) ) + * + * def pushASCIITab(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPushTab(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.pushASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":309 + * CHKERR( PetscViewerASCIIPushTab(self.vwr) ) + * + * def popASCIITab(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPopTab(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_61popASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_60popASCIITab[] = "Viewer.popASCIITab(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_61popASCIITab(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popASCIITab (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popASCIITab", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popASCIITab", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_60popASCIITab(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_60popASCIITab(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popASCIITab", 0); + + /* "petsc4py/PETSc/Viewer.pyx":310 + * + * def popASCIITab(self): + * CHKERR( PetscViewerASCIIPopTab(self.vwr) ) # <<<<<<<<<<<<<< + * + * def useASCIITabs(self, flag): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPopTab(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 310, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":309 + * CHKERR( PetscViewerASCIIPushTab(self.vwr) ) + * + * def popASCIITab(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPopTab(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.popASCIITab", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":312 + * CHKERR( PetscViewerASCIIPopTab(self.vwr) ) + * + * def useASCIITabs(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool flg = flag + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_63useASCIITabs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_62useASCIITabs[] = "Viewer.useASCIITabs(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_63useASCIITabs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("useASCIITabs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "useASCIITabs") < 0)) __PYX_ERR(36, 312, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("useASCIITabs", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 312, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.useASCIITabs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_62useASCIITabs(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_62useASCIITabs(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_flg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("useASCIITabs", 0); + + /* "petsc4py/PETSc/Viewer.pyx":313 + * + * def useASCIITabs(self, flag): + * cdef PetscBool flg = flag # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 313, __pyx_L1_error) + __pyx_v_flg = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":314 + * def useASCIITabs(self, flag): + * cdef PetscBool flg = flag + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) # <<<<<<<<<<<<<< + * + * def printfASCII(self, msg): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIUseTabs(__pyx_v_self->vwr, __pyx_v_flg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 314, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":312 + * CHKERR( PetscViewerASCIIPopTab(self.vwr) ) + * + * def useASCIITabs(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool flg = flag + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.useASCIITabs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":316 + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) + * + * def printfASCII(self, msg): # <<<<<<<<<<<<<< + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_65printfASCII(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_64printfASCII[] = "Viewer.printfASCII(self, msg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_65printfASCII(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_msg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("printfASCII (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "printfASCII") < 0)) __PYX_ERR(36, 316, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_msg = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("printfASCII", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 316, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.printfASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_64printfASCII(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_msg); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_64printfASCII(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_msg) { + char const *__pyx_v_cmsg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("printfASCII", 0); + __Pyx_INCREF(__pyx_v_msg); + + /* "petsc4py/PETSc/Viewer.pyx":317 + * + * def printfASCII(self, msg): + * cdef const char *cmsg = NULL # <<<<<<<<<<<<<< + * msg = str2bytes(msg, &cmsg) + * CHKERR( PetscViewerASCIIPrintf(self.vwr, '%s', cmsg) ) + */ + __pyx_v_cmsg = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":318 + * def printfASCII(self, msg): + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPrintf(self.vwr, '%s', cmsg) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_msg, (&__pyx_v_cmsg)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":319 + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + * CHKERR( PetscViewerASCIIPrintf(self.vwr, '%s', cmsg) ) # <<<<<<<<<<<<<< + * + * def printfASCIISynchronized(self, msg): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPrintf(__pyx_v_self->vwr, ((char *)"%s"), __pyx_v_cmsg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 319, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":316 + * CHKERR( PetscViewerASCIIUseTabs(self.vwr, flg) ) + * + * def printfASCII(self, msg): # <<<<<<<<<<<<<< + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.printfASCII", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_msg); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":321 + * CHKERR( PetscViewerASCIIPrintf(self.vwr, '%s', cmsg) ) + * + * def printfASCIISynchronized(self, msg): # <<<<<<<<<<<<<< + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_67printfASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_66printfASCIISynchronized[] = "Viewer.printfASCIISynchronized(self, msg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_67printfASCIISynchronized(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_msg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("printfASCIISynchronized (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_msg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_msg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "printfASCIISynchronized") < 0)) __PYX_ERR(36, 321, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_msg = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("printfASCIISynchronized", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 321, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.printfASCIISynchronized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_66printfASCIISynchronized(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_msg); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_66printfASCIISynchronized(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_msg) { + char const *__pyx_v_cmsg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("printfASCIISynchronized", 0); + __Pyx_INCREF(__pyx_v_msg); + + /* "petsc4py/PETSc/Viewer.pyx":322 + * + * def printfASCIISynchronized(self, msg): + * cdef const char *cmsg = NULL # <<<<<<<<<<<<<< + * msg = str2bytes(msg, &cmsg) + * CHKERR( PetscViewerASCIISynchronizedPrintf(self.vwr, '%s', cmsg) ) + */ + __pyx_v_cmsg = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":323 + * def printfASCIISynchronized(self, msg): + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIISynchronizedPrintf(self.vwr, '%s', cmsg) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_msg, (&__pyx_v_cmsg)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_msg, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":324 + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + * CHKERR( PetscViewerASCIISynchronizedPrintf(self.vwr, '%s', cmsg) ) # <<<<<<<<<<<<<< + * + * # --- methods specific to file viewers --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIISynchronizedPrintf(__pyx_v_self->vwr, ((char *)"%s"), __pyx_v_cmsg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 324, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":321 + * CHKERR( PetscViewerASCIIPrintf(self.vwr, '%s', cmsg) ) + * + * def printfASCIISynchronized(self, msg): # <<<<<<<<<<<<<< + * cdef const char *cmsg = NULL + * msg = str2bytes(msg, &cmsg) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.printfASCIISynchronized", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_msg); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":328 + * # --- methods specific to file viewers --- + * + * def flush(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFlush(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_69flush(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_68flush[] = "Viewer.flush(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_69flush(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("flush (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("flush", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "flush", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_68flush(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_68flush(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("flush", 0); + + /* "petsc4py/PETSc/Viewer.pyx":329 + * + * def flush(self): + * CHKERR( PetscViewerFlush(self.vwr) ) # <<<<<<<<<<<<<< + * + * def setFileMode(self, mode): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFlush(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 329, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":328 + * # --- methods specific to file viewers --- + * + * def flush(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFlush(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.flush", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":331 + * CHKERR( PetscViewerFlush(self.vwr) ) + * + * def setFileMode(self, mode): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, filemode(mode)) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_71setFileMode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_70setFileMode[] = "Viewer.setFileMode(self, mode)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_71setFileMode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFileMode (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFileMode") < 0)) __PYX_ERR(36, 331, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFileMode", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 331, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setFileMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_70setFileMode(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_70setFileMode(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_mode) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscFileMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFileMode", 0); + + /* "petsc4py/PETSc/Viewer.pyx":332 + * + * def setFileMode(self, mode): + * CHKERR( PetscViewerFileSetMode(self.vwr, filemode(mode)) ) # <<<<<<<<<<<<<< + * + * def getFileMode(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_1 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 332, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->vwr, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 332, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":331 + * CHKERR( PetscViewerFlush(self.vwr) ) + * + * def setFileMode(self, mode): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, filemode(mode)) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setFileMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":334 + * CHKERR( PetscViewerFileSetMode(self.vwr, filemode(mode)) ) + * + * def getFileMode(self): # <<<<<<<<<<<<<< + * cdef PetscFileMode mode = PETSC_FILE_MODE_READ + * CHKERR( PetscViewerFileGetMode(self.vwr, &mode) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_73getFileMode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_72getFileMode[] = "Viewer.getFileMode(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_73getFileMode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFileMode (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFileMode", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFileMode", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_72getFileMode(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_72getFileMode(struct PyPetscViewerObject *__pyx_v_self) { + PetscFileMode __pyx_v_mode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFileMode", 0); + + /* "petsc4py/PETSc/Viewer.pyx":335 + * + * def getFileMode(self): + * cdef PetscFileMode mode = PETSC_FILE_MODE_READ # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileGetMode(self.vwr, &mode) ) + * return mode + */ + __pyx_v_mode = FILE_MODE_READ; + + /* "petsc4py/PETSc/Viewer.pyx":336 + * def getFileMode(self): + * cdef PetscFileMode mode = PETSC_FILE_MODE_READ + * CHKERR( PetscViewerFileGetMode(self.vwr, &mode) ) # <<<<<<<<<<<<<< + * return mode + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileGetMode(__pyx_v_self->vwr, (&__pyx_v_mode))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 336, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":337 + * cdef PetscFileMode mode = PETSC_FILE_MODE_READ + * CHKERR( PetscViewerFileGetMode(self.vwr, &mode) ) + * return mode # <<<<<<<<<<<<<< + * + * def setFileName(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscFileMode(__pyx_v_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":334 + * CHKERR( PetscViewerFileSetMode(self.vwr, filemode(mode)) ) + * + * def getFileMode(self): # <<<<<<<<<<<<<< + * cdef PetscFileMode mode = PETSC_FILE_MODE_READ + * CHKERR( PetscViewerFileGetMode(self.vwr, &mode) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getFileMode", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":339 + * return mode + * + * def setFileName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_75setFileName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_74setFileName[] = "Viewer.setFileName(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_75setFileName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFileName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFileName") < 0)) __PYX_ERR(36, 339, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFileName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 339, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setFileName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_74setFileName(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_74setFileName(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFileName", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":340 + * + * def setFileName(self, name): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( PetscViewerFileSetName(self.vwr, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":341 + * def setFileName(self, name): + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":342 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * CHKERR( PetscViewerFileSetName(self.vwr, cval) ) # <<<<<<<<<<<<<< + * + * def getFileName(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->vwr, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 342, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":339 + * return mode + * + * def setFileName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setFileName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":344 + * CHKERR( PetscViewerFileSetName(self.vwr, cval) ) + * + * def getFileName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscViewerFileGetName(self.vwr, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_77getFileName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_76getFileName[] = "Viewer.getFileName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_77getFileName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFileName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFileName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFileName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_76getFileName(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_76getFileName(struct PyPetscViewerObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFileName", 0); + + /* "petsc4py/PETSc/Viewer.pyx":345 + * + * def getFileName(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileGetName(self.vwr, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":346 + * def getFileName(self): + * cdef const char *cval = NULL + * CHKERR( PetscViewerFileGetName(self.vwr, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileGetName(__pyx_v_self->vwr, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 346, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":347 + * cdef const char *cval = NULL + * CHKERR( PetscViewerFileGetName(self.vwr, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- methods specific to draw viewers --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":344 + * CHKERR( PetscViewerFileSetName(self.vwr, cval) ) + * + * def getFileName(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PetscViewerFileGetName(self.vwr, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.getFileName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":351 + * # --- methods specific to draw viewers --- + * + * def setDrawInfo(self, display=None, title=None, position=None, size=None): # <<<<<<<<<<<<<< + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_79setDrawInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_78setDrawInfo[] = "Viewer.setDrawInfo(self, display=None, title=None, position=None, size=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_79setDrawInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_display = 0; + PyObject *__pyx_v_title = 0; + PyObject *__pyx_v_position = 0; + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDrawInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_display,&__pyx_n_s_title,&__pyx_n_s_position,&__pyx_n_s_size,0}; + PyObject* values[4] = {0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_display); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_title); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_position); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDrawInfo") < 0)) __PYX_ERR(36, 351, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_display = values[0]; + __pyx_v_title = values[1]; + __pyx_v_position = values[2]; + __pyx_v_size = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDrawInfo", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 351, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setDrawInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_78setDrawInfo(((struct PyPetscViewerObject *)__pyx_v_self), __pyx_v_display, __pyx_v_title, __pyx_v_position, __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_78setDrawInfo(struct PyPetscViewerObject *__pyx_v_self, PyObject *__pyx_v_display, PyObject *__pyx_v_title, PyObject *__pyx_v_position, PyObject *__pyx_v_size) { + char const *__pyx_v_cdisplay; + char const *__pyx_v_ctitle; + int __pyx_v_x; + int __pyx_v_y; + int __pyx_v_h; + int __pyx_v_w; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *(*__pyx_t_6)(PyObject *); + int __pyx_t_7; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PetscErrorCode __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDrawInfo", 0); + __Pyx_INCREF(__pyx_v_display); + __Pyx_INCREF(__pyx_v_title); + + /* "petsc4py/PETSc/Viewer.pyx":352 + * + * def setDrawInfo(self, display=None, title=None, position=None, size=None): + * cdef const char *cdisplay = NULL # <<<<<<<<<<<<<< + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) + */ + __pyx_v_cdisplay = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":353 + * def setDrawInfo(self, display=None, title=None, position=None, size=None): + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL # <<<<<<<<<<<<<< + * display = str2bytes(display, &cdisplay) + * title = str2bytes(title, &ctitle) + */ + __pyx_v_ctitle = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":354 + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) # <<<<<<<<<<<<<< + * title = str2bytes(title, &ctitle) + * cdef int x, y, h, w + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_display, (&__pyx_v_cdisplay)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_display, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":355 + * cdef const char *ctitle = NULL + * display = str2bytes(display, &cdisplay) + * title = str2bytes(title, &ctitle) # <<<<<<<<<<<<<< + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_title, (&__pyx_v_ctitle)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_title, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":357 + * title = str2bytes(title, &ctitle) + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE # <<<<<<<<<<<<<< + * if position not in (None, PETSC_DECIDE): + * x, y = position + */ + __pyx_v_x = PETSC_DECIDE; + __pyx_v_y = PETSC_DECIDE; + __pyx_v_h = PETSC_DECIDE; + __pyx_v_w = PETSC_DECIDE; + + /* "petsc4py/PETSc/Viewer.pyx":358 + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * x, y = position + * if size not in (None, PETSC_DECIDE): + */ + __Pyx_INCREF(__pyx_v_position); + __pyx_t_1 = __pyx_v_position; + __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 358, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(36, 358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(36, 358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(36, 358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/Viewer.pyx":359 + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): + * x, y = position # <<<<<<<<<<<<<< + * if size not in (None, PETSC_DECIDE): + * try: + */ + if ((likely(PyTuple_CheckExact(__pyx_v_position))) || (PyList_CheckExact(__pyx_v_position))) { + PyObject* sequence = __pyx_v_position; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(36, 359, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(36, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_3 = PyObject_GetIter(__pyx_v_position); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_5 = __pyx_t_6(__pyx_t_3); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_3), 2) < 0) __PYX_ERR(36, 359, __pyx_L1_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(36, 359, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_1); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_x = __pyx_t_7; + __pyx_v_y = __pyx_t_8; + + /* "petsc4py/PETSc/Viewer.pyx":358 + * cdef int x, y, h, w + * x = y = h = w = PETSC_DECIDE + * if position not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * x, y = position + * if size not in (None, PETSC_DECIDE): + */ + } + + /* "petsc4py/PETSc/Viewer.pyx":360 + * if position not in (None, PETSC_DECIDE): + * x, y = position + * if size not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * try: + * w, h = size + */ + __Pyx_INCREF(__pyx_v_size); + __pyx_t_5 = __pyx_v_size; + __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 360, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(36, 360, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (__pyx_t_2) { + } else { + __pyx_t_4 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 360, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(36, 360, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __pyx_t_2; + __pyx_L9_bool_binop_done:; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = (__pyx_t_4 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Viewer.pyx":361 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + /*try:*/ { + + /* "petsc4py/PETSc/Viewer.pyx":362 + * if size not in (None, PETSC_DECIDE): + * try: + * w, h = size # <<<<<<<<<<<<<< + * except TypeError: + * w = h = size + */ + if ((likely(PyTuple_CheckExact(__pyx_v_size))) || (PyList_CheckExact(__pyx_v_size))) { + PyObject* sequence = __pyx_v_size; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(36, 362, __pyx_L11_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_3); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(36, 362, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 362, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_1 = PyObject_GetIter(__pyx_v_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 362, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = Py_TYPE(__pyx_t_1)->tp_iternext; + index = 0; __pyx_t_5 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L17_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L17_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_1), 2) < 0) __PYX_ERR(36, 362, __pyx_L11_error) + __pyx_t_6 = NULL; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L18_unpacking_done; + __pyx_L17_unpacking_failed:; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(36, 362, __pyx_L11_error) + __pyx_L18_unpacking_done:; + } + __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 362, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 362, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_w = __pyx_t_8; + __pyx_v_h = __pyx_t_7; + + /* "petsc4py/PETSc/Viewer.pyx":361 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + } + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + goto __pyx_L16_try_end; + __pyx_L11_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":363 + * try: + * w, h = size + * except TypeError: # <<<<<<<<<<<<<< + * w = h = size + * CHKERR( PetscViewerDrawSetInfo(self.vwr, + */ + __pyx_t_7 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_7) { + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setDrawInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(36, 363, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":364 + * w, h = size + * except TypeError: + * w = h = size # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDrawSetInfo(self.vwr, + * cdisplay, ctitle, + */ + __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_v_size); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(36, 364, __pyx_L13_except_error) + __pyx_v_w = __pyx_t_7; + __pyx_v_h = __pyx_t_7; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L12_exception_handled; + } + goto __pyx_L13_except_error; + __pyx_L13_except_error:; + + /* "petsc4py/PETSc/Viewer.pyx":361 + * x, y = position + * if size not in (None, PETSC_DECIDE): + * try: # <<<<<<<<<<<<<< + * w, h = size + * except TypeError: + */ + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + goto __pyx_L1_error; + __pyx_L12_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_L16_try_end:; + } + + /* "petsc4py/PETSc/Viewer.pyx":360 + * if position not in (None, PETSC_DECIDE): + * x, y = position + * if size not in (None, PETSC_DECIDE): # <<<<<<<<<<<<<< + * try: + * w, h = size + */ + } + + /* "petsc4py/PETSc/Viewer.pyx":365 + * except TypeError: + * w = h = size + * CHKERR( PetscViewerDrawSetInfo(self.vwr, # <<<<<<<<<<<<<< + * cdisplay, ctitle, + * x, y, w, h) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerDrawSetInfo(__pyx_v_self->vwr, __pyx_v_cdisplay, __pyx_v_ctitle, __pyx_v_x, __pyx_v_y, __pyx_v_w, __pyx_v_h)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 365, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":351 + * # --- methods specific to draw viewers --- + * + * def setDrawInfo(self, display=None, title=None, position=None, size=None): # <<<<<<<<<<<<<< + * cdef const char *cdisplay = NULL + * cdef const char *ctitle = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.setDrawInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_display); + __Pyx_XDECREF(__pyx_v_title); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":369 + * x, y, w, h) ) + * + * def clearDraw(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDrawClear(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_81clearDraw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Viewer_80clearDraw[] = "Viewer.clearDraw(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Viewer_81clearDraw(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearDraw (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clearDraw", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clearDraw", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Viewer_80clearDraw(((struct PyPetscViewerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Viewer_80clearDraw(struct PyPetscViewerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearDraw", 0); + + /* "petsc4py/PETSc/Viewer.pyx":370 + * + * def clearDraw(self): + * CHKERR( PetscViewerDrawClear(self.vwr) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerDrawClear(__pyx_v_self->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 370, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":369 + * x, y, w, h) ) + * + * def clearDraw(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerDrawClear(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Viewer.clearDraw", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":376 + * cdef class ViewerHDF5(Viewer): + * + * def create(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_create[] = "ViewerHDF5.create(self, name, mode=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mode = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_mode,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(36, 376, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_mode = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 376, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_create(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self), __pyx_v_name, __pyx_v_mode, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_create(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_mode, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + char const *__pyx_v_cname; + PetscFileMode __pyx_v_cmode; + PetscViewer __pyx_v_newvwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscFileMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/Viewer.pyx":377 + * + * def create(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(36, 377, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Viewer.pyx":378 + * def create(self, name, mode=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":379 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":380 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) # <<<<<<<<<<<<<< + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_filemode(__pyx_v_mode); if (unlikely(__pyx_t_3 == ((PetscFileMode)((PetscFileMode)-1L)))) __PYX_ERR(36, 380, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + + /* "petsc4py/PETSc/Viewer.pyx":381 + * name = str2bytes(name, &cname) + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + */ + __pyx_v_newvwr = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":382 + * cdef PetscFileMode cmode = filemode(mode) + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerCreate(__pyx_v_ccomm, (&__pyx_v_newvwr))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 382, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":383 + * cdef PetscViewer newvwr = NULL + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr # <<<<<<<<<<<<<< + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.vwr = __pyx_v_newvwr; + + /* "petsc4py/PETSc/Viewer.pyx":384 + * CHKERR( PetscViewerCreate(ccomm, &newvwr) ) + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerSetType(__pyx_v_self->__pyx_base.vwr, PETSCVIEWERHDF5)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 384, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":385 + * PetscCLEAR(self.obj); self.vwr = newvwr + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetMode(__pyx_v_self->__pyx_base.vwr, __pyx_v_cmode)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 385, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":386 + * CHKERR( PetscViewerSetType(self.vwr, PETSCVIEWERHDF5) ) + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerFileSetName(__pyx_v_self->__pyx_base.vwr, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 386, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":387 + * CHKERR( PetscViewerFileSetMode(self.vwr, cmode) ) + * CHKERR( PetscViewerFileSetName(self.vwr, cname) ) + * return self # <<<<<<<<<<<<<< + * + * def pushTimestepping(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":376 + * cdef class ViewerHDF5(Viewer): + * + * def create(self, name, mode=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":389 + * return self + * + * def pushTimestepping(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PushTimestepping(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_3pushTimestepping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_2pushTimestepping[] = "ViewerHDF5.pushTimestepping(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_3pushTimestepping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushTimestepping (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("pushTimestepping", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "pushTimestepping", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_2pushTimestepping(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_2pushTimestepping(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushTimestepping", 0); + + /* "petsc4py/PETSc/Viewer.pyx":390 + * + * def pushTimestepping(self): + * CHKERR( PetscViewerHDF5PushTimestepping(self.vwr) ) # <<<<<<<<<<<<<< + * + * def popTimestepping(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5PushTimestepping(__pyx_v_self->__pyx_base.vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 390, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":389 + * return self + * + * def pushTimestepping(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PushTimestepping(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.pushTimestepping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":392 + * CHKERR( PetscViewerHDF5PushTimestepping(self.vwr) ) + * + * def popTimestepping(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PopTimestepping(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_5popTimestepping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_4popTimestepping[] = "ViewerHDF5.popTimestepping(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_5popTimestepping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popTimestepping (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popTimestepping", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popTimestepping", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_4popTimestepping(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_4popTimestepping(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popTimestepping", 0); + + /* "petsc4py/PETSc/Viewer.pyx":393 + * + * def popTimestepping(self): + * CHKERR( PetscViewerHDF5PopTimestepping(self.vwr) ) # <<<<<<<<<<<<<< + * + * def getTimestep(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5PopTimestepping(__pyx_v_self->__pyx_base.vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 393, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":392 + * CHKERR( PetscViewerHDF5PushTimestepping(self.vwr) ) + * + * def popTimestepping(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PopTimestepping(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.popTimestepping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":395 + * CHKERR( PetscViewerHDF5PopTimestepping(self.vwr) ) + * + * def getTimestep(self): # <<<<<<<<<<<<<< + * cdef PetscInt ctimestep = 0 + * CHKERR( PetscViewerHDF5GetTimestep(self.vwr, &ctimestep) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_7getTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_6getTimestep[] = "ViewerHDF5.getTimestep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_7getTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTimestep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTimestep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTimestep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_6getTimestep(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_6getTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + PetscInt __pyx_v_ctimestep; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTimestep", 0); + + /* "petsc4py/PETSc/Viewer.pyx":396 + * + * def getTimestep(self): + * cdef PetscInt ctimestep = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5GetTimestep(self.vwr, &ctimestep) ) + * return toInt(ctimestep) + */ + __pyx_v_ctimestep = 0; + + /* "petsc4py/PETSc/Viewer.pyx":397 + * def getTimestep(self): + * cdef PetscInt ctimestep = 0 + * CHKERR( PetscViewerHDF5GetTimestep(self.vwr, &ctimestep) ) # <<<<<<<<<<<<<< + * return toInt(ctimestep) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5GetTimestep(__pyx_v_self->__pyx_base.vwr, (&__pyx_v_ctimestep))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 397, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":398 + * cdef PetscInt ctimestep = 0 + * CHKERR( PetscViewerHDF5GetTimestep(self.vwr, &ctimestep) ) + * return toInt(ctimestep) # <<<<<<<<<<<<<< + * + * def setTimestep(self, timestep): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ctimestep); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":395 + * CHKERR( PetscViewerHDF5PopTimestepping(self.vwr) ) + * + * def getTimestep(self): # <<<<<<<<<<<<<< + * cdef PetscInt ctimestep = 0 + * CHKERR( PetscViewerHDF5GetTimestep(self.vwr, &ctimestep) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.getTimestep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":400 + * return toInt(ctimestep) + * + * def setTimestep(self, timestep): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5SetTimestep(self.vwr, asInt(timestep)) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_9setTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_8setTimestep[] = "ViewerHDF5.setTimestep(self, timestep)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_9setTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_timestep = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTimestep (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_timestep,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_timestep)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTimestep") < 0)) __PYX_ERR(36, 400, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_timestep = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTimestep", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 400, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.setTimestep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_8setTimestep(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self), __pyx_v_timestep); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_8setTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_timestep) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTimestep", 0); + + /* "petsc4py/PETSc/Viewer.pyx":401 + * + * def setTimestep(self, timestep): + * CHKERR( PetscViewerHDF5SetTimestep(self.vwr, asInt(timestep)) ) # <<<<<<<<<<<<<< + * + * def incrementTimestep(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_timestep); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(36, 401, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5SetTimestep(__pyx_v_self->__pyx_base.vwr, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 401, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":400 + * return toInt(ctimestep) + * + * def setTimestep(self, timestep): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5SetTimestep(self.vwr, asInt(timestep)) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.setTimestep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":403 + * CHKERR( PetscViewerHDF5SetTimestep(self.vwr, asInt(timestep)) ) + * + * def incrementTimestep(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5IncrementTimestep(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_11incrementTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_10incrementTimestep[] = "ViewerHDF5.incrementTimestep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_11incrementTimestep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("incrementTimestep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("incrementTimestep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "incrementTimestep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_10incrementTimestep(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_10incrementTimestep(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("incrementTimestep", 0); + + /* "petsc4py/PETSc/Viewer.pyx":404 + * + * def incrementTimestep(self): + * CHKERR( PetscViewerHDF5IncrementTimestep(self.vwr) ) # <<<<<<<<<<<<<< + * + * def pushGroup(self, group): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5IncrementTimestep(__pyx_v_self->__pyx_base.vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 404, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":403 + * CHKERR( PetscViewerHDF5SetTimestep(self.vwr, asInt(timestep)) ) + * + * def incrementTimestep(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5IncrementTimestep(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.incrementTimestep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":406 + * CHKERR( PetscViewerHDF5IncrementTimestep(self.vwr) ) + * + * def pushGroup(self, group): # <<<<<<<<<<<<<< + * cdef const char *cgroup = NULL + * group = str2bytes(group, &cgroup) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_13pushGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_12pushGroup[] = "ViewerHDF5.pushGroup(self, group)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_13pushGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_group = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pushGroup (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_group,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_group)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pushGroup") < 0)) __PYX_ERR(36, 406, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_group = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pushGroup", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(36, 406, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.pushGroup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_12pushGroup(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self), __pyx_v_group); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_12pushGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self, PyObject *__pyx_v_group) { + char const *__pyx_v_cgroup; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pushGroup", 0); + __Pyx_INCREF(__pyx_v_group); + + /* "petsc4py/PETSc/Viewer.pyx":407 + * + * def pushGroup(self, group): + * cdef const char *cgroup = NULL # <<<<<<<<<<<<<< + * group = str2bytes(group, &cgroup) + * CHKERR( PetscViewerHDF5PushGroup(self.vwr, cgroup) ) + */ + __pyx_v_cgroup = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":408 + * def pushGroup(self, group): + * cdef const char *cgroup = NULL + * group = str2bytes(group, &cgroup) # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PushGroup(self.vwr, cgroup) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_group, (&__pyx_v_cgroup)); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_group, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":409 + * cdef const char *cgroup = NULL + * group = str2bytes(group, &cgroup) + * CHKERR( PetscViewerHDF5PushGroup(self.vwr, cgroup) ) # <<<<<<<<<<<<<< + * + * def popGroup(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5PushGroup(__pyx_v_self->__pyx_base.vwr, __pyx_v_cgroup)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 409, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":406 + * CHKERR( PetscViewerHDF5IncrementTimestep(self.vwr) ) + * + * def pushGroup(self, group): # <<<<<<<<<<<<<< + * cdef const char *cgroup = NULL + * group = str2bytes(group, &cgroup) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.pushGroup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_group); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":411 + * CHKERR( PetscViewerHDF5PushGroup(self.vwr, cgroup) ) + * + * def popGroup(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PopGroup(self.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_15popGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_14popGroup[] = "ViewerHDF5.popGroup(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_15popGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("popGroup (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("popGroup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "popGroup", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_14popGroup(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_14popGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("popGroup", 0); + + /* "petsc4py/PETSc/Viewer.pyx":412 + * + * def popGroup(self): + * CHKERR( PetscViewerHDF5PopGroup(self.vwr) ) # <<<<<<<<<<<<<< + * + * def getGroup(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5PopGroup(__pyx_v_self->__pyx_base.vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 412, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":411 + * CHKERR( PetscViewerHDF5PushGroup(self.vwr, cgroup) ) + * + * def popGroup(self): # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5PopGroup(self.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.popGroup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Viewer.pyx":414 + * CHKERR( PetscViewerHDF5PopGroup(self.vwr) ) + * + * def getGroup(self): # <<<<<<<<<<<<<< + * cdef char *cgroup = NULL + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_17getGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_16getGroup[] = "ViewerHDF5.getGroup(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_17getGroup(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGroup (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGroup", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGroup", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_16getGroup(((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10ViewerHDF5_16getGroup(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *__pyx_v_self) { + char *__pyx_v_cgroup; + PyObject *__pyx_v_group = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGroup", 0); + + /* "petsc4py/PETSc/Viewer.pyx":415 + * + * def getGroup(self): + * cdef char *cgroup = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) + * group = bytes2str(cgroup) + */ + __pyx_v_cgroup = NULL; + + /* "petsc4py/PETSc/Viewer.pyx":416 + * def getGroup(self): + * cdef char *cgroup = NULL + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) # <<<<<<<<<<<<<< + * group = bytes2str(cgroup) + * CHKERR( PetscFree(cgroup) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerHDF5GetGroup(__pyx_v_self->__pyx_base.vwr, NULL, (&__pyx_v_cgroup))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 416, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":417 + * cdef char *cgroup = NULL + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) + * group = bytes2str(cgroup) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cgroup) ) + * return group + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cgroup); if (unlikely(!__pyx_t_2)) __PYX_ERR(36, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_group = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":418 + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) + * group = bytes2str(cgroup) + * CHKERR( PetscFree(cgroup) ) # <<<<<<<<<<<<<< + * return group + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cgroup)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(36, 418, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":419 + * group = bytes2str(cgroup) + * CHKERR( PetscFree(cgroup) ) + * return group # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_group); + __pyx_r = __pyx_v_group; + goto __pyx_L0; + + /* "petsc4py/PETSc/Viewer.pyx":414 + * CHKERR( PetscViewerHDF5PopGroup(self.vwr) ) + * + * def getGroup(self): # <<<<<<<<<<<<<< + * cdef char *cgroup = NULL + * CHKERR( PetscViewerHDF5GetGroup(self.vwr, NULL, &cgroup) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.ViewerHDF5.getGroup", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_group); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":16 + * Type = RandomType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.rnd + * self.rnd = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Random_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Random_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random___cinit__(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Random___cinit__(struct PyPetscRandomObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Random.pyx":17 + * + * def __cinit__(self): + * self.obj = &self.rnd # <<<<<<<<<<<<<< + * self.rnd = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->rnd)); + + /* "petsc4py/PETSc/Random.pyx":18 + * def __cinit__(self): + * self.obj = &self.rnd + * self.rnd = NULL # <<<<<<<<<<<<<< + * + * def __call__(self): + */ + __pyx_v_self->rnd = NULL; + + /* "petsc4py/PETSc/Random.pyx":16 + * Type = RandomType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.rnd + * self.rnd = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":20 + * self.rnd = NULL + * + * def __call__(self): # <<<<<<<<<<<<<< + * return self.getValue() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__call__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__call__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_2__call__(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_2__call__(struct PyPetscRandomObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/Random.pyx":21 + * + * def __call__(self): + * return self.getValue() # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":20 + * self.rnd = NULL + * + * def __call__(self): # <<<<<<<<<<<<<< + * return self.getValue() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":23 + * return self.getValue() + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_4view[] = "Random.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(37, 23, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(37, 23, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(37, 23, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_4view(((struct PyPetscRandomObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_4view(struct PyPetscRandomObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Random.pyx":24 + * + * def view(self, Viewer viewer=None): + * assert self.obj != NULL # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_self->__pyx_base.obj != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(37, 24, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Random.pyx":25 + * def view(self, Viewer viewer=None): + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscRandomView(self.rnd, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Random.pyx":26 + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscRandomView(self.rnd, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Random.pyx":27 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscRandomView(self.rnd, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomView(__pyx_v_self->rnd, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 27, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":23 + * return self.getValue() + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":29 + * CHKERR( PetscRandomView(self.rnd, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscRandomDestroy(&self.rnd) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_6destroy[] = "Random.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_6destroy(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_6destroy(struct PyPetscRandomObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Random.pyx":30 + * + * def destroy(self): + * CHKERR( PetscRandomDestroy(&self.rnd) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomDestroy((&__pyx_v_self->rnd))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":31 + * def destroy(self): + * CHKERR( PetscRandomDestroy(&self.rnd) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":29 + * CHKERR( PetscRandomView(self.rnd, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscRandomDestroy(&self.rnd) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":33 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscRandomCreate(ccomm, &self.rnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_8create[] = "Random.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(37, 33, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(37, 33, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_8create(((struct PyPetscRandomObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_8create(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Random.pyx":34 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * CHKERR( PetscRandomCreate(ccomm, &self.rnd) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(37, 34, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Random.pyx":35 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscRandomCreate(ccomm, &self.rnd) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomCreate(__pyx_v_ccomm, (&__pyx_v_self->rnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 35, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":36 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscRandomCreate(ccomm, &self.rnd) ) + * return self # <<<<<<<<<<<<<< + * + * def setType(self, rnd_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":33 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscRandomCreate(ccomm, &self.rnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":38 + * return self + * + * def setType(self, rnd_type): # <<<<<<<<<<<<<< + * cdef PetscRandomType cval = NULL + * rnd_type = str2bytes(rnd_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_10setType[] = "Random.setType(self, rnd_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rnd_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rnd_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnd_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(37, 38, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_rnd_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(37, 38, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_10setType(((struct PyPetscRandomObject *)__pyx_v_self), __pyx_v_rnd_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_10setType(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_rnd_type) { + PetscRandomType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_rnd_type); + + /* "petsc4py/PETSc/Random.pyx":39 + * + * def setType(self, rnd_type): + * cdef PetscRandomType cval = NULL # <<<<<<<<<<<<<< + * rnd_type = str2bytes(rnd_type, &cval) + * CHKERR( PetscRandomSetType(self.rnd, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Random.pyx":40 + * def setType(self, rnd_type): + * cdef PetscRandomType cval = NULL + * rnd_type = str2bytes(rnd_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetType(self.rnd, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_rnd_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_rnd_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Random.pyx":41 + * cdef PetscRandomType cval = NULL + * rnd_type = str2bytes(rnd_type, &cval) + * CHKERR( PetscRandomSetType(self.rnd, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomSetType(__pyx_v_self->rnd, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":38 + * return self + * + * def setType(self, rnd_type): # <<<<<<<<<<<<<< + * cdef PetscRandomType cval = NULL + * rnd_type = str2bytes(rnd_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Random.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rnd_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":43 + * CHKERR( PetscRandomSetType(self.rnd, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscRandomType cval = NULL + * CHKERR( PetscRandomGetType(self.rnd, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_12getType[] = "Random.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_12getType(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_12getType(struct PyPetscRandomObject *__pyx_v_self) { + PetscRandomType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Random.pyx":44 + * + * def getType(self): + * cdef PetscRandomType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscRandomGetType(self.rnd, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Random.pyx":45 + * def getType(self): + * cdef PetscRandomType cval = NULL + * CHKERR( PetscRandomGetType(self.rnd, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomGetType(__pyx_v_self->rnd, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 45, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":46 + * cdef PetscRandomType cval = NULL + * CHKERR( PetscRandomGetType(self.rnd, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":43 + * CHKERR( PetscRandomSetType(self.rnd, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscRandomType cval = NULL + * CHKERR( PetscRandomGetType(self.rnd, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Random.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":48 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetFromOptions(self.rnd) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_14setFromOptions[] = "Random.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_14setFromOptions(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_14setFromOptions(struct PyPetscRandomObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Random.pyx":49 + * + * def setFromOptions(self): + * CHKERR( PetscRandomSetFromOptions(self.rnd) ) # <<<<<<<<<<<<<< + * + * def getValue(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomSetFromOptions(__pyx_v_self->rnd)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 49, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":48 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetFromOptions(self.rnd) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":51 + * CHKERR( PetscRandomSetFromOptions(self.rnd) ) + * + * def getValue(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( PetscRandomGetValue(self.rnd, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_17getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_16getValue[] = "Random.getValue(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_17getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValue (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getValue", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getValue", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_16getValue(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_16getValue(struct PyPetscRandomObject *__pyx_v_self) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValue", 0); + + /* "petsc4py/PETSc/Random.pyx":52 + * + * def getValue(self): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscRandomGetValue(self.rnd, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Random.pyx":53 + * def getValue(self): + * cdef PetscScalar sval = 0 + * CHKERR( PetscRandomGetValue(self.rnd, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomGetValue(__pyx_v_self->rnd, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 53, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":54 + * cdef PetscScalar sval = 0 + * CHKERR( PetscRandomGetValue(self.rnd, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def getValueReal(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":51 + * CHKERR( PetscRandomSetFromOptions(self.rnd) ) + * + * def getValue(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( PetscRandomGetValue(self.rnd, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Random.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":56 + * return toScalar(sval) + * + * def getValueReal(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( PetscRandomGetValueReal(self.rnd, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_19getValueReal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_18getValueReal[] = "Random.getValueReal(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_19getValueReal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValueReal (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getValueReal", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getValueReal", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_18getValueReal(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_18getValueReal(struct PyPetscRandomObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValueReal", 0); + + /* "petsc4py/PETSc/Random.pyx":57 + * + * def getValueReal(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscRandomGetValueReal(self.rnd, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Random.pyx":58 + * def getValueReal(self): + * cdef PetscReal rval = 0 + * CHKERR( PetscRandomGetValueReal(self.rnd, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomGetValueReal(__pyx_v_self->rnd, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 58, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":59 + * cdef PetscReal rval = 0 + * CHKERR( PetscRandomGetValueReal(self.rnd, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getSeed(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":56 + * return toScalar(sval) + * + * def getValueReal(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( PetscRandomGetValueReal(self.rnd, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Random.getValueReal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":61 + * return toReal(rval) + * + * def getSeed(self): # <<<<<<<<<<<<<< + * cdef unsigned long seed = 0 + * CHKERR( PetscRandomGetSeed(self.rnd, &seed) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_21getSeed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_20getSeed[] = "Random.getSeed(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_21getSeed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSeed (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSeed", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSeed", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_20getSeed(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_20getSeed(struct PyPetscRandomObject *__pyx_v_self) { + unsigned long __pyx_v_seed; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSeed", 0); + + /* "petsc4py/PETSc/Random.pyx":62 + * + * def getSeed(self): + * cdef unsigned long seed = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscRandomGetSeed(self.rnd, &seed) ) + * return seed + */ + __pyx_v_seed = 0; + + /* "petsc4py/PETSc/Random.pyx":63 + * def getSeed(self): + * cdef unsigned long seed = 0 + * CHKERR( PetscRandomGetSeed(self.rnd, &seed) ) # <<<<<<<<<<<<<< + * return seed + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomGetSeed(__pyx_v_self->rnd, (&__pyx_v_seed))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 63, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":64 + * cdef unsigned long seed = 0 + * CHKERR( PetscRandomGetSeed(self.rnd, &seed) ) + * return seed # <<<<<<<<<<<<<< + * + * def setSeed(self, seed=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_unsigned_long(__pyx_v_seed); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":61 + * return toReal(rval) + * + * def getSeed(self): # <<<<<<<<<<<<<< + * cdef unsigned long seed = 0 + * CHKERR( PetscRandomGetSeed(self.rnd, &seed) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Random.getSeed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":66 + * return seed + * + * def setSeed(self, seed=None): # <<<<<<<<<<<<<< + * if seed is not None: + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_23setSeed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_22setSeed[] = "Random.setSeed(self, seed=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_23setSeed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_seed = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSeed (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_seed,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_seed); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSeed") < 0)) __PYX_ERR(37, 66, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_seed = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSeed", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(37, 66, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.setSeed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_22setSeed(((struct PyPetscRandomObject *)__pyx_v_self), __pyx_v_seed); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_22setSeed(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_seed) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + unsigned long __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSeed", 0); + + /* "petsc4py/PETSc/Random.pyx":67 + * + * def setSeed(self, seed=None): + * if seed is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) + * CHKERR( PetscRandomSeed(self.rnd) ) + */ + __pyx_t_1 = (__pyx_v_seed != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Random.pyx":68 + * def setSeed(self, seed=None): + * if seed is not None: + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSeed(self.rnd) ) + * + */ + __pyx_t_3 = __Pyx_PyInt_As_unsigned_long(__pyx_v_seed); if (unlikely((__pyx_t_3 == (unsigned long)-1) && PyErr_Occurred())) __PYX_ERR(37, 68, __pyx_L1_error) + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomSetSeed(__pyx_v_self->rnd, __pyx_t_3)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":67 + * + * def setSeed(self, seed=None): + * if seed is not None: # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) + * CHKERR( PetscRandomSeed(self.rnd) ) + */ + } + + /* "petsc4py/PETSc/Random.pyx":69 + * if seed is not None: + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) + * CHKERR( PetscRandomSeed(self.rnd) ) # <<<<<<<<<<<<<< + * + * def getInterval(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomSeed(__pyx_v_self->rnd)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 69, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":66 + * return seed + * + * def setSeed(self, seed=None): # <<<<<<<<<<<<<< + * if seed is not None: + * CHKERR( PetscRandomSetSeed(self.rnd, seed) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.setSeed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":71 + * CHKERR( PetscRandomSeed(self.rnd) ) + * + * def getInterval(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_25getInterval(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_24getInterval[] = "Random.getInterval(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_25getInterval(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInterval (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInterval", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInterval", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_24getInterval(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_24getInterval(struct PyPetscRandomObject *__pyx_v_self) { + PetscScalar __pyx_v_sval1; + PetscScalar __pyx_v_sval2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInterval", 0); + + /* "petsc4py/PETSc/Random.pyx":72 + * + * def getInterval(self): + * cdef PetscScalar sval1 = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar sval2 = 1 + * CHKERR( PetscRandomGetInterval(self.rnd, &sval1, &sval2) ) + */ + __pyx_v_sval1 = 0.0; + + /* "petsc4py/PETSc/Random.pyx":73 + * def getInterval(self): + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 # <<<<<<<<<<<<<< + * CHKERR( PetscRandomGetInterval(self.rnd, &sval1, &sval2) ) + * return (toScalar(sval1), toScalar(sval2)) + */ + __pyx_v_sval2 = 1.0; + + /* "petsc4py/PETSc/Random.pyx":74 + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + * CHKERR( PetscRandomGetInterval(self.rnd, &sval1, &sval2) ) # <<<<<<<<<<<<<< + * return (toScalar(sval1), toScalar(sval2)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomGetInterval(__pyx_v_self->rnd, (&__pyx_v_sval1), (&__pyx_v_sval2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 74, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":75 + * cdef PetscScalar sval2 = 1 + * CHKERR( PetscRandomGetInterval(self.rnd, &sval1, &sval2) ) + * return (toScalar(sval1), toScalar(sval2)) # <<<<<<<<<<<<<< + * + * def setInterval(self, interval): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval1); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval2); if (unlikely(!__pyx_t_3)) __PYX_ERR(37, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(37, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":71 + * CHKERR( PetscRandomSeed(self.rnd) ) + * + * def getInterval(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Random.getInterval", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":77 + * return (toScalar(sval1), toScalar(sval2)) + * + * def setInterval(self, interval): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_27setInterval(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Random_26setInterval[] = "Random.setInterval(self, interval)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_27setInterval(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_interval = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInterval (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interval,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interval)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInterval") < 0)) __PYX_ERR(37, 77, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_interval = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInterval", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(37, 77, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Random.setInterval", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_26setInterval(((struct PyPetscRandomObject *)__pyx_v_self), __pyx_v_interval); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_26setInterval(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_interval) { + PetscScalar __pyx_v_sval1; + PetscScalar __pyx_v_sval2; + PyObject *__pyx_v_low = NULL; + PyObject *__pyx_v_high = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *(*__pyx_t_4)(PyObject *); + PetscScalar __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInterval", 0); + + /* "petsc4py/PETSc/Random.pyx":78 + * + * def setInterval(self, interval): + * cdef PetscScalar sval1 = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar sval2 = 1 + * low, high = interval + */ + __pyx_v_sval1 = 0.0; + + /* "petsc4py/PETSc/Random.pyx":79 + * def setInterval(self, interval): + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 # <<<<<<<<<<<<<< + * low, high = interval + * sval1 = asScalar(low) + */ + __pyx_v_sval2 = 1.0; + + /* "petsc4py/PETSc/Random.pyx":80 + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + * low, high = interval # <<<<<<<<<<<<<< + * sval1 = asScalar(low) + * sval2 = asScalar(high) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_interval))) || (PyList_CheckExact(__pyx_v_interval))) { + PyObject* sequence = __pyx_v_interval; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(37, 80, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_2 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_2); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_3 = PyObject_GetIter(__pyx_v_interval); if (unlikely(!__pyx_t_3)) __PYX_ERR(37, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_2 = __pyx_t_4(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_4(__pyx_t_3), 2) < 0) __PYX_ERR(37, 80, __pyx_L1_error) + __pyx_t_4 = NULL; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(37, 80, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_low = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_high = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Random.pyx":81 + * cdef PetscScalar sval2 = 1 + * low, high = interval + * sval1 = asScalar(low) # <<<<<<<<<<<<<< + * sval2 = asScalar(high) + * CHKERR( PetscRandomSetInterval(self.rnd, sval1, sval2) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_low); if (unlikely(__pyx_t_5 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(37, 81, __pyx_L1_error) + __pyx_v_sval1 = __pyx_t_5; + + /* "petsc4py/PETSc/Random.pyx":82 + * low, high = interval + * sval1 = asScalar(low) + * sval2 = asScalar(high) # <<<<<<<<<<<<<< + * CHKERR( PetscRandomSetInterval(self.rnd, sval1, sval2) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_high); if (unlikely(__pyx_t_5 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(37, 82, __pyx_L1_error) + __pyx_v_sval2 = __pyx_t_5; + + /* "petsc4py/PETSc/Random.pyx":83 + * sval1 = asScalar(low) + * sval2 = asScalar(high) + * CHKERR( PetscRandomSetInterval(self.rnd, sval1, sval2) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscRandomSetInterval(__pyx_v_self->rnd, __pyx_v_sval1, __pyx_v_sval2)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(37, 83, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":77 + * return (toScalar(sval1), toScalar(sval2)) + * + * def setInterval(self, interval): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = 0 + * cdef PetscScalar sval2 = 1 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.setInterval", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_low); + __Pyx_XDECREF(__pyx_v_high); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":88 + * + * property seed: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSeed() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_4seed_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_4seed_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_4seed___get__(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_4seed___get__(struct PyPetscRandomObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Random.pyx":89 + * property seed: + * def __get__(self): + * return self.getSeed() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setSeed(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSeed); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":88 + * + * property seed: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSeed() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.seed.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":90 + * def __get__(self): + * return self.getSeed() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSeed(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Random_4seed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Random_4seed_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_4seed_2__set__(((struct PyPetscRandomObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Random_4seed_2__set__(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Random.pyx":91 + * return self.getSeed() + * def __set__(self, value): + * self.setSeed(value) # <<<<<<<<<<<<<< + * + * property interval: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setSeed); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Random.pyx":90 + * def __get__(self): + * return self.getSeed() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSeed(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.seed.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":94 + * + * property interval: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInterval() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_8interval_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Random_8interval_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_8interval___get__(((struct PyPetscRandomObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Random_8interval___get__(struct PyPetscRandomObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Random.pyx":95 + * property interval: + * def __get__(self): + * return self.getInterval() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setInterval(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getInterval); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Random.pyx":94 + * + * property interval: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInterval() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.interval.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Random.pyx":96 + * def __get__(self): + * return self.getInterval() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInterval(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Random_8interval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Random_8interval_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Random_8interval_2__set__(((struct PyPetscRandomObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Random_8interval_2__set__(struct PyPetscRandomObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Random.pyx":97 + * return self.getInterval() + * def __set__(self, value): + * self.setInterval(value) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setInterval); if (unlikely(!__pyx_t_2)) __PYX_ERR(37, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Random.pyx":96 + * def __get__(self): + * return self.getInterval() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInterval(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Random.interval.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":4 + * + * class staticproperty(property): + * def __get__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * return self.fget.__get__(*args, **kwargs)() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_14staticproperty_1__get__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_14staticproperty___get__[] = "staticproperty.__get__(self, *args, **kwargs)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_14staticproperty_1__get__ = {"__get__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_14staticproperty_1__get__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_14staticproperty___get__}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_14staticproperty_1__get__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_self = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kwargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_v_kwargs = PyDict_New(); if (unlikely(!__pyx_v_kwargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kwargs); + if (PyTuple_GET_SIZE(__pyx_args) > 1) { + __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); + if (unlikely(!__pyx_v_args)) { + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + } else { + __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); + } + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + default: + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__get__") < 0)) __PYX_ERR(2, 4, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_self = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__get__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 4, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0; + __Pyx_AddTraceback("petsc4py.PETSc.staticproperty.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_14staticproperty___get__(__pyx_self, __pyx_v_self, __pyx_v_args, __pyx_v_kwargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kwargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_14staticproperty___get__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":5 + * class staticproperty(property): + * def __get__(self, *args, **kwargs): + * return self.fget.__get__(*args, **kwargs)() # <<<<<<<<<<<<<< + * + * cdef object make_enum_class(str class_name, tuple args): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fget); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_get); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_v_args, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":4 + * + * class staticproperty(property): + * def __get__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * return self.fget.__get__(*args, **kwargs)() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.staticproperty.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":7 + * return self.fget.__get__(*args, **kwargs)() + * + * cdef object make_enum_class(str class_name, tuple args): # <<<<<<<<<<<<<< + * cdef dict enum2str = {} + * cdef dict attrs = {} + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_make_enum_class(PyObject *__pyx_v_class_name, PyObject *__pyx_v_args) { + PyObject *__pyx_v_enum2str = 0; + PyObject *__pyx_v_attrs = 0; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_v_c_enum = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("make_enum_class", 0); + + /* "petsc4py/PETSc/Device.pyx":8 + * + * cdef object make_enum_class(str class_name, tuple args): + * cdef dict enum2str = {} # <<<<<<<<<<<<<< + * cdef dict attrs = {} + * + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_enum2str = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":9 + * cdef object make_enum_class(str class_name, tuple args): + * cdef dict enum2str = {} + * cdef dict attrs = {} # <<<<<<<<<<<<<< + * + * for name, c_enum in args: + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_attrs = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":11 + * cdef dict attrs = {} + * + * for name, c_enum in args: # <<<<<<<<<<<<<< + * enum2str[c_enum] = name + * attrs[name] = c_enum + */ + if (unlikely(__pyx_v_args == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(2, 11, __pyx_L1_error) + } + __pyx_t_1 = __pyx_v_args; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + for (;;) { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(2, 11, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(2, 11, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(2, 11, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(2, 11, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_XDECREF_SET(__pyx_v_c_enum, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Device.pyx":12 + * + * for name, c_enum in args: + * enum2str[c_enum] = name # <<<<<<<<<<<<<< + * attrs[name] = c_enum + * + */ + if (unlikely(PyDict_SetItem(__pyx_v_enum2str, __pyx_v_c_enum, __pyx_v_name) < 0)) __PYX_ERR(2, 12, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":13 + * for name, c_enum in args: + * enum2str[c_enum] = name + * attrs[name] = c_enum # <<<<<<<<<<<<<< + * + * attrs['__enum2str'] = enum2str + */ + if (unlikely(PyDict_SetItem(__pyx_v_attrs, __pyx_v_name, __pyx_v_c_enum) < 0)) __PYX_ERR(2, 13, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":11 + * cdef dict attrs = {} + * + * for name, c_enum in args: # <<<<<<<<<<<<<< + * enum2str[c_enum] = name + * attrs[name] = c_enum + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":15 + * attrs[name] = c_enum + * + * attrs['__enum2str'] = enum2str # <<<<<<<<<<<<<< + * return type(class_name, (object, ), attrs) + * + */ + if (unlikely(PyDict_SetItem(__pyx_v_attrs, __pyx_n_s_enum2str, __pyx_v_enum2str) < 0)) __PYX_ERR(2, 15, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":16 + * + * attrs['__enum2str'] = enum2str + * return type(class_name, (object, ), attrs) # <<<<<<<<<<<<<< + * + * DeviceType = make_enum_class( + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_class_name); + __Pyx_GIVEREF(__pyx_v_class_name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_class_name); + __Pyx_INCREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_tuple__29); + __Pyx_INCREF(__pyx_v_attrs); + __Pyx_GIVEREF(__pyx_v_attrs); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_attrs); + __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&PyType_Type)), __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":7 + * return self.fget.__get__(*args, **kwargs)() + * + * cdef object make_enum_class(str class_name, tuple args): # <<<<<<<<<<<<<< + * cdef dict enum2str = {} + * cdef dict attrs = {} + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.make_enum_class", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_enum2str); + __Pyx_XDECREF(__pyx_v_attrs); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_c_enum); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":53 + * Type = DeviceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.device = NULL + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_6Device_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_6Device_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device___cinit__(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_6Device___cinit__(struct PyPetscDeviceObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Device.pyx":54 + * + * def __cinit__(self): + * self.device = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->device = NULL; + + /* "petsc4py/PETSc/Device.pyx":53 + * Type = DeviceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.device = NULL + * + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":56 + * self.device = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_6Device_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_6Device_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_6Device_2__dealloc__(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_6Device_2__dealloc__(struct PyPetscDeviceObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Device.pyx":57 + * + * def __dealloc__(self): + * self.destroy() # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_destroy); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":56 + * self.device = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("petsc4py.PETSc.Device.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Device.pyx":60 + * + * @classmethod + * def create(cls, dtype = None, device_id = PETSC_DECIDE): # <<<<<<<<<<<<<< + * cdef PetscInt cdevice_id = asInt(device_id) + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_5create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_4create[] = "Device.create(type cls, dtype=None, device_id=PETSC_DECIDE)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_5create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dtype = 0; + PyObject *__pyx_v_device_id = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dtype,&__pyx_n_s_device_id,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = __pyx_k__30; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device_id); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(2, 60, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dtype = values[0]; + __pyx_v_device_id = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 60, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_4create(((PyTypeObject*)__pyx_v_cls), __pyx_v_dtype, __pyx_v_device_id); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_4create(PyTypeObject *__pyx_v_cls, PyObject *__pyx_v_dtype, PyObject *__pyx_v_device_id) { + PetscInt __pyx_v_cdevice_id; + PetscDeviceType __pyx_v_cdevice_type; + struct PyPetscDeviceObject *__pyx_v_device = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscDeviceType __pyx_t_6; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Device.pyx":61 + * @classmethod + * def create(cls, dtype = None, device_id = PETSC_DECIDE): + * cdef PetscInt cdevice_id = asInt(device_id) # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) + * cdef Device device = cls() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_device_id); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(2, 61, __pyx_L1_error) + __pyx_v_cdevice_id = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":62 + * def create(cls, dtype = None, device_id = PETSC_DECIDE): + * cdef PetscInt cdevice_id = asInt(device_id) + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) # <<<<<<<<<<<<<< + * cdef Device device = cls() + * + */ + __pyx_t_3 = (__pyx_v_dtype != Py_None); + if ((__pyx_t_3 != 0)) { + __Pyx_INCREF(__pyx_v_dtype); + __pyx_t_2 = __pyx_v_dtype; + } else { + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_cls), __pyx_n_s_Type); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_DEFAULT); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_5; + __pyx_t_5 = 0; + } + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asDeviceType(__pyx_t_2); if (unlikely(__pyx_t_6 == ((PetscDeviceType)((PetscDeviceType)-1L)))) __PYX_ERR(2, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_cdevice_type = __pyx_t_6; + + /* "petsc4py/PETSc/Device.pyx":63 + * cdef PetscInt cdevice_id = asInt(device_id) + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) + * cdef Device device = cls() # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceCreate(cdevice_type, cdevice_id, &device.device)) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_v_cls)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Device))))) __PYX_ERR(2, 63, __pyx_L1_error) + __pyx_v_device = ((struct PyPetscDeviceObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Device.pyx":65 + * cdef Device device = cls() + * + * CHKERR(PetscDeviceCreate(cdevice_type, cdevice_id, &device.device)) # <<<<<<<<<<<<<< + * return device + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceCreate(__pyx_v_cdevice_type, __pyx_v_cdevice_id, (&__pyx_v_device->device))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 65, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":66 + * + * CHKERR(PetscDeviceCreate(cdevice_type, cdevice_id, &device.device)) + * return device # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_device)); + __pyx_r = ((PyObject *)__pyx_v_device); + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":60 + * + * @classmethod + * def create(cls, dtype = None, device_id = PETSC_DECIDE): # <<<<<<<<<<<<<< + * cdef PetscInt cdevice_id = asInt(device_id) + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Device.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_device); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":68 + * return device + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceDestroy(&self.device)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_6destroy[] = "Device.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_6destroy(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_6destroy(struct PyPetscDeviceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Device.pyx":69 + * + * def destroy(self): + * CHKERR(PetscDeviceDestroy(&self.device)) # <<<<<<<<<<<<<< + * + * def configure(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceDestroy((&__pyx_v_self->device))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 69, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":68 + * return device + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceDestroy(&self.device)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":71 + * CHKERR(PetscDeviceDestroy(&self.device)) + * + * def configure(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceConfigure(self.device)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_9configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_8configure[] = "Device.configure(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_9configure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("configure (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("configure", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "configure", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_8configure(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_8configure(struct PyPetscDeviceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("configure", 0); + + /* "petsc4py/PETSc/Device.pyx":72 + * + * def configure(self): + * CHKERR(PetscDeviceConfigure(self.device)) # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer = None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceConfigure(__pyx_v_self->device)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":71 + * CHKERR(PetscDeviceDestroy(&self.device)) + * + * def configure(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceConfigure(self.device)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.configure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":74 + * CHKERR(PetscDeviceConfigure(self.device)) + * + * def view(self, Viewer viewer = None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_11view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_10view[] = "Device.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_11view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(2, 74, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 74, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(2, 74, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_10view(((struct PyPetscDeviceObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_10view(struct PyPetscDeviceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Device.pyx":75 + * + * def view(self, Viewer viewer = None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * + * if viewer is not None: + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Device.pyx":77 + * cdef PetscViewer vwr = NULL + * + * if viewer is not None: # <<<<<<<<<<<<<< + * vwr = viewer.vwr + * CHKERR(PetscDeviceView(self.device, vwr)) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Device.pyx":78 + * + * if viewer is not None: + * vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceView(self.device, vwr)) + * + */ + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + + /* "petsc4py/PETSc/Device.pyx":77 + * cdef PetscViewer vwr = NULL + * + * if viewer is not None: # <<<<<<<<<<<<<< + * vwr = viewer.vwr + * CHKERR(PetscDeviceView(self.device, vwr)) + */ + } + + /* "petsc4py/PETSc/Device.pyx":79 + * if viewer is not None: + * vwr = viewer.vwr + * CHKERR(PetscDeviceView(self.device, vwr)) # <<<<<<<<<<<<<< + * + * def getDeviceType(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceView(__pyx_v_self->device, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 79, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":74 + * CHKERR(PetscDeviceConfigure(self.device)) + * + * def view(self, Viewer viewer = None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":81 + * CHKERR(PetscDeviceView(self.device, vwr)) + * + * def getDeviceType(self): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdtype + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_13getDeviceType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_12getDeviceType[] = "Device.getDeviceType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_13getDeviceType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDeviceType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDeviceType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDeviceType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_12getDeviceType(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_12getDeviceType(struct PyPetscDeviceObject *__pyx_v_self) { + PetscDeviceType __pyx_v_cdtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDeviceType", 0); + + /* "petsc4py/PETSc/Device.pyx":84 + * cdef PetscDeviceType cdtype + * + * CHKERR(PetscDeviceGetType(self.device, &cdtype)) # <<<<<<<<<<<<<< + * return toDeviceType(cdtype) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceGetType(__pyx_v_self->device, (&__pyx_v_cdtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 84, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":85 + * + * CHKERR(PetscDeviceGetType(self.device, &cdtype)) + * return toDeviceType(cdtype) # <<<<<<<<<<<<<< + * + * property type: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toDeviceType(__pyx_v_cdtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":81 + * CHKERR(PetscDeviceView(self.device, vwr)) + * + * def getDeviceType(self): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdtype + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Device.getDeviceType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":88 + * + * property type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDeviceType() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_4type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_4type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_4type___get__(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_4type___get__(struct PyPetscDeviceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":89 + * property type: + * def __get__(self): + * return self.getDeviceType() # <<<<<<<<<<<<<< + * + * def getDeviceId(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDeviceType); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":88 + * + * property type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDeviceType() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Device.type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":91 + * return self.getDeviceType() + * + * def getDeviceId(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdevice_id = 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_15getDeviceId(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_14getDeviceId[] = "Device.getDeviceId(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_15getDeviceId(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDeviceId (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDeviceId", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDeviceId", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_14getDeviceId(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_14getDeviceId(struct PyPetscDeviceObject *__pyx_v_self) { + PetscInt __pyx_v_cdevice_id; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDeviceId", 0); + + /* "petsc4py/PETSc/Device.pyx":92 + * + * def getDeviceId(self): + * cdef PetscInt cdevice_id = 0 # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceGetDeviceId(self.device, &cdevice_id)) + */ + __pyx_v_cdevice_id = 0; + + /* "petsc4py/PETSc/Device.pyx":94 + * cdef PetscInt cdevice_id = 0 + * + * CHKERR(PetscDeviceGetDeviceId(self.device, &cdevice_id)) # <<<<<<<<<<<<<< + * return toInt(cdevice_id) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceGetDeviceId(__pyx_v_self->device, (&__pyx_v_cdevice_id))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 94, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":95 + * + * CHKERR(PetscDeviceGetDeviceId(self.device, &cdevice_id)) + * return toInt(cdevice_id) # <<<<<<<<<<<<<< + * + * property device_id: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdevice_id); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":91 + * return self.getDeviceType() + * + * def getDeviceId(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdevice_id = 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Device.getDeviceId", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":98 + * + * property device_id: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDeviceId() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_9device_id_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_9device_id_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_9device_id___get__(((struct PyPetscDeviceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_9device_id___get__(struct PyPetscDeviceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":99 + * property device_id: + * def __get__(self): + * return self.getDeviceId() # <<<<<<<<<<<<<< + * + * @staticmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDeviceId); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":98 + * + * property device_id: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDeviceId() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Device.device_id.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":102 + * + * @staticmethod + * def setDefaultType(device_type): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_17setDefaultType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6Device_16setDefaultType[] = "Device.setDefaultType(device_type)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_6Device_17setDefaultType = {"setDefaultType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_17setDefaultType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_16setDefaultType}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6Device_17setDefaultType(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_device_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDefaultType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDefaultType") < 0)) __PYX_ERR(2, 102, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_device_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDefaultType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 102, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.setDefaultType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6Device_16setDefaultType(__pyx_v_device_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6Device_16setDefaultType(PyObject *__pyx_v_device_type) { + PetscDeviceType __pyx_v_cdevice_type; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscDeviceType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDefaultType", 0); + + /* "petsc4py/PETSc/Device.pyx":103 + * @staticmethod + * def setDefaultType(device_type): + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceSetDefaultDeviceType(cdevice_type)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asDeviceType(__pyx_v_device_type); if (unlikely(__pyx_t_1 == ((PetscDeviceType)((PetscDeviceType)-1L)))) __PYX_ERR(2, 103, __pyx_L1_error) + __pyx_v_cdevice_type = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":105 + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + * + * CHKERR(PetscDeviceSetDefaultDeviceType(cdevice_type)) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceSetDefaultDeviceType(__pyx_v_cdevice_type)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 105, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":102 + * + * @staticmethod + * def setDefaultType(device_type): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Device.setDefaultType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":114 + * StreamType = StreamType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dctx + * self.dctx = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext___cinit__(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext___cinit__(struct PyPetscDeviceContextObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Device.pyx":115 + * + * def __cinit__(self): + * self.obj = &self.dctx # <<<<<<<<<<<<<< + * self.dctx = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->dctx)); + + /* "petsc4py/PETSc/Device.pyx":116 + * def __cinit__(self): + * self.obj = &self.dctx + * self.dctx = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->dctx = NULL; + + /* "petsc4py/PETSc/Device.pyx":114 + * StreamType = StreamType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dctx + * self.dctx = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":118 + * self.dctx = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_13DeviceContext_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_13DeviceContext_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_13DeviceContext_2__dealloc__(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_13DeviceContext_2__dealloc__(struct PyPetscDeviceContextObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Device.pyx":119 + * + * def __dealloc__(self): + * self.destroy() # <<<<<<<<<<<<<< + * + * @classmethod + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_destroy); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":118 + * self.dctx = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("petsc4py.PETSc.DeviceContext.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Device.pyx":122 + * + * @classmethod + * def create(cls): # <<<<<<<<<<<<<< + * cdef DeviceContext dctx = cls() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_5create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_4create[] = "DeviceContext.create(type cls)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_5create(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("create", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "create", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_4create(((PyTypeObject*)__pyx_v_cls)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_4create(PyTypeObject *__pyx_v_cls) { + struct PyPetscDeviceContextObject *__pyx_v_dctx = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Device.pyx":123 + * @classmethod + * def create(cls): + * cdef DeviceContext dctx = cls() # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextCreate(&dctx.dctx)) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_v_cls)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DeviceContext))))) __PYX_ERR(2, 123, __pyx_L1_error) + __pyx_v_dctx = ((struct PyPetscDeviceContextObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":125 + * cdef DeviceContext dctx = cls() + * + * CHKERR(PetscDeviceContextCreate(&dctx.dctx)) # <<<<<<<<<<<<<< + * return dctx + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextCreate((&__pyx_v_dctx->dctx))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 125, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":126 + * + * CHKERR(PetscDeviceContextCreate(&dctx.dctx)) + * return dctx # <<<<<<<<<<<<<< + * + * def getStreamType(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dctx)); + __pyx_r = ((PyObject *)__pyx_v_dctx); + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":122 + * + * @classmethod + * def create(cls): # <<<<<<<<<<<<<< + * cdef DeviceContext dctx = cls() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dctx); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":128 + * return dctx + * + * def getStreamType(self): # <<<<<<<<<<<<<< + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_7getStreamType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_6getStreamType[] = "DeviceContext.getStreamType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_7getStreamType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStreamType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStreamType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStreamType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_6getStreamType(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_6getStreamType(struct PyPetscDeviceContextObject *__pyx_v_self) { + PetscStreamType __pyx_v_cstream_type; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStreamType", 0); + + /* "petsc4py/PETSc/Device.pyx":129 + * + * def getStreamType(self): + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextGetStreamType(self.dctx, &cstream_type)) + */ + __pyx_v_cstream_type = PETSC_STREAM_DEFAULT_BLOCKING; + + /* "petsc4py/PETSc/Device.pyx":131 + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + * + * CHKERR(PetscDeviceContextGetStreamType(self.dctx, &cstream_type)) # <<<<<<<<<<<<<< + * return toStreamType(cstream_type) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextGetStreamType(__pyx_v_self->dctx, (&__pyx_v_cstream_type))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 131, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":132 + * + * CHKERR(PetscDeviceContextGetStreamType(self.dctx, &cstream_type)) + * return toStreamType(cstream_type) # <<<<<<<<<<<<<< + * + * def setStreamType(self, stream_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStreamType(__pyx_v_cstream_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":128 + * return dctx + * + * def getStreamType(self): # <<<<<<<<<<<<<< + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.getStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":134 + * return toStreamType(cstream_type) + * + * def setStreamType(self, stream_type): # <<<<<<<<<<<<<< + * cdef PetscStreamType cstream_type = asStreamType(stream_type) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_9setStreamType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_8setStreamType[] = "DeviceContext.setStreamType(self, stream_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_9setStreamType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stream_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStreamType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStreamType") < 0)) __PYX_ERR(2, 134, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stream_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStreamType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 134, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_8setStreamType(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_stream_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_8setStreamType(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_stream_type) { + PetscStreamType __pyx_v_cstream_type; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscStreamType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStreamType", 0); + + /* "petsc4py/PETSc/Device.pyx":135 + * + * def setStreamType(self, stream_type): + * cdef PetscStreamType cstream_type = asStreamType(stream_type) # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextSetStreamType(self.dctx, cstream_type)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStreamType(__pyx_v_stream_type); if (unlikely(__pyx_t_1 == ((PetscStreamType)((PetscStreamType)-1L)))) __PYX_ERR(2, 135, __pyx_L1_error) + __pyx_v_cstream_type = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":137 + * cdef PetscStreamType cstream_type = asStreamType(stream_type) + * + * CHKERR(PetscDeviceContextSetStreamType(self.dctx, cstream_type)) # <<<<<<<<<<<<<< + * + * property stream_type: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSetStreamType(__pyx_v_self->dctx, __pyx_v_cstream_type)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":134 + * return toStreamType(cstream_type) + * + * def setStreamType(self, stream_type): # <<<<<<<<<<<<<< + * cdef PetscStreamType cstream_type = asStreamType(stream_type) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setStreamType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":140 + * + * property stream_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStreamType() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type___get__(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type___get__(struct PyPetscDeviceContextObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":141 + * property stream_type: + * def __get__(self): + * return self.getStreamType() # <<<<<<<<<<<<<< + * + * def __set__(self, stype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStreamType); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":140 + * + * property stream_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStreamType() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.stream_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":143 + * return self.getStreamType() + * + * def __set__(self, stype): # <<<<<<<<<<<<<< + * self.setStreamType(stype) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_stype); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_stype) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type_2__set__(((struct PyPetscDeviceContextObject *)__pyx_v_self), ((PyObject *)__pyx_v_stype)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_11stream_type_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_stype) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Device.pyx":144 + * + * def __set__(self, stype): + * self.setStreamType(stype) # <<<<<<<<<<<<<< + * + * def getDevice(self): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setStreamType); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_stype) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_stype); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":143 + * return self.getStreamType() + * + * def __set__(self, stype): # <<<<<<<<<<<<<< + * self.setStreamType(stype) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.stream_type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":146 + * self.setStreamType(stype) + * + * def getDevice(self): # <<<<<<<<<<<<<< + * cdef PetscDevice device = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_11getDevice(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_10getDevice[] = "DeviceContext.getDevice(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_11getDevice(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDevice (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDevice", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDevice", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_10getDevice(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_10getDevice(struct PyPetscDeviceContextObject *__pyx_v_self) { + PetscDevice __pyx_v_device; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDevice", 0); + + /* "petsc4py/PETSc/Device.pyx":147 + * + * def getDevice(self): + * cdef PetscDevice device = NULL # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextGetDevice(self.dctx, &device)) + */ + __pyx_v_device = NULL; + + /* "petsc4py/PETSc/Device.pyx":149 + * cdef PetscDevice device = NULL + * + * CHKERR(PetscDeviceContextGetDevice(self.dctx, &device)) # <<<<<<<<<<<<<< + * return PyPetscDevice_New(device) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextGetDevice(__pyx_v_self->dctx, (&__pyx_v_device))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":150 + * + * CHKERR(PetscDeviceContextGetDevice(self.dctx, &device)) + * return PyPetscDevice_New(device) # <<<<<<<<<<<<<< + * + * def setDevice(self, Device device not None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscDevice_New(__pyx_v_device)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":146 + * self.setStreamType(stype) + * + * def getDevice(self): # <<<<<<<<<<<<<< + * cdef PetscDevice device = NULL + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.getDevice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":152 + * return PyPetscDevice_New(device) + * + * def setDevice(self, Device device not None): # <<<<<<<<<<<<<< + * cdef PetscDevice cdevice = PyPetscDevice_Get(device) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_13setDevice(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_12setDevice[] = "DeviceContext.setDevice(self, Device device)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_13setDevice(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDeviceObject *__pyx_v_device = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDevice (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_device,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_device)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDevice") < 0)) __PYX_ERR(2, 152, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_device = ((struct PyPetscDeviceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDevice", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 152, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setDevice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_device), __pyx_ptype_8petsc4py_5PETSc_Device, 0, "device", 0))) __PYX_ERR(2, 152, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_12setDevice(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_device); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_12setDevice(struct PyPetscDeviceContextObject *__pyx_v_self, struct PyPetscDeviceObject *__pyx_v_device) { + PetscDevice __pyx_v_cdevice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscDevice __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDevice", 0); + + /* "petsc4py/PETSc/Device.pyx":153 + * + * def setDevice(self, Device device not None): + * cdef PetscDevice cdevice = PyPetscDevice_Get(device) # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextSetDevice(self.dctx, cdevice)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PyPetscDevice_Get(((PyObject *)__pyx_v_device)); if (unlikely(__pyx_t_1 == ((PetscDevice)NULL) && PyErr_Occurred())) __PYX_ERR(2, 153, __pyx_L1_error) + __pyx_v_cdevice = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":155 + * cdef PetscDevice cdevice = PyPetscDevice_Get(device) + * + * CHKERR(PetscDeviceContextSetDevice(self.dctx, cdevice)) # <<<<<<<<<<<<<< + * + * property device: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSetDevice(__pyx_v_self->dctx, __pyx_v_cdevice)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 155, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":152 + * return PyPetscDevice_New(device) + * + * def setDevice(self, Device device not None): # <<<<<<<<<<<<<< + * cdef PetscDevice cdevice = PyPetscDevice_Get(device) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setDevice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":158 + * + * property device: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDevice() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device___get__(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device___get__(struct PyPetscDeviceContextObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":159 + * property device: + * def __get__(self): + * return self.getDevice() # <<<<<<<<<<<<<< + * + * def __set__(self, device): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDevice); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":158 + * + * property device: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDevice() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.device.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":161 + * return self.getDevice() + * + * def __set__(self, device): # <<<<<<<<<<<<<< + * self.setDevice(device) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_device); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_device) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device_2__set__(((struct PyPetscDeviceContextObject *)__pyx_v_self), ((PyObject *)__pyx_v_device)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_6device_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_device) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Device.pyx":162 + * + * def __set__(self, device): + * self.setDevice(device) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDevice); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_device) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_device); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":161 + * return self.getDevice() + * + * def __set__(self, device): # <<<<<<<<<<<<<< + * self.setDevice(device) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.device.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":164 + * self.setDevice(device) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextSetUp(self.dctx)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_14setUp[] = "DeviceContext.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_14setUp(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_14setUp(struct PyPetscDeviceContextObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Device.pyx":165 + * + * def setUp(self): + * CHKERR(PetscDeviceContextSetUp(self.dctx)) # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSetUp(__pyx_v_self->dctx)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 165, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":164 + * self.setDevice(device) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextSetUp(self.dctx)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":167 + * CHKERR(PetscDeviceContextSetUp(self.dctx)) + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext octx = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_17duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_16duplicate[] = "DeviceContext.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_17duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_16duplicate(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_16duplicate(struct PyPetscDeviceContextObject *__pyx_v_self) { + PetscDeviceContext __pyx_v_octx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/Device.pyx":168 + * + * def duplicate(self): + * cdef PetscDeviceContext octx = NULL # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextDuplicate(self.dctx, &octx)) + */ + __pyx_v_octx = NULL; + + /* "petsc4py/PETSc/Device.pyx":170 + * cdef PetscDeviceContext octx = NULL + * + * CHKERR(PetscDeviceContextDuplicate(self.dctx, &octx)) # <<<<<<<<<<<<<< + * return PyPetscDeviceContext_New(octx) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextDuplicate(__pyx_v_self->dctx, (&__pyx_v_octx))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":171 + * + * CHKERR(PetscDeviceContextDuplicate(self.dctx, &octx)) + * return PyPetscDeviceContext_New(octx) # <<<<<<<<<<<<<< + * + * def idle(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New(__pyx_v_octx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":167 + * CHKERR(PetscDeviceContextSetUp(self.dctx)) + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext octx = NULL + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":173 + * return PyPetscDeviceContext_New(octx) + * + * def idle(self): # <<<<<<<<<<<<<< + * cdef PetscBool is_idle = PETSC_FALSE + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_19idle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_18idle[] = "DeviceContext.idle(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_19idle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("idle (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("idle", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "idle", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_18idle(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_18idle(struct PyPetscDeviceContextObject *__pyx_v_self) { + PetscBool __pyx_v_is_idle; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("idle", 0); + + /* "petsc4py/PETSc/Device.pyx":174 + * + * def idle(self): + * cdef PetscBool is_idle = PETSC_FALSE # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextQueryIdle(self.dctx, &is_idle)) + */ + __pyx_v_is_idle = PETSC_FALSE; + + /* "petsc4py/PETSc/Device.pyx":176 + * cdef PetscBool is_idle = PETSC_FALSE + * + * CHKERR(PetscDeviceContextQueryIdle(self.dctx, &is_idle)) # <<<<<<<<<<<<<< + * return toBool(is_idle) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextQueryIdle(__pyx_v_self->dctx, (&__pyx_v_is_idle))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 176, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":177 + * + * CHKERR(PetscDeviceContextQueryIdle(self.dctx, &is_idle)) + * return toBool(is_idle) # <<<<<<<<<<<<<< + * + * def waitFor(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_is_idle); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":173 + * return PyPetscDeviceContext_New(octx) + * + * def idle(self): # <<<<<<<<<<<<<< + * cdef PetscBool is_idle = PETSC_FALSE + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.idle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":179 + * return toBool(is_idle) + * + * def waitFor(self, other): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cother = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_21waitFor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_20waitFor[] = "DeviceContext.waitFor(self, other)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_21waitFor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_other = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("waitFor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_other,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_other)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "waitFor") < 0)) __PYX_ERR(2, 179, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_other = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("waitFor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 179, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.waitFor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_20waitFor(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_other); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_20waitFor(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_other) { + PetscDeviceContext __pyx_v_cother; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscDeviceContext __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("waitFor", 0); + + /* "petsc4py/PETSc/Device.pyx":180 + * + * def waitFor(self, other): + * cdef PetscDeviceContext cother = NULL # <<<<<<<<<<<<<< + * + * if other is not None: + */ + __pyx_v_cother = NULL; + + /* "petsc4py/PETSc/Device.pyx":182 + * cdef PetscDeviceContext cother = NULL + * + * if other is not None: # <<<<<<<<<<<<<< + * cother = PyPetscDeviceContext_Get(other) + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) + */ + __pyx_t_1 = (__pyx_v_other != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Device.pyx":183 + * + * if other is not None: + * cother = PyPetscDeviceContext_Get(other) # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get(__pyx_v_other); if (unlikely(__pyx_t_3 == ((PetscDeviceContext)NULL) && PyErr_Occurred())) __PYX_ERR(2, 183, __pyx_L1_error) + __pyx_v_cother = __pyx_t_3; + + /* "petsc4py/PETSc/Device.pyx":182 + * cdef PetscDeviceContext cother = NULL + * + * if other is not None: # <<<<<<<<<<<<<< + * cother = PyPetscDeviceContext_Get(other) + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) + */ + } + + /* "petsc4py/PETSc/Device.pyx":184 + * if other is not None: + * cother = PyPetscDeviceContext_Get(other) + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) # <<<<<<<<<<<<<< + * + * def fork(self, PetscInt n, stream_type = None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextWaitForContext(__pyx_v_self->dctx, __pyx_v_cother)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":179 + * return toBool(is_idle) + * + * def waitFor(self, other): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cother = NULL + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.waitFor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":186 + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) + * + * def fork(self, PetscInt n, stream_type = None): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext *subctx = NULL + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_23fork(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_22fork[] = "DeviceContext.fork(self, PetscInt n, stream_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_23fork(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscInt __pyx_v_n; + PyObject *__pyx_v_stream_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("fork (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_stream_type,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream_type); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fork") < 0)) __PYX_ERR(2, 186, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_n = __Pyx_PyInt_As_PetscInt(values[0]); if (unlikely((__pyx_v_n == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(2, 186, __pyx_L3_error) + __pyx_v_stream_type = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("fork", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 186, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.fork", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_22fork(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_n, __pyx_v_stream_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_22fork(struct PyPetscDeviceContextObject *__pyx_v_self, PetscInt __pyx_v_n, PyObject *__pyx_v_stream_type) { + PetscDeviceContext *__pyx_v_subctx; + PetscStreamType __pyx_v_cstream_type; + PetscInt __pyx_8genexpr2__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + PetscStreamType __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscInt __pyx_t_6; + PetscInt __pyx_t_7; + PetscInt __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + int __pyx_t_11; + char const *__pyx_t_12; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("fork", 0); + + /* "petsc4py/PETSc/Device.pyx":187 + * + * def fork(self, PetscInt n, stream_type = None): + * cdef PetscDeviceContext *subctx = NULL # <<<<<<<<<<<<<< + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + * + */ + __pyx_v_subctx = NULL; + + /* "petsc4py/PETSc/Device.pyx":188 + * def fork(self, PetscInt n, stream_type = None): + * cdef PetscDeviceContext *subctx = NULL + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING # <<<<<<<<<<<<<< + * + * try: + */ + __pyx_v_cstream_type = PETSC_STREAM_DEFAULT_BLOCKING; + + /* "petsc4py/PETSc/Device.pyx":190 + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + * + * try: # <<<<<<<<<<<<<< + * if stream_type is None: + * CHKERR(PetscDeviceContextFork(self.dctx, n, &subctx)) + */ + /*try:*/ { + + /* "petsc4py/PETSc/Device.pyx":191 + * + * try: + * if stream_type is None: # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextFork(self.dctx, n, &subctx)) + * else: + */ + __pyx_t_1 = (__pyx_v_stream_type == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Device.pyx":192 + * try: + * if stream_type is None: + * CHKERR(PetscDeviceContextFork(self.dctx, n, &subctx)) # <<<<<<<<<<<<<< + * else: + * cstream_type = asStreamType(stream_type) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextFork(__pyx_v_self->dctx, __pyx_v_n, (&__pyx_v_subctx))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 192, __pyx_L4_error) + + /* "petsc4py/PETSc/Device.pyx":191 + * + * try: + * if stream_type is None: # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextFork(self.dctx, n, &subctx)) + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/Device.pyx":194 + * CHKERR(PetscDeviceContextFork(self.dctx, n, &subctx)) + * else: + * cstream_type = asStreamType(stream_type) # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextForkWithStreamType(self.dctx, cstream_type, n, &subctx)) + * + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asStreamType(__pyx_v_stream_type); if (unlikely(__pyx_t_4 == ((PetscStreamType)((PetscStreamType)-1L)))) __PYX_ERR(2, 194, __pyx_L4_error) + __pyx_v_cstream_type = __pyx_t_4; + + /* "petsc4py/PETSc/Device.pyx":195 + * else: + * cstream_type = asStreamType(stream_type) + * CHKERR(PetscDeviceContextForkWithStreamType(self.dctx, cstream_type, n, &subctx)) # <<<<<<<<<<<<<< + * + * return [PyPetscDeviceContext_New(subctx[i]) for i in range(n)] + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextForkWithStreamType(__pyx_v_self->dctx, __pyx_v_cstream_type, __pyx_v_n, (&__pyx_v_subctx))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 195, __pyx_L4_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/Device.pyx":197 + * CHKERR(PetscDeviceContextForkWithStreamType(self.dctx, cstream_type, n, &subctx)) + * + * return [PyPetscDeviceContext_New(subctx[i]) for i in range(n)] # <<<<<<<<<<<<<< + * finally: + * CHKERR(PetscFree(subctx)) + */ + __Pyx_XDECREF(__pyx_r); + { /* enter inner scope */ + __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 197, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_v_n; + __pyx_t_7 = __pyx_t_6; + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_8genexpr2__pyx_v_i = __pyx_t_8; + __pyx_t_9 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New((__pyx_v_subctx[__pyx_8genexpr2__pyx_v_i]))); if (unlikely(!__pyx_t_9)) __PYX_ERR(2, 197, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_9); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_9))) __PYX_ERR(2, 197, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + } /* exit inner scope */ + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L3_return; + } + + /* "petsc4py/PETSc/Device.pyx":199 + * return [PyPetscDeviceContext_New(subctx[i]) for i in range(n)] + * finally: + * CHKERR(PetscFree(subctx)) # <<<<<<<<<<<<<< + * + * def join(self, join_mode, py_sub_ctxs): + */ + /*finally:*/ { + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_16, &__pyx_t_17, &__pyx_t_18); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15) < 0)) __Pyx_ErrFetch(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __pyx_t_10 = __pyx_lineno; __pyx_t_11 = __pyx_clineno; __pyx_t_12 = __pyx_filename; + { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_subctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 199, __pyx_L10_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + } + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ErrRestore(__pyx_t_13, __pyx_t_14, __pyx_t_15); + __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; + __pyx_lineno = __pyx_t_10; __pyx_clineno = __pyx_t_11; __pyx_filename = __pyx_t_12; + goto __pyx_L1_error; + __pyx_L10_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_ExceptionReset(__pyx_t_16, __pyx_t_17, __pyx_t_18); + } + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; + goto __pyx_L1_error; + } + __pyx_L3_return: { + __pyx_t_18 = __pyx_r; + __pyx_r = 0; + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_subctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 199, __pyx_L1_error) + __pyx_r = __pyx_t_18; + __pyx_t_18 = 0; + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/Device.pyx":186 + * CHKERR(PetscDeviceContextWaitForContext(self.dctx, cother)) + * + * def fork(self, PetscInt n, stream_type = None): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext *subctx = NULL + * cdef PetscStreamType cstream_type = PETSC_STREAM_DEFAULT_BLOCKING + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.fork", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":201 + * CHKERR(PetscFree(subctx)) + * + * def join(self, join_mode, py_sub_ctxs): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext *np_subctx_copy = NULL + * cdef PetscDeviceContext *np_subctx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_25join(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_24join[] = "DeviceContext.join(self, join_mode, py_sub_ctxs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_25join(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_join_mode = 0; + PyObject *__pyx_v_py_sub_ctxs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("join (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_join_mode,&__pyx_n_s_py_sub_ctxs,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_join_mode)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_sub_ctxs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("join", 1, 2, 2, 1); __PYX_ERR(2, 201, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "join") < 0)) __PYX_ERR(2, 201, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_join_mode = values[0]; + __pyx_v_py_sub_ctxs = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("join", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 201, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.join", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_24join(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_join_mode, __pyx_v_py_sub_ctxs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_24join(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_join_mode, PyObject *__pyx_v_py_sub_ctxs) { + PetscDeviceContext *__pyx_v_np_subctx_copy; + PetscDeviceContext *__pyx_v_np_subctx; + PetscInt __pyx_v_nsub; + PetscDeviceContextJoinMode __pyx_v_cjoin_mode; + CYTHON_UNUSED PyArrayObject *__pyx_v_tmp = NULL; + PetscInt __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscDeviceContextJoinMode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_t_13; + PetscInt __pyx_t_14; + PetscInt __pyx_t_15; + PetscInt __pyx_t_16; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("join", 0); + + /* "petsc4py/PETSc/Device.pyx":202 + * + * def join(self, join_mode, py_sub_ctxs): + * cdef PetscDeviceContext *np_subctx_copy = NULL # <<<<<<<<<<<<<< + * cdef PetscDeviceContext *np_subctx = NULL + * cdef PetscInt nsub = 0 + */ + __pyx_v_np_subctx_copy = NULL; + + /* "petsc4py/PETSc/Device.pyx":203 + * def join(self, join_mode, py_sub_ctxs): + * cdef PetscDeviceContext *np_subctx_copy = NULL + * cdef PetscDeviceContext *np_subctx = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nsub = 0 + * cdef PetscDeviceContextJoinMode cjoin_mode = asJoinMode(join_mode) + */ + __pyx_v_np_subctx = NULL; + + /* "petsc4py/PETSc/Device.pyx":204 + * cdef PetscDeviceContext *np_subctx_copy = NULL + * cdef PetscDeviceContext *np_subctx = NULL + * cdef PetscInt nsub = 0 # <<<<<<<<<<<<<< + * cdef PetscDeviceContextJoinMode cjoin_mode = asJoinMode(join_mode) + * + */ + __pyx_v_nsub = 0; + + /* "petsc4py/PETSc/Device.pyx":205 + * cdef PetscDeviceContext *np_subctx = NULL + * cdef PetscInt nsub = 0 + * cdef PetscDeviceContextJoinMode cjoin_mode = asJoinMode(join_mode) # <<<<<<<<<<<<<< + * + * tmp = oarray_p(py_sub_ctxs, &nsub, &np_subctx) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asJoinMode(__pyx_v_join_mode); if (unlikely(__pyx_t_1 == ((PetscDeviceContextJoinMode)((PetscDeviceContextJoinMode)-1L)))) __PYX_ERR(2, 205, __pyx_L1_error) + __pyx_v_cjoin_mode = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":207 + * cdef PetscDeviceContextJoinMode cjoin_mode = asJoinMode(join_mode) + * + * tmp = oarray_p(py_sub_ctxs, &nsub, &np_subctx) # <<<<<<<<<<<<<< + * try: + * CHKERR(PetscMalloc((nsub) * sizeof(PetscDeviceContext *), &np_subctx_copy)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_v_py_sub_ctxs, (&__pyx_v_nsub), ((void **)(&__pyx_v_np_subctx)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_tmp = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Device.pyx":208 + * + * tmp = oarray_p(py_sub_ctxs, &nsub, &np_subctx) + * try: # <<<<<<<<<<<<<< + * CHKERR(PetscMalloc((nsub) * sizeof(PetscDeviceContext *), &np_subctx_copy)) + * CHKERR(PetscMemcpy(np_subctx_copy, np_subctx, (nsub) * sizeof(PetscDeviceContext *))) + */ + /*try:*/ { + + /* "petsc4py/PETSc/Device.pyx":209 + * tmp = oarray_p(py_sub_ctxs, &nsub, &np_subctx) + * try: + * CHKERR(PetscMalloc((nsub) * sizeof(PetscDeviceContext *), &np_subctx_copy)) # <<<<<<<<<<<<<< + * CHKERR(PetscMemcpy(np_subctx_copy, np_subctx, (nsub) * sizeof(PetscDeviceContext *))) + * CHKERR(PetscDeviceContextJoin(self.dctx, nsub, cjoin_mode, &np_subctx_copy)) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_nsub) * (sizeof(PetscDeviceContext *))), (&__pyx_v_np_subctx_copy))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 209, __pyx_L4_error) + + /* "petsc4py/PETSc/Device.pyx":210 + * try: + * CHKERR(PetscMalloc((nsub) * sizeof(PetscDeviceContext *), &np_subctx_copy)) + * CHKERR(PetscMemcpy(np_subctx_copy, np_subctx, (nsub) * sizeof(PetscDeviceContext *))) # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextJoin(self.dctx, nsub, cjoin_mode, &np_subctx_copy)) + * finally: + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMemcpy(__pyx_v_np_subctx_copy, __pyx_v_np_subctx, (((size_t)__pyx_v_nsub) * (sizeof(PetscDeviceContext *))))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 210, __pyx_L4_error) + + /* "petsc4py/PETSc/Device.pyx":211 + * CHKERR(PetscMalloc((nsub) * sizeof(PetscDeviceContext *), &np_subctx_copy)) + * CHKERR(PetscMemcpy(np_subctx_copy, np_subctx, (nsub) * sizeof(PetscDeviceContext *))) + * CHKERR(PetscDeviceContextJoin(self.dctx, nsub, cjoin_mode, &np_subctx_copy)) # <<<<<<<<<<<<<< + * finally: + * CHKERR(PetscFree(np_subctx_copy)) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextJoin(__pyx_v_self->dctx, __pyx_v_nsub, __pyx_v_cjoin_mode, (&__pyx_v_np_subctx_copy))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 211, __pyx_L4_error) + } + + /* "petsc4py/PETSc/Device.pyx":213 + * CHKERR(PetscDeviceContextJoin(self.dctx, nsub, cjoin_mode, &np_subctx_copy)) + * finally: + * CHKERR(PetscFree(np_subctx_copy)) # <<<<<<<<<<<<<< + * + * if cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY: + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_np_subctx_copy)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 213, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_np_subctx_copy)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 213, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/Device.pyx":215 + * CHKERR(PetscFree(np_subctx_copy)) + * + * if cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY: # <<<<<<<<<<<<<< + * for i in range(nsub): + * py_sub_ctxs[i] = None + */ + __pyx_t_13 = ((__pyx_v_cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY) != 0); + if (__pyx_t_13) { + + /* "petsc4py/PETSc/Device.pyx":216 + * + * if cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY: + * for i in range(nsub): # <<<<<<<<<<<<<< + * py_sub_ctxs[i] = None + * + */ + __pyx_t_14 = __pyx_v_nsub; + __pyx_t_15 = __pyx_t_14; + for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) { + __pyx_v_i = __pyx_t_16; + + /* "petsc4py/PETSc/Device.pyx":217 + * if cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY: + * for i in range(nsub): + * py_sub_ctxs[i] = None # <<<<<<<<<<<<<< + * + * def synchronize(self): + */ + if (unlikely(__Pyx_SetItemInt(__pyx_v_py_sub_ctxs, __pyx_v_i, Py_None, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1) < 0)) __PYX_ERR(2, 217, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Device.pyx":215 + * CHKERR(PetscFree(np_subctx_copy)) + * + * if cjoin_mode == PETSC_DEVICE_CONTEXT_JOIN_DESTROY: # <<<<<<<<<<<<<< + * for i in range(nsub): + * py_sub_ctxs[i] = None + */ + } + + /* "petsc4py/PETSc/Device.pyx":201 + * CHKERR(PetscFree(subctx)) + * + * def join(self, join_mode, py_sub_ctxs): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext *np_subctx_copy = NULL + * cdef PetscDeviceContext *np_subctx = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.join", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":219 + * py_sub_ctxs[i] = None + * + * def synchronize(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextSynchronize(self.dctx)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_27synchronize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_26synchronize[] = "DeviceContext.synchronize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_27synchronize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("synchronize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("synchronize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "synchronize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_26synchronize(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_26synchronize(struct PyPetscDeviceContextObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("synchronize", 0); + + /* "petsc4py/PETSc/Device.pyx":220 + * + * def synchronize(self): + * CHKERR(PetscDeviceContextSynchronize(self.dctx)) # <<<<<<<<<<<<<< + * + * def setFromOptions(self, comm = None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSynchronize(__pyx_v_self->dctx)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 220, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":219 + * py_sub_ctxs[i] = None + * + * def synchronize(self): # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextSynchronize(self.dctx)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.synchronize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":222 + * CHKERR(PetscDeviceContextSynchronize(self.dctx)) + * + * def setFromOptions(self, comm = None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_29setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_28setFromOptions[] = "DeviceContext.setFromOptions(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_29setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFromOptions") < 0)) __PYX_ERR(2, 222, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFromOptions", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 222, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_28setFromOptions(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_28setFromOptions(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Device.pyx":223 + * + * def setFromOptions(self, comm = None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextSetFromOptions(ccomm, self.dctx)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(2, 223, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Device.pyx":225 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * + * CHKERR(PetscDeviceContextSetFromOptions(ccomm, self.dctx)) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object obj = None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSetFromOptions(__pyx_v_ccomm, __pyx_v_self->dctx)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 225, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":222 + * CHKERR(PetscDeviceContextSynchronize(self.dctx)) + * + * def setFromOptions(self, comm = None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":227 + * CHKERR(PetscDeviceContextSetFromOptions(ccomm, self.dctx)) + * + * def viewFromOptions(self, name, Object obj = None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef PetscObject cobj = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_31viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_30viewFromOptions[] = "DeviceContext.viewFromOptions(self, name, Object obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_31viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(2, 227, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 227, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(2, 227, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_30viewFromOptions(((struct PyPetscDeviceContextObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_30viewFromOptions(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cname; + PetscObject __pyx_v_cobj; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + + /* "petsc4py/PETSc/Device.pyx":228 + * + * def viewFromOptions(self, name, Object obj = None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Device.pyx":229 + * def viewFromOptions(self, name, Object obj = None): + * cdef const char *cname = NULL + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * + * if obj is not None: + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/Device.pyx":231 + * cdef PetscObject cobj = NULL + * + * if obj is not None: # <<<<<<<<<<<<<< + * cobj = obj.obj[0] + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Device.pyx":232 + * + * if obj is not None: + * cobj = obj.obj[0] # <<<<<<<<<<<<<< + * + * _ = str2bytes(name, &cname) + */ + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + + /* "petsc4py/PETSc/Device.pyx":231 + * cdef PetscObject cobj = NULL + * + * if obj is not None: # <<<<<<<<<<<<<< + * cobj = obj.obj[0] + * + */ + } + + /* "petsc4py/PETSc/Device.pyx":234 + * cobj = obj.obj[0] + * + * _ = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextViewFromOptions(self.dctx, cobj, cname)) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v__ = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Device.pyx":235 + * + * _ = str2bytes(name, &cname) + * CHKERR(PetscDeviceContextViewFromOptions(self.dctx, cobj, cname)) # <<<<<<<<<<<<<< + * + * @staticmethod + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextViewFromOptions(__pyx_v_self->dctx, __pyx_v_cobj, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 235, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":227 + * CHKERR(PetscDeviceContextSetFromOptions(ccomm, self.dctx)) + * + * def viewFromOptions(self, name, Object obj = None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef PetscObject cobj = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":238 + * + * @staticmethod + * def getCurrent(): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext dctx = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_33getCurrent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_32getCurrent[] = "DeviceContext.getCurrent()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_13DeviceContext_33getCurrent = {"getCurrent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_33getCurrent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_32getCurrent}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_33getCurrent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCurrent (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCurrent", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCurrent", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_32getCurrent(); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_32getCurrent(void) { + PetscDeviceContext __pyx_v_dctx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCurrent", 0); + + /* "petsc4py/PETSc/Device.pyx":239 + * @staticmethod + * def getCurrent(): + * cdef PetscDeviceContext dctx = NULL # <<<<<<<<<<<<<< + * + * CHKERR(PetscDeviceContextGetCurrentContext(&dctx)) + */ + __pyx_v_dctx = NULL; + + /* "petsc4py/PETSc/Device.pyx":241 + * cdef PetscDeviceContext dctx = NULL + * + * CHKERR(PetscDeviceContextGetCurrentContext(&dctx)) # <<<<<<<<<<<<<< + * return PyPetscDeviceContext_New(dctx) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextGetCurrentContext((&__pyx_v_dctx))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 241, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":242 + * + * CHKERR(PetscDeviceContextGetCurrentContext(&dctx)) + * return PyPetscDeviceContext_New(dctx) # <<<<<<<<<<<<<< + * + * @staticmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New(__pyx_v_dctx)); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":238 + * + * @staticmethod + * def getCurrent(): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext dctx = NULL + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.getCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":245 + * + * @staticmethod + * def setCurrent(dctx): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cdctx = NULL + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_35setCurrent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_13DeviceContext_34setCurrent[] = "DeviceContext.setCurrent(dctx)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_13DeviceContext_35setCurrent = {"setCurrent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_35setCurrent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_34setCurrent}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_35setCurrent(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCurrent (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCurrent") < 0)) __PYX_ERR(2, 245, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCurrent", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(2, 245, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_34setCurrent(__pyx_v_dctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_34setCurrent(PyObject *__pyx_v_dctx) { + PetscDeviceContext __pyx_v_cdctx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscDeviceContext __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCurrent", 0); + + /* "petsc4py/PETSc/Device.pyx":246 + * @staticmethod + * def setCurrent(dctx): + * cdef PetscDeviceContext cdctx = NULL # <<<<<<<<<<<<<< + * + * if dctx is not None: + */ + __pyx_v_cdctx = NULL; + + /* "petsc4py/PETSc/Device.pyx":248 + * cdef PetscDeviceContext cdctx = NULL + * + * if dctx is not None: # <<<<<<<<<<<<<< + * cdctx = PyPetscDeviceContext_Get(dctx) + * CHKERR(PetscDeviceContextSetCurrentContext(cdctx)) + */ + __pyx_t_1 = (__pyx_v_dctx != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Device.pyx":249 + * + * if dctx is not None: + * cdctx = PyPetscDeviceContext_Get(dctx) # <<<<<<<<<<<<<< + * CHKERR(PetscDeviceContextSetCurrentContext(cdctx)) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get(__pyx_v_dctx); if (unlikely(__pyx_t_3 == ((PetscDeviceContext)NULL) && PyErr_Occurred())) __PYX_ERR(2, 249, __pyx_L1_error) + __pyx_v_cdctx = __pyx_t_3; + + /* "petsc4py/PETSc/Device.pyx":248 + * cdef PetscDeviceContext cdctx = NULL + * + * if dctx is not None: # <<<<<<<<<<<<<< + * cdctx = PyPetscDeviceContext_Get(dctx) + * CHKERR(PetscDeviceContextSetCurrentContext(cdctx)) + */ + } + + /* "petsc4py/PETSc/Device.pyx":250 + * if dctx is not None: + * cdctx = PyPetscDeviceContext_Get(dctx) + * CHKERR(PetscDeviceContextSetCurrentContext(cdctx)) # <<<<<<<<<<<<<< + * + * property current: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDeviceContextSetCurrentContext(__pyx_v_cdctx)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(2, 250, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":245 + * + * @staticmethod + * def setCurrent(dctx): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cdctx = NULL + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.setCurrent", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":253 + * + * property current: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCurrent() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current___get__(((struct PyPetscDeviceContextObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current___get__(struct PyPetscDeviceContextObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Device.pyx":254 + * property current: + * def __get__(self): + * return self.getCurrent() # <<<<<<<<<<<<<< + * + * def __set__(self, dctx): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getCurrent); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Device.pyx":253 + * + * property current: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCurrent() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.current.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Device.pyx":256 + * return self.getCurrent() + * + * def __set__(self, dctx): # <<<<<<<<<<<<<< + * self.setCurrent(dctx) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dctx); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_dctx) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current_2__set__(((struct PyPetscDeviceContextObject *)__pyx_v_self), ((PyObject *)__pyx_v_dctx)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_13DeviceContext_7current_2__set__(struct PyPetscDeviceContextObject *__pyx_v_self, PyObject *__pyx_v_dctx) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Device.pyx":257 + * + * def __set__(self, dctx): + * self.setCurrent(dctx) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setCurrent); if (unlikely(!__pyx_t_2)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_dctx) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dctx); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":256 + * return self.getCurrent() + * + * def __set__(self, dctx): # <<<<<<<<<<<<<< + * self.setCurrent(dctx) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DeviceContext.current.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":16 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.iset + * self.iset = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2IS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2IS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS___cinit__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2IS___cinit__(struct PyPetscISObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/IS.pyx":17 + * + * def __cinit__(self): + * self.obj = &self.iset # <<<<<<<<<<<<<< + * self.iset = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->iset)); + + /* "petsc4py/PETSc/IS.pyx":18 + * def __cinit__(self): + * self.obj = &self.iset + * self.iset = NULL # <<<<<<<<<<<<<< + * + * # buffer interface (PEP 3118) + */ + __pyx_v_self->iset = NULL; + + /* "petsc4py/PETSc/IS.pyx":16 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.iset + * self.iset = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":22 + * # buffer interface (PEP 3118) + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * buf.acquirebuffer(view, flags) + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_2IS_3__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_2IS_3__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_2__getbuffer__(((struct PyPetscISObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_view), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2IS_2__getbuffer__(struct PyPetscISObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_buf = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_view == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_view->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_view->obj); + + /* "petsc4py/PETSc/IS.pyx":23 + * + * def __getbuffer__(self, Py_buffer *view, int flags): + * cdef _IS_buffer buf = _IS_buffer(self) # <<<<<<<<<<<<<< + * buf.acquirebuffer(view, flags) + * + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__IS_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":24 + * def __getbuffer__(self, Py_buffer *view, int flags): + * cdef _IS_buffer buf = _IS_buffer(self) + * buf.acquirebuffer(view, flags) # <<<<<<<<<<<<<< + * + * def __releasebuffer__(self, Py_buffer *view): + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_buf->__pyx_vtab)->acquirebuffer(__pyx_v_buf, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(38, 24, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":22 + * # buffer interface (PEP 3118) + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * buf.acquirebuffer(view, flags) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_view->obj != NULL) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_view->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + __pyx_L2:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":26 + * buf.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = <_IS_buffer>(view.obj) + * buf.releasebuffer(view) + */ + +/* Python wrapper */ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_2IS_5__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view); /*proto*/ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_2IS_5__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_2IS_4__releasebuffer__(((struct PyPetscISObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_view)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_2IS_4__releasebuffer__(struct PyPetscISObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_buf = 0; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__releasebuffer__", 0); + + /* "petsc4py/PETSc/IS.pyx":27 + * + * def __releasebuffer__(self, Py_buffer *view): + * cdef _IS_buffer buf = <_IS_buffer>(view.obj) # <<<<<<<<<<<<<< + * buf.releasebuffer(view) + * self # unused + */ + __pyx_t_1 = __pyx_v_view->obj; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":28 + * def __releasebuffer__(self, Py_buffer *view): + * cdef _IS_buffer buf = <_IS_buffer>(view.obj) + * buf.releasebuffer(view) # <<<<<<<<<<<<<< + * self # unused + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_buf->__pyx_vtab)->releasebuffer(__pyx_v_buf, __pyx_v_view); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(38, 28, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":29 + * cdef _IS_buffer buf = <_IS_buffer>(view.obj) + * buf.releasebuffer(view) + * self # unused # <<<<<<<<<<<<<< + * + * + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/IS.pyx":26 + * buf.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = <_IS_buffer>(view.obj) + * buf.releasebuffer(view) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_WriteUnraisable("petsc4py.PETSc.IS.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/IS.pyx":34 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * self.set_attr('__buffer__', buf) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_7__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_6__enter__[] = "IS.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_7__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_6__enter__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_6__enter__(struct PyPetscISObject *__pyx_v_self) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/IS.pyx":35 + * + * def __enter__(self): + * cdef _IS_buffer buf = _IS_buffer(self) # <<<<<<<<<<<<<< + * self.set_attr('__buffer__', buf) + * return buf.enter() + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__IS_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":36 + * def __enter__(self): + * cdef _IS_buffer buf = _IS_buffer(self) + * self.set_attr('__buffer__', buf) # <<<<<<<<<<<<<< + * return buf.enter() + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_IS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__"), ((PyObject *)__pyx_v_buf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":37 + * cdef _IS_buffer buf = _IS_buffer(self) + * self.set_attr('__buffer__', buf) + * return buf.enter() # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_buf->__pyx_vtab)->enter(__pyx_v_buf); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":34 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * self.set_attr('__buffer__', buf) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":39 + * return buf.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_9__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_8__exit__[] = "IS.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_9__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_8__exit__(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_8__exit__(struct PyPetscISObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/IS.pyx":40 + * + * def __exit__(self, *exc): + * cdef _IS_buffer buf = self.get_attr('__buffer__') # <<<<<<<<<<<<<< + * self.set_attr('__buffer__', None) + * return buf.exit() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_IS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc__IS_buffer))))) __PYX_ERR(38, 40, __pyx_L1_error) + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":41 + * def __exit__(self, *exc): + * cdef _IS_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) # <<<<<<<<<<<<<< + * return buf.exit() + * # + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_IS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":42 + * cdef _IS_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + * return buf.exit() # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer *)__pyx_v_buf->__pyx_vtab)->exit(__pyx_v_buf); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":39 + * return buf.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":45 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_11view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_10view[] = "IS.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_11view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(38, 45, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 45, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(38, 45, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_10view(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10view(struct PyPetscISObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_cviewer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/IS.pyx":46 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL # <<<<<<<<<<<<<< + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( ISView(self.iset, cviewer) ) + */ + __pyx_v_cviewer = NULL; + + /* "petsc4py/PETSc/IS.pyx":47 + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( ISView(self.iset, cviewer) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_cviewer = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":48 + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( ISView(self.iset, cviewer) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISView(__pyx_v_self->iset, __pyx_v_cviewer)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 48, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":45 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":50 + * CHKERR( ISView(self.iset, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( ISDestroy(&self.iset) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_13destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_12destroy[] = "IS.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_13destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_12destroy(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_12destroy(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/IS.pyx":51 + * + * def destroy(self): + * CHKERR( ISDestroy(&self.iset) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDestroy((&__pyx_v_self->iset))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 51, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":52 + * def destroy(self): + * CHKERR( ISDestroy(&self.iset) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":50 + * CHKERR( ISView(self.iset, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( ISDestroy(&self.iset) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":54 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscIS newiset = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_15create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_14create[] = "IS.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_15create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(38, 54, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 54, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_14create(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_14create(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + IS __pyx_v_newiset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/IS.pyx":55 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscIS newiset = NULL + * CHKERR( ISCreate(ccomm, &newiset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 55, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":56 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscIS newiset = NULL # <<<<<<<<<<<<<< + * CHKERR( ISCreate(ccomm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + */ + __pyx_v_newiset = NULL; + + /* "petsc4py/PETSc/IS.pyx":57 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscIS newiset = NULL + * CHKERR( ISCreate(ccomm, &newiset) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.iset = newiset + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCreate(__pyx_v_ccomm, (&__pyx_v_newiset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":58 + * cdef PetscIS newiset = NULL + * CHKERR( ISCreate(ccomm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->iset = __pyx_v_newiset; + + /* "petsc4py/PETSc/IS.pyx":59 + * CHKERR( ISCreate(ccomm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + * return self # <<<<<<<<<<<<<< + * + * def setType(self, is_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":54 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscIS newiset = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":61 + * return self + * + * def setType(self, is_type): # <<<<<<<<<<<<<< + * cdef PetscISType cval = NULL + * is_type = str2bytes(is_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_17setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_16setType[] = "IS.setType(self, is_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_17setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_is_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_is_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(38, 61, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_is_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 61, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_16setType(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_is_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_16setType(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_is_type) { + ISType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_is_type); + + /* "petsc4py/PETSc/IS.pyx":62 + * + * def setType(self, is_type): + * cdef PetscISType cval = NULL # <<<<<<<<<<<<<< + * is_type = str2bytes(is_type, &cval) + * CHKERR( ISSetType(self.iset, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/IS.pyx":63 + * def setType(self, is_type): + * cdef PetscISType cval = NULL + * is_type = str2bytes(is_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( ISSetType(self.iset, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_is_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_is_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":64 + * cdef PetscISType cval = NULL + * is_type = str2bytes(is_type, &cval) + * CHKERR( ISSetType(self.iset, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSetType(__pyx_v_self->iset, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":61 + * return self + * + * def setType(self, is_type): # <<<<<<<<<<<<<< + * cdef PetscISType cval = NULL + * is_type = str2bytes(is_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_is_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":66 + * CHKERR( ISSetType(self.iset, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscISType cval = NULL + * CHKERR( ISGetType(self.iset, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_19getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_18getType[] = "IS.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_19getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_18getType(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_18getType(struct PyPetscISObject *__pyx_v_self) { + ISType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/IS.pyx":67 + * + * def getType(self): + * cdef PetscISType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( ISGetType(self.iset, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/IS.pyx":68 + * def getType(self): + * cdef PetscISType cval = NULL + * CHKERR( ISGetType(self.iset, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetType(__pyx_v_self->iset, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":69 + * cdef PetscISType cval = NULL + * CHKERR( ISGetType(self.iset, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def createGeneral(self, indices, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":66 + * CHKERR( ISSetType(self.iset, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscISType cval = NULL + * CHKERR( ISGetType(self.iset, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":71 + * return bytes2str(cval) + * + * def createGeneral(self, indices, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt nidx = 0, *idx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_21createGeneral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_20createGeneral[] = "IS.createGeneral(self, indices, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_21createGeneral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGeneral (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGeneral") < 0)) __PYX_ERR(38, 71, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGeneral", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 71, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.createGeneral", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_20createGeneral(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_20createGeneral(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PetscCopyMode __pyx_v_cm; + IS __pyx_v_newiset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGeneral", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":72 + * + * def createGeneral(self, indices, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 72, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":73 + * def createGeneral(self, indices, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":74 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES # <<<<<<<<<<<<<< + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) + */ + __pyx_v_cm = PETSC_COPY_VALUES; + + /* "petsc4py/PETSc/IS.pyx":75 + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateGeneral(ccomm, nidx, idx, cm, &newiset) ) + */ + __pyx_v_newiset = NULL; + + /* "petsc4py/PETSc/IS.pyx":76 + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( ISCreateGeneral(ccomm, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/IS.pyx":77 + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateGeneral(ccomm, nidx, idx, cm, &newiset) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.iset = newiset + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCreateGeneral(__pyx_v_ccomm, __pyx_v_nidx, __pyx_v_idx, __pyx_v_cm, (&__pyx_v_newiset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 77, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":78 + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateGeneral(ccomm, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->iset = __pyx_v_newiset; + + /* "petsc4py/PETSc/IS.pyx":79 + * CHKERR( ISCreateGeneral(ccomm, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + * return self # <<<<<<<<<<<<<< + * + * def createBlock(self, bsize, indices, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":71 + * return bytes2str(cval) + * + * def createGeneral(self, indices, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt nidx = 0, *idx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.createGeneral", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":81 + * return self + * + * def createBlock(self, bsize, indices, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = asInt(bsize) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_23createBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_22createBlock[] = "IS.createBlock(self, bsize, indices, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_23createBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBlock (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bsize,&__pyx_n_s_indices,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createBlock", 0, 2, 3, 1); __PYX_ERR(38, 81, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBlock") < 0)) __PYX_ERR(38, 81, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_bsize = values[0]; + __pyx_v_indices = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBlock", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 81, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.createBlock", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_22createBlock(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_bsize, __pyx_v_indices, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_22createBlock(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_indices, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PetscCopyMode __pyx_v_cm; + IS __pyx_v_newiset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscInt __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBlock", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":82 + * + * def createBlock(self, bsize, indices, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 82, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":83 + * def createBlock(self, bsize, indices, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = asInt(bsize) # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 83, __pyx_L1_error) + __pyx_v_bs = __pyx_t_2; + + /* "petsc4py/PETSc/IS.pyx":84 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":85 + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES # <<<<<<<<<<<<<< + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) + */ + __pyx_v_cm = PETSC_COPY_VALUES; + + /* "petsc4py/PETSc/IS.pyx":86 + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateBlock(ccomm, bs, nidx, idx, cm, &newiset) ) + */ + __pyx_v_newiset = NULL; + + /* "petsc4py/PETSc/IS.pyx":87 + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( ISCreateBlock(ccomm, bs, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_3)) __PYX_ERR(38, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/IS.pyx":88 + * cdef PetscIS newiset = NULL + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateBlock(ccomm, bs, nidx, idx, cm, &newiset) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.iset = newiset + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCreateBlock(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_nidx, __pyx_v_idx, __pyx_v_cm, (&__pyx_v_newiset))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":89 + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISCreateBlock(ccomm, bs, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->iset = __pyx_v_newiset; + + /* "petsc4py/PETSc/IS.pyx":90 + * CHKERR( ISCreateBlock(ccomm, bs, nidx, idx, cm, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + * return self # <<<<<<<<<<<<<< + * + * def createStride(self, size, first=0, step=0, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":81 + * return self + * + * def createBlock(self, bsize, indices, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = asInt(bsize) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.createBlock", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":92 + * return self + * + * def createStride(self, size, first=0, step=0, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt csize = asInt(size) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_25createStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_24createStride[] = "IS.createStride(self, size, first=0, step=0, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_25createStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_first = 0; + PyObject *__pyx_v_step = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createStride (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_first,&__pyx_n_s_step,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_0); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_step); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createStride") < 0)) __PYX_ERR(38, 92, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_first = values[1]; + __pyx_v_step = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createStride", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 92, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.createStride", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_24createStride(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_size, __pyx_v_first, __pyx_v_step, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_24createStride(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_first, PyObject *__pyx_v_step, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_csize; + PetscInt __pyx_v_cfirst; + PetscInt __pyx_v_cstep; + IS __pyx_v_newiset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createStride", 0); + + /* "petsc4py/PETSc/IS.pyx":93 + * + * def createStride(self, size, first=0, step=0, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 93, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":94 + * def createStride(self, size, first=0, step=0, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt csize = asInt(size) # <<<<<<<<<<<<<< + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_size); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 94, __pyx_L1_error) + __pyx_v_csize = __pyx_t_2; + + /* "petsc4py/PETSc/IS.pyx":95 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) # <<<<<<<<<<<<<< + * cdef PetscInt cstep = asInt(step) + * cdef PetscIS newiset = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_first); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 95, __pyx_L1_error) + __pyx_v_cfirst = __pyx_t_2; + + /* "petsc4py/PETSc/IS.pyx":96 + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) # <<<<<<<<<<<<<< + * cdef PetscIS newiset = NULL + * CHKERR( ISCreateStride(ccomm, csize, cfirst, cstep, &newiset) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_step); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 96, __pyx_L1_error) + __pyx_v_cstep = __pyx_t_2; + + /* "petsc4py/PETSc/IS.pyx":97 + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) + * cdef PetscIS newiset = NULL # <<<<<<<<<<<<<< + * CHKERR( ISCreateStride(ccomm, csize, cfirst, cstep, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + */ + __pyx_v_newiset = NULL; + + /* "petsc4py/PETSc/IS.pyx":98 + * cdef PetscInt cstep = asInt(step) + * cdef PetscIS newiset = NULL + * CHKERR( ISCreateStride(ccomm, csize, cfirst, cstep, &newiset) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.iset = newiset + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCreateStride(__pyx_v_ccomm, __pyx_v_csize, __pyx_v_cfirst, __pyx_v_cstep, (&__pyx_v_newiset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":99 + * cdef PetscIS newiset = NULL + * CHKERR( ISCreateStride(ccomm, csize, cfirst, cstep, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->iset = __pyx_v_newiset; + + /* "petsc4py/PETSc/IS.pyx":100 + * CHKERR( ISCreateStride(ccomm, csize, cfirst, cstep, &newiset) ) + * PetscCLEAR(self.obj); self.iset = newiset + * return self # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":92 + * return self + * + * def createStride(self, size, first=0, step=0, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt csize = asInt(size) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.createStride", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":102 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef IS iset = type(self)() + * CHKERR( ISDuplicate(self.iset, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_27duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_26duplicate[] = "IS.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_27duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_26duplicate(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_26duplicate(struct PyPetscISObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/IS.pyx":103 + * + * def duplicate(self): + * cdef IS iset = type(self)() # <<<<<<<<<<<<<< + * CHKERR( ISDuplicate(self.iset, &iset.iset) ) + * return iset + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_IS))))) __PYX_ERR(38, 103, __pyx_L1_error) + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":104 + * def duplicate(self): + * cdef IS iset = type(self)() + * CHKERR( ISDuplicate(self.iset, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDuplicate(__pyx_v_self->iset, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":105 + * cdef IS iset = type(self)() + * CHKERR( ISDuplicate(self.iset, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def copy(self, IS result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":102 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef IS iset = type(self)() + * CHKERR( ISDuplicate(self.iset, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":107 + * return iset + * + * def copy(self, IS result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = type(self)() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_29copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_28copy[] = "IS.copy(self, IS result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_29copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_result,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copy") < 0)) __PYX_ERR(38, 107, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_result = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copy", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 107, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "result", 0))) __PYX_ERR(38, 107, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_28copy(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_28copy(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_result) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/IS.pyx":108 + * + * def copy(self, IS result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.iset == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/IS.pyx":109 + * def copy(self, IS result=None): + * if result is None: + * result = type(self)() # <<<<<<<<<<<<<< + * if result.iset == NULL: + * CHKERR( ISDuplicate(self.iset, &result.iset) ) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_4 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(38, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_IS))))) __PYX_ERR(38, 109, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscISObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/IS.pyx":108 + * + * def copy(self, IS result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.iset == NULL: + */ + } + + /* "petsc4py/PETSc/IS.pyx":110 + * if result is None: + * result = type(self)() + * if result.iset == NULL: # <<<<<<<<<<<<<< + * CHKERR( ISDuplicate(self.iset, &result.iset) ) + * CHKERR( ISCopy(self.iset, result.iset) ) + */ + __pyx_t_2 = ((__pyx_v_result->iset == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/IS.pyx":111 + * result = type(self)() + * if result.iset == NULL: + * CHKERR( ISDuplicate(self.iset, &result.iset) ) # <<<<<<<<<<<<<< + * CHKERR( ISCopy(self.iset, result.iset) ) + * return result + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDuplicate(__pyx_v_self->iset, (&__pyx_v_result->iset))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 111, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":110 + * if result is None: + * result = type(self)() + * if result.iset == NULL: # <<<<<<<<<<<<<< + * CHKERR( ISDuplicate(self.iset, &result.iset) ) + * CHKERR( ISCopy(self.iset, result.iset) ) + */ + } + + /* "petsc4py/PETSc/IS.pyx":112 + * if result.iset == NULL: + * CHKERR( ISDuplicate(self.iset, &result.iset) ) + * CHKERR( ISCopy(self.iset, result.iset) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCopy(__pyx_v_self->iset, __pyx_v_result->iset)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":113 + * CHKERR( ISDuplicate(self.iset, &result.iset) ) + * CHKERR( ISCopy(self.iset, result.iset) ) + * return result # <<<<<<<<<<<<<< + * + * def load(self, Viewer viewer): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":107 + * return iset + * + * def copy(self, IS result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = type(self)() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.IS.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":115 + * return result + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_31load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_30load[] = "IS.load(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_31load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("load (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "load") < 0)) __PYX_ERR(38, 115, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("load", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 115, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(38, 115, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_30load(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_30load(struct PyPetscISObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + MPI_Comm __pyx_v_comm; + PetscObject __pyx_v_obj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load", 0); + + /* "petsc4py/PETSc/IS.pyx":116 + * + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * cdef PetscObject obj = (viewer.vwr) + * if self.iset == NULL: + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/IS.pyx":117 + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) # <<<<<<<<<<<<<< + * if self.iset == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + */ + __pyx_v_obj = ((PetscObject)__pyx_v_viewer->vwr); + + /* "petsc4py/PETSc/IS.pyx":118 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.iset == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( ISCreate(comm, &self.iset) ) + */ + __pyx_t_1 = ((__pyx_v_self->iset == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/IS.pyx":119 + * cdef PetscObject obj = (viewer.vwr) + * if self.iset == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) # <<<<<<<<<<<<<< + * CHKERR( ISCreate(comm, &self.iset) ) + * CHKERR( ISLoad(self.iset, viewer.vwr) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(__pyx_v_obj, (&__pyx_v_comm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 119, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":120 + * if self.iset == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( ISCreate(comm, &self.iset) ) # <<<<<<<<<<<<<< + * CHKERR( ISLoad(self.iset, viewer.vwr) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISCreate(__pyx_v_comm, (&__pyx_v_self->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":118 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.iset == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( ISCreate(comm, &self.iset) ) + */ + } + + /* "petsc4py/PETSc/IS.pyx":121 + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( ISCreate(comm, &self.iset) ) + * CHKERR( ISLoad(self.iset, viewer.vwr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLoad(__pyx_v_self->iset, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":122 + * CHKERR( ISCreate(comm, &self.iset) ) + * CHKERR( ISLoad(self.iset, viewer.vwr) ) + * return self # <<<<<<<<<<<<<< + * + * def allGather(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":115 + * return result + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":124 + * return self + * + * def allGather(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( ISAllGather(self.iset, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_33allGather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_32allGather[] = "IS.allGather(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_33allGather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("allGather (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("allGather", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "allGather", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_32allGather(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_32allGather(struct PyPetscISObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("allGather", 0); + + /* "petsc4py/PETSc/IS.pyx":125 + * + * def allGather(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( ISAllGather(self.iset, &iset.iset) ) + * return iset + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":126 + * def allGather(self): + * cdef IS iset = IS() + * CHKERR( ISAllGather(self.iset, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISAllGather(__pyx_v_self->iset, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 126, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":127 + * cdef IS iset = IS() + * CHKERR( ISAllGather(self.iset, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def toGeneral(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":124 + * return self + * + * def allGather(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( ISAllGather(self.iset, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.allGather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":129 + * return iset + * + * def toGeneral(self): # <<<<<<<<<<<<<< + * CHKERR( ISToGeneral(self.iset) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_35toGeneral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_34toGeneral[] = "IS.toGeneral(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_35toGeneral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("toGeneral (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("toGeneral", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "toGeneral", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_34toGeneral(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_34toGeneral(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toGeneral", 0); + + /* "petsc4py/PETSc/IS.pyx":130 + * + * def toGeneral(self): + * CHKERR( ISToGeneral(self.iset) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISToGeneral(__pyx_v_self->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 130, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":131 + * def toGeneral(self): + * CHKERR( ISToGeneral(self.iset) ) + * return self # <<<<<<<<<<<<<< + * + * def buildTwoSided(self, IS toindx=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":129 + * return iset + * + * def toGeneral(self): # <<<<<<<<<<<<<< + * CHKERR( ISToGeneral(self.iset) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.toGeneral", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":133 + * return self + * + * def buildTwoSided(self, IS toindx=None): # <<<<<<<<<<<<<< + * cdef PetscIS ctoindx = NULL + * if toindx is not None: ctoindx = toindx.iset + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_37buildTwoSided(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_36buildTwoSided[] = "IS.buildTwoSided(self, IS toindx=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_37buildTwoSided(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_toindx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("buildTwoSided (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_toindx,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_toindx); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildTwoSided") < 0)) __PYX_ERR(38, 133, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_toindx = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("buildTwoSided", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 133, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.buildTwoSided", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_toindx), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "toindx", 0))) __PYX_ERR(38, 133, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_36buildTwoSided(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_toindx); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_36buildTwoSided(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_toindx) { + IS __pyx_v_ctoindx; + struct PyPetscISObject *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("buildTwoSided", 0); + + /* "petsc4py/PETSc/IS.pyx":134 + * + * def buildTwoSided(self, IS toindx=None): + * cdef PetscIS ctoindx = NULL # <<<<<<<<<<<<<< + * if toindx is not None: ctoindx = toindx.iset + * cdef IS result = IS() + */ + __pyx_v_ctoindx = NULL; + + /* "petsc4py/PETSc/IS.pyx":135 + * def buildTwoSided(self, IS toindx=None): + * cdef PetscIS ctoindx = NULL + * if toindx is not None: ctoindx = toindx.iset # <<<<<<<<<<<<<< + * cdef IS result = IS() + * CHKERR( ISBuildTwoSided(self.iset, ctoindx, &result.iset) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_toindx) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_toindx->iset; + __pyx_v_ctoindx = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":136 + * cdef PetscIS ctoindx = NULL + * if toindx is not None: ctoindx = toindx.iset + * cdef IS result = IS() # <<<<<<<<<<<<<< + * CHKERR( ISBuildTwoSided(self.iset, ctoindx, &result.iset) ) + * return result + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_result = ((struct PyPetscISObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/IS.pyx":137 + * if toindx is not None: ctoindx = toindx.iset + * cdef IS result = IS() + * CHKERR( ISBuildTwoSided(self.iset, ctoindx, &result.iset) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISBuildTwoSided(__pyx_v_self->iset, __pyx_v_ctoindx, (&__pyx_v_result->iset))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":138 + * cdef IS result = IS() + * CHKERR( ISBuildTwoSided(self.iset, ctoindx, &result.iset) ) + * return result # <<<<<<<<<<<<<< + * + * def invertPermutation(self, nlocal=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":133 + * return self + * + * def buildTwoSided(self, IS toindx=None): # <<<<<<<<<<<<<< + * cdef PetscIS ctoindx = NULL + * if toindx is not None: ctoindx = toindx.iset + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.IS.buildTwoSided", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":140 + * return result + * + * def invertPermutation(self, nlocal=None): # <<<<<<<<<<<<<< + * cdef PetscInt cnlocal = PETSC_DECIDE + * if nlocal is not None: cnlocal = asInt(nlocal) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_39invertPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_38invertPermutation[] = "IS.invertPermutation(self, nlocal=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_39invertPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nlocal = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("invertPermutation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlocal,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlocal); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "invertPermutation") < 0)) __PYX_ERR(38, 140, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_nlocal = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("invertPermutation", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 140, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.invertPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_38invertPermutation(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_nlocal); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_38invertPermutation(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_nlocal) { + PetscInt __pyx_v_cnlocal; + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("invertPermutation", 0); + + /* "petsc4py/PETSc/IS.pyx":141 + * + * def invertPermutation(self, nlocal=None): + * cdef PetscInt cnlocal = PETSC_DECIDE # <<<<<<<<<<<<<< + * if nlocal is not None: cnlocal = asInt(nlocal) + * cdef IS iset = IS() + */ + __pyx_v_cnlocal = PETSC_DECIDE; + + /* "petsc4py/PETSc/IS.pyx":142 + * def invertPermutation(self, nlocal=None): + * cdef PetscInt cnlocal = PETSC_DECIDE + * if nlocal is not None: cnlocal = asInt(nlocal) # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( ISInvertPermutation(self.iset, cnlocal, &iset.iset) ) + */ + __pyx_t_1 = (__pyx_v_nlocal != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nlocal); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 142, __pyx_L1_error) + __pyx_v_cnlocal = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":143 + * cdef PetscInt cnlocal = PETSC_DECIDE + * if nlocal is not None: cnlocal = asInt(nlocal) + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( ISInvertPermutation(self.iset, cnlocal, &iset.iset) ) + * return iset + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/IS.pyx":144 + * if nlocal is not None: cnlocal = asInt(nlocal) + * cdef IS iset = IS() + * CHKERR( ISInvertPermutation(self.iset, cnlocal, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISInvertPermutation(__pyx_v_self->iset, __pyx_v_cnlocal, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 144, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":145 + * cdef IS iset = IS() + * CHKERR( ISInvertPermutation(self.iset, cnlocal, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":140 + * return result + * + * def invertPermutation(self, nlocal=None): # <<<<<<<<<<<<<< + * cdef PetscInt cnlocal = PETSC_DECIDE + * if nlocal is not None: cnlocal = asInt(nlocal) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.IS.invertPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":147 + * return iset + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt N = 0 + * CHKERR( ISGetSize(self.iset, &N) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_41getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_40getSize[] = "IS.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_41getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_40getSize(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_40getSize(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/IS.pyx":148 + * + * def getSize(self): + * cdef PetscInt N = 0 # <<<<<<<<<<<<<< + * CHKERR( ISGetSize(self.iset, &N) ) + * return toInt(N) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/IS.pyx":149 + * def getSize(self): + * cdef PetscInt N = 0 + * CHKERR( ISGetSize(self.iset, &N) ) # <<<<<<<<<<<<<< + * return toInt(N) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetSize(__pyx_v_self->iset, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":150 + * cdef PetscInt N = 0 + * CHKERR( ISGetSize(self.iset, &N) ) + * return toInt(N) # <<<<<<<<<<<<<< + * + * def getLocalSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":147 + * return iset + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt N = 0 + * CHKERR( ISGetSize(self.iset, &N) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":152 + * return toInt(N) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_43getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_42getLocalSize[] = "IS.getLocalSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_43getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_42getLocalSize(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_42getLocalSize(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSize", 0); + + /* "petsc4py/PETSc/IS.pyx":153 + * + * def getLocalSize(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/IS.pyx":154 + * def getLocalSize(self): + * cdef PetscInt n = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 154, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":155 + * cdef PetscInt n = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def getSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":152 + * return toInt(N) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getLocalSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":157 + * return toInt(n) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, N = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_45getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_44getSizes[] = "IS.getSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_45getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_44getSizes(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_44getSizes(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSizes", 0); + + /* "petsc4py/PETSc/IS.pyx":158 + * + * def getSizes(self): + * cdef PetscInt n = 0, N = 0 # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * CHKERR( ISGetSize(self.iset, &N) ) + */ + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/IS.pyx":159 + * def getSizes(self): + * cdef PetscInt n = 0, N = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) # <<<<<<<<<<<<<< + * CHKERR( ISGetSize(self.iset, &N) ) + * return (toInt(n), toInt(N)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":160 + * cdef PetscInt n = 0, N = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * CHKERR( ISGetSize(self.iset, &N) ) # <<<<<<<<<<<<<< + * return (toInt(n), toInt(N)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetSize(__pyx_v_self->iset, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 160, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":161 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + * CHKERR( ISGetSize(self.iset, &N) ) + * return (toInt(n), toInt(N)) # <<<<<<<<<<<<<< + * + * def getBlockSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(38, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":157 + * return toInt(n) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, N = 0 + * CHKERR( ISGetLocalSize(self.iset, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":163 + * return (toInt(n), toInt(N)) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_47getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_46getBlockSize[] = "IS.getBlockSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_47getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_46getBlockSize(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_46getBlockSize(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSize", 0); + + /* "petsc4py/PETSc/IS.pyx":164 + * + * def getBlockSize(self): + * cdef PetscInt bs = 1 # <<<<<<<<<<<<<< + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + * return toInt(bs) + */ + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/IS.pyx":165 + * def getBlockSize(self): + * cdef PetscInt bs = 1 + * CHKERR( ISGetBlockSize(self.iset, &bs) ) # <<<<<<<<<<<<<< + * return toInt(bs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetBlockSize(__pyx_v_self->iset, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 165, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":166 + * cdef PetscInt bs = 1 + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + * return toInt(bs) # <<<<<<<<<<<<<< + * + * def setBlockSize(self, bs): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":163 + * return (toInt(n), toInt(N)) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":168 + * return toInt(bs) + * + * def setBlockSize(self, bs): # <<<<<<<<<<<<<< + * cdef PetscInt cbs = asInt(bs) + * CHKERR( ISSetBlockSize(self.iset, cbs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_49setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_48setBlockSize[] = "IS.setBlockSize(self, bs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_49setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBlockSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBlockSize") < 0)) __PYX_ERR(38, 168, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBlockSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 168, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_48setBlockSize(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_bs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_48setBlockSize(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bs) { + PetscInt __pyx_v_cbs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBlockSize", 0); + + /* "petsc4py/PETSc/IS.pyx":169 + * + * def setBlockSize(self, bs): + * cdef PetscInt cbs = asInt(bs) # <<<<<<<<<<<<<< + * CHKERR( ISSetBlockSize(self.iset, cbs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 169, __pyx_L1_error) + __pyx_v_cbs = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":170 + * def setBlockSize(self, bs): + * cdef PetscInt cbs = asInt(bs) + * CHKERR( ISSetBlockSize(self.iset, cbs) ) # <<<<<<<<<<<<<< + * + * def sort(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSetBlockSize(__pyx_v_self->iset, __pyx_v_cbs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":168 + * return toInt(bs) + * + * def setBlockSize(self, bs): # <<<<<<<<<<<<<< + * cdef PetscInt cbs = asInt(bs) + * CHKERR( ISSetBlockSize(self.iset, cbs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":172 + * CHKERR( ISSetBlockSize(self.iset, cbs) ) + * + * def sort(self): # <<<<<<<<<<<<<< + * CHKERR( ISSort(self.iset) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_51sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_50sort[] = "IS.sort(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_51sort(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sort (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sort", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sort", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_50sort(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_50sort(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sort", 0); + + /* "petsc4py/PETSc/IS.pyx":173 + * + * def sort(self): + * CHKERR( ISSort(self.iset) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSort(__pyx_v_self->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 173, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":174 + * def sort(self): + * CHKERR( ISSort(self.iset) ) + * return self # <<<<<<<<<<<<<< + * + * def isSorted(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":172 + * CHKERR( ISSetBlockSize(self.iset, cbs) ) + * + * def sort(self): # <<<<<<<<<<<<<< + * CHKERR( ISSort(self.iset) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.sort", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":176 + * return self + * + * def isSorted(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_53isSorted(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_52isSorted[] = "IS.isSorted(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_53isSorted(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isSorted (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isSorted", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isSorted", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_52isSorted(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_52isSorted(struct PyPetscISObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isSorted", 0); + + /* "petsc4py/PETSc/IS.pyx":177 + * + * def isSorted(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( ISSorted(self.iset, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/IS.pyx":178 + * def isSorted(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSorted(__pyx_v_self->iset, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 178, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":179 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setPermutation(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":176 + * return self + * + * def isSorted(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.isSorted", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":181 + * return toBool(flag) + * + * def setPermutation(self): # <<<<<<<<<<<<<< + * CHKERR( ISSetPermutation(self.iset) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_55setPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_54setPermutation[] = "IS.setPermutation(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_55setPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPermutation (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setPermutation", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setPermutation", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_54setPermutation(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_54setPermutation(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPermutation", 0); + + /* "petsc4py/PETSc/IS.pyx":182 + * + * def setPermutation(self): + * CHKERR( ISSetPermutation(self.iset) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSetPermutation(__pyx_v_self->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 182, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":183 + * def setPermutation(self): + * CHKERR( ISSetPermutation(self.iset) ) + * return self # <<<<<<<<<<<<<< + * + * def isPermutation(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":181 + * return toBool(flag) + * + * def setPermutation(self): # <<<<<<<<<<<<<< + * CHKERR( ISSetPermutation(self.iset) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":185 + * return self + * + * def isPermutation(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISPermutation(self.iset, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_57isPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_56isPermutation[] = "IS.isPermutation(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_57isPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isPermutation (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isPermutation", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isPermutation", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_56isPermutation(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_56isPermutation(struct PyPetscISObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isPermutation", 0); + + /* "petsc4py/PETSc/IS.pyx":186 + * + * def isPermutation(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( ISPermutation(self.iset, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/IS.pyx":187 + * def isPermutation(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISPermutation(self.iset, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISPermutation(__pyx_v_self->iset, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":188 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISPermutation(self.iset, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setIdentity(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":185 + * return self + * + * def isPermutation(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISPermutation(self.iset, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.isPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":190 + * return toBool(flag) + * + * def setIdentity(self): # <<<<<<<<<<<<<< + * CHKERR( ISSetIdentity(self.iset) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_59setIdentity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_58setIdentity[] = "IS.setIdentity(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_59setIdentity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIdentity (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setIdentity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setIdentity", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_58setIdentity(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_58setIdentity(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIdentity", 0); + + /* "petsc4py/PETSc/IS.pyx":191 + * + * def setIdentity(self): + * CHKERR( ISSetIdentity(self.iset) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSetIdentity(__pyx_v_self->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 191, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":192 + * def setIdentity(self): + * CHKERR( ISSetIdentity(self.iset) ) + * return self # <<<<<<<<<<<<<< + * + * def isIdentity(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":190 + * return toBool(flag) + * + * def setIdentity(self): # <<<<<<<<<<<<<< + * CHKERR( ISSetIdentity(self.iset) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setIdentity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":194 + * return self + * + * def isIdentity(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISIdentity(self.iset, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_61isIdentity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_60isIdentity[] = "IS.isIdentity(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_61isIdentity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isIdentity (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isIdentity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isIdentity", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_60isIdentity(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_60isIdentity(struct PyPetscISObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isIdentity", 0); + + /* "petsc4py/PETSc/IS.pyx":195 + * + * def isIdentity(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( ISIdentity(self.iset, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/IS.pyx":196 + * def isIdentity(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISIdentity(self.iset, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISIdentity(__pyx_v_self->iset, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 196, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":197 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISIdentity(self.iset, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def equal(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":194 + * return self + * + * def isIdentity(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISIdentity(self.iset, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.isIdentity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":199 + * return toBool(flag) + * + * def equal(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISEqual(self.iset, iset.iset, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_63equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_62equal[] = "IS.equal(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_63equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("equal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "equal") < 0)) __PYX_ERR(38, 199, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("equal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 199, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 199, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_62equal(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_62equal(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("equal", 0); + + /* "petsc4py/PETSc/IS.pyx":200 + * + * def equal(self, IS iset): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( ISEqual(self.iset, iset.iset, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/IS.pyx":201 + * def equal(self, IS iset): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISEqual(self.iset, iset.iset, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISEqual(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 201, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":202 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISEqual(self.iset, iset.iset, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def sum(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":199 + * return toBool(flag) + * + * def equal(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( ISEqual(self.iset, iset.iset, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":204 + * return toBool(flag) + * + * def sum(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_65sum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_64sum[] = "IS.sum(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_65sum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sum") < 0)) __PYX_ERR(38, 204, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 204, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.sum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 204, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_64sum(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_64sum(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sum", 0); + + /* "petsc4py/PETSc/IS.pyx":205 + * + * def sum(self, IS iset): + * cdef IS out = IS() # <<<<<<<<<<<<<< + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + * return out + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":206 + * def sum(self, IS iset): + * cdef IS out = IS() + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSum(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 206, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":207 + * cdef IS out = IS() + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def expand(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":204 + * return toBool(flag) + * + * def sum(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.sum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":209 + * return out + * + * def expand(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_67expand(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_66expand[] = "IS.expand(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_67expand(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("expand (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "expand") < 0)) __PYX_ERR(38, 209, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("expand", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 209, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.expand", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 209, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_66expand(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_66expand(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("expand", 0); + + /* "petsc4py/PETSc/IS.pyx":210 + * + * def expand(self, IS iset): + * cdef IS out = IS() # <<<<<<<<<<<<<< + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + * return out + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":211 + * def expand(self, IS iset): + * cdef IS out = IS() + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISExpand(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 211, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":212 + * cdef IS out = IS() + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def union(self, IS iset): # XXX review this + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":209 + * return out + * + * def expand(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.expand", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":214 + * return out + * + * def union(self, IS iset): # XXX review this # <<<<<<<<<<<<<< + * cdef PetscBool flag1=PETSC_FALSE, flag2=PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag1) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_69union(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_68union[] = "IS.union(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_69union(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("union (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "union") < 0)) __PYX_ERR(38, 214, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("union", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 214, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.union", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 214, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_68union(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_68union(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + PetscBool __pyx_v_flag1; + PetscBool __pyx_v_flag2; + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("union", 0); + + /* "petsc4py/PETSc/IS.pyx":215 + * + * def union(self, IS iset): # XXX review this + * cdef PetscBool flag1=PETSC_FALSE, flag2=PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( ISSorted(self.iset, &flag1) ) + * CHKERR( ISSorted(iset.iset, &flag2) ) + */ + __pyx_v_flag1 = PETSC_FALSE; + __pyx_v_flag2 = PETSC_FALSE; + + /* "petsc4py/PETSc/IS.pyx":216 + * def union(self, IS iset): # XXX review this + * cdef PetscBool flag1=PETSC_FALSE, flag2=PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag1) ) # <<<<<<<<<<<<<< + * CHKERR( ISSorted(iset.iset, &flag2) ) + * cdef IS out = IS() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSorted(__pyx_v_self->iset, (&__pyx_v_flag1))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":217 + * cdef PetscBool flag1=PETSC_FALSE, flag2=PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag1) ) + * CHKERR( ISSorted(iset.iset, &flag2) ) # <<<<<<<<<<<<<< + * cdef IS out = IS() + * if flag1==PETSC_TRUE and flag2==PETSC_TRUE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSorted(__pyx_v_iset->iset, (&__pyx_v_flag2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 217, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":218 + * CHKERR( ISSorted(self.iset, &flag1) ) + * CHKERR( ISSorted(iset.iset, &flag2) ) + * cdef IS out = IS() # <<<<<<<<<<<<<< + * if flag1==PETSC_TRUE and flag2==PETSC_TRUE: + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/IS.pyx":219 + * CHKERR( ISSorted(iset.iset, &flag2) ) + * cdef IS out = IS() + * if flag1==PETSC_TRUE and flag2==PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + * else: + */ + __pyx_t_4 = ((__pyx_v_flag1 == PETSC_TRUE) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_flag2 == PETSC_TRUE) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/IS.pyx":220 + * cdef IS out = IS() + * if flag1==PETSC_TRUE and flag2==PETSC_TRUE: + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISSum(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 220, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":219 + * CHKERR( ISSorted(iset.iset, &flag2) ) + * cdef IS out = IS() + * if flag1==PETSC_TRUE and flag2==PETSC_TRUE: # <<<<<<<<<<<<<< + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/IS.pyx":222 + * CHKERR( ISSum(self.iset, iset.iset, &out.iset) ) + * else: + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISExpand(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 222, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/IS.pyx":223 + * else: + * CHKERR( ISExpand(self.iset, iset.iset, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def difference(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":214 + * return out + * + * def union(self, IS iset): # XXX review this # <<<<<<<<<<<<<< + * cdef PetscBool flag1=PETSC_FALSE, flag2=PETSC_FALSE + * CHKERR( ISSorted(self.iset, &flag1) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.union", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":225 + * return out + * + * def difference(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISDifference(self.iset, iset.iset, &out.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_71difference(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_70difference[] = "IS.difference(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_71difference(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("difference (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "difference") < 0)) __PYX_ERR(38, 225, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("difference", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 225, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.difference", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 225, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_70difference(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_70difference(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("difference", 0); + + /* "petsc4py/PETSc/IS.pyx":226 + * + * def difference(self, IS iset): + * cdef IS out = IS() # <<<<<<<<<<<<<< + * CHKERR( ISDifference(self.iset, iset.iset, &out.iset) ) + * return out + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":227 + * def difference(self, IS iset): + * cdef IS out = IS() + * CHKERR( ISDifference(self.iset, iset.iset, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDifference(__pyx_v_self->iset, __pyx_v_iset->iset, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 227, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":228 + * cdef IS out = IS() + * CHKERR( ISDifference(self.iset, iset.iset, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def complement(self, nmin, nmax): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":225 + * return out + * + * def difference(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISDifference(self.iset, iset.iset, &out.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.difference", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":230 + * return out + * + * def complement(self, nmin, nmax): # <<<<<<<<<<<<<< + * cdef PetscInt cnmin = asInt(nmin) + * cdef PetscInt cnmax = asInt(nmax) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_73complement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_72complement[] = "IS.complement(self, nmin, nmax)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_73complement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nmin = 0; + PyObject *__pyx_v_nmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("complement (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nmin,&__pyx_n_s_nmax,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmin)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmax)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("complement", 1, 2, 2, 1); __PYX_ERR(38, 230, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "complement") < 0)) __PYX_ERR(38, 230, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_nmin = values[0]; + __pyx_v_nmax = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("complement", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 230, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.complement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_72complement(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_nmin, __pyx_v_nmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_72complement(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_nmin, PyObject *__pyx_v_nmax) { + PetscInt __pyx_v_cnmin; + PetscInt __pyx_v_cnmax; + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("complement", 0); + + /* "petsc4py/PETSc/IS.pyx":231 + * + * def complement(self, nmin, nmax): + * cdef PetscInt cnmin = asInt(nmin) # <<<<<<<<<<<<<< + * cdef PetscInt cnmax = asInt(nmax) + * cdef IS out = IS() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nmin); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 231, __pyx_L1_error) + __pyx_v_cnmin = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":232 + * def complement(self, nmin, nmax): + * cdef PetscInt cnmin = asInt(nmin) + * cdef PetscInt cnmax = asInt(nmax) # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISComplement(self.iset, cnmin, cnmax, &out.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nmax); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 232, __pyx_L1_error) + __pyx_v_cnmax = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":233 + * cdef PetscInt cnmin = asInt(nmin) + * cdef PetscInt cnmax = asInt(nmax) + * cdef IS out = IS() # <<<<<<<<<<<<<< + * CHKERR( ISComplement(self.iset, cnmin, cnmax, &out.iset) ) + * return out + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/IS.pyx":234 + * cdef PetscInt cnmax = asInt(nmax) + * cdef IS out = IS() + * CHKERR( ISComplement(self.iset, cnmin, cnmax, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISComplement(__pyx_v_self->iset, __pyx_v_cnmin, __pyx_v_cnmax, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 234, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":235 + * cdef IS out = IS() + * CHKERR( ISComplement(self.iset, cnmin, cnmax, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def embed(self, IS iset, drop): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":230 + * return out + * + * def complement(self, nmin, nmax): # <<<<<<<<<<<<<< + * cdef PetscInt cnmin = asInt(nmin) + * cdef PetscInt cnmax = asInt(nmax) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.complement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":237 + * return out + * + * def embed(self, IS iset, drop): # <<<<<<<<<<<<<< + * cdef PetscBool bval = drop + * cdef IS out = IS() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_75embed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_74embed[] = "IS.embed(self, IS iset, drop)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_75embed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_v_drop = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("embed (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,&__pyx_n_s_drop,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_drop)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("embed", 1, 2, 2, 1); __PYX_ERR(38, 237, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "embed") < 0)) __PYX_ERR(38, 237, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + __pyx_v_drop = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("embed", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 237, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.embed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 237, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_74embed(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_iset, __pyx_v_drop); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_74embed(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_drop) { + PetscBool __pyx_v_bval; + struct PyPetscISObject *__pyx_v_out = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("embed", 0); + + /* "petsc4py/PETSc/IS.pyx":238 + * + * def embed(self, IS iset, drop): + * cdef PetscBool bval = drop # <<<<<<<<<<<<<< + * cdef IS out = IS() + * CHKERR( ISEmbed(self.iset, iset.iset, bval, &out.iset) ) + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_drop)); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 238, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":239 + * def embed(self, IS iset, drop): + * cdef PetscBool bval = drop + * cdef IS out = IS() # <<<<<<<<<<<<<< + * CHKERR( ISEmbed(self.iset, iset.iset, bval, &out.iset) ) + * return out + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/IS.pyx":240 + * cdef PetscBool bval = drop + * cdef IS out = IS() + * CHKERR( ISEmbed(self.iset, iset.iset, bval, &out.iset) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISEmbed(__pyx_v_self->iset, __pyx_v_iset->iset, __pyx_v_bval, (&__pyx_v_out->iset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 240, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":241 + * cdef IS out = IS() + * CHKERR( ISEmbed(self.iset, iset.iset, bval, &out.iset) ) + * return out # <<<<<<<<<<<<<< + * + * def renumber(self, IS mult=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":237 + * return out + * + * def embed(self, IS iset, drop): # <<<<<<<<<<<<<< + * cdef PetscBool bval = drop + * cdef IS out = IS() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.embed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":243 + * return out + * + * def renumber(self, IS mult=None): # <<<<<<<<<<<<<< + * cdef PetscIS mlt = NULL + * if mult is not None: mlt = mult.iset + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_77renumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_76renumber[] = "IS.renumber(self, IS mult=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_77renumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_mult = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("renumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mult,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mult); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "renumber") < 0)) __PYX_ERR(38, 243, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mult = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("renumber", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 243, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.renumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mult), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "mult", 0))) __PYX_ERR(38, 243, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_76renumber(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_mult); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_76renumber(struct PyPetscISObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_mult) { + IS __pyx_v_mlt; + struct PyPetscISObject *__pyx_v_out = 0; + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("renumber", 0); + + /* "petsc4py/PETSc/IS.pyx":244 + * + * def renumber(self, IS mult=None): + * cdef PetscIS mlt = NULL # <<<<<<<<<<<<<< + * if mult is not None: mlt = mult.iset + * cdef IS out = IS() + */ + __pyx_v_mlt = NULL; + + /* "petsc4py/PETSc/IS.pyx":245 + * def renumber(self, IS mult=None): + * cdef PetscIS mlt = NULL + * if mult is not None: mlt = mult.iset # <<<<<<<<<<<<<< + * cdef IS out = IS() + * cdef PetscInt n = 0 + */ + __pyx_t_1 = (((PyObject *)__pyx_v_mult) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_mult->iset; + __pyx_v_mlt = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":246 + * cdef PetscIS mlt = NULL + * if mult is not None: mlt = mult.iset + * cdef IS out = IS() # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( ISRenumber(self.iset, mlt, &n, &out.iset) ) + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_out = ((struct PyPetscISObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/IS.pyx":247 + * if mult is not None: mlt = mult.iset + * cdef IS out = IS() + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( ISRenumber(self.iset, mlt, &n, &out.iset) ) + * return (toInt(n), out) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/IS.pyx":248 + * cdef IS out = IS() + * cdef PetscInt n = 0 + * CHKERR( ISRenumber(self.iset, mlt, &n, &out.iset) ) # <<<<<<<<<<<<<< + * return (toInt(n), out) + * # + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISRenumber(__pyx_v_self->iset, __pyx_v_mlt, (&__pyx_v_n), (&__pyx_v_out->iset))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 248, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":249 + * cdef PetscInt n = 0 + * CHKERR( ISRenumber(self.iset, mlt, &n, &out.iset) ) + * return (toInt(n), out) # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_out)); + PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_out)); + __pyx_t_4 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":243 + * return out + * + * def renumber(self, IS mult=None): # <<<<<<<<<<<<<< + * cdef PetscIS mlt = NULL + * if mult is not None: mlt = mult.iset + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.IS.renumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":252 + * # + * + * def setIndices(self, indices): # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_79setIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_78setIndices[] = "IS.setIndices(self, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_79setIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIndices") < 0)) __PYX_ERR(38, 252, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_indices = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIndices", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 252, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_78setIndices(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_78setIndices(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_indices) { + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PetscCopyMode __pyx_v_cm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIndices", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":253 + * + * def setIndices(self, indices): + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":254 + * def setIndices(self, indices): + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISGeneralSetIndices(self.iset, nidx, idx, cm) ) + */ + __pyx_v_cm = PETSC_COPY_VALUES; + + /* "petsc4py/PETSc/IS.pyx":255 + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( ISGeneralSetIndices(self.iset, nidx, idx, cm) ) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":256 + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISGeneralSetIndices(self.iset, nidx, idx, cm) ) # <<<<<<<<<<<<<< + * + * def getIndices(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGeneralSetIndices(__pyx_v_self->iset, __pyx_v_nidx, __pyx_v_idx, __pyx_v_cm)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":252 + * # + * + * def setIndices(self, indices): # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.setIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":258 + * CHKERR( ISGeneralSetIndices(self.iset, nidx, idx, cm) ) + * + * def getIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_81getIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_80getIndices[] = "IS.getIndices(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_81getIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIndices (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIndices", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIndices", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_80getIndices(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_80getIndices(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_v_oindices = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIndices", 0); + + /* "petsc4py/PETSc/IS.pyx":259 + * + * def getIndices(self): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/IS.pyx":260 + * def getIndices(self): + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetIndices(self.iset, &indices) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":261 + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) # <<<<<<<<<<<<<< + * CHKERR( ISGetIndices(self.iset, &indices) ) + * cdef object oindices = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 261, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":262 + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetIndices(self.iset, &indices) ) # <<<<<<<<<<<<<< + * cdef object oindices = None + * try: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 262, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":263 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetIndices(self.iset, &indices) ) + * cdef object oindices = None # <<<<<<<<<<<<<< + * try: + * oindices = array_i(size, indices) + */ + __Pyx_INCREF(Py_None); + __pyx_v_oindices = Py_None; + + /* "petsc4py/PETSc/IS.pyx":264 + * CHKERR( ISGetIndices(self.iset, &indices) ) + * cdef object oindices = None + * try: # <<<<<<<<<<<<<< + * oindices = array_i(size, indices) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":265 + * cdef object oindices = None + * try: + * oindices = array_i(size, indices) # <<<<<<<<<<<<<< + * finally: + * CHKERR( ISRestoreIndices(self.iset, &indices) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_size, __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 265, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_oindices, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":267 + * oindices = array_i(size, indices) + * finally: + * CHKERR( ISRestoreIndices(self.iset, &indices) ) # <<<<<<<<<<<<<< + * return oindices + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISRestoreIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 267, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISRestoreIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 267, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":268 + * finally: + * CHKERR( ISRestoreIndices(self.iset, &indices) ) + * return oindices # <<<<<<<<<<<<<< + * + * def setBlockIndices(self, bsize, indices): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_oindices); + __pyx_r = __pyx_v_oindices; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":258 + * CHKERR( ISGeneralSetIndices(self.iset, nidx, idx, cm) ) + * + * def getIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oindices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":270 + * return oindices + * + * def setBlockIndices(self, bsize, indices): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_83setBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_82setBlockIndices[] = "IS.setBlockIndices(self, bsize, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_83setBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBlockIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bsize,&__pyx_n_s_indices,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setBlockIndices", 1, 2, 2, 1); __PYX_ERR(38, 270, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBlockIndices") < 0)) __PYX_ERR(38, 270, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_bsize = values[0]; + __pyx_v_indices = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBlockIndices", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 270, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setBlockIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_82setBlockIndices(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_bsize, __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_82setBlockIndices(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_indices) { + PetscInt __pyx_v_bs; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PetscCopyMode __pyx_v_cm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBlockIndices", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":271 + * + * def setBlockIndices(self, bsize, indices): + * cdef PetscInt bs = asInt(bsize) # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 271, __pyx_L1_error) + __pyx_v_bs = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":272 + * def setBlockIndices(self, bsize, indices): + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":273 + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISBlockSetIndices(self.iset, bs, nidx, idx, cm) ) + */ + __pyx_v_cm = PETSC_COPY_VALUES; + + /* "petsc4py/PETSc/IS.pyx":274 + * cdef PetscInt nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( ISBlockSetIndices(self.iset, bs, nidx, idx, cm) ) + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/IS.pyx":275 + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISBlockSetIndices(self.iset, bs, nidx, idx, cm) ) # <<<<<<<<<<<<<< + * + * def getBlockIndices(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISBlockSetIndices(__pyx_v_self->iset, __pyx_v_bs, __pyx_v_nidx, __pyx_v_idx, __pyx_v_cm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":270 + * return oindices + * + * def setBlockIndices(self, bsize, indices): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * cdef PetscInt nidx = 0, *idx = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.setBlockIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":277 + * CHKERR( ISBlockSetIndices(self.iset, bs, nidx, idx, cm) ) + * + * def getBlockIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_85getBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_84getBlockIndices[] = "IS.getBlockIndices(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_85getBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockIndices (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockIndices", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockIndices", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_84getBlockIndices(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_84getBlockIndices(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PetscInt __pyx_v_bs; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_v_oindices = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockIndices", 0); + + /* "petsc4py/PETSc/IS.pyx":278 + * + * def getBlockIndices(self): + * cdef PetscInt size = 0, bs = 1 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) + */ + __pyx_v_size = 0; + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/IS.pyx":279 + * def getBlockIndices(self): + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":280 + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) # <<<<<<<<<<<<<< + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + * CHKERR( ISBlockGetIndices(self.iset, &indices) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":281 + * cdef const PetscInt *indices = NULL + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetBlockSize(self.iset, &bs) ) # <<<<<<<<<<<<<< + * CHKERR( ISBlockGetIndices(self.iset, &indices) ) + * cdef object oindices = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetBlockSize(__pyx_v_self->iset, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":282 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + * CHKERR( ISBlockGetIndices(self.iset, &indices) ) # <<<<<<<<<<<<<< + * cdef object oindices = None + * try: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISBlockGetIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 282, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":283 + * CHKERR( ISGetBlockSize(self.iset, &bs) ) + * CHKERR( ISBlockGetIndices(self.iset, &indices) ) + * cdef object oindices = None # <<<<<<<<<<<<<< + * try: + * oindices = array_i(size//bs, indices) + */ + __Pyx_INCREF(Py_None); + __pyx_v_oindices = Py_None; + + /* "petsc4py/PETSc/IS.pyx":284 + * CHKERR( ISBlockGetIndices(self.iset, &indices) ) + * cdef object oindices = None + * try: # <<<<<<<<<<<<<< + * oindices = array_i(size//bs, indices) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":285 + * cdef object oindices = None + * try: + * oindices = array_i(size//bs, indices) # <<<<<<<<<<<<<< + * finally: + * CHKERR( ISBlockRestoreIndices(self.iset, &indices) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_size / __pyx_v_bs), __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 285, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_oindices, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":287 + * oindices = array_i(size//bs, indices) + * finally: + * CHKERR( ISBlockRestoreIndices(self.iset, &indices) ) # <<<<<<<<<<<<<< + * return oindices + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISBlockRestoreIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 287, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISBlockRestoreIndices(__pyx_v_self->iset, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 287, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":288 + * finally: + * CHKERR( ISBlockRestoreIndices(self.iset, &indices) ) + * return oindices # <<<<<<<<<<<<<< + * + * def setStride(self, size, first=0, step=1): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_oindices); + __pyx_r = __pyx_v_oindices; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":277 + * CHKERR( ISBlockSetIndices(self.iset, bs, nidx, idx, cm) ) + * + * def getBlockIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getBlockIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oindices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":290 + * return oindices + * + * def setStride(self, size, first=0, step=1): # <<<<<<<<<<<<<< + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_87setStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_86setStride[] = "IS.setStride(self, size, first=0, step=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_87setStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_first = 0; + PyObject *__pyx_v_step = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStride (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_first,&__pyx_n_s_step,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)__pyx_int_0); + values[2] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_first); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_step); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStride") < 0)) __PYX_ERR(38, 290, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_first = values[1]; + __pyx_v_step = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStride", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 290, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setStride", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_86setStride(((struct PyPetscISObject *)__pyx_v_self), __pyx_v_size, __pyx_v_first, __pyx_v_step); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_86setStride(struct PyPetscISObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_first, PyObject *__pyx_v_step) { + PetscInt __pyx_v_csize; + PetscInt __pyx_v_cfirst; + PetscInt __pyx_v_cstep; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStride", 0); + + /* "petsc4py/PETSc/IS.pyx":291 + * + * def setStride(self, size, first=0, step=1): + * cdef PetscInt csize = asInt(size) # <<<<<<<<<<<<<< + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_size); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 291, __pyx_L1_error) + __pyx_v_csize = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":292 + * def setStride(self, size, first=0, step=1): + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) # <<<<<<<<<<<<<< + * cdef PetscInt cstep = asInt(step) + * CHKERR( ISStrideSetStride(self.iset, csize, cfirst, cstep) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_first); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 292, __pyx_L1_error) + __pyx_v_cfirst = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":293 + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) # <<<<<<<<<<<<<< + * CHKERR( ISStrideSetStride(self.iset, csize, cfirst, cstep) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_step); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 293, __pyx_L1_error) + __pyx_v_cstep = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":294 + * cdef PetscInt cfirst = asInt(first) + * cdef PetscInt cstep = asInt(step) + * CHKERR( ISStrideSetStride(self.iset, csize, cfirst, cstep) ) # <<<<<<<<<<<<<< + * + * def getStride(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISStrideSetStride(__pyx_v_self->iset, __pyx_v_csize, __pyx_v_cfirst, __pyx_v_cstep)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 294, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":290 + * return oindices + * + * def setStride(self, size, first=0, step=1): # <<<<<<<<<<<<<< + * cdef PetscInt csize = asInt(size) + * cdef PetscInt cfirst = asInt(first) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.IS.setStride", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":296 + * CHKERR( ISStrideSetStride(self.iset, csize, cfirst, cstep) ) + * + * def getStride(self): # <<<<<<<<<<<<<< + * cdef PetscInt size=0, first=0, step=0 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_89getStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_88getStride[] = "IS.getStride(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_89getStride(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStride (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStride", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStride", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_88getStride(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_88getStride(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PetscInt __pyx_v_first; + PetscInt __pyx_v_step; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStride", 0); + + /* "petsc4py/PETSc/IS.pyx":297 + * + * def getStride(self): + * cdef PetscInt size=0, first=0, step=0 # <<<<<<<<<<<<<< + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + */ + __pyx_v_size = 0; + __pyx_v_first = 0; + __pyx_v_step = 0; + + /* "petsc4py/PETSc/IS.pyx":298 + * def getStride(self): + * cdef PetscInt size=0, first=0, step=0 + * CHKERR( ISGetLocalSize(self.iset, &size) ) # <<<<<<<<<<<<<< + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + * return (toInt(size), toInt(first), toInt(step)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGetLocalSize(__pyx_v_self->iset, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 298, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":299 + * cdef PetscInt size=0, first=0, step=0 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) # <<<<<<<<<<<<<< + * return (toInt(size), toInt(first), toInt(step)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISStrideGetInfo(__pyx_v_self->iset, (&__pyx_v_first), (&__pyx_v_step))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 299, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":300 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + * return (toInt(size), toInt(first), toInt(step)) # <<<<<<<<<<<<<< + * + * def getInfo(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_first); if (unlikely(!__pyx_t_3)) __PYX_ERR(38, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_step); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":296 + * CHKERR( ISStrideSetStride(self.iset, csize, cfirst, cstep) ) + * + * def getStride(self): # <<<<<<<<<<<<<< + * cdef PetscInt size=0, first=0, step=0 + * CHKERR( ISGetLocalSize(self.iset, &size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getStride", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":302 + * return (toInt(size), toInt(first), toInt(step)) + * + * def getInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt first = 0, step = 0 + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_91getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2IS_90getInfo[] = "IS.getInfo(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_91getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInfo (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInfo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInfo", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_90getInfo(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_90getInfo(struct PyPetscISObject *__pyx_v_self) { + PetscInt __pyx_v_first; + PetscInt __pyx_v_step; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInfo", 0); + + /* "petsc4py/PETSc/IS.pyx":303 + * + * def getInfo(self): + * cdef PetscInt first = 0, step = 0 # <<<<<<<<<<<<<< + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + * return (toInt(first), toInt(step)) + */ + __pyx_v_first = 0; + __pyx_v_step = 0; + + /* "petsc4py/PETSc/IS.pyx":304 + * def getInfo(self): + * cdef PetscInt first = 0, step = 0 + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) # <<<<<<<<<<<<<< + * return (toInt(first), toInt(step)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISStrideGetInfo(__pyx_v_self->iset, (&__pyx_v_first), (&__pyx_v_step))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 304, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":305 + * cdef PetscInt first = 0, step = 0 + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + * return (toInt(first), toInt(step)) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_first); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(38, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":302 + * return (toInt(size), toInt(first), toInt(step)) + * + * def getInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt first = 0, step = 0 + * CHKERR( ISStrideGetInfo(self.iset, &first, &step) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.IS.getInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":310 + * + * property permutation: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isPermutation() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_11permutation_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_11permutation_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_11permutation___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_11permutation___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":311 + * property permutation: + * def __get__(self): + * return self.isPermutation() # <<<<<<<<<<<<<< + * + * property identity: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isPermutation); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":310 + * + * property permutation: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isPermutation() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.permutation.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":314 + * + * property identity: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isIdentity() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_8identity_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_8identity_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_8identity___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_8identity___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":315 + * property identity: + * def __get__(self): + * return self.isIdentity() # <<<<<<<<<<<<<< + * + * property sorted: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isIdentity); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":314 + * + * property identity: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isIdentity() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.identity.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":318 + * + * property sorted: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isSorted() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_6sorted_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_6sorted_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_6sorted___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_6sorted___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":319 + * property sorted: + * def __get__(self): + * return self.isSorted() # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isSorted); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":318 + * + * property sorted: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isSorted() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.sorted.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":324 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_5sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_5sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_5sizes___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_5sizes___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":325 + * property sizes: + * def __get__(self): + * return self.getSizes() # <<<<<<<<<<<<<< + * + * property size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":324 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":328 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_4size___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_4size___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":329 + * property size: + * def __get__(self): + * return self.getSize() # <<<<<<<<<<<<<< + * + * property local_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":328 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":332 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_10local_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_10local_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_10local_size___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10local_size___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":333 + * property local_size: + * def __get__(self): + * return self.getLocalSize() # <<<<<<<<<<<<<< + * + * property block_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getLocalSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":332 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.local_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":336 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_10block_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_10block_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_10block_size___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_10block_size___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":337 + * property block_size: + * def __get__(self): + * return self.getBlockSize() # <<<<<<<<<<<<<< + * + * property indices: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":336 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.block_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":340 + * + * property indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIndices() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_7indices_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_7indices_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_7indices___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_7indices___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":341 + * property indices: + * def __get__(self): + * return self.getIndices() # <<<<<<<<<<<<<< + * + * property array: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getIndices); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":340 + * + * property indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIndices() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.IS.indices.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":344 + * + * property array: + * def __get__(self): # <<<<<<<<<<<<<< + * return asarray(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_5array_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_5array_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_5array___get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_5array___get__(struct PyPetscISObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":345 + * property array: + * def __get__(self): + * return asarray(self) # <<<<<<<<<<<<<< + * + * # --- NumPy array interface (legacy) --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(((PyObject *)__pyx_v_self))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":344 + * + * property array: + * def __get__(self): # <<<<<<<<<<<<<< + * return asarray(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.array.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":350 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * return buf.__array_interface__ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_19__array_interface___1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2IS_19__array_interface___1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2IS_19__array_interface_____get__(((struct PyPetscISObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2IS_19__array_interface_____get__(struct PyPetscISObject *__pyx_v_self) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":351 + * property __array_interface__: + * def __get__(self): + * cdef _IS_buffer buf = _IS_buffer(self) # <<<<<<<<<<<<<< + * return buf.__array_interface__ + * + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__IS_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":352 + * def __get__(self): + * cdef _IS_buffer buf = _IS_buffer(self) + * return buf.__array_interface__ # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_buf), __pyx_n_s_array_interface); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":350 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef _IS_buffer buf = _IS_buffer(self) + * return buf.__array_interface__ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS.__array_interface__.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":376 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.lgm + * self.lgm = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_5LGMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_5LGMap_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap___cinit__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_5LGMap___cinit__(struct PyPetscLGMapObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/IS.pyx":377 + * + * def __cinit__(self): + * self.obj = &self.lgm # <<<<<<<<<<<<<< + * self.lgm = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->lgm)); + + /* "petsc4py/PETSc/IS.pyx":378 + * def __cinit__(self): + * self.obj = &self.lgm + * self.lgm = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, indices, result=None): + */ + __pyx_v_self->lgm = NULL; + + /* "petsc4py/PETSc/IS.pyx":376 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.lgm + * self.lgm = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":380 + * self.lgm = NULL + * + * def __call__(self, indices, result=None): # <<<<<<<<<<<<<< + * self.apply(indices, result) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_result,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(38, 380, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_result = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 380, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_2__call__(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_result); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_2__call__(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/IS.pyx":381 + * + * def __call__(self, indices, result=None): + * self.apply(indices, result) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_apply); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_indices, __pyx_v_result}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 381, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_indices, __pyx_v_result}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 381, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_indices); + __Pyx_GIVEREF(__pyx_v_indices); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_indices); + __Pyx_INCREF(__pyx_v_result); + __Pyx_GIVEREF(__pyx_v_result); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_result); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":380 + * self.lgm = NULL + * + * def __call__(self, indices, result=None): # <<<<<<<<<<<<<< + * self.apply(indices, result) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":385 + * # + * + * def setType(self, lgmap_type): # <<<<<<<<<<<<<< + * cdef PetscISLocalToGlobalMappingType cval = NULL + * lgmap_type = str2bytes(lgmap_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_5setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_4setType[] = "LGMap.setType(self, lgmap_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_5setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_lgmap_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lgmap_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lgmap_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(38, 385, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_lgmap_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 385, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_4setType(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_lgmap_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4setType(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_lgmap_type) { + ISLocalToGlobalMappingType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_lgmap_type); + + /* "petsc4py/PETSc/IS.pyx":386 + * + * def setType(self, lgmap_type): + * cdef PetscISLocalToGlobalMappingType cval = NULL # <<<<<<<<<<<<<< + * lgmap_type = str2bytes(lgmap_type, &cval) + * CHKERR( ISLocalToGlobalMappingSetType(self.lgm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/IS.pyx":387 + * def setType(self, lgmap_type): + * cdef PetscISLocalToGlobalMappingType cval = NULL + * lgmap_type = str2bytes(lgmap_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingSetType(self.lgm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_lgmap_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_lgmap_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":388 + * cdef PetscISLocalToGlobalMappingType cval = NULL + * lgmap_type = str2bytes(lgmap_type, &cval) + * CHKERR( ISLocalToGlobalMappingSetType(self.lgm, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingSetType(__pyx_v_self->lgm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 388, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":385 + * # + * + * def setType(self, lgmap_type): # <<<<<<<<<<<<<< + * cdef PetscISLocalToGlobalMappingType cval = NULL + * lgmap_type = str2bytes(lgmap_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_lgmap_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":390 + * CHKERR( ISLocalToGlobalMappingSetType(self.lgm, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingSetFromOptions(self.lgm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_7setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_6setFromOptions[] = "LGMap.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_7setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_6setFromOptions(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_6setFromOptions(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/IS.pyx":391 + * + * def setFromOptions(self): + * CHKERR( ISLocalToGlobalMappingSetFromOptions(self.lgm) ) # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingSetFromOptions(__pyx_v_self->lgm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 391, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":390 + * CHKERR( ISLocalToGlobalMappingSetType(self.lgm, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingSetFromOptions(self.lgm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":393 + * CHKERR( ISLocalToGlobalMappingSetFromOptions(self.lgm) ) + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_9view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_8view[] = "LGMap.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_9view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(38, 393, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 393, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(38, 393, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_8view(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_8view(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_cviewer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/IS.pyx":394 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL # <<<<<<<<<<<<<< + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( ISLocalToGlobalMappingView(self.lgm, cviewer) ) + */ + __pyx_v_cviewer = NULL; + + /* "petsc4py/PETSc/IS.pyx":395 + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingView(self.lgm, cviewer) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_cviewer = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":396 + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( ISLocalToGlobalMappingView(self.lgm, cviewer) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingView(__pyx_v_self->lgm, __pyx_v_cviewer)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 396, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":393 + * CHKERR( ISLocalToGlobalMappingSetFromOptions(self.lgm) ) + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":398 + * CHKERR( ISLocalToGlobalMappingView(self.lgm, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingDestroy(&self.lgm) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_11destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_10destroy[] = "LGMap.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_11destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_10destroy(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10destroy(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/IS.pyx":399 + * + * def destroy(self): + * CHKERR( ISLocalToGlobalMappingDestroy(&self.lgm) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingDestroy((&__pyx_v_self->lgm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 399, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":400 + * def destroy(self): + * CHKERR( ISLocalToGlobalMappingDestroy(&self.lgm) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, indices, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":398 + * CHKERR( ISLocalToGlobalMappingView(self.lgm, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingDestroy(&self.lgm) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":402 + * return self + * + * def create(self, indices, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_12create[] = "LGMap.create(self, indices, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_13create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(38, 402, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 402, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_12create(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_12create(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PetscCopyMode __pyx_v_cm; + ISLocalToGlobalMapping __pyx_v_newlgm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":403 + * + * def create(self, indices, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 403, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":404 + * def create(self, indices, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscLGMap newlgm = NULL + */ + __pyx_v_bs = 1; + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":405 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES # <<<<<<<<<<<<<< + * cdef PetscLGMap newlgm = NULL + * if bsize is not None: bs = asInt(bsize) + */ + __pyx_v_cm = PETSC_COPY_VALUES; + + /* "petsc4py/PETSc/IS.pyx":406 + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscLGMap newlgm = NULL # <<<<<<<<<<<<<< + * if bsize is not None: bs = asInt(bsize) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_v_newlgm = NULL; + + /* "petsc4py/PETSc/IS.pyx":407 + * cdef PetscCopyMode cm = PETSC_COPY_VALUES + * cdef PetscLGMap newlgm = NULL + * if bsize is not None: bs = asInt(bsize) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * indices = iarray_i(indices, &nidx, &idx) + */ + __pyx_t_2 = (__pyx_v_bsize != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 407, __pyx_L1_error) + __pyx_v_bs = __pyx_t_4; + } + + /* "petsc4py/PETSc/IS.pyx":408 + * cdef PetscLGMap newlgm = NULL + * if bsize is not None: bs = asInt(bsize) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISLocalToGlobalMappingCreate( + */ + __pyx_t_3 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/IS.pyx":409 + * if bsize is not None: bs = asInt(bsize) + * if bs == PETSC_DECIDE: bs = 1 + * indices = iarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingCreate( + * ccomm, bs, nidx, idx, cm, &newlgm) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":410 + * if bs == PETSC_DECIDE: bs = 1 + * indices = iarray_i(indices, &nidx, &idx) + * CHKERR( ISLocalToGlobalMappingCreate( # <<<<<<<<<<<<<< + * ccomm, bs, nidx, idx, cm, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingCreate(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_nidx, __pyx_v_idx, __pyx_v_cm, (&__pyx_v_newlgm))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 410, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":412 + * CHKERR( ISLocalToGlobalMappingCreate( + * ccomm, bs, nidx, idx, cm, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->lgm = __pyx_v_newlgm; + + /* "petsc4py/PETSc/IS.pyx":413 + * ccomm, bs, nidx, idx, cm, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + * return self # <<<<<<<<<<<<<< + * + * def createIS(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":402 + * return self + * + * def create(self, indices, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 1, nidx = 0, *idx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":415 + * return self + * + * def createIS(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscLGMap newlgm = NULL + * CHKERR( ISLocalToGlobalMappingCreateIS( + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_15createIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_14createIS[] = "LGMap.createIS(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_15createIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createIS") < 0)) __PYX_ERR(38, 415, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 415, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.createIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 415, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_14createIS(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_14createIS(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + ISLocalToGlobalMapping __pyx_v_newlgm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createIS", 0); + + /* "petsc4py/PETSc/IS.pyx":416 + * + * def createIS(self, IS iset): + * cdef PetscLGMap newlgm = NULL # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingCreateIS( + * iset.iset, &newlgm) ) + */ + __pyx_v_newlgm = NULL; + + /* "petsc4py/PETSc/IS.pyx":417 + * def createIS(self, IS iset): + * cdef PetscLGMap newlgm = NULL + * CHKERR( ISLocalToGlobalMappingCreateIS( # <<<<<<<<<<<<<< + * iset.iset, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingCreateIS(__pyx_v_iset->iset, (&__pyx_v_newlgm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 417, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":419 + * CHKERR( ISLocalToGlobalMappingCreateIS( + * iset.iset, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->lgm = __pyx_v_newlgm; + + /* "petsc4py/PETSc/IS.pyx":420 + * iset.iset, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + * return self # <<<<<<<<<<<<<< + * + * def createSF(self, SF sf, start): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":415 + * return self + * + * def createIS(self, IS iset): # <<<<<<<<<<<<<< + * cdef PetscLGMap newlgm = NULL + * CHKERR( ISLocalToGlobalMappingCreateIS( + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.createIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":422 + * return self + * + * def createSF(self, SF sf, start): # <<<<<<<<<<<<<< + * cdef PetscLGMap newlgm = NULL + * cdef PetscInt cstart = asInt(start) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_17createSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_16createSF[] = "LGMap.createSF(self, SF sf, start)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_17createSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_v_start = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,&__pyx_n_s_start,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSF", 1, 2, 2, 1); __PYX_ERR(38, 422, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSF") < 0)) __PYX_ERR(38, 422, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + __pyx_v_start = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSF", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 422, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.createSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(38, 422, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_16createSF(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_sf, __pyx_v_start); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_16createSF(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf, PyObject *__pyx_v_start) { + ISLocalToGlobalMapping __pyx_v_newlgm; + PetscInt __pyx_v_cstart; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSF", 0); + + /* "petsc4py/PETSc/IS.pyx":423 + * + * def createSF(self, SF sf, start): + * cdef PetscLGMap newlgm = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cstart = asInt(start) + * CHKERR( ISLocalToGlobalMappingCreateSF(sf.sf, cstart, &newlgm) ) + */ + __pyx_v_newlgm = NULL; + + /* "petsc4py/PETSc/IS.pyx":424 + * def createSF(self, SF sf, start): + * cdef PetscLGMap newlgm = NULL + * cdef PetscInt cstart = asInt(start) # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingCreateSF(sf.sf, cstart, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_start); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(38, 424, __pyx_L1_error) + __pyx_v_cstart = __pyx_t_1; + + /* "petsc4py/PETSc/IS.pyx":425 + * cdef PetscLGMap newlgm = NULL + * cdef PetscInt cstart = asInt(start) + * CHKERR( ISLocalToGlobalMappingCreateSF(sf.sf, cstart, &newlgm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.lgm = newlgm + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingCreateSF(__pyx_v_sf->sf, __pyx_v_cstart, (&__pyx_v_newlgm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 425, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":426 + * cdef PetscInt cstart = asInt(start) + * CHKERR( ISLocalToGlobalMappingCreateSF(sf.sf, cstart, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->lgm = __pyx_v_newlgm; + + /* "petsc4py/PETSc/IS.pyx":427 + * CHKERR( ISLocalToGlobalMappingCreateSF(sf.sf, cstart, &newlgm) ) + * PetscCLEAR(self.obj); self.lgm = newlgm + * return self # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":422 + * return self + * + * def createSF(self, SF sf, start): # <<<<<<<<<<<<<< + * cdef PetscLGMap newlgm = NULL + * cdef PetscInt cstart = asInt(start) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.createSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":429 + * return self + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( ISLocalToGlobalMappingGetSize(self.lgm, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_19getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_18getSize[] = "LGMap.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_19getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_18getSize(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_18getSize(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/IS.pyx":430 + * + * def getSize(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetSize(self.lgm, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/IS.pyx":431 + * def getSize(self): + * cdef PetscInt n = 0 + * CHKERR( ISLocalToGlobalMappingGetSize(self.lgm, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetSize(__pyx_v_self->lgm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 431, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":432 + * cdef PetscInt n = 0 + * CHKERR( ISLocalToGlobalMappingGetSize(self.lgm, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def getBlockSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":429 + * return self + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( ISLocalToGlobalMappingGetSize(self.lgm, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":434 + * return toInt(n) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( ISLocalToGlobalMappingGetBlockSize(self.lgm, &bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_21getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_20getBlockSize[] = "LGMap.getBlockSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_21getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_20getBlockSize(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_20getBlockSize(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSize", 0); + + /* "petsc4py/PETSc/IS.pyx":435 + * + * def getBlockSize(self): + * cdef PetscInt bs = 1 # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetBlockSize(self.lgm, &bs) ) + * return toInt(bs) + */ + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/IS.pyx":436 + * def getBlockSize(self): + * cdef PetscInt bs = 1 + * CHKERR( ISLocalToGlobalMappingGetBlockSize(self.lgm, &bs) ) # <<<<<<<<<<<<<< + * return toInt(bs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetBlockSize(__pyx_v_self->lgm, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 436, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":437 + * cdef PetscInt bs = 1 + * CHKERR( ISLocalToGlobalMappingGetBlockSize(self.lgm, &bs) ) + * return toInt(bs) # <<<<<<<<<<<<<< + * + * def getIndices(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":434 + * return toInt(n) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( ISLocalToGlobalMappingGetBlockSize(self.lgm, &bs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":439 + * return toInt(bs) + * + * def getIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_23getIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_22getIndices[] = "LGMap.getIndices(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_23getIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIndices (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIndices", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIndices", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_22getIndices(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_22getIndices(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_v_oindices = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIndices", 0); + + /* "petsc4py/PETSc/IS.pyx":440 + * + * def getIndices(self): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( ISLocalToGlobalMappingGetSize( + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/IS.pyx":441 + * def getIndices(self): + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetSize( + * self.lgm, &size) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":442 + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + * CHKERR( ISLocalToGlobalMappingGetSize( # <<<<<<<<<<<<<< + * self.lgm, &size) ) + * CHKERR( ISLocalToGlobalMappingGetIndices( + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetSize(__pyx_v_self->lgm, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 442, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":444 + * CHKERR( ISLocalToGlobalMappingGetSize( + * self.lgm, &size) ) + * CHKERR( ISLocalToGlobalMappingGetIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * cdef object oindices = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 444, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":446 + * CHKERR( ISLocalToGlobalMappingGetIndices( + * self.lgm, &indices) ) + * cdef object oindices = None # <<<<<<<<<<<<<< + * try: + * oindices = array_i(size, indices) + */ + __Pyx_INCREF(Py_None); + __pyx_v_oindices = Py_None; + + /* "petsc4py/PETSc/IS.pyx":447 + * self.lgm, &indices) ) + * cdef object oindices = None + * try: # <<<<<<<<<<<<<< + * oindices = array_i(size, indices) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":448 + * cdef object oindices = None + * try: + * oindices = array_i(size, indices) # <<<<<<<<<<<<<< + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreIndices( + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_size, __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 448, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_oindices, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":450 + * oindices = array_i(size, indices) + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * return oindices + */ + /*finally:*/ { + /*normal exit:*/{ + + /* "petsc4py/PETSc/IS.pyx":451 + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreIndices( + * self.lgm, &indices) ) # <<<<<<<<<<<<<< + * return oindices + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingRestoreIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 450, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + + /* "petsc4py/PETSc/IS.pyx":450 + * oindices = array_i(size, indices) + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * return oindices + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingRestoreIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 450, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":452 + * CHKERR( ISLocalToGlobalMappingRestoreIndices( + * self.lgm, &indices) ) + * return oindices # <<<<<<<<<<<<<< + * + * def getBlockIndices(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_oindices); + __pyx_r = __pyx_v_oindices; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":439 + * return toInt(bs) + * + * def getIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const PetscInt *indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oindices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":454 + * return oindices + * + * def getBlockIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_25getBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_24getBlockIndices[] = "LGMap.getBlockIndices(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_25getBlockIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockIndices (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockIndices", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockIndices", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_24getBlockIndices(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_24getBlockIndices(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PetscInt __pyx_v_bs; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_v_oindices = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockIndices", 0); + + /* "petsc4py/PETSc/IS.pyx":455 + * + * def getBlockIndices(self): + * cdef PetscInt size = 0, bs = 1 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( ISLocalToGlobalMappingGetSize( + */ + __pyx_v_size = 0; + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/IS.pyx":456 + * def getBlockIndices(self): + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetSize( + * self.lgm, &size) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":457 + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + * CHKERR( ISLocalToGlobalMappingGetSize( # <<<<<<<<<<<<<< + * self.lgm, &size) ) + * CHKERR( ISLocalToGlobalMappingGetBlockSize( + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetSize(__pyx_v_self->lgm, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 457, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":459 + * CHKERR( ISLocalToGlobalMappingGetSize( + * self.lgm, &size) ) + * CHKERR( ISLocalToGlobalMappingGetBlockSize( # <<<<<<<<<<<<<< + * self.lgm, &bs) ) + * CHKERR( ISLocalToGlobalMappingGetBlockIndices( + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetBlockSize(__pyx_v_self->lgm, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 459, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":461 + * CHKERR( ISLocalToGlobalMappingGetBlockSize( + * self.lgm, &bs) ) + * CHKERR( ISLocalToGlobalMappingGetBlockIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * cdef object oindices = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetBlockIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 461, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":463 + * CHKERR( ISLocalToGlobalMappingGetBlockIndices( + * self.lgm, &indices) ) + * cdef object oindices = None # <<<<<<<<<<<<<< + * try: + * oindices = array_i(size//bs, indices) + */ + __Pyx_INCREF(Py_None); + __pyx_v_oindices = Py_None; + + /* "petsc4py/PETSc/IS.pyx":464 + * self.lgm, &indices) ) + * cdef object oindices = None + * try: # <<<<<<<<<<<<<< + * oindices = array_i(size//bs, indices) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":465 + * cdef object oindices = None + * try: + * oindices = array_i(size//bs, indices) # <<<<<<<<<<<<<< + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreBlockIndices( + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_size / __pyx_v_bs), __pyx_v_indices)); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 465, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_oindices, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":467 + * oindices = array_i(size//bs, indices) + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreBlockIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * return oindices + */ + /*finally:*/ { + /*normal exit:*/{ + + /* "petsc4py/PETSc/IS.pyx":468 + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreBlockIndices( + * self.lgm, &indices) ) # <<<<<<<<<<<<<< + * return oindices + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingRestoreBlockIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 467, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + + /* "petsc4py/PETSc/IS.pyx":467 + * oindices = array_i(size//bs, indices) + * finally: + * CHKERR( ISLocalToGlobalMappingRestoreBlockIndices( # <<<<<<<<<<<<<< + * self.lgm, &indices) ) + * return oindices + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingRestoreBlockIndices(__pyx_v_self->lgm, (&__pyx_v_indices))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 467, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":469 + * CHKERR( ISLocalToGlobalMappingRestoreBlockIndices( + * self.lgm, &indices) ) + * return oindices # <<<<<<<<<<<<<< + * + * def getInfo(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_oindices); + __pyx_r = __pyx_v_oindices; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":454 + * return oindices + * + * def getBlockIndices(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0, bs = 1 + * cdef const PetscInt *indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getBlockIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_oindices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":471 + * return oindices + * + * def getInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_27getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_26getInfo[] = "LGMap.getInfo(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_27getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInfo (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInfo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInfo", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_26getInfo(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_26getInfo(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_nproc; + PetscInt *__pyx_v_procs; + PetscInt *__pyx_v_numprocs; + PetscInt **__pyx_v_indices; + PyObject *__pyx_v_neighs = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInfo", 0); + + /* "petsc4py/PETSc/IS.pyx":472 + * + * def getInfo(self): + * cdef PetscInt i, nproc = 0, *procs = NULL, # <<<<<<<<<<<<<< + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } + */ + __pyx_v_nproc = 0; + __pyx_v_procs = NULL; + + /* "petsc4py/PETSc/IS.pyx":473 + * def getInfo(self): + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL # <<<<<<<<<<<<<< + * cdef object neighs = { } + * CHKERR( ISLocalToGlobalMappingGetInfo( + */ + __pyx_v_numprocs = NULL; + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":474 + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_neighs = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":475 + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } + * CHKERR( ISLocalToGlobalMappingGetInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 475, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":477 + * CHKERR( ISLocalToGlobalMappingGetInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: # <<<<<<<<<<<<<< + * for i from 0 <= i < nproc: + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":478 + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: + * for i from 0 <= i < nproc: # <<<<<<<<<<<<<< + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + */ + __pyx_t_3 = __pyx_v_nproc; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/IS.pyx":479 + * try: + * for i from 0 <= i < nproc: + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) # <<<<<<<<<<<<<< + * finally: + * ISLocalToGlobalMappingRestoreInfo( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_numprocs[__pyx_v_i]), (__pyx_v_indices[__pyx_v_i]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 479, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_procs[__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 479, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(PyObject_SetItem(__pyx_v_neighs, __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(38, 479, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + } + + /* "petsc4py/PETSc/IS.pyx":481 + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + * ISLocalToGlobalMappingRestoreInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs + */ + /*finally:*/ { + /*normal exit:*/{ + + /* "petsc4py/PETSc/IS.pyx":482 + * finally: + * ISLocalToGlobalMappingRestoreInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) # <<<<<<<<<<<<<< + * return neighs + * + */ + (void)(ISLocalToGlobalMappingRestoreInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + + /* "petsc4py/PETSc/IS.pyx":481 + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + * ISLocalToGlobalMappingRestoreInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs + */ + (void)(ISLocalToGlobalMappingRestoreInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":483 + * ISLocalToGlobalMappingRestoreInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs # <<<<<<<<<<<<<< + * + * def getBlockInfo(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_neighs); + __pyx_r = __pyx_v_neighs; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":471 + * return oindices + * + * def getInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_neighs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":485 + * return neighs + * + * def getBlockInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_29getBlockInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_28getBlockInfo[] = "LGMap.getBlockInfo(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_29getBlockInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockInfo (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockInfo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockInfo", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_28getBlockInfo(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_28getBlockInfo(struct PyPetscLGMapObject *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_nproc; + PetscInt *__pyx_v_procs; + PetscInt *__pyx_v_numprocs; + PetscInt **__pyx_v_indices; + PyObject *__pyx_v_neighs = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockInfo", 0); + + /* "petsc4py/PETSc/IS.pyx":486 + * + * def getBlockInfo(self): + * cdef PetscInt i, nproc = 0, *procs = NULL, # <<<<<<<<<<<<<< + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } + */ + __pyx_v_nproc = 0; + __pyx_v_procs = NULL; + + /* "petsc4py/PETSc/IS.pyx":487 + * def getBlockInfo(self): + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL # <<<<<<<<<<<<<< + * cdef object neighs = { } + * CHKERR( ISLocalToGlobalMappingGetBlockInfo( + */ + __pyx_v_numprocs = NULL; + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/IS.pyx":488 + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingGetBlockInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + */ + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_neighs = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":489 + * cdef PetscInt *numprocs = NULL, **indices = NULL + * cdef object neighs = { } + * CHKERR( ISLocalToGlobalMappingGetBlockInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingGetBlockInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 489, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":491 + * CHKERR( ISLocalToGlobalMappingGetBlockInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: # <<<<<<<<<<<<<< + * for i from 0 <= i < nproc: + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + */ + /*try:*/ { + + /* "petsc4py/PETSc/IS.pyx":492 + * self.lgm, &nproc, &procs, &numprocs, &indices) ) + * try: + * for i from 0 <= i < nproc: # <<<<<<<<<<<<<< + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + */ + __pyx_t_3 = __pyx_v_nproc; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/IS.pyx":493 + * try: + * for i from 0 <= i < nproc: + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) # <<<<<<<<<<<<<< + * finally: + * ISLocalToGlobalMappingRestoreBlockInfo( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_numprocs[__pyx_v_i]), (__pyx_v_indices[__pyx_v_i]))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 493, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_procs[__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 493, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(PyObject_SetItem(__pyx_v_neighs, __pyx_t_4, __pyx_t_1) < 0)) __PYX_ERR(38, 493, __pyx_L4_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } + } + + /* "petsc4py/PETSc/IS.pyx":495 + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + * ISLocalToGlobalMappingRestoreBlockInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs + */ + /*finally:*/ { + /*normal exit:*/{ + + /* "petsc4py/PETSc/IS.pyx":496 + * finally: + * ISLocalToGlobalMappingRestoreBlockInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) # <<<<<<<<<<<<<< + * return neighs + * + */ + (void)(ISLocalToGlobalMappingRestoreBlockInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + + /* "petsc4py/PETSc/IS.pyx":495 + * neighs[toInt(procs[i])] = array_i(numprocs[i], indices[i]) + * finally: + * ISLocalToGlobalMappingRestoreBlockInfo( # <<<<<<<<<<<<<< + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs + */ + (void)(ISLocalToGlobalMappingRestoreBlockInfo(__pyx_v_self->lgm, (&__pyx_v_nproc), (&__pyx_v_procs), (&__pyx_v_numprocs), (&__pyx_v_indices))); + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/IS.pyx":497 + * ISLocalToGlobalMappingRestoreBlockInfo( + * self.lgm, &nproc, &procs, &numprocs, &indices) + * return neighs # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_neighs); + __pyx_r = __pyx_v_neighs; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":485 + * return neighs + * + * def getBlockInfo(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nproc = 0, *procs = NULL, + * cdef PetscInt *numprocs = NULL, **indices = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.getBlockInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_neighs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":501 + * # + * + * def apply(self, indices, result=None): # <<<<<<<<<<<<<< + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_31apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_30apply[] = "LGMap.apply(self, indices, result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_31apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("apply (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_result,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply") < 0)) __PYX_ERR(38, 501, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_result = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("apply", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 501, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_30apply(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_result); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_30apply(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result) { + PetscInt __pyx_v_niidx; + PetscInt *__pyx_v_iidx; + PetscInt __pyx_v_noidx; + PetscInt *__pyx_v_oidx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("apply", 0); + __Pyx_INCREF(__pyx_v_indices); + __Pyx_INCREF(__pyx_v_result); + + /* "petsc4py/PETSc/IS.pyx":502 + * + * def apply(self, indices, result=None): + * cdef PetscInt niidx = 0, *iidx = NULL # <<<<<<<<<<<<<< + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) + */ + __pyx_v_niidx = 0; + __pyx_v_iidx = NULL; + + /* "petsc4py/PETSc/IS.pyx":503 + * def apply(self, indices, result=None): + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) + */ + __pyx_v_noidx = 0; + __pyx_v_oidx = NULL; + + /* "petsc4py/PETSc/IS.pyx":504 + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) # <<<<<<<<<<<<<< + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_niidx), (&__pyx_v_iidx))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":505 + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) # <<<<<<<<<<<<<< + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" + */ + __pyx_t_2 = (__pyx_v_result == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i(__pyx_v_niidx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":506 + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) # <<<<<<<<<<<<<< + * assert niidx == noidx, "incompatible array sizes" + * CHKERR( ISLocalToGlobalMappingApply( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_v_result, (&__pyx_v_noidx), (&__pyx_v_oidx))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":507 + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingApply( + * self.lgm, niidx, iidx, oidx) ) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_niidx == __pyx_v_noidx) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_incompatible_array_sizes); + __PYX_ERR(38, 507, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/IS.pyx":508 + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" + * CHKERR( ISLocalToGlobalMappingApply( # <<<<<<<<<<<<<< + * self.lgm, niidx, iidx, oidx) ) + * return result + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingApply(__pyx_v_self->lgm, __pyx_v_niidx, __pyx_v_iidx, __pyx_v_oidx)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 508, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":510 + * CHKERR( ISLocalToGlobalMappingApply( + * self.lgm, niidx, iidx, oidx) ) + * return result # <<<<<<<<<<<<<< + * + * def applyBlock(self, indices, result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":501 + * # + * + * def apply(self, indices, result=None): # <<<<<<<<<<<<<< + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":512 + * return result + * + * def applyBlock(self, indices, result=None): # <<<<<<<<<<<<<< + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_33applyBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_32applyBlock[] = "LGMap.applyBlock(self, indices, result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_33applyBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applyBlock (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_result,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applyBlock") < 0)) __PYX_ERR(38, 512, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_result = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applyBlock", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 512, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyBlock", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_32applyBlock(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_result); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_32applyBlock(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_result) { + PetscInt __pyx_v_niidx; + PetscInt *__pyx_v_iidx; + PetscInt __pyx_v_noidx; + PetscInt *__pyx_v_oidx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applyBlock", 0); + __Pyx_INCREF(__pyx_v_indices); + __Pyx_INCREF(__pyx_v_result); + + /* "petsc4py/PETSc/IS.pyx":513 + * + * def applyBlock(self, indices, result=None): + * cdef PetscInt niidx = 0, *iidx = NULL # <<<<<<<<<<<<<< + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) + */ + __pyx_v_niidx = 0; + __pyx_v_iidx = NULL; + + /* "petsc4py/PETSc/IS.pyx":514 + * def applyBlock(self, indices, result=None): + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) + */ + __pyx_v_noidx = 0; + __pyx_v_oidx = NULL; + + /* "petsc4py/PETSc/IS.pyx":515 + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) # <<<<<<<<<<<<<< + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_niidx), (&__pyx_v_iidx))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":516 + * cdef PetscInt noidx = 0, *oidx = NULL + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) # <<<<<<<<<<<<<< + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" + */ + __pyx_t_2 = (__pyx_v_result == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i(__pyx_v_niidx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/IS.pyx":517 + * indices = iarray_i(indices, &niidx, &iidx) + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) # <<<<<<<<<<<<<< + * assert niidx == noidx, "incompatible array sizes" + * CHKERR( ISLocalToGlobalMappingApplyBlock( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_v_result, (&__pyx_v_noidx), (&__pyx_v_oidx))); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":518 + * if result is None: result = empty_i(niidx) + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingApplyBlock( + * self.lgm, niidx, iidx, oidx) ) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_niidx == __pyx_v_noidx) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_incompatible_array_sizes); + __PYX_ERR(38, 518, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/IS.pyx":519 + * result = oarray_i(result, &noidx, &oidx) + * assert niidx == noidx, "incompatible array sizes" + * CHKERR( ISLocalToGlobalMappingApplyBlock( # <<<<<<<<<<<<<< + * self.lgm, niidx, iidx, oidx) ) + * return result + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingApplyBlock(__pyx_v_self->lgm, __pyx_v_niidx, __pyx_v_iidx, __pyx_v_oidx)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 519, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":521 + * CHKERR( ISLocalToGlobalMappingApplyBlock( + * self.lgm, niidx, iidx, oidx) ) + * return result # <<<<<<<<<<<<<< + * + * def applyIS(self, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":512 + * return result + * + * def applyBlock(self, indices, result=None): # <<<<<<<<<<<<<< + * cdef PetscInt niidx = 0, *iidx = NULL + * cdef PetscInt noidx = 0, *oidx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyBlock", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":523 + * return result + * + * def applyIS(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS result = IS() + * CHKERR( ISLocalToGlobalMappingApplyIS( + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_35applyIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_34applyIS[] = "LGMap.applyIS(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_35applyIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applyIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applyIS") < 0)) __PYX_ERR(38, 523, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applyIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 523, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(38, 523, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_34applyIS(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_34applyIS(struct PyPetscLGMapObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + struct PyPetscISObject *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applyIS", 0); + + /* "petsc4py/PETSc/IS.pyx":524 + * + * def applyIS(self, IS iset): + * cdef IS result = IS() # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingApplyIS( + * self.lgm, iset.iset, &result.iset) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_result = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/IS.pyx":525 + * def applyIS(self, IS iset): + * cdef IS result = IS() + * CHKERR( ISLocalToGlobalMappingApplyIS( # <<<<<<<<<<<<<< + * self.lgm, iset.iset, &result.iset) ) + * return result + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingApplyIS(__pyx_v_self->lgm, __pyx_v_iset->iset, (&__pyx_v_result->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 525, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":527 + * CHKERR( ISLocalToGlobalMappingApplyIS( + * self.lgm, iset.iset, &result.iset) ) + * return result # <<<<<<<<<<<<<< + * + * def applyInverse(self, indices, mode=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":523 + * return result + * + * def applyIS(self, IS iset): # <<<<<<<<<<<<<< + * cdef IS result = IS() + * CHKERR( ISLocalToGlobalMappingApplyIS( + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":529 + * return result + * + * def applyInverse(self, indices, mode=None): # <<<<<<<<<<<<<< + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_37applyInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_36applyInverse[] = "LGMap.applyInverse(self, indices, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_37applyInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applyInverse (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applyInverse") < 0)) __PYX_ERR(38, 529, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applyInverse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 529, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyInverse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_36applyInverse(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_36applyInverse(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_mode) { + ISGlobalToLocalMappingMode __pyx_v_cmode; + PetscInt __pyx_v_n; + PetscInt *__pyx_v_idx; + PetscInt __pyx_v_nout; + PetscInt *__pyx_v_idxout; + PyArrayObject *__pyx_v_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + ISGlobalToLocalMappingMode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applyInverse", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":530 + * + * def applyInverse(self, indices, mode=None): + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK # <<<<<<<<<<<<<< + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL + */ + __pyx_v_cmode = IS_GTOLM_MASK; + + /* "petsc4py/PETSc/IS.pyx":531 + * def applyInverse(self, indices, mode=None): + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) + */ + __pyx_t_1 = (__pyx_v_mode != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((ISGlobalToLocalMappingMode)__Pyx_PyInt_As_ISGlobalToLocalMappingMode(__pyx_v_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 531, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":532 + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + */ + __pyx_v_n = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":533 + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) # <<<<<<<<<<<<<< + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_n), (&__pyx_v_idx))); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/IS.pyx":534 + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL # <<<<<<<<<<<<<< + * if cmode != PETSC_IS_GTOLM_MASK: + * CHKERR( ISGlobalToLocalMappingApply( + */ + __pyx_v_nout = __pyx_v_n; + __pyx_v_idxout = NULL; + + /* "petsc4py/PETSc/IS.pyx":535 + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + */ + __pyx_t_2 = ((__pyx_v_cmode != IS_GTOLM_MASK) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/IS.pyx":536 + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: + * CHKERR( ISGlobalToLocalMappingApply( # <<<<<<<<<<<<<< + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGlobalToLocalMappingApply(__pyx_v_self->lgm, __pyx_v_cmode, __pyx_v_n, __pyx_v_idx, (&__pyx_v_nout), NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 536, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":535 + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + */ + } + + /* "petsc4py/PETSc/IS.pyx":538 + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, idxout) ) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i(__pyx_v_nout)); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_t_4, (&__pyx_v_nout), (&__pyx_v_idxout))); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_result = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/IS.pyx":539 + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) + * CHKERR( ISGlobalToLocalMappingApply( # <<<<<<<<<<<<<< + * self.lgm, cmode, n, idx, &nout, idxout) ) + * return result + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGlobalToLocalMappingApply(__pyx_v_self->lgm, __pyx_v_cmode, __pyx_v_n, __pyx_v_idx, (&__pyx_v_nout), __pyx_v_idxout)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 539, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":541 + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, idxout) ) + * return result # <<<<<<<<<<<<<< + * + * def applyBlockInverse(self, indices, mode=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":529 + * return result + * + * def applyInverse(self, indices, mode=None): # <<<<<<<<<<<<<< + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyInverse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":543 + * return result + * + * def applyBlockInverse(self, indices, mode=None): # <<<<<<<<<<<<<< + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_39applyBlockInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5LGMap_38applyBlockInverse[] = "LGMap.applyBlockInverse(self, indices, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_39applyBlockInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applyBlockInverse (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applyBlockInverse") < 0)) __PYX_ERR(38, 543, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applyBlockInverse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(38, 543, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyBlockInverse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_38applyBlockInverse(((struct PyPetscLGMapObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_38applyBlockInverse(struct PyPetscLGMapObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_mode) { + ISGlobalToLocalMappingMode __pyx_v_cmode; + PetscInt __pyx_v_n; + PetscInt *__pyx_v_idx; + PetscInt __pyx_v_nout; + PetscInt *__pyx_v_idxout; + PyArrayObject *__pyx_v_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + ISGlobalToLocalMappingMode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applyBlockInverse", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/IS.pyx":544 + * + * def applyBlockInverse(self, indices, mode=None): + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK # <<<<<<<<<<<<<< + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL + */ + __pyx_v_cmode = IS_GTOLM_MASK; + + /* "petsc4py/PETSc/IS.pyx":545 + * def applyBlockInverse(self, indices, mode=None): + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) + */ + __pyx_t_1 = (__pyx_v_mode != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((ISGlobalToLocalMappingMode)__Pyx_PyInt_As_ISGlobalToLocalMappingMode(__pyx_v_mode)); if (unlikely(PyErr_Occurred())) __PYX_ERR(38, 545, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_3; + } + + /* "petsc4py/PETSc/IS.pyx":546 + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + */ + __pyx_v_n = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/IS.pyx":547 + * if mode is not None: cmode = mode + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) # <<<<<<<<<<<<<< + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_n), (&__pyx_v_idx))); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/IS.pyx":548 + * cdef PetscInt n = 0, *idx = NULL + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL # <<<<<<<<<<<<<< + * if cmode != PETSC_IS_GTOLM_MASK: + * CHKERR( ISGlobalToLocalMappingApply( + */ + __pyx_v_nout = __pyx_v_n; + __pyx_v_idxout = NULL; + + /* "petsc4py/PETSc/IS.pyx":549 + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + */ + __pyx_t_2 = ((__pyx_v_cmode != IS_GTOLM_MASK) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/IS.pyx":550 + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: + * CHKERR( ISGlobalToLocalMappingApply( # <<<<<<<<<<<<<< + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGlobalToLocalMappingApply(__pyx_v_self->lgm, __pyx_v_cmode, __pyx_v_n, __pyx_v_idx, (&__pyx_v_nout), NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 550, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":549 + * indices = iarray_i(indices, &n, &idx) + * cdef PetscInt nout = n, *idxout = NULL + * if cmode != PETSC_IS_GTOLM_MASK: # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + */ + } + + /* "petsc4py/PETSc/IS.pyx":552 + * CHKERR( ISGlobalToLocalMappingApply( + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) # <<<<<<<<<<<<<< + * CHKERR( ISGlobalToLocalMappingApplyBlock( + * self.lgm, cmode, n, idx, &nout, idxout) ) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i(__pyx_v_nout)); if (unlikely(!__pyx_t_4)) __PYX_ERR(38, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_t_4, (&__pyx_v_nout), (&__pyx_v_idxout))); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_result = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/IS.pyx":553 + * self.lgm, cmode, n, idx, &nout, NULL) ) + * result = oarray_i(empty_i(nout), &nout, &idxout) + * CHKERR( ISGlobalToLocalMappingApplyBlock( # <<<<<<<<<<<<<< + * self.lgm, cmode, n, idx, &nout, idxout) ) + * return result + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISGlobalToLocalMappingApplyBlock(__pyx_v_self->lgm, __pyx_v_cmode, __pyx_v_n, __pyx_v_idx, (&__pyx_v_nout), __pyx_v_idxout)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(38, 553, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":555 + * CHKERR( ISGlobalToLocalMappingApplyBlock( + * self.lgm, cmode, n, idx, &nout, idxout) ) + * return result # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":543 + * return result + * + * def applyBlockInverse(self, indices, mode=None): # <<<<<<<<<<<<<< + * cdef PetscGLMapMode cmode = PETSC_IS_GTOLM_MASK + * if mode is not None: cmode = mode + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.applyBlockInverse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":559 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_4size___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4size___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":560 + * property size: + * def __get__(self): + * return self.getSize() # <<<<<<<<<<<<<< + * + * property block_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":559 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":563 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_10block_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_10block_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_10block_size___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10block_size___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":564 + * property block_size: + * def __get__(self): + * return self.getBlockSize() # <<<<<<<<<<<<<< + * + * property indices: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":563 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.block_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":567 + * + * property indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIndices() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_7indices_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_7indices_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_7indices___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_7indices___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":568 + * property indices: + * def __get__(self): + * return self.getIndices() # <<<<<<<<<<<<<< + * + * property block_indices: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getIndices); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":567 + * + * property indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIndices() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.indices.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":571 + * + * property block_indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockIndices() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_13block_indices_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_13block_indices_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_13block_indices___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_13block_indices___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":572 + * property block_indices: + * def __get__(self): + * return self.getBlockIndices() # <<<<<<<<<<<<<< + * + * property info: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockIndices); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":571 + * + * property block_indices: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockIndices() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.block_indices.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":575 + * + * property info: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInfo() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_4info_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_4info_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_4info___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_4info___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":576 + * property info: + * def __get__(self): + * return self.getInfo() # <<<<<<<<<<<<<< + * + * property block_info: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 576, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":575 + * + * property info: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInfo() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.info.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/IS.pyx":579 + * + * property block_info: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockInfo() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_10block_info_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5LGMap_10block_info_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5LGMap_10block_info___get__(((struct PyPetscLGMapObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5LGMap_10block_info___get__(struct PyPetscLGMapObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/IS.pyx":580 + * property block_info: + * def __get__(self): + * return self.getBlockInfo() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockInfo); if (unlikely(!__pyx_t_2)) __PYX_ERR(38, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(38, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/IS.pyx":579 + * + * property block_info: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockInfo() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.LGMap.block_info.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":19 + * Type = SFType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sf + * self.sf = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2SF_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2SF_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF___cinit__(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2SF___cinit__(struct PyPetscSFObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/SF.pyx":20 + * + * def __cinit__(self): + * self.obj = &self.sf # <<<<<<<<<<<<<< + * self.sf = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->sf)); + + /* "petsc4py/PETSc/SF.pyx":21 + * def __cinit__(self): + * self.obj = &self.sf + * self.sf = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->sf = NULL; + + /* "petsc4py/PETSc/SF.pyx":19 + * Type = SFType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sf + * self.sf = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":23 + * self.sf = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFDestroy(&self.sf) ) + * self.sf = NULL + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_2SF_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_2SF_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_2SF_2__dealloc__(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_2SF_2__dealloc__(struct PyPetscSFObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/SF.pyx":24 + * + * def __dealloc__(self): + * CHKERR( PetscSFDestroy(&self.sf) ) # <<<<<<<<<<<<<< + * self.sf = NULL + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFDestroy((&__pyx_v_self->sf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 24, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":25 + * def __dealloc__(self): + * CHKERR( PetscSFDestroy(&self.sf) ) + * self.sf = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->sf = NULL; + + /* "petsc4py/PETSc/SF.pyx":23 + * self.sf = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFDestroy(&self.sf) ) + * self.sf = NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc.SF.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/SF.pyx":27 + * self.sf = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_4view[] = "SF.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(39, 27, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 27, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(39, 27, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_4view(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_4view(struct PyPetscSFObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/SF.pyx":28 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSFView(self.sf, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/SF.pyx":29 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscSFView(self.sf, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/SF.pyx":30 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSFView(self.sf, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFView(__pyx_v_self->sf, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":27 + * self.sf = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":32 + * CHKERR( PetscSFView(self.sf, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFDestroy(&self.sf) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_6destroy[] = "SF.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_6destroy(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_6destroy(struct PyPetscSFObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/SF.pyx":33 + * + * def destroy(self): + * CHKERR( PetscSFDestroy(&self.sf) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFDestroy((&__pyx_v_self->sf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":34 + * def destroy(self): + * CHKERR( PetscSFDestroy(&self.sf) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":32 + * CHKERR( PetscSFView(self.sf, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFDestroy(&self.sf) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":36 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSF newsf = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_8create[] = "SF.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(39, 36, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 36, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_8create(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_8create(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscSF __pyx_v_newsf; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/SF.pyx":37 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscSF newsf = NULL + * CHKERR( PetscSFCreate(ccomm, &newsf) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 37, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":38 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSF newsf = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSFCreate(ccomm, &newsf) ) + * PetscCLEAR(self.obj); self.sf = newsf + */ + __pyx_v_newsf = NULL; + + /* "petsc4py/PETSc/SF.pyx":39 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSF newsf = NULL + * CHKERR( PetscSFCreate(ccomm, &newsf) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.sf = newsf + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCreate(__pyx_v_ccomm, (&__pyx_v_newsf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 39, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":40 + * cdef PetscSF newsf = NULL + * CHKERR( PetscSFCreate(ccomm, &newsf) ) + * PetscCLEAR(self.obj); self.sf = newsf # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->sf = __pyx_v_newsf; + + /* "petsc4py/PETSc/SF.pyx":41 + * CHKERR( PetscSFCreate(ccomm, &newsf) ) + * PetscCLEAR(self.obj); self.sf = newsf + * return self # <<<<<<<<<<<<<< + * + * def setType(self, sf_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":36 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSF newsf = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":43 + * return self + * + * def setType(self, sf_type): # <<<<<<<<<<<<<< + * cdef PetscSFType cval = NULL + * sf_type = str2bytes(sf_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_10setType[] = "SF.setType(self, sf_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sf_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(39, 43, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 43, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_10setType(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_sf_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_10setType(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_sf_type) { + PetscSFType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_sf_type); + + /* "petsc4py/PETSc/SF.pyx":44 + * + * def setType(self, sf_type): + * cdef PetscSFType cval = NULL # <<<<<<<<<<<<<< + * sf_type = str2bytes(sf_type, &cval) + * CHKERR( PetscSFSetType(self.sf, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SF.pyx":45 + * def setType(self, sf_type): + * cdef PetscSFType cval = NULL + * sf_type = str2bytes(sf_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetType(self.sf, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_sf_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_sf_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":46 + * cdef PetscSFType cval = NULL + * sf_type = str2bytes(sf_type, &cval) + * CHKERR( PetscSFSetType(self.sf, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFSetType(__pyx_v_self->sf, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":43 + * return self + * + * def setType(self, sf_type): # <<<<<<<<<<<<<< + * cdef PetscSFType cval = NULL + * sf_type = str2bytes(sf_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_sf_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":48 + * CHKERR( PetscSFSetType(self.sf, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSFType cval = NULL + * CHKERR( PetscSFGetType(self.sf, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_12getType[] = "SF.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_12getType(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_12getType(struct PyPetscSFObject *__pyx_v_self) { + PetscSFType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/SF.pyx":49 + * + * def getType(self): + * cdef PetscSFType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSFGetType(self.sf, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SF.pyx":50 + * def getType(self): + * cdef PetscSFType cval = NULL + * CHKERR( PetscSFGetType(self.sf, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGetType(__pyx_v_self->sf, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 50, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":51 + * cdef PetscSFType cval = NULL + * CHKERR( PetscSFGetType(self.sf, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":48 + * CHKERR( PetscSFSetType(self.sf, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSFType cval = NULL + * CHKERR( PetscSFGetType(self.sf, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SF.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":53 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetFromOptions(self.sf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_14setFromOptions[] = "SF.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_14setFromOptions(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_14setFromOptions(struct PyPetscSFObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/SF.pyx":54 + * + * def setFromOptions(self): + * CHKERR( PetscSFSetFromOptions(self.sf) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFSetFromOptions(__pyx_v_self->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 54, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":53 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetFromOptions(self.sf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":56 + * CHKERR( PetscSFSetFromOptions(self.sf) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetUp(self.sf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_17setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_16setUp[] = "SF.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_17setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_16setUp(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_16setUp(struct PyPetscSFObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/SF.pyx":57 + * + * def setUp(self): + * CHKERR( PetscSFSetUp(self.sf) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFSetUp(__pyx_v_self->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":56 + * CHKERR( PetscSFSetFromOptions(self.sf) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetUp(self.sf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":59 + * CHKERR( PetscSFSetUp(self.sf) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFReset(self.sf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_19reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_18reset[] = "SF.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_19reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_18reset(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_18reset(struct PyPetscSFObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/SF.pyx":60 + * + * def reset(self): + * CHKERR( PetscSFReset(self.sf) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFReset(__pyx_v_self->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 60, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":59 + * CHKERR( PetscSFSetUp(self.sf) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSFReset(self.sf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":64 + * # + * + * def getGraph(self): # <<<<<<<<<<<<<< + * """nleaves can be determined from the size of local""" + * cdef PetscInt nroots = 0, nleaves = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_21getGraph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_20getGraph[] = "SF.getGraph(self)\nnleaves can be determined from the size of local"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_21getGraph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGraph (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGraph", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGraph", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_20getGraph(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_20getGraph(struct PyPetscSFObject *__pyx_v_self) { + PetscInt __pyx_v_nroots; + PetscInt __pyx_v_nleaves; + PetscInt const *__pyx_v_ilocal; + PetscSFNode const *__pyx_v_iremote; + PyArrayObject *__pyx_v_local = NULL; + PyObject *__pyx_v_remote = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGraph", 0); + + /* "petsc4py/PETSc/SF.pyx":66 + * def getGraph(self): + * """nleaves can be determined from the size of local""" + * cdef PetscInt nroots = 0, nleaves = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *ilocal = NULL + * cdef const PetscSFNode *iremote = NULL + */ + __pyx_v_nroots = 0; + __pyx_v_nleaves = 0; + + /* "petsc4py/PETSc/SF.pyx":67 + * """nleaves can be determined from the size of local""" + * cdef PetscInt nroots = 0, nleaves = 0 + * cdef const PetscInt *ilocal = NULL # <<<<<<<<<<<<<< + * cdef const PetscSFNode *iremote = NULL + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) + */ + __pyx_v_ilocal = NULL; + + /* "petsc4py/PETSc/SF.pyx":68 + * cdef PetscInt nroots = 0, nleaves = 0 + * cdef const PetscInt *ilocal = NULL + * cdef const PetscSFNode *iremote = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) + * if ilocal == NULL: + */ + __pyx_v_iremote = NULL; + + /* "petsc4py/PETSc/SF.pyx":69 + * cdef const PetscInt *ilocal = NULL + * cdef const PetscSFNode *iremote = NULL + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) # <<<<<<<<<<<<<< + * if ilocal == NULL: + * local = arange(0, nleaves, 1) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGetGraph(__pyx_v_self->sf, (&__pyx_v_nroots), (&__pyx_v_nleaves), (&__pyx_v_ilocal), (&__pyx_v_iremote))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 69, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":70 + * cdef const PetscSFNode *iremote = NULL + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) + * if ilocal == NULL: # <<<<<<<<<<<<<< + * local = arange(0, nleaves, 1) + * else: + */ + __pyx_t_2 = ((__pyx_v_ilocal == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SF.pyx":71 + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) + * if ilocal == NULL: + * local = arange(0, nleaves, 1) # <<<<<<<<<<<<<< + * else: + * local = array_i(nleaves, ilocal) + */ + __pyx_t_3 = __Pyx_PyInt_From_PetscInt(__pyx_v_nleaves); if (unlikely(!__pyx_t_3)) __PYX_ERR(39, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_arange(__pyx_int_0, __pyx_t_3, __pyx_int_1)); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_local = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SF.pyx":70 + * cdef const PetscSFNode *iremote = NULL + * CHKERR( PetscSFGetGraph(self.sf, &nroots, &nleaves, &ilocal, &iremote) ) + * if ilocal == NULL: # <<<<<<<<<<<<<< + * local = arange(0, nleaves, 1) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SF.pyx":73 + * local = arange(0, nleaves, 1) + * else: + * local = array_i(nleaves, ilocal) # <<<<<<<<<<<<<< + * remote = array_i(nleaves*2, iremote) + * remote = remote.reshape(nleaves, 2) + */ + /*else*/ { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nleaves, __pyx_v_ilocal)); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_local = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/SF.pyx":74 + * else: + * local = array_i(nleaves, ilocal) + * remote = array_i(nleaves*2, iremote) # <<<<<<<<<<<<<< + * remote = remote.reshape(nleaves, 2) + * return toInt(nroots), local, remote + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_nleaves * 2), ((PetscInt const *)__pyx_v_iremote))); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_remote = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SF.pyx":75 + * local = array_i(nleaves, ilocal) + * remote = array_i(nleaves*2, iremote) + * remote = remote.reshape(nleaves, 2) # <<<<<<<<<<<<<< + * return toInt(nroots), local, remote + * + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_remote, __pyx_n_s_reshape); if (unlikely(!__pyx_t_3)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyInt_From_PetscInt(__pyx_v_nleaves); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_int_2}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) { + PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_5, __pyx_int_2}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_5); + __Pyx_INCREF(__pyx_int_2); + __Pyx_GIVEREF(__pyx_int_2); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_int_2); + __pyx_t_5 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_remote, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SF.pyx":76 + * remote = array_i(nleaves*2, iremote) + * remote = remote.reshape(nleaves, 2) + * return toInt(nroots), local, remote # <<<<<<<<<<<<<< + * + * def setGraph(self, nroots, local, remote): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nroots); if (unlikely(!__pyx_t_4)) __PYX_ERR(39, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(39, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_local)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_local)); + PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_local)); + __Pyx_INCREF(__pyx_v_remote); + __Pyx_GIVEREF(__pyx_v_remote); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_remote); + __pyx_t_4 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":64 + * # + * + * def getGraph(self): # <<<<<<<<<<<<<< + * """nleaves can be determined from the size of local""" + * cdef PetscInt nroots = 0, nleaves = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.SF.getGraph", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_local); + __Pyx_XDECREF(__pyx_v_remote); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":78 + * return toInt(nroots), local, remote + * + * def setGraph(self, nroots, local, remote): # <<<<<<<<<<<<<< + * """ + * The nleaves argument is determined from the size of local and/or remote. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_23setGraph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_22setGraph[] = "SF.setGraph(self, nroots, local, remote)\n\n The nleaves argument is determined from the size of local and/or remote.\n local may be None, meaning contiguous storage.\n remote should be 2*nleaves long as (rank, index) pairs.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_23setGraph(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nroots = 0; + PyObject *__pyx_v_local = 0; + PyObject *__pyx_v_remote = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGraph (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nroots,&__pyx_n_s_local,&__pyx_n_s_remote,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nroots)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_local)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setGraph", 1, 3, 3, 1); __PYX_ERR(39, 78, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_remote)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setGraph", 1, 3, 3, 2); __PYX_ERR(39, 78, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGraph") < 0)) __PYX_ERR(39, 78, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_nroots = values[0]; + __pyx_v_local = values[1]; + __pyx_v_remote = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGraph", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 78, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setGraph", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_22setGraph(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_nroots, __pyx_v_local, __pyx_v_remote); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_22setGraph(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_nroots, PyObject *__pyx_v_local, PyObject *__pyx_v_remote) { + PetscInt __pyx_v_cnroots; + PetscInt __pyx_v_nleaves; + PetscInt __pyx_v_nremote; + PetscInt *__pyx_v_ilocal; + PetscSFNode *__pyx_v_iremote; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGraph", 0); + __Pyx_INCREF(__pyx_v_local); + __Pyx_INCREF(__pyx_v_remote); + + /* "petsc4py/PETSc/SF.pyx":84 + * remote should be 2*nleaves long as (rank, index) pairs. + * """ + * cdef PetscInt cnroots = asInt(nroots) # <<<<<<<<<<<<<< + * cdef PetscInt nleaves = 0 + * cdef PetscInt nremote = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nroots); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(39, 84, __pyx_L1_error) + __pyx_v_cnroots = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":85 + * """ + * cdef PetscInt cnroots = asInt(nroots) + * cdef PetscInt nleaves = 0 # <<<<<<<<<<<<<< + * cdef PetscInt nremote = 0 + * cdef PetscInt *ilocal = NULL + */ + __pyx_v_nleaves = 0; + + /* "petsc4py/PETSc/SF.pyx":86 + * cdef PetscInt cnroots = asInt(nroots) + * cdef PetscInt nleaves = 0 + * cdef PetscInt nremote = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *ilocal = NULL + * cdef PetscSFNode* iremote = NULL + */ + __pyx_v_nremote = 0; + + /* "petsc4py/PETSc/SF.pyx":87 + * cdef PetscInt nleaves = 0 + * cdef PetscInt nremote = 0 + * cdef PetscInt *ilocal = NULL # <<<<<<<<<<<<<< + * cdef PetscSFNode* iremote = NULL + * remote = iarray_i(remote, &nremote, &iremote) + */ + __pyx_v_ilocal = NULL; + + /* "petsc4py/PETSc/SF.pyx":88 + * cdef PetscInt nremote = 0 + * cdef PetscInt *ilocal = NULL + * cdef PetscSFNode* iremote = NULL # <<<<<<<<<<<<<< + * remote = iarray_i(remote, &nremote, &iremote) + * if local is not None: + */ + __pyx_v_iremote = NULL; + + /* "petsc4py/PETSc/SF.pyx":89 + * cdef PetscInt *ilocal = NULL + * cdef PetscSFNode* iremote = NULL + * remote = iarray_i(remote, &nremote, &iremote) # <<<<<<<<<<<<<< + * if local is not None: + * local = iarray_i(local, &nleaves, &ilocal) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_remote, (&__pyx_v_nremote), ((PetscInt **)(&__pyx_v_iremote)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_remote, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":90 + * cdef PetscSFNode* iremote = NULL + * remote = iarray_i(remote, &nremote, &iremote) + * if local is not None: # <<<<<<<<<<<<<< + * local = iarray_i(local, &nleaves, &ilocal) + * assert 2*nleaves == nremote + */ + __pyx_t_3 = (__pyx_v_local != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/SF.pyx":91 + * remote = iarray_i(remote, &nremote, &iremote) + * if local is not None: + * local = iarray_i(local, &nleaves, &ilocal) # <<<<<<<<<<<<<< + * assert 2*nleaves == nremote + * else: + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_local, (&__pyx_v_nleaves), (&__pyx_v_ilocal))); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_local, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":92 + * if local is not None: + * local = iarray_i(local, &nleaves, &ilocal) + * assert 2*nleaves == nremote # <<<<<<<<<<<<<< + * else: + * assert nremote % 2 == 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!(((2 * __pyx_v_nleaves) == __pyx_v_nremote) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(39, 92, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/SF.pyx":90 + * cdef PetscSFNode* iremote = NULL + * remote = iarray_i(remote, &nremote, &iremote) + * if local is not None: # <<<<<<<<<<<<<< + * local = iarray_i(local, &nleaves, &ilocal) + * assert 2*nleaves == nremote + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SF.pyx":94 + * assert 2*nleaves == nremote + * else: + * assert nremote % 2 == 0 # <<<<<<<<<<<<<< + * nleaves = nremote // 2 + * CHKERR( PetscSFSetGraph(self.sf, cnroots, nleaves, ilocal, PETSC_COPY_VALUES, iremote, PETSC_COPY_VALUES) ) + */ + /*else*/ { + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!(((__pyx_v_nremote % 2) == 0) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(39, 94, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/SF.pyx":95 + * else: + * assert nremote % 2 == 0 + * nleaves = nremote // 2 # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetGraph(self.sf, cnroots, nleaves, ilocal, PETSC_COPY_VALUES, iremote, PETSC_COPY_VALUES) ) + * + */ + __pyx_v_nleaves = (__pyx_v_nremote / 2); + } + __pyx_L3:; + + /* "petsc4py/PETSc/SF.pyx":96 + * assert nremote % 2 == 0 + * nleaves = nremote // 2 + * CHKERR( PetscSFSetGraph(self.sf, cnroots, nleaves, ilocal, PETSC_COPY_VALUES, iremote, PETSC_COPY_VALUES) ) # <<<<<<<<<<<<<< + * + * def setRankOrder(self, flag): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFSetGraph(__pyx_v_self->sf, __pyx_v_cnroots, __pyx_v_nleaves, __pyx_v_ilocal, PETSC_COPY_VALUES, __pyx_v_iremote, PETSC_COPY_VALUES)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 96, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":78 + * return toInt(nroots), local, remote + * + * def setGraph(self, nroots, local, remote): # <<<<<<<<<<<<<< + * """ + * The nleaves argument is determined from the size of local and/or remote. + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SF.setGraph", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_local); + __Pyx_XDECREF(__pyx_v_remote); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":98 + * CHKERR( PetscSFSetGraph(self.sf, cnroots, nleaves, ilocal, PETSC_COPY_VALUES, iremote, PETSC_COPY_VALUES) ) + * + * def setRankOrder(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(flag) + * CHKERR( PetscSFSetRankOrder(self.sf, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_25setRankOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_24setRankOrder[] = "SF.setRankOrder(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_25setRankOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRankOrder (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRankOrder") < 0)) __PYX_ERR(39, 98, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRankOrder", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 98, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setRankOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_24setRankOrder(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_24setRankOrder(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRankOrder", 0); + + /* "petsc4py/PETSc/SF.pyx":99 + * + * def setRankOrder(self, flag): + * cdef PetscBool bval = asBool(flag) # <<<<<<<<<<<<<< + * CHKERR( PetscSFSetRankOrder(self.sf, bval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flag); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(39, 99, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":100 + * def setRankOrder(self, flag): + * cdef PetscBool bval = asBool(flag) + * CHKERR( PetscSFSetRankOrder(self.sf, bval) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFSetRankOrder(__pyx_v_self->sf, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 100, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":98 + * CHKERR( PetscSFSetGraph(self.sf, cnroots, nleaves, ilocal, PETSC_COPY_VALUES, iremote, PETSC_COPY_VALUES) ) + * + * def setRankOrder(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(flag) + * CHKERR( PetscSFSetRankOrder(self.sf, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.setRankOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":104 + * # + * + * def getMulti(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_27getMulti(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_26getMulti[] = "SF.getMulti(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_27getMulti(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMulti (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMulti", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMulti", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_26getMulti(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_26getMulti(struct PyPetscSFObject *__pyx_v_self) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMulti", 0); + + /* "petsc4py/PETSc/SF.pyx":105 + * + * def getMulti(self): + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) + * PetscINCREF(sf.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":106 + * def getMulti(self): + * cdef SF sf = SF() + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) # <<<<<<<<<<<<<< + * PetscINCREF(sf.obj) + * return sf + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGetMultiSF(__pyx_v_self->sf, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 106, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":107 + * cdef SF sf = SF() + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) + * PetscINCREF(sf.obj) # <<<<<<<<<<<<<< + * return sf + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sf->__pyx_base.obj)); + + /* "petsc4py/PETSc/SF.pyx":108 + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) + * PetscINCREF(sf.obj) + * return sf # <<<<<<<<<<<<<< + * + * def createInverse(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":104 + * # + * + * def getMulti(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFGetMultiSF(self.sf, &sf.sf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.getMulti", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":110 + * return sf + * + * def createInverse(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFCreateInverseSF(self.sf, &sf.sf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_29createInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_28createInverse[] = "SF.createInverse(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_29createInverse(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createInverse (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createInverse", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createInverse", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_28createInverse(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_28createInverse(struct PyPetscSFObject *__pyx_v_self) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createInverse", 0); + + /* "petsc4py/PETSc/SF.pyx":111 + * + * def createInverse(self): + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( PetscSFCreateInverseSF(self.sf, &sf.sf) ) + * return sf + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":112 + * def createInverse(self): + * cdef SF sf = SF() + * CHKERR( PetscSFCreateInverseSF(self.sf, &sf.sf) ) # <<<<<<<<<<<<<< + * return sf + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCreateInverseSF(__pyx_v_self->sf, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":113 + * cdef SF sf = SF() + * CHKERR( PetscSFCreateInverseSF(self.sf, &sf.sf) ) + * return sf # <<<<<<<<<<<<<< + * + * def computeDegree(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":110 + * return sf + * + * def createInverse(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFCreateInverseSF(self.sf, &sf.sf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.createInverse", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":115 + * return sf + * + * def computeDegree(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *cdegree = NULL + * cdef PetscInt nroots + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_31computeDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_30computeDegree[] = "SF.computeDegree(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_31computeDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeDegree (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("computeDegree", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "computeDegree", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_30computeDegree(((struct PyPetscSFObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_30computeDegree(struct PyPetscSFObject *__pyx_v_self) { + PetscInt const *__pyx_v_cdegree; + PetscInt __pyx_v_nroots; + PyArrayObject *__pyx_v_degree = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeDegree", 0); + + /* "petsc4py/PETSc/SF.pyx":116 + * + * def computeDegree(self): + * cdef const PetscInt *cdegree = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nroots + * CHKERR( PetscSFComputeDegreeBegin(self.sf, &cdegree) ) + */ + __pyx_v_cdegree = NULL; + + /* "petsc4py/PETSc/SF.pyx":118 + * cdef const PetscInt *cdegree = NULL + * cdef PetscInt nroots + * CHKERR( PetscSFComputeDegreeBegin(self.sf, &cdegree) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSFComputeDegreeEnd(self.sf, &cdegree) ) + * CHKERR( PetscSFGetGraph(self.sf, &nroots, NULL, NULL, NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFComputeDegreeBegin(__pyx_v_self->sf, (&__pyx_v_cdegree))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":119 + * cdef PetscInt nroots + * CHKERR( PetscSFComputeDegreeBegin(self.sf, &cdegree) ) + * CHKERR( PetscSFComputeDegreeEnd(self.sf, &cdegree) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSFGetGraph(self.sf, &nroots, NULL, NULL, NULL) ) + * degree = array_i(nroots, cdegree) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFComputeDegreeEnd(__pyx_v_self->sf, (&__pyx_v_cdegree))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 119, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":120 + * CHKERR( PetscSFComputeDegreeBegin(self.sf, &cdegree) ) + * CHKERR( PetscSFComputeDegreeEnd(self.sf, &cdegree) ) + * CHKERR( PetscSFGetGraph(self.sf, &nroots, NULL, NULL, NULL) ) # <<<<<<<<<<<<<< + * degree = array_i(nroots, cdegree) + * return degree + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGetGraph(__pyx_v_self->sf, (&__pyx_v_nroots), NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":121 + * CHKERR( PetscSFComputeDegreeEnd(self.sf, &cdegree) ) + * CHKERR( PetscSFGetGraph(self.sf, &nroots, NULL, NULL, NULL) ) + * degree = array_i(nroots, cdegree) # <<<<<<<<<<<<<< + * return degree + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nroots, __pyx_v_cdegree)); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_degree = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":122 + * CHKERR( PetscSFGetGraph(self.sf, &nroots, NULL, NULL, NULL) ) + * degree = array_i(nroots, cdegree) + * return degree # <<<<<<<<<<<<<< + * + * def createEmbeddedRootSF(self, selected): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_degree)); + __pyx_r = ((PyObject *)__pyx_v_degree); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":115 + * return sf + * + * def computeDegree(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *cdegree = NULL + * cdef PetscInt nroots + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SF.computeDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_degree); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":124 + * return degree + * + * def createEmbeddedRootSF(self, selected): # <<<<<<<<<<<<<< + * cdef PetscInt nroots = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_33createEmbeddedRootSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_32createEmbeddedRootSF[] = "SF.createEmbeddedRootSF(self, selected)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_33createEmbeddedRootSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_selected = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createEmbeddedRootSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_selected,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_selected)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createEmbeddedRootSF") < 0)) __PYX_ERR(39, 124, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_selected = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createEmbeddedRootSF", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 124, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.createEmbeddedRootSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_32createEmbeddedRootSF(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_selected); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_32createEmbeddedRootSF(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_selected) { + PetscInt __pyx_v_nroots; + PetscInt *__pyx_v_cselected; + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createEmbeddedRootSF", 0); + __Pyx_INCREF(__pyx_v_selected); + + /* "petsc4py/PETSc/SF.pyx":125 + * + * def createEmbeddedRootSF(self, selected): + * cdef PetscInt nroots = asInt(len(selected)) # <<<<<<<<<<<<<< + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nroots, &cselected) + */ + __pyx_t_1 = PyObject_Length(__pyx_v_selected); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(39, 125, __pyx_L1_error) + __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(39, 125, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_nroots = __pyx_t_3; + + /* "petsc4py/PETSc/SF.pyx":126 + * def createEmbeddedRootSF(self, selected): + * cdef PetscInt nroots = asInt(len(selected)) + * cdef PetscInt *cselected = NULL # <<<<<<<<<<<<<< + * selected = iarray_i(selected, &nroots, &cselected) + * cdef SF sf = SF() + */ + __pyx_v_cselected = NULL; + + /* "petsc4py/PETSc/SF.pyx":127 + * cdef PetscInt nroots = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nroots, &cselected) # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedRootSF(self.sf, nroots, cselected, &sf.sf) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_selected, (&__pyx_v_nroots), (&__pyx_v_cselected))); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_selected, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":128 + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nroots, &cselected) + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( PetscSFCreateEmbeddedRootSF(self.sf, nroots, cselected, &sf.sf) ) + * return sf + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":129 + * selected = iarray_i(selected, &nroots, &cselected) + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedRootSF(self.sf, nroots, cselected, &sf.sf) ) # <<<<<<<<<<<<<< + * return sf + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCreateEmbeddedRootSF(__pyx_v_self->sf, __pyx_v_nroots, __pyx_v_cselected, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 129, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":130 + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedRootSF(self.sf, nroots, cselected, &sf.sf) ) + * return sf # <<<<<<<<<<<<<< + * + * def createEmbeddedLeafSF(self, selected): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":124 + * return degree + * + * def createEmbeddedRootSF(self, selected): # <<<<<<<<<<<<<< + * cdef PetscInt nroots = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SF.createEmbeddedRootSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XDECREF(__pyx_v_selected); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":132 + * return sf + * + * def createEmbeddedLeafSF(self, selected): # <<<<<<<<<<<<<< + * cdef PetscInt nleaves = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_35createEmbeddedLeafSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_34createEmbeddedLeafSF[] = "SF.createEmbeddedLeafSF(self, selected)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_35createEmbeddedLeafSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_selected = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createEmbeddedLeafSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_selected,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_selected)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createEmbeddedLeafSF") < 0)) __PYX_ERR(39, 132, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_selected = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createEmbeddedLeafSF", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 132, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.createEmbeddedLeafSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_34createEmbeddedLeafSF(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_selected); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_34createEmbeddedLeafSF(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_selected) { + PetscInt __pyx_v_nleaves; + PetscInt *__pyx_v_cselected; + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createEmbeddedLeafSF", 0); + __Pyx_INCREF(__pyx_v_selected); + + /* "petsc4py/PETSc/SF.pyx":133 + * + * def createEmbeddedLeafSF(self, selected): + * cdef PetscInt nleaves = asInt(len(selected)) # <<<<<<<<<<<<<< + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nleaves, &cselected) + */ + __pyx_t_1 = PyObject_Length(__pyx_v_selected); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(39, 133, __pyx_L1_error) + __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(39, 133, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_nleaves = __pyx_t_3; + + /* "petsc4py/PETSc/SF.pyx":134 + * def createEmbeddedLeafSF(self, selected): + * cdef PetscInt nleaves = asInt(len(selected)) + * cdef PetscInt *cselected = NULL # <<<<<<<<<<<<<< + * selected = iarray_i(selected, &nleaves, &cselected) + * cdef SF sf = SF() + */ + __pyx_v_cselected = NULL; + + /* "petsc4py/PETSc/SF.pyx":135 + * cdef PetscInt nleaves = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nleaves, &cselected) # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedLeafSF(self.sf, nleaves, cselected, &sf.sf) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_selected, (&__pyx_v_nleaves), (&__pyx_v_cselected))); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_selected, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":136 + * cdef PetscInt *cselected = NULL + * selected = iarray_i(selected, &nleaves, &cselected) + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( PetscSFCreateEmbeddedLeafSF(self.sf, nleaves, cselected, &sf.sf) ) + * return sf + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_2)) __PYX_ERR(39, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SF.pyx":137 + * selected = iarray_i(selected, &nleaves, &cselected) + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedLeafSF(self.sf, nleaves, cselected, &sf.sf) ) # <<<<<<<<<<<<<< + * return sf + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCreateEmbeddedLeafSF(__pyx_v_self->sf, __pyx_v_nleaves, __pyx_v_cselected, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":138 + * cdef SF sf = SF() + * CHKERR( PetscSFCreateEmbeddedLeafSF(self.sf, nleaves, cselected, &sf.sf) ) + * return sf # <<<<<<<<<<<<<< + * + * def createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":132 + * return sf + * + * def createEmbeddedLeafSF(self, selected): # <<<<<<<<<<<<<< + * cdef PetscInt nleaves = asInt(len(selected)) + * cdef PetscInt *cselected = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SF.createEmbeddedLeafSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XDECREF(__pyx_v_selected); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":140 + * return sf + * + * def createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection): # <<<<<<<<<<<<<< + * cdef SF sectionSF = SF() + * cdef PetscInt noffsets = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_37createSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_36createSectionSF[] = "SF.createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_37createSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_rootSection = 0; + PyObject *__pyx_v_remoteOffsets = 0; + struct PyPetscSectionObject *__pyx_v_leafSection = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSectionSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rootSection,&__pyx_n_s_remoteOffsets,&__pyx_n_s_leafSection,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootSection)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_remoteOffsets)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSectionSF", 1, 3, 3, 1); __PYX_ERR(39, 140, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafSection)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSectionSF", 1, 3, 3, 2); __PYX_ERR(39, 140, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSectionSF") < 0)) __PYX_ERR(39, 140, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_rootSection = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_remoteOffsets = values[1]; + __pyx_v_leafSection = ((struct PyPetscSectionObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSectionSF", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 140, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.createSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootSection), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "rootSection", 0))) __PYX_ERR(39, 140, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafSection), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "leafSection", 0))) __PYX_ERR(39, 140, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_36createSectionSF(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_rootSection, __pyx_v_remoteOffsets, __pyx_v_leafSection); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_36createSectionSF(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_rootSection, PyObject *__pyx_v_remoteOffsets, struct PyPetscSectionObject *__pyx_v_leafSection) { + struct PyPetscSFObject *__pyx_v_sectionSF = 0; + PetscInt __pyx_v_noffsets; + PetscInt *__pyx_v_cremoteOffsets; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSectionSF", 0); + __Pyx_INCREF(__pyx_v_remoteOffsets); + + /* "petsc4py/PETSc/SF.pyx":141 + * + * def createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection): + * cdef SF sectionSF = SF() # <<<<<<<<<<<<<< + * cdef PetscInt noffsets = 0 + * cdef PetscInt *cremoteOffsets = NULL + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sectionSF = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":142 + * def createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection): + * cdef SF sectionSF = SF() + * cdef PetscInt noffsets = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *cremoteOffsets = NULL + * if remoteOffsets is not None: + */ + __pyx_v_noffsets = 0; + + /* "petsc4py/PETSc/SF.pyx":143 + * cdef SF sectionSF = SF() + * cdef PetscInt noffsets = 0 + * cdef PetscInt *cremoteOffsets = NULL # <<<<<<<<<<<<<< + * if remoteOffsets is not None: + * remoteOffsets = iarray_i(remoteOffsets, &noffsets, &cremoteOffsets) + */ + __pyx_v_cremoteOffsets = NULL; + + /* "petsc4py/PETSc/SF.pyx":144 + * cdef PetscInt noffsets = 0 + * cdef PetscInt *cremoteOffsets = NULL + * if remoteOffsets is not None: # <<<<<<<<<<<<<< + * remoteOffsets = iarray_i(remoteOffsets, &noffsets, &cremoteOffsets) + * CHKERR( PetscSFCreateSectionSF(self.sf, rootSection.sec, cremoteOffsets, + */ + __pyx_t_2 = (__pyx_v_remoteOffsets != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SF.pyx":145 + * cdef PetscInt *cremoteOffsets = NULL + * if remoteOffsets is not None: + * remoteOffsets = iarray_i(remoteOffsets, &noffsets, &cremoteOffsets) # <<<<<<<<<<<<<< + * CHKERR( PetscSFCreateSectionSF(self.sf, rootSection.sec, cremoteOffsets, + * leafSection.sec, §ionSF.sf) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_remoteOffsets, (&__pyx_v_noffsets), (&__pyx_v_cremoteOffsets))); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_remoteOffsets, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":144 + * cdef PetscInt noffsets = 0 + * cdef PetscInt *cremoteOffsets = NULL + * if remoteOffsets is not None: # <<<<<<<<<<<<<< + * remoteOffsets = iarray_i(remoteOffsets, &noffsets, &cremoteOffsets) + * CHKERR( PetscSFCreateSectionSF(self.sf, rootSection.sec, cremoteOffsets, + */ + } + + /* "petsc4py/PETSc/SF.pyx":146 + * if remoteOffsets is not None: + * remoteOffsets = iarray_i(remoteOffsets, &noffsets, &cremoteOffsets) + * CHKERR( PetscSFCreateSectionSF(self.sf, rootSection.sec, cremoteOffsets, # <<<<<<<<<<<<<< + * leafSection.sec, §ionSF.sf) ) + * return sectionSF + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCreateSectionSF(__pyx_v_self->sf, __pyx_v_rootSection->sec, __pyx_v_cremoteOffsets, __pyx_v_leafSection->sec, (&__pyx_v_sectionSF->sf))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 146, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":148 + * CHKERR( PetscSFCreateSectionSF(self.sf, rootSection.sec, cremoteOffsets, + * leafSection.sec, §ionSF.sf) ) + * return sectionSF # <<<<<<<<<<<<<< + * + * def distributeSection(self, Section rootSection, Section leafSection=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sectionSF)); + __pyx_r = ((PyObject *)__pyx_v_sectionSF); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":140 + * return sf + * + * def createSectionSF(self, Section rootSection, remoteOffsets, Section leafSection): # <<<<<<<<<<<<<< + * cdef SF sectionSF = SF() + * cdef PetscInt noffsets = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.createSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sectionSF); + __Pyx_XDECREF(__pyx_v_remoteOffsets); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":150 + * return sectionSF + * + * def distributeSection(self, Section rootSection, Section leafSection=None): # <<<<<<<<<<<<<< + * cdef PetscInt lpStart + * cdef PetscInt lpEnd + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_39distributeSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_38distributeSection[] = "SF.distributeSection(self, Section rootSection, Section leafSection=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_39distributeSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_rootSection = 0; + struct PyPetscSectionObject *__pyx_v_leafSection = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributeSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rootSection,&__pyx_n_s_leafSection,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscSectionObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootSection)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafSection); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distributeSection") < 0)) __PYX_ERR(39, 150, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rootSection = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_leafSection = ((struct PyPetscSectionObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distributeSection", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 150, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.distributeSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootSection), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "rootSection", 0))) __PYX_ERR(39, 150, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafSection), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "leafSection", 0))) __PYX_ERR(39, 150, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_38distributeSection(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_rootSection, __pyx_v_leafSection); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_38distributeSection(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_rootSection, struct PyPetscSectionObject *__pyx_v_leafSection) { + PetscInt __pyx_v_lpStart; + PetscInt __pyx_v_lpEnd; + PetscInt *__pyx_v_cremoteOffsets; + PyArrayObject *__pyx_v_remoteOffsets = 0; + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + MPI_Comm __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributeSection", 0); + __Pyx_INCREF((PyObject *)__pyx_v_leafSection); + + /* "petsc4py/PETSc/SF.pyx":153 + * cdef PetscInt lpStart + * cdef PetscInt lpEnd + * cdef PetscInt *cremoteOffsets = NULL # <<<<<<<<<<<<<< + * cdef ndarray remoteOffsets + * cdef MPI_Comm ccomm = def_Comm(self.comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_cremoteOffsets = NULL; + + /* "petsc4py/PETSc/SF.pyx":155 + * cdef PetscInt *cremoteOffsets = NULL + * cdef ndarray remoteOffsets + * cdef MPI_Comm ccomm = def_Comm(self.comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * if leafSection is None: + * leafSection = Section() + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_comm); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_t_1, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_ccomm = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":156 + * cdef ndarray remoteOffsets + * cdef MPI_Comm ccomm = def_Comm(self.comm, PETSC_COMM_DEFAULT) + * if leafSection is None: # <<<<<<<<<<<<<< + * leafSection = Section() + * if leafSection.sec == NULL: + */ + __pyx_t_3 = (((PyObject *)__pyx_v_leafSection) == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/SF.pyx":157 + * cdef MPI_Comm ccomm = def_Comm(self.comm, PETSC_COMM_DEFAULT) + * if leafSection is None: + * leafSection = Section() # <<<<<<<<<<<<<< + * if leafSection.sec == NULL: + * CHKERR( PetscSectionCreate(ccomm, &leafSection.sec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_leafSection, ((struct PyPetscSectionObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":156 + * cdef ndarray remoteOffsets + * cdef MPI_Comm ccomm = def_Comm(self.comm, PETSC_COMM_DEFAULT) + * if leafSection is None: # <<<<<<<<<<<<<< + * leafSection = Section() + * if leafSection.sec == NULL: + */ + } + + /* "petsc4py/PETSc/SF.pyx":158 + * if leafSection is None: + * leafSection = Section() + * if leafSection.sec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscSectionCreate(ccomm, &leafSection.sec) ) + * CHKERR( PetscSFDistributeSection(self.sf, rootSection.sec, + */ + __pyx_t_4 = ((__pyx_v_leafSection->sec == NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/SF.pyx":159 + * leafSection = Section() + * if leafSection.sec == NULL: + * CHKERR( PetscSectionCreate(ccomm, &leafSection.sec) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSFDistributeSection(self.sf, rootSection.sec, + * &cremoteOffsets, leafSection.sec) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionCreate(__pyx_v_ccomm, (&__pyx_v_leafSection->sec))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":158 + * if leafSection is None: + * leafSection = Section() + * if leafSection.sec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscSectionCreate(ccomm, &leafSection.sec) ) + * CHKERR( PetscSFDistributeSection(self.sf, rootSection.sec, + */ + } + + /* "petsc4py/PETSc/SF.pyx":160 + * if leafSection.sec == NULL: + * CHKERR( PetscSectionCreate(ccomm, &leafSection.sec) ) + * CHKERR( PetscSFDistributeSection(self.sf, rootSection.sec, # <<<<<<<<<<<<<< + * &cremoteOffsets, leafSection.sec) ) + * CHKERR( PetscSectionGetChart(leafSection.sec, &lpStart, &lpEnd) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFDistributeSection(__pyx_v_self->sf, __pyx_v_rootSection->sec, (&__pyx_v_cremoteOffsets), __pyx_v_leafSection->sec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 160, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":162 + * CHKERR( PetscSFDistributeSection(self.sf, rootSection.sec, + * &cremoteOffsets, leafSection.sec) ) + * CHKERR( PetscSectionGetChart(leafSection.sec, &lpStart, &lpEnd) ) # <<<<<<<<<<<<<< + * remoteOffsets = array_i(lpEnd-lpStart, cremoteOffsets) + * CHKERR( PetscFree(cremoteOffsets) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetChart(__pyx_v_leafSection->sec, (&__pyx_v_lpStart), (&__pyx_v_lpEnd))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 162, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":163 + * &cremoteOffsets, leafSection.sec) ) + * CHKERR( PetscSectionGetChart(leafSection.sec, &lpStart, &lpEnd) ) + * remoteOffsets = array_i(lpEnd-lpStart, cremoteOffsets) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cremoteOffsets) ) + * return (remoteOffsets, leafSection) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_lpEnd - __pyx_v_lpStart), __pyx_v_cremoteOffsets)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_remoteOffsets = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":164 + * CHKERR( PetscSectionGetChart(leafSection.sec, &lpStart, &lpEnd) ) + * remoteOffsets = array_i(lpEnd-lpStart, cremoteOffsets) + * CHKERR( PetscFree(cremoteOffsets) ) # <<<<<<<<<<<<<< + * return (remoteOffsets, leafSection) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cremoteOffsets)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 164, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":165 + * remoteOffsets = array_i(lpEnd-lpStart, cremoteOffsets) + * CHKERR( PetscFree(cremoteOffsets) ) + * return (remoteOffsets, leafSection) # <<<<<<<<<<<<<< + * + * def compose(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_remoteOffsets)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_remoteOffsets)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_remoteOffsets)); + __Pyx_INCREF(((PyObject *)__pyx_v_leafSection)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_leafSection)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_leafSection)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":150 + * return sectionSF + * + * def distributeSection(self, Section rootSection, Section leafSection=None): # <<<<<<<<<<<<<< + * cdef PetscInt lpStart + * cdef PetscInt lpEnd + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.distributeSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_remoteOffsets); + __Pyx_XDECREF((PyObject *)__pyx_v_leafSection); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":167 + * return (remoteOffsets, leafSection) + * + * def compose(self, SF sf): # <<<<<<<<<<<<<< + * cdef SF csf = SF() + * CHKERR( PetscSFCompose(self.sf, sf.sf, &csf.sf)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_41compose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_40compose[] = "SF.compose(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_41compose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("compose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compose") < 0)) __PYX_ERR(39, 167, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("compose", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 167, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.compose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(39, 167, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_40compose(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_40compose(struct PyPetscSFObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + struct PyPetscSFObject *__pyx_v_csf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("compose", 0); + + /* "petsc4py/PETSc/SF.pyx":168 + * + * def compose(self, SF sf): + * cdef SF csf = SF() # <<<<<<<<<<<<<< + * CHKERR( PetscSFCompose(self.sf, sf.sf, &csf.sf)) + * return csf + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(39, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_csf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SF.pyx":169 + * def compose(self, SF sf): + * cdef SF csf = SF() + * CHKERR( PetscSFCompose(self.sf, sf.sf, &csf.sf)) # <<<<<<<<<<<<<< + * return csf + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFCompose(__pyx_v_self->sf, __pyx_v_sf->sf, (&__pyx_v_csf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 169, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":170 + * cdef SF csf = SF() + * CHKERR( PetscSFCompose(self.sf, sf.sf, &csf.sf)) + * return csf # <<<<<<<<<<<<<< + * + * def bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_csf)); + __pyx_r = ((PyObject *)__pyx_v_csf); + goto __pyx_L0; + + /* "petsc4py/PETSc/SF.pyx":167 + * return (remoteOffsets, leafSection) + * + * def compose(self, SF sf): # <<<<<<<<<<<<<< + * cdef SF csf = SF() + * CHKERR( PetscSFCompose(self.sf, sf.sf, &csf.sf)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SF.compose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_csf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":172 + * return csf + * + * def bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_43bcastBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_42bcastBegin[] = "SF.bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_43bcastBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_rootdata = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bcastBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_rootdata,&__pyx_n_s_leafdata,&__pyx_n_s_op,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastBegin", 1, 4, 4, 1); __PYX_ERR(39, 172, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastBegin", 1, 4, 4, 2); __PYX_ERR(39, 172, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastBegin", 1, 4, 4, 3); __PYX_ERR(39, 172, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bcastBegin") < 0)) __PYX_ERR(39, 172, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_unit = values[0]; + __pyx_v_rootdata = ((PyArrayObject *)values[1]); + __pyx_v_leafdata = ((PyArrayObject *)values[2]); + __pyx_v_op = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bcastBegin", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 172, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.bcastBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "rootdata", 0))) __PYX_ERR(39, 172, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 172, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_42bcastBegin(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_rootdata, __pyx_v_leafdata, __pyx_v_op); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_42bcastBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_rootdata, PyArrayObject *__pyx_v_leafdata, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bcastBegin", 0); + + /* "petsc4py/PETSc/SF.pyx":173 + * + * def bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFBcastBegin(self.sf, dtype, PyArray_DATA(rootdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 173, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":174 + * def bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFBcastBegin(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), cop) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 174, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":175 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFBcastBegin(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), cop) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFBcastBegin(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_rootdata)), ((void *)PyArray_DATA(__pyx_v_leafdata)), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 175, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":172 + * return csf + * + * def bcastBegin(self, unit, ndarray rootdata, ndarray leafdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.bcastBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":178 + * PyArray_DATA(leafdata), cop) ) + * + * def bcastEnd(self, unit, ndarray rootdata, ndarray leafdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_45bcastEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_44bcastEnd[] = "SF.bcastEnd(self, unit, ndarray rootdata, ndarray leafdata, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_45bcastEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_rootdata = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bcastEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_rootdata,&__pyx_n_s_leafdata,&__pyx_n_s_op,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastEnd", 1, 4, 4, 1); __PYX_ERR(39, 178, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastEnd", 1, 4, 4, 2); __PYX_ERR(39, 178, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("bcastEnd", 1, 4, 4, 3); __PYX_ERR(39, 178, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bcastEnd") < 0)) __PYX_ERR(39, 178, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_unit = values[0]; + __pyx_v_rootdata = ((PyArrayObject *)values[1]); + __pyx_v_leafdata = ((PyArrayObject *)values[2]); + __pyx_v_op = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bcastEnd", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 178, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.bcastEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "rootdata", 0))) __PYX_ERR(39, 178, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 178, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_44bcastEnd(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_rootdata, __pyx_v_leafdata, __pyx_v_op); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_44bcastEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_rootdata, PyArrayObject *__pyx_v_leafdata, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bcastEnd", 0); + + /* "petsc4py/PETSc/SF.pyx":179 + * + * def bcastEnd(self, unit, ndarray rootdata, ndarray leafdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFBcastEnd(self.sf, dtype, PyArray_DATA(rootdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 179, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":180 + * def bcastEnd(self, unit, ndarray rootdata, ndarray leafdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFBcastEnd(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), cop) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 180, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":181 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFBcastEnd(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), cop) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFBcastEnd(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_rootdata)), ((void *)PyArray_DATA(__pyx_v_leafdata)), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 181, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":178 + * PyArray_DATA(leafdata), cop) ) + * + * def bcastEnd(self, unit, ndarray rootdata, ndarray leafdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.bcastEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":184 + * PyArray_DATA(leafdata), cop) ) + * + * def reduceBegin(self, unit, ndarray leafdata, ndarray rootdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_47reduceBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_46reduceBegin[] = "SF.reduceBegin(self, unit, ndarray leafdata, ndarray rootdata, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_47reduceBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyArrayObject *__pyx_v_rootdata = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reduceBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_leafdata,&__pyx_n_s_rootdata,&__pyx_n_s_op,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceBegin", 1, 4, 4, 1); __PYX_ERR(39, 184, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceBegin", 1, 4, 4, 2); __PYX_ERR(39, 184, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceBegin", 1, 4, 4, 3); __PYX_ERR(39, 184, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reduceBegin") < 0)) __PYX_ERR(39, 184, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_unit = values[0]; + __pyx_v_leafdata = ((PyArrayObject *)values[1]); + __pyx_v_rootdata = ((PyArrayObject *)values[2]); + __pyx_v_op = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("reduceBegin", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 184, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.reduceBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 184, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "rootdata", 0))) __PYX_ERR(39, 184, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_46reduceBegin(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_leafdata, __pyx_v_rootdata, __pyx_v_op); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_46reduceBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_rootdata, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reduceBegin", 0); + + /* "petsc4py/PETSc/SF.pyx":185 + * + * def reduceBegin(self, unit, ndarray leafdata, ndarray rootdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFReduceBegin(self.sf, dtype, PyArray_DATA(leafdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 185, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":186 + * def reduceBegin(self, unit, ndarray leafdata, ndarray rootdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFReduceBegin(self.sf, dtype, PyArray_DATA(leafdata), + * PyArray_DATA(rootdata), cop) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 186, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":187 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFReduceBegin(self.sf, dtype, PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(rootdata), cop) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFReduceBegin(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_leafdata)), ((void *)PyArray_DATA(__pyx_v_rootdata)), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":184 + * PyArray_DATA(leafdata), cop) ) + * + * def reduceBegin(self, unit, ndarray leafdata, ndarray rootdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.reduceBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":190 + * PyArray_DATA(rootdata), cop) ) + * + * def reduceEnd(self, unit, ndarray leafdata, ndarray rootdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_49reduceEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_48reduceEnd[] = "SF.reduceEnd(self, unit, ndarray leafdata, ndarray rootdata, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_49reduceEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyArrayObject *__pyx_v_rootdata = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reduceEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_leafdata,&__pyx_n_s_rootdata,&__pyx_n_s_op,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceEnd", 1, 4, 4, 1); __PYX_ERR(39, 190, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceEnd", 1, 4, 4, 2); __PYX_ERR(39, 190, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reduceEnd", 1, 4, 4, 3); __PYX_ERR(39, 190, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reduceEnd") < 0)) __PYX_ERR(39, 190, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_unit = values[0]; + __pyx_v_leafdata = ((PyArrayObject *)values[1]); + __pyx_v_rootdata = ((PyArrayObject *)values[2]); + __pyx_v_op = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("reduceEnd", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 190, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.reduceEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 190, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "rootdata", 0))) __PYX_ERR(39, 190, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_48reduceEnd(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_leafdata, __pyx_v_rootdata, __pyx_v_op); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_48reduceEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_rootdata, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reduceEnd", 0); + + /* "petsc4py/PETSc/SF.pyx":191 + * + * def reduceEnd(self, unit, ndarray leafdata, ndarray rootdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFReduceEnd(self.sf, dtype, PyArray_DATA(leafdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 191, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":192 + * def reduceEnd(self, unit, ndarray leafdata, ndarray rootdata, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFReduceEnd(self.sf, dtype, PyArray_DATA(leafdata), + * PyArray_DATA(rootdata), cop) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 192, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":193 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFReduceEnd(self.sf, dtype, PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(rootdata), cop) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFReduceEnd(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_leafdata)), ((void *)PyArray_DATA(__pyx_v_rootdata)), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 193, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":190 + * PyArray_DATA(rootdata), cop) ) + * + * def reduceEnd(self, unit, ndarray leafdata, ndarray rootdata, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.reduceEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":196 + * PyArray_DATA(rootdata), cop) ) + * + * def scatterBegin(self, unit, ndarray multirootdata, ndarray leafdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterBegin(self.sf, dtype, PyArray_DATA(multirootdata), + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_51scatterBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_50scatterBegin[] = "SF.scatterBegin(self, unit, ndarray multirootdata, ndarray leafdata)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_51scatterBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_multirootdata = 0; + PyArrayObject *__pyx_v_leafdata = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatterBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_multirootdata,&__pyx_n_s_leafdata,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_multirootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterBegin", 1, 3, 3, 1); __PYX_ERR(39, 196, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterBegin", 1, 3, 3, 2); __PYX_ERR(39, 196, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatterBegin") < 0)) __PYX_ERR(39, 196, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_unit = values[0]; + __pyx_v_multirootdata = ((PyArrayObject *)values[1]); + __pyx_v_leafdata = ((PyArrayObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatterBegin", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 196, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.scatterBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_multirootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "multirootdata", 0))) __PYX_ERR(39, 196, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 196, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_50scatterBegin(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_multirootdata, __pyx_v_leafdata); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_50scatterBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_multirootdata, PyArrayObject *__pyx_v_leafdata) { + MPI_Datatype __pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatterBegin", 0); + + /* "petsc4py/PETSc/SF.pyx":197 + * + * def scatterBegin(self, unit, ndarray multirootdata, ndarray leafdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * CHKERR( PetscSFScatterBegin(self.sf, dtype, PyArray_DATA(multirootdata), + * PyArray_DATA(leafdata)) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 197, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":198 + * def scatterBegin(self, unit, ndarray multirootdata, ndarray leafdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterBegin(self.sf, dtype, PyArray_DATA(multirootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata)) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFScatterBegin(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_multirootdata)), ((void *)PyArray_DATA(__pyx_v_leafdata)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 198, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":196 + * PyArray_DATA(rootdata), cop) ) + * + * def scatterBegin(self, unit, ndarray multirootdata, ndarray leafdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterBegin(self.sf, dtype, PyArray_DATA(multirootdata), + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.scatterBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":201 + * PyArray_DATA(leafdata)) ) + * + * def scatterEnd(self, unit, ndarray multirootdata, ndarray leafdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterEnd(self.sf, dtype, PyArray_DATA(multirootdata), + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_53scatterEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_52scatterEnd[] = "SF.scatterEnd(self, unit, ndarray multirootdata, ndarray leafdata)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_53scatterEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_multirootdata = 0; + PyArrayObject *__pyx_v_leafdata = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatterEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_multirootdata,&__pyx_n_s_leafdata,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_multirootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterEnd", 1, 3, 3, 1); __PYX_ERR(39, 201, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterEnd", 1, 3, 3, 2); __PYX_ERR(39, 201, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatterEnd") < 0)) __PYX_ERR(39, 201, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_unit = values[0]; + __pyx_v_multirootdata = ((PyArrayObject *)values[1]); + __pyx_v_leafdata = ((PyArrayObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatterEnd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 201, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.scatterEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_multirootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "multirootdata", 0))) __PYX_ERR(39, 201, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 201, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_52scatterEnd(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_multirootdata, __pyx_v_leafdata); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_52scatterEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_multirootdata, PyArrayObject *__pyx_v_leafdata) { + MPI_Datatype __pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatterEnd", 0); + + /* "petsc4py/PETSc/SF.pyx":202 + * + * def scatterEnd(self, unit, ndarray multirootdata, ndarray leafdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * CHKERR( PetscSFScatterEnd(self.sf, dtype, PyArray_DATA(multirootdata), + * PyArray_DATA(leafdata)) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 202, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":203 + * def scatterEnd(self, unit, ndarray multirootdata, ndarray leafdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterEnd(self.sf, dtype, PyArray_DATA(multirootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata)) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFScatterEnd(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_multirootdata)), ((void *)PyArray_DATA(__pyx_v_leafdata)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":201 + * PyArray_DATA(leafdata)) ) + * + * def scatterEnd(self, unit, ndarray multirootdata, ndarray leafdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFScatterEnd(self.sf, dtype, PyArray_DATA(multirootdata), + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.scatterEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":206 + * PyArray_DATA(leafdata)) ) + * + * def gatherBegin(self, unit, ndarray leafdata, ndarray multirootdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherBegin(self.sf, dtype, PyArray_DATA(leafdata), + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_55gatherBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_54gatherBegin[] = "SF.gatherBegin(self, unit, ndarray leafdata, ndarray multirootdata)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_55gatherBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyArrayObject *__pyx_v_multirootdata = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("gatherBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_leafdata,&__pyx_n_s_multirootdata,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gatherBegin", 1, 3, 3, 1); __PYX_ERR(39, 206, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_multirootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gatherBegin", 1, 3, 3, 2); __PYX_ERR(39, 206, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gatherBegin") < 0)) __PYX_ERR(39, 206, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_unit = values[0]; + __pyx_v_leafdata = ((PyArrayObject *)values[1]); + __pyx_v_multirootdata = ((PyArrayObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("gatherBegin", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 206, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.gatherBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 206, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_multirootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "multirootdata", 0))) __PYX_ERR(39, 206, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_54gatherBegin(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_leafdata, __pyx_v_multirootdata); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_54gatherBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_multirootdata) { + MPI_Datatype __pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gatherBegin", 0); + + /* "petsc4py/PETSc/SF.pyx":207 + * + * def gatherBegin(self, unit, ndarray leafdata, ndarray multirootdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * CHKERR( PetscSFGatherBegin(self.sf, dtype, PyArray_DATA(leafdata), + * PyArray_DATA(multirootdata)) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 207, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":208 + * def gatherBegin(self, unit, ndarray leafdata, ndarray multirootdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherBegin(self.sf, dtype, PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(multirootdata)) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGatherBegin(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_leafdata)), ((void *)PyArray_DATA(__pyx_v_multirootdata)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 208, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":206 + * PyArray_DATA(leafdata)) ) + * + * def gatherBegin(self, unit, ndarray leafdata, ndarray multirootdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherBegin(self.sf, dtype, PyArray_DATA(leafdata), + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.gatherBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":211 + * PyArray_DATA(multirootdata)) ) + * + * def gatherEnd(self, unit, ndarray leafdata, ndarray multirootdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherEnd(self.sf, dtype, PyArray_DATA(leafdata), + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_57gatherEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_56gatherEnd[] = "SF.gatherEnd(self, unit, ndarray leafdata, ndarray multirootdata)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_57gatherEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyArrayObject *__pyx_v_leafdata = 0; + PyArrayObject *__pyx_v_multirootdata = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("gatherEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_leafdata,&__pyx_n_s_multirootdata,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gatherEnd", 1, 3, 3, 1); __PYX_ERR(39, 211, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_multirootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gatherEnd", 1, 3, 3, 2); __PYX_ERR(39, 211, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gatherEnd") < 0)) __PYX_ERR(39, 211, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_unit = values[0]; + __pyx_v_leafdata = ((PyArrayObject *)values[1]); + __pyx_v_multirootdata = ((PyArrayObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("gatherEnd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 211, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.gatherEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_leafdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "leafdata", 0))) __PYX_ERR(39, 211, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_multirootdata), __pyx_ptype_8petsc4py_5PETSc_ndarray, 0, "multirootdata", 0))) __PYX_ERR(39, 211, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_56gatherEnd(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_leafdata, __pyx_v_multirootdata); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_56gatherEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyArrayObject *__pyx_v_leafdata, PyArrayObject *__pyx_v_multirootdata) { + MPI_Datatype __pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gatherEnd", 0); + + /* "petsc4py/PETSc/SF.pyx":212 + * + * def gatherEnd(self, unit, ndarray leafdata, ndarray multirootdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * CHKERR( PetscSFGatherEnd(self.sf, dtype, PyArray_DATA(leafdata), + * PyArray_DATA(multirootdata)) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 212, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":213 + * def gatherEnd(self, unit, ndarray leafdata, ndarray multirootdata): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherEnd(self.sf, dtype, PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(multirootdata)) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFGatherEnd(__pyx_v_self->sf, __pyx_v_dtype, ((void const *)PyArray_DATA(__pyx_v_leafdata)), ((void *)PyArray_DATA(__pyx_v_multirootdata)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":211 + * PyArray_DATA(multirootdata)) ) + * + * def gatherEnd(self, unit, ndarray leafdata, ndarray multirootdata): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * CHKERR( PetscSFGatherEnd(self.sf, dtype, PyArray_DATA(leafdata), + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.gatherEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":216 + * PyArray_DATA(multirootdata)) ) + * + * def fetchAndOpBegin(self, unit, rootdata, leafdata, leafupdate, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_59fetchAndOpBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_58fetchAndOpBegin[] = "SF.fetchAndOpBegin(self, unit, rootdata, leafdata, leafupdate, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_59fetchAndOpBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyObject *__pyx_v_rootdata = 0; + PyObject *__pyx_v_leafdata = 0; + PyObject *__pyx_v_leafupdate = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("fetchAndOpBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_rootdata,&__pyx_n_s_leafdata,&__pyx_n_s_leafupdate,&__pyx_n_s_op,0}; + PyObject* values[5] = {0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpBegin", 1, 5, 5, 1); __PYX_ERR(39, 216, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpBegin", 1, 5, 5, 2); __PYX_ERR(39, 216, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafupdate)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpBegin", 1, 5, 5, 3); __PYX_ERR(39, 216, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpBegin", 1, 5, 5, 4); __PYX_ERR(39, 216, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fetchAndOpBegin") < 0)) __PYX_ERR(39, 216, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + } + __pyx_v_unit = values[0]; + __pyx_v_rootdata = values[1]; + __pyx_v_leafdata = values[2]; + __pyx_v_leafupdate = values[3]; + __pyx_v_op = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("fetchAndOpBegin", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 216, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.fetchAndOpBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_58fetchAndOpBegin(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_rootdata, __pyx_v_leafdata, __pyx_v_leafupdate, __pyx_v_op); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_58fetchAndOpBegin(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyObject *__pyx_v_rootdata, PyObject *__pyx_v_leafdata, PyObject *__pyx_v_leafupdate, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("fetchAndOpBegin", 0); + + /* "petsc4py/PETSc/SF.pyx":217 + * + * def fetchAndOpBegin(self, unit, rootdata, leafdata, leafupdate, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 217, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":218 + * def fetchAndOpBegin(self, unit, rootdata, leafdata, leafupdate, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 218, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":219 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) + */ + if (!(likely(((__pyx_v_rootdata) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_rootdata, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 219, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":220 + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafupdate), cop) ) + * + */ + if (!(likely(((__pyx_v_leafdata) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_leafdata, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 220, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":221 + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) # <<<<<<<<<<<<<< + * + * def fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op): + */ + if (!(likely(((__pyx_v_leafupdate) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_leafupdate, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 221, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":219 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpBegin(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFFetchAndOpBegin(__pyx_v_self->sf, __pyx_v_dtype, ((void *)PyArray_DATA(((PyArrayObject *)__pyx_v_rootdata))), ((void const *)PyArray_DATA(((PyArrayObject *)__pyx_v_leafdata))), ((void *)PyArray_DATA(((PyArrayObject *)__pyx_v_leafupdate))), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 219, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":216 + * PyArray_DATA(multirootdata)) ) + * + * def fetchAndOpBegin(self, unit, rootdata, leafdata, leafupdate, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.fetchAndOpBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SF.pyx":223 + * PyArray_DATA(leafupdate), cop) ) + * + * def fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_61fetchAndOpEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2SF_60fetchAndOpEnd[] = "SF.fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2SF_61fetchAndOpEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_unit = 0; + PyObject *__pyx_v_rootdata = 0; + PyObject *__pyx_v_leafdata = 0; + PyObject *__pyx_v_leafupdate = 0; + PyObject *__pyx_v_op = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("fetchAndOpEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_unit,&__pyx_n_s_rootdata,&__pyx_n_s_leafdata,&__pyx_n_s_leafupdate,&__pyx_n_s_op,0}; + PyObject* values[5] = {0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_unit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rootdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpEnd", 1, 5, 5, 1); __PYX_ERR(39, 223, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafdata)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpEnd", 1, 5, 5, 2); __PYX_ERR(39, 223, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafupdate)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpEnd", 1, 5, 5, 3); __PYX_ERR(39, 223, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_op)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("fetchAndOpEnd", 1, 5, 5, 4); __PYX_ERR(39, 223, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fetchAndOpEnd") < 0)) __PYX_ERR(39, 223, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + } + __pyx_v_unit = values[0]; + __pyx_v_rootdata = values[1]; + __pyx_v_leafdata = values[2]; + __pyx_v_leafupdate = values[3]; + __pyx_v_op = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("fetchAndOpEnd", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(39, 223, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.fetchAndOpEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2SF_60fetchAndOpEnd(((struct PyPetscSFObject *)__pyx_v_self), __pyx_v_unit, __pyx_v_rootdata, __pyx_v_leafdata, __pyx_v_leafupdate, __pyx_v_op); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2SF_60fetchAndOpEnd(struct PyPetscSFObject *__pyx_v_self, PyObject *__pyx_v_unit, PyObject *__pyx_v_rootdata, PyObject *__pyx_v_leafdata, PyObject *__pyx_v_leafupdate, PyObject *__pyx_v_op) { + MPI_Datatype __pyx_v_dtype; + MPI_Op __pyx_v_cop; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Datatype __pyx_t_1; + MPI_Op __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("fetchAndOpEnd", 0); + + /* "petsc4py/PETSc/SF.pyx":224 + * + * def fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) # <<<<<<<<<<<<<< + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mpi4py_Datatype_Get(__pyx_v_unit); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 224, __pyx_L1_error) + __pyx_v_dtype = __pyx_t_1; + + /* "petsc4py/PETSc/SF.pyx":225 + * def fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op): + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) # <<<<<<<<<<<<<< + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_mpi4py_Op_Get(__pyx_v_op); if (unlikely(PyErr_Occurred())) __PYX_ERR(39, 225, __pyx_L1_error) + __pyx_v_cop = __pyx_t_2; + + /* "petsc4py/PETSc/SF.pyx":226 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) + */ + if (!(likely(((__pyx_v_rootdata) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_rootdata, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 226, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":227 + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafupdate), cop) ) + * + */ + if (!(likely(((__pyx_v_leafdata) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_leafdata, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 227, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":228 + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (!(likely(((__pyx_v_leafupdate) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_leafupdate, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(39, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":226 + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + * CHKERR( PetscSFFetchAndOpEnd(self.sf, dtype, PyArray_DATA(rootdata), # <<<<<<<<<<<<<< + * PyArray_DATA(leafdata), + * PyArray_DATA(leafupdate), cop) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSFFetchAndOpEnd(__pyx_v_self->sf, __pyx_v_dtype, ((void *)PyArray_DATA(((PyArrayObject *)__pyx_v_rootdata))), ((void const *)PyArray_DATA(((PyArrayObject *)__pyx_v_leafdata))), ((void *)PyArray_DATA(((PyArrayObject *)__pyx_v_leafupdate))), __pyx_v_cop)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(39, 226, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":223 + * PyArray_DATA(leafupdate), cop) ) + * + * def fetchAndOpEnd(self, unit, rootdata, leafdata, leafupdate, op): # <<<<<<<<<<<<<< + * cdef MPI_Datatype dtype = mpi4py_Datatype_Get(unit) + * cdef MPI_Op cop = mpi4py_Op_Get(op) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SF.fetchAndOpEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":35 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.vec + * self.vec = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec___cinit__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec___cinit__(struct PyPetscVecObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Vec.pyx":36 + * + * def __cinit__(self): + * self.obj = &self.vec # <<<<<<<<<<<<<< + * self.vec = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->vec)); + + /* "petsc4py/PETSc/Vec.pyx":37 + * def __cinit__(self): + * self.obj = &self.vec + * self.vec = NULL # <<<<<<<<<<<<<< + * + * # unary operations + */ + __pyx_v_self->vec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":35 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.vec + * self.vec = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":41 + * # unary operations + * + * def __pos__(self): # <<<<<<<<<<<<<< + * return vec_pos(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_3__pos__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_3__pos__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pos__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_2__pos__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_2__pos__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pos__", 0); + + /* "petsc4py/PETSc/Vec.pyx":42 + * + * def __pos__(self): + * return vec_pos(self) # <<<<<<<<<<<<<< + * + * def __neg__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":41 + * # unary operations + * + * def __pos__(self): # <<<<<<<<<<<<<< + * return vec_pos(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__pos__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":44 + * return vec_pos(self) + * + * def __neg__(self): # <<<<<<<<<<<<<< + * return vec_neg(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5__neg__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5__neg__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__neg__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_4__neg__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_4__neg__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__neg__", 0); + + /* "petsc4py/PETSc/Vec.pyx":45 + * + * def __neg__(self): + * return vec_neg(self) # <<<<<<<<<<<<<< + * + * def __abs__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_neg(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":44 + * return vec_pos(self) + * + * def __neg__(self): # <<<<<<<<<<<<<< + * return vec_neg(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__neg__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":47 + * return vec_neg(self) + * + * def __abs__(self): # <<<<<<<<<<<<<< + * return vec_abs(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7__abs__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7__abs__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__abs__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_6__abs__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_6__abs__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__abs__", 0); + + /* "petsc4py/PETSc/Vec.pyx":48 + * + * def __abs__(self): + * return vec_abs(self) # <<<<<<<<<<<<<< + * + * # inplace binary operations + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_abs(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":47 + * return vec_neg(self) + * + * def __abs__(self): # <<<<<<<<<<<<<< + * return vec_abs(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__abs__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":52 + * # inplace binary operations + * + * def __iadd__(self, other): # <<<<<<<<<<<<<< + * return vec_iadd(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_9__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_9__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_8__iadd__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8__iadd__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__iadd__", 0); + + /* "petsc4py/PETSc/Vec.pyx":53 + * + * def __iadd__(self, other): + * return vec_iadd(self, other) # <<<<<<<<<<<<<< + * + * def __isub__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_iadd(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":52 + * # inplace binary operations + * + * def __iadd__(self, other): # <<<<<<<<<<<<<< + * return vec_iadd(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":55 + * return vec_iadd(self, other) + * + * def __isub__(self, other): # <<<<<<<<<<<<<< + * return vec_isub(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_11__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_11__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__isub__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_10__isub__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10__isub__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__isub__", 0); + + /* "petsc4py/PETSc/Vec.pyx":56 + * + * def __isub__(self, other): + * return vec_isub(self, other) # <<<<<<<<<<<<<< + * + * def __imul__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_isub(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":55 + * return vec_iadd(self, other) + * + * def __isub__(self, other): # <<<<<<<<<<<<<< + * return vec_isub(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__isub__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":58 + * return vec_isub(self, other) + * + * def __imul__(self, other): # <<<<<<<<<<<<<< + * return vec_imul(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_13__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_13__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__imul__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_12__imul__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_12__imul__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__imul__", 0); + + /* "petsc4py/PETSc/Vec.pyx":59 + * + * def __imul__(self, other): + * return vec_imul(self, other) # <<<<<<<<<<<<<< + * + * def __idiv__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_imul(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":58 + * return vec_isub(self, other) + * + * def __imul__(self, other): # <<<<<<<<<<<<<< + * return vec_imul(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__imul__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":61 + * return vec_imul(self, other) + * + * def __idiv__(self, other): # <<<<<<<<<<<<<< + * return vec_idiv(self, other) + * + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_15__idiv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_15__idiv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__idiv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_14__idiv__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_14__idiv__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__idiv__", 0); + + /* "petsc4py/PETSc/Vec.pyx":62 + * + * def __idiv__(self, other): + * return vec_idiv(self, other) # <<<<<<<<<<<<<< + * + * def __itruediv__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_idiv(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":61 + * return vec_imul(self, other) + * + * def __idiv__(self, other): # <<<<<<<<<<<<<< + * return vec_idiv(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__idiv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +/* "petsc4py/PETSc/Vec.pyx":64 + * return vec_idiv(self, other) + * + * def __itruediv__(self, other): # <<<<<<<<<<<<<< + * return vec_idiv(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_17__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_17__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__itruediv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_16__itruediv__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_16__itruediv__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__itruediv__", 0); + + /* "petsc4py/PETSc/Vec.pyx":65 + * + * def __itruediv__(self, other): + * return vec_idiv(self, other) # <<<<<<<<<<<<<< + * + * # binary operations + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_idiv(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":64 + * return vec_idiv(self, other) + * + * def __itruediv__(self, other): # <<<<<<<<<<<<<< + * return vec_idiv(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__itruediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":69 + * # binary operations + * + * def __add__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_add(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_19__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_19__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__add__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_18__add__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_18__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__add__", 0); + + /* "petsc4py/PETSc/Vec.pyx":70 + * + * def __add__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_add(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":71 + * def __add__(self, other): + * if isinstance(self, Vec): + * return vec_add(self, other) # <<<<<<<<<<<<<< + * else: + * return vec_radd(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 71, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_add(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":70 + * + * def __add__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_add(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":73 + * return vec_add(self, other) + * else: + * return vec_radd(other, self) # <<<<<<<<<<<<<< + * + * def __sub__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 73, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_radd(((struct PyPetscVecObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":69 + * # binary operations + * + * def __add__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_add(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__add__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":75 + * return vec_radd(other, self) + * + * def __sub__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_sub(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_21__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_21__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__sub__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_20__sub__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_20__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__sub__", 0); + + /* "petsc4py/PETSc/Vec.pyx":76 + * + * def __sub__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_sub(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":77 + * def __sub__(self, other): + * if isinstance(self, Vec): + * return vec_sub(self, other) # <<<<<<<<<<<<<< + * else: + * return vec_rsub(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 77, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_sub(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":76 + * + * def __sub__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_sub(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":79 + * return vec_sub(self, other) + * else: + * return vec_rsub(other, self) # <<<<<<<<<<<<<< + * + * def __mul__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 79, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_rsub(((struct PyPetscVecObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":75 + * return vec_radd(other, self) + * + * def __sub__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_sub(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__sub__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":81 + * return vec_rsub(other, self) + * + * def __mul__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_mul(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_23__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_23__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__mul__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_22__mul__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_22__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__mul__", 0); + + /* "petsc4py/PETSc/Vec.pyx":82 + * + * def __mul__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_mul(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":83 + * def __mul__(self, other): + * if isinstance(self, Vec): + * return vec_mul(self, other) # <<<<<<<<<<<<<< + * else: + * return vec_rmul(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 83, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_mul(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":82 + * + * def __mul__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_mul(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":85 + * return vec_mul(self, other) + * else: + * return vec_rmul(other, self) # <<<<<<<<<<<<<< + * + * def __div__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 85, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_rmul(((struct PyPetscVecObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":81 + * return vec_rsub(other, self) + * + * def __mul__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_mul(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__mul__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":87 + * return vec_rmul(other, self) + * + * def __div__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_div(self, other) + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_25__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_25__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__div__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_24__div__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_24__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__div__", 0); + + /* "petsc4py/PETSc/Vec.pyx":88 + * + * def __div__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_div(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":89 + * def __div__(self, other): + * if isinstance(self, Vec): + * return vec_div(self, other) # <<<<<<<<<<<<<< + * else: + * return vec_rdiv(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 89, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_div(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":88 + * + * def __div__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_div(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":91 + * return vec_div(self, other) + * else: + * return vec_rdiv(other, self) # <<<<<<<<<<<<<< + * + * def __truediv__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 91, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_rdiv(((struct PyPetscVecObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":87 + * return vec_rmul(other, self) + * + * def __div__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_div(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__div__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +/* "petsc4py/PETSc/Vec.pyx":93 + * return vec_rdiv(other, self) + * + * def __truediv__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_div(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_27__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_27__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__truediv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_26__truediv__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_26__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__truediv__", 0); + + /* "petsc4py/PETSc/Vec.pyx":94 + * + * def __truediv__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_div(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":95 + * def __truediv__(self, other): + * if isinstance(self, Vec): + * return vec_div(self, other) # <<<<<<<<<<<<<< + * else: + * return vec_rdiv(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 95, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_div(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":94 + * + * def __truediv__(self, other): + * if isinstance(self, Vec): # <<<<<<<<<<<<<< + * return vec_div(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":97 + * return vec_div(self, other) + * else: + * return vec_rdiv(other, self) # <<<<<<<<<<<<<< + * + * # + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 97, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_rdiv(((struct PyPetscVecObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":93 + * return vec_rdiv(other, self) + * + * def __truediv__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Vec): + * return vec_div(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__truediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":106 + * # return size + * + * def __getitem__(self, i): # <<<<<<<<<<<<<< + * return vec_getitem(self, i) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_29__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_29__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_28__getitem__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_i)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_28__getitem__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "petsc4py/PETSc/Vec.pyx":107 + * + * def __getitem__(self, i): + * return vec_getitem(self, i) # <<<<<<<<<<<<<< + * + * def __setitem__(self, i, v): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vec_getitem(__pyx_v_self, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":106 + * # return size + * + * def __getitem__(self, i): # <<<<<<<<<<<<<< + * return vec_getitem(self, i) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":109 + * return vec_getitem(self, i) + * + * def __setitem__(self, i, v): # <<<<<<<<<<<<<< + * vec_setitem(self, i, v) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_31__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_v); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_31__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_v) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_30__setitem__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_i), ((PyObject *)__pyx_v_v)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec_30__setitem__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_v) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "petsc4py/PETSc/Vec.pyx":110 + * + * def __setitem__(self, i, v): + * vec_setitem(self, i, v) # <<<<<<<<<<<<<< + * + * # buffer interface (PEP 3118) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vec_setitem(__pyx_v_self, __pyx_v_i, __pyx_v_v); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 110, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":109 + * return vec_getitem(self, i) + * + * def __setitem__(self, i, v): # <<<<<<<<<<<<<< + * vec_setitem(self, i, v) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":114 + * # buffer interface (PEP 3118) + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.acquirebuffer(view, flags) + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_3Vec_33__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_pw_8petsc4py_5PETSc_3Vec_33__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_32__getbuffer__(((struct PyPetscVecObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_view), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec_32__getbuffer__(struct PyPetscVecObject *__pyx_v_self, Py_buffer *__pyx_v_view, int __pyx_v_flags) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_view == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_view->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_view->obj); + + /* "petsc4py/PETSc/Vec.pyx":115 + * + * def __getbuffer__(self, Py_buffer *view, int flags): + * cdef _Vec_buffer buf = _Vec_buffer(self) # <<<<<<<<<<<<<< + * buf.acquirebuffer(view, flags) + * + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":116 + * def __getbuffer__(self, Py_buffer *view, int flags): + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.acquirebuffer(view, flags) # <<<<<<<<<<<<<< + * + * def __releasebuffer__(self, Py_buffer *view): + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_buf->__pyx_vtab)->acquirebuffer(__pyx_v_buf, __pyx_v_view, __pyx_v_flags); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(40, 116, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":114 + * # buffer interface (PEP 3118) + * + * def __getbuffer__(self, Py_buffer *view, int flags): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * buf.acquirebuffer(view, flags) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_view->obj != NULL) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_view->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_view->obj); + __Pyx_DECREF(__pyx_v_view->obj); __pyx_v_view->obj = 0; + } + __pyx_L2:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":118 + * buf.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = <_Vec_buffer>(view.obj) + * buf.releasebuffer(view) + */ + +/* Python wrapper */ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_3Vec_35__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view); /*proto*/ +static CYTHON_UNUSED void __pyx_pw_8petsc4py_5PETSc_3Vec_35__releasebuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__releasebuffer__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_3Vec_34__releasebuffer__(((struct PyPetscVecObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_view)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_3Vec_34__releasebuffer__(struct PyPetscVecObject *__pyx_v_self, Py_buffer *__pyx_v_view) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__releasebuffer__", 0); + + /* "petsc4py/PETSc/Vec.pyx":119 + * + * def __releasebuffer__(self, Py_buffer *view): + * cdef _Vec_buffer buf = <_Vec_buffer>(view.obj) # <<<<<<<<<<<<<< + * buf.releasebuffer(view) + * self # unused + */ + __pyx_t_1 = __pyx_v_view->obj; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":120 + * def __releasebuffer__(self, Py_buffer *view): + * cdef _Vec_buffer buf = <_Vec_buffer>(view.obj) + * buf.releasebuffer(view) # <<<<<<<<<<<<<< + * self # unused + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_buf->__pyx_vtab)->releasebuffer(__pyx_v_buf, __pyx_v_view); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(40, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":121 + * cdef _Vec_buffer buf = <_Vec_buffer>(view.obj) + * buf.releasebuffer(view) + * self # unused # <<<<<<<<<<<<<< + * + * # 'with' statement (PEP 343) + */ + ((void)__pyx_v_self); + + /* "petsc4py/PETSc/Vec.pyx":118 + * buf.acquirebuffer(view, flags) + * + * def __releasebuffer__(self, Py_buffer *view): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = <_Vec_buffer>(view.obj) + * buf.releasebuffer(view) + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_WriteUnraisable("petsc4py.PETSc.Vec.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Vec.pyx":125 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * self.set_attr('__buffer__', buf) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_37__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_36__enter__[] = "Vec.__enter__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_37__enter__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__enter__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__enter__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__enter__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_36__enter__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_36__enter__(struct PyPetscVecObject *__pyx_v_self) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__enter__", 0); + + /* "petsc4py/PETSc/Vec.pyx":126 + * + * def __enter__(self): + * cdef _Vec_buffer buf = _Vec_buffer(self) # <<<<<<<<<<<<<< + * self.set_attr('__buffer__', buf) + * return buf.enter() + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_buffer), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":127 + * def __enter__(self): + * cdef _Vec_buffer buf = _Vec_buffer(self) + * self.set_attr('__buffer__', buf) # <<<<<<<<<<<<<< + * return buf.enter() + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__"), ((PyObject *)__pyx_v_buf)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":128 + * cdef _Vec_buffer buf = _Vec_buffer(self) + * self.set_attr('__buffer__', buf) + * return buf.enter() # <<<<<<<<<<<<<< + * + * def __exit__(self, *exc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_buf->__pyx_vtab)->enter(__pyx_v_buf); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":125 + * # 'with' statement (PEP 343) + * + * def __enter__(self): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = _Vec_buffer(self) + * self.set_attr('__buffer__', buf) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__enter__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":130 + * return buf.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_39__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_38__exit__[] = "Vec.__exit__(self, *exc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_39__exit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_exc = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__exit__ (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__exit__", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_exc = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_38__exit__(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_exc); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_exc); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_38__exit__(struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_exc) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__exit__", 0); + + /* "petsc4py/PETSc/Vec.pyx":131 + * + * def __exit__(self, *exc): + * cdef _Vec_buffer buf = self.get_attr('__buffer__') # <<<<<<<<<<<<<< + * self.set_attr('__buffer__', None) + * return buf.exit() + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc__Vec_buffer))))) __PYX_ERR(40, 131, __pyx_L1_error) + __pyx_v_buf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":132 + * def __exit__(self, *exc): + * cdef _Vec_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) # <<<<<<<<<<<<<< + * return buf.exit() + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__buffer__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":133 + * cdef _Vec_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + * return buf.exit() # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer *)__pyx_v_buf->__pyx_vtab)->exit(__pyx_v_buf); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":130 + * return buf.enter() + * + * def __exit__(self, *exc): # <<<<<<<<<<<<<< + * cdef _Vec_buffer buf = self.get_attr('__buffer__') + * self.set_attr('__buffer__', None) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":137 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_41view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_40view[] = "Vec.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_41view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(40, 137, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 137, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(40, 137, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_40view(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_40view(struct PyPetscVecObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Vec.pyx":138 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( VecView(self.vec, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":139 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( VecView(self.vec, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Vec.pyx":140 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( VecView(self.vec, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecView(__pyx_v_self->vec, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 140, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":137 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":142 + * CHKERR( VecView(self.vec, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&self.vec) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_43destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_42destroy[] = "Vec.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_43destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_42destroy(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_42destroy(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Vec.pyx":143 + * + * def destroy(self): + * CHKERR( VecDestroy(&self.vec) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_self->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":144 + * def destroy(self): + * CHKERR( VecDestroy(&self.vec) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":142 + * CHKERR( VecView(self.vec, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&self.vec) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":146 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscVec newvec = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_45create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_44create[] = "Vec.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_45create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(40, 146, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 146, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_44create(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_44create(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Vec.pyx":147 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 147, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":148 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * CHKERR( VecCreate(ccomm, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":149 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreate(__pyx_v_ccomm, (&__pyx_v_newvec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":150 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":151 + * CHKERR( VecCreate(ccomm, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * return self # <<<<<<<<<<<<<< + * + * def setType(self, vec_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":146 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscVec newvec = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":153 + * return self + * + * def setType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_47setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_46setType[] = "Vec.setType(self, vec_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_47setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vec_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(40, 153, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 153, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_46setType(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_46setType(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vec_type) { + VecType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_vec_type); + + /* "petsc4py/PETSc/Vec.pyx":154 + * + * def setType(self, vec_type): + * cdef PetscVecType cval = NULL # <<<<<<<<<<<<<< + * vec_type = str2bytes(vec_type, &cval) + * CHKERR( VecSetType(self.vec, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Vec.pyx":155 + * def setType(self, vec_type): + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( VecSetType(self.vec, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_vec_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_vec_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":156 + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + * CHKERR( VecSetType(self.vec, cval) ) # <<<<<<<<<<<<<< + * + * def setSizes(self, size, bsize=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetType(__pyx_v_self->vec, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 156, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":153 + * return self + * + * def setType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vec_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":158 + * CHKERR( VecSetType(self.vec, cval) ) + * + * def setSizes(self, size, bsize=None): # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_49setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_48setSizes[] = "Vec.setSizes(self, size, bsize=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_49setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSizes") < 0)) __PYX_ERR(40, 158, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSizes", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 158, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_48setSizes(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_48setSizes(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize) { + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSizes", 0); + + /* "petsc4py/PETSc/Vec.pyx":159 + * + * def setSizes(self, size, bsize=None): + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * CHKERR( VecSetSizes(self.vec, n, N) ) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":160 + * def setSizes(self, size, bsize=None): + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * CHKERR( VecSetSizes(self.vec, n, N) ) + * if bs != PETSC_DECIDE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 160, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":161 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * CHKERR( VecSetSizes(self.vec, n, N) ) # <<<<<<<<<<<<<< + * if bs != PETSC_DECIDE: + * CHKERR( VecSetBlockSize(self.vec, bs) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetSizes(__pyx_v_self->vec, __pyx_v_n, __pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 161, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":162 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * CHKERR( VecSetSizes(self.vec, n, N) ) + * if bs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * + */ + __pyx_t_3 = ((__pyx_v_bs != PETSC_DECIDE) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":163 + * CHKERR( VecSetSizes(self.vec, n, N) ) + * if bs != PETSC_DECIDE: + * CHKERR( VecSetBlockSize(self.vec, bs) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetBlockSize(__pyx_v_self->vec, __pyx_v_bs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":162 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * CHKERR( VecSetSizes(self.vec, n, N) ) + * if bs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":158 + * CHKERR( VecSetType(self.vec, cval) ) + * + * def setSizes(self, size, bsize=None): # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":167 + * # + * + * def createSeq(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscInt bs=0, n=0, N=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_51createSeq(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_50createSeq[] = "Vec.createSeq(self, size, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_51createSeq(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSeq (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSeq") < 0)) __PYX_ERR(40, 167, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSeq", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 167, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createSeq", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_50createSeq(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_50createSeq(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSeq", 0); + + /* "petsc4py/PETSc/Vec.pyx":168 + * + * def createSeq(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 168, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":169 + * def createSeq(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":170 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(40, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":171 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 171, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":172 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm,&newvec) ) + */ + __pyx_t_4 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_4) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":173 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * CHKERR( VecCreate(ccomm,&newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":174 + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm,&newvec) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreate(__pyx_v_ccomm, (&__pyx_v_newvec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 174, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":175 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm,&newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECSEQ) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetSizes(__pyx_v_newvec, __pyx_v_n, __pyx_v_N)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 175, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":176 + * CHKERR( VecCreate(ccomm,&newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetType(newvec, VECSEQ) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetBlockSize(__pyx_v_newvec, __pyx_v_bs)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 176, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":177 + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECSEQ) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetType(__pyx_v_newvec, VECSEQ)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":178 + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECSEQ) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":179 + * CHKERR( VecSetType(newvec, VECSEQ) ) + * PetscCLEAR(self.obj); self.vec = newvec + * return self # <<<<<<<<<<<<<< + * + * def createMPI(self, size, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":167 + * # + * + * def createSeq(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscInt bs=0, n=0, N=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createSeq", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":181 + * return self + * + * def createMPI(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_53createMPI(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_52createMPI[] = "Vec.createMPI(self, size, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_53createMPI(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMPI (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createMPI") < 0)) __PYX_ERR(40, 181, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createMPI", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 181, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createMPI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_52createMPI(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_52createMPI(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMPI", 0); + + /* "petsc4py/PETSc/Vec.pyx":182 + * + * def createMPI(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 182, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":183 + * def createMPI(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":184 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(40, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":185 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":186 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) + */ + __pyx_t_4 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_4) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":187 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * CHKERR( VecCreate(ccomm, &newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":188 + * if bs == PETSC_DECIDE: bs = 1 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreate(__pyx_v_ccomm, (&__pyx_v_newvec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 188, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":189 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreate(ccomm, &newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECMPI) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetSizes(__pyx_v_newvec, __pyx_v_n, __pyx_v_N)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 189, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":190 + * CHKERR( VecCreate(ccomm, &newvec) ) + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) # <<<<<<<<<<<<<< + * CHKERR( VecSetType(newvec, VECMPI) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetBlockSize(__pyx_v_newvec, __pyx_v_bs)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 190, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":191 + * CHKERR( VecSetSizes(newvec, n, N) ) + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECMPI) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetType(__pyx_v_newvec, VECMPI)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 191, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":192 + * CHKERR( VecSetBlockSize(newvec, bs) ) + * CHKERR( VecSetType(newvec, VECMPI) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":193 + * CHKERR( VecSetType(newvec, VECMPI) ) + * PetscCLEAR(self.obj); self.vec = newvec + * return self # <<<<<<<<<<<<<< + * + * def createWithArray(self, array, size=None, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":181 + * return self + * + * def createMPI(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createMPI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":195 + * return self + * + * def createWithArray(self, array, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_55createWithArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_54createWithArray[] = "Vec.createWithArray(self, array, size=None, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_55createWithArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_array = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createWithArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createWithArray") < 0)) __PYX_ERR(40, 195, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_array = values[0]; + __pyx_v_size = values[1]; + __pyx_v_bsize = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createWithArray", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 195, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createWithArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_54createWithArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_array, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_54createWithArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_sa; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + MPI_Comm __pyx_t_6; + int __pyx_t_7; + PetscErrorCode __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createWithArray", 0); + __Pyx_INCREF(__pyx_v_array); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":196 + * + * def createWithArray(self, array, size=None, bsize=None, comm=None): + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *sa=NULL + * array = iarray_s(array, &na, &sa) + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":197 + * def createWithArray(self, array, size=None, bsize=None, comm=None): + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL # <<<<<<<<<<<<<< + * array = iarray_s(array, &na, &sa) + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + */ + __pyx_v_sa = NULL; + + /* "petsc4py/PETSc/Vec.pyx":198 + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + * array = iarray_s(array, &na, &sa) # <<<<<<<<<<<<<< + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_array, (&__pyx_v_na), (&__pyx_v_sa))); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":199 + * cdef PetscScalar *sa=NULL + * array = iarray_s(array, &na, &sa) + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_t_2 = (__pyx_v_size == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_5); + __pyx_t_5 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":200 + * array = iarray_s(array, &na, &sa) + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 200, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_6; + + /* "petsc4py/PETSc/Vec.pyx":201 + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":202 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(40, 202, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":203 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":204 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + */ + __pyx_t_3 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":205 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_3 = ((__pyx_v_na < __pyx_v_n) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Vec.pyx":207 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_4 = 0; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":206 + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % # <<<<<<<<<<<<<< + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Vec.pyx":205 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_9, 0, 0, 0); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __PYX_ERR(40, 205, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":208 + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,sa,&newvec) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":209 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,sa,&newvec) ) + * else: + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_7 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 209, __pyx_L1_error) + __pyx_t_3 = ((__pyx_t_7 == 1) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":210 + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,sa,&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,sa,&newvec) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, __pyx_v_sa, (&__pyx_v_newvec))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 210, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":209 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,sa,&newvec) ) + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/Vec.pyx":212 + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,sa,&newvec) ) + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,sa,&newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) + */ + /*else*/ { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPIWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_sa, (&__pyx_v_newvec))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 212, __pyx_L1_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/Vec.pyx":213 + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,sa,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * self.set_attr('__array__', array) + * return self + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":214 + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,sa,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_9 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_array); if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Vec.pyx":215 + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) + * return self # <<<<<<<<<<<<<< + * + * def createCUDAWithArrays(self, cpuarray=None, cudahandle=None, size=None, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":195 + * return self + * + * def createWithArray(self, array, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createWithArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":217 + * return self + * + * def createCUDAWithArrays(self, cpuarray=None, cudahandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Vec`, a VECCUDA with user provided + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_57createCUDAWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_56createCUDAWithArrays[] = "Vec.createCUDAWithArrays(self, cpuarray=None, cudahandle=None, size=None, bsize=None, comm=None)\n\n Returns an instance of :class:`Vec`, a VECCUDA with user provided\n memory spaces for CPU and GPU arrays.\n\n :arg cpuarray: A :class:`numpy.ndarray`. Will be lazily allocated if\n *None*.\n :arg cudahandle: Address of the array on the GPU. Will be lazily\n allocated if *None*.\n :arg size: A :class:`int` denoting the size of the Vec.\n :arg bsize: A :class:`int` denoting the block size.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_57createCUDAWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cpuarray = 0; + PyObject *__pyx_v_cudahandle = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCUDAWithArrays (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cpuarray,&__pyx_n_s_cudahandle,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cpuarray); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cudahandle); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createCUDAWithArrays") < 0)) __PYX_ERR(40, 217, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_cpuarray = values[0]; + __pyx_v_cudahandle = values[1]; + __pyx_v_size = values[2]; + __pyx_v_bsize = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createCUDAWithArrays", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 217, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createCUDAWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_56createCUDAWithArrays(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_cpuarray, __pyx_v_cudahandle, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_56createCUDAWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_cudahandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_sa; + PetscScalar *__pyx_v_gpuarray; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + Py_uintptr_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + MPI_Comm __pyx_t_7; + int __pyx_t_8; + PetscErrorCode __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCUDAWithArrays", 0); + __Pyx_INCREF(__pyx_v_cpuarray); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":229 + * :arg bsize: A :class:`int` denoting the block size. + * """ + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":230 + * """ + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *gpuarray = NULL + * if cudahandle: + */ + __pyx_v_sa = NULL; + + /* "petsc4py/PETSc/Vec.pyx":231 + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL # <<<<<<<<<<<<<< + * if cudahandle: + * gpuarray = (cudahandle) + */ + __pyx_v_gpuarray = NULL; + + /* "petsc4py/PETSc/Vec.pyx":232 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + * if cudahandle: # <<<<<<<<<<<<<< + * gpuarray = (cudahandle) + * if cpuarray is not None: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_cudahandle); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 232, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":233 + * cdef PetscScalar *gpuarray = NULL + * if cudahandle: + * gpuarray = (cudahandle) # <<<<<<<<<<<<<< + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) + */ + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_v_cudahandle); if (unlikely((__pyx_t_2 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 233, __pyx_L1_error) + __pyx_v_gpuarray = ((PetscScalar *)((Py_uintptr_t)__pyx_t_2)); + + /* "petsc4py/PETSc/Vec.pyx":232 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + * if cudahandle: # <<<<<<<<<<<<<< + * gpuarray = (cudahandle) + * if cpuarray is not None: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":234 + * if cudahandle: + * gpuarray = (cudahandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":235 + * gpuarray = (cudahandle) + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) # <<<<<<<<<<<<<< + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_cpuarray, (&__pyx_v_na), (&__pyx_v_sa))); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_cpuarray, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":234 + * if cudahandle: + * gpuarray = (cudahandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":237 + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_t_3 = (__pyx_v_size == Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":238 + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 238, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/Vec.pyx":239 + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":240 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(40, 240, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":241 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 241, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":242 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + */ + __pyx_t_1 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_1) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":243 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_1 = ((__pyx_v_na < __pyx_v_n) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Vec.pyx":245 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":244 + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % # <<<<<<<<<<<<<< + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "petsc4py/PETSc/Vec.pyx":243 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(40, 243, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":246 + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqCUDAWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":247 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqCUDAWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_8 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 247, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_8 == 1) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":248 + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqCUDAWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPICUDAWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqCUDAWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, __pyx_v_sa, __pyx_v_gpuarray, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 248, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":247 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqCUDAWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Vec.pyx":250 + * CHKERR( VecCreateSeqCUDAWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + * CHKERR( VecCreateMPICUDAWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * + */ + /*else*/ { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPICUDAWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_sa, __pyx_v_gpuarray, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 250, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/Vec.pyx":251 + * else: + * CHKERR( VecCreateMPICUDAWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * + * if cpuarray is not None: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":253 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":254 + * + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_10 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_cpuarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "petsc4py/PETSc/Vec.pyx":253 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + } + + /* "petsc4py/PETSc/Vec.pyx":255 + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) + * return self # <<<<<<<<<<<<<< + * + * def createHIPWithArrays(self, cpuarray=None, hiphandle=None, size=None, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":217 + * return self + * + * def createCUDAWithArrays(self, cpuarray=None, cudahandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Vec`, a VECCUDA with user provided + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createCUDAWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cpuarray); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":257 + * return self + * + * def createHIPWithArrays(self, cpuarray=None, hiphandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Vec`, a VECHIP with user provided + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_59createHIPWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_58createHIPWithArrays[] = "Vec.createHIPWithArrays(self, cpuarray=None, hiphandle=None, size=None, bsize=None, comm=None)\n\n Returns an instance of :class:`Vec`, a VECHIP with user provided\n memory spaces for CPU and GPU arrays.\n\n :arg cpuarray: A :class:`numpy.ndarray`. Will be lazily allocated if\n *None*.\n :arg hiphandle: Address of the array on the GPU. Will be lazily\n allocated if *None*.\n :arg size: A :class:`int` denoting the size of the Vec.\n :arg bsize: A :class:`int` denoting the block size.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_59createHIPWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cpuarray = 0; + PyObject *__pyx_v_hiphandle = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createHIPWithArrays (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cpuarray,&__pyx_n_s_hiphandle,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cpuarray); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hiphandle); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createHIPWithArrays") < 0)) __PYX_ERR(40, 257, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_cpuarray = values[0]; + __pyx_v_hiphandle = values[1]; + __pyx_v_size = values[2]; + __pyx_v_bsize = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createHIPWithArrays", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 257, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createHIPWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_58createHIPWithArrays(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_cpuarray, __pyx_v_hiphandle, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_58createHIPWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_hiphandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_sa; + PetscScalar *__pyx_v_gpuarray; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + Py_uintptr_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + MPI_Comm __pyx_t_7; + int __pyx_t_8; + PetscErrorCode __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createHIPWithArrays", 0); + __Pyx_INCREF(__pyx_v_cpuarray); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":269 + * :arg bsize: A :class:`int` denoting the block size. + * """ + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":270 + * """ + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *gpuarray = NULL + * if hiphandle: + */ + __pyx_v_sa = NULL; + + /* "petsc4py/PETSc/Vec.pyx":271 + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL # <<<<<<<<<<<<<< + * if hiphandle: + * gpuarray = (hiphandle) + */ + __pyx_v_gpuarray = NULL; + + /* "petsc4py/PETSc/Vec.pyx":272 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + * if hiphandle: # <<<<<<<<<<<<<< + * gpuarray = (hiphandle) + * if cpuarray is not None: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hiphandle); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 272, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":273 + * cdef PetscScalar *gpuarray = NULL + * if hiphandle: + * gpuarray = (hiphandle) # <<<<<<<<<<<<<< + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) + */ + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_v_hiphandle); if (unlikely((__pyx_t_2 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 273, __pyx_L1_error) + __pyx_v_gpuarray = ((PetscScalar *)((Py_uintptr_t)__pyx_t_2)); + + /* "petsc4py/PETSc/Vec.pyx":272 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *gpuarray = NULL + * if hiphandle: # <<<<<<<<<<<<<< + * gpuarray = (hiphandle) + * if cpuarray is not None: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":274 + * if hiphandle: + * gpuarray = (hiphandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":275 + * gpuarray = (hiphandle) + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) # <<<<<<<<<<<<<< + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_cpuarray, (&__pyx_v_na), (&__pyx_v_sa))); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_cpuarray, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":274 + * if hiphandle: + * gpuarray = (hiphandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":277 + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_t_3 = (__pyx_v_size == Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":278 + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 278, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/Vec.pyx":279 + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":280 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(40, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":281 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":282 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + */ + __pyx_t_1 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_1) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":283 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_1 = ((__pyx_v_na < __pyx_v_n) != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Vec.pyx":285 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":284 + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % # <<<<<<<<<<<<<< + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "petsc4py/PETSc/Vec.pyx":283 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(40, 283, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":286 + * "array size %d and vector local size %d block size %d" % + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqHIPWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":287 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqHIPWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_8 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 287, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_8 == 1) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":288 + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqHIPWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPIHIPWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqHIPWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, __pyx_v_sa, __pyx_v_gpuarray, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 288, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":287 + * (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqHIPWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Vec.pyx":290 + * CHKERR( VecCreateSeqHIPWithArrays(ccomm,bs,N,sa,gpuarray,&newvec) ) + * else: + * CHKERR( VecCreateMPIHIPWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * + */ + /*else*/ { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPIHIPWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_sa, __pyx_v_gpuarray, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 290, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/Vec.pyx":291 + * else: + * CHKERR( VecCreateMPIHIPWithArrays(ccomm,bs,n,N,sa,gpuarray,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * + * if cpuarray is not None: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":293 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":294 + * + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_10 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_cpuarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "petsc4py/PETSc/Vec.pyx":293 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + } + + /* "petsc4py/PETSc/Vec.pyx":295 + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) + * return self # <<<<<<<<<<<<<< + * + * def createViennaCLWithArrays(self, cpuarray=None, viennaclvechandle=None, size=None, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":257 + * return self + * + * def createHIPWithArrays(self, cpuarray=None, hiphandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Vec`, a VECHIP with user provided + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createHIPWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cpuarray); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":297 + * return self + * + * def createViennaCLWithArrays(self, cpuarray=None, viennaclvechandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance :class:`Vec`, a VECVIENNACL with user provided memory + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_61createViennaCLWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_60createViennaCLWithArrays[] = "Vec.createViennaCLWithArrays(self, cpuarray=None, viennaclvechandle=None, size=None, bsize=None, comm=None)\n\n Returns an instance :class:`Vec`, a VECVIENNACL with user provided memory\n spaces for CPU and GPU arrays.\n\n :arg cpuarray: A :class:`numpy.ndarray`. Will be lazily allocated if\n *None*.\n :arg viennaclvechandle: Address of the array on the GPU. Will be lazily\n allocated if *None*.\n :arg size: A :class:`int` denoting the size of the Vec.\n :arg size: A :class:`int` denoting the block size.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_61createViennaCLWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cpuarray = 0; + PyObject *__pyx_v_viennaclvechandle = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createViennaCLWithArrays (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cpuarray,&__pyx_n_s_viennaclvechandle,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cpuarray); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viennaclvechandle); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createViennaCLWithArrays") < 0)) __PYX_ERR(40, 297, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_cpuarray = values[0]; + __pyx_v_viennaclvechandle = values[1]; + __pyx_v_size = values[2]; + __pyx_v_bsize = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createViennaCLWithArrays", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 297, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createViennaCLWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_60createViennaCLWithArrays(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_cpuarray, __pyx_v_viennaclvechandle, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_60createViennaCLWithArrays(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_cpuarray, PyObject *__pyx_v_viennaclvechandle, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_sa; + PetscScalar *__pyx_v_vclvec; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + Py_uintptr_t __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + MPI_Comm __pyx_t_7; + int __pyx_t_8; + PetscErrorCode __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createViennaCLWithArrays", 0); + __Pyx_INCREF(__pyx_v_cpuarray); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":309 + * :arg size: A :class:`int` denoting the block size. + * """ + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *vclvec = NULL + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":310 + * """ + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar *vclvec = NULL + * if viennaclvechandle: + */ + __pyx_v_sa = NULL; + + /* "petsc4py/PETSc/Vec.pyx":311 + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *vclvec = NULL # <<<<<<<<<<<<<< + * if viennaclvechandle: + * vclvec = (viennaclvechandle) + */ + __pyx_v_vclvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":312 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *vclvec = NULL + * if viennaclvechandle: # <<<<<<<<<<<<<< + * vclvec = (viennaclvechandle) + * if cpuarray is not None: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_viennaclvechandle); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 312, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":313 + * cdef PetscScalar *vclvec = NULL + * if viennaclvechandle: + * vclvec = (viennaclvechandle) # <<<<<<<<<<<<<< + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) + */ + __pyx_t_2 = __Pyx_PyInt_As_size_t(__pyx_v_viennaclvechandle); if (unlikely((__pyx_t_2 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 313, __pyx_L1_error) + __pyx_v_vclvec = ((PetscScalar *)((Py_uintptr_t)__pyx_t_2)); + + /* "petsc4py/PETSc/Vec.pyx":312 + * cdef PetscScalar *sa=NULL + * cdef PetscScalar *vclvec = NULL + * if viennaclvechandle: # <<<<<<<<<<<<<< + * vclvec = (viennaclvechandle) + * if cpuarray is not None: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":314 + * if viennaclvechandle: + * vclvec = (viennaclvechandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":315 + * vclvec = (viennaclvechandle) + * if cpuarray is not None: + * cpuarray = iarray_s(cpuarray, &na, &sa) # <<<<<<<<<<<<<< + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_cpuarray, (&__pyx_v_na), (&__pyx_v_sa))); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_cpuarray, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":314 + * if viennaclvechandle: + * vclvec = (viennaclvechandle) + * if cpuarray is not None: # <<<<<<<<<<<<<< + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":317 + * cpuarray = iarray_s(cpuarray, &na, &sa) + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_t_3 = (__pyx_v_size == Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":318 + * + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 318, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/Vec.pyx":319 + * if size is None: size = (toInt(na), toInt(PETSC_DECIDE)) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":320 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(40, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":321 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 321, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":322 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_1 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_1) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":323 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + */ + __pyx_t_1 = ((__pyx_v_na < __pyx_v_n) != 0); + if (unlikely(__pyx_t_1)) { + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_4); + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(40, 323, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":324 + * if bs == PETSC_DECIDE: bs = 1 + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqViennaCLWithArrays(ccomm,bs,N,sa,vclvec,&newvec) ) + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":325 + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqViennaCLWithArrays(ccomm,bs,N,sa,vclvec,&newvec) ) + * else: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_8 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 325, __pyx_L1_error) + __pyx_t_1 = ((__pyx_t_8 == 1) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":326 + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqViennaCLWithArrays(ccomm,bs,N,sa,vclvec,&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPIViennaCLWithArrays(ccomm,bs,n,N,sa,vclvec,&newvec) ) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqViennaCLWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, __pyx_v_sa, __pyx_v_vclvec, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 326, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":325 + * if na < n: raise ValueError( "array size %d and vector local size %d block size %d" % (toInt(na), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqViennaCLWithArrays(ccomm,bs,N,sa,vclvec,&newvec) ) + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Vec.pyx":328 + * CHKERR( VecCreateSeqViennaCLWithArrays(ccomm,bs,N,sa,vclvec,&newvec) ) + * else: + * CHKERR( VecCreateMPIViennaCLWithArrays(ccomm,bs,n,N,sa,vclvec,&newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * + */ + /*else*/ { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPIViennaCLWithArrays(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_sa, __pyx_v_vclvec, (&__pyx_v_newvec))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 328, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/Vec.pyx":329 + * else: + * CHKERR( VecCreateMPIViennaCLWithArrays(ccomm,bs,n,N,sa,vclvec,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * + * if cpuarray is not None: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":331 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + __pyx_t_1 = (__pyx_v_cpuarray != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":332 + * + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_10 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_cpuarray); if (unlikely(!__pyx_t_10)) __PYX_ERR(40, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "petsc4py/PETSc/Vec.pyx":331 + * PetscCLEAR(self.obj); self.vec = newvec + * + * if cpuarray is not None: # <<<<<<<<<<<<<< + * self.set_attr('__array__', cpuarray) + * return self + */ + } + + /* "petsc4py/PETSc/Vec.pyx":333 + * if cpuarray is not None: + * self.set_attr('__array__', cpuarray) + * return self # <<<<<<<<<<<<<< + * + * def createWithDLPack(self, object dltensor, size=None, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":297 + * return self + * + * def createViennaCLWithArrays(self, cpuarray=None, viennaclvechandle=None, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance :class:`Vec`, a VECVIENNACL with user provided memory + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createViennaCLWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cpuarray); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":335 + * return self + * + * def createWithDLPack(self, object dltensor, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance :class:`Vec`, a PETSc vector from a DLPack object + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_63createWithDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_62createWithDLPack[] = "Vec.createWithDLPack(self, dltensor, size=None, bsize=None, comm=None)\n\n Returns an instance :class:`Vec`, a PETSc vector from a DLPack object\n sharing the same memory.\n This operation does not modify the storage of the original tensor and\n should be used with contiguous tensors only. If the tensor is stored in\n row-major order (e.g. PyTorch tensors), the resulting vector will look\n like an unrolled tensor using row-major order.\n\n :arg dltensor: An object with a __dlpack__ method or a DLPack tensor object (for backward compatibility)\n :arg size: A :class:`int` denoting the size of the Vec.\n :arg bsize: A :class:`int` denoting the block size.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_63createWithDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dltensor = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createWithDLPack (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dltensor,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dltensor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createWithDLPack") < 0)) __PYX_ERR(40, 335, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dltensor = values[0]; + __pyx_v_size = values[1]; + __pyx_v_bsize = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createWithDLPack", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 335, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createWithDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_62createWithDLPack(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_dltensor, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_62createWithDLPack(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_dltensor, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_ptr; + int __pyx_v_bits; + PetscInt __pyx_v_nz; + int64_t __pyx_v_ndim; + int64_t *__pyx_v_shape; + int64_t *__pyx_v_strides; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + CYTHON_UNUSED __pyx_t_8petsc4py_5PETSc_DLContext *__pyx_v_ctx; + PyObject *__pyx_v_s = NULL; + Vec __pyx_v_newvec; + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __pyx_v_dltype; + int64_t *__pyx_v_shape_arr; + int64_t *__pyx_v_strides_arr; + PyObject *__pyx_v_s1 = 0; + PyObject *__pyx_v_s2 = 0; + int64_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + void *__pyx_t_6; + uint8_t __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + int64_t *__pyx_t_10; + int64_t *__pyx_t_11; + int64_t *__pyx_t_12; + PetscInt __pyx_t_13; + int __pyx_t_14; + PetscErrorCode __pyx_t_15; + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __pyx_t_16; + int64_t __pyx_t_17; + int64_t __pyx_t_18; + int64_t __pyx_t_19; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createWithDLPack", 0); + __Pyx_INCREF(__pyx_v_dltensor); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":348 + * :arg bsize: A :class:`int` denoting the block size. + * """ + * cdef DLManagedTensor* ptr = NULL # <<<<<<<<<<<<<< + * cdef int bits = 0 + * cdef PetscInt nz = 1 + */ + __pyx_v_ptr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":349 + * """ + * cdef DLManagedTensor* ptr = NULL + * cdef int bits = 0 # <<<<<<<<<<<<<< + * cdef PetscInt nz = 1 + * cdef int64_t ndim = 0 + */ + __pyx_v_bits = 0; + + /* "petsc4py/PETSc/Vec.pyx":350 + * cdef DLManagedTensor* ptr = NULL + * cdef int bits = 0 + * cdef PetscInt nz = 1 # <<<<<<<<<<<<<< + * cdef int64_t ndim = 0 + * cdef int64_t* shape = NULL + */ + __pyx_v_nz = 1; + + /* "petsc4py/PETSc/Vec.pyx":351 + * cdef int bits = 0 + * cdef PetscInt nz = 1 + * cdef int64_t ndim = 0 # <<<<<<<<<<<<<< + * cdef int64_t* shape = NULL + * cdef int64_t* strides = NULL + */ + __pyx_v_ndim = 0; + + /* "petsc4py/PETSc/Vec.pyx":352 + * cdef PetscInt nz = 1 + * cdef int64_t ndim = 0 + * cdef int64_t* shape = NULL # <<<<<<<<<<<<<< + * cdef int64_t* strides = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_shape = NULL; + + /* "petsc4py/PETSc/Vec.pyx":353 + * cdef int64_t ndim = 0 + * cdef int64_t* shape = NULL + * cdef int64_t* strides = NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 0,n = 0,N = 0 + */ + __pyx_v_strides = NULL; + + /* "petsc4py/PETSc/Vec.pyx":354 + * cdef int64_t* shape = NULL + * cdef int64_t* strides = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs = 0,n = 0,N = 0 + * cdef DLContext* ctx = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 354, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":355 + * cdef int64_t* strides = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 0,n = 0,N = 0 # <<<<<<<<<<<<<< + * cdef DLContext* ctx = NULL + * + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":356 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs = 0,n = 0,N = 0 + * cdef DLContext* ctx = NULL # <<<<<<<<<<<<<< + * + * if not PyCapsule_CheckExact(dltensor): + */ + __pyx_v_ctx = NULL; + + /* "petsc4py/PETSc/Vec.pyx":358 + * cdef DLContext* ctx = NULL + * + * if not PyCapsule_CheckExact(dltensor): # <<<<<<<<<<<<<< + * dltensor = dltensor.__dlpack__() + * + */ + __pyx_t_2 = ((!(PyCapsule_CheckExact(__pyx_v_dltensor) != 0)) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":359 + * + * if not PyCapsule_CheckExact(dltensor): + * dltensor = dltensor.__dlpack__() # <<<<<<<<<<<<<< + * + * if PyCapsule_IsValid(dltensor, 'dltensor'): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_dltensor, __pyx_n_s_dlpack); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_dltensor, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":358 + * cdef DLContext* ctx = NULL + * + * if not PyCapsule_CheckExact(dltensor): # <<<<<<<<<<<<<< + * dltensor = dltensor.__dlpack__() + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":361 + * dltensor = dltensor.__dlpack__() + * + * if PyCapsule_IsValid(dltensor, 'dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * bits = ptr.dl_tensor.dtype.bits + */ + __pyx_t_2 = (PyCapsule_IsValid(__pyx_v_dltensor, ((char const *)"dltensor")) != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":362 + * + * if PyCapsule_IsValid(dltensor, 'dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') # <<<<<<<<<<<<<< + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): + */ + __pyx_t_6 = PyCapsule_GetPointer(__pyx_v_dltensor, ((char const *)"dltensor")); if (unlikely(__pyx_t_6 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(40, 362, __pyx_L1_error) + __pyx_v_ptr = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)__pyx_t_6); + + /* "petsc4py/PETSc/Vec.pyx":363 + * if PyCapsule_IsValid(dltensor, 'dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * bits = ptr.dl_tensor.dtype.bits # <<<<<<<<<<<<<< + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + */ + __pyx_t_7 = __pyx_v_ptr->dl_tensor.dtype.bits; + __pyx_v_bits = __pyx_t_7; + + /* "petsc4py/PETSc/Vec.pyx":364 + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): # <<<<<<<<<<<<<< + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + */ + __pyx_t_2 = ((__pyx_v_bits != (8 * (sizeof(PetscScalar)))) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":365 + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) # <<<<<<<<<<<<<< + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Tensor_dtype_does_not_match_PETS, __pyx_n_s_format); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_convert__to_py_struct____pyx_t_8petsc4py_5PETSc_DLDataType(__pyx_v_ptr->dl_tensor.dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(40, 365, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":364 + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): # <<<<<<<<<<<<<< + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + */ + } + + /* "petsc4py/PETSc/Vec.pyx":366 + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim # <<<<<<<<<<<<<< + * shape = ptr.dl_tensor.shape + * for s in shape[:ndim]: + */ + __pyx_t_9 = __pyx_v_ptr->dl_tensor.ndim; + __pyx_v_ndim = __pyx_t_9; + + /* "petsc4py/PETSc/Vec.pyx":367 + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape # <<<<<<<<<<<<<< + * for s in shape[:ndim]: + * nz = nz*s + */ + __pyx_t_10 = __pyx_v_ptr->dl_tensor.shape; + __pyx_v_shape = __pyx_t_10; + + /* "petsc4py/PETSc/Vec.pyx":368 + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape + * for s in shape[:ndim]: # <<<<<<<<<<<<<< + * nz = nz*s + * strides = ptr.dl_tensor.strides + */ + __pyx_t_11 = (__pyx_v_shape + __pyx_v_ndim); + for (__pyx_t_12 = __pyx_v_shape; __pyx_t_12 < __pyx_t_11; __pyx_t_12++) { + __pyx_t_10 = __pyx_t_12; + __pyx_t_4 = __Pyx_PyInt_From_int64_t((__pyx_t_10[0])); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":369 + * shape = ptr.dl_tensor.shape + * for s in shape[:ndim]: + * nz = nz*s # <<<<<<<<<<<<<< + * strides = ptr.dl_tensor.strides + * PyCapsule_SetName(dltensor, 'used_dltensor') + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_nz); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_v_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_13 = __Pyx_PyInt_As_PetscInt(__pyx_t_3); if (unlikely((__pyx_t_13 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(40, 369, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_nz = __pyx_t_13; + } + + /* "petsc4py/PETSc/Vec.pyx":370 + * for s in shape[:ndim]: + * nz = nz*s + * strides = ptr.dl_tensor.strides # <<<<<<<<<<<<<< + * PyCapsule_SetName(dltensor, 'used_dltensor') + * else: + */ + __pyx_t_10 = __pyx_v_ptr->dl_tensor.strides; + __pyx_v_strides = __pyx_t_10; + + /* "petsc4py/PETSc/Vec.pyx":371 + * nz = nz*s + * strides = ptr.dl_tensor.strides + * PyCapsule_SetName(dltensor, 'used_dltensor') # <<<<<<<<<<<<<< + * else: + * raise ValueError("Expect a dltensor field, pycapsule.PyCapsule can only be consumed once") + */ + __pyx_t_9 = PyCapsule_SetName(__pyx_v_dltensor, ((char const *)"used_dltensor")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(40, 371, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":361 + * dltensor = dltensor.__dlpack__() + * + * if PyCapsule_IsValid(dltensor, 'dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * bits = ptr.dl_tensor.dtype.bits + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":373 + * PyCapsule_SetName(dltensor, 'used_dltensor') + * else: + * raise ValueError("Expect a dltensor field, pycapsule.PyCapsule can only be consumed once") # <<<<<<<<<<<<<< + * if size is None: size = (toInt(nz), toInt(PETSC_DECIDE)) + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__31, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(40, 373, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Vec.pyx":374 + * else: + * raise ValueError("Expect a dltensor field, pycapsule.PyCapsule can only be consumed once") + * if size is None: size = (toInt(nz), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_t_2 = (__pyx_v_size == Py_None); + __pyx_t_14 = (__pyx_t_2 != 0); + if (__pyx_t_14) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nz); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_5); + __pyx_t_5 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":375 + * raise ValueError("Expect a dltensor field, pycapsule.PyCapsule can only be consumed once") + * if size is None: size = (toInt(nz), toInt(PETSC_DECIDE)) + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(40, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":376 + * if size is None: size = (toInt(nz), toInt(PETSC_DECIDE)) + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: bs = 1 + * if nz < n: raise ValueError( + */ + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 376, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":377 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 # <<<<<<<<<<<<<< + * if nz < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + */ + __pyx_t_14 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_14) { + __pyx_v_bs = 1; + } + + /* "petsc4py/PETSc/Vec.pyx":378 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if nz < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(nz), toInt(n), toInt(bs))) + */ + __pyx_t_14 = ((__pyx_v_nz < __pyx_v_n) != 0); + if (unlikely(__pyx_t_14)) { + + /* "petsc4py/PETSc/Vec.pyx":380 + * if nz < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % + * (toInt(nz), toInt(n), toInt(bs))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nz); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_3); + __pyx_t_5 = 0; + __pyx_t_4 = 0; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":379 + * if bs == PETSC_DECIDE: bs = 1 + * if nz < n: raise ValueError( + * "array size %d and vector local size %d block size %d" % # <<<<<<<<<<<<<< + * (toInt(nz), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":378 + * Sys_Layout(ccomm, bs, &n, &N) + * if bs == PETSC_DECIDE: bs = 1 + * if nz < n: raise ValueError( # <<<<<<<<<<<<<< + * "array size %d and vector local size %d block size %d" % + * (toInt(nz), toInt(n), toInt(bs))) + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(40, 378, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":381 + * "array size %d and vector local size %d block size %d" % + * (toInt(nz), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + * if dltype in [kDLCUDA,kDLCUDAManaged]: + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":382 + * (toInt(nz), toInt(n), toInt(bs))) + * cdef PetscVec newvec = NULL + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type # <<<<<<<<<<<<<< + * if dltype in [kDLCUDA,kDLCUDAManaged]: + * if comm_size(ccomm) == 1: + */ + __pyx_t_16 = __pyx_v_ptr->dl_tensor.ctx.device_type; + __pyx_v_dltype = __pyx_t_16; + + /* "petsc4py/PETSc/Vec.pyx":383 + * cdef PetscVec newvec = NULL + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + * if dltype in [kDLCUDA,kDLCUDAManaged]: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_16 = __pyx_v_dltype; + __pyx_t_2 = ((__pyx_t_16 == __pyx_e_8petsc4py_5PETSc_kDLCUDA) != 0); + if (!__pyx_t_2) { + } else { + __pyx_t_14 = __pyx_t_2; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_2 = ((__pyx_t_16 == __pyx_e_8petsc4py_5PETSc_kDLCUDAManaged) != 0); + __pyx_t_14 = __pyx_t_2; + __pyx_L12_bool_binop_done:; + __pyx_t_2 = (__pyx_t_14 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":384 + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + * if dltype in [kDLCUDA,kDLCUDAManaged]: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_9 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 384, __pyx_L1_error) + __pyx_t_2 = ((__pyx_t_9 == 1) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":385 + * if dltype in [kDLCUDA,kDLCUDAManaged]: + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqCUDAWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 385, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":384 + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + * if dltype in [kDLCUDA,kDLCUDAManaged]: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + goto __pyx_L14; + } + + /* "petsc4py/PETSc/Vec.pyx":387 + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: + * if comm_size(ccomm) == 1: + */ + /*else*/ { + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPICUDAWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 387, __pyx_L1_error) + } + __pyx_L14:; + + /* "petsc4py/PETSc/Vec.pyx":383 + * cdef PetscVec newvec = NULL + * cdef PetscDLDeviceType dltype = ptr.dl_tensor.ctx.device_type + * if dltype in [kDLCUDA,kDLCUDAManaged]: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqCUDAWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + goto __pyx_L11; + } + + /* "petsc4py/PETSc/Vec.pyx":388 + * else: + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_16 = __pyx_v_dltype; + __pyx_t_14 = ((__pyx_t_16 == __pyx_e_8petsc4py_5PETSc_kDLCPU) != 0); + if (!__pyx_t_14) { + } else { + __pyx_t_2 = __pyx_t_14; + goto __pyx_L15_bool_binop_done; + } + __pyx_t_14 = ((__pyx_t_16 == __pyx_e_8petsc4py_5PETSc_kDLCUDAHost) != 0); + if (!__pyx_t_14) { + } else { + __pyx_t_2 = __pyx_t_14; + goto __pyx_L15_bool_binop_done; + } + __pyx_t_14 = ((__pyx_t_16 == __pyx_e_8petsc4py_5PETSc_kDLROCMHost) != 0); + __pyx_t_2 = __pyx_t_14; + __pyx_L15_bool_binop_done:; + __pyx_t_14 = (__pyx_t_2 != 0); + if (__pyx_t_14) { + + /* "petsc4py/PETSc/Vec.pyx":389 + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_9 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 389, __pyx_L1_error) + __pyx_t_14 = ((__pyx_t_9 == 1) != 0); + if (__pyx_t_14) { + + /* "petsc4py/PETSc/Vec.pyx":390 + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 390, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":389 + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + goto __pyx_L18; + } + + /* "petsc4py/PETSc/Vec.pyx":392 + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * elif dltype == kDLROCM: + * if comm_size(ccomm) == 1: + */ + /*else*/ { + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPIWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 392, __pyx_L1_error) + } + __pyx_L18:; + + /* "petsc4py/PETSc/Vec.pyx":388 + * else: + * CHKERR( VecCreateMPICUDAWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype in [kDLCPU,kDLCUDAHost,kDLROCMHost]: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + goto __pyx_L11; + } + + /* "petsc4py/PETSc/Vec.pyx":393 + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype == kDLROCM: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_14 = ((__pyx_v_dltype == __pyx_e_8petsc4py_5PETSc_kDLROCM) != 0); + if (likely(__pyx_t_14)) { + + /* "petsc4py/PETSc/Vec.pyx":394 + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype == kDLROCM: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_9 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(40, 394, __pyx_L1_error) + __pyx_t_14 = ((__pyx_t_9 == 1) != 0); + if (__pyx_t_14) { + + /* "petsc4py/PETSc/Vec.pyx":395 + * elif dltype == kDLROCM: + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecCreateMPIHIPWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + */ + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateSeqHIPWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 395, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":394 + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype == kDLROCM: + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + */ + goto __pyx_L19; + } + + /* "petsc4py/PETSc/Vec.pyx":397 + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + * else: + * CHKERR( VecCreateMPIHIPWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) # <<<<<<<<<<<<<< + * else: + * raise TypeError("Device type {} not supported".format(dltype)) + */ + /*else*/ { + __pyx_t_15 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateMPIHIPWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, ((PetscScalar *)__pyx_v_ptr->dl_tensor.data), (&__pyx_v_newvec))); if (unlikely(__pyx_t_15 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 397, __pyx_L1_error) + } + __pyx_L19:; + + /* "petsc4py/PETSc/Vec.pyx":393 + * else: + * CHKERR( VecCreateMPIWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * elif dltype == kDLROCM: # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( VecCreateSeqHIPWithArray(ccomm,bs,N,(ptr.dl_tensor.data),&newvec) ) + */ + goto __pyx_L11; + } + + /* "petsc4py/PETSc/Vec.pyx":399 + * CHKERR( VecCreateMPIHIPWithArray(ccomm,bs,n,N,(ptr.dl_tensor.data),&newvec) ) + * else: + * raise TypeError("Device type {} not supported".format(dltype)) # <<<<<<<<<<<<<< + * + * PetscCLEAR(self.obj); self.vec = newvec + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Device_type_not_supported, __pyx_n_s_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_v_dltype); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_8 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(40, 399, __pyx_L1_error) + } + __pyx_L11:; + + /* "petsc4py/PETSc/Vec.pyx":401 + * raise TypeError("Device type {} not supported".format(dltype)) + * + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * self.set_attr('__array__', dltensor) + * cdef int64_t* shape_arr = NULL + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":402 + * + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', dltensor) # <<<<<<<<<<<<<< + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_dltensor); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":403 + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', dltensor) + * cdef int64_t* shape_arr = NULL # <<<<<<<<<<<<<< + * cdef int64_t* strides_arr = NULL + * cdef object s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + */ + __pyx_v_shape_arr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":404 + * self.set_attr('__array__', dltensor) + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL # <<<<<<<<<<<<<< + * cdef object s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * cdef object s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + __pyx_v_strides_arr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":405 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + * cdef object s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) # <<<<<<<<<<<<<< + * cdef object s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_shape_arr)))); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_s1 = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":406 + * cdef int64_t* strides_arr = NULL + * cdef object s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * cdef object s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_arr[i] = shape[i] + */ + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_8, NULL, ((void **)(&__pyx_v_strides_arr)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_s2 = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":407 + * cdef object s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * cdef object s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] + */ + __pyx_t_17 = __pyx_v_ndim; + __pyx_t_18 = __pyx_t_17; + for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) { + __pyx_v_i = __pyx_t_19; + + /* "petsc4py/PETSc/Vec.pyx":408 + * cdef object s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): + * shape_arr[i] = shape[i] # <<<<<<<<<<<<<< + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + */ + (__pyx_v_shape_arr[__pyx_v_i]) = (__pyx_v_shape[__pyx_v_i]); + + /* "petsc4py/PETSc/Vec.pyx":409 + * for i in range(ndim): + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * if ptr.manager_deleter != NULL: + */ + (__pyx_v_strides_arr[__pyx_v_i]) = (__pyx_v_strides[__pyx_v_i]); + } + + /* "petsc4py/PETSc/Vec.pyx":410 + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) # <<<<<<<<<<<<<< + * if ptr.manager_deleter != NULL: + * ptr.manager_deleter(ptr) # free the manager + */ + __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_v_ptr->dl_tensor.ctx.device_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_ptr->dl_tensor.ctx.device_id); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_4 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __Pyx_INCREF(__pyx_v_s1); + __Pyx_GIVEREF(__pyx_v_s1); + PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_s1); + __Pyx_INCREF(__pyx_v_s2); + __Pyx_GIVEREF(__pyx_v_s2); + PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_s2); + __pyx_t_3 = 0; + __pyx_t_8 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":411 + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * if ptr.manager_deleter != NULL: # <<<<<<<<<<<<<< + * ptr.manager_deleter(ptr) # free the manager + * return self + */ + __pyx_t_14 = ((__pyx_v_ptr->manager_deleter != NULL) != 0); + if (__pyx_t_14) { + + /* "petsc4py/PETSc/Vec.pyx":412 + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * if ptr.manager_deleter != NULL: + * ptr.manager_deleter(ptr) # free the manager # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_v_ptr->manager_deleter(__pyx_v_ptr); + + /* "petsc4py/PETSc/Vec.pyx":411 + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * if ptr.manager_deleter != NULL: # <<<<<<<<<<<<<< + * ptr.manager_deleter(ptr) # free the manager + * return self + */ + } + + /* "petsc4py/PETSc/Vec.pyx":413 + * if ptr.manager_deleter != NULL: + * ptr.manager_deleter(ptr) # free the manager + * return self # <<<<<<<<<<<<<< + * + * def attachDLPackInfo(self, Vec vec=None, object dltensor=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":335 + * return self + * + * def createWithDLPack(self, object dltensor, size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance :class:`Vec`, a PETSc vector from a DLPack object + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createWithDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_s); + __Pyx_XDECREF(__pyx_v_s1); + __Pyx_XDECREF(__pyx_v_s2); + __Pyx_XDECREF(__pyx_v_dltensor); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":415 + * return self + * + * def attachDLPackInfo(self, Vec vec=None, object dltensor=None): # <<<<<<<<<<<<<< + * """ + * Attach the tensor information from an input vector (vec) or a + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_65attachDLPackInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_64attachDLPackInfo[] = "Vec.attachDLPackInfo(self, Vec vec=None, dltensor=None)\n\n Attach the tensor information from an input vector (vec) or a\n DLPack tensor if it is not available in current vector. The input\n vector is typically created with createWithDlpack(). This operation\n does not copy the data from the input parameters, it simply uses\n their meta information.\n\n Note that the auxiliary tensor information is required when converting\n a PETSc vector to a DLPack object.\n\n See also :meth:`Vec.clearDLPackInfo`.\n\n :arg vec: A :class:'Vec' containing auxiliary tensor information\n :arg dltensor: A DLPack tensor object\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_65attachDLPackInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_dltensor = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("attachDLPackInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_dltensor,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dltensor); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "attachDLPackInfo") < 0)) __PYX_ERR(40, 415, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_dltensor = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("attachDLPackInfo", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 415, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.attachDLPackInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "vec", 0))) __PYX_ERR(40, 415, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_64attachDLPackInfo(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec, __pyx_v_dltensor); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_64attachDLPackInfo(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_dltensor) { + CYTHON_UNUSED PyObject *__pyx_v_ctx0 = 0; + PyObject *__pyx_v_ctx = 0; + struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_ptr; + int64_t *__pyx_v_shape_arr; + int64_t *__pyx_v_strides_arr; + PyObject *__pyx_v_s1 = 0; + PyObject *__pyx_v_s2 = 0; + uint8_t __pyx_v_bits; + int __pyx_v_ndim; + int64_t *__pyx_v_shape; + int64_t *__pyx_v_strides; + int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + void *__pyx_t_5; + uint8_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + int64_t *__pyx_t_11; + int __pyx_t_12; + int __pyx_t_13; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("attachDLPackInfo", 0); + + /* "petsc4py/PETSc/Vec.pyx":431 + * :arg dltensor: A DLPack tensor object + * """ + * cdef object ctx0 = self.get_attr('__dltensor_ctx__'), ctx = None # <<<<<<<<<<<<<< + * cdef DLManagedTensor* ptr = NULL + * cdef int64_t* shape_arr = NULL + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ctx0 = __pyx_t_1; + __pyx_t_1 = 0; + __Pyx_INCREF(Py_None); + __pyx_v_ctx = Py_None; + + /* "petsc4py/PETSc/Vec.pyx":432 + * """ + * cdef object ctx0 = self.get_attr('__dltensor_ctx__'), ctx = None + * cdef DLManagedTensor* ptr = NULL # <<<<<<<<<<<<<< + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + */ + __pyx_v_ptr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":433 + * cdef object ctx0 = self.get_attr('__dltensor_ctx__'), ctx = None + * cdef DLManagedTensor* ptr = NULL + * cdef int64_t* shape_arr = NULL # <<<<<<<<<<<<<< + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None, s2 = None + */ + __pyx_v_shape_arr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":434 + * cdef DLManagedTensor* ptr = NULL + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL # <<<<<<<<<<<<<< + * cdef object s1 = None, s2 = None + * + */ + __pyx_v_strides_arr = NULL; + + /* "petsc4py/PETSc/Vec.pyx":435 + * cdef int64_t* shape_arr = NULL + * cdef int64_t* strides_arr = NULL + * cdef object s1 = None, s2 = None # <<<<<<<<<<<<<< + * + * if vec is None and dltensor is None: + */ + __Pyx_INCREF(Py_None); + __pyx_v_s1 = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_s2 = Py_None; + + /* "petsc4py/PETSc/Vec.pyx":437 + * cdef object s1 = None, s2 = None + * + * if vec is None and dltensor is None: # <<<<<<<<<<<<<< + * raise ValueError('Missing input parameters') + * if vec is not None: + */ + __pyx_t_3 = (((PyObject *)__pyx_v_vec) == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = (__pyx_v_dltensor == Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":438 + * + * if vec is None and dltensor is None: + * raise ValueError('Missing input parameters') # <<<<<<<<<<<<<< + * if vec is not None: + * ctx = (vec).get_attr('__dltensor_ctx__') + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__32, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 438, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":437 + * cdef object s1 = None, s2 = None + * + * if vec is None and dltensor is None: # <<<<<<<<<<<<<< + * raise ValueError('Missing input parameters') + * if vec is not None: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":439 + * if vec is None and dltensor is None: + * raise ValueError('Missing input parameters') + * if vec is not None: # <<<<<<<<<<<<<< + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: + */ + __pyx_t_2 = (((PyObject *)__pyx_v_vec) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":440 + * raise ValueError('Missing input parameters') + * if vec is not None: + * ctx = (vec).get_attr('__dltensor_ctx__') # <<<<<<<<<<<<<< + * if ctx is None: + * raise ValueError('Input vector has no tensor information') + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *)((struct PyPetscObjectObject *)__pyx_v_vec)->__pyx_vtab)->get_attr(((struct PyPetscObjectObject *)__pyx_v_vec), ((char *)"__dltensor_ctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ctx, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":441 + * if vec is not None: + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: # <<<<<<<<<<<<<< + * raise ValueError('Input vector has no tensor information') + * self.set_attr('__dltensor_ctx__', ctx) + */ + __pyx_t_3 = (__pyx_v_ctx == Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":442 + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: + * raise ValueError('Input vector has no tensor information') # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', ctx) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__33, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 442, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":441 + * if vec is not None: + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: # <<<<<<<<<<<<<< + * raise ValueError('Input vector has no tensor information') + * self.set_attr('__dltensor_ctx__', ctx) + */ + } + + /* "petsc4py/PETSc/Vec.pyx":443 + * if ctx is None: + * raise ValueError('Input vector has no tensor information') + * self.set_attr('__dltensor_ctx__', ctx) # <<<<<<<<<<<<<< + * else: + * if PyCapsule_IsValid(dltensor, 'dltensor'): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), __pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":439 + * if vec is None and dltensor is None: + * raise ValueError('Missing input parameters') + * if vec is not None: # <<<<<<<<<<<<<< + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/Vec.pyx":445 + * self.set_attr('__dltensor_ctx__', ctx) + * else: + * if PyCapsule_IsValid(dltensor, 'dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): + */ + /*else*/ { + __pyx_t_2 = (PyCapsule_IsValid(__pyx_v_dltensor, ((char const *)"dltensor")) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":446 + * else: + * if PyCapsule_IsValid(dltensor, 'dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') # <<<<<<<<<<<<<< + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') + */ + __pyx_t_5 = PyCapsule_GetPointer(__pyx_v_dltensor, ((char const *)"dltensor")); if (unlikely(__pyx_t_5 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(40, 446, __pyx_L1_error) + __pyx_v_ptr = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)__pyx_t_5); + + /* "petsc4py/PETSc/Vec.pyx":445 + * self.set_attr('__dltensor_ctx__', ctx) + * else: + * if PyCapsule_IsValid(dltensor, 'dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Vec.pyx":447 + * if PyCapsule_IsValid(dltensor, 'dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * else: + */ + __pyx_t_2 = (PyCapsule_IsValid(__pyx_v_dltensor, ((char const *)"used_dltensor")) != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":448 + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') # <<<<<<<<<<<<<< + * else: + * raise ValueError("Expect a dltensor or used_dltensor field") + */ + __pyx_t_5 = PyCapsule_GetPointer(__pyx_v_dltensor, ((char const *)"used_dltensor")); if (unlikely(__pyx_t_5 == ((void *)NULL) && PyErr_Occurred())) __PYX_ERR(40, 448, __pyx_L1_error) + __pyx_v_ptr = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)__pyx_t_5); + + /* "petsc4py/PETSc/Vec.pyx":447 + * if PyCapsule_IsValid(dltensor, 'dltensor'): + * ptr = PyCapsule_GetPointer(dltensor, 'dltensor') + * elif PyCapsule_IsValid(dltensor, 'used_dltensor'): # <<<<<<<<<<<<<< + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Vec.pyx":450 + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * else: + * raise ValueError("Expect a dltensor or used_dltensor field") # <<<<<<<<<<<<<< + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 450, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/Vec.pyx":451 + * else: + * raise ValueError("Expect a dltensor or used_dltensor field") + * bits = ptr.dl_tensor.dtype.bits # <<<<<<<<<<<<<< + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + */ + __pyx_t_6 = __pyx_v_ptr->dl_tensor.dtype.bits; + __pyx_v_bits = __pyx_t_6; + + /* "petsc4py/PETSc/Vec.pyx":452 + * raise ValueError("Expect a dltensor or used_dltensor field") + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): # <<<<<<<<<<<<<< + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + */ + __pyx_t_2 = ((__pyx_v_bits != (8 * (sizeof(PetscScalar)))) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":453 + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) # <<<<<<<<<<<<<< + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape + */ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_kp_s_Tensor_dtype_does_not_match_PETS, __pyx_n_s_format); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __pyx_convert__to_py_struct____pyx_t_8petsc4py_5PETSc_DLDataType(__pyx_v_ptr->dl_tensor.dtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(40, 453, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":452 + * raise ValueError("Expect a dltensor or used_dltensor field") + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): # <<<<<<<<<<<<<< + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + */ + } + + /* "petsc4py/PETSc/Vec.pyx":454 + * if bits != 8*sizeof(PetscScalar): + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim # <<<<<<<<<<<<<< + * shape = ptr.dl_tensor.shape + * strides = ptr.dl_tensor.strides + */ + __pyx_t_10 = __pyx_v_ptr->dl_tensor.ndim; + __pyx_v_ndim = __pyx_t_10; + + /* "petsc4py/PETSc/Vec.pyx":455 + * raise TypeError("Tensor dtype = {} does not match PETSc precision".format(ptr.dl_tensor.dtype)) + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape # <<<<<<<<<<<<<< + * strides = ptr.dl_tensor.strides + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + */ + __pyx_t_11 = __pyx_v_ptr->dl_tensor.shape; + __pyx_v_shape = __pyx_t_11; + + /* "petsc4py/PETSc/Vec.pyx":456 + * ndim = ptr.dl_tensor.ndim + * shape = ptr.dl_tensor.shape + * strides = ptr.dl_tensor.strides # <<<<<<<<<<<<<< + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + */ + __pyx_t_11 = __pyx_v_ptr->dl_tensor.strides; + __pyx_v_strides = __pyx_t_11; + + /* "petsc4py/PETSc/Vec.pyx":457 + * shape = ptr.dl_tensor.shape + * strides = ptr.dl_tensor.strides + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) # <<<<<<<<<<<<<< + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_7, NULL, ((void **)(&__pyx_v_shape_arr)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_s1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":458 + * strides = ptr.dl_tensor.strides + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_arr[i] = shape[i] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ndim)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_strides_arr)))); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_s2, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Vec.pyx":459 + * s1 = oarray_p(empty_p(ndim), NULL, &shape_arr) + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] + */ + __pyx_t_10 = __pyx_v_ndim; + __pyx_t_12 = __pyx_t_10; + for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) { + __pyx_v_i = __pyx_t_13; + + /* "petsc4py/PETSc/Vec.pyx":460 + * s2 = oarray_p(empty_p(ndim), NULL, &strides_arr) + * for i in range(ndim): + * shape_arr[i] = shape[i] # <<<<<<<<<<<<<< + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + */ + (__pyx_v_shape_arr[__pyx_v_i]) = (__pyx_v_shape[__pyx_v_i]); + + /* "petsc4py/PETSc/Vec.pyx":461 + * for i in range(ndim): + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * return self + */ + (__pyx_v_strides_arr[__pyx_v_i]) = (__pyx_v_strides[__pyx_v_i]); + } + + /* "petsc4py/PETSc/Vec.pyx":462 + * shape_arr[i] = shape[i] + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_7 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_v_ptr->dl_tensor.ctx.device_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_ptr->dl_tensor.ctx.device_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = PyTuple_New(5); if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_8); + __Pyx_INCREF(__pyx_v_s1); + __Pyx_GIVEREF(__pyx_v_s1); + PyTuple_SET_ITEM(__pyx_t_9, 3, __pyx_v_s1); + __Pyx_INCREF(__pyx_v_s2); + __Pyx_GIVEREF(__pyx_v_s2); + PyTuple_SET_ITEM(__pyx_t_9, 4, __pyx_v_s2); + __pyx_t_7 = 0; + __pyx_t_1 = 0; + __pyx_t_8 = 0; + __pyx_t_8 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __pyx_L6:; + + /* "petsc4py/PETSc/Vec.pyx":463 + * strides_arr[i] = strides[i] + * self.set_attr('__dltensor_ctx__', (ptr.dl_tensor.ctx.device_type, ptr.dl_tensor.ctx.device_id, ndim, s1, s2)) + * return self # <<<<<<<<<<<<<< + * + * def clearDLPackInfo(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":415 + * return self + * + * def attachDLPackInfo(self, Vec vec=None, object dltensor=None): # <<<<<<<<<<<<<< + * """ + * Attach the tensor information from an input vector (vec) or a + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.attachDLPackInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx0); + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_XDECREF(__pyx_v_s1); + __Pyx_XDECREF(__pyx_v_s2); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":465 + * return self + * + * def clearDLPackInfo(self): # <<<<<<<<<<<<<< + * """ + * Clear the tensor information + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_67clearDLPackInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_66clearDLPackInfo[] = "Vec.clearDLPackInfo(self)\n\n Clear the tensor information\n See also :meth:`Vec.attachDLPackInfo`.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_67clearDLPackInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearDLPackInfo (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clearDLPackInfo", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clearDLPackInfo", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_66clearDLPackInfo(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_66clearDLPackInfo(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearDLPackInfo", 0); + + /* "petsc4py/PETSc/Vec.pyx":470 + * See also :meth:`Vec.attachDLPackInfo`. + * """ + * self.set_attr('__dltensor_ctx__', None) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":471 + * """ + * self.set_attr('__dltensor_ctx__', None) + * return self # <<<<<<<<<<<<<< + * + * # TODO Stream + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":465 + * return self + * + * def clearDLPackInfo(self): # <<<<<<<<<<<<<< + * """ + * Clear the tensor information + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.clearDLPackInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":474 + * + * # TODO Stream + * def __dlpack__(self, stream=-1): # <<<<<<<<<<<<<< + * return self.toDLPack('rw') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_69__dlpack__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_68__dlpack__[] = "Vec.__dlpack__(self, stream=-1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_69__dlpack__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_stream = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dlpack__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_neg_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__dlpack__") < 0)) __PYX_ERR(40, 474, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_stream = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__dlpack__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 474, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__dlpack__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_68__dlpack__(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_stream); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_68__dlpack__(struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_stream) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dlpack__", 0); + + /* "petsc4py/PETSc/Vec.pyx":475 + * # TODO Stream + * def __dlpack__(self, stream=-1): + * return self.toDLPack('rw') # <<<<<<<<<<<<<< + * + * def __dlpack_device__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_toDLPack); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_n_s_rw) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_rw); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":474 + * + * # TODO Stream + * def __dlpack__(self, stream=-1): # <<<<<<<<<<<<<< + * return self.toDLPack('rw') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__dlpack__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":477 + * return self.toDLPack('rw') + * + * def __dlpack_device__(self): # <<<<<<<<<<<<<< + * (dltype, devId, _, _, _) = vec_get_dlpack_ctx(self) + * return (dltype, devId) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_71__dlpack_device__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_70__dlpack_device__[] = "Vec.__dlpack_device__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_71__dlpack_device__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dlpack_device__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__dlpack_device__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__dlpack_device__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_70__dlpack_device__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_70__dlpack_device__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_v_dltype = NULL; + PyObject *__pyx_v_devId = NULL; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dlpack_device__", 0); + + /* "petsc4py/PETSc/Vec.pyx":478 + * + * def __dlpack_device__(self): + * (dltype, devId, _, _, _) = vec_get_dlpack_ctx(self) # <<<<<<<<<<<<<< + * return (dltype, devId) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vec_get_dlpack_ctx(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(40, 478, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + __pyx_t_5 = PyList_GET_ITEM(sequence, 3); + __pyx_t_6 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(40, 478, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 478, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 5) < 0) __PYX_ERR(40, 478, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(40, 478, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_dltype = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_devId = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v__ = __pyx_t_4; + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Vec.pyx":479 + * def __dlpack_device__(self): + * (dltype, devId, _, _, _) = vec_get_dlpack_ctx(self) + * return (dltype, devId) # <<<<<<<<<<<<<< + * + * def toDLPack(self, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_dltype); + __Pyx_GIVEREF(__pyx_v_dltype); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_dltype); + __Pyx_INCREF(__pyx_v_devId); + __Pyx_GIVEREF(__pyx_v_devId); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_devId); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":477 + * return self.toDLPack('rw') + * + * def __dlpack_device__(self): # <<<<<<<<<<<<<< + * (dltype, devId, _, _, _) = vec_get_dlpack_ctx(self) + * return (dltype, devId) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__dlpack_device__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dltype); + __Pyx_XDECREF(__pyx_v_devId); + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":481 + * return (dltype, devId) + * + * def toDLPack(self, mode='rw'): # <<<<<<<<<<<<<< + * """ + * Return a DLPack capsule. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_73toDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_72toDLPack[] = "Vec.toDLPack(self, mode='rw')\n\n Return a DLPack capsule.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_73toDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("toDLPack (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "toDLPack") < 0)) __PYX_ERR(40, 481, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("toDLPack", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 481, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.toDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_72toDLPack(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_72toDLPack(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode) { + int64_t __pyx_v_ndim; + PyObject *__pyx_v_device_type = NULL; + PyObject *__pyx_v_device_id = NULL; + PyObject *__pyx_v_shape = NULL; + PyObject *__pyx_v_strides = NULL; + PyObject *__pyx_v_hostmem = NULL; + struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_dlm_tensor; + struct __pyx_t_8petsc4py_5PETSc_DLTensor *__pyx_v_dl_tensor; + PetscScalar *__pyx_v_a; + int64_t *__pyx_v_shape_strides; + __pyx_t_8petsc4py_5PETSc_DLContext *__pyx_v_ctx; + PyObject *__pyx_v_i = NULL; + struct __pyx_t_8petsc4py_5PETSc_DLDataType *__pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int64_t __pyx_t_11; + PetscErrorCode __pyx_t_12; + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __pyx_t_13; + int __pyx_t_14; + Py_ssize_t __pyx_t_15; + PyObject *(*__pyx_t_16)(PyObject *); + Py_ssize_t __pyx_t_17; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toDLPack", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":485 + * Return a DLPack capsule. + * """ + * if mode is None: mode = 'rw' # <<<<<<<<<<<<<< + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_n_s_rw); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_n_s_rw); + } + + /* "petsc4py/PETSc/Vec.pyx":486 + * """ + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + */ + __Pyx_INCREF(__pyx_v_mode); + __pyx_t_3 = __pyx_v_mode; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_rw, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 486, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 486, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_w, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 486, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Vec.pyx":487 + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * + * cdef int64_t ndim = 0 + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(40, 487, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":486 + * """ + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + */ + } + + /* "petsc4py/PETSc/Vec.pyx":489 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * cdef int64_t ndim = 0 # <<<<<<<<<<<<<< + * (device_type, device_id, ndim, shape, strides) = vec_get_dlpack_ctx(self) + * hostmem = (device_type == kDLCPU) + */ + __pyx_v_ndim = 0; + + /* "petsc4py/PETSc/Vec.pyx":490 + * + * cdef int64_t ndim = 0 + * (device_type, device_id, ndim, shape, strides) = vec_get_dlpack_ctx(self) # <<<<<<<<<<<<<< + * hostmem = (device_type == kDLCPU) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_vec_get_dlpack_ctx(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(40, 490, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + __pyx_t_7 = PyList_GET_ITEM(sequence, 3); + __pyx_t_8 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(40, 490, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(40, 490, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(40, 490, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_6); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 490, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_device_type = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_device_id = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_ndim = __pyx_t_11; + __pyx_v_shape = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_strides = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":491 + * cdef int64_t ndim = 0 + * (device_type, device_id, ndim, shape, strides) = vec_get_dlpack_ctx(self) + * hostmem = (device_type == kDLCPU) # <<<<<<<<<<<<<< + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + */ + __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PyObject_RichCompare(__pyx_v_device_type, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 491, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_hostmem = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":493 + * hostmem = (device_type == kDLCPU) + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) # <<<<<<<<<<<<<< + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL + */ + __pyx_v_dlm_tensor = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)malloc((sizeof(struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor)))); + + /* "petsc4py/PETSc/Vec.pyx":494 + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor # <<<<<<<<<<<<<< + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL + */ + __pyx_v_dl_tensor = (&__pyx_v_dlm_tensor->dl_tensor); + + /* "petsc4py/PETSc/Vec.pyx":495 + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL # <<<<<<<<<<<<<< + * cdef int64_t* shape_strides = NULL + * dl_tensor.byte_offset = 0 + */ + __pyx_v_a = NULL; + + /* "petsc4py/PETSc/Vec.pyx":496 + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL # <<<<<<<<<<<<<< + * dl_tensor.byte_offset = 0 + * + */ + __pyx_v_shape_strides = NULL; + + /* "petsc4py/PETSc/Vec.pyx":497 + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL + * dl_tensor.byte_offset = 0 # <<<<<<<<<<<<<< + * + * # DLPack does not currently play well with our get/restore model + */ + __pyx_v_dl_tensor->byte_offset = 0; + + /* "petsc4py/PETSc/Vec.pyx":503 + * # and not modify memory requested with read access + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( VecGetArrayWrite(self.vec, &a) ) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_w, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 503, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":504 + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArrayWrite(self.vec, &a) ) + * CHKERR( VecRestoreArrayWrite(self.vec, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 504, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":505 + * if mode == 'w': + * if hostmem: + * CHKERR( VecGetArrayWrite(self.vec, &a) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArrayWrite(self.vec, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayWrite(__pyx_v_self->vec, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 505, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":506 + * if hostmem: + * CHKERR( VecGetArrayWrite(self.vec, &a) ) + * CHKERR( VecRestoreArrayWrite(self.vec, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecGetArrayWriteAndMemType(self.vec, &a, NULL) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayWrite(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 506, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":504 + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArrayWrite(self.vec, &a) ) + * CHKERR( VecRestoreArrayWrite(self.vec, NULL) ) + */ + goto __pyx_L11; + } + + /* "petsc4py/PETSc/Vec.pyx":508 + * CHKERR( VecRestoreArrayWrite(self.vec, NULL) ) + * else: + * CHKERR( VecGetArrayWriteAndMemType(self.vec, &a, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) + * elif mode == 'r': + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayWriteAndMemType(__pyx_v_self->vec, ((PetscScalar **)(&__pyx_v_a)), NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 508, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":509 + * else: + * CHKERR( VecGetArrayWriteAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) # <<<<<<<<<<<<<< + * elif mode == 'r': + * if hostmem: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayWriteAndMemType(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 509, __pyx_L1_error) + } + __pyx_L11:; + + /* "petsc4py/PETSc/Vec.pyx":503 + * # and not modify memory requested with read access + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( VecGetArrayWrite(self.vec, &a) ) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/Vec.pyx":510 + * CHKERR( VecGetArrayWriteAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( VecGetArrayRead(self.vec, &a) ) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 510, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":511 + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) + * elif mode == 'r': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArrayRead(self.vec, &a) ) + * CHKERR( VecRestoreArrayRead(self.vec, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 511, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":512 + * elif mode == 'r': + * if hostmem: + * CHKERR( VecGetArrayRead(self.vec, &a) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArrayRead(self.vec, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayRead(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 512, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":513 + * if hostmem: + * CHKERR( VecGetArrayRead(self.vec, &a) ) + * CHKERR( VecRestoreArrayRead(self.vec, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecGetArrayReadAndMemType(self.vec, &a, NULL) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayRead(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 513, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":511 + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) + * elif mode == 'r': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArrayRead(self.vec, &a) ) + * CHKERR( VecRestoreArrayRead(self.vec, NULL) ) + */ + goto __pyx_L12; + } + + /* "petsc4py/PETSc/Vec.pyx":515 + * CHKERR( VecRestoreArrayRead(self.vec, NULL) ) + * else: + * CHKERR( VecGetArrayReadAndMemType(self.vec, &a, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArrayReadAndMemType(self.vec, NULL) ) + * else: + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayReadAndMemType(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_a)), NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 515, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":516 + * else: + * CHKERR( VecGetArrayReadAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayReadAndMemType(self.vec, NULL) ) # <<<<<<<<<<<<<< + * else: + * if hostmem: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayReadAndMemType(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 516, __pyx_L1_error) + } + __pyx_L12:; + + /* "petsc4py/PETSc/Vec.pyx":510 + * CHKERR( VecGetArrayWriteAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayWriteAndMemType(self.vec, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( VecGetArrayRead(self.vec, &a) ) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/Vec.pyx":518 + * CHKERR( VecRestoreArrayReadAndMemType(self.vec, NULL) ) + * else: + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArray(self.vec, &a) ) + * CHKERR( VecRestoreArray(self.vec, NULL) ) + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 518, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":519 + * else: + * if hostmem: + * CHKERR( VecGetArray(self.vec, &a) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArray(self.vec, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArray(__pyx_v_self->vec, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 519, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":520 + * if hostmem: + * CHKERR( VecGetArray(self.vec, &a) ) + * CHKERR( VecRestoreArray(self.vec, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecGetArrayAndMemType(self.vec, &a, NULL) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArray(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 520, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":518 + * CHKERR( VecRestoreArrayReadAndMemType(self.vec, NULL) ) + * else: + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( VecGetArray(self.vec, &a) ) + * CHKERR( VecRestoreArray(self.vec, NULL) ) + */ + goto __pyx_L13; + } + + /* "petsc4py/PETSc/Vec.pyx":522 + * CHKERR( VecRestoreArray(self.vec, NULL) ) + * else: + * CHKERR( VecGetArrayAndMemType(self.vec, &a, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( VecRestoreArrayAndMemType(self.vec, NULL) ) + * dl_tensor.data = a + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetArrayAndMemType(__pyx_v_self->vec, ((PetscScalar **)(&__pyx_v_a)), NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 522, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":523 + * else: + * CHKERR( VecGetArrayAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayAndMemType(self.vec, NULL) ) # <<<<<<<<<<<<<< + * dl_tensor.data = a + * + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreArrayAndMemType(__pyx_v_self->vec, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 523, __pyx_L1_error) + } + __pyx_L13:; + } + __pyx_L10:; + + /* "petsc4py/PETSc/Vec.pyx":524 + * CHKERR( VecGetArrayAndMemType(self.vec, &a, NULL) ) + * CHKERR( VecRestoreArrayAndMemType(self.vec, NULL) ) + * dl_tensor.data = a # <<<<<<<<<<<<<< + * + * cdef DLContext* ctx = &dl_tensor.ctx + */ + __pyx_v_dl_tensor->data = ((void *)__pyx_v_a); + + /* "petsc4py/PETSc/Vec.pyx":526 + * dl_tensor.data = a + * + * cdef DLContext* ctx = &dl_tensor.ctx # <<<<<<<<<<<<<< + * ctx.device_type = device_type + * ctx.device_id = device_id + */ + __pyx_v_ctx = (&__pyx_v_dl_tensor->ctx); + + /* "petsc4py/PETSc/Vec.pyx":527 + * + * cdef DLContext* ctx = &dl_tensor.ctx + * ctx.device_type = device_type # <<<<<<<<<<<<<< + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + */ + __pyx_t_13 = ((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)__Pyx_PyInt_As_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_v_device_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 527, __pyx_L1_error) + __pyx_v_ctx->device_type = __pyx_t_13; + + /* "petsc4py/PETSc/Vec.pyx":528 + * cdef DLContext* ctx = &dl_tensor.ctx + * ctx.device_type = device_type + * ctx.device_id = device_id # <<<<<<<<<<<<<< + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): + */ + __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_v_device_id); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(40, 528, __pyx_L1_error) + __pyx_v_ctx->device_id = __pyx_t_14; + + /* "petsc4py/PETSc/Vec.pyx":529 + * ctx.device_type = device_type + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_strides[i] = shape[i] + */ + __pyx_v_shape_strides = ((int64_t *)malloc((((sizeof(int64_t)) * 2) * __pyx_v_ndim))); + + /* "petsc4py/PETSc/Vec.pyx":530 + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i] = shape[i] + * for i in range(ndim): + */ + __pyx_t_8 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + } else { + __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(40, 530, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_16)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(40, 530, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(40, 530, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_16(__pyx_t_8); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(40, 530, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":531 + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): + * shape_strides[i] = shape[i] # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_shape, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_3); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 531, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(40, 531, __pyx_L1_error) + (__pyx_v_shape_strides[__pyx_t_17]) = __pyx_t_11; + + /* "petsc4py/PETSc/Vec.pyx":530 + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i] = shape[i] + * for i in range(ndim): + */ + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":532 + * for i in range(ndim): + * shape_strides[i] = shape[i] + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + */ + __pyx_t_8 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + } else { + __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(40, 532, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_16)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(40, 532, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(40, 532, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_16(__pyx_t_8); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(40, 532, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":533 + * shape_strides[i] = shape[i] + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] # <<<<<<<<<<<<<< + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_strides, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_3); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 533, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyNumber_Add(__pyx_v_i, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(40, 533, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + (__pyx_v_shape_strides[__pyx_t_17]) = __pyx_t_11; + + /* "petsc4py/PETSc/Vec.pyx":532 + * for i in range(ndim): + * shape_strides[i] = shape[i] + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + */ + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Vec.pyx":534 + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim # <<<<<<<<<<<<<< + * dl_tensor.shape = shape_strides + * dl_tensor.strides = shape_strides + ndim + */ + __pyx_v_dl_tensor->ndim = __pyx_v_ndim; + + /* "petsc4py/PETSc/Vec.pyx":535 + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides # <<<<<<<<<<<<<< + * dl_tensor.strides = shape_strides + ndim + * + */ + __pyx_v_dl_tensor->shape = __pyx_v_shape_strides; + + /* "petsc4py/PETSc/Vec.pyx":536 + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides + * dl_tensor.strides = shape_strides + ndim # <<<<<<<<<<<<<< + * + * cdef DLDataType* dtype = &dl_tensor.dtype + */ + __pyx_v_dl_tensor->strides = (__pyx_v_shape_strides + __pyx_v_ndim); + + /* "petsc4py/PETSc/Vec.pyx":538 + * dl_tensor.strides = shape_strides + ndim + * + * cdef DLDataType* dtype = &dl_tensor.dtype # <<<<<<<<<<<<<< + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: + */ + __pyx_v_dtype = (&__pyx_v_dl_tensor->dtype); + + /* "petsc4py/PETSc/Vec.pyx":539 + * + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat # <<<<<<<<<<<<<< + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + */ + __pyx_v_dtype->code = ((uint8_t)__pyx_e_8petsc4py_5PETSc_kDLFloat); + + /* "petsc4py/PETSc/Vec.pyx":540 + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: # <<<<<<<<<<<<<< + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + */ + __pyx_t_1 = (((sizeof(PetscScalar)) == 8) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":541 + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 # <<<<<<<<<<<<<< + * elif sizeof(PetscScalar) == 4: + * dtype.bits = 32 + */ + __pyx_v_dtype->bits = ((uint8_t)64); + + /* "petsc4py/PETSc/Vec.pyx":540 + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: # <<<<<<<<<<<<<< + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + */ + goto __pyx_L18; + } + + /* "petsc4py/PETSc/Vec.pyx":542 + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: # <<<<<<<<<<<<<< + * dtype.bits = 32 + * else: + */ + __pyx_t_1 = (((sizeof(PetscScalar)) == 4) != 0); + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Vec.pyx":543 + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + * dtype.bits = 32 # <<<<<<<<<<<<<< + * else: + * raise ValueError('Unsupported PetscScalar type') + */ + __pyx_v_dtype->bits = ((uint8_t)32); + + /* "petsc4py/PETSc/Vec.pyx":542 + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: # <<<<<<<<<<<<<< + * dtype.bits = 32 + * else: + */ + goto __pyx_L18; + } + + /* "petsc4py/PETSc/Vec.pyx":545 + * dtype.bits = 32 + * else: + * raise ValueError('Unsupported PetscScalar type') # <<<<<<<<<<<<<< + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.vec + */ + /*else*/ { + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(40, 545, __pyx_L1_error) + } + __pyx_L18:; + + /* "petsc4py/PETSc/Vec.pyx":546 + * else: + * raise ValueError('Unsupported PetscScalar type') + * dtype.lanes = 1 # <<<<<<<<<<<<<< + * dlm_tensor.manager_ctx = self.vec + * CHKERR( PetscObjectReference(self.vec) ) + */ + __pyx_v_dtype->lanes = ((uint16_t)1); + + /* "petsc4py/PETSc/Vec.pyx":547 + * raise ValueError('Unsupported PetscScalar type') + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.vec # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(self.vec) ) + * dlm_tensor.manager_deleter = manager_deleter + */ + __pyx_v_dlm_tensor->manager_ctx = ((void *)__pyx_v_self->vec); + + /* "petsc4py/PETSc/Vec.pyx":548 + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.vec + * CHKERR( PetscObjectReference(self.vec) ) # <<<<<<<<<<<<<< + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectReference(((PetscObject)__pyx_v_self->vec))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 548, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":549 + * dlm_tensor.manager_ctx = self.vec + * CHKERR( PetscObjectReference(self.vec) ) + * dlm_tensor.manager_deleter = manager_deleter # <<<<<<<<<<<<<< + * dlm_tensor.del_obj = PetscDEALLOC + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + */ + __pyx_v_dlm_tensor->manager_deleter = __pyx_f_8petsc4py_5PETSc_manager_deleter; + + /* "petsc4py/PETSc/Vec.pyx":550 + * CHKERR( PetscObjectReference(self.vec) ) + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC # <<<<<<<<<<<<<< + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + * + */ + __pyx_v_dlm_tensor->del_obj = ((__pyx_t_8petsc4py_5PETSc_dlpack_manager_del_obj)__pyx_f_8petsc4py_5PETSc_PetscDEALLOC); + + /* "petsc4py/PETSc/Vec.pyx":551 + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) # <<<<<<<<<<<<<< + * + * def createGhost(self, ghosts, size, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_8 = PyCapsule_New(__pyx_v_dlm_tensor, ((char const *)"dltensor"), __pyx_f_8petsc4py_5PETSc_pycapsule_deleter); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_r = __pyx_t_8; + __pyx_t_8 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":481 + * return (dltype, devId) + * + * def toDLPack(self, mode='rw'): # <<<<<<<<<<<<<< + * """ + * Return a DLPack capsule. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.toDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_device_type); + __Pyx_XDECREF(__pyx_v_device_id); + __Pyx_XDECREF(__pyx_v_shape); + __Pyx_XDECREF(__pyx_v_strides); + __Pyx_XDECREF(__pyx_v_hostmem); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":553 + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + * + * def createGhost(self, ghosts, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_75createGhost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_74createGhost[] = "Vec.createGhost(self, ghosts, size, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_75createGhost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ghosts = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGhost (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ghosts,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ghosts)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createGhost", 0, 2, 4, 1); __PYX_ERR(40, 553, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGhost") < 0)) __PYX_ERR(40, 553, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ghosts = values[0]; + __pyx_v_size = values[1]; + __pyx_v_bsize = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGhost", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 553, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createGhost", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_74createGhost(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_ghosts, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_74createGhost(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_ng; + PetscInt *__pyx_v_ig; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGhost", 0); + __Pyx_INCREF(__pyx_v_ghosts); + + /* "petsc4py/PETSc/Vec.pyx":554 + * + * def createGhost(self, ghosts, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 554, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":555 + * def createGhost(self, ghosts, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL # <<<<<<<<<<<<<< + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_v_ng = 0; + __pyx_v_ig = NULL; + + /* "petsc4py/PETSc/Vec.pyx":556 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ghosts, (&__pyx_v_ng), (&__pyx_v_ig))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_ghosts, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":557 + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":558 + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(40, 558, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":559 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 559, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":560 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: + * CHKERR( VecCreateGhost( + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":561 + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecCreateGhost( + * ccomm, n, N, ng, ig, &newvec) ) + */ + __pyx_t_5 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/Vec.pyx":562 + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: + * CHKERR( VecCreateGhost( # <<<<<<<<<<<<<< + * ccomm, n, N, ng, ig, &newvec) ) + * else: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateGhost(__pyx_v_ccomm, __pyx_v_n, __pyx_v_N, __pyx_v_ng, __pyx_v_ig, (&__pyx_v_newvec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 562, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":561 + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecCreateGhost( + * ccomm, n, N, ng, ig, &newvec) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":565 + * ccomm, n, N, ng, ig, &newvec) ) + * else: + * CHKERR( VecCreateGhostBlock( # <<<<<<<<<<<<<< + * ccomm, bs, n, N, ng, ig, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + /*else*/ { + + /* "petsc4py/PETSc/Vec.pyx":566 + * else: + * CHKERR( VecCreateGhostBlock( + * ccomm, bs, n, N, ng, ig, &newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateGhostBlock(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_ng, __pyx_v_ig, (&__pyx_v_newvec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 565, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":567 + * CHKERR( VecCreateGhostBlock( + * ccomm, bs, n, N, ng, ig, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":568 + * ccomm, bs, n, N, ng, ig, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * return self # <<<<<<<<<<<<<< + * + * def createGhostWithArray(self, ghosts, array, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":553 + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + * + * def createGhost(self, ghosts, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createGhost", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ghosts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":570 + * return self + * + * def createGhostWithArray(self, ghosts, array, # <<<<<<<<<<<<<< + * size=None, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_77createGhostWithArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_76createGhostWithArray[] = "Vec.createGhostWithArray(self, ghosts, array, size=None, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_77createGhostWithArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ghosts = 0; + PyObject *__pyx_v_array = 0; + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGhostWithArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ghosts,&__pyx_n_s_array,&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + + /* "petsc4py/PETSc/Vec.pyx":571 + * + * def createGhostWithArray(self, ghosts, array, + * size=None, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ghosts)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createGhostWithArray", 0, 2, 5, 1); __PYX_ERR(40, 570, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGhostWithArray") < 0)) __PYX_ERR(40, 570, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ghosts = values[0]; + __pyx_v_array = values[1]; + __pyx_v_size = values[2]; + __pyx_v_bsize = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGhostWithArray", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 570, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createGhostWithArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_76createGhostWithArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_ghosts, __pyx_v_array, __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* "petsc4py/PETSc/Vec.pyx":570 + * return self + * + * def createGhostWithArray(self, ghosts, array, # <<<<<<<<<<<<<< + * size=None, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_76createGhostWithArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts, PyObject *__pyx_v_array, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_ng; + PetscInt *__pyx_v_ig; + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_sa; + PetscInt __pyx_v_b; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + int __pyx_t_4; + PetscInt __pyx_t_5; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PetscErrorCode __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGhostWithArray", 0); + __Pyx_INCREF(__pyx_v_ghosts); + __Pyx_INCREF(__pyx_v_array); + __Pyx_INCREF(__pyx_v_size); + + /* "petsc4py/PETSc/Vec.pyx":572 + * def createGhostWithArray(self, ghosts, array, + * size=None, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 572, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":573 + * size=None, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL # <<<<<<<<<<<<<< + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt na=0 + */ + __pyx_v_ng = 0; + __pyx_v_ig = NULL; + + /* "petsc4py/PETSc/Vec.pyx":574 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) # <<<<<<<<<<<<<< + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ghosts, (&__pyx_v_ng), (&__pyx_v_ig))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_ghosts, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":575 + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *sa=NULL + * array = oarray_s(array, &na, &sa) + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":576 + * ghosts = iarray_i(ghosts, &ng, &ig) + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL # <<<<<<<<<<<<<< + * array = oarray_s(array, &na, &sa) + * cdef PetscInt b = 1 if bsize is None else asInt(bsize) + */ + __pyx_v_sa = NULL; + + /* "petsc4py/PETSc/Vec.pyx":577 + * cdef PetscInt na=0 + * cdef PetscScalar *sa=NULL + * array = oarray_s(array, &na, &sa) # <<<<<<<<<<<<<< + * cdef PetscInt b = 1 if bsize is None else asInt(bsize) + * if size is None: size = (toInt(na-ng*b), toInt(PETSC_DECIDE)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_s(__pyx_v_array, (&__pyx_v_na), (&__pyx_v_sa))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":578 + * cdef PetscScalar *sa=NULL + * array = oarray_s(array, &na, &sa) + * cdef PetscInt b = 1 if bsize is None else asInt(bsize) # <<<<<<<<<<<<<< + * if size is None: size = (toInt(na-ng*b), toInt(PETSC_DECIDE)) + * cdef PetscInt bs=0, n=0, N=0 + */ + __pyx_t_4 = (__pyx_v_bsize == Py_None); + if ((__pyx_t_4 != 0)) { + __pyx_t_3 = 1; + } else { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_5 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 578, __pyx_L1_error) + __pyx_t_3 = __pyx_t_5; + } + __pyx_v_b = __pyx_t_3; + + /* "petsc4py/PETSc/Vec.pyx":579 + * array = oarray_s(array, &na, &sa) + * cdef PetscInt b = 1 if bsize is None else asInt(bsize) + * if size is None: size = (toInt(na-ng*b), toInt(PETSC_DECIDE)) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_4 = (__pyx_v_size == Py_None); + __pyx_t_6 = (__pyx_t_4 != 0); + if (__pyx_t_6) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_na - (__pyx_v_ng * __pyx_v_b))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(PETSC_DECIDE); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_2 = 0; + __pyx_t_7 = 0; + __Pyx_DECREF_SET(__pyx_v_size, __pyx_t_8); + __pyx_t_8 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":580 + * cdef PetscInt b = 1 if bsize is None else asInt(bsize) + * if size is None: size = (toInt(na-ng*b), toInt(PETSC_DECIDE)) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":581 + * if size is None: size = (toInt(na-ng*b), toInt(PETSC_DECIDE)) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * if na < (n+ng*b): raise ValueError( + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(40, 581, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":582 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * if na < (n+ng*b): raise ValueError( + * "ghosts size %d, array size %d, and " + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 582, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":583 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if na < (n+ng*b): raise ValueError( # <<<<<<<<<<<<<< + * "ghosts size %d, array size %d, and " + * "vector local size %d block size %d" % + */ + __pyx_t_6 = ((__pyx_v_na < (__pyx_v_n + (__pyx_v_ng * __pyx_v_b))) != 0); + if (unlikely(__pyx_t_6)) { + + /* "petsc4py/PETSc/Vec.pyx":586 + * "ghosts size %d, array size %d, and " + * "vector local size %d block size %d" % + * (toInt(ng), toInt(na), toInt(n), toInt(b))) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ng); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_b); if (unlikely(!__pyx_t_11)) __PYX_ERR(40, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = PyTuple_New(4); if (unlikely(!__pyx_t_12)) __PYX_ERR(40, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_11); + PyTuple_SET_ITEM(__pyx_t_12, 3, __pyx_t_11); + __pyx_t_8 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = 0; + __pyx_t_11 = 0; + + /* "petsc4py/PETSc/Vec.pyx":585 + * if na < (n+ng*b): raise ValueError( + * "ghosts size %d, array size %d, and " + * "vector local size %d block size %d" % # <<<<<<<<<<<<<< + * (toInt(ng), toInt(na), toInt(n), toInt(b))) + * cdef PetscVec newvec = NULL + */ + __pyx_t_11 = __Pyx_PyString_Format(__pyx_kp_s_ghosts_size_d_array_size_d_and_v, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(40, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + /* "petsc4py/PETSc/Vec.pyx":583 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * if na < (n+ng*b): raise ValueError( # <<<<<<<<<<<<<< + * "ghosts size %d, array size %d, and " + * "vector local size %d block size %d" % + */ + __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(40, 583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_Raise(__pyx_t_12, 0, 0, 0); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __PYX_ERR(40, 583, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":587 + * "vector local size %d block size %d" % + * (toInt(ng), toInt(na), toInt(n), toInt(b))) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * if bs == PETSC_DECIDE: + * CHKERR( VecCreateGhostWithArray( + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":588 + * (toInt(ng), toInt(na), toInt(n), toInt(b))) + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecCreateGhostWithArray( + * ccomm, n, N, ng, ig, sa, &newvec) ) + */ + __pyx_t_6 = ((__pyx_v_bs == PETSC_DECIDE) != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Vec.pyx":589 + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: + * CHKERR( VecCreateGhostWithArray( # <<<<<<<<<<<<<< + * ccomm, n, N, ng, ig, sa, &newvec) ) + * else: + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateGhostWithArray(__pyx_v_ccomm, __pyx_v_n, __pyx_v_N, __pyx_v_ng, __pyx_v_ig, __pyx_v_sa, (&__pyx_v_newvec))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 589, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":588 + * (toInt(ng), toInt(na), toInt(n), toInt(b))) + * cdef PetscVec newvec = NULL + * if bs == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecCreateGhostWithArray( + * ccomm, n, N, ng, ig, sa, &newvec) ) + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Vec.pyx":592 + * ccomm, n, N, ng, ig, sa, &newvec) ) + * else: + * CHKERR( VecCreateGhostBlockWithArray( # <<<<<<<<<<<<<< + * ccomm, bs, n, N, ng, ig, sa, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + /*else*/ { + + /* "petsc4py/PETSc/Vec.pyx":593 + * else: + * CHKERR( VecCreateGhostBlockWithArray( + * ccomm, bs, n, N, ng, ig, sa, &newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateGhostBlockWithArray(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_n, __pyx_v_N, __pyx_v_ng, __pyx_v_ig, __pyx_v_sa, (&__pyx_v_newvec))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 592, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/Vec.pyx":594 + * CHKERR( VecCreateGhostBlockWithArray( + * ccomm, bs, n, N, ng, ig, sa, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * self.set_attr('__array__', array) + * return self + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":595 + * ccomm, bs, n, N, ng, ig, sa, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_12 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_array); if (unlikely(!__pyx_t_12)) __PYX_ERR(40, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + + /* "petsc4py/PETSc/Vec.pyx":596 + * PetscCLEAR(self.obj); self.vec = newvec + * self.set_attr('__array__', array) + * return self # <<<<<<<<<<<<<< + * + * def createShared(self, size, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":570 + * return self + * + * def createGhostWithArray(self, ghosts, array, # <<<<<<<<<<<<<< + * size=None, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createGhostWithArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ghosts); + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XDECREF(__pyx_v_size); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":598 + * return self + * + * def createShared(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_79createShared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_78createShared[] = "Vec.createShared(self, size, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_79createShared(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createShared (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createShared") < 0)) __PYX_ERR(40, 598, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createShared", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 598, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createShared", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_78createShared(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_78createShared(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_bs; + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createShared", 0); + + /* "petsc4py/PETSc/Vec.pyx":599 + * + * def createShared(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 599, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":600 + * def createShared(self, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 # <<<<<<<<<<<<<< + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + */ + __pyx_v_bs = 0; + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":601 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Vec_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_bs), (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(40, 601, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":602 + * cdef PetscInt bs=0, n=0, N=0 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_bs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 602, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":603 + * Vec_Sizes(size, bsize, &bs, &n, &N) + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":604 + * Sys_Layout(ccomm, bs, &n, &N) + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * if bs != PETSC_DECIDE: + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateShared(__pyx_v_ccomm, __pyx_v_n, __pyx_v_N, (&__pyx_v_newvec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 604, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":605 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * if bs != PETSC_DECIDE: + * CHKERR( VecSetBlockSize(self.vec, bs) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":606 + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * if bs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * return self + */ + __pyx_t_4 = ((__pyx_v_bs != PETSC_DECIDE) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/Vec.pyx":607 + * PetscCLEAR(self.obj); self.vec = newvec + * if bs != PETSC_DECIDE: + * CHKERR( VecSetBlockSize(self.vec, bs) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetBlockSize(__pyx_v_self->vec, __pyx_v_bs)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 607, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":606 + * CHKERR( VecCreateShared(ccomm, n, N, &newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * if bs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * return self + */ + } + + /* "petsc4py/PETSc/Vec.pyx":608 + * if bs != PETSC_DECIDE: + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * return self # <<<<<<<<<<<<<< + * + * def createNest(self, vecs, isets=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":598 + * return self + * + * def createShared(self, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createShared", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":610 + * return self + * + * def createNest(self, vecs, isets=None, comm=None): # <<<<<<<<<<<<<< + * vecs = list(vecs) + * if isets: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_81createNest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_80createNest[] = "Vec.createNest(self, vecs, isets=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_81createNest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_isets = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createNest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_isets,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isets); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createNest") < 0)) __PYX_ERR(40, 610, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_isets = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createNest", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 610, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createNest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_80createNest(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_isets, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_80createNest(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_isets, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_m; + PetscInt __pyx_v_n; + Vec *__pyx_v_cvecs; + IS *__pyx_v_cisets; + CYTHON_UNUSED PyObject *__pyx_v_tmp1 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + Vec __pyx_v_newvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + MPI_Comm __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + Vec __pyx_t_7; + int __pyx_t_8; + IS __pyx_t_9; + PetscErrorCode __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createNest", 0); + __Pyx_INCREF(__pyx_v_vecs); + __Pyx_INCREF(__pyx_v_isets); + + /* "petsc4py/PETSc/Vec.pyx":611 + * + * def createNest(self, vecs, isets=None, comm=None): + * vecs = list(vecs) # <<<<<<<<<<<<<< + * if isets: + * isets = list(isets) + */ + __pyx_t_1 = PySequence_List(__pyx_v_vecs); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_vecs, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":612 + * def createNest(self, vecs, isets=None, comm=None): + * vecs = list(vecs) + * if isets: # <<<<<<<<<<<<<< + * isets = list(isets) + * assert len(isets) == len(vecs) + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_isets); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(40, 612, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":613 + * vecs = list(vecs) + * if isets: + * isets = list(isets) # <<<<<<<<<<<<<< + * assert len(isets) == len(vecs) + * else: + */ + __pyx_t_1 = PySequence_List(__pyx_v_isets); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_isets, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":614 + * if isets: + * isets = list(isets) + * assert len(isets) == len(vecs) # <<<<<<<<<<<<<< + * else: + * isets = None + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = PyObject_Length(__pyx_v_isets); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(40, 614, __pyx_L1_error) + __pyx_t_4 = PyObject_Length(__pyx_v_vecs); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(40, 614, __pyx_L1_error) + if (unlikely(!((__pyx_t_3 == __pyx_t_4) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(40, 614, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Vec.pyx":612 + * def createNest(self, vecs, isets=None, comm=None): + * vecs = list(vecs) + * if isets: # <<<<<<<<<<<<<< + * isets = list(isets) + * assert len(isets) == len(vecs) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":616 + * assert len(isets) == len(vecs) + * else: + * isets = None # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, m = len(vecs) + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_isets, Py_None); + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":617 + * else: + * isets = None + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, m = len(vecs) + * cdef PetscInt n = m + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 617, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_5; + + /* "petsc4py/PETSc/Vec.pyx":618 + * isets = None + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, m = len(vecs) # <<<<<<<<<<<<<< + * cdef PetscInt n = m + * cdef PetscVec *cvecs = NULL + */ + __pyx_t_4 = PyObject_Length(__pyx_v_vecs); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(40, 618, __pyx_L1_error) + __pyx_v_m = __pyx_t_4; + + /* "petsc4py/PETSc/Vec.pyx":619 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, m = len(vecs) + * cdef PetscInt n = m # <<<<<<<<<<<<<< + * cdef PetscVec *cvecs = NULL + * cdef PetscIS *cisets = NULL + */ + __pyx_v_n = ((PetscInt)__pyx_v_m); + + /* "petsc4py/PETSc/Vec.pyx":620 + * cdef Py_ssize_t i, m = len(vecs) + * cdef PetscInt n = m + * cdef PetscVec *cvecs = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *cisets = NULL + * cdef object tmp1, tmp2 + */ + __pyx_v_cvecs = NULL; + + /* "petsc4py/PETSc/Vec.pyx":621 + * cdef PetscInt n = m + * cdef PetscVec *cvecs = NULL + * cdef PetscIS *cisets = NULL # <<<<<<<<<<<<<< + * cdef object tmp1, tmp2 + * tmp1 = oarray_p(empty_p(n), NULL, &cvecs) + */ + __pyx_v_cisets = NULL; + + /* "petsc4py/PETSc/Vec.pyx":623 + * cdef PetscIS *cisets = NULL + * cdef object tmp1, tmp2 + * tmp1 = oarray_p(empty_p(n), NULL, &cvecs) # <<<<<<<<<<<<<< + * for i from 0 <= i < m: cvecs[i] = (vecs[i]).vec + * if isets is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cvecs)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp1 = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Vec.pyx":624 + * cdef object tmp1, tmp2 + * tmp1 = oarray_p(empty_p(n), NULL, &cvecs) + * for i from 0 <= i < m: cvecs[i] = (vecs[i]).vec # <<<<<<<<<<<<<< + * if isets is not None: + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) + */ + __pyx_t_4 = __pyx_v_m; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_vecs, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 624, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(40, 624, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscVecObject *)__pyx_t_6)->vec; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + (__pyx_v_cvecs[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/Vec.pyx":625 + * tmp1 = oarray_p(empty_p(n), NULL, &cvecs) + * for i from 0 <= i < m: cvecs[i] = (vecs[i]).vec + * if isets is not None: # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset + */ + __pyx_t_2 = (__pyx_v_isets != Py_None); + __pyx_t_8 = (__pyx_t_2 != 0); + if (__pyx_t_8) { + + /* "petsc4py/PETSc/Vec.pyx":626 + * for i from 0 <= i < m: cvecs[i] = (vecs[i]).vec + * if isets is not None: + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) # <<<<<<<<<<<<<< + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset + * cdef PetscVec newvec = NULL + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_6, NULL, ((void **)(&__pyx_v_cisets)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_tmp2 = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":627 + * if isets is not None: + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset # <<<<<<<<<<<<<< + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateNest(ccomm, n, cisets, cvecs,&newvec) ) + */ + __pyx_t_4 = __pyx_v_m; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_isets, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(40, 627, __pyx_L1_error) + __pyx_t_9 = ((struct PyPetscISObject *)__pyx_t_1)->iset; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_cisets[__pyx_v_i]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/Vec.pyx":625 + * tmp1 = oarray_p(empty_p(n), NULL, &cvecs) + * for i from 0 <= i < m: cvecs[i] = (vecs[i]).vec + * if isets is not None: # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset + */ + } + + /* "petsc4py/PETSc/Vec.pyx":628 + * tmp2 = oarray_p(empty_p(n), NULL, &cisets) + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset + * cdef PetscVec newvec = NULL # <<<<<<<<<<<<<< + * CHKERR( VecCreateNest(ccomm, n, cisets, cvecs,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + */ + __pyx_v_newvec = NULL; + + /* "petsc4py/PETSc/Vec.pyx":629 + * for i from 0 <= i < m: cisets[i] = (isets[i]).iset + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateNest(ccomm, n, cisets, cvecs,&newvec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.vec = newvec + * return self + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateNest(__pyx_v_ccomm, __pyx_v_n, __pyx_v_cisets, __pyx_v_cvecs, (&__pyx_v_newvec))); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 629, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":630 + * cdef PetscVec newvec = NULL + * CHKERR( VecCreateNest(ccomm, n, cisets, cvecs,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->vec = __pyx_v_newvec; + + /* "petsc4py/PETSc/Vec.pyx":631 + * CHKERR( VecCreateNest(ccomm, n, cisets, cvecs,&newvec) ) + * PetscCLEAR(self.obj); self.vec = newvec + * return self # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":610 + * return self + * + * def createNest(self, vecs, isets=None, comm=None): # <<<<<<<<<<<<<< + * vecs = list(vecs) + * if isets: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createNest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp1); + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_XDECREF(__pyx_v_vecs); + __Pyx_XDECREF(__pyx_v_isets); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":635 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_83setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_82setOptionsPrefix[] = "Vec.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_83setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(40, 635, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 635, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_82setOptionsPrefix(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_82setOptionsPrefix(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Vec.pyx":636 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( VecSetOptionsPrefix(self.vec, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Vec.pyx":637 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( VecSetOptionsPrefix(self.vec, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":638 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( VecSetOptionsPrefix(self.vec, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetOptionsPrefix(__pyx_v_self->vec, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 638, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":635 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":640 + * CHKERR( VecSetOptionsPrefix(self.vec, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( VecGetOptionsPrefix(self.vec, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_85getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_84getOptionsPrefix[] = "Vec.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_85getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_84getOptionsPrefix(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_84getOptionsPrefix(struct PyPetscVecObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/Vec.pyx":641 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetOptionsPrefix(self.vec, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Vec.pyx":642 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( VecGetOptionsPrefix(self.vec, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetOptionsPrefix(__pyx_v_self->vec, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 642, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":643 + * cdef const char *cval = NULL + * CHKERR( VecGetOptionsPrefix(self.vec, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":640 + * CHKERR( VecSetOptionsPrefix(self.vec, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( VecGetOptionsPrefix(self.vec, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":645 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_87appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_86appendOptionsPrefix[] = "Vec.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_87appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(40, 645, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 645, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_86appendOptionsPrefix(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_86appendOptionsPrefix(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Vec.pyx":646 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( VecAppendOptionsPrefix(self.vec, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Vec.pyx":647 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( VecAppendOptionsPrefix(self.vec, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":648 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( VecAppendOptionsPrefix(self.vec, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAppendOptionsPrefix(__pyx_v_self->vec, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 648, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":645 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":650 + * CHKERR( VecAppendOptionsPrefix(self.vec, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( VecSetFromOptions(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_89setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_88setFromOptions[] = "Vec.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_89setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_88setFromOptions(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_88setFromOptions(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Vec.pyx":651 + * + * def setFromOptions(self): + * CHKERR( VecSetFromOptions(self.vec) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetFromOptions(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 651, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":650 + * CHKERR( VecAppendOptionsPrefix(self.vec, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( VecSetFromOptions(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":653 + * CHKERR( VecSetFromOptions(self.vec) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( VecSetUp(self.vec) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_91setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_90setUp[] = "Vec.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_91setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_90setUp(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_90setUp(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Vec.pyx":654 + * + * def setUp(self): + * CHKERR( VecSetUp(self.vec) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetUp(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 654, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":655 + * def setUp(self): + * CHKERR( VecSetUp(self.vec) ) + * return self # <<<<<<<<<<<<<< + * + * def setOption(self, option, flag): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":653 + * CHKERR( VecSetFromOptions(self.vec) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( VecSetUp(self.vec) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":657 + * return self + * + * def setOption(self, option, flag): # <<<<<<<<<<<<<< + * CHKERR( VecSetOption(self.vec, option, flag) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_93setOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_92setOption[] = "Vec.setOption(self, option, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_93setOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_option = 0; + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOption (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_option,&__pyx_n_s_flag,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setOption", 1, 2, 2, 1); __PYX_ERR(40, 657, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOption") < 0)) __PYX_ERR(40, 657, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_option = values[0]; + __pyx_v_flag = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOption", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 657, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_92setOption(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_option, __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_92setOption(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_flag) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + VecOption __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOption", 0); + + /* "petsc4py/PETSc/Vec.pyx":658 + * + * def setOption(self, option, flag): + * CHKERR( VecSetOption(self.vec, option, flag) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_1 = ((VecOption)__Pyx_PyInt_As_VecOption(__pyx_v_option)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 658, __pyx_L1_error) + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 658, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetOption(__pyx_v_self->vec, __pyx_t_1, __pyx_t_2)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 658, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":657 + * return self + * + * def setOption(self, option, flag): # <<<<<<<<<<<<<< + * CHKERR( VecSetOption(self.vec, option, flag) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":660 + * CHKERR( VecSetOption(self.vec, option, flag) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * CHKERR( VecGetType(self.vec, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_95getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_94getType[] = "Vec.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_95getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_94getType(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_94getType(struct PyPetscVecObject *__pyx_v_self) { + VecType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Vec.pyx":661 + * + * def getType(self): + * cdef PetscVecType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetType(self.vec, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Vec.pyx":662 + * def getType(self): + * cdef PetscVecType cval = NULL + * CHKERR( VecGetType(self.vec, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetType(__pyx_v_self->vec, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 662, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":663 + * cdef PetscVecType cval = NULL + * CHKERR( VecGetType(self.vec, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":660 + * CHKERR( VecSetOption(self.vec, option, flag) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * CHKERR( VecGetType(self.vec, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":665 + * return bytes2str(cval) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt N = 0 + * CHKERR( VecGetSize(self.vec, &N) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_97getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_96getSize[] = "Vec.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_97getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_96getSize(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_96getSize(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/Vec.pyx":666 + * + * def getSize(self): + * cdef PetscInt N = 0 # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * return toInt(N) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":667 + * def getSize(self): + * cdef PetscInt N = 0 + * CHKERR( VecGetSize(self.vec, &N) ) # <<<<<<<<<<<<<< + * return toInt(N) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetSize(__pyx_v_self->vec, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 667, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":668 + * cdef PetscInt N = 0 + * CHKERR( VecGetSize(self.vec, &N) ) + * return toInt(N) # <<<<<<<<<<<<<< + * + * def getLocalSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":665 + * return bytes2str(cval) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt N = 0 + * CHKERR( VecGetSize(self.vec, &N) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":670 + * return toInt(N) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_99getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_98getLocalSize[] = "Vec.getLocalSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_99getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_98getLocalSize(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_98getLocalSize(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSize", 0); + + /* "petsc4py/PETSc/Vec.pyx":671 + * + * def getLocalSize(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Vec.pyx":672 + * def getLocalSize(self): + * cdef PetscInt n = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 672, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":673 + * cdef PetscInt n = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def getSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":670 + * return toInt(N) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getLocalSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":675 + * return toInt(n) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, N = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_101getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_100getSizes[] = "Vec.getSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_101getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_100getSizes(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_100getSizes(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSizes", 0); + + /* "petsc4py/PETSc/Vec.pyx":676 + * + * def getSizes(self): + * cdef PetscInt n = 0, N = 0 # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * CHKERR( VecGetSize(self.vec, &N) ) + */ + __pyx_v_n = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":677 + * def getSizes(self): + * cdef PetscInt n = 0, N = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) # <<<<<<<<<<<<<< + * CHKERR( VecGetSize(self.vec, &N) ) + * return (toInt(n), toInt(N)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 677, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":678 + * cdef PetscInt n = 0, N = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * CHKERR( VecGetSize(self.vec, &N) ) # <<<<<<<<<<<<<< + * return (toInt(n), toInt(N)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetSize(__pyx_v_self->vec, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 678, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":679 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + * CHKERR( VecGetSize(self.vec, &N) ) + * return (toInt(n), toInt(N)) # <<<<<<<<<<<<<< + * + * def setBlockSize(self, bsize): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":675 + * return toInt(n) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0, N = 0 + * CHKERR( VecGetLocalSize(self.vec, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":681 + * return (toInt(n), toInt(N)) + * + * def setBlockSize(self, bsize): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( VecSetBlockSize(self.vec, bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_103setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_102setBlockSize[] = "Vec.setBlockSize(self, bsize)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_103setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bsize = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBlockSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bsize,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBlockSize") < 0)) __PYX_ERR(40, 681, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bsize = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBlockSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 681, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_102setBlockSize(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_bsize); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_102setBlockSize(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_bsize) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBlockSize", 0); + + /* "petsc4py/PETSc/Vec.pyx":682 + * + * def setBlockSize(self, bsize): + * cdef PetscInt bs = asInt(bsize) # <<<<<<<<<<<<<< + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 682, __pyx_L1_error) + __pyx_v_bs = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":683 + * def setBlockSize(self, bsize): + * cdef PetscInt bs = asInt(bsize) + * CHKERR( VecSetBlockSize(self.vec, bs) ) # <<<<<<<<<<<<<< + * + * def getBlockSize(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetBlockSize(__pyx_v_self->vec, __pyx_v_bs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 683, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":681 + * return (toInt(n), toInt(N)) + * + * def setBlockSize(self, bsize): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( VecSetBlockSize(self.vec, bs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":685 + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs=0 + * CHKERR( VecGetBlockSize(self.vec, &bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_105getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_104getBlockSize[] = "Vec.getBlockSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_105getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_104getBlockSize(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_104getBlockSize(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSize", 0); + + /* "petsc4py/PETSc/Vec.pyx":686 + * + * def getBlockSize(self): + * cdef PetscInt bs=0 # <<<<<<<<<<<<<< + * CHKERR( VecGetBlockSize(self.vec, &bs) ) + * return toInt(bs) + */ + __pyx_v_bs = 0; + + /* "petsc4py/PETSc/Vec.pyx":687 + * def getBlockSize(self): + * cdef PetscInt bs=0 + * CHKERR( VecGetBlockSize(self.vec, &bs) ) # <<<<<<<<<<<<<< + * return toInt(bs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetBlockSize(__pyx_v_self->vec, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 687, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":688 + * cdef PetscInt bs=0 + * CHKERR( VecGetBlockSize(self.vec, &bs) ) + * return toInt(bs) # <<<<<<<<<<<<<< + * + * def getOwnershipRange(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":685 + * CHKERR( VecSetBlockSize(self.vec, bs) ) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs=0 + * CHKERR( VecGetBlockSize(self.vec, &bs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":690 + * return toInt(bs) + * + * def getOwnershipRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt low=0, high=0 + * CHKERR( VecGetOwnershipRange(self.vec, &low, &high) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_107getOwnershipRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_106getOwnershipRange[] = "Vec.getOwnershipRange(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_107getOwnershipRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRange (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRange", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRange", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_106getOwnershipRange(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_106getOwnershipRange(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_low; + PetscInt __pyx_v_high; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRange", 0); + + /* "petsc4py/PETSc/Vec.pyx":691 + * + * def getOwnershipRange(self): + * cdef PetscInt low=0, high=0 # <<<<<<<<<<<<<< + * CHKERR( VecGetOwnershipRange(self.vec, &low, &high) ) + * return (toInt(low), toInt(high)) + */ + __pyx_v_low = 0; + __pyx_v_high = 0; + + /* "petsc4py/PETSc/Vec.pyx":692 + * def getOwnershipRange(self): + * cdef PetscInt low=0, high=0 + * CHKERR( VecGetOwnershipRange(self.vec, &low, &high) ) # <<<<<<<<<<<<<< + * return (toInt(low), toInt(high)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetOwnershipRange(__pyx_v_self->vec, (&__pyx_v_low), (&__pyx_v_high))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 692, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":693 + * cdef PetscInt low=0, high=0 + * CHKERR( VecGetOwnershipRange(self.vec, &low, &high) ) + * return (toInt(low), toInt(high)) # <<<<<<<<<<<<<< + * + * def getOwnershipRanges(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_low); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_high); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":690 + * return toInt(bs) + * + * def getOwnershipRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt low=0, high=0 + * CHKERR( VecGetOwnershipRange(self.vec, &low, &high) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getOwnershipRange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":695 + * return (toInt(low), toInt(high)) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *rng = NULL + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_109getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_108getOwnershipRanges[] = "Vec.getOwnershipRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_109getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_108getOwnershipRanges(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_108getOwnershipRanges(struct PyPetscVecObject *__pyx_v_self) { + PetscInt const *__pyx_v_rng; + MPI_Comm __pyx_v_comm; + int __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRanges", 0); + + /* "petsc4py/PETSc/Vec.pyx":696 + * + * def getOwnershipRanges(self): + * cdef const PetscInt *rng = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + */ + __pyx_v_rng = NULL; + + /* "petsc4py/PETSc/Vec.pyx":697 + * def getOwnershipRanges(self): + * cdef const PetscInt *rng = NULL + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.vec, &comm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetOwnershipRanges(__pyx_v_self->vec, (&__pyx_v_rng))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 697, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":698 + * cdef const PetscInt *rng = NULL + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.vec, &comm) ) + * cdef int size = -1 + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Vec.pyx":699 + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.vec, &comm) ) # <<<<<<<<<<<<<< + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->vec), (&__pyx_v_comm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 699, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":700 + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.vec, &comm) ) + * cdef int size = -1 # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, rng) + */ + __pyx_v_size = -1; + + /* "petsc4py/PETSc/Vec.pyx":701 + * CHKERR( PetscObjectGetComm(self.vec, &comm) ) + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) # <<<<<<<<<<<<<< + * return array_i(size+1, rng) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 701, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":702 + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, rng) # <<<<<<<<<<<<<< + * + * def createLocalVector(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_size + 1), __pyx_v_rng)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":695 + * return (toInt(low), toInt(high)) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *rng = NULL + * CHKERR( VecGetOwnershipRanges(self.vec, &rng) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":704 + * return array_i(size+1, rng) + * + * def createLocalVector(self): # <<<<<<<<<<<<<< + * lvec = Vec() + * CHKERR( VecCreateLocalVector(self.vec, &lvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_111createLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_110createLocalVector[] = "Vec.createLocalVector(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_111createLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLocalVector (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createLocalVector", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createLocalVector", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_110createLocalVector(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_110createLocalVector(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_lvec = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLocalVector", 0); + + /* "petsc4py/PETSc/Vec.pyx":705 + * + * def createLocalVector(self): + * lvec = Vec() # <<<<<<<<<<<<<< + * CHKERR( VecCreateLocalVector(self.vec, &lvec.vec) ) + * return lvec + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_lvec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":706 + * def createLocalVector(self): + * lvec = Vec() + * CHKERR( VecCreateLocalVector(self.vec, &lvec.vec) ) # <<<<<<<<<<<<<< + * return lvec + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreateLocalVector(__pyx_v_self->vec, (&__pyx_v_lvec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 706, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":707 + * lvec = Vec() + * CHKERR( VecCreateLocalVector(self.vec, &lvec.vec) ) + * return lvec # <<<<<<<<<<<<<< + * + * def getLocalVector(self, Vec lvec, readonly=False): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_lvec)); + __pyx_r = ((PyObject *)__pyx_v_lvec); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":704 + * return array_i(size+1, rng) + * + * def createLocalVector(self): # <<<<<<<<<<<<<< + * lvec = Vec() + * CHKERR( VecCreateLocalVector(self.vec, &lvec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.createLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_lvec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":709 + * return lvec + * + * def getLocalVector(self, Vec lvec, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_113getLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_112getLocalVector[] = "Vec.getLocalVector(self, Vec lvec, readonly=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_113getLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_readonly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lvec,&__pyx_n_s_readonly,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocalVector") < 0)) __PYX_ERR(40, 709, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_lvec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_readonly = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLocalVector", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 709, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "lvec", 0))) __PYX_ERR(40, 709, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_112getLocalVector(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_lvec, __pyx_v_readonly); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_112getLocalVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lvec, PyObject *__pyx_v_readonly) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalVector", 0); + + /* "petsc4py/PETSc/Vec.pyx":710 + * + * def getLocalVector(self, Vec lvec, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 710, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":711 + * def getLocalVector(self, Vec lvec, readonly=False): + * if readonly: + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecGetLocalVector(self.vec, lvec.vec) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalVectorRead(__pyx_v_self->vec, __pyx_v_lvec->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 711, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":710 + * + * def getLocalVector(self, Vec lvec, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":713 + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) + * else: + * CHKERR( VecGetLocalVector(self.vec, lvec.vec) ) # <<<<<<<<<<<<<< + * + * def restoreLocalVector(self, Vec lvec, readonly=False): + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalVector(__pyx_v_self->vec, __pyx_v_lvec->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 713, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":709 + * return lvec + * + * def getLocalVector(self, Vec lvec, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * CHKERR( VecGetLocalVectorRead(self.vec, lvec.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":715 + * CHKERR( VecGetLocalVector(self.vec, lvec.vec) ) + * + * def restoreLocalVector(self, Vec lvec, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_115restoreLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_114restoreLocalVector[] = "Vec.restoreLocalVector(self, Vec lvec, readonly=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_115restoreLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_lvec = 0; + PyObject *__pyx_v_readonly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreLocalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lvec,&__pyx_n_s_readonly,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreLocalVector") < 0)) __PYX_ERR(40, 715, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_lvec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_readonly = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreLocalVector", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 715, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "lvec", 0))) __PYX_ERR(40, 715, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_114restoreLocalVector(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_lvec, __pyx_v_readonly); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_114restoreLocalVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lvec, PyObject *__pyx_v_readonly) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreLocalVector", 0); + + /* "petsc4py/PETSc/Vec.pyx":716 + * + * def restoreLocalVector(self, Vec lvec, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 716, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":717 + * def restoreLocalVector(self, Vec lvec, readonly=False): + * if readonly: + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecRestoreLocalVector(self.vec, lvec.vec) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreLocalVectorRead(__pyx_v_self->vec, __pyx_v_lvec->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 717, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":716 + * + * def restoreLocalVector(self, Vec lvec, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":719 + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) + * else: + * CHKERR( VecRestoreLocalVector(self.vec, lvec.vec) ) # <<<<<<<<<<<<<< + * + * def getBuffer(self, readonly=False): + */ + /*else*/ { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreLocalVector(__pyx_v_self->vec, __pyx_v_lvec->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 719, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":715 + * CHKERR( VecGetLocalVector(self.vec, lvec.vec) ) + * + * def restoreLocalVector(self, Vec lvec, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * CHKERR( VecRestoreLocalVectorRead(self.vec, lvec.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":721 + * CHKERR( VecRestoreLocalVector(self.vec, lvec.vec) ) + * + * def getBuffer(self, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * return vec_getbuffer_r(self) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_117getBuffer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_116getBuffer[] = "Vec.getBuffer(self, readonly=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_117getBuffer(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_readonly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBuffer (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_readonly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getBuffer") < 0)) __PYX_ERR(40, 721, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_readonly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getBuffer", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 721, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_116getBuffer(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_readonly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_116getBuffer(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_readonly) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBuffer", 0); + + /* "petsc4py/PETSc/Vec.pyx":722 + * + * def getBuffer(self, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * return vec_getbuffer_r(self) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 722, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":723 + * def getBuffer(self, readonly=False): + * if readonly: + * return vec_getbuffer_r(self) # <<<<<<<<<<<<<< + * else: + * return vec_getbuffer_w(self) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getbuffer_r(__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":722 + * + * def getBuffer(self, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * return vec_getbuffer_r(self) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":725 + * return vec_getbuffer_r(self) + * else: + * return vec_getbuffer_w(self) # <<<<<<<<<<<<<< + * + * def getArray(self, readonly=False): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getbuffer_w(__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":721 + * CHKERR( VecRestoreLocalVector(self.vec, lvec.vec) ) + * + * def getBuffer(self, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * return vec_getbuffer_r(self) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getBuffer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":727 + * return vec_getbuffer_w(self) + * + * def getArray(self, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * return vec_getarray_r(self) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_119getArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_118getArray[] = "Vec.getArray(self, readonly=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_119getArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_readonly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_readonly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getArray") < 0)) __PYX_ERR(40, 727, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_readonly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getArray", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 727, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_118getArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_readonly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_118getArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_readonly) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getArray", 0); + + /* "petsc4py/PETSc/Vec.pyx":728 + * + * def getArray(self, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * return vec_getarray_r(self) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 728, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":729 + * def getArray(self, readonly=False): + * if readonly: + * return vec_getarray_r(self) # <<<<<<<<<<<<<< + * else: + * return vec_getarray_w(self) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getarray_r(__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":728 + * + * def getArray(self, readonly=False): + * if readonly: # <<<<<<<<<<<<<< + * return vec_getarray_r(self) + * else: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":731 + * return vec_getarray_r(self) + * else: + * return vec_getarray_w(self) # <<<<<<<<<<<<<< + * + * def setArray(self, array): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_vec_getarray_w(__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":727 + * return vec_getbuffer_w(self) + * + * def getArray(self, readonly=False): # <<<<<<<<<<<<<< + * if readonly: + * return vec_getarray_r(self) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":733 + * return vec_getarray_w(self) + * + * def setArray(self, array): # <<<<<<<<<<<<<< + * vec_setarray(self, array) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_121setArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_120setArray[] = "Vec.setArray(self, array)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_121setArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_array = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setArray") < 0)) __PYX_ERR(40, 733, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_array = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setArray", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 733, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_120setArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_array); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_120setArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setArray", 0); + + /* "petsc4py/PETSc/Vec.pyx":734 + * + * def setArray(self, array): + * vec_setarray(self, array) # <<<<<<<<<<<<<< + * + * def placeArray(self, array): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vec_setarray(__pyx_v_self, __pyx_v_array); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 734, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":733 + * return vec_getarray_w(self) + * + * def setArray(self, array): # <<<<<<<<<<<<<< + * vec_setarray(self, array) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":736 + * vec_setarray(self, array) + * + * def placeArray(self, array): # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscInt na=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_123placeArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_122placeArray[] = "Vec.placeArray(self, array)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_123placeArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_array = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("placeArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "placeArray") < 0)) __PYX_ERR(40, 736, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_array = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("placeArray", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 736, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.placeArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_122placeArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_array); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_122placeArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array) { + PetscInt __pyx_v_nv; + PetscInt __pyx_v_na; + PetscScalar *__pyx_v_a; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("placeArray", 0); + __Pyx_INCREF(__pyx_v_array); + + /* "petsc4py/PETSc/Vec.pyx":737 + * + * def placeArray(self, array): + * cdef PetscInt nv=0 # <<<<<<<<<<<<<< + * cdef PetscInt na=0 + * cdef PetscScalar *a = NULL + */ + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/Vec.pyx":738 + * def placeArray(self, array): + * cdef PetscInt nv=0 + * cdef PetscInt na=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *a = NULL + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + */ + __pyx_v_na = 0; + + /* "petsc4py/PETSc/Vec.pyx":739 + * cdef PetscInt nv=0 + * cdef PetscInt na=0 + * cdef PetscScalar *a = NULL # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * array = oarray_s(array, &na, &a) + */ + __pyx_v_a = NULL; + + /* "petsc4py/PETSc/Vec.pyx":740 + * cdef PetscInt na=0 + * cdef PetscScalar *a = NULL + * CHKERR( VecGetLocalSize(self.vec, &nv) ) # <<<<<<<<<<<<<< + * array = oarray_s(array, &na, &a) + * if (na != nv): raise ValueError( + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalSize(__pyx_v_self->vec, (&__pyx_v_nv))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 740, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":741 + * cdef PetscScalar *a = NULL + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * array = oarray_s(array, &na, &a) # <<<<<<<<<<<<<< + * if (na != nv): raise ValueError( + * "cannot place input array size %d, vector size %d" % + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_s(__pyx_v_array, (&__pyx_v_na), (&__pyx_v_a))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":742 + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * array = oarray_s(array, &na, &a) + * if (na != nv): raise ValueError( # <<<<<<<<<<<<<< + * "cannot place input array size %d, vector size %d" % + * (toInt(na), toInt(nv))) + */ + __pyx_t_3 = ((__pyx_v_na != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Vec.pyx":744 + * if (na != nv): raise ValueError( + * "cannot place input array size %d, vector size %d" % + * (toInt(na), toInt(nv))) # <<<<<<<<<<<<<< + * CHKERR( VecPlaceArray(self.vec, a) ) + * self.set_attr('__placed_array__', array) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":743 + * array = oarray_s(array, &na, &a) + * if (na != nv): raise ValueError( + * "cannot place input array size %d, vector size %d" % # <<<<<<<<<<<<<< + * (toInt(na), toInt(nv))) + * CHKERR( VecPlaceArray(self.vec, a) ) + */ + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_cannot_place_input_array_size_d, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":742 + * CHKERR( VecGetLocalSize(self.vec, &nv) ) + * array = oarray_s(array, &na, &a) + * if (na != nv): raise ValueError( # <<<<<<<<<<<<<< + * "cannot place input array size %d, vector size %d" % + * (toInt(na), toInt(nv))) + */ + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(40, 742, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":745 + * "cannot place input array size %d, vector size %d" % + * (toInt(na), toInt(nv))) + * CHKERR( VecPlaceArray(self.vec, a) ) # <<<<<<<<<<<<<< + * self.set_attr('__placed_array__', array) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPlaceArray(__pyx_v_self->vec, __pyx_v_a)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 745, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":746 + * (toInt(na), toInt(nv))) + * CHKERR( VecPlaceArray(self.vec, a) ) + * self.set_attr('__placed_array__', array) # <<<<<<<<<<<<<< + * + * def resetArray(self, force=False): + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__placed_array__"), __pyx_v_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 746, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":736 + * vec_setarray(self, array) + * + * def placeArray(self, array): # <<<<<<<<<<<<<< + * cdef PetscInt nv=0 + * cdef PetscInt na=0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.placeArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":748 + * self.set_attr('__placed_array__', array) + * + * def resetArray(self, force=False): # <<<<<<<<<<<<<< + * cdef object array = None + * array = self.get_attr('__placed_array__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_125resetArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_124resetArray[] = "Vec.resetArray(self, force=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_125resetArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_force = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("resetArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_force); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "resetArray") < 0)) __PYX_ERR(40, 748, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_force = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("resetArray", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 748, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.resetArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_124resetArray(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_force); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_124resetArray(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_force) { + PyObject *__pyx_v_array = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("resetArray", 0); + + /* "petsc4py/PETSc/Vec.pyx":749 + * + * def resetArray(self, force=False): + * cdef object array = None # <<<<<<<<<<<<<< + * array = self.get_attr('__placed_array__') + * if array is None and not force: return None + */ + __Pyx_INCREF(Py_None); + __pyx_v_array = Py_None; + + /* "petsc4py/PETSc/Vec.pyx":750 + * def resetArray(self, force=False): + * cdef object array = None + * array = self.get_attr('__placed_array__') # <<<<<<<<<<<<<< + * if array is None and not force: return None + * CHKERR( VecResetArray(self.vec) ) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__placed_array__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":751 + * cdef object array = None + * array = self.get_attr('__placed_array__') + * if array is None and not force: return None # <<<<<<<<<<<<<< + * CHKERR( VecResetArray(self.vec) ) + * self.set_attr('__placed_array__', None) + */ + __pyx_t_3 = (__pyx_v_array == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_force); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(40, 751, __pyx_L1_error) + __pyx_t_3 = ((!__pyx_t_4) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":752 + * array = self.get_attr('__placed_array__') + * if array is None and not force: return None + * CHKERR( VecResetArray(self.vec) ) # <<<<<<<<<<<<<< + * self.set_attr('__placed_array__', None) + * return array + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecResetArray(__pyx_v_self->vec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 752, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":753 + * if array is None and not force: return None + * CHKERR( VecResetArray(self.vec) ) + * self.set_attr('__placed_array__', None) # <<<<<<<<<<<<<< + * return array + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__placed_array__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":754 + * CHKERR( VecResetArray(self.vec) ) + * self.set_attr('__placed_array__', None) + * return array # <<<<<<<<<<<<<< + * + * def bindToCPU(self, flg): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_array); + __pyx_r = __pyx_v_array; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":748 + * self.set_attr('__placed_array__', array) + * + * def resetArray(self, force=False): # <<<<<<<<<<<<<< + * cdef object array = None + * array = self.get_attr('__placed_array__') + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.resetArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":756 + * return array + * + * def bindToCPU(self, flg): # <<<<<<<<<<<<<< + * """ + * If *flg* is *True*, all subsequent operations of *self* would be + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_127bindToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_126bindToCPU[] = "Vec.bindToCPU(self, flg)\n\n If *flg* is *True*, all subsequent operations of *self* would be\n performed on CPU. If *flg* is *False*, all subsequent operations of\n *self* would be offloaded to the device, provided that the VecType is\n capable of offloading.\n\n :arg flg: An instance of :class:`bool`.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_127bindToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bindToCPU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bindToCPU") < 0)) __PYX_ERR(40, 756, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flg = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bindToCPU", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 756, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.bindToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_126bindToCPU(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_flg); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_126bindToCPU(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_flg) { + PetscBool __pyx_v_bindFlg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bindToCPU", 0); + + /* "petsc4py/PETSc/Vec.pyx":765 + * :arg flg: An instance of :class:`bool`. + * """ + * cdef PetscBool bindFlg = asBool(flg) # <<<<<<<<<<<<<< + * CHKERR( VecBindToCPU(self.vec, bindFlg) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flg); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(40, 765, __pyx_L1_error) + __pyx_v_bindFlg = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":766 + * """ + * cdef PetscBool bindFlg = asBool(flg) + * CHKERR( VecBindToCPU(self.vec, bindFlg) ) # <<<<<<<<<<<<<< + * + * def boundToCPU(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecBindToCPU(__pyx_v_self->vec, __pyx_v_bindFlg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 766, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":756 + * return array + * + * def bindToCPU(self, flg): # <<<<<<<<<<<<<< + * """ + * If *flg* is *True*, all subsequent operations of *self* would be + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.bindToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":768 + * CHKERR( VecBindToCPU(self.vec, bindFlg) ) + * + * def boundToCPU(self): # <<<<<<<<<<<<<< + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( VecBoundToCPU(self.vec, &flg) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_129boundToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_128boundToCPU[] = "Vec.boundToCPU(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_129boundToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("boundToCPU (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("boundToCPU", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "boundToCPU", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_128boundToCPU(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_128boundToCPU(struct PyPetscVecObject *__pyx_v_self) { + PetscBool __pyx_v_flg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("boundToCPU", 0); + + /* "petsc4py/PETSc/Vec.pyx":769 + * + * def boundToCPU(self): + * cdef PetscBool flg = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( VecBoundToCPU(self.vec, &flg) ) + * return toBool(flg) + */ + __pyx_v_flg = PETSC_TRUE; + + /* "petsc4py/PETSc/Vec.pyx":770 + * def boundToCPU(self): + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( VecBoundToCPU(self.vec, &flg) ) # <<<<<<<<<<<<<< + * return toBool(flg) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecBoundToCPU(__pyx_v_self->vec, (&__pyx_v_flg))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 770, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":771 + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( VecBoundToCPU(self.vec, &flg) ) + * return toBool(flg) # <<<<<<<<<<<<<< + * + * def getCUDAHandle(self, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flg); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":768 + * CHKERR( VecBindToCPU(self.vec, bindFlg) ) + * + * def boundToCPU(self): # <<<<<<<<<<<<<< + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( VecBoundToCPU(self.vec, &flg) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.boundToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":773 + * return toBool(flg) + * + * def getCUDAHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_131getCUDAHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_130getCUDAHandle[] = "Vec.getCUDAHandle(self, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_131getCUDAHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCUDAHandle (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCUDAHandle") < 0)) __PYX_ERR(40, 773, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCUDAHandle", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 773, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCUDAHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_130getCUDAHandle(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_130getCUDAHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode) { + PetscScalar *__pyx_v_hdl; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCUDAHandle", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":774 + * + * def getCUDAHandle(self, mode='rw'): + * cdef PetscScalar *hdl = NULL # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + */ + __pyx_v_hdl = NULL; + + /* "petsc4py/PETSc/Vec.pyx":775 + * def getCUDAHandle(self, mode='rw'): + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Vec.pyx":776 + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) # <<<<<<<<<<<<<< + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + */ + __pyx_t_1 = (__pyx_v_mode != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_m)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 776, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":777 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + __pyx_t_1 = ((__pyx_v_m == NULL) != 0); + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (((__pyx_v_m[1]) == 'w') != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":778 + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'r': + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDAGetArray(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 778, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":777 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":779 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":780 + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'w': + * CHKERR( VecCUDAGetArrayWrite(self.vec, &hdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDAGetArrayRead(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_hdl)))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 780, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":779 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDAGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":781 + * elif m[0] == c'r': + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArrayWrite(self.vec, &hdl) ) + * else: + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'w') != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":782 + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + * CHKERR( VecCUDAGetArrayWrite(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDAGetArrayWrite(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 782, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":781 + * elif m[0] == c'r': + * CHKERR( VecCUDAGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecCUDAGetArrayWrite(self.vec, &hdl) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":784 + * CHKERR( VecCUDAGetArrayWrite(self.vec, &hdl) ) + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * return hdl + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(40, 784, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Vec.pyx":785 + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * return hdl # <<<<<<<<<<<<<< + * + * def restoreCUDAHandle(self, handle, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_FromSize_t(((Py_uintptr_t)__pyx_v_hdl)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":773 + * return toBool(flg) + * + * def getCUDAHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCUDAHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":787 + * return hdl + * + * def restoreCUDAHandle(self, handle, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_133restoreCUDAHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_132restoreCUDAHandle[] = "Vec.restoreCUDAHandle(self, handle, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_133restoreCUDAHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_handle = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreCUDAHandle (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handle,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreCUDAHandle") < 0)) __PYX_ERR(40, 787, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_handle = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreCUDAHandle", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 787, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreCUDAHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_132restoreCUDAHandle(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_handle, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_132restoreCUDAHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_mode) { + PetscScalar *__pyx_v_hdl; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_uintptr_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreCUDAHandle", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":788 + * + * def restoreCUDAHandle(self, handle, mode='rw'): + * cdef PetscScalar *hdl = (handle) # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + */ + __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_handle); if (unlikely((__pyx_t_1 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 788, __pyx_L1_error) + __pyx_v_hdl = ((PetscScalar *)((Py_uintptr_t)__pyx_t_1)); + + /* "petsc4py/PETSc/Vec.pyx":789 + * def restoreCUDAHandle(self, handle, mode='rw'): + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Vec.pyx":790 + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) # <<<<<<<<<<<<<< + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + */ + __pyx_t_2 = (__pyx_v_mode != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_m)); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":791 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + __pyx_t_2 = ((__pyx_v_m == NULL) != 0); + if (!__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_m[1]) == 'w') != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":792 + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'r': + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDARestoreArray(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 792, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":791 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":793 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + __pyx_t_3 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":794 + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'w': + * CHKERR( VecCUDARestoreArrayWrite(self.vec, &hdl) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDARestoreArrayRead(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_hdl)))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 794, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":793 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecCUDARestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":795 + * elif m[0] == c'r': + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArrayWrite(self.vec, &hdl) ) + * else: + */ + __pyx_t_3 = (((__pyx_v_m[0]) == 'w') != 0); + if (likely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Vec.pyx":796 + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + * CHKERR( VecCUDARestoreArrayWrite(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCUDARestoreArrayWrite(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 796, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":795 + * elif m[0] == c'r': + * CHKERR( VecCUDARestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecCUDARestoreArrayWrite(self.vec, &hdl) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":798 + * CHKERR( VecCUDARestoreArrayWrite(self.vec, &hdl) ) + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * + * def getHIPHandle(self, mode='rw'): + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(40, 798, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Vec.pyx":787 + * return hdl + * + * def restoreCUDAHandle(self, handle, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreCUDAHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":800 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * def getHIPHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_135getHIPHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_134getHIPHandle[] = "Vec.getHIPHandle(self, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_135getHIPHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHIPHandle (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getHIPHandle") < 0)) __PYX_ERR(40, 800, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getHIPHandle", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 800, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getHIPHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_134getHIPHandle(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_134getHIPHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode) { + PetscScalar *__pyx_v_hdl; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHIPHandle", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":801 + * + * def getHIPHandle(self, mode='rw'): + * cdef PetscScalar *hdl = NULL # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + */ + __pyx_v_hdl = NULL; + + /* "petsc4py/PETSc/Vec.pyx":802 + * def getHIPHandle(self, mode='rw'): + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Vec.pyx":803 + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) # <<<<<<<<<<<<<< + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + */ + __pyx_t_1 = (__pyx_v_mode != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_m)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":804 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + __pyx_t_1 = ((__pyx_v_m == NULL) != 0); + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (((__pyx_v_m[1]) == 'w') != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":805 + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'r': + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPGetArray(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 805, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":804 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":806 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":807 + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'w': + * CHKERR( VecHIPGetArrayWrite(self.vec, &hdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPGetArrayRead(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_hdl)))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 807, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":806 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPGetArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":808 + * elif m[0] == c'r': + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArrayWrite(self.vec, &hdl) ) + * else: + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'w') != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":809 + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + * CHKERR( VecHIPGetArrayWrite(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPGetArrayWrite(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 809, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":808 + * elif m[0] == c'r': + * CHKERR( VecHIPGetArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecHIPGetArrayWrite(self.vec, &hdl) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":811 + * CHKERR( VecHIPGetArrayWrite(self.vec, &hdl) ) + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * return hdl + * + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(40, 811, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Vec.pyx":812 + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * return hdl # <<<<<<<<<<<<<< + * + * def restoreHIPHandle(self, handle, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __Pyx_PyInt_FromSize_t(((Py_uintptr_t)__pyx_v_hdl)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":800 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * def getHIPHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = NULL + * cdef const char *m = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getHIPHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":814 + * return hdl + * + * def restoreHIPHandle(self, handle, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_137restoreHIPHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_136restoreHIPHandle[] = "Vec.restoreHIPHandle(self, handle, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_137restoreHIPHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_handle = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreHIPHandle (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_handle,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_handle)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreHIPHandle") < 0)) __PYX_ERR(40, 814, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_handle = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreHIPHandle", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 814, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreHIPHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_136restoreHIPHandle(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_handle, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_136restoreHIPHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_handle, PyObject *__pyx_v_mode) { + PetscScalar *__pyx_v_hdl; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_uintptr_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreHIPHandle", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":815 + * + * def restoreHIPHandle(self, handle, mode='rw'): + * cdef PetscScalar *hdl = (handle) # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + */ + __pyx_t_1 = __Pyx_PyInt_As_size_t(__pyx_v_handle); if (unlikely((__pyx_t_1 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(40, 815, __pyx_L1_error) + __pyx_v_hdl = ((PetscScalar *)((Py_uintptr_t)__pyx_t_1)); + + /* "petsc4py/PETSc/Vec.pyx":816 + * def restoreHIPHandle(self, handle, mode='rw'): + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Vec.pyx":817 + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) # <<<<<<<<<<<<<< + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + */ + __pyx_t_2 = (__pyx_v_mode != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_m)); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Vec.pyx":818 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + __pyx_t_2 = ((__pyx_v_m == NULL) != 0); + if (!__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_2) { + } else { + __pyx_t_3 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_m[1]) == 'w') != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":819 + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'r': + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPRestoreArray(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 819, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":818 + * cdef const char *m = NULL + * if mode is not None: mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":820 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + __pyx_t_3 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Vec.pyx":821 + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'w': + * CHKERR( VecHIPRestoreArrayWrite(self.vec, &hdl) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPRestoreArrayRead(__pyx_v_self->vec, ((PetscScalar const **)(&__pyx_v_hdl)))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 821, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":820 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecHIPRestoreArray(self.vec, &hdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":822 + * elif m[0] == c'r': + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArrayWrite(self.vec, &hdl) ) + * else: + */ + __pyx_t_3 = (((__pyx_v_m[0]) == 'w') != 0); + if (likely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Vec.pyx":823 + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': + * CHKERR( VecHIPRestoreArrayWrite(self.vec, &hdl) ) # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecHIPRestoreArrayWrite(__pyx_v_self->vec, (&__pyx_v_hdl))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 823, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":822 + * elif m[0] == c'r': + * CHKERR( VecHIPRestoreArrayRead(self.vec, &hdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecHIPRestoreArrayWrite(self.vec, &hdl) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Vec.pyx":825 + * CHKERR( VecHIPRestoreArrayWrite(self.vec, &hdl) ) + * else: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * + * def getOffloadMask(self): + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(40, 825, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Vec.pyx":814 + * return hdl + * + * def restoreHIPHandle(self, handle, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscScalar *hdl = (handle) + * cdef const char *m = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreHIPHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":827 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * def getOffloadMask(self): # <<<<<<<<<<<<<< + * """ + * Returns :class:`int` of the Vec's PetscOffloadMask enum value. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_139getOffloadMask(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_138getOffloadMask[] = "Vec.getOffloadMask(self)\n\n Returns :class:`int` of the Vec's PetscOffloadMask enum value.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_139getOffloadMask(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOffloadMask (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOffloadMask", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOffloadMask", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_138getOffloadMask(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_138getOffloadMask(struct PyPetscVecObject *__pyx_v_self) { + PetscOffloadMask __pyx_v_mask; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOffloadMask", 0); + + /* "petsc4py/PETSc/Vec.pyx":832 + * """ + * cdef PetscOffloadMask mask + * CHKERR( VecGetOffloadMask(self.vec, &mask) ) # <<<<<<<<<<<<<< + * return mask + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetOffloadMask(__pyx_v_self->vec, (&__pyx_v_mask))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 832, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":833 + * cdef PetscOffloadMask mask + * CHKERR( VecGetOffloadMask(self.vec, &mask) ) + * return mask # <<<<<<<<<<<<<< + * + * def getCLContextHandle(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscOffloadMask(__pyx_v_mask); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":827 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * def getOffloadMask(self): # <<<<<<<<<<<<<< + * """ + * Returns :class:`int` of the Vec's PetscOffloadMask enum value. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getOffloadMask", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":835 + * return mask + * + * def getCLContextHandle(self): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL Context as :class:`int`. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_141getCLContextHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_140getCLContextHandle[] = "Vec.getCLContextHandle(self)\n\n Returns a Vec's CL Context as :class:`int`.\n\n To interface with :mod:`pyopencl` refer\n :meth:`pyopencl.Context.from_int_ptr`\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_141getCLContextHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCLContextHandle (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCLContextHandle", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCLContextHandle", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_140getCLContextHandle(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_140getCLContextHandle(struct PyPetscVecObject *__pyx_v_self) { + Py_uintptr_t __pyx_v_ctxhdl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCLContextHandle", 0); + + /* "petsc4py/PETSc/Vec.pyx":842 + * :meth:`pyopencl.Context.from_int_ptr` + * """ + * cdef Py_uintptr_t ctxhdl = 0 # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLContext(self.vec, &ctxhdl) ) + * return ctxhdl + */ + __pyx_v_ctxhdl = 0; + + /* "petsc4py/PETSc/Vec.pyx":843 + * """ + * cdef Py_uintptr_t ctxhdl = 0 + * CHKERR( VecViennaCLGetCLContext(self.vec, &ctxhdl) ) # <<<<<<<<<<<<<< + * return ctxhdl + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLGetCLContext(__pyx_v_self->vec, (&__pyx_v_ctxhdl))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 843, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":844 + * cdef Py_uintptr_t ctxhdl = 0 + * CHKERR( VecViennaCLGetCLContext(self.vec, &ctxhdl) ) + * return ctxhdl # <<<<<<<<<<<<<< + * + * def getCLQueueHandle(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_ctxhdl); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":835 + * return mask + * + * def getCLContextHandle(self): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL Context as :class:`int`. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCLContextHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":846 + * return ctxhdl + * + * def getCLQueueHandle(self): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL Context as :class:`int`. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_143getCLQueueHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_142getCLQueueHandle[] = "Vec.getCLQueueHandle(self)\n\n Returns a Vec's CL Context as :class:`int`.\n\n To interface with :mod:`pyopencl` refer\n :meth:`pyopencl.Context.from_int_ptr`\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_143getCLQueueHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCLQueueHandle (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCLQueueHandle", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCLQueueHandle", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_142getCLQueueHandle(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_142getCLQueueHandle(struct PyPetscVecObject *__pyx_v_self) { + Py_uintptr_t __pyx_v_queuehdl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCLQueueHandle", 0); + + /* "petsc4py/PETSc/Vec.pyx":853 + * :meth:`pyopencl.Context.from_int_ptr` + * """ + * cdef Py_uintptr_t queuehdl = 0 # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLQueue(self.vec, &queuehdl) ) + * return queuehdl + */ + __pyx_v_queuehdl = 0; + + /* "petsc4py/PETSc/Vec.pyx":854 + * """ + * cdef Py_uintptr_t queuehdl = 0 + * CHKERR( VecViennaCLGetCLQueue(self.vec, &queuehdl) ) # <<<<<<<<<<<<<< + * return queuehdl + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLGetCLQueue(__pyx_v_self->vec, (&__pyx_v_queuehdl))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 854, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":855 + * cdef Py_uintptr_t queuehdl = 0 + * CHKERR( VecViennaCLGetCLQueue(self.vec, &queuehdl) ) + * return queuehdl # <<<<<<<<<<<<<< + * + * def getCLMemHandle(self, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_v_queuehdl); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":846 + * return ctxhdl + * + * def getCLQueueHandle(self): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL Context as :class:`int`. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCLQueueHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":857 + * return queuehdl + * + * def getCLMemHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL buffer as :class:`int`. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_145getCLMemHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_144getCLMemHandle[] = "Vec.getCLMemHandle(self, mode='rw')\n\n Returns a Vec's CL buffer as :class:`int`.\n\n To interface with :mod:`pyopencl` refer\n :meth:`pyopencl.MemoryObject.from_int_ptr`.\n\n :arg mode: An instance of class:`str` denoting the intended access\n usage to the CL buffer. Can be one of 'r'(read-only), 'w'\n (write-only) or 'rw' (read-write). See also\n :meth:`Vec.restoreCLMemHandle`.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_145getCLMemHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCLMemHandle (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCLMemHandle") < 0)) __PYX_ERR(40, 857, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCLMemHandle", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 857, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCLMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_144getCLMemHandle(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_144getCLMemHandle(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_mode) { + Py_uintptr_t __pyx_v_memhdl; + char const *__pyx_v_m; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCLMemHandle", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Vec.pyx":869 + * :meth:`Vec.restoreCLMemHandle`. + * """ + * cdef Py_uintptr_t memhdl = 0 # <<<<<<<<<<<<<< + * cdef const char *m = NULL + * mode = str2bytes(mode, &m) + */ + __pyx_v_memhdl = 0; + + /* "petsc4py/PETSc/Vec.pyx":870 + * """ + * cdef Py_uintptr_t memhdl = 0 + * cdef const char *m = NULL # <<<<<<<<<<<<<< + * mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + */ + __pyx_v_m = NULL; + + /* "petsc4py/PETSc/Vec.pyx":871 + * cdef Py_uintptr_t memhdl = 0 + * cdef const char *m = NULL + * mode = str2bytes(mode, &m) # <<<<<<<<<<<<<< + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mode, (&__pyx_v_m)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":872 + * cdef const char *m = NULL + * mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + * elif m[0] == c'r': + */ + __pyx_t_3 = ((__pyx_v_m == NULL) != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_m[1]) == 'w') != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":873 + * mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'r': + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLGetCLMem(__pyx_v_self->vec, (&__pyx_v_memhdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 873, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":872 + * cdef const char *m = NULL + * mode = str2bytes(mode, &m) + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + * elif m[0] == c'r': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":874 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + * elif m[0] == c'w': + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'r') != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":875 + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + * elif m[0] == c'r': + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) # <<<<<<<<<<<<<< + * elif m[0] == c'w': + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLGetCLMemRead(__pyx_v_self->vec, (&__pyx_v_memhdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 875, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":874 + * if m == NULL or (m[0] == c'r' and m[1] == c'w'): + * CHKERR( VecViennaCLGetCLMem(self.vec, &memhdl) ) + * elif m[0] == c'r': # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + * elif m[0] == c'w': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":876 + * elif m[0] == c'r': + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) + * else: + */ + __pyx_t_2 = (((__pyx_v_m[0]) == 'w') != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Vec.pyx":877 + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + * elif m[0] == c'w': + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode: expected 'r', 'w' or 'rw'") + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLGetCLMemWrite(__pyx_v_self->vec, (&__pyx_v_memhdl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 877, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":876 + * elif m[0] == c'r': + * CHKERR( VecViennaCLGetCLMemRead(self.vec, &memhdl) ) + * elif m[0] == c'w': # <<<<<<<<<<<<<< + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":879 + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) + * else: + * raise ValueError("Invalid mode: expected 'r', 'w' or 'rw'") # <<<<<<<<<<<<<< + * return memhdl + * + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 879, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":880 + * else: + * raise ValueError("Invalid mode: expected 'r', 'w' or 'rw'") + * return memhdl # <<<<<<<<<<<<<< + * + * def restoreCLMemHandle(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_v_memhdl); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":857 + * return queuehdl + * + * def getCLMemHandle(self, mode='rw'): # <<<<<<<<<<<<<< + * """ + * Returns a Vec's CL buffer as :class:`int`. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getCLMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":882 + * return memhdl + * + * def restoreCLMemHandle(self): # <<<<<<<<<<<<<< + * """ + * To be called after accessing a Vec's cl_mem in 'w' or 'rw' modes. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_147restoreCLMemHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_146restoreCLMemHandle[] = "Vec.restoreCLMemHandle(self)\n\n To be called after accessing a Vec's cl_mem in 'w' or 'rw' modes.\n See also :meth:`Vec.getCLMemHandle`.\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_147restoreCLMemHandle(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreCLMemHandle (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("restoreCLMemHandle", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "restoreCLMemHandle", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_146restoreCLMemHandle(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_146restoreCLMemHandle(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreCLMemHandle", 0); + + /* "petsc4py/PETSc/Vec.pyx":887 + * See also :meth:`Vec.getCLMemHandle`. + * """ + * CHKERR( VecViennaCLRestoreCLMemWrite(self.vec) ) # <<<<<<<<<<<<<< + * + * def duplicate(self, array=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecViennaCLRestoreCLMemWrite(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 887, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":882 + * return memhdl + * + * def restoreCLMemHandle(self): # <<<<<<<<<<<<<< + * """ + * To be called after accessing a Vec's cl_mem in 'w' or 'rw' modes. + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreCLMemHandle", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":889 + * CHKERR( VecViennaCLRestoreCLMemWrite(self.vec) ) + * + * def duplicate(self, array=None): # <<<<<<<<<<<<<< + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_149duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_148duplicate[] = "Vec.duplicate(self, array=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_149duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_array = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "duplicate") < 0)) __PYX_ERR(40, 889, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_array = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("duplicate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 889, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_148duplicate(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_array); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_148duplicate(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_array) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_ctx0 = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/Vec.pyx":890 + * + * def duplicate(self, array=None): + * cdef Vec vec = type(self)() # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + * # duplicate tensor context + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 890, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 890, __pyx_L1_error) + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":891 + * def duplicate(self, array=None): + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) # <<<<<<<<<<<<<< + * # duplicate tensor context + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_self->vec, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 891, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":893 + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + * # duplicate tensor context + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') # <<<<<<<<<<<<<< + * if ctx0 is not None: + * vec.set_attr('__dltensor_ctx__', ctx0) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__dltensor_ctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ctx0 = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":894 + * # duplicate tensor context + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * if ctx0 is not None: # <<<<<<<<<<<<<< + * vec.set_attr('__dltensor_ctx__', ctx0) + * if array is not None: + */ + __pyx_t_5 = (__pyx_v_ctx0 != Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Vec.pyx":895 + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * if ctx0 is not None: + * vec.set_attr('__dltensor_ctx__', ctx0) # <<<<<<<<<<<<<< + * if array is not None: + * vec_setarray(vec, array) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec *)__pyx_v_vec->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_vec), ((char *)"__dltensor_ctx__"), __pyx_v_ctx0); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":894 + * # duplicate tensor context + * cdef object ctx0 = self.get_attr('__dltensor_ctx__') + * if ctx0 is not None: # <<<<<<<<<<<<<< + * vec.set_attr('__dltensor_ctx__', ctx0) + * if array is not None: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":896 + * if ctx0 is not None: + * vec.set_attr('__dltensor_ctx__', ctx0) + * if array is not None: # <<<<<<<<<<<<<< + * vec_setarray(vec, array) + * return vec + */ + __pyx_t_6 = (__pyx_v_array != Py_None); + __pyx_t_5 = (__pyx_t_6 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/Vec.pyx":897 + * vec.set_attr('__dltensor_ctx__', ctx0) + * if array is not None: + * vec_setarray(vec, array) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_vec_setarray(__pyx_v_vec, __pyx_v_array); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(40, 897, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":896 + * if ctx0 is not None: + * vec.set_attr('__dltensor_ctx__', ctx0) + * if array is not None: # <<<<<<<<<<<<<< + * vec_setarray(vec, array) + * return vec + */ + } + + /* "petsc4py/PETSc/Vec.pyx":898 + * if array is not None: + * vec_setarray(vec, array) + * return vec # <<<<<<<<<<<<<< + * + * def copy(self, Vec result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":889 + * CHKERR( VecViennaCLRestoreCLMemWrite(self.vec) ) + * + * def duplicate(self, array=None): # <<<<<<<<<<<<<< + * cdef Vec vec = type(self)() + * CHKERR( VecDuplicate(self.vec, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_ctx0); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":900 + * return vec + * + * def copy(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = type(self)() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_151copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_150copy[] = "Vec.copy(self, Vec result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_151copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_result,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copy") < 0)) __PYX_ERR(40, 900, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_result = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copy", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 900, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "result", 0))) __PYX_ERR(40, 900, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_150copy(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_150copy(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Vec.pyx":901 + * + * def copy(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.vec == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":902 + * def copy(self, Vec result=None): + * if result is None: + * result = type(self)() # <<<<<<<<<<<<<< + * if result.vec == NULL: + * CHKERR( VecDuplicate(self.vec, &result.vec) ) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_4 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 902, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(40, 902, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Vec.pyx":901 + * + * def copy(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.vec == NULL: + */ + } + + /* "petsc4py/PETSc/Vec.pyx":903 + * if result is None: + * result = type(self)() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(self.vec, &result.vec) ) + * CHKERR( VecCopy(self.vec, result.vec) ) + */ + __pyx_t_2 = ((__pyx_v_result->vec == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Vec.pyx":904 + * result = type(self)() + * if result.vec == NULL: + * CHKERR( VecDuplicate(self.vec, &result.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecCopy(self.vec, result.vec) ) + * return result + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_self->vec, (&__pyx_v_result->vec))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 904, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":903 + * if result is None: + * result = type(self)() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(self.vec, &result.vec) ) + * CHKERR( VecCopy(self.vec, result.vec) ) + */ + } + + /* "petsc4py/PETSc/Vec.pyx":905 + * if result.vec == NULL: + * CHKERR( VecDuplicate(self.vec, &result.vec) ) + * CHKERR( VecCopy(self.vec, result.vec) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_self->vec, __pyx_v_result->vec)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 905, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":906 + * CHKERR( VecDuplicate(self.vec, &result.vec) ) + * CHKERR( VecCopy(self.vec, result.vec) ) + * return result # <<<<<<<<<<<<<< + * + * def chop(self, tol): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":900 + * return vec + * + * def copy(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = type(self)() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":908 + * return result + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_153chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_152chop[] = "Vec.chop(self, tol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_153chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("chop (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chop") < 0)) __PYX_ERR(40, 908, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("chop", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 908, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_152chop(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_152chop(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("chop", 0); + + /* "petsc4py/PETSc/Vec.pyx":909 + * + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * CHKERR( VecChop(self.vec, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(40, 909, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":910 + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) # <<<<<<<<<<<<<< + * + * def load(self, Viewer viewer): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecChop(__pyx_v_self->vec, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 910, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":908 + * return result + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":912 + * CHKERR( VecChop(self.vec, rval) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_155load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_154load[] = "Vec.load(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_155load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("load (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "load") < 0)) __PYX_ERR(40, 912, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("load", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 912, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(40, 912, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_154load(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_154load(struct PyPetscVecObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + MPI_Comm __pyx_v_comm; + PetscObject __pyx_v_obj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load", 0); + + /* "petsc4py/PETSc/Vec.pyx":913 + * + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * cdef PetscObject obj = (viewer.vwr) + * if self.vec == NULL: + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Vec.pyx":914 + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) # <<<<<<<<<<<<<< + * if self.vec == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + */ + __pyx_v_obj = ((PetscObject)__pyx_v_viewer->vwr); + + /* "petsc4py/PETSc/Vec.pyx":915 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( VecCreate(comm, &self.vec) ) + */ + __pyx_t_1 = ((__pyx_v_self->vec == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Vec.pyx":916 + * cdef PetscObject obj = (viewer.vwr) + * if self.vec == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) # <<<<<<<<<<<<<< + * CHKERR( VecCreate(comm, &self.vec) ) + * CHKERR( VecLoad(self.vec, viewer.vwr) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(__pyx_v_obj, (&__pyx_v_comm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 916, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":917 + * if self.vec == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( VecCreate(comm, &self.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecLoad(self.vec, viewer.vwr) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreate(__pyx_v_comm, (&__pyx_v_self->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 917, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":915 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( VecCreate(comm, &self.vec) ) + */ + } + + /* "petsc4py/PETSc/Vec.pyx":918 + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( VecCreate(comm, &self.vec) ) + * CHKERR( VecLoad(self.vec, viewer.vwr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecLoad(__pyx_v_self->vec, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 918, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":919 + * CHKERR( VecCreate(comm, &self.vec) ) + * CHKERR( VecLoad(self.vec, viewer.vwr) ) + * return self # <<<<<<<<<<<<<< + * + * def equal(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":912 + * CHKERR( VecChop(self.vec, rval) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":921 + * return self + * + * def equal(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( VecEqual(self.vec, vec.vec, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_157equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_156equal[] = "Vec.equal(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_157equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("equal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "equal") < 0)) __PYX_ERR(40, 921, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("equal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 921, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 921, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_156equal(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_156equal(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("equal", 0); + + /* "petsc4py/PETSc/Vec.pyx":922 + * + * def equal(self, Vec vec): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( VecEqual(self.vec, vec.vec, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Vec.pyx":923 + * def equal(self, Vec vec): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( VecEqual(self.vec, vec.vec, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecEqual(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 923, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":924 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( VecEqual(self.vec, vec.vec, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def dot(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":921 + * return self + * + * def equal(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( VecEqual(self.vec, vec.vec, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":926 + * return toBool(flag) + * + * def dot(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDot(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_159dot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_158dot[] = "Vec.dot(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_159dot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dot") < 0)) __PYX_ERR(40, 926, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("dot", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 926, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 926, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_158dot(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_158dot(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("dot", 0); + + /* "petsc4py/PETSc/Vec.pyx":927 + * + * def dot(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecDot(self.vec, vec.vec, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":928 + * def dot(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecDot(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDot(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 928, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":929 + * cdef PetscScalar sval = 0 + * CHKERR( VecDot(self.vec, vec.vec, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def dotBegin(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":926 + * return toBool(flag) + * + * def dot(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDot(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":931 + * return toScalar(sval) + * + * def dotBegin(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_161dotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_160dotBegin[] = "Vec.dotBegin(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_161dotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dotBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dotBegin") < 0)) __PYX_ERR(40, 931, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("dotBegin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 931, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 931, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_160dotBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_160dotBegin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("dotBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":932 + * + * def dotBegin(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) + * + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":933 + * def dotBegin(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * + * def dotEnd(self, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDotBegin(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 933, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":931 + * return toScalar(sval) + * + * def dotBegin(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":935 + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) + * + * def dotEnd(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDotEnd(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_163dotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_162dotEnd[] = "Vec.dotEnd(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_163dotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("dotEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dotEnd") < 0)) __PYX_ERR(40, 935, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("dotEnd", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 935, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 935, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_162dotEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_162dotEnd(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("dotEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":936 + * + * def dotEnd(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecDotEnd(self.vec, vec.vec, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":937 + * def dotEnd(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecDotEnd(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDotEnd(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 937, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":938 + * cdef PetscScalar sval = 0 + * CHKERR( VecDotEnd(self.vec, vec.vec, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def tDot(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":935 + * CHKERR( VecDotBegin(self.vec, vec.vec, &sval) ) + * + * def dotEnd(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecDotEnd(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.dotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":940 + * return toScalar(sval) + * + * def tDot(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDot(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_165tDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_164tDot[] = "Vec.tDot(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_165tDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("tDot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tDot") < 0)) __PYX_ERR(40, 940, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("tDot", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 940, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 940, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_164tDot(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_164tDot(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("tDot", 0); + + /* "petsc4py/PETSc/Vec.pyx":941 + * + * def tDot(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecTDot(self.vec, vec.vec, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":942 + * def tDot(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecTDot(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecTDot(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 942, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":943 + * cdef PetscScalar sval = 0 + * CHKERR( VecTDot(self.vec, vec.vec, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def tDotBegin(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":940 + * return toScalar(sval) + * + * def tDot(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDot(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":945 + * return toScalar(sval) + * + * def tDotBegin(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_167tDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_166tDotBegin[] = "Vec.tDotBegin(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_167tDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("tDotBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tDotBegin") < 0)) __PYX_ERR(40, 945, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("tDotBegin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 945, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 945, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_166tDotBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_166tDotBegin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("tDotBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":946 + * + * def tDotBegin(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) + * + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":947 + * def tDotBegin(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * + * def tDotEnd(self, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecTDotBegin(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 947, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":945 + * return toScalar(sval) + * + * def tDotBegin(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":949 + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) + * + * def tDotEnd(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotEnd(self.vec, vec.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_169tDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_168tDotEnd[] = "Vec.tDotEnd(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_169tDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("tDotEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tDotEnd") < 0)) __PYX_ERR(40, 949, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("tDotEnd", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 949, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 949, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_168tDotEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_168tDotEnd(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("tDotEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":950 + * + * def tDotEnd(self, Vec vec): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecTDotEnd(self.vec, vec.vec, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":951 + * def tDotEnd(self, Vec vec): + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotEnd(self.vec, vec.vec, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecTDotEnd(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 951, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":952 + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotEnd(self.vec, vec.vec, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def mDot(self, vecs, out=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":949 + * CHKERR( VecTDotBegin(self.vec, vec.vec, &sval) ) + * + * def tDotEnd(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecTDotEnd(self.vec, vec.vec, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.tDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":954 + * return toScalar(sval) + * + * def mDot(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_171mDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_170mDot[] = "Vec.mDot(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_171mDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mDot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mDot") < 0)) __PYX_ERR(40, 954, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mDot", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 954, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_170mDot(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_170mDot(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mDot", 0); + + /* "petsc4py/PETSc/Vec.pyx":955 + * + * def mDot(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":956 + * def mDot(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def mDotBegin(self, vecs, out=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 956, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":954 + * return toScalar(sval) + * + * def mDot(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":958 + * raise NotImplementedError + * + * def mDotBegin(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_173mDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_172mDotBegin[] = "Vec.mDotBegin(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_173mDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mDotBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mDotBegin") < 0)) __PYX_ERR(40, 958, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mDotBegin", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 958, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_172mDotBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_172mDotBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mDotBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":959 + * + * def mDotBegin(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":960 + * def mDotBegin(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def mDotEnd(self, vecs, out=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 960, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":958 + * raise NotImplementedError + * + * def mDotBegin(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":962 + * raise NotImplementedError + * + * def mDotEnd(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_175mDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_174mDotEnd[] = "Vec.mDotEnd(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_175mDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mDotEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mDotEnd") < 0)) __PYX_ERR(40, 962, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mDotEnd", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 962, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_174mDotEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_174mDotEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mDotEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":963 + * + * def mDotEnd(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":964 + * def mDotEnd(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def mtDot(self, vecs, out=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 964, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":962 + * raise NotImplementedError + * + * def mDotEnd(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":966 + * raise NotImplementedError + * + * def mtDot(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_177mtDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_176mtDot[] = "Vec.mtDot(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_177mtDot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mtDot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mtDot") < 0)) __PYX_ERR(40, 966, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mtDot", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 966, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_176mtDot(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_176mtDot(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mtDot", 0); + + /* "petsc4py/PETSc/Vec.pyx":967 + * + * def mtDot(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":968 + * def mtDot(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def mtDotBegin(self, vecs, out=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 968, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":966 + * raise NotImplementedError + * + * def mtDot(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":970 + * raise NotImplementedError + * + * def mtDotBegin(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_179mtDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_178mtDotBegin[] = "Vec.mtDotBegin(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_179mtDotBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mtDotBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mtDotBegin") < 0)) __PYX_ERR(40, 970, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mtDotBegin", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 970, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_178mtDotBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_178mtDotBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mtDotBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":971 + * + * def mtDotBegin(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":972 + * def mtDotBegin(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def mtDotEnd(self, vecs, out=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 972, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":970 + * raise NotImplementedError + * + * def mtDotBegin(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDotBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":974 + * raise NotImplementedError + * + * def mtDotEnd(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_181mtDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_180mtDotEnd[] = "Vec.mtDotEnd(self, vecs, out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_181mtDotEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vecs = 0; + PyObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mtDotEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vecs,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mtDotEnd") < 0)) __PYX_ERR(40, 974, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vecs = values[0]; + __pyx_v_out = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mtDotEnd", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 974, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_180mtDotEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vecs, __pyx_v_out); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_180mtDotEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_vecs, PyObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mtDotEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":975 + * + * def mtDotEnd(self, vecs, out=None): + * self; vecs; out; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_vecs); + ((void)__pyx_v_out); + + /* "petsc4py/PETSc/Vec.pyx":976 + * def mtDotEnd(self, vecs, out=None): + * self; vecs; out; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def norm(self, norm_type=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(40, 976, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":974 + * raise NotImplementedError + * + * def mtDotEnd(self, vecs, out=None): # <<<<<<<<<<<<<< + * self; vecs; out; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.mtDotEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":978 + * raise NotImplementedError + * + * def norm(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_183norm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_182norm[] = "Vec.norm(self, norm_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_183norm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("norm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm_type,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_type); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "norm") < 0)) __PYX_ERR(40, 978, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_norm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("norm", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 978, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.norm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_182norm(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_norm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_182norm(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type) { + NormType __pyx_v_norm_1_2; + NormType __pyx_v_ntype; + PetscReal __pyx_v_rval[2]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + NormType __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("norm", 0); + + /* "petsc4py/PETSc/Vec.pyx":979 + * + * def norm(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type + */ + __pyx_v_norm_1_2 = NORM_1_AND_2; + + /* "petsc4py/PETSc/Vec.pyx":980 + * def norm(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 # <<<<<<<<<<<<<< + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + */ + __pyx_v_ntype = NORM_2; + + /* "petsc4py/PETSc/Vec.pyx":981 + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type # <<<<<<<<<<<<<< + * cdef PetscReal rval[2] + * CHKERR( VecNorm(self.vec, ntype, rval) ) + */ + __pyx_t_1 = (__pyx_v_norm_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((NormType)__Pyx_PyInt_As_NormType(__pyx_v_norm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 981, __pyx_L1_error) + __pyx_v_ntype = __pyx_t_3; + } + + /* "petsc4py/PETSc/Vec.pyx":983 + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + * CHKERR( VecNorm(self.vec, ntype, rval) ) # <<<<<<<<<<<<<< + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_self->vec, __pyx_v_ntype, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 983, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":984 + * cdef PetscReal rval[2] + * CHKERR( VecNorm(self.vec, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) # <<<<<<<<<<<<<< + * else: return (toReal(rval[0]), toReal(rval[1])) + * + */ + __pyx_t_2 = ((__pyx_v_ntype != __pyx_v_norm_1_2) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":985 + * CHKERR( VecNorm(self.vec, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) # <<<<<<<<<<<<<< + * + * def normBegin(self, norm_type=None): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[1])); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_r = __pyx_t_7; + __pyx_t_7 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":978 + * raise NotImplementedError + * + * def norm(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.norm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":987 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def normBegin(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_185normBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_184normBegin[] = "Vec.normBegin(self, norm_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_185normBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("normBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm_type,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_type); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "normBegin") < 0)) __PYX_ERR(40, 987, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_norm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("normBegin", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 987, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.normBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_184normBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_norm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_184normBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type) { + NormType __pyx_v_ntype; + PetscReal __pyx_v_dummy[2]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + NormType __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("normBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":988 + * + * def normBegin(self, norm_type=None): + * cdef PetscNormType ntype = PETSC_NORM_2 # <<<<<<<<<<<<<< + * if norm_type is not None: ntype = norm_type + * cdef PetscReal dummy[2] + */ + __pyx_v_ntype = NORM_2; + + /* "petsc4py/PETSc/Vec.pyx":989 + * def normBegin(self, norm_type=None): + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type # <<<<<<<<<<<<<< + * cdef PetscReal dummy[2] + * CHKERR( VecNormBegin(self.vec, ntype, dummy) ) + */ + __pyx_t_1 = (__pyx_v_norm_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((NormType)__Pyx_PyInt_As_NormType(__pyx_v_norm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 989, __pyx_L1_error) + __pyx_v_ntype = __pyx_t_3; + } + + /* "petsc4py/PETSc/Vec.pyx":991 + * if norm_type is not None: ntype = norm_type + * cdef PetscReal dummy[2] + * CHKERR( VecNormBegin(self.vec, ntype, dummy) ) # <<<<<<<<<<<<<< + * + * def normEnd(self, norm_type=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNormBegin(__pyx_v_self->vec, __pyx_v_ntype, __pyx_v_dummy)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 991, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":987 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def normBegin(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.normBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":993 + * CHKERR( VecNormBegin(self.vec, ntype, dummy) ) + * + * def normEnd(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_187normEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_186normEnd[] = "Vec.normEnd(self, norm_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_187normEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("normEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm_type,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_type); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "normEnd") < 0)) __PYX_ERR(40, 993, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_norm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("normEnd", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 993, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.normEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_186normEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_norm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_186normEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_norm_type) { + NormType __pyx_v_norm_1_2; + NormType __pyx_v_ntype; + PetscReal __pyx_v_rval[2]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + NormType __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("normEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":994 + * + * def normEnd(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type + */ + __pyx_v_norm_1_2 = NORM_1_AND_2; + + /* "petsc4py/PETSc/Vec.pyx":995 + * def normEnd(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 # <<<<<<<<<<<<<< + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + */ + __pyx_v_ntype = NORM_2; + + /* "petsc4py/PETSc/Vec.pyx":996 + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type # <<<<<<<<<<<<<< + * cdef PetscReal rval[2] + * CHKERR( VecNormEnd(self.vec, ntype, rval) ) + */ + __pyx_t_1 = (__pyx_v_norm_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((NormType)__Pyx_PyInt_As_NormType(__pyx_v_norm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 996, __pyx_L1_error) + __pyx_v_ntype = __pyx_t_3; + } + + /* "petsc4py/PETSc/Vec.pyx":998 + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + * CHKERR( VecNormEnd(self.vec, ntype, rval) ) # <<<<<<<<<<<<<< + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNormEnd(__pyx_v_self->vec, __pyx_v_ntype, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 998, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":999 + * cdef PetscReal rval[2] + * CHKERR( VecNormEnd(self.vec, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) # <<<<<<<<<<<<<< + * else: return (toReal(rval[0]), toReal(rval[1])) + * + */ + __pyx_t_2 = ((__pyx_v_ntype != __pyx_v_norm_1_2) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":1000 + * CHKERR( VecNormEnd(self.vec, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) # <<<<<<<<<<<<<< + * + * def sum(self): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[1])); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_r = __pyx_t_7; + __pyx_t_7 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":993 + * CHKERR( VecNormBegin(self.vec, ntype, dummy) ) + * + * def normEnd(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.normEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1002 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def sum(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecSum(self.vec, &sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_189sum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_188sum[] = "Vec.sum(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_189sum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sum (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sum", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sum", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_188sum(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_188sum(struct PyPetscVecObject *__pyx_v_self) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sum", 0); + + /* "petsc4py/PETSc/Vec.pyx":1003 + * + * def sum(self): + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecSum(self.vec, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1004 + * def sum(self): + * cdef PetscScalar sval = 0 + * CHKERR( VecSum(self.vec, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSum(__pyx_v_self->vec, (&__pyx_v_sval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1004, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1005 + * cdef PetscScalar sval = 0 + * CHKERR( VecSum(self.vec, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def min(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1002 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def sum(self): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecSum(self.vec, &sval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.sum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1007 + * return toScalar(sval) + * + * def min(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_191min(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_190min[] = "Vec.min(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_191min(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("min (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("min", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "min", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_190min(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_190min(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("min", 0); + + /* "petsc4py/PETSc/Vec.pyx":1008 + * + * def min(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecMin(self.vec, &ival, &rval) ) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/Vec.pyx":1009 + * def min(self): + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecMin(self.vec, &ival, &rval) ) + * return (toInt(ival), toReal(rval)) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1010 + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + * CHKERR( VecMin(self.vec, &ival, &rval) ) # <<<<<<<<<<<<<< + * return (toInt(ival), toReal(rval)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecMin(__pyx_v_self->vec, (&__pyx_v_ival), (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1010, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1011 + * cdef PetscReal rval = 0 + * CHKERR( VecMin(self.vec, &ival, &rval) ) + * return (toInt(ival), toReal(rval)) # <<<<<<<<<<<<<< + * + * def max(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1007 + * return toScalar(sval) + * + * def min(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.min", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1013 + * return (toInt(ival), toReal(rval)) + * + * def max(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_193max(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_192max[] = "Vec.max(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_193max(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("max (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("max", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "max", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_192max(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_192max(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("max", 0); + + /* "petsc4py/PETSc/Vec.pyx":1014 + * + * def max(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecMax(self.vec, &ival, &rval) ) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/Vec.pyx":1015 + * def max(self): + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecMax(self.vec, &ival, &rval) ) + * return (toInt(ival), toReal(rval)) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1016 + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + * CHKERR( VecMax(self.vec, &ival, &rval) ) # <<<<<<<<<<<<<< + * return (toInt(ival), toReal(rval)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecMax(__pyx_v_self->vec, (&__pyx_v_ival), (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1016, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1017 + * cdef PetscReal rval = 0 + * CHKERR( VecMax(self.vec, &ival, &rval) ) + * return (toInt(ival), toReal(rval)) # <<<<<<<<<<<<<< + * + * def normalize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1013 + * return (toInt(ival), toReal(rval)) + * + * def max(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * cdef PetscReal rval = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.max", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1019 + * return (toInt(ival), toReal(rval)) + * + * def normalize(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecNormalize(self.vec, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_195normalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_194normalize[] = "Vec.normalize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_195normalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("normalize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("normalize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "normalize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_194normalize(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_194normalize(struct PyPetscVecObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("normalize", 0); + + /* "petsc4py/PETSc/Vec.pyx":1020 + * + * def normalize(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecNormalize(self.vec, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1021 + * def normalize(self): + * cdef PetscReal rval = 0 + * CHKERR( VecNormalize(self.vec, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNormalize(__pyx_v_self->vec, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1021, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1022 + * cdef PetscReal rval = 0 + * CHKERR( VecNormalize(self.vec, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def reciprocal(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1019 + * return (toInt(ival), toReal(rval)) + * + * def normalize(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecNormalize(self.vec, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.normalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1024 + * return toReal(rval) + * + * def reciprocal(self): # <<<<<<<<<<<<<< + * CHKERR( VecReciprocal(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_197reciprocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_196reciprocal[] = "Vec.reciprocal(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_197reciprocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reciprocal (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reciprocal", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reciprocal", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_196reciprocal(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_196reciprocal(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reciprocal", 0); + + /* "petsc4py/PETSc/Vec.pyx":1025 + * + * def reciprocal(self): + * CHKERR( VecReciprocal(self.vec) ) # <<<<<<<<<<<<<< + * + * def exp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecReciprocal(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1025, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1024 + * return toReal(rval) + * + * def reciprocal(self): # <<<<<<<<<<<<<< + * CHKERR( VecReciprocal(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.reciprocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1027 + * CHKERR( VecReciprocal(self.vec) ) + * + * def exp(self): # <<<<<<<<<<<<<< + * CHKERR( VecExp(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_199exp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_198exp[] = "Vec.exp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_199exp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("exp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("exp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "exp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_198exp(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_198exp(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("exp", 0); + + /* "petsc4py/PETSc/Vec.pyx":1028 + * + * def exp(self): + * CHKERR( VecExp(self.vec) ) # <<<<<<<<<<<<<< + * + * def log(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecExp(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1028, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1027 + * CHKERR( VecReciprocal(self.vec) ) + * + * def exp(self): # <<<<<<<<<<<<<< + * CHKERR( VecExp(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.exp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1030 + * CHKERR( VecExp(self.vec) ) + * + * def log(self): # <<<<<<<<<<<<<< + * CHKERR( VecLog(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_201log(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_200log[] = "Vec.log(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_201log(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("log (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("log", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "log", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_200log(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_200log(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("log", 0); + + /* "petsc4py/PETSc/Vec.pyx":1031 + * + * def log(self): + * CHKERR( VecLog(self.vec) ) # <<<<<<<<<<<<<< + * + * def sqrtabs(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecLog(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1031, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1030 + * CHKERR( VecExp(self.vec) ) + * + * def log(self): # <<<<<<<<<<<<<< + * CHKERR( VecLog(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.log", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1033 + * CHKERR( VecLog(self.vec) ) + * + * def sqrtabs(self): # <<<<<<<<<<<<<< + * CHKERR( VecSqrtAbs(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_203sqrtabs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_202sqrtabs[] = "Vec.sqrtabs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_203sqrtabs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sqrtabs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sqrtabs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sqrtabs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_202sqrtabs(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_202sqrtabs(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sqrtabs", 0); + + /* "petsc4py/PETSc/Vec.pyx":1034 + * + * def sqrtabs(self): + * CHKERR( VecSqrtAbs(self.vec) ) # <<<<<<<<<<<<<< + * + * def abs(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSqrtAbs(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1034, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1033 + * CHKERR( VecLog(self.vec) ) + * + * def sqrtabs(self): # <<<<<<<<<<<<<< + * CHKERR( VecSqrtAbs(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.sqrtabs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1036 + * CHKERR( VecSqrtAbs(self.vec) ) + * + * def abs(self): # <<<<<<<<<<<<<< + * CHKERR( VecAbs(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_205abs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_204abs[] = "Vec.abs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_205abs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("abs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("abs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "abs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_204abs(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_204abs(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("abs", 0); + + /* "petsc4py/PETSc/Vec.pyx":1037 + * + * def abs(self): + * CHKERR( VecAbs(self.vec) ) # <<<<<<<<<<<<<< + * + * def conjugate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAbs(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1037, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1036 + * CHKERR( VecSqrtAbs(self.vec) ) + * + * def abs(self): # <<<<<<<<<<<<<< + * CHKERR( VecAbs(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.abs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1039 + * CHKERR( VecAbs(self.vec) ) + * + * def conjugate(self): # <<<<<<<<<<<<<< + * CHKERR( VecConjugate(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_207conjugate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_206conjugate[] = "Vec.conjugate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_207conjugate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("conjugate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("conjugate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "conjugate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_206conjugate(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_206conjugate(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("conjugate", 0); + + /* "petsc4py/PETSc/Vec.pyx":1040 + * + * def conjugate(self): + * CHKERR( VecConjugate(self.vec) ) # <<<<<<<<<<<<<< + * + * def setRandom(self, Random random=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecConjugate(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1040, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1039 + * CHKERR( VecAbs(self.vec) ) + * + * def conjugate(self): # <<<<<<<<<<<<<< + * CHKERR( VecConjugate(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.conjugate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1042 + * CHKERR( VecConjugate(self.vec) ) + * + * def setRandom(self, Random random=None): # <<<<<<<<<<<<<< + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_209setRandom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_208setRandom[] = "Vec.setRandom(self, Random random=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_209setRandom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscRandomObject *__pyx_v_random = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRandom (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_random,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscRandomObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_random); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRandom") < 0)) __PYX_ERR(40, 1042, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_random = ((struct PyPetscRandomObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRandom", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1042, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setRandom", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_random), __pyx_ptype_8petsc4py_5PETSc_Random, 1, "random", 0))) __PYX_ERR(40, 1042, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_208setRandom(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_random); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_208setRandom(struct PyPetscVecObject *__pyx_v_self, struct PyPetscRandomObject *__pyx_v_random) { + PetscRandom __pyx_v_rnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscRandom __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRandom", 0); + + /* "petsc4py/PETSc/Vec.pyx":1043 + * + * def setRandom(self, Random random=None): + * cdef PetscRandom rnd = NULL # <<<<<<<<<<<<<< + * if random is not None: rnd = random.rnd + * CHKERR( VecSetRandom(self.vec, rnd) ) + */ + __pyx_v_rnd = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1044 + * def setRandom(self, Random random=None): + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd # <<<<<<<<<<<<<< + * CHKERR( VecSetRandom(self.vec, rnd) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_random) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_random->rnd; + __pyx_v_rnd = __pyx_t_3; + } + + /* "petsc4py/PETSc/Vec.pyx":1045 + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + * CHKERR( VecSetRandom(self.vec, rnd) ) # <<<<<<<<<<<<<< + * + * def permute(self, IS order, invert=False): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetRandom(__pyx_v_self->vec, __pyx_v_rnd)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1045, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1042 + * CHKERR( VecConjugate(self.vec) ) + * + * def setRandom(self, Random random=None): # <<<<<<<<<<<<<< + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setRandom", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1047 + * CHKERR( VecSetRandom(self.vec, rnd) ) + * + * def permute(self, IS order, invert=False): # <<<<<<<<<<<<<< + * cdef PetscBool cinvert = PETSC_FALSE + * if invert: cinvert = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_211permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_210permute[] = "Vec.permute(self, IS order, invert=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_211permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_order = 0; + PyObject *__pyx_v_invert = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("permute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_order,&__pyx_n_s_invert,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_order)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_invert); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "permute") < 0)) __PYX_ERR(40, 1047, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_order = ((struct PyPetscISObject *)values[0]); + __pyx_v_invert = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("permute", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1047, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_order), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "order", 0))) __PYX_ERR(40, 1047, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_210permute(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_order, __pyx_v_invert); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_210permute(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_order, PyObject *__pyx_v_invert) { + PetscBool __pyx_v_cinvert; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("permute", 0); + + /* "petsc4py/PETSc/Vec.pyx":1048 + * + * def permute(self, IS order, invert=False): + * cdef PetscBool cinvert = PETSC_FALSE # <<<<<<<<<<<<<< + * if invert: cinvert = PETSC_TRUE + * CHKERR( VecPermute(self.vec, order.iset, cinvert) ) + */ + __pyx_v_cinvert = PETSC_FALSE; + + /* "petsc4py/PETSc/Vec.pyx":1049 + * def permute(self, IS order, invert=False): + * cdef PetscBool cinvert = PETSC_FALSE + * if invert: cinvert = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( VecPermute(self.vec, order.iset, cinvert) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_invert); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(40, 1049, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_cinvert = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Vec.pyx":1050 + * cdef PetscBool cinvert = PETSC_FALSE + * if invert: cinvert = PETSC_TRUE + * CHKERR( VecPermute(self.vec, order.iset, cinvert) ) # <<<<<<<<<<<<<< + * + * def zeroEntries(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPermute(__pyx_v_self->vec, __pyx_v_order->iset, __pyx_v_cinvert)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1050, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1047 + * CHKERR( VecSetRandom(self.vec, rnd) ) + * + * def permute(self, IS order, invert=False): # <<<<<<<<<<<<<< + * cdef PetscBool cinvert = PETSC_FALSE + * if invert: cinvert = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1052 + * CHKERR( VecPermute(self.vec, order.iset, cinvert) ) + * + * def zeroEntries(self): # <<<<<<<<<<<<<< + * CHKERR( VecZeroEntries(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_213zeroEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_212zeroEntries[] = "Vec.zeroEntries(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_213zeroEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroEntries (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("zeroEntries", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "zeroEntries", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_212zeroEntries(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_212zeroEntries(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroEntries", 0); + + /* "petsc4py/PETSc/Vec.pyx":1053 + * + * def zeroEntries(self): + * CHKERR( VecZeroEntries(self.vec) ) # <<<<<<<<<<<<<< + * + * def set(self, alpha): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecZeroEntries(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1053, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1052 + * CHKERR( VecPermute(self.vec, order.iset, cinvert) ) + * + * def zeroEntries(self): # <<<<<<<<<<<<<< + * CHKERR( VecZeroEntries(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.zeroEntries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1055 + * CHKERR( VecZeroEntries(self.vec) ) + * + * def set(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecSet(self.vec, sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_215set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_214set[] = "Vec.set(self, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_215set(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) __PYX_ERR(40, 1055, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_alpha = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("set", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1055, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.set", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_214set(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_214set(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("set", 0); + + /* "petsc4py/PETSc/Vec.pyx":1056 + * + * def set(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecSet(self.vec, sval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1056, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1057 + * def set(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecSet(self.vec, sval) ) # <<<<<<<<<<<<<< + * + * def isset(self, IS idx, alpha): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSet(__pyx_v_self->vec, __pyx_v_sval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1057, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1055 + * CHKERR( VecZeroEntries(self.vec) ) + * + * def set(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecSet(self.vec, sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.set", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1059 + * CHKERR( VecSet(self.vec, sval) ) + * + * def isset(self, IS idx, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar aval = asScalar(alpha) + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_217isset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_216isset[] = "Vec.isset(self, IS idx, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_217isset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_idx = 0; + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isset (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_idx,&__pyx_n_s_alpha,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("isset", 1, 2, 2, 1); __PYX_ERR(40, 1059, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "isset") < 0)) __PYX_ERR(40, 1059, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_idx = ((struct PyPetscISObject *)values[0]); + __pyx_v_alpha = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("isset", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1059, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.isset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_idx), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "idx", 0))) __PYX_ERR(40, 1059, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_216isset(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_idx, __pyx_v_alpha); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_216isset(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_idx, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_aval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isset", 0); + + /* "petsc4py/PETSc/Vec.pyx":1060 + * + * def isset(self, IS idx, alpha): + * cdef PetscScalar aval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1060, __pyx_L1_error) + __pyx_v_aval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1061 + * def isset(self, IS idx, alpha): + * cdef PetscScalar aval = asScalar(alpha) + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) # <<<<<<<<<<<<<< + * + * def scale(self, alpha): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecISSet(__pyx_v_self->vec, __pyx_v_idx->iset, __pyx_v_aval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1061, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1059 + * CHKERR( VecSet(self.vec, sval) ) + * + * def isset(self, IS idx, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar aval = asScalar(alpha) + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.isset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1063 + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) + * + * def scale(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecScale(self.vec, sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_219scale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_218scale[] = "Vec.scale(self, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_219scale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scale") < 0)) __PYX_ERR(40, 1063, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_alpha = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scale", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1063, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.scale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_218scale(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_218scale(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scale", 0); + + /* "petsc4py/PETSc/Vec.pyx":1064 + * + * def scale(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecScale(self.vec, sval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1064, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1065 + * def scale(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecScale(self.vec, sval) ) # <<<<<<<<<<<<<< + * + * def shift(self, alpha): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_self->vec, __pyx_v_sval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1065, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1063 + * CHKERR( VecISSet(self.vec, idx.iset, aval) ) + * + * def scale(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecScale(self.vec, sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.scale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1067 + * CHKERR( VecScale(self.vec, sval) ) + * + * def shift(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecShift(self.vec, sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_221shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_220shift[] = "Vec.shift(self, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_221shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("shift (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "shift") < 0)) __PYX_ERR(40, 1067, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_alpha = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("shift", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1067, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.shift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_220shift(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_220shift(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("shift", 0); + + /* "petsc4py/PETSc/Vec.pyx":1068 + * + * def shift(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecShift(self.vec, sval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1068, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1069 + * def shift(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecShift(self.vec, sval) ) # <<<<<<<<<<<<<< + * + * def chop(self, tol): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecShift(__pyx_v_self->vec, __pyx_v_sval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1069, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1067 + * CHKERR( VecScale(self.vec, sval) ) + * + * def shift(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecShift(self.vec, sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.shift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1071 + * CHKERR( VecShift(self.vec, sval) ) + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_223chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_222chop[] = "Vec.chop(self, tol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_223chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("chop (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chop") < 0)) __PYX_ERR(40, 1071, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("chop", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1071, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_222chop(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_222chop(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("chop", 0); + + /* "petsc4py/PETSc/Vec.pyx":1072 + * + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * CHKERR( VecChop(self.vec, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(40, 1072, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1073 + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) # <<<<<<<<<<<<<< + * + * def swap(self, Vec vec): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecChop(__pyx_v_self->vec, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1073, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1071 + * CHKERR( VecShift(self.vec, sval) ) + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( VecChop(self.vec, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1075 + * CHKERR( VecChop(self.vec, rval) ) + * + * def swap(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( VecSwap(self.vec, vec.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_225swap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_224swap[] = "Vec.swap(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_225swap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("swap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "swap") < 0)) __PYX_ERR(40, 1075, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("swap", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1075, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.swap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 1075, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_224swap(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_224swap(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("swap", 0); + + /* "petsc4py/PETSc/Vec.pyx":1076 + * + * def swap(self, Vec vec): + * CHKERR( VecSwap(self.vec, vec.vec) ) # <<<<<<<<<<<<<< + * + * def axpy(self, alpha, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSwap(__pyx_v_self->vec, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1076, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1075 + * CHKERR( VecChop(self.vec, rval) ) + * + * def swap(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( VecSwap(self.vec, vec.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.swap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1078 + * CHKERR( VecSwap(self.vec, vec.vec) ) + * + * def axpy(self, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_227axpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_226axpy[] = "Vec.axpy(self, alpha, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_227axpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("axpy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("axpy", 1, 2, 2, 1); __PYX_ERR(40, 1078, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "axpy") < 0)) __PYX_ERR(40, 1078, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_alpha = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("axpy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1078, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.axpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1078, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_226axpy(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_226axpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("axpy", 0); + + /* "petsc4py/PETSc/Vec.pyx":1079 + * + * def axpy(self, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1079, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1080 + * def axpy(self, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) # <<<<<<<<<<<<<< + * + * def isaxpy(self, IS idx, alpha, Vec x): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_self->vec, __pyx_v_sval, __pyx_v_x->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1080, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1078 + * CHKERR( VecSwap(self.vec, vec.vec) ) + * + * def axpy(self, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.axpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1082 + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) + * + * def isaxpy(self, IS idx, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_229isaxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_228isaxpy[] = "Vec.isaxpy(self, IS idx, alpha, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_229isaxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_idx = 0; + PyObject *__pyx_v_alpha = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isaxpy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_idx,&__pyx_n_s_alpha,&__pyx_n_s_x,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("isaxpy", 1, 3, 3, 1); __PYX_ERR(40, 1082, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("isaxpy", 1, 3, 3, 2); __PYX_ERR(40, 1082, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "isaxpy") < 0)) __PYX_ERR(40, 1082, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_idx = ((struct PyPetscISObject *)values[0]); + __pyx_v_alpha = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("isaxpy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1082, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.isaxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_idx), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "idx", 0))) __PYX_ERR(40, 1082, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1082, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_228isaxpy(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_idx, __pyx_v_alpha, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_228isaxpy(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_idx, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isaxpy", 0); + + /* "petsc4py/PETSc/Vec.pyx":1083 + * + * def isaxpy(self, IS idx, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1083, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1084 + * def isaxpy(self, IS idx, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) # <<<<<<<<<<<<<< + * + * def aypx(self, alpha, Vec x): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecISAXPY(__pyx_v_self->vec, __pyx_v_idx->iset, __pyx_v_sval, __pyx_v_x->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1084, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1082 + * CHKERR( VecAXPY(self.vec, sval, x.vec) ) + * + * def isaxpy(self, IS idx, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.isaxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1086 + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) + * + * def aypx(self, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_231aypx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_230aypx[] = "Vec.aypx(self, alpha, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_231aypx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("aypx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("aypx", 1, 2, 2, 1); __PYX_ERR(40, 1086, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aypx") < 0)) __PYX_ERR(40, 1086, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_alpha = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("aypx", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1086, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.aypx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1086, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_230aypx(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_230aypx(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("aypx", 0); + + /* "petsc4py/PETSc/Vec.pyx":1087 + * + * def aypx(self, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1087, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1088 + * def aypx(self, alpha, Vec x): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) # <<<<<<<<<<<<<< + * + * def axpby(self, alpha, beta, Vec y): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAYPX(__pyx_v_self->vec, __pyx_v_sval, __pyx_v_x->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1088, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1086 + * CHKERR( VecISAXPY(self.vec, idx.iset, sval, x.vec) ) + * + * def aypx(self, alpha, Vec x): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.aypx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1090 + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) + * + * def axpby(self, alpha, beta, Vec y): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = asScalar(alpha) + * cdef PetscScalar sval2 = asScalar(beta) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_233axpby(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_232axpby[] = "Vec.axpby(self, alpha, beta, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_233axpby(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + PyObject *__pyx_v_beta = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("axpby (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_beta,&__pyx_n_s_y,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_beta)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("axpby", 1, 3, 3, 1); __PYX_ERR(40, 1090, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("axpby", 1, 3, 3, 2); __PYX_ERR(40, 1090, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "axpby") < 0)) __PYX_ERR(40, 1090, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_alpha = values[0]; + __pyx_v_beta = values[1]; + __pyx_v_y = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("axpby", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1090, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.axpby", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1090, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_232axpby(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_beta, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_232axpby(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, PyObject *__pyx_v_beta, struct PyPetscVecObject *__pyx_v_y) { + PetscScalar __pyx_v_sval1; + PetscScalar __pyx_v_sval2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("axpby", 0); + + /* "petsc4py/PETSc/Vec.pyx":1091 + * + * def axpby(self, alpha, beta, Vec y): + * cdef PetscScalar sval1 = asScalar(alpha) # <<<<<<<<<<<<<< + * cdef PetscScalar sval2 = asScalar(beta) + * CHKERR( VecAXPBY(self.vec, sval1, sval2, y.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1091, __pyx_L1_error) + __pyx_v_sval1 = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1092 + * def axpby(self, alpha, beta, Vec y): + * cdef PetscScalar sval1 = asScalar(alpha) + * cdef PetscScalar sval2 = asScalar(beta) # <<<<<<<<<<<<<< + * CHKERR( VecAXPBY(self.vec, sval1, sval2, y.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_beta); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1092, __pyx_L1_error) + __pyx_v_sval2 = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1093 + * cdef PetscScalar sval1 = asScalar(alpha) + * cdef PetscScalar sval2 = asScalar(beta) + * CHKERR( VecAXPBY(self.vec, sval1, sval2, y.vec) ) # <<<<<<<<<<<<<< + * + * def waxpy(self, alpha, Vec x, Vec y): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPBY(__pyx_v_self->vec, __pyx_v_sval1, __pyx_v_sval2, __pyx_v_y->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1093, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1090 + * CHKERR( VecAYPX(self.vec, sval, x.vec) ) + * + * def axpby(self, alpha, beta, Vec y): # <<<<<<<<<<<<<< + * cdef PetscScalar sval1 = asScalar(alpha) + * cdef PetscScalar sval2 = asScalar(beta) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.axpby", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1095 + * CHKERR( VecAXPBY(self.vec, sval1, sval2, y.vec) ) + * + * def waxpy(self, alpha, Vec x, Vec y): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_235waxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_234waxpy[] = "Vec.waxpy(self, alpha, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_235waxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("waxpy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("waxpy", 1, 3, 3, 1); __PYX_ERR(40, 1095, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("waxpy", 1, 3, 3, 2); __PYX_ERR(40, 1095, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "waxpy") < 0)) __PYX_ERR(40, 1095, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_alpha = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_y = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("waxpy", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1095, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.waxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1095, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1095, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_234waxpy(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_234waxpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("waxpy", 0); + + /* "petsc4py/PETSc/Vec.pyx":1096 + * + * def waxpy(self, alpha, Vec x, Vec y): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1096, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1097 + * def waxpy(self, alpha, Vec x, Vec y): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def maxpy(self, alphas, vecs): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecWAXPY(__pyx_v_self->vec, __pyx_v_sval, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1097, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1095 + * CHKERR( VecAXPBY(self.vec, sval1, sval2, y.vec) ) + * + * def waxpy(self, alpha, Vec x, Vec y): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.waxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1099 + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) + * + * def maxpy(self, alphas, vecs): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * cdef PetscScalar *a = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_237maxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_236maxpy[] = "Vec.maxpy(self, alphas, vecs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_237maxpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alphas = 0; + PyObject *__pyx_v_vecs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("maxpy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alphas,&__pyx_n_s_vecs,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alphas)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("maxpy", 1, 2, 2, 1); __PYX_ERR(40, 1099, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "maxpy") < 0)) __PYX_ERR(40, 1099, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_alphas = values[0]; + __pyx_v_vecs = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("maxpy", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1099, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.maxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_236maxpy(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_alphas, __pyx_v_vecs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_236maxpy(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_alphas, PyObject *__pyx_v_vecs) { + PetscInt __pyx_v_n; + PetscScalar *__pyx_v_a; + Vec *__pyx_v_v; + CYTHON_UNUSED PyObject *__pyx_v_tmp1 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + Py_ssize_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PetscInt __pyx_t_4; + Vec __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("maxpy", 0); + + /* "petsc4py/PETSc/Vec.pyx":1100 + * + * def maxpy(self, alphas, vecs): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar *a = NULL + * cdef PetscVec *v = NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Vec.pyx":1101 + * def maxpy(self, alphas, vecs): + * cdef PetscInt n = 0 + * cdef PetscScalar *a = NULL # <<<<<<<<<<<<<< + * cdef PetscVec *v = NULL + * cdef object tmp1 = iarray_s(alphas, &n, &a) + */ + __pyx_v_a = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1102 + * cdef PetscInt n = 0 + * cdef PetscScalar *a = NULL + * cdef PetscVec *v = NULL # <<<<<<<<<<<<<< + * cdef object tmp1 = iarray_s(alphas, &n, &a) + * cdef object tmp2 = oarray_p(empty_p(n),NULL, &v) + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1103 + * cdef PetscScalar *a = NULL + * cdef PetscVec *v = NULL + * cdef object tmp1 = iarray_s(alphas, &n, &a) # <<<<<<<<<<<<<< + * cdef object tmp2 = oarray_p(empty_p(n),NULL, &v) + * assert n == len(vecs) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_alphas, (&__pyx_v_n), (&__pyx_v_a))); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tmp1 = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1104 + * cdef PetscVec *v = NULL + * cdef object tmp1 = iarray_s(alphas, &n, &a) + * cdef object tmp2 = oarray_p(empty_p(n),NULL, &v) # <<<<<<<<<<<<<< + * assert n == len(vecs) + * cdef Py_ssize_t i=0 + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_v)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp2 = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1105 + * cdef object tmp1 = iarray_s(alphas, &n, &a) + * cdef object tmp2 = oarray_p(empty_p(n),NULL, &v) + * assert n == len(vecs) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i=0 + * for i from 0 <= i < n: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = PyObject_Length(__pyx_v_vecs); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(40, 1105, __pyx_L1_error) + if (unlikely(!((__pyx_v_n == __pyx_t_3) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(40, 1105, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Vec.pyx":1106 + * cdef object tmp2 = oarray_p(empty_p(n),NULL, &v) + * assert n == len(vecs) + * cdef Py_ssize_t i=0 # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * v[i] = ((vecs[i])).vec + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/Vec.pyx":1107 + * assert n == len(vecs) + * cdef Py_ssize_t i=0 + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * v[i] = ((vecs[i])).vec + * CHKERR( VecMAXPY(self.vec, n, a, v) ) + */ + __pyx_t_4 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + + /* "petsc4py/PETSc/Vec.pyx":1108 + * cdef Py_ssize_t i=0 + * for i from 0 <= i < n: + * v[i] = ((vecs[i])).vec # <<<<<<<<<<<<<< + * CHKERR( VecMAXPY(self.vec, n, a, v) ) + * + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_vecs, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(40, 1108, __pyx_L1_error) + __pyx_t_5 = ((struct PyPetscVecObject *)__pyx_t_2)->vec; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + (__pyx_v_v[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/Vec.pyx":1109 + * for i from 0 <= i < n: + * v[i] = ((vecs[i])).vec + * CHKERR( VecMAXPY(self.vec, n, a, v) ) # <<<<<<<<<<<<<< + * + * def pointwiseMult(self, Vec x, Vec y): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecMAXPY(__pyx_v_self->vec, __pyx_v_n, __pyx_v_a, __pyx_v_v)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1109, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1099 + * CHKERR( VecWAXPY(self.vec, sval, x.vec, y.vec) ) + * + * def maxpy(self, alphas, vecs): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * cdef PetscScalar *a = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.maxpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp1); + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1111 + * CHKERR( VecMAXPY(self.vec, n, a, v) ) + * + * def pointwiseMult(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMult(self.vec, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_239pointwiseMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_238pointwiseMult[] = "Vec.pointwiseMult(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_239pointwiseMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pointwiseMult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("pointwiseMult", 1, 2, 2, 1); __PYX_ERR(40, 1111, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pointwiseMult") < 0)) __PYX_ERR(40, 1111, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pointwiseMult", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1111, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1111, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1111, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_238pointwiseMult(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_238pointwiseMult(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pointwiseMult", 0); + + /* "petsc4py/PETSc/Vec.pyx":1112 + * + * def pointwiseMult(self, Vec x, Vec y): + * CHKERR( VecPointwiseMult(self.vec, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def pointwiseDivide(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseMult(__pyx_v_self->vec, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1112, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1111 + * CHKERR( VecMAXPY(self.vec, n, a, v) ) + * + * def pointwiseMult(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMult(self.vec, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1114 + * CHKERR( VecPointwiseMult(self.vec, x.vec, y.vec) ) + * + * def pointwiseDivide(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseDivide(self.vec, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_241pointwiseDivide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_240pointwiseDivide[] = "Vec.pointwiseDivide(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_241pointwiseDivide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pointwiseDivide (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("pointwiseDivide", 1, 2, 2, 1); __PYX_ERR(40, 1114, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pointwiseDivide") < 0)) __PYX_ERR(40, 1114, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pointwiseDivide", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1114, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseDivide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1114, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1114, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_240pointwiseDivide(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_240pointwiseDivide(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pointwiseDivide", 0); + + /* "petsc4py/PETSc/Vec.pyx":1115 + * + * def pointwiseDivide(self, Vec x, Vec y): + * CHKERR( VecPointwiseDivide(self.vec, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def pointwiseMin(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseDivide(__pyx_v_self->vec, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1115, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1114 + * CHKERR( VecPointwiseMult(self.vec, x.vec, y.vec) ) + * + * def pointwiseDivide(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseDivide(self.vec, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseDivide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1117 + * CHKERR( VecPointwiseDivide(self.vec, x.vec, y.vec) ) + * + * def pointwiseMin(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMin(self.vec, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_243pointwiseMin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_242pointwiseMin[] = "Vec.pointwiseMin(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_243pointwiseMin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pointwiseMin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("pointwiseMin", 1, 2, 2, 1); __PYX_ERR(40, 1117, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pointwiseMin") < 0)) __PYX_ERR(40, 1117, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pointwiseMin", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1117, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1117, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1117, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_242pointwiseMin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_242pointwiseMin(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pointwiseMin", 0); + + /* "petsc4py/PETSc/Vec.pyx":1118 + * + * def pointwiseMin(self, Vec x, Vec y): + * CHKERR( VecPointwiseMin(self.vec, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def pointwiseMax(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseMin(__pyx_v_self->vec, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1118, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1117 + * CHKERR( VecPointwiseDivide(self.vec, x.vec, y.vec) ) + * + * def pointwiseMin(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMin(self.vec, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1120 + * CHKERR( VecPointwiseMin(self.vec, x.vec, y.vec) ) + * + * def pointwiseMax(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMax(self.vec, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_245pointwiseMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_244pointwiseMax[] = "Vec.pointwiseMax(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_245pointwiseMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pointwiseMax (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("pointwiseMax", 1, 2, 2, 1); __PYX_ERR(40, 1120, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pointwiseMax") < 0)) __PYX_ERR(40, 1120, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pointwiseMax", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1120, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1120, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1120, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_244pointwiseMax(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_244pointwiseMax(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pointwiseMax", 0); + + /* "petsc4py/PETSc/Vec.pyx":1121 + * + * def pointwiseMax(self, Vec x, Vec y): + * CHKERR( VecPointwiseMax(self.vec, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def pointwiseMaxAbs(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseMax(__pyx_v_self->vec, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1121, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1120 + * CHKERR( VecPointwiseMin(self.vec, x.vec, y.vec) ) + * + * def pointwiseMax(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMax(self.vec, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1123 + * CHKERR( VecPointwiseMax(self.vec, x.vec, y.vec) ) + * + * def pointwiseMaxAbs(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMaxAbs(self.vec, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_247pointwiseMaxAbs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_246pointwiseMaxAbs[] = "Vec.pointwiseMaxAbs(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_247pointwiseMaxAbs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("pointwiseMaxAbs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("pointwiseMaxAbs", 1, 2, 2, 1); __PYX_ERR(40, 1123, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pointwiseMaxAbs") < 0)) __PYX_ERR(40, 1123, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("pointwiseMaxAbs", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMaxAbs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(40, 1123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(40, 1123, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_246pointwiseMaxAbs(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_246pointwiseMaxAbs(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pointwiseMaxAbs", 0); + + /* "petsc4py/PETSc/Vec.pyx":1124 + * + * def pointwiseMaxAbs(self, Vec x, Vec y): + * CHKERR( VecPointwiseMaxAbs(self.vec, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def maxPointwiseDivide(self, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecPointwiseMaxAbs(__pyx_v_self->vec, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1124, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1123 + * CHKERR( VecPointwiseMax(self.vec, x.vec, y.vec) ) + * + * def pointwiseMaxAbs(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( VecPointwiseMaxAbs(self.vec, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.pointwiseMaxAbs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1126 + * CHKERR( VecPointwiseMaxAbs(self.vec, x.vec, y.vec) ) + * + * def maxPointwiseDivide(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecMaxPointwiseDivide(self.vec, vec.vec, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_249maxPointwiseDivide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_248maxPointwiseDivide[] = "Vec.maxPointwiseDivide(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_249maxPointwiseDivide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("maxPointwiseDivide (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "maxPointwiseDivide") < 0)) __PYX_ERR(40, 1126, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("maxPointwiseDivide", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1126, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.maxPointwiseDivide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 1126, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_248maxPointwiseDivide(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_248maxPointwiseDivide(struct PyPetscVecObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("maxPointwiseDivide", 0); + + /* "petsc4py/PETSc/Vec.pyx":1127 + * + * def maxPointwiseDivide(self, Vec vec): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecMaxPointwiseDivide(self.vec, vec.vec, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1128 + * def maxPointwiseDivide(self, Vec vec): + * cdef PetscReal rval = 0 + * CHKERR( VecMaxPointwiseDivide(self.vec, vec.vec, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecMaxPointwiseDivide(__pyx_v_self->vec, __pyx_v_vec->vec, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1128, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1129 + * cdef PetscReal rval = 0 + * CHKERR( VecMaxPointwiseDivide(self.vec, vec.vec, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getValue(self, index): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1126 + * CHKERR( VecPointwiseMaxAbs(self.vec, x.vec, y.vec) ) + * + * def maxPointwiseDivide(self, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecMaxPointwiseDivide(self.vec, vec.vec, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.maxPointwiseDivide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1131 + * return toReal(rval) + * + * def getValue(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_251getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_250getValue[] = "Vec.getValue(self, index)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_251getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValue") < 0)) __PYX_ERR(40, 1131, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_index = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValue", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1131, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_250getValue(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_index); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_250getValue(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index) { + PetscInt __pyx_v_ival; + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValue", 0); + + /* "petsc4py/PETSc/Vec.pyx":1132 + * + * def getValue(self, index): + * cdef PetscInt ival = asInt(index) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecGetValues(self.vec, 1, &ival, &sval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1132, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1133 + * def getValue(self, index): + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecGetValues(self.vec, 1, &ival, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1134 + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = 0 + * CHKERR( VecGetValues(self.vec, 1, &ival, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetValues(__pyx_v_self->vec, 1, (&__pyx_v_ival), (&__pyx_v_sval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1134, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1135 + * cdef PetscScalar sval = 0 + * CHKERR( VecGetValues(self.vec, 1, &ival, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def getValues(self, indices, values=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1131 + * return toReal(rval) + * + * def getValue(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1137 + * return toScalar(sval) + * + * def getValues(self, indices, values=None): # <<<<<<<<<<<<<< + * return vecgetvalues(self.vec, indices, values) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_253getValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_252getValues[] = "Vec.getValues(self, indices, values=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_253getValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_values = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValues") < 0)) __PYX_ERR(40, 1137, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValues", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1137, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_252getValues(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_252getValues(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValues", 0); + + /* "petsc4py/PETSc/Vec.pyx":1138 + * + * def getValues(self, indices, values=None): + * return vecgetvalues(self.vec, indices, values) # <<<<<<<<<<<<<< + * + * def getValuesStagStencil(self, indices, values=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vecgetvalues(__pyx_v_self->vec, __pyx_v_indices, __pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1137 + * return toScalar(sval) + * + * def getValues(self, indices, values=None): # <<<<<<<<<<<<<< + * return vecgetvalues(self.vec, indices, values) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1140 + * return vecgetvalues(self.vec, indices, values) + * + * def getValuesStagStencil(self, indices, values=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_255getValuesStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_254getValuesStagStencil[] = "Vec.getValuesStagStencil(self, indices, values=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_255getValuesStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_indices = 0; + CYTHON_UNUSED PyObject *__pyx_v_values = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValuesStagStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValuesStagStencil") < 0)) __PYX_ERR(40, 1140, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValuesStagStencil", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1140, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValuesStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_254getValuesStagStencil(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_254getValuesStagStencil(CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indices, CYTHON_UNUSED PyObject *__pyx_v_values) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValuesStagStencil", 0); + + /* "petsc4py/PETSc/Vec.pyx":1141 + * + * def getValuesStagStencil(self, indices, values=None): + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setValue(self, index, value, addv=None): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 1141, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1140 + * return vecgetvalues(self.vec, indices, values) + * + * def getValuesStagStencil(self, indices, values=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getValuesStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1143 + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') + * + * def setValue(self, index, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_257setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_256setValue[] = "Vec.setValue(self, index, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_257setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValue", 0, 2, 3, 1); __PYX_ERR(40, 1143, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValue") < 0)) __PYX_ERR(40, 1143, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_index = values[0]; + __pyx_v_value = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValue", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1143, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_256setValue(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_index, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_256setValue(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival; + PetscScalar __pyx_v_sval; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscScalar __pyx_t_2; + InsertMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValue", 0); + + /* "petsc4py/PETSc/Vec.pyx":1144 + * + * def setValue(self, index, value, addv=None): + * cdef PetscInt ival = asInt(index) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1144, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1145 + * def setValue(self, index, value, addv=None): + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecSetValues(self.vec, 1, &ival, &sval, caddv) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_value); if (unlikely(__pyx_t_2 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1145, __pyx_L1_error) + __pyx_v_sval = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1146 + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( VecSetValues(self.vec, 1, &ival, &sval, caddv) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_3 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1146, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_3; + + /* "petsc4py/PETSc/Vec.pyx":1147 + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecSetValues(self.vec, 1, &ival, &sval, caddv) ) # <<<<<<<<<<<<<< + * + * def setValues(self, indices, values, addv=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetValues(__pyx_v_self->vec, 1, (&__pyx_v_ival), (&__pyx_v_sval), __pyx_v_caddv)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1147, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1143 + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') + * + * def setValue(self, index, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1149 + * CHKERR( VecSetValues(self.vec, 1, &ival, &sval, caddv) ) + * + * def setValues(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 0, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_259setValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_258setValues[] = "Vec.setValues(self, indices, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_259setValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValues", 0, 2, 3, 1); __PYX_ERR(40, 1149, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValues") < 0)) __PYX_ERR(40, 1149, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValues", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1149, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_258setValues(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_258setValues(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValues", 0); + + /* "petsc4py/PETSc/Vec.pyx":1150 + * + * def setValues(self, indices, values, addv=None): + * vecsetvalues(self.vec, indices, values, addv, 0, 0) # <<<<<<<<<<<<<< + * + * def setValuesBlocked(self, indices, values, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vecsetvalues(__pyx_v_self->vec, __pyx_v_indices, __pyx_v_values, __pyx_v_addv, 0, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 1150, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1149 + * CHKERR( VecSetValues(self.vec, 1, &ival, &sval, caddv) ) + * + * def setValues(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 0, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1152 + * vecsetvalues(self.vec, indices, values, addv, 0, 0) + * + * def setValuesBlocked(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 1, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_261setValuesBlocked(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_260setValuesBlocked[] = "Vec.setValuesBlocked(self, indices, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_261setValuesBlocked(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlocked (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlocked", 0, 2, 3, 1); __PYX_ERR(40, 1152, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlocked") < 0)) __PYX_ERR(40, 1152, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlocked", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1152, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesBlocked", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_260setValuesBlocked(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_260setValuesBlocked(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlocked", 0); + + /* "petsc4py/PETSc/Vec.pyx":1153 + * + * def setValuesBlocked(self, indices, values, addv=None): + * vecsetvalues(self.vec, indices, values, addv, 1, 0) # <<<<<<<<<<<<<< + * + * def setValuesStagStencil(self, indices, values, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vecsetvalues(__pyx_v_self->vec, __pyx_v_indices, __pyx_v_values, __pyx_v_addv, 1, 0); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 1153, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1152 + * vecsetvalues(self.vec, indices, values, addv, 0, 0) + * + * def setValuesBlocked(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 1, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesBlocked", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1155 + * vecsetvalues(self.vec, indices, values, addv, 1, 0) + * + * def setValuesStagStencil(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_263setValuesStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_262setValuesStagStencil[] = "Vec.setValuesStagStencil(self, indices, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_263setValuesStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_indices = 0; + CYTHON_UNUSED PyObject *__pyx_v_values = 0; + CYTHON_UNUSED PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesStagStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesStagStencil", 0, 2, 3, 1); __PYX_ERR(40, 1155, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesStagStencil") < 0)) __PYX_ERR(40, 1155, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesStagStencil", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1155, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_262setValuesStagStencil(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_262setValuesStagStencil(CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_indices, CYTHON_UNUSED PyObject *__pyx_v_values, CYTHON_UNUSED PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesStagStencil", 0); + + /* "petsc4py/PETSc/Vec.pyx":1156 + * + * def setValuesStagStencil(self, indices, values, addv=None): + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setLGMap(self, LGMap lgmap): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(40, 1156, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1155 + * vecsetvalues(self.vec, indices, values, addv, 1, 0) + * + * def setValuesStagStencil(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1158 + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') + * + * def setLGMap(self, LGMap lgmap): # <<<<<<<<<<<<<< + * CHKERR( VecSetLocalToGlobalMapping(self.vec, lgmap.lgm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_265setLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_264setLGMap[] = "Vec.setLGMap(self, LGMap lgmap)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_265setLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscLGMapObject *__pyx_v_lgmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLGMap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lgmap,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lgmap)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLGMap") < 0)) __PYX_ERR(40, 1158, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_lgmap = ((struct PyPetscLGMapObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLGMap", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1158, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lgmap), __pyx_ptype_8petsc4py_5PETSc_LGMap, 0, "lgmap", 0))) __PYX_ERR(40, 1158, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_264setLGMap(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_lgmap); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_264setLGMap(struct PyPetscVecObject *__pyx_v_self, struct PyPetscLGMapObject *__pyx_v_lgmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLGMap", 0); + + /* "petsc4py/PETSc/Vec.pyx":1159 + * + * def setLGMap(self, LGMap lgmap): + * CHKERR( VecSetLocalToGlobalMapping(self.vec, lgmap.lgm) ) # <<<<<<<<<<<<<< + * + * def getLGMap(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetLocalToGlobalMapping(__pyx_v_self->vec, __pyx_v_lgmap->lgm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1159, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1158 + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') + * + * def setLGMap(self, LGMap lgmap): # <<<<<<<<<<<<<< + * CHKERR( VecSetLocalToGlobalMapping(self.vec, lgmap.lgm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1161 + * CHKERR( VecSetLocalToGlobalMapping(self.vec, lgmap.lgm) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap cmap = LGMap() + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_267getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_266getLGMap[] = "Vec.getLGMap(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_267getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLGMap (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLGMap", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLGMap", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_266getLGMap(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_266getLGMap(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscLGMapObject *__pyx_v_cmap = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLGMap", 0); + + /* "petsc4py/PETSc/Vec.pyx":1162 + * + * def getLGMap(self): + * cdef LGMap cmap = LGMap() # <<<<<<<<<<<<<< + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) + * PetscINCREF(cmap.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cmap = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1163 + * def getLGMap(self): + * cdef LGMap cmap = LGMap() + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) # <<<<<<<<<<<<<< + * PetscINCREF(cmap.obj) + * return cmap + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetLocalToGlobalMapping(__pyx_v_self->vec, (&__pyx_v_cmap->lgm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1163, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1164 + * cdef LGMap cmap = LGMap() + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) + * PetscINCREF(cmap.obj) # <<<<<<<<<<<<<< + * return cmap + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_cmap->__pyx_base.obj)); + + /* "petsc4py/PETSc/Vec.pyx":1165 + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) + * PetscINCREF(cmap.obj) + * return cmap # <<<<<<<<<<<<<< + * + * def setValueLocal(self, index, value, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_cmap)); + __pyx_r = ((PyObject *)__pyx_v_cmap); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1161 + * CHKERR( VecSetLocalToGlobalMapping(self.vec, lgmap.lgm) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap cmap = LGMap() + * CHKERR( VecGetLocalToGlobalMapping(self.vec, &cmap.lgm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_cmap); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1167 + * return cmap + * + * def setValueLocal(self, index, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_269setValueLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_268setValueLocal[] = "Vec.setValueLocal(self, index, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_269setValueLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueLocal", 0, 2, 3, 1); __PYX_ERR(40, 1167, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueLocal") < 0)) __PYX_ERR(40, 1167, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_index = values[0]; + __pyx_v_value = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueLocal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1167, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValueLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_268setValueLocal(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_index, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_268setValueLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival; + PetscScalar __pyx_v_sval; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscScalar __pyx_t_2; + InsertMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueLocal", 0); + + /* "petsc4py/PETSc/Vec.pyx":1168 + * + * def setValueLocal(self, index, value, addv=None): + * cdef PetscInt ival = asInt(index) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1168, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1169 + * def setValueLocal(self, index, value, addv=None): + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecSetValuesLocal(self.vec, 1, &ival, &sval, caddv) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_value); if (unlikely(__pyx_t_2 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1169, __pyx_L1_error) + __pyx_v_sval = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1170 + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( VecSetValuesLocal(self.vec, 1, &ival, &sval, caddv) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_3 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1170, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_3; + + /* "petsc4py/PETSc/Vec.pyx":1171 + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecSetValuesLocal(self.vec, 1, &ival, &sval, caddv) ) # <<<<<<<<<<<<<< + * + * def setValuesLocal(self, indices, values, addv=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetValuesLocal(__pyx_v_self->vec, 1, (&__pyx_v_ival), (&__pyx_v_sval), __pyx_v_caddv)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1171, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1167 + * return cmap + * + * def setValueLocal(self, index, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef PetscScalar sval = asScalar(value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValueLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1173 + * CHKERR( VecSetValuesLocal(self.vec, 1, &ival, &sval, caddv) ) + * + * def setValuesLocal(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 0, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_271setValuesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_270setValuesLocal[] = "Vec.setValuesLocal(self, indices, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_271setValuesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocal", 0, 2, 3, 1); __PYX_ERR(40, 1173, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesLocal") < 0)) __PYX_ERR(40, 1173, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesLocal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1173, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_270setValuesLocal(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_270setValuesLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesLocal", 0); + + /* "petsc4py/PETSc/Vec.pyx":1174 + * + * def setValuesLocal(self, indices, values, addv=None): + * vecsetvalues(self.vec, indices, values, addv, 0, 1) # <<<<<<<<<<<<<< + * + * def setValuesBlockedLocal(self, indices, values, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vecsetvalues(__pyx_v_self->vec, __pyx_v_indices, __pyx_v_values, __pyx_v_addv, 0, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 1174, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1173 + * CHKERR( VecSetValuesLocal(self.vec, 1, &ival, &sval, caddv) ) + * + * def setValuesLocal(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 0, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1176 + * vecsetvalues(self.vec, indices, values, addv, 0, 1) + * + * def setValuesBlockedLocal(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 1, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_273setValuesBlockedLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_272setValuesBlockedLocal[] = "Vec.setValuesBlockedLocal(self, indices, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_273setValuesBlockedLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocal", 0, 2, 3, 1); __PYX_ERR(40, 1176, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedLocal") < 0)) __PYX_ERR(40, 1176, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indices = values[0]; + __pyx_v_values = values[1]; + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1176, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesBlockedLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_272setValuesBlockedLocal(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_indices, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_272setValuesBlockedLocal(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_indices, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedLocal", 0); + + /* "petsc4py/PETSc/Vec.pyx":1177 + * + * def setValuesBlockedLocal(self, indices, values, addv=None): + * vecsetvalues(self.vec, indices, values, addv, 1, 1) # <<<<<<<<<<<<<< + * + * def assemblyBegin(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_vecsetvalues(__pyx_v_self->vec, __pyx_v_indices, __pyx_v_values, __pyx_v_addv, 1, 1); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(40, 1177, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1176 + * vecsetvalues(self.vec, indices, values, addv, 0, 1) + * + * def setValuesBlockedLocal(self, indices, values, addv=None): # <<<<<<<<<<<<<< + * vecsetvalues(self.vec, indices, values, addv, 1, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setValuesBlockedLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1179 + * vecsetvalues(self.vec, indices, values, addv, 1, 1) + * + * def assemblyBegin(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyBegin(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_275assemblyBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_274assemblyBegin[] = "Vec.assemblyBegin(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_275assemblyBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemblyBegin (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("assemblyBegin", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "assemblyBegin", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_274assemblyBegin(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_274assemblyBegin(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemblyBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":1180 + * + * def assemblyBegin(self): + * CHKERR( VecAssemblyBegin(self.vec) ) # <<<<<<<<<<<<<< + * + * def assemblyEnd(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAssemblyBegin(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1180, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1179 + * vecsetvalues(self.vec, indices, values, addv, 1, 1) + * + * def assemblyBegin(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyBegin(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.assemblyBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1182 + * CHKERR( VecAssemblyBegin(self.vec) ) + * + * def assemblyEnd(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyEnd(self.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_277assemblyEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_276assemblyEnd[] = "Vec.assemblyEnd(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_277assemblyEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemblyEnd (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("assemblyEnd", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "assemblyEnd", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_276assemblyEnd(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_276assemblyEnd(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemblyEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":1183 + * + * def assemblyEnd(self): + * CHKERR( VecAssemblyEnd(self.vec) ) # <<<<<<<<<<<<<< + * + * def assemble(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAssemblyEnd(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1183, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1182 + * CHKERR( VecAssemblyBegin(self.vec) ) + * + * def assemblyEnd(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyEnd(self.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.assemblyEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1185 + * CHKERR( VecAssemblyEnd(self.vec) ) + * + * def assemble(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyBegin(self.vec) ) + * CHKERR( VecAssemblyEnd(self.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_279assemble(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_278assemble[] = "Vec.assemble(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_279assemble(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemble (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("assemble", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "assemble", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_278assemble(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_278assemble(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemble", 0); + + /* "petsc4py/PETSc/Vec.pyx":1186 + * + * def assemble(self): + * CHKERR( VecAssemblyBegin(self.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyEnd(self.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAssemblyBegin(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1186, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1187 + * def assemble(self): + * CHKERR( VecAssemblyBegin(self.vec) ) + * CHKERR( VecAssemblyEnd(self.vec) ) # <<<<<<<<<<<<<< + * + * # --- methods for strided vectors --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAssemblyEnd(__pyx_v_self->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1187, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1185 + * CHKERR( VecAssemblyEnd(self.vec) ) + * + * def assemble(self): # <<<<<<<<<<<<<< + * CHKERR( VecAssemblyBegin(self.vec) ) + * CHKERR( VecAssemblyEnd(self.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.assemble", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1191 + * # --- methods for strided vectors --- + * + * def strideScale(self, field, alpha): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = asScalar(alpha) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_281strideScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_280strideScale[] = "Vec.strideScale(self, field, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_281strideScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideScale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_alpha,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("strideScale", 1, 2, 2, 1); __PYX_ERR(40, 1191, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideScale") < 0)) __PYX_ERR(40, 1191, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_field = values[0]; + __pyx_v_alpha = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideScale", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1191, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_280strideScale(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field, __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_280strideScale(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_alpha) { + PetscInt __pyx_v_ival; + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscScalar __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideScale", 0); + + /* "petsc4py/PETSc/Vec.pyx":1192 + * + * def strideScale(self, field, alpha): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecStrideScale(self.vec, ival, sval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1192, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1193 + * def strideScale(self, field, alpha): + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( VecStrideScale(self.vec, ival, sval) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_2 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(40, 1193, __pyx_L1_error) + __pyx_v_sval = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1194 + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( VecStrideScale(self.vec, ival, sval) ) # <<<<<<<<<<<<<< + * + * def strideSum(self, field): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideScale(__pyx_v_self->vec, __pyx_v_ival, __pyx_v_sval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1194, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1191 + * # --- methods for strided vectors --- + * + * def strideScale(self, field, alpha): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = asScalar(alpha) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1196 + * CHKERR( VecStrideScale(self.vec, ival, sval) ) + * + * def strideSum(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_283strideSum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_282strideSum[] = "Vec.strideSum(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_283strideSum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideSum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideSum") < 0)) __PYX_ERR(40, 1196, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideSum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1196, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideSum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_282strideSum(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_282strideSum(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_ival; + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideSum", 0); + + /* "petsc4py/PETSc/Vec.pyx":1197 + * + * def strideSum(self, field): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( VecStrideSum(self.vec, ival, &sval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1197, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1198 + * def strideSum(self, field): + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecStrideSum(self.vec, ival, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1199 + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = 0 + * CHKERR( VecStrideSum(self.vec, ival, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideSum(__pyx_v_self->vec, __pyx_v_ival, (&__pyx_v_sval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1199, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1200 + * cdef PetscScalar sval = 0 + * CHKERR( VecStrideSum(self.vec, ival, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def strideMin(self, field): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1196 + * CHKERR( VecStrideScale(self.vec, ival, sval) ) + * + * def strideSum(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscScalar sval = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideSum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1202 + * return toScalar(sval) + * + * def strideMin(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_285strideMin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_284strideMin[] = "Vec.strideMin(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_285strideMin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideMin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideMin") < 0)) __PYX_ERR(40, 1202, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideMin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1202, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideMin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_284strideMin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_284strideMin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideMin", 0); + + /* "petsc4py/PETSc/Vec.pyx":1203 + * + * def strideMin(self, field): + * cdef PetscInt ival1 = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1203, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1204 + * def strideMin(self, field): + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMin(self.vec, ival1, &ival2, &rval) ) + */ + __pyx_v_ival2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1205 + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecStrideMin(self.vec, ival1, &ival2, &rval) ) + * return (toInt(ival2), toReal(rval)) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1206 + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMin(self.vec, ival1, &ival2, &rval) ) # <<<<<<<<<<<<<< + * return (toInt(ival2), toReal(rval)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideMin(__pyx_v_self->vec, __pyx_v_ival1, (&__pyx_v_ival2), (&__pyx_v_rval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1206, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1207 + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMin(self.vec, ival1, &ival2, &rval) ) + * return (toInt(ival2), toReal(rval)) # <<<<<<<<<<<<<< + * + * def strideMax(self, field): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival2); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1202 + * return toScalar(sval) + * + * def strideMin(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideMin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1209 + * return (toInt(ival2), toReal(rval)) + * + * def strideMax(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_287strideMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_286strideMax[] = "Vec.strideMax(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_287strideMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideMax (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideMax") < 0)) __PYX_ERR(40, 1209, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideMax", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1209, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_286strideMax(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_286strideMax(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideMax", 0); + + /* "petsc4py/PETSc/Vec.pyx":1210 + * + * def strideMax(self, field): + * cdef PetscInt ival1 = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1210, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1211 + * def strideMax(self, field): + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMax(self.vec, ival1, &ival2, &rval) ) + */ + __pyx_v_ival2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1212 + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( VecStrideMax(self.vec, ival1, &ival2, &rval) ) + * return (toInt(ival2), toReal(rval)) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/Vec.pyx":1213 + * cdef PetscInt ival2 = 0 + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMax(self.vec, ival1, &ival2, &rval) ) # <<<<<<<<<<<<<< + * return (toInt(ival2), toReal(rval)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideMax(__pyx_v_self->vec, __pyx_v_ival1, (&__pyx_v_ival2), (&__pyx_v_rval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1213, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1214 + * cdef PetscReal rval = 0 + * CHKERR( VecStrideMax(self.vec, ival1, &ival2, &rval) ) + * return (toInt(ival2), toReal(rval)) # <<<<<<<<<<<<<< + * + * def strideNorm(self, field, norm_type=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival2); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1209 + * return (toInt(ival2), toReal(rval)) + * + * def strideMax(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(field) + * cdef PetscInt ival2 = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1216 + * return (toInt(ival2), toReal(rval)) + * + * def strideNorm(self, field, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_289strideNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_288strideNorm[] = "Vec.strideNorm(self, field, norm_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_289strideNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_norm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideNorm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_norm_type,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_type); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideNorm") < 0)) __PYX_ERR(40, 1216, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = values[0]; + __pyx_v_norm_type = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideNorm", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1216, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_288strideNorm(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field, __pyx_v_norm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_288strideNorm(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_norm_type) { + PetscInt __pyx_v_ival; + NormType __pyx_v_norm_1_2; + NormType __pyx_v_ntype; + PetscReal __pyx_v_rval[2]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + NormType __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideNorm", 0); + + /* "petsc4py/PETSc/Vec.pyx":1217 + * + * def strideNorm(self, field, norm_type=None): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1217, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1218 + * def strideNorm(self, field, norm_type=None): + * cdef PetscInt ival = asInt(field) + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type + */ + __pyx_v_norm_1_2 = NORM_1_AND_2; + + /* "petsc4py/PETSc/Vec.pyx":1219 + * cdef PetscInt ival = asInt(field) + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 # <<<<<<<<<<<<<< + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + */ + __pyx_v_ntype = NORM_2; + + /* "petsc4py/PETSc/Vec.pyx":1220 + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_2 + * if norm_type is not None: ntype = norm_type # <<<<<<<<<<<<<< + * cdef PetscReal rval[2] + * CHKERR( VecStrideNorm(self.vec, ival, ntype, rval) ) + */ + __pyx_t_2 = (__pyx_v_norm_type != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = ((NormType)__Pyx_PyInt_As_NormType(__pyx_v_norm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(40, 1220, __pyx_L1_error) + __pyx_v_ntype = __pyx_t_4; + } + + /* "petsc4py/PETSc/Vec.pyx":1222 + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + * CHKERR( VecStrideNorm(self.vec, ival, ntype, rval) ) # <<<<<<<<<<<<<< + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideNorm(__pyx_v_self->vec, __pyx_v_ival, __pyx_v_ntype, __pyx_v_rval)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1222, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1223 + * cdef PetscReal rval[2] + * CHKERR( VecStrideNorm(self.vec, ival, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) # <<<<<<<<<<<<<< + * else: return (toReal(rval[0]), toReal(rval[1])) + * + */ + __pyx_t_3 = ((__pyx_v_ntype != __pyx_v_norm_1_2) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 1223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":1224 + * CHKERR( VecStrideNorm(self.vec, ival, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) # <<<<<<<<<<<<<< + * + * def strideScatter(self, field, Vec vec, addv=None): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 1224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[1])); if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 1224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 1224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_r = __pyx_t_8; + __pyx_t_8 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Vec.pyx":1216 + * return (toInt(ival2), toReal(rval)) + * + * def strideNorm(self, field, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1226 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def strideScatter(self, field, Vec vec, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_291strideScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_290strideScatter[] = "Vec.strideScatter(self, field, Vec vec, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_291strideScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideScatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_vec,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("strideScatter", 0, 2, 3, 1); __PYX_ERR(40, 1226, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideScatter") < 0)) __PYX_ERR(40, 1226, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = values[0]; + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideScatter", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1226, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 1226, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_290strideScatter(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field, __pyx_v_vec, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_290strideScatter(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + InsertMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideScatter", 0); + + /* "petsc4py/PETSc/Vec.pyx":1227 + * + * def strideScatter(self, field, Vec vec, addv=None): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecStrideScatter(self.vec, ival, vec.vec, caddv) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1227, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1228 + * def strideScatter(self, field, Vec vec, addv=None): + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( VecStrideScatter(self.vec, ival, vec.vec, caddv) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_2 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1228, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1229 + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecStrideScatter(self.vec, ival, vec.vec, caddv) ) # <<<<<<<<<<<<<< + * + * def strideGather(self, field, Vec vec, addv=None): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideScatter(__pyx_v_self->vec, __pyx_v_ival, __pyx_v_vec->vec, __pyx_v_caddv)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1229, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1226 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def strideScatter(self, field, Vec vec, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1231 + * CHKERR( VecStrideScatter(self.vec, ival, vec.vec, caddv) ) + * + * def strideGather(self, field, Vec vec, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_293strideGather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_292strideGather[] = "Vec.strideGather(self, field, Vec vec, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_293strideGather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("strideGather (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_vec,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("strideGather", 0, 2, 3, 1); __PYX_ERR(40, 1231, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strideGather") < 0)) __PYX_ERR(40, 1231, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = values[0]; + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("strideGather", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1231, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideGather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(40, 1231, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_292strideGather(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_field, __pyx_v_vec, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_292strideGather(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_field, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + InsertMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("strideGather", 0); + + /* "petsc4py/PETSc/Vec.pyx":1232 + * + * def strideGather(self, field, Vec vec, addv=None): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecStrideGather(self.vec, ival, vec.vec, caddv) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(40, 1232, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1233 + * def strideGather(self, field, Vec vec, addv=None): + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( VecStrideGather(self.vec, ival, vec.vec, caddv) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_2 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1233, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1234 + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( VecStrideGather(self.vec, ival, vec.vec, caddv) ) # <<<<<<<<<<<<<< + * + * # --- methods for vectors with ghost values --- + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecStrideGather(__pyx_v_self->vec, __pyx_v_ival, __pyx_v_vec->vec, __pyx_v_caddv)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1234, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1231 + * CHKERR( VecStrideScatter(self.vec, ival, vec.vec, caddv) ) + * + * def strideGather(self, field, Vec vec, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.strideGather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1238 + * # --- methods for vectors with ghost values --- + * + * def localForm(self): # <<<<<<<<<<<<<< + * """ + * Intended for use in context manager:: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_295localForm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_294localForm[] = "Vec.localForm(self)\n\n Intended for use in context manager::\n\n with vec.localForm() as lf:\n use(lf)\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_295localForm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localForm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("localForm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "localForm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_294localForm(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_294localForm(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localForm", 0); + + /* "petsc4py/PETSc/Vec.pyx":1245 + * use(lf) + * """ + * return _Vec_LocalForm(self) # <<<<<<<<<<<<<< + * + * def ghostUpdateBegin(self, addv=None, mode=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Vec_LocalForm), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1238 + * # --- methods for vectors with ghost values --- + * + * def localForm(self): # <<<<<<<<<<<<<< + * """ + * Intended for use in context manager:: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.localForm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1247 + * return _Vec_LocalForm(self) + * + * def ghostUpdateBegin(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_297ghostUpdateBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_296ghostUpdateBegin[] = "Vec.ghostUpdateBegin(self, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_297ghostUpdateBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ghostUpdateBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ghostUpdateBegin") < 0)) __PYX_ERR(40, 1247, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_addv = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ghostUpdateBegin", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1247, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdateBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_296ghostUpdateBegin(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_296ghostUpdateBegin(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ghostUpdateBegin", 0); + + /* "petsc4py/PETSc/Vec.pyx":1248 + * + * def ghostUpdateBegin(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1248, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1249 + * def ghostUpdateBegin(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(40, 1249, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1250 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) # <<<<<<<<<<<<<< + * + * def ghostUpdateEnd(self, addv=None, mode=None): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostUpdateBegin(__pyx_v_self->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1250, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1247 + * return _Vec_LocalForm(self) + * + * def ghostUpdateBegin(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdateBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1252 + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + * + * def ghostUpdateEnd(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_299ghostUpdateEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_298ghostUpdateEnd[] = "Vec.ghostUpdateEnd(self, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_299ghostUpdateEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ghostUpdateEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ghostUpdateEnd") < 0)) __PYX_ERR(40, 1252, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_addv = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ghostUpdateEnd", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1252, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdateEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_298ghostUpdateEnd(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_298ghostUpdateEnd(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ghostUpdateEnd", 0); + + /* "petsc4py/PETSc/Vec.pyx":1253 + * + * def ghostUpdateEnd(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1253, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1254 + * def ghostUpdateEnd(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(40, 1254, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1255 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) # <<<<<<<<<<<<<< + * + * def ghostUpdate(self, addv=None, mode=None): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostUpdateEnd(__pyx_v_self->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1255, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1252 + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + * + * def ghostUpdateEnd(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdateEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1257 + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + * def ghostUpdate(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_301ghostUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_300ghostUpdate[] = "Vec.ghostUpdate(self, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_301ghostUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ghostUpdate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ghostUpdate") < 0)) __PYX_ERR(40, 1257, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_addv = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ghostUpdate", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1257, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_300ghostUpdate(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_300ghostUpdate(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ghostUpdate", 0); + + /* "petsc4py/PETSc/Vec.pyx":1258 + * + * def ghostUpdate(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(40, 1258, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Vec.pyx":1259 + * def ghostUpdate(self, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(40, 1259, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Vec.pyx":1260 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) # <<<<<<<<<<<<<< + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostUpdateBegin(__pyx_v_self->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1260, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1261 + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecGhostUpdateBegin(self.vec, caddv, csctm) ) + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) # <<<<<<<<<<<<<< + * + * def setMPIGhost(self, ghosts): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGhostUpdateEnd(__pyx_v_self->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1261, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1257 + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + * def ghostUpdate(self, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.ghostUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1263 + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + * def setMPIGhost(self, ghosts): # <<<<<<<<<<<<<< + * "Alternative to createGhost()" + * cdef PetscInt ng=0, *ig=NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_303setMPIGhost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_302setMPIGhost[] = "Vec.setMPIGhost(self, ghosts)\nAlternative to createGhost()"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_303setMPIGhost(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ghosts = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMPIGhost (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ghosts,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ghosts)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMPIGhost") < 0)) __PYX_ERR(40, 1263, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ghosts = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMPIGhost", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1263, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setMPIGhost", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_302setMPIGhost(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_ghosts); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_302setMPIGhost(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_ghosts) { + PetscInt __pyx_v_ng; + PetscInt *__pyx_v_ig; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMPIGhost", 0); + __Pyx_INCREF(__pyx_v_ghosts); + + /* "petsc4py/PETSc/Vec.pyx":1265 + * def setMPIGhost(self, ghosts): + * "Alternative to createGhost()" + * cdef PetscInt ng=0, *ig=NULL # <<<<<<<<<<<<<< + * ghosts = iarray_i(ghosts, &ng, &ig) + * CHKERR( VecMPISetGhost(self.vec, ng, ig) ) + */ + __pyx_v_ng = 0; + __pyx_v_ig = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1266 + * "Alternative to createGhost()" + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) # <<<<<<<<<<<<<< + * CHKERR( VecMPISetGhost(self.vec, ng, ig) ) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ghosts, (&__pyx_v_ng), (&__pyx_v_ig))); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ghosts, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1267 + * cdef PetscInt ng=0, *ig=NULL + * ghosts = iarray_i(ghosts, &ng, &ig) + * CHKERR( VecMPISetGhost(self.vec, ng, ig) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecMPISetGhost(__pyx_v_self->vec, __pyx_v_ng, __pyx_v_ig)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1267, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1263 + * CHKERR( VecGhostUpdateEnd(self.vec, caddv, csctm) ) + * + * def setMPIGhost(self, ghosts): # <<<<<<<<<<<<<< + * "Alternative to createGhost()" + * cdef PetscInt ng=0, *ig=NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setMPIGhost", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ghosts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1271 + * # + * + * def getSubVector(self, IS iset, Vec subvec=None): # <<<<<<<<<<<<<< + * if subvec is None: subvec = Vec() + * else: CHKERR( VecDestroy(&subvec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_305getSubVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_304getSubVector[] = "Vec.getSubVector(self, IS iset, Vec subvec=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_305getSubVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + struct PyPetscVecObject *__pyx_v_subvec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSubVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,&__pyx_n_s_subvec,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subvec); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getSubVector") < 0)) __PYX_ERR(40, 1271, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + __pyx_v_subvec = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getSubVector", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1271, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getSubVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(40, 1271, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "subvec", 0))) __PYX_ERR(40, 1271, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_304getSubVector(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_iset, __pyx_v_subvec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_304getSubVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, struct PyPetscVecObject *__pyx_v_subvec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSubVector", 0); + __Pyx_INCREF((PyObject *)__pyx_v_subvec); + + /* "petsc4py/PETSc/Vec.pyx":1272 + * + * def getSubVector(self, IS iset, Vec subvec=None): + * if subvec is None: subvec = Vec() # <<<<<<<<<<<<<< + * else: CHKERR( VecDestroy(&subvec.vec) ) + * CHKERR( VecGetSubVector(self.vec, iset.iset, &subvec.vec) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_subvec) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(40, 1272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_subvec, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":1273 + * def getSubVector(self, IS iset, Vec subvec=None): + * if subvec is None: subvec = Vec() + * else: CHKERR( VecDestroy(&subvec.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecGetSubVector(self.vec, iset.iset, &subvec.vec) ) + * return subvec + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_subvec->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1273, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":1274 + * if subvec is None: subvec = Vec() + * else: CHKERR( VecDestroy(&subvec.vec) ) + * CHKERR( VecGetSubVector(self.vec, iset.iset, &subvec.vec) ) # <<<<<<<<<<<<<< + * return subvec + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetSubVector(__pyx_v_self->vec, __pyx_v_iset->iset, (&__pyx_v_subvec->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1274, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1275 + * else: CHKERR( VecDestroy(&subvec.vec) ) + * CHKERR( VecGetSubVector(self.vec, iset.iset, &subvec.vec) ) + * return subvec # <<<<<<<<<<<<<< + * + * def restoreSubVector(self, IS iset, Vec subvec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_subvec)); + __pyx_r = ((PyObject *)__pyx_v_subvec); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1271 + * # + * + * def getSubVector(self, IS iset, Vec subvec=None): # <<<<<<<<<<<<<< + * if subvec is None: subvec = Vec() + * else: CHKERR( VecDestroy(&subvec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getSubVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_subvec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1277 + * return subvec + * + * def restoreSubVector(self, IS iset, Vec subvec): # <<<<<<<<<<<<<< + * CHKERR( VecRestoreSubVector(self.vec, iset.iset, &subvec.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_307restoreSubVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_306restoreSubVector[] = "Vec.restoreSubVector(self, IS iset, Vec subvec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_307restoreSubVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + struct PyPetscVecObject *__pyx_v_subvec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreSubVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,&__pyx_n_s_subvec,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subvec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("restoreSubVector", 1, 2, 2, 1); __PYX_ERR(40, 1277, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreSubVector") < 0)) __PYX_ERR(40, 1277, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + __pyx_v_subvec = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreSubVector", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1277, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreSubVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(40, 1277, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "subvec", 0))) __PYX_ERR(40, 1277, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_306restoreSubVector(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_iset, __pyx_v_subvec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_306restoreSubVector(struct PyPetscVecObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, struct PyPetscVecObject *__pyx_v_subvec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreSubVector", 0); + + /* "petsc4py/PETSc/Vec.pyx":1278 + * + * def restoreSubVector(self, IS iset, Vec subvec): + * CHKERR( VecRestoreSubVector(self.vec, iset.iset, &subvec.vec) ) # <<<<<<<<<<<<<< + * + * def getNestSubVecs(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecRestoreSubVector(__pyx_v_self->vec, __pyx_v_iset->iset, (&__pyx_v_subvec->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1278, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1277 + * return subvec + * + * def restoreSubVector(self, IS iset, Vec subvec): # <<<<<<<<<<<<<< + * CHKERR( VecRestoreSubVector(self.vec, iset.iset, &subvec.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.restoreSubVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1280 + * CHKERR( VecRestoreSubVector(self.vec, iset.iset, &subvec.vec) ) + * + * def getNestSubVecs(self): # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * cdef PetscVec* sx=NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_309getNestSubVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_308getNestSubVecs[] = "Vec.getNestSubVecs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_309getNestSubVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNestSubVecs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNestSubVecs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNestSubVecs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_308getNestSubVecs(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_308getNestSubVecs(struct PyPetscVecObject *__pyx_v_self) { + PetscInt __pyx_v_N; + Vec *__pyx_v_sx; + PyObject *__pyx_v_output = NULL; + PetscInt __pyx_v_i; + struct PyPetscVecObject *__pyx_v_pyvec = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PetscInt __pyx_t_4; + PetscInt __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNestSubVecs", 0); + + /* "petsc4py/PETSc/Vec.pyx":1281 + * + * def getNestSubVecs(self): + * cdef PetscInt N=0 # <<<<<<<<<<<<<< + * cdef PetscVec* sx=NULL + * CHKERR( VecNestGetSubVecs(self.vec, &N, &sx) ) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":1282 + * def getNestSubVecs(self): + * cdef PetscInt N=0 + * cdef PetscVec* sx=NULL # <<<<<<<<<<<<<< + * CHKERR( VecNestGetSubVecs(self.vec, &N, &sx) ) + * output = [] + */ + __pyx_v_sx = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1283 + * cdef PetscInt N=0 + * cdef PetscVec* sx=NULL + * CHKERR( VecNestGetSubVecs(self.vec, &N, &sx) ) # <<<<<<<<<<<<<< + * output = [] + * for i in range(N): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNestGetSubVecs(__pyx_v_self->vec, (&__pyx_v_N), (&__pyx_v_sx))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1283, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1284 + * cdef PetscVec* sx=NULL + * CHKERR( VecNestGetSubVecs(self.vec, &N, &sx) ) + * output = [] # <<<<<<<<<<<<<< + * for i in range(N): + * pyvec = Vec() + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_output = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1285 + * CHKERR( VecNestGetSubVecs(self.vec, &N, &sx) ) + * output = [] + * for i in range(N): # <<<<<<<<<<<<<< + * pyvec = Vec() + * pyvec.vec = sx[i] + */ + __pyx_t_3 = __pyx_v_N; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "petsc4py/PETSc/Vec.pyx":1286 + * output = [] + * for i in range(N): + * pyvec = Vec() # <<<<<<<<<<<<<< + * pyvec.vec = sx[i] + * CHKERR( PetscObjectReference( pyvec.vec) ) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_pyvec, ((struct PyPetscVecObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1287 + * for i in range(N): + * pyvec = Vec() + * pyvec.vec = sx[i] # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference( pyvec.vec) ) + * output.append(pyvec) + */ + __pyx_v_pyvec->vec = (__pyx_v_sx[__pyx_v_i]); + + /* "petsc4py/PETSc/Vec.pyx":1288 + * pyvec = Vec() + * pyvec.vec = sx[i] + * CHKERR( PetscObjectReference( pyvec.vec) ) # <<<<<<<<<<<<<< + * output.append(pyvec) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectReference(((PetscObject)__pyx_v_pyvec->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1288, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1289 + * pyvec.vec = sx[i] + * CHKERR( PetscObjectReference( pyvec.vec) ) + * output.append(pyvec) # <<<<<<<<<<<<<< + * + * return output + */ + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_output, ((PyObject *)__pyx_v_pyvec)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(40, 1289, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Vec.pyx":1291 + * output.append(pyvec) + * + * return output # <<<<<<<<<<<<<< + * + * def setNestSubVecs(self, sx, idxm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_output); + __pyx_r = __pyx_v_output; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1280 + * CHKERR( VecRestoreSubVector(self.vec, iset.iset, &subvec.vec) ) + * + * def getNestSubVecs(self): # <<<<<<<<<<<<<< + * cdef PetscInt N=0 + * cdef PetscVec* sx=NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getNestSubVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_output); + __Pyx_XDECREF((PyObject *)__pyx_v_pyvec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1293 + * return output + * + * def setNestSubVecs(self, sx, idxm=None): # <<<<<<<<<<<<<< + * if idxm is None: idxm = range(len(sx)) + * else: assert len(idxm) == len(sx) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_311setNestSubVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_310setNestSubVecs[] = "Vec.setNestSubVecs(self, sx, idxm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_311setNestSubVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sx = 0; + PyObject *__pyx_v_idxm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNestSubVecs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sx,&__pyx_n_s_idxm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_idxm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNestSubVecs") < 0)) __PYX_ERR(40, 1293, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_sx = values[0]; + __pyx_v_idxm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNestSubVecs", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1293, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setNestSubVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_310setNestSubVecs(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_sx, __pyx_v_idxm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_310setNestSubVecs(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_sx, PyObject *__pyx_v_idxm) { + PetscInt __pyx_v_N; + PetscInt *__pyx_v_cidxm; + Vec *__pyx_v_csx; + CYTHON_UNUSED PyArrayObject *__pyx_v_tmp = NULL; + long __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + PetscInt __pyx_t_7; + Vec __pyx_t_8; + PetscErrorCode __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNestSubVecs", 0); + __Pyx_INCREF(__pyx_v_idxm); + + /* "petsc4py/PETSc/Vec.pyx":1294 + * + * def setNestSubVecs(self, sx, idxm=None): + * if idxm is None: idxm = range(len(sx)) # <<<<<<<<<<<<<< + * else: assert len(idxm) == len(sx) + * cdef PetscInt N = 0 + */ + __pyx_t_1 = (__pyx_v_idxm == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = PyObject_Length(__pyx_v_sx); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(40, 1294, __pyx_L1_error) + __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_idxm, __pyx_t_5); + __pyx_t_5 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Vec.pyx":1295 + * def setNestSubVecs(self, sx, idxm=None): + * if idxm is None: idxm = range(len(sx)) + * else: assert len(idxm) == len(sx) # <<<<<<<<<<<<<< + * cdef PetscInt N = 0 + * cdef PetscInt* cidxm = NULL + */ + /*else*/ { + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = PyObject_Length(__pyx_v_idxm); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(40, 1295, __pyx_L1_error) + __pyx_t_6 = PyObject_Length(__pyx_v_sx); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(40, 1295, __pyx_L1_error) + if (unlikely(!((__pyx_t_3 == __pyx_t_6) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(40, 1295, __pyx_L1_error) + } + } + #endif + } + __pyx_L3:; + + /* "petsc4py/PETSc/Vec.pyx":1296 + * if idxm is None: idxm = range(len(sx)) + * else: assert len(idxm) == len(sx) + * cdef PetscInt N = 0 # <<<<<<<<<<<<<< + * cdef PetscInt* cidxm = NULL + * idxm = iarray_i(idxm, &N, &cidxm) + */ + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Vec.pyx":1297 + * else: assert len(idxm) == len(sx) + * cdef PetscInt N = 0 + * cdef PetscInt* cidxm = NULL # <<<<<<<<<<<<<< + * idxm = iarray_i(idxm, &N, &cidxm) + * + */ + __pyx_v_cidxm = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1298 + * cdef PetscInt N = 0 + * cdef PetscInt* cidxm = NULL + * idxm = iarray_i(idxm, &N, &cidxm) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_idxm, (&__pyx_v_N), (&__pyx_v_cidxm))); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_idxm, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1301 + * + * + * cdef PetscVec* csx = NULL # <<<<<<<<<<<<<< + * tmp = oarray_p(empty_p(N), NULL, &csx) + * for i from 0 <= i < N: csx[i] = (sx[i]).vec + */ + __pyx_v_csx = NULL; + + /* "petsc4py/PETSc/Vec.pyx":1302 + * + * cdef PetscVec* csx = NULL + * tmp = oarray_p(empty_p(N), NULL, &csx) # <<<<<<<<<<<<<< + * for i from 0 <= i < N: csx[i] = (sx[i]).vec + * + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_N)); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_5, NULL, ((void **)(&__pyx_v_csx)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_tmp = ((PyArrayObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1303 + * cdef PetscVec* csx = NULL + * tmp = oarray_p(empty_p(N), NULL, &csx) + * for i from 0 <= i < N: csx[i] = (sx[i]).vec # <<<<<<<<<<<<<< + * + * CHKERR( VecNestSetSubVecs(self.vec, N, cidxm, csx) ) + */ + __pyx_t_7 = __pyx_v_N; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_sx, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(40, 1303, __pyx_L1_error) + __pyx_t_8 = ((struct PyPetscVecObject *)__pyx_t_4)->vec; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_csx[__pyx_v_i]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/Vec.pyx":1305 + * for i from 0 <= i < N: csx[i] = (sx[i]).vec + * + * CHKERR( VecNestSetSubVecs(self.vec, N, cidxm, csx) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNestSetSubVecs(__pyx_v_self->vec, __pyx_v_N, __pyx_v_cidxm, __pyx_v_csx)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1305, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1293 + * return output + * + * def setNestSubVecs(self, sx, idxm=None): # <<<<<<<<<<<<<< + * if idxm is None: idxm = range(len(sx)) + * else: assert len(idxm) == len(sx) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setNestSubVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_idxm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1309 + * # + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(self.vec, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_313setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_312setDM[] = "Vec.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_313setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(40, 1309, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(40, 1309, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(40, 1309, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_312setDM(((struct PyPetscVecObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_312setDM(struct PyPetscVecObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/Vec.pyx":1310 + * + * def setDM(self, DM dm): + * CHKERR( VecSetDM(self.vec, dm.dm) ) # <<<<<<<<<<<<<< + * + * def getDM(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSetDM(__pyx_v_self->vec, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1310, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1309 + * # + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( VecSetDM(self.vec, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1312 + * CHKERR( VecSetDM(self.vec, dm.dm) ) + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef DM dm = DM() + * CHKERR( VecGetDM(self.vec, &dm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_315getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Vec_314getDM[] = "Vec.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_315getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_314getDM(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_314getDM(struct PyPetscVecObject *__pyx_v_self) { + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/Vec.pyx":1313 + * + * def getDM(self): + * cdef DM dm = DM() # <<<<<<<<<<<<<< + * CHKERR( VecGetDM(self.vec, &dm.dm) ) + * return dm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1314 + * def getDM(self): + * cdef DM dm = DM() + * CHKERR( VecGetDM(self.vec, &dm.dm) ) # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecGetDM(__pyx_v_self->vec, (&__pyx_v_dm->dm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(40, 1314, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1315 + * cdef DM dm = DM() + * CHKERR( VecGetDM(self.vec, &dm.dm) ) + * return dm # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1312 + * CHKERR( VecSetDM(self.vec, dm.dm) ) + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef DM dm = DM() + * CHKERR( VecGetDM(self.vec, &dm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1320 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_5sizes___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_5sizes___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1321 + * property sizes: + * def __get__(self): + * return self.getSizes() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setSizes(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1320 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1322 + * def __get__(self): + * return self.getSizes() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSizes(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_5sizes_2__set__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec_5sizes_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1323 + * return self.getSizes() + * def __set__(self, value): + * self.setSizes(value) # <<<<<<<<<<<<<< + * + * property size: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1322 + * def __get__(self): + * return self.getSizes() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSizes(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.sizes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1326 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_4size___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_4size___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1327 + * property size: + * def __get__(self): + * return self.getSize() # <<<<<<<<<<<<<< + * + * property local_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1326 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1330 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_10local_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_10local_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_10local_size___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10local_size___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1331 + * property local_size: + * def __get__(self): + * return self.getLocalSize() # <<<<<<<<<<<<<< + * + * property block_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getLocalSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1330 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.local_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1334 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_10block_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_10block_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_10block_size___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_10block_size___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1335 + * property block_size: + * def __get__(self): + * return self.getBlockSize() # <<<<<<<<<<<<<< + * + * property owner_range: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1334 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.block_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1338 + * + * property owner_range: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRange() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_11owner_range_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_11owner_range_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_11owner_range___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_11owner_range___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1339 + * property owner_range: + * def __get__(self): + * return self.getOwnershipRange() # <<<<<<<<<<<<<< + * + * property owner_ranges: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOwnershipRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1338 + * + * property owner_range: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRange() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.owner_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1342 + * + * property owner_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRanges() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_12owner_ranges_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_12owner_ranges_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_12owner_ranges___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_12owner_ranges___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1343 + * property owner_ranges: + * def __get__(self): + * return self.getOwnershipRanges() # <<<<<<<<<<<<<< + * + * property buffer_w: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOwnershipRanges); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1342 + * + * property owner_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRanges() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.owner_ranges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1347 + * property buffer_w: + * "Vec buffer (writable)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBuffer() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_w_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_w_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_w___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_w___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1348 + * "Vec buffer (writable)" + * def __get__(self): + * return self.getBuffer() # <<<<<<<<<<<<<< + * + * property buffer_r: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBuffer); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1347 + * property buffer_w: + * "Vec buffer (writable)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBuffer() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.buffer_w.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1352 + * property buffer_r: + * "Vec buffer (read-only)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBuffer(True) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_r_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_r_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_r___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_8buffer_r___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1353 + * "Vec buffer (read-only)" + * def __get__(self): + * return self.getBuffer(True) # <<<<<<<<<<<<<< + * + * property array_w: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBuffer); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, Py_True) : __Pyx_PyObject_CallOneArg(__pyx_t_2, Py_True); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1352 + * property buffer_r: + * "Vec buffer (read-only)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBuffer(True) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.buffer_r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1357 + * property array_w: + * "Vec array (writable)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getArray() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_7array_w___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_7array_w___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1358 + * "Vec array (writable)" + * def __get__(self): + * return self.getArray() # <<<<<<<<<<<<<< + * def __set__(self, value): + * cdef buf = self.getBuffer() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getArray); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1357 + * property array_w: + * "Vec array (writable)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getArray() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array_w.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1359 + * def __get__(self): + * return self.getArray() + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef buf = self.getBuffer() + * with buf as array: array[:] = value + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_7array_w_2__set__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec_7array_w_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value) { + PyObject *__pyx_v_buf = 0; + PyObject *__pyx_v_array = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1360 + * return self.getArray() + * def __set__(self, value): + * cdef buf = self.getBuffer() # <<<<<<<<<<<<<< + * with buf as array: array[:] = value + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBuffer); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_buf = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1361 + * def __set__(self, value): + * cdef buf = self.getBuffer() + * with buf as array: array[:] = value # <<<<<<<<<<<<<< + * + * property array_r: + */ + /*with:*/ { + __pyx_t_4 = __Pyx_PyObject_LookupSpecial(__pyx_v_buf, __pyx_n_s_exit); if (unlikely(!__pyx_t_4)) __PYX_ERR(40, 1361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_LookupSpecial(__pyx_v_buf, __pyx_n_s_enter); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1361, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1361, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __pyx_t_1; + __pyx_t_1 = 0; + /*try:*/ { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + /*try:*/ { + __pyx_v_array = __pyx_t_2; + __pyx_t_2 = 0; + if (__Pyx_PyObject_SetSlice(__pyx_v_array, __pyx_v_value, 0, 0, NULL, NULL, &__pyx_slice__40, 0, 0, 1) < 0) __PYX_ERR(40, 1361, __pyx_L7_error) + } + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L12_try_end; + __pyx_L7_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + /*except:*/ { + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array_w.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_1, &__pyx_t_3) < 0) __PYX_ERR(40, 1361, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PyTuple_Pack(3, __pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 1361, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(40, 1361, __pyx_L9_except_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_9); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__pyx_t_10 < 0) __PYX_ERR(40, 1361, __pyx_L9_except_error) + __pyx_t_11 = ((!(__pyx_t_10 != 0)) != 0); + if (__pyx_t_11) { + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ErrRestoreWithState(__pyx_t_2, __pyx_t_1, __pyx_t_3); + __pyx_t_2 = 0; __pyx_t_1 = 0; __pyx_t_3 = 0; + __PYX_ERR(40, 1361, __pyx_L9_except_error) + } + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_exception_handled; + } + __pyx_L9_except_error:; + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); + goto __pyx_L1_error; + __pyx_L8_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_L12_try_end:; + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_4) { + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__21, NULL); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(40, 1361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + goto __pyx_L6; + } + __pyx_L6:; + } + goto __pyx_L16; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L1_error; + __pyx_L16:; + } + + /* "petsc4py/PETSc/Vec.pyx":1359 + * def __get__(self): + * return self.getArray() + * def __set__(self, value): # <<<<<<<<<<<<<< + * cdef buf = self.getBuffer() + * with buf as array: array[:] = value + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array_w.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_buf); + __Pyx_XDECREF(__pyx_v_array); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1365 + * property array_r: + * "Vec array (read-only)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getArray(True) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7array_r_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_7array_r_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_7array_r___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_7array_r___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1366 + * "Vec array (read-only)" + * def __get__(self): + * return self.getArray(True) # <<<<<<<<<<<<<< + * + * property buffer: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getArray); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, Py_True) : __Pyx_PyObject_CallOneArg(__pyx_t_2, Py_True); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1365 + * property array_r: + * "Vec array (read-only)" + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getArray(True) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array_r.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1369 + * + * property buffer: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.buffer_w + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_6buffer_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_6buffer_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_6buffer___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_6buffer___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1370 + * property buffer: + * def __get__(self): + * return self.buffer_w # <<<<<<<<<<<<<< + * + * property array: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_buffer_w); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1369 + * + * property buffer: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.buffer_w + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.buffer.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1373 + * + * property array: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.array_w + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5array_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_5array_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_5array___get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_5array___get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1374 + * property array: + * def __get__(self): + * return self.array_w # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.array_w = value + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_array_w); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1373 + * + * property array: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.array_w + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1375 + * def __get__(self): + * return self.array_w + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.array_w = value + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Vec_5array_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_5array_2__set__(((struct PyPetscVecObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Vec_5array_2__set__(struct PyPetscVecObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1376 + * return self.array_w + * def __set__(self, value): + * self.array_w = value # <<<<<<<<<<<<<< + * + * # --- NumPy array interface (legacy) --- + */ + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_array_w, __pyx_v_value) < 0) __PYX_ERR(40, 1376, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1375 + * def __get__(self): + * return self.array_w + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.array_w = value + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Vec.array.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Vec.pyx":1381 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef buf = self.getBuffer() + * return buf.__array_interface__ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_19__array_interface___1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Vec_19__array_interface___1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Vec_19__array_interface_____get__(((struct PyPetscVecObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Vec_19__array_interface_____get__(struct PyPetscVecObject *__pyx_v_self) { + PyObject *__pyx_v_buf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Vec.pyx":1382 + * property __array_interface__: + * def __get__(self): + * cdef buf = self.getBuffer() # <<<<<<<<<<<<<< + * return buf.__array_interface__ + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBuffer); if (unlikely(!__pyx_t_2)) __PYX_ERR(40, 1382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_buf = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Vec.pyx":1383 + * def __get__(self): + * cdef buf = self.getBuffer() + * return buf.__array_interface__ # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_buf, __pyx_n_s_array_interface); if (unlikely(!__pyx_t_1)) __PYX_ERR(40, 1383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Vec.pyx":1381 + * + * property __array_interface__: + * def __get__(self): # <<<<<<<<<<<<<< + * cdef buf = self.getBuffer() + * return buf.__array_interface__ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Vec.__array_interface__.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_buf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":5 + * cdef class Quad(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.quad + * self.quad = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4Quad_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4Quad_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad___cinit__(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4Quad___cinit__(struct PyPetscQuadObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DT.pyx":6 + * + * def __cinit__(self): + * self.obj = &self.quad # <<<<<<<<<<<<<< + * self.quad = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->quad)); + + /* "petsc4py/PETSc/DT.pyx":7 + * def __cinit__(self): + * self.obj = &self.quad + * self.quad = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->quad = NULL; + + /* "petsc4py/PETSc/DT.pyx":5 + * cdef class Quad(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.quad + * self.quad = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":9 + * self.quad = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_2view[] = "Quad.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(41, 9, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(41, 9, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(41, 9, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_2view(((struct PyPetscQuadObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_2view(struct PyPetscQuadObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/DT.pyx":10 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscQuadratureView(self.quad, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/DT.pyx":11 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureView(self.quad, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/DT.pyx":12 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscQuadratureView(self.quad, vwr) ) # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureView(__pyx_v_self->quad, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 12, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":9 + * self.quad = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":14 + * CHKERR( PetscQuadratureView(self.quad, vwr) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscQuadrature newquad = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_4create[] = "Quad.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(41, 14, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(41, 14, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_4create(((struct PyPetscQuadObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_4create(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscQuadrature __pyx_v_newquad; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DT.pyx":15 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscQuadrature newquad = NULL + * CHKERR( PetscQuadratureCreate(ccomm, &newquad) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(41, 15, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DT.pyx":16 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscQuadrature newquad = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureCreate(ccomm, &newquad) ) + * PetscCLEAR(self.obj); self.quad = newquad + */ + __pyx_v_newquad = NULL; + + /* "petsc4py/PETSc/DT.pyx":17 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscQuadrature newquad = NULL + * CHKERR( PetscQuadratureCreate(ccomm, &newquad) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.quad = newquad + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureCreate(__pyx_v_ccomm, (&__pyx_v_newquad))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 17, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":18 + * cdef PetscQuadrature newquad = NULL + * CHKERR( PetscQuadratureCreate(ccomm, &newquad) ) + * PetscCLEAR(self.obj); self.quad = newquad # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->quad = __pyx_v_newquad; + + /* "petsc4py/PETSc/DT.pyx":19 + * CHKERR( PetscQuadratureCreate(ccomm, &newquad) ) + * PetscCLEAR(self.obj); self.quad = newquad + * return self # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":14 + * CHKERR( PetscQuadratureView(self.quad, vwr) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscQuadrature newquad = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":21 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef Quad newquad = Quad() + * CHKERR( PetscQuadratureDuplicate(self.quad, &newquad.quad) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_7duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_6duplicate[] = "Quad.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_7duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_6duplicate(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_6duplicate(struct PyPetscQuadObject *__pyx_v_self) { + struct PyPetscQuadObject *__pyx_v_newquad = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/DT.pyx":22 + * + * def duplicate(self): + * cdef Quad newquad = Quad() # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureDuplicate(self.quad, &newquad.quad) ) + * return newquad + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_1)) __PYX_ERR(41, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_newquad = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DT.pyx":23 + * def duplicate(self): + * cdef Quad newquad = Quad() + * CHKERR( PetscQuadratureDuplicate(self.quad, &newquad.quad) ) # <<<<<<<<<<<<<< + * return newquad + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureDuplicate(__pyx_v_self->quad, (&__pyx_v_newquad->quad))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 23, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":24 + * cdef Quad newquad = Quad() + * CHKERR( PetscQuadratureDuplicate(self.quad, &newquad.quad) ) + * return newquad # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_newquad)); + __pyx_r = ((PyObject *)__pyx_v_newquad); + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":21 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef Quad newquad = Quad() + * CHKERR( PetscQuadratureDuplicate(self.quad, &newquad.quad) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Quad.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_newquad); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":26 + * return newquad + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureDestroy(&self.quad) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_8destroy[] = "Quad.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_8destroy(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_8destroy(struct PyPetscQuadObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DT.pyx":27 + * + * def destroy(self): + * CHKERR( PetscQuadratureDestroy(&self.quad) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureDestroy((&__pyx_v_self->quad))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 27, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":28 + * def destroy(self): + * CHKERR( PetscQuadratureDestroy(&self.quad) ) + * return self # <<<<<<<<<<<<<< + * + * def getData(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":26 + * return newquad + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureDestroy(&self.quad) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":30 + * return self + * + * def getData(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * cdef PetscInt cnc = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_11getData(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_10getData[] = "Quad.getData(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_11getData(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getData (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getData", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getData", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_10getData(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_10getData(struct PyPetscQuadObject *__pyx_v_self) { + PetscInt __pyx_v_cdim; + PetscInt __pyx_v_cnc; + PetscInt __pyx_v_cnpoints; + PetscReal const *__pyx_v_cpoints; + PetscReal const *__pyx_v_cweights; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getData", 0); + + /* "petsc4py/PETSc/DT.pyx":31 + * + * def getData(self): + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cnc = 0 + * cdef PetscInt cnpoints = 0 + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/DT.pyx":32 + * def getData(self): + * cdef PetscInt cdim = 0 + * cdef PetscInt cnc = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = 0 + * cdef const PetscReal *cpoints = NULL + */ + __pyx_v_cnc = 0; + + /* "petsc4py/PETSc/DT.pyx":33 + * cdef PetscInt cdim = 0 + * cdef PetscInt cnc = 0 + * cdef PetscInt cnpoints = 0 # <<<<<<<<<<<<<< + * cdef const PetscReal *cpoints = NULL + * cdef const PetscReal *cweights = NULL + */ + __pyx_v_cnpoints = 0; + + /* "petsc4py/PETSc/DT.pyx":34 + * cdef PetscInt cnc = 0 + * cdef PetscInt cnpoints = 0 + * cdef const PetscReal *cpoints = NULL # <<<<<<<<<<<<<< + * cdef const PetscReal *cweights = NULL + * CHKERR( PetscQuadratureGetData(self.quad, &cdim, &cnc, &cnpoints, &cpoints, &cweights)) + */ + __pyx_v_cpoints = NULL; + + /* "petsc4py/PETSc/DT.pyx":35 + * cdef PetscInt cnpoints = 0 + * cdef const PetscReal *cpoints = NULL + * cdef const PetscReal *cweights = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureGetData(self.quad, &cdim, &cnc, &cnpoints, &cpoints, &cweights)) + * return array_r(cnpoints*cdim, cpoints), array_r(cnpoints*cnc, cweights) + */ + __pyx_v_cweights = NULL; + + /* "petsc4py/PETSc/DT.pyx":36 + * cdef const PetscReal *cpoints = NULL + * cdef const PetscReal *cweights = NULL + * CHKERR( PetscQuadratureGetData(self.quad, &cdim, &cnc, &cnpoints, &cpoints, &cweights)) # <<<<<<<<<<<<<< + * return array_r(cnpoints*cdim, cpoints), array_r(cnpoints*cnc, cweights) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureGetData(__pyx_v_self->quad, (&__pyx_v_cdim), (&__pyx_v_cnc), (&__pyx_v_cnpoints), (&__pyx_v_cpoints), (&__pyx_v_cweights))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 36, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":37 + * cdef const PetscReal *cweights = NULL + * CHKERR( PetscQuadratureGetData(self.quad, &cdim, &cnc, &cnpoints, &cpoints, &cweights)) + * return array_r(cnpoints*cdim, cpoints), array_r(cnpoints*cnc, cweights) # <<<<<<<<<<<<<< + * + * def getNumComponents(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r((__pyx_v_cnpoints * __pyx_v_cdim), __pyx_v_cpoints)); if (unlikely(!__pyx_t_2)) __PYX_ERR(41, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r((__pyx_v_cnpoints * __pyx_v_cnc), __pyx_v_cweights)); if (unlikely(!__pyx_t_3)) __PYX_ERR(41, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(41, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":30 + * return self + * + * def getData(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * cdef PetscInt cnc = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Quad.getData", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":39 + * return array_r(cnpoints*cdim, cpoints), array_r(cnpoints*cnc, cweights) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = 0 + * CHKERR( PetscQuadratureGetNumComponents(self.quad, &cnc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_13getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_12getNumComponents[] = "Quad.getNumComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_13getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_12getNumComponents(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_12getNumComponents(struct PyPetscQuadObject *__pyx_v_self) { + PetscInt __pyx_v_cnc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumComponents", 0); + + /* "petsc4py/PETSc/DT.pyx":40 + * + * def getNumComponents(self): + * cdef PetscInt cnc = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureGetNumComponents(self.quad, &cnc) ) + * return toInt(cnc) + */ + __pyx_v_cnc = 0; + + /* "petsc4py/PETSc/DT.pyx":41 + * def getNumComponents(self): + * cdef PetscInt cnc = 0 + * CHKERR( PetscQuadratureGetNumComponents(self.quad, &cnc) ) # <<<<<<<<<<<<<< + * return toInt(cnc) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureGetNumComponents(__pyx_v_self->quad, (&__pyx_v_cnc))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":42 + * cdef PetscInt cnc = 0 + * CHKERR( PetscQuadratureGetNumComponents(self.quad, &cnc) ) + * return toInt(cnc) # <<<<<<<<<<<<<< + * + * def setNumComponents(self, nc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnc); if (unlikely(!__pyx_t_2)) __PYX_ERR(41, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":39 + * return array_r(cnpoints*cdim, cpoints), array_r(cnpoints*cnc, cweights) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = 0 + * CHKERR( PetscQuadratureGetNumComponents(self.quad, &cnc) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Quad.getNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":44 + * return toInt(cnc) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_15setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_14setNumComponents[] = "Quad.setNumComponents(self, nc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_15setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumComponents") < 0)) __PYX_ERR(41, 44, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nc = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumComponents", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(41, 44, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_14setNumComponents(((struct PyPetscQuadObject *)__pyx_v_self), __pyx_v_nc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_14setNumComponents(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_nc) { + PetscInt __pyx_v_cnc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumComponents", 0); + + /* "petsc4py/PETSc/DT.pyx":45 + * + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nc); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(41, 45, __pyx_L1_error) + __pyx_v_cnc = __pyx_t_1; + + /* "petsc4py/PETSc/DT.pyx":46 + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) # <<<<<<<<<<<<<< + * + * def getOrder(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureSetNumComponents(__pyx_v_self->quad, __pyx_v_cnc)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":44 + * return toInt(cnc) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":48 + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) + * + * def getOrder(self): # <<<<<<<<<<<<<< + * cdef PetscInt corder = 0 + * CHKERR( PetscQuadratureGetOrder(self.quad, &corder)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_17getOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_16getOrder[] = "Quad.getOrder(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_17getOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOrder (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOrder", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOrder", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_16getOrder(((struct PyPetscQuadObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_16getOrder(struct PyPetscQuadObject *__pyx_v_self) { + PetscInt __pyx_v_corder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOrder", 0); + + /* "petsc4py/PETSc/DT.pyx":49 + * + * def getOrder(self): + * cdef PetscInt corder = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureGetOrder(self.quad, &corder)) + * return toInt(corder) + */ + __pyx_v_corder = 0; + + /* "petsc4py/PETSc/DT.pyx":50 + * def getOrder(self): + * cdef PetscInt corder = 0 + * CHKERR( PetscQuadratureGetOrder(self.quad, &corder)) # <<<<<<<<<<<<<< + * return toInt(corder) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureGetOrder(__pyx_v_self->quad, (&__pyx_v_corder))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 50, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":51 + * cdef PetscInt corder = 0 + * CHKERR( PetscQuadratureGetOrder(self.quad, &corder)) + * return toInt(corder) # <<<<<<<<<<<<<< + * + * def setOrder(self, order): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_corder); if (unlikely(!__pyx_t_2)) __PYX_ERR(41, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DT.pyx":48 + * CHKERR( PetscQuadratureSetNumComponents(self.quad, cnc) ) + * + * def getOrder(self): # <<<<<<<<<<<<<< + * cdef PetscInt corder = 0 + * CHKERR( PetscQuadratureGetOrder(self.quad, &corder)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Quad.getOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DT.pyx":53 + * return toInt(corder) + * + * def setOrder(self, order): # <<<<<<<<<<<<<< + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscQuadratureSetOrder(self.quad, corder)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_19setOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4Quad_18setOrder[] = "Quad.setOrder(self, order)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4Quad_19setOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_order = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOrder (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_order,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_order)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOrder") < 0)) __PYX_ERR(41, 53, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_order = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOrder", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(41, 53, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.setOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4Quad_18setOrder(((struct PyPetscQuadObject *)__pyx_v_self), __pyx_v_order); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4Quad_18setOrder(struct PyPetscQuadObject *__pyx_v_self, PyObject *__pyx_v_order) { + PetscInt __pyx_v_corder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOrder", 0); + + /* "petsc4py/PETSc/DT.pyx":54 + * + * def setOrder(self, order): + * cdef PetscInt corder = asInt(order) # <<<<<<<<<<<<<< + * CHKERR( PetscQuadratureSetOrder(self.quad, corder)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_order); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(41, 54, __pyx_L1_error) + __pyx_v_corder = __pyx_t_1; + + /* "petsc4py/PETSc/DT.pyx":55 + * def setOrder(self, order): + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscQuadratureSetOrder(self.quad, corder)) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscQuadratureSetOrder(__pyx_v_self->quad, __pyx_v_corder)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(41, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/DT.pyx":53 + * return toInt(corder) + * + * def setOrder(self, order): # <<<<<<<<<<<<<< + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscQuadratureSetOrder(self.quad, corder)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Quad.setOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":14 + * Type = FEType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.fe + * self.fe = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2FE_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2FE_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE___cinit__(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2FE___cinit__(struct PyPetscFEObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/FE.pyx":15 + * + * def __cinit__(self): + * self.obj = &self.fe # <<<<<<<<<<<<<< + * self.fe = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->fe)); + + /* "petsc4py/PETSc/FE.pyx":16 + * def __cinit__(self): + * self.obj = &self.fe + * self.fe = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->fe = NULL; + + /* "petsc4py/PETSc/FE.pyx":14 + * Type = FEType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.fe + * self.fe = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":18 + * self.fe = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_2view[] = "FE.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(42, 18, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 18, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(42, 18, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_2view(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_2view(struct PyPetscFEObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/FE.pyx":19 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscFEView(self.fe, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/FE.pyx":20 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscFEView(self.fe, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/FE.pyx":21 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscFEView(self.fe, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEView(__pyx_v_self->fe, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 21, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":18 + * self.fe = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":23 + * CHKERR( PetscFEView(self.fe, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFEDestroy(&self.fe) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_4destroy[] = "FE.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_4destroy(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_4destroy(struct PyPetscFEObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/FE.pyx":24 + * + * def destroy(self): + * CHKERR( PetscFEDestroy(&self.fe) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEDestroy((&__pyx_v_self->fe))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 24, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":25 + * def destroy(self): + * CHKERR( PetscFEDestroy(&self.fe) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":23 + * CHKERR( PetscFEView(self.fe, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFEDestroy(&self.fe) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":27 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_6create[] = "FE.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(42, 27, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 27, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_6create(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_6create(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscFE __pyx_v_newfe; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/FE.pyx":28 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscFE newfe = NULL + * CHKERR( PetscFECreate(ccomm, &newfe) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(42, 28, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":29 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscFECreate(ccomm, &newfe) ) + * PetscCLEAR(self.obj); self.fe = newfe + */ + __pyx_v_newfe = NULL; + + /* "petsc4py/PETSc/FE.pyx":30 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + * CHKERR( PetscFECreate(ccomm, &newfe) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.fe = newfe + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFECreate(__pyx_v_ccomm, (&__pyx_v_newfe))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":31 + * cdef PetscFE newfe = NULL + * CHKERR( PetscFECreate(ccomm, &newfe) ) + * PetscCLEAR(self.obj); self.fe = newfe # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->fe = __pyx_v_newfe; + + /* "petsc4py/PETSc/FE.pyx":32 + * CHKERR( PetscFECreate(ccomm, &newfe) ) + * PetscCLEAR(self.obj); self.fe = newfe + * return self # <<<<<<<<<<<<<< + * + * def createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":27 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":34 + * return self + * + * def createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_9createDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_8createDefault[] = "FE.createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_9createDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + PyObject *__pyx_v_nc = 0; + PyObject *__pyx_v_isSimplex = 0; + PyObject *__pyx_v_qorder = 0; + PyObject *__pyx_v_prefix = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createDefault (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_nc,&__pyx_n_s_isSimplex,&__pyx_n_s_qorder,&__pyx_n_s_prefix,&__pyx_n_s_comm,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createDefault", 0, 4, 6, 1); __PYX_ERR(42, 34, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isSimplex)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createDefault", 0, 4, 6, 2); __PYX_ERR(42, 34, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_qorder)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createDefault", 0, 4, 6, 3); __PYX_ERR(42, 34, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createDefault") < 0)) __PYX_ERR(42, 34, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_nc = values[1]; + __pyx_v_isSimplex = values[2]; + __pyx_v_qorder = values[3]; + __pyx_v_prefix = values[4]; + __pyx_v_comm = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createDefault", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 34, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.createDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_8createDefault(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_dim, __pyx_v_nc, __pyx_v_isSimplex, __pyx_v_qorder, __pyx_v_prefix, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_8createDefault(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_nc, PyObject *__pyx_v_isSimplex, PyObject *__pyx_v_qorder, PyObject *__pyx_v_prefix, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscFE __pyx_v_newfe; + PetscInt __pyx_v_cdim; + PetscInt __pyx_v_cnc; + PetscInt __pyx_v_cqorder; + PetscBool __pyx_v_cisSimplex; + char const *__pyx_v_cprefix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscInt __pyx_t_2; + PetscBool __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createDefault", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/FE.pyx":35 + * + * def createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(42, 35, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":36 + * def createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) + */ + __pyx_v_newfe = NULL; + + /* "petsc4py/PETSc/FE.pyx":37 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt cqorder = asInt(qorder) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 37, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":38 + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) # <<<<<<<<<<<<<< + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nc); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 38, __pyx_L1_error) + __pyx_v_cnc = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":39 + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt cqorder = asInt(qorder) # <<<<<<<<<<<<<< + * cdef PetscBool cisSimplex = asBool(isSimplex) + * cdef const char *cprefix = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_qorder); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 39, __pyx_L1_error) + __pyx_v_cqorder = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":40 + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) # <<<<<<<<<<<<<< + * cdef const char *cprefix = NULL + * if prefix: + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_isSimplex); if (unlikely(__pyx_t_3 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(42, 40, __pyx_L1_error) + __pyx_v_cisSimplex = __pyx_t_3; + + /* "petsc4py/PETSc/FE.pyx":41 + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) + * cdef const char *cprefix = NULL # <<<<<<<<<<<<<< + * if prefix: + * prefix = str2bytes(prefix, &cprefix) + */ + __pyx_v_cprefix = NULL; + + /* "petsc4py/PETSc/FE.pyx":42 + * cdef PetscBool cisSimplex = asBool(isSimplex) + * cdef const char *cprefix = NULL + * if prefix: # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(42, 42, __pyx_L1_error) + if (__pyx_t_4) { + + /* "petsc4py/PETSc/FE.pyx":43 + * cdef const char *cprefix = NULL + * if prefix: + * prefix = str2bytes(prefix, &cprefix) # <<<<<<<<<<<<<< + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cprefix)); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/FE.pyx":42 + * cdef PetscBool cisSimplex = asBool(isSimplex) + * cdef const char *cprefix = NULL + * if prefix: # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) + */ + } + + /* "petsc4py/PETSc/FE.pyx":44 + * if prefix: + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.fe = newfe + * return self + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFECreateDefault(__pyx_v_ccomm, __pyx_v_cdim, __pyx_v_cnc, __pyx_v_cisSimplex, __pyx_v_cprefix, __pyx_v_cqorder, (&__pyx_v_newfe))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 44, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":45 + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->fe = __pyx_v_newfe; + + /* "petsc4py/PETSc/FE.pyx":46 + * CHKERR( PetscFECreateDefault(ccomm, cdim, cnc, cisSimplex, cprefix, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe + * return self # <<<<<<<<<<<<<< + * + * def createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":34 + * return self + * + * def createDefault(self, dim, nc, isSimplex, qorder, prefix=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.FE.createDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":48 + * return self + * + * def createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_11createLagrange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_10createLagrange[] = "FE.createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_11createLagrange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + PyObject *__pyx_v_nc = 0; + PyObject *__pyx_v_isSimplex = 0; + PyObject *__pyx_v_k = 0; + PyObject *__pyx_v_qorder = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLagrange (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_nc,&__pyx_n_s_isSimplex,&__pyx_n_s_k,&__pyx_n_s_qorder,&__pyx_n_s_comm,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLagrange", 0, 5, 6, 1); __PYX_ERR(42, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isSimplex)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLagrange", 0, 5, 6, 2); __PYX_ERR(42, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_k)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLagrange", 0, 5, 6, 3); __PYX_ERR(42, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_qorder)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLagrange", 0, 5, 6, 4); __PYX_ERR(42, 48, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createLagrange") < 0)) __PYX_ERR(42, 48, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_nc = values[1]; + __pyx_v_isSimplex = values[2]; + __pyx_v_k = values[3]; + __pyx_v_qorder = values[4]; + __pyx_v_comm = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createLagrange", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 48, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.createLagrange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_10createLagrange(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_dim, __pyx_v_nc, __pyx_v_isSimplex, __pyx_v_k, __pyx_v_qorder, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_10createLagrange(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_nc, PyObject *__pyx_v_isSimplex, PyObject *__pyx_v_k, PyObject *__pyx_v_qorder, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscFE __pyx_v_newfe; + PetscInt __pyx_v_cdim; + PetscInt __pyx_v_cnc; + PetscInt __pyx_v_ck; + PetscInt __pyx_v_cqorder; + PetscBool __pyx_v_cisSimplex; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscInt __pyx_t_2; + PetscBool __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLagrange", 0); + + /* "petsc4py/PETSc/FE.pyx":49 + * + * def createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(42, 49, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":50 + * def createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) + */ + __pyx_v_newfe = NULL; + + /* "petsc4py/PETSc/FE.pyx":51 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt ck = asInt(k) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 51, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":52 + * cdef PetscFE newfe = NULL + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) # <<<<<<<<<<<<<< + * cdef PetscInt ck = asInt(k) + * cdef PetscInt cqorder = asInt(qorder) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nc); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 52, __pyx_L1_error) + __pyx_v_cnc = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":53 + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt ck = asInt(k) # <<<<<<<<<<<<<< + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_k); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 53, __pyx_L1_error) + __pyx_v_ck = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":54 + * cdef PetscInt cnc = asInt(nc) + * cdef PetscInt ck = asInt(k) + * cdef PetscInt cqorder = asInt(qorder) # <<<<<<<<<<<<<< + * cdef PetscBool cisSimplex = asBool(isSimplex) + * CHKERR( PetscFECreateLagrange(ccomm, cdim, cnc, cisSimplex, ck, cqorder, &newfe)) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_qorder); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 54, __pyx_L1_error) + __pyx_v_cqorder = __pyx_t_2; + + /* "petsc4py/PETSc/FE.pyx":55 + * cdef PetscInt ck = asInt(k) + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) # <<<<<<<<<<<<<< + * CHKERR( PetscFECreateLagrange(ccomm, cdim, cnc, cisSimplex, ck, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_isSimplex); if (unlikely(__pyx_t_3 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(42, 55, __pyx_L1_error) + __pyx_v_cisSimplex = __pyx_t_3; + + /* "petsc4py/PETSc/FE.pyx":56 + * cdef PetscInt cqorder = asInt(qorder) + * cdef PetscBool cisSimplex = asBool(isSimplex) + * CHKERR( PetscFECreateLagrange(ccomm, cdim, cnc, cisSimplex, ck, cqorder, &newfe)) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.fe = newfe + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFECreateLagrange(__pyx_v_ccomm, __pyx_v_cdim, __pyx_v_cnc, __pyx_v_cisSimplex, __pyx_v_ck, __pyx_v_cqorder, (&__pyx_v_newfe))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 56, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":57 + * cdef PetscBool cisSimplex = asBool(isSimplex) + * CHKERR( PetscFECreateLagrange(ccomm, cdim, cnc, cisSimplex, ck, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->fe = __pyx_v_newfe; + + /* "petsc4py/PETSc/FE.pyx":58 + * CHKERR( PetscFECreateLagrange(ccomm, cdim, cnc, cisSimplex, ck, cqorder, &newfe)) + * PetscCLEAR(self.obj); self.fe = newfe + * return self # <<<<<<<<<<<<<< + * + * def getQuadrature(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":48 + * return self + * + * def createLagrange(self, dim, nc, isSimplex, k, qorder, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscFE newfe = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.createLagrange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":60 + * return self + * + * def getQuadrature(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetQuadrature(self.fe, &quad.quad) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_13getQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_12getQuadrature[] = "FE.getQuadrature(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_13getQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getQuadrature (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getQuadrature", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getQuadrature", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_12getQuadrature(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_12getQuadrature(struct PyPetscFEObject *__pyx_v_self) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getQuadrature", 0); + + /* "petsc4py/PETSc/FE.pyx":61 + * + * def getQuadrature(self): + * cdef Quad quad = Quad() # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetQuadrature(self.fe, &quad.quad) ) + * return quad + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_quad = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":62 + * def getQuadrature(self): + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetQuadrature(self.fe, &quad.quad) ) # <<<<<<<<<<<<<< + * return quad + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetQuadrature(__pyx_v_self->fe, (&__pyx_v_quad->quad))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":63 + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetQuadrature(self.fe, &quad.quad) ) + * return quad # <<<<<<<<<<<<<< + * + * def getDimension(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_quad)); + __pyx_r = ((PyObject *)__pyx_v_quad); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":60 + * return self + * + * def getQuadrature(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetQuadrature(self.fe, &quad.quad) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_quad); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":65 + * return quad + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_15getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_14getDimension[] = "FE.getDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_15getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_14getDimension(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_14getDimension(struct PyPetscFEObject *__pyx_v_self) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDimension", 0); + + /* "petsc4py/PETSc/FE.pyx":66 + * + * def getDimension(self): + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + * return toInt(cdim) + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/FE.pyx":67 + * def getDimension(self): + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) # <<<<<<<<<<<<<< + * return toInt(cdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetDimension(__pyx_v_self->fe, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 67, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":68 + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + * return toInt(cdim) # <<<<<<<<<<<<<< + * + * def getSpatialDimension(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(42, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":65 + * return quad + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":70 + * return toInt(cdim) + * + * def getSpatialDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt csdim = 0 + * CHKERR( PetscFEGetSpatialDimension(self.fe, &csdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_17getSpatialDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_16getSpatialDimension[] = "FE.getSpatialDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_17getSpatialDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSpatialDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSpatialDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSpatialDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_16getSpatialDimension(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_16getSpatialDimension(struct PyPetscFEObject *__pyx_v_self) { + PetscInt __pyx_v_csdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSpatialDimension", 0); + + /* "petsc4py/PETSc/FE.pyx":71 + * + * def getSpatialDimension(self): + * cdef PetscInt csdim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetSpatialDimension(self.fe, &csdim) ) + * return toInt(csdim) + */ + __pyx_v_csdim = 0; + + /* "petsc4py/PETSc/FE.pyx":72 + * def getSpatialDimension(self): + * cdef PetscInt csdim = 0 + * CHKERR( PetscFEGetSpatialDimension(self.fe, &csdim) ) # <<<<<<<<<<<<<< + * return toInt(csdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetSpatialDimension(__pyx_v_self->fe, (&__pyx_v_csdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":73 + * cdef PetscInt csdim = 0 + * CHKERR( PetscFEGetSpatialDimension(self.fe, &csdim) ) + * return toInt(csdim) # <<<<<<<<<<<<<< + * + * def getNumComponents(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_csdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(42, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":70 + * return toInt(cdim) + * + * def getSpatialDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt csdim = 0 + * CHKERR( PetscFEGetSpatialDimension(self.fe, &csdim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getSpatialDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":75 + * return toInt(csdim) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt comp = 0 + * CHKERR( PetscFEGetNumComponents(self.fe, &comp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_19getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_18getNumComponents[] = "FE.getNumComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_19getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_18getNumComponents(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_18getNumComponents(struct PyPetscFEObject *__pyx_v_self) { + PetscInt __pyx_v_comp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumComponents", 0); + + /* "petsc4py/PETSc/FE.pyx":76 + * + * def getNumComponents(self): + * cdef PetscInt comp = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetNumComponents(self.fe, &comp) ) + * return toInt(comp) + */ + __pyx_v_comp = 0; + + /* "petsc4py/PETSc/FE.pyx":77 + * def getNumComponents(self): + * cdef PetscInt comp = 0 + * CHKERR( PetscFEGetNumComponents(self.fe, &comp) ) # <<<<<<<<<<<<<< + * return toInt(comp) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetNumComponents(__pyx_v_self->fe, (&__pyx_v_comp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 77, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":78 + * cdef PetscInt comp = 0 + * CHKERR( PetscFEGetNumComponents(self.fe, &comp) ) + * return toInt(comp) # <<<<<<<<<<<<<< + * + * def setNumComponents(self, comp): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_comp); if (unlikely(!__pyx_t_2)) __PYX_ERR(42, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":75 + * return toInt(csdim) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt comp = 0 + * CHKERR( PetscFEGetNumComponents(self.fe, &comp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":80 + * return toInt(comp) + * + * def setNumComponents(self, comp): # <<<<<<<<<<<<<< + * cdef PetscInt ccomp = asInt(comp) + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_21setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_20setNumComponents[] = "FE.setNumComponents(self, comp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_21setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumComponents") < 0)) __PYX_ERR(42, 80, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_comp = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumComponents", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 80, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_20setNumComponents(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_comp); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_20setNumComponents(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_comp) { + CYTHON_UNUSED PetscInt __pyx_v_ccomp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumComponents", 0); + + /* "petsc4py/PETSc/FE.pyx":81 + * + * def setNumComponents(self, comp): + * cdef PetscInt ccomp = asInt(comp) # <<<<<<<<<<<<<< + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_comp); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 81, __pyx_L1_error) + __pyx_v_ccomp = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":82 + * def setNumComponents(self, comp): + * cdef PetscInt ccomp = asInt(comp) + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) # <<<<<<<<<<<<<< + * + * def getNumDof(self): + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_comp); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(42, 82, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetNumComponents(__pyx_v_self->fe, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 82, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":80 + * return toInt(comp) + * + * def setNumComponents(self, comp): # <<<<<<<<<<<<<< + * cdef PetscInt ccomp = asInt(comp) + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":84 + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) + * + * def getNumDof(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *numDof = NULL + * cdef PetscInt cdim = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_23getNumDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_22getNumDof[] = "FE.getNumDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_23getNumDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_22getNumDof(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_22getNumDof(struct PyPetscFEObject *__pyx_v_self) { + PetscInt const *__pyx_v_numDof; + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumDof", 0); + + /* "petsc4py/PETSc/FE.pyx":85 + * + * def getNumDof(self): + * cdef const PetscInt *numDof = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + */ + __pyx_v_numDof = NULL; + + /* "petsc4py/PETSc/FE.pyx":86 + * def getNumDof(self): + * cdef const PetscInt *numDof = NULL + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + * CHKERR( PetscFEGetNumDof(self.fe, &numDof) ) + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/FE.pyx":87 + * cdef const PetscInt *numDof = NULL + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetNumDof(self.fe, &numDof) ) + * return array_i(cdim, numDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetDimension(__pyx_v_self->fe, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 87, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":88 + * cdef PetscInt cdim = 0 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + * CHKERR( PetscFEGetNumDof(self.fe, &numDof) ) # <<<<<<<<<<<<<< + * return array_i(cdim, numDof) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetNumDof(__pyx_v_self->fe, (&__pyx_v_numDof))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":89 + * CHKERR( PetscFEGetDimension(self.fe, &cdim) ) + * CHKERR( PetscFEGetNumDof(self.fe, &numDof) ) + * return array_i(cdim, numDof) # <<<<<<<<<<<<<< + * + * def getTileSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_cdim, __pyx_v_numDof)); if (unlikely(!__pyx_t_2)) __PYX_ERR(42, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":84 + * CHKERR( PetscFESetNumComponents(self.fe, comp) ) + * + * def getNumDof(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *numDof = NULL + * cdef PetscInt cdim = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getNumDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":91 + * return array_i(cdim, numDof) + * + * def getTileSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt blockSize = 0, numBlocks = 0 + * cdef PetscInt batchSize = 0, numBatches = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_25getTileSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_24getTileSizes[] = "FE.getTileSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_25getTileSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTileSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTileSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTileSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_24getTileSizes(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_24getTileSizes(struct PyPetscFEObject *__pyx_v_self) { + PetscInt __pyx_v_blockSize; + PetscInt __pyx_v_numBlocks; + PetscInt __pyx_v_batchSize; + PetscInt __pyx_v_numBatches; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTileSizes", 0); + + /* "petsc4py/PETSc/FE.pyx":92 + * + * def getTileSizes(self): + * cdef PetscInt blockSize = 0, numBlocks = 0 # <<<<<<<<<<<<<< + * cdef PetscInt batchSize = 0, numBatches = 0 + * CHKERR( PetscFEGetTileSizes(self.fe, &blockSize, &numBlocks, &batchSize, &numBatches) ) + */ + __pyx_v_blockSize = 0; + __pyx_v_numBlocks = 0; + + /* "petsc4py/PETSc/FE.pyx":93 + * def getTileSizes(self): + * cdef PetscInt blockSize = 0, numBlocks = 0 + * cdef PetscInt batchSize = 0, numBatches = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetTileSizes(self.fe, &blockSize, &numBlocks, &batchSize, &numBatches) ) + * return toInt(blockSize), toInt(numBlocks), toInt(batchSize), toInt(numBatches) + */ + __pyx_v_batchSize = 0; + __pyx_v_numBatches = 0; + + /* "petsc4py/PETSc/FE.pyx":94 + * cdef PetscInt blockSize = 0, numBlocks = 0 + * cdef PetscInt batchSize = 0, numBatches = 0 + * CHKERR( PetscFEGetTileSizes(self.fe, &blockSize, &numBlocks, &batchSize, &numBatches) ) # <<<<<<<<<<<<<< + * return toInt(blockSize), toInt(numBlocks), toInt(batchSize), toInt(numBatches) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetTileSizes(__pyx_v_self->fe, (&__pyx_v_blockSize), (&__pyx_v_numBlocks), (&__pyx_v_batchSize), (&__pyx_v_numBatches))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 94, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":95 + * cdef PetscInt batchSize = 0, numBatches = 0 + * CHKERR( PetscFEGetTileSizes(self.fe, &blockSize, &numBlocks, &batchSize, &numBatches) ) + * return toInt(blockSize), toInt(numBlocks), toInt(batchSize), toInt(numBatches) # <<<<<<<<<<<<<< + * + * def setTileSizes(self, blockSize, numBlocks, batchSize, numBatches): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_blockSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(42, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numBlocks); if (unlikely(!__pyx_t_3)) __PYX_ERR(42, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_batchSize); if (unlikely(!__pyx_t_4)) __PYX_ERR(42, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numBatches); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(42, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":91 + * return array_i(cdim, numDof) + * + * def getTileSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt blockSize = 0, numBlocks = 0 + * cdef PetscInt batchSize = 0, numBatches = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getTileSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":97 + * return toInt(blockSize), toInt(numBlocks), toInt(batchSize), toInt(numBatches) + * + * def setTileSizes(self, blockSize, numBlocks, batchSize, numBatches): # <<<<<<<<<<<<<< + * cdef PetscInt cblockSize = asInt(blockSize), cnumBlocks = asInt(numBlocks) + * cdef PetscInt cbatchSize = asInt(batchSize), cnumBatches = asInt(numBatches) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_27setTileSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_26setTileSizes[] = "FE.setTileSizes(self, blockSize, numBlocks, batchSize, numBatches)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_27setTileSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_blockSize = 0; + PyObject *__pyx_v_numBlocks = 0; + PyObject *__pyx_v_batchSize = 0; + PyObject *__pyx_v_numBatches = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTileSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_blockSize,&__pyx_n_s_numBlocks,&__pyx_n_s_batchSize,&__pyx_n_s_numBatches,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blockSize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numBlocks)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setTileSizes", 1, 4, 4, 1); __PYX_ERR(42, 97, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_batchSize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setTileSizes", 1, 4, 4, 2); __PYX_ERR(42, 97, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numBatches)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setTileSizes", 1, 4, 4, 3); __PYX_ERR(42, 97, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTileSizes") < 0)) __PYX_ERR(42, 97, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_blockSize = values[0]; + __pyx_v_numBlocks = values[1]; + __pyx_v_batchSize = values[2]; + __pyx_v_numBatches = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTileSizes", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 97, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setTileSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_26setTileSizes(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_blockSize, __pyx_v_numBlocks, __pyx_v_batchSize, __pyx_v_numBatches); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_26setTileSizes(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_blockSize, PyObject *__pyx_v_numBlocks, PyObject *__pyx_v_batchSize, PyObject *__pyx_v_numBatches) { + CYTHON_UNUSED PetscInt __pyx_v_cblockSize; + CYTHON_UNUSED PetscInt __pyx_v_cnumBlocks; + CYTHON_UNUSED PetscInt __pyx_v_cbatchSize; + CYTHON_UNUSED PetscInt __pyx_v_cnumBatches; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscInt __pyx_t_2; + PetscInt __pyx_t_3; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTileSizes", 0); + + /* "petsc4py/PETSc/FE.pyx":98 + * + * def setTileSizes(self, blockSize, numBlocks, batchSize, numBatches): + * cdef PetscInt cblockSize = asInt(blockSize), cnumBlocks = asInt(numBlocks) # <<<<<<<<<<<<<< + * cdef PetscInt cbatchSize = asInt(batchSize), cnumBatches = asInt(numBatches) + * CHKERR( PetscFESetTileSizes(self.fe, blockSize, numBlocks, batchSize, numBatches) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_blockSize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 98, __pyx_L1_error) + __pyx_v_cblockSize = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numBlocks); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 98, __pyx_L1_error) + __pyx_v_cnumBlocks = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":99 + * def setTileSizes(self, blockSize, numBlocks, batchSize, numBatches): + * cdef PetscInt cblockSize = asInt(blockSize), cnumBlocks = asInt(numBlocks) + * cdef PetscInt cbatchSize = asInt(batchSize), cnumBatches = asInt(numBatches) # <<<<<<<<<<<<<< + * CHKERR( PetscFESetTileSizes(self.fe, blockSize, numBlocks, batchSize, numBatches) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_batchSize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 99, __pyx_L1_error) + __pyx_v_cbatchSize = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numBatches); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(42, 99, __pyx_L1_error) + __pyx_v_cnumBatches = __pyx_t_1; + + /* "petsc4py/PETSc/FE.pyx":100 + * cdef PetscInt cblockSize = asInt(blockSize), cnumBlocks = asInt(numBlocks) + * cdef PetscInt cbatchSize = asInt(batchSize), cnumBatches = asInt(numBatches) + * CHKERR( PetscFESetTileSizes(self.fe, blockSize, numBlocks, batchSize, numBatches) ) # <<<<<<<<<<<<<< + * + * def getFaceQuadrature(self): + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_blockSize); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(42, 100, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_numBlocks); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(42, 100, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_As_PetscInt(__pyx_v_batchSize); if (unlikely((__pyx_t_3 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(42, 100, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_As_PetscInt(__pyx_v_numBatches); if (unlikely((__pyx_t_4 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(42, 100, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetTileSizes(__pyx_v_self->fe, __pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 100, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":97 + * return toInt(blockSize), toInt(numBlocks), toInt(batchSize), toInt(numBatches) + * + * def setTileSizes(self, blockSize, numBlocks, batchSize, numBatches): # <<<<<<<<<<<<<< + * cdef PetscInt cblockSize = asInt(blockSize), cnumBlocks = asInt(numBlocks) + * cdef PetscInt cbatchSize = asInt(batchSize), cnumBatches = asInt(numBatches) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setTileSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":102 + * CHKERR( PetscFESetTileSizes(self.fe, blockSize, numBlocks, batchSize, numBatches) ) + * + * def getFaceQuadrature(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetFaceQuadrature(self.fe, &quad.quad) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_29getFaceQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_28getFaceQuadrature[] = "FE.getFaceQuadrature(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_29getFaceQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFaceQuadrature (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFaceQuadrature", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFaceQuadrature", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_28getFaceQuadrature(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_28getFaceQuadrature(struct PyPetscFEObject *__pyx_v_self) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFaceQuadrature", 0); + + /* "petsc4py/PETSc/FE.pyx":103 + * + * def getFaceQuadrature(self): + * cdef Quad quad = Quad() # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetFaceQuadrature(self.fe, &quad.quad) ) + * return quad + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_quad = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":104 + * def getFaceQuadrature(self): + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetFaceQuadrature(self.fe, &quad.quad) ) # <<<<<<<<<<<<<< + * return quad + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetFaceQuadrature(__pyx_v_self->fe, (&__pyx_v_quad->quad))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":105 + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetFaceQuadrature(self.fe, &quad.quad) ) + * return quad # <<<<<<<<<<<<<< + * + * def setQuadrature(self, Quad quad): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_quad)); + __pyx_r = ((PyObject *)__pyx_v_quad); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":102 + * CHKERR( PetscFESetTileSizes(self.fe, blockSize, numBlocks, batchSize, numBatches) ) + * + * def getFaceQuadrature(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscFEGetFaceQuadrature(self.fe, &quad.quad) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getFaceQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_quad); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":107 + * return quad + * + * def setQuadrature(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetQuadrature(self.fe, quad.quad) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_31setQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_30setQuadrature[] = "FE.setQuadrature(self, Quad quad)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_31setQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setQuadrature (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quad,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setQuadrature") < 0)) __PYX_ERR(42, 107, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_quad = ((struct PyPetscQuadObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setQuadrature", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 107, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad), __pyx_ptype_8petsc4py_5PETSc_Quad, 0, "quad", 0))) __PYX_ERR(42, 107, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_30setQuadrature(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_quad); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_30setQuadrature(struct PyPetscFEObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setQuadrature", 0); + + /* "petsc4py/PETSc/FE.pyx":108 + * + * def setQuadrature(self, Quad quad): + * CHKERR( PetscFESetQuadrature(self.fe, quad.quad) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetQuadrature(__pyx_v_self->fe, __pyx_v_quad->quad)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 108, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":109 + * def setQuadrature(self, Quad quad): + * CHKERR( PetscFESetQuadrature(self.fe, quad.quad) ) + * return self # <<<<<<<<<<<<<< + * + * def setFaceQuadrature(self, Quad quad): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":107 + * return quad + * + * def setQuadrature(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetQuadrature(self.fe, quad.quad) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":111 + * return self + * + * def setFaceQuadrature(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetFaceQuadrature(self.fe, quad.quad) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_33setFaceQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_32setFaceQuadrature[] = "FE.setFaceQuadrature(self, Quad quad)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_33setFaceQuadrature(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFaceQuadrature (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quad,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFaceQuadrature") < 0)) __PYX_ERR(42, 111, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_quad = ((struct PyPetscQuadObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFaceQuadrature", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 111, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setFaceQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad), __pyx_ptype_8petsc4py_5PETSc_Quad, 0, "quad", 0))) __PYX_ERR(42, 111, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_32setFaceQuadrature(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_quad); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_32setFaceQuadrature(struct PyPetscFEObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFaceQuadrature", 0); + + /* "petsc4py/PETSc/FE.pyx":112 + * + * def setFaceQuadrature(self, Quad quad): + * CHKERR( PetscFESetFaceQuadrature(self.fe, quad.quad) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetFaceQuadrature(__pyx_v_self->fe, __pyx_v_quad->quad)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":113 + * def setFaceQuadrature(self, Quad quad): + * CHKERR( PetscFESetFaceQuadrature(self.fe, quad.quad) ) + * return self # <<<<<<<<<<<<<< + * + * def setType(self, fe_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":111 + * return self + * + * def setFaceQuadrature(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetFaceQuadrature(self.fe, quad.quad) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setFaceQuadrature", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":115 + * return self + * + * def setType(self, fe_type): # <<<<<<<<<<<<<< + * cdef PetscFEType cval = NULL + * fe_type = str2bytes(fe_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_35setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_34setType[] = "FE.setType(self, fe_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_35setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fe_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fe_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fe_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(42, 115, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fe_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 115, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_34setType(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_fe_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_34setType(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_fe_type) { + PetscFEType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_fe_type); + + /* "petsc4py/PETSc/FE.pyx":116 + * + * def setType(self, fe_type): + * cdef PetscFEType cval = NULL # <<<<<<<<<<<<<< + * fe_type = str2bytes(fe_type, &cval) + * CHKERR( PetscFESetType(self.fe, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/FE.pyx":117 + * def setType(self, fe_type): + * cdef PetscFEType cval = NULL + * fe_type = str2bytes(fe_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscFESetType(self.fe, cval) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fe_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fe_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":118 + * cdef PetscFEType cval = NULL + * fe_type = str2bytes(fe_type, &cval) + * CHKERR( PetscFESetType(self.fe, cval) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetType(__pyx_v_self->fe, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":119 + * fe_type = str2bytes(fe_type, &cval) + * CHKERR( PetscFESetType(self.fe, cval) ) + * return self # <<<<<<<<<<<<<< + * + * def getBasisSpace(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":115 + * return self + * + * def setType(self, fe_type): # <<<<<<<<<<<<<< + * cdef PetscFEType cval = NULL + * fe_type = str2bytes(fe_type, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fe_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":121 + * return self + * + * def getBasisSpace(self): # <<<<<<<<<<<<<< + * cdef Space sp = Space() + * CHKERR( PetscFEGetBasisSpace(self.fe, &sp.space ) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_37getBasisSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_36getBasisSpace[] = "FE.getBasisSpace(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_37getBasisSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBasisSpace (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBasisSpace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBasisSpace", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_36getBasisSpace(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_36getBasisSpace(struct PyPetscFEObject *__pyx_v_self) { + struct PyPetscSpaceObject *__pyx_v_sp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBasisSpace", 0); + + /* "petsc4py/PETSc/FE.pyx":122 + * + * def getBasisSpace(self): + * cdef Space sp = Space() # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetBasisSpace(self.fe, &sp.space ) ) + * return sp + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Space)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sp = ((struct PyPetscSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":123 + * def getBasisSpace(self): + * cdef Space sp = Space() + * CHKERR( PetscFEGetBasisSpace(self.fe, &sp.space ) ) # <<<<<<<<<<<<<< + * return sp + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetBasisSpace(__pyx_v_self->fe, (&__pyx_v_sp->space))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 123, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":124 + * cdef Space sp = Space() + * CHKERR( PetscFEGetBasisSpace(self.fe, &sp.space ) ) + * return sp # <<<<<<<<<<<<<< + * + * def setBasisSpace(self, Space sp): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sp)); + __pyx_r = ((PyObject *)__pyx_v_sp); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":121 + * return self + * + * def getBasisSpace(self): # <<<<<<<<<<<<<< + * cdef Space sp = Space() + * CHKERR( PetscFEGetBasisSpace(self.fe, &sp.space ) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getBasisSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":126 + * return sp + * + * def setBasisSpace(self, Space sp): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetBasisSpace(self.fe, sp.space ) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_39setBasisSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_38setBasisSpace[] = "FE.setBasisSpace(self, Space sp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_39setBasisSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSpaceObject *__pyx_v_sp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBasisSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBasisSpace") < 0)) __PYX_ERR(42, 126, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sp = ((struct PyPetscSpaceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBasisSpace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 126, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setBasisSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sp), __pyx_ptype_8petsc4py_5PETSc_Space, 0, "sp", 0))) __PYX_ERR(42, 126, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_38setBasisSpace(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_sp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_38setBasisSpace(struct PyPetscFEObject *__pyx_v_self, struct PyPetscSpaceObject *__pyx_v_sp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBasisSpace", 0); + + /* "petsc4py/PETSc/FE.pyx":127 + * + * def setBasisSpace(self, Space sp): + * CHKERR( PetscFESetBasisSpace(self.fe, sp.space ) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetBasisSpace(__pyx_v_self->fe, __pyx_v_sp->space)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":126 + * return sp + * + * def setBasisSpace(self, Space sp): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetBasisSpace(self.fe, sp.space ) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setBasisSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":129 + * CHKERR( PetscFESetBasisSpace(self.fe, sp.space ) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetFromOptions(self.fe) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_41setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_40setFromOptions[] = "FE.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_41setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_40setFromOptions(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_40setFromOptions(struct PyPetscFEObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/FE.pyx":130 + * + * def setFromOptions(self): + * CHKERR( PetscFESetFromOptions(self.fe) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetFromOptions(__pyx_v_self->fe)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 130, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":129 + * CHKERR( PetscFESetBasisSpace(self.fe, sp.space ) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetFromOptions(self.fe) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":132 + * CHKERR( PetscFESetFromOptions(self.fe) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetUp(self.fe) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_43setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_42setUp[] = "FE.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_43setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_42setUp(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_42setUp(struct PyPetscFEObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/FE.pyx":133 + * + * def setUp(self): + * CHKERR( PetscFESetUp(self.fe) ) # <<<<<<<<<<<<<< + * + * def getDualSpace(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetUp(__pyx_v_self->fe)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":132 + * CHKERR( PetscFESetFromOptions(self.fe) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetUp(self.fe) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":135 + * CHKERR( PetscFESetUp(self.fe) ) + * + * def getDualSpace(self): # <<<<<<<<<<<<<< + * cdef DualSpace dspace = DualSpace() + * CHKERR( PetscFEGetDualSpace(self.fe, &dspace.dualspace) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_45getDualSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_44getDualSpace[] = "FE.getDualSpace(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_45getDualSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDualSpace (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDualSpace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDualSpace", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_44getDualSpace(((struct PyPetscFEObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_44getDualSpace(struct PyPetscFEObject *__pyx_v_self) { + struct PyPetscDualSpaceObject *__pyx_v_dspace = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDualSpace", 0); + + /* "petsc4py/PETSc/FE.pyx":136 + * + * def getDualSpace(self): + * cdef DualSpace dspace = DualSpace() # <<<<<<<<<<<<<< + * CHKERR( PetscFEGetDualSpace(self.fe, &dspace.dualspace) ) + * return dspace + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DualSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dspace = ((struct PyPetscDualSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":137 + * def getDualSpace(self): + * cdef DualSpace dspace = DualSpace() + * CHKERR( PetscFEGetDualSpace(self.fe, &dspace.dualspace) ) # <<<<<<<<<<<<<< + * return dspace + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEGetDualSpace(__pyx_v_self->fe, (&__pyx_v_dspace->dualspace))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":138 + * cdef DualSpace dspace = DualSpace() + * CHKERR( PetscFEGetDualSpace(self.fe, &dspace.dualspace) ) + * return dspace # <<<<<<<<<<<<<< + * + * def setDualSpace(self, DualSpace dspace): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dspace)); + __pyx_r = ((PyObject *)__pyx_v_dspace); + goto __pyx_L0; + + /* "petsc4py/PETSc/FE.pyx":135 + * CHKERR( PetscFESetUp(self.fe) ) + * + * def getDualSpace(self): # <<<<<<<<<<<<<< + * cdef DualSpace dspace = DualSpace() + * CHKERR( PetscFEGetDualSpace(self.fe, &dspace.dualspace) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.getDualSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dspace); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":140 + * return dspace + * + * def setDualSpace(self, DualSpace dspace): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetDualSpace(self.fe, dspace.dualspace) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_47setDualSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_46setDualSpace[] = "FE.setDualSpace(self, DualSpace dspace)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_47setDualSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDualSpaceObject *__pyx_v_dspace = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDualSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dspace,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dspace)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDualSpace") < 0)) __PYX_ERR(42, 140, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dspace = ((struct PyPetscDualSpaceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDualSpace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 140, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setDualSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dspace), __pyx_ptype_8petsc4py_5PETSc_DualSpace, 0, "dspace", 0))) __PYX_ERR(42, 140, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_46setDualSpace(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_dspace); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_46setDualSpace(struct PyPetscFEObject *__pyx_v_self, struct PyPetscDualSpaceObject *__pyx_v_dspace) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDualSpace", 0); + + /* "petsc4py/PETSc/FE.pyx":141 + * + * def setDualSpace(self, DualSpace dspace): + * CHKERR( PetscFESetDualSpace(self.fe, dspace.dualspace) ) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object obj=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFESetDualSpace(__pyx_v_self->fe, __pyx_v_dspace->dualspace)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 141, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":140 + * return dspace + * + * def setDualSpace(self, DualSpace dspace): # <<<<<<<<<<<<<< + * CHKERR( PetscFESetDualSpace(self.fe, dspace.dualspace) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.setDualSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/FE.pyx":143 + * CHKERR( PetscFESetDualSpace(self.fe, dspace.dualspace) ) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_49viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2FE_48viewFromOptions[] = "FE.viewFromOptions(self, name, Object obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2FE_49viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(42, 143, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(42, 143, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.FE.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(42, 143, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2FE_48viewFromOptions(((struct PyPetscFEObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2FE_48viewFromOptions(struct PyPetscFEObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cname; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + + /* "petsc4py/PETSc/FE.pyx":144 + * + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/FE.pyx":145 + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(42, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__ = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/FE.pyx":146 + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscFEViewFromOptions(self.fe, cobj, cname) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/FE.pyx":147 + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] # <<<<<<<<<<<<<< + * CHKERR( PetscFEViewFromOptions(self.fe, cobj, cname) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + } + + /* "petsc4py/PETSc/FE.pyx":148 + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscFEViewFromOptions(self.fe, cobj, cname) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFEViewFromOptions(__pyx_v_self->fe, __pyx_v_cobj, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(42, 148, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":143 + * CHKERR( PetscFESetDualSpace(self.fe, dspace.dualspace) ) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.FE.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":22 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sct + * self.sct = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Scatter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Scatter_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter___cinit__(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Scatter___cinit__(struct PyPetscScatterObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Scatter.pyx":23 + * + * def __cinit__(self): + * self.obj = &self.sct # <<<<<<<<<<<<<< + * self.sct = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->sct)); + + /* "petsc4py/PETSc/Scatter.pyx":24 + * def __cinit__(self): + * self.obj = &self.sct + * self.sct = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, x, y, addv=None, mode=None): + */ + __pyx_v_self->sct = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":22 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sct + * self.sct = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":26 + * self.sct = NULL + * + * def __call__(self, x, y, addv=None, mode=None): # <<<<<<<<<<<<<< + * self.scatter(x, y, addv, mode) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 4, 1); __PYX_ERR(43, 26, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(43, 26, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = values[0]; + __pyx_v_y = values[1]; + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 26, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_2__call__(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_2__call__(struct PyPetscScatterObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/Scatter.pyx":27 + * + * def __call__(self, x, y, addv=None, mode=None): + * self.scatter(x, y, addv, mode) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_scatter); if (unlikely(!__pyx_t_2)) __PYX_ERR(43, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + __pyx_t_4 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + __pyx_t_4 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_x, __pyx_v_y, __pyx_v_addv, __pyx_v_mode}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 27, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { + PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_x, __pyx_v_y, __pyx_v_addv, __pyx_v_mode}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 27, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_GOTREF(__pyx_t_1); + } else + #endif + { + __pyx_t_5 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__pyx_t_3) { + __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; + } + __Pyx_INCREF(__pyx_v_x); + __Pyx_GIVEREF(__pyx_v_x); + PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_x); + __Pyx_INCREF(__pyx_v_y); + __Pyx_GIVEREF(__pyx_v_y); + PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_y); + __Pyx_INCREF(__pyx_v_addv); + __Pyx_GIVEREF(__pyx_v_addv); + PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_addv); + __Pyx_INCREF(__pyx_v_mode); + __Pyx_GIVEREF(__pyx_v_mode); + PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_mode); + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":26 + * self.sct = NULL + * + * def __call__(self, x, y, addv=None, mode=None): # <<<<<<<<<<<<<< + * self.scatter(x, y, addv, mode) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":31 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_4view[] = "Scatter.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(43, 31, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 31, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(43, 31, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_4view(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_4view(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Scatter.pyx":32 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( VecScatterView(self.sct, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":33 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( VecScatterView(self.sct, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Scatter.pyx":34 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( VecScatterView(self.sct, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterView(__pyx_v_self->sct, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 34, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":31 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":36 + * CHKERR( VecScatterView(self.sct, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterDestroy(&self.sct) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_6destroy[] = "Scatter.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_6destroy(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_6destroy(struct PyPetscScatterObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Scatter.pyx":37 + * + * def destroy(self): + * CHKERR( VecScatterDestroy(&self.sct) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterDestroy((&__pyx_v_self->sct))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 37, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":38 + * def destroy(self): + * CHKERR( VecScatterDestroy(&self.sct) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, Vec vec_from, IS is_from or None, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":36 + * CHKERR( VecScatterView(self.sct, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterDestroy(&self.sct) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":40 + * return self + * + * def create(self, Vec vec_from, IS is_from or None, # <<<<<<<<<<<<<< + * Vec vec_to, IS is_to or None): + * cdef PetscIS cisfrom = NULL, cisto = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_8create[] = "Scatter.create(self, Vec vec_from, IS is_from, Vec vec_to, IS is_to)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscISObject *__pyx_v_is_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + struct PyPetscISObject *__pyx_v_is_to = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_is_from,&__pyx_n_s_vec_to,&__pyx_n_s_is_to,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_from)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 1); __PYX_ERR(43, 40, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 2); __PYX_ERR(43, 40, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, 3); __PYX_ERR(43, 40, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(43, 40, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_is_from = ((struct PyPetscISObject *)values[1]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[2]); + __pyx_v_is_to = ((struct PyPetscISObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 40, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 40, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_is_from), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "is_from", 0))) __PYX_ERR(43, 40, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 41, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_is_to), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "is_to", 0))) __PYX_ERR(43, 41, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_8create(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_is_from, __pyx_v_vec_to, __pyx_v_is_to); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_8create(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscISObject *__pyx_v_is_from, struct PyPetscVecObject *__pyx_v_vec_to, struct PyPetscISObject *__pyx_v_is_to) { + IS __pyx_v_cisfrom; + IS __pyx_v_cisto; + VecScatter __pyx_v_newsct; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Scatter.pyx":42 + * def create(self, Vec vec_from, IS is_from or None, + * Vec vec_to, IS is_to or None): + * cdef PetscIS cisfrom = NULL, cisto = NULL # <<<<<<<<<<<<<< + * if is_from is not None: cisfrom = is_from.iset + * if is_to is not None: cisto = is_to.iset + */ + __pyx_v_cisfrom = NULL; + __pyx_v_cisto = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":43 + * Vec vec_to, IS is_to or None): + * cdef PetscIS cisfrom = NULL, cisto = NULL + * if is_from is not None: cisfrom = is_from.iset # <<<<<<<<<<<<<< + * if is_to is not None: cisto = is_to.iset + * cdef PetscScatter newsct = NULL + */ + __pyx_t_1 = (((PyObject *)__pyx_v_is_from) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_is_from->iset; + __pyx_v_cisfrom = __pyx_t_3; + } + + /* "petsc4py/PETSc/Scatter.pyx":44 + * cdef PetscIS cisfrom = NULL, cisto = NULL + * if is_from is not None: cisfrom = is_from.iset + * if is_to is not None: cisto = is_to.iset # <<<<<<<<<<<<<< + * cdef PetscScatter newsct = NULL + * CHKERR( VecScatterCreate( + */ + __pyx_t_2 = (((PyObject *)__pyx_v_is_to) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_is_to->iset; + __pyx_v_cisto = __pyx_t_3; + } + + /* "petsc4py/PETSc/Scatter.pyx":45 + * if is_from is not None: cisfrom = is_from.iset + * if is_to is not None: cisto = is_to.iset + * cdef PetscScatter newsct = NULL # <<<<<<<<<<<<<< + * CHKERR( VecScatterCreate( + * vec_from.vec, cisfrom, vec_to.vec, cisto, &newsct) ) + */ + __pyx_v_newsct = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":46 + * if is_to is not None: cisto = is_to.iset + * cdef PetscScatter newsct = NULL + * CHKERR( VecScatterCreate( # <<<<<<<<<<<<<< + * vec_from.vec, cisfrom, vec_to.vec, cisto, &newsct) ) + * PetscCLEAR(self.obj); self.sct = newsct + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterCreate(__pyx_v_vec_from->vec, __pyx_v_cisfrom, __pyx_v_vec_to->vec, __pyx_v_cisto, (&__pyx_v_newsct))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":48 + * CHKERR( VecScatterCreate( + * vec_from.vec, cisfrom, vec_to.vec, cisto, &newsct) ) + * PetscCLEAR(self.obj); self.sct = newsct # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->sct = __pyx_v_newsct; + + /* "petsc4py/PETSc/Scatter.pyx":49 + * vec_from.vec, cisfrom, vec_to.vec, cisto, &newsct) ) + * PetscCLEAR(self.obj); self.sct = newsct + * return self # <<<<<<<<<<<<<< + * + * def setType(self, scatter_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":40 + * return self + * + * def create(self, Vec vec_from, IS is_from or None, # <<<<<<<<<<<<<< + * Vec vec_to, IS is_to or None): + * cdef PetscIS cisfrom = NULL, cisto = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":51 + * return self + * + * def setType(self, scatter_type): # <<<<<<<<<<<<<< + * cdef PetscScatterType cval = NULL + * vec_type = str2bytes(scatter_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_10setType[] = "Scatter.setType(self, scatter_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_scatter_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scatter_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scatter_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(43, 51, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_scatter_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 51, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_10setType(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_scatter_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_10setType(struct PyPetscScatterObject *__pyx_v_self, PyObject *__pyx_v_scatter_type) { + VecScatterType __pyx_v_cval; + CYTHON_UNUSED PyObject *__pyx_v_vec_type = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + + /* "petsc4py/PETSc/Scatter.pyx":52 + * + * def setType(self, scatter_type): + * cdef PetscScatterType cval = NULL # <<<<<<<<<<<<<< + * vec_type = str2bytes(scatter_type, &cval) + * CHKERR( VecScatterSetType(self.sct, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":53 + * def setType(self, scatter_type): + * cdef PetscScatterType cval = NULL + * vec_type = str2bytes(scatter_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( VecScatterSetType(self.sct, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_scatter_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec_type = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":54 + * cdef PetscScatterType cval = NULL + * vec_type = str2bytes(scatter_type, &cval) + * CHKERR( VecScatterSetType(self.sct, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterSetType(__pyx_v_self->sct, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 54, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":51 + * return self + * + * def setType(self, scatter_type): # <<<<<<<<<<<<<< + * cdef PetscScatterType cval = NULL + * vec_type = str2bytes(scatter_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vec_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":56 + * CHKERR( VecScatterSetType(self.sct, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscScatterType cval = NULL + * CHKERR( VecScatterGetType(self.sct, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_12getType[] = "Scatter.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_12getType(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_12getType(struct PyPetscScatterObject *__pyx_v_self) { + VecScatterType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Scatter.pyx":57 + * + * def getType(self): + * cdef PetscScatterType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( VecScatterGetType(self.sct, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Scatter.pyx":58 + * def getType(self): + * cdef PetscScatterType cval = NULL + * CHKERR( VecScatterGetType(self.sct, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterGetType(__pyx_v_self->sct, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 58, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":59 + * cdef PetscScatterType cval = NULL + * CHKERR( VecScatterGetType(self.sct, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(43, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":56 + * CHKERR( VecScatterSetType(self.sct, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscScatterType cval = NULL + * CHKERR( VecScatterGetType(self.sct, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":61 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterSetFromOptions(self.sct) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_14setFromOptions[] = "Scatter.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_14setFromOptions(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_14setFromOptions(struct PyPetscScatterObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Scatter.pyx":62 + * + * def setFromOptions(self): + * CHKERR( VecScatterSetFromOptions(self.sct) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterSetFromOptions(__pyx_v_self->sct)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":61 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterSetFromOptions(self.sct) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":64 + * CHKERR( VecScatterSetFromOptions(self.sct) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterSetUp(self.sct) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_17setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_16setUp[] = "Scatter.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_17setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_16setUp(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_16setUp(struct PyPetscScatterObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Scatter.pyx":65 + * + * def setUp(self): + * CHKERR( VecScatterSetUp(self.sct) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterSetUp(__pyx_v_self->sct)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 65, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":66 + * def setUp(self): + * CHKERR( VecScatterSetUp(self.sct) ) + * return self # <<<<<<<<<<<<<< + * + * def copy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":64 + * CHKERR( VecScatterSetFromOptions(self.sct) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( VecScatterSetUp(self.sct) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":68 + * return self + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * CHKERR( VecScatterCopy(self.sct, &scatter.sct) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_19copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_18copy[] = "Scatter.copy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_19copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("copy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "copy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_18copy(((struct PyPetscScatterObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_18copy(struct PyPetscScatterObject *__pyx_v_self) { + struct PyPetscScatterObject *__pyx_v_scatter = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + /* "petsc4py/PETSc/Scatter.pyx":69 + * + * def copy(self): + * cdef Scatter scatter = Scatter() # <<<<<<<<<<<<<< + * CHKERR( VecScatterCopy(self.sct, &scatter.sct) ) + * return scatter + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_scatter = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":70 + * def copy(self): + * cdef Scatter scatter = Scatter() + * CHKERR( VecScatterCopy(self.sct, &scatter.sct) ) # <<<<<<<<<<<<<< + * return scatter + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterCopy(__pyx_v_self->sct, (&__pyx_v_scatter->sct))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 70, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":71 + * cdef Scatter scatter = Scatter() + * CHKERR( VecScatterCopy(self.sct, &scatter.sct) ) + * return scatter # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_scatter)); + __pyx_r = ((PyObject *)__pyx_v_scatter); + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":68 + * return self + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * CHKERR( VecScatterCopy(self.sct, &scatter.sct) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_scatter); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":74 + * + * @classmethod + * def toAll(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_21toAll(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_20toAll[] = "Scatter.toAll(type cls, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_21toAll(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("toAll (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "toAll") < 0)) __PYX_ERR(43, 74, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("toAll", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 74, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.toAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(43, 74, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_20toAll(((PyTypeObject*)__pyx_v_cls), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_20toAll(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscVecObject *__pyx_v_vec) { + struct PyPetscScatterObject *__pyx_v_scatter = 0; + struct PyPetscVecObject *__pyx_v_ovec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toAll", 0); + + /* "petsc4py/PETSc/Scatter.pyx":75 + * @classmethod + * def toAll(cls, Vec vec): + * cdef Scatter scatter = Scatter() # <<<<<<<<<<<<<< + * cdef Vec ovec = Vec() + * CHKERR( VecScatterCreateToAll( + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_scatter = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":76 + * def toAll(cls, Vec vec): + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() # <<<<<<<<<<<<<< + * CHKERR( VecScatterCreateToAll( + * vec.vec, &scatter.sct, &ovec.vec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ovec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":77 + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + * CHKERR( VecScatterCreateToAll( # <<<<<<<<<<<<<< + * vec.vec, &scatter.sct, &ovec.vec) ) + * return (scatter, ovec) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterCreateToAll(__pyx_v_vec->vec, (&__pyx_v_scatter->sct), (&__pyx_v_ovec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 77, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":79 + * CHKERR( VecScatterCreateToAll( + * vec.vec, &scatter.sct, &ovec.vec) ) + * return (scatter, ovec) # <<<<<<<<<<<<<< + * + * @classmethod + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_scatter)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_scatter)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_scatter)); + __Pyx_INCREF(((PyObject *)__pyx_v_ovec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ovec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_ovec)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":74 + * + * @classmethod + * def toAll(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.toAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_scatter); + __Pyx_XDECREF((PyObject *)__pyx_v_ovec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":82 + * + * @classmethod + * def toZero(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_23toZero(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_22toZero[] = "Scatter.toZero(type cls, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_23toZero(PyObject *__pyx_v_cls, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("toZero (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "toZero") < 0)) __PYX_ERR(43, 82, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("toZero", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 82, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.toZero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(43, 82, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_22toZero(((PyTypeObject*)__pyx_v_cls), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_22toZero(CYTHON_UNUSED PyTypeObject *__pyx_v_cls, struct PyPetscVecObject *__pyx_v_vec) { + struct PyPetscScatterObject *__pyx_v_scatter = 0; + struct PyPetscVecObject *__pyx_v_ovec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toZero", 0); + + /* "petsc4py/PETSc/Scatter.pyx":83 + * @classmethod + * def toZero(cls, Vec vec): + * cdef Scatter scatter = Scatter() # <<<<<<<<<<<<<< + * cdef Vec ovec = Vec() + * CHKERR( VecScatterCreateToZero( + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_scatter = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":84 + * def toZero(cls, Vec vec): + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() # <<<<<<<<<<<<<< + * CHKERR( VecScatterCreateToZero( + * vec.vec, &scatter.sct, &ovec.vec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ovec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":85 + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + * CHKERR( VecScatterCreateToZero( # <<<<<<<<<<<<<< + * vec.vec, &scatter.sct, &ovec.vec) ) + * return (scatter, ovec) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterCreateToZero(__pyx_v_vec->vec, (&__pyx_v_scatter->sct), (&__pyx_v_ovec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 85, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":87 + * CHKERR( VecScatterCreateToZero( + * vec.vec, &scatter.sct, &ovec.vec) ) + * return (scatter, ovec) # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(43, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_scatter)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_scatter)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_scatter)); + __Pyx_INCREF(((PyObject *)__pyx_v_ovec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ovec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_ovec)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Scatter.pyx":82 + * + * @classmethod + * def toZero(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.toZero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_scatter); + __Pyx_XDECREF((PyObject *)__pyx_v_ovec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":90 + * # + * + * def begin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_25begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_24begin[] = "Scatter.begin(self, Vec vec_from, Vec vec_to, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_25begin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("begin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_vec_to,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("begin", 0, 2, 4, 1); __PYX_ERR(43, 90, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "begin") < 0)) __PYX_ERR(43, 90, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("begin", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 90, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.begin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 90, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 90, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_24begin(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_vec_to, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_24begin(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("begin", 0); + + /* "petsc4py/PETSc/Scatter.pyx":91 + * + * def begin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(43, 91, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Scatter.pyx":92 + * def begin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(43, 92, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Scatter.pyx":93 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterBegin(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 93, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":90 + * # + * + * def begin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.begin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":96 + * caddv, csctm) ) + * + * def end(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_27end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_26end[] = "Scatter.end(self, Vec vec_from, Vec vec_to, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_27end(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("end (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_vec_to,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("end", 0, 2, 4, 1); __PYX_ERR(43, 96, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "end") < 0)) __PYX_ERR(43, 96, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("end", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 96, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.end", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 96, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 96, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_26end(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_vec_to, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_26end(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("end", 0); + + /* "petsc4py/PETSc/Scatter.pyx":97 + * + * def end(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(43, 97, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Scatter.pyx":98 + * def end(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(43, 98, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Scatter.pyx":99 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterEnd(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 99, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":96 + * caddv, csctm) ) + * + * def end(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.end", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":104 + * # + * + * def scatterBegin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_29scatterBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_28scatterBegin[] = "Scatter.scatterBegin(self, Vec vec_from, Vec vec_to, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_29scatterBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatterBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_vec_to,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterBegin", 0, 2, 4, 1); __PYX_ERR(43, 104, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatterBegin") < 0)) __PYX_ERR(43, 104, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatterBegin", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 104, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatterBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 104, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 104, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_28scatterBegin(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_vec_to, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_28scatterBegin(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatterBegin", 0); + + /* "petsc4py/PETSc/Scatter.pyx":105 + * + * def scatterBegin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(43, 105, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Scatter.pyx":106 + * def scatterBegin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(43, 106, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Scatter.pyx":107 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterBegin(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 107, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":104 + * # + * + * def scatterBegin(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatterBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":110 + * caddv, csctm) ) + * + * def scatterEnd(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_31scatterEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_30scatterEnd[] = "Scatter.scatterEnd(self, Vec vec_from, Vec vec_to, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_31scatterEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatterEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_vec_to,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatterEnd", 0, 2, 4, 1); __PYX_ERR(43, 110, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatterEnd") < 0)) __PYX_ERR(43, 110, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatterEnd", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 110, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatterEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 110, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 110, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_30scatterEnd(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_vec_to, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_30scatterEnd(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatterEnd", 0); + + /* "petsc4py/PETSc/Scatter.pyx":111 + * + * def scatterEnd(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(43, 111, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Scatter.pyx":112 + * def scatterEnd(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(43, 112, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Scatter.pyx":113 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterEnd(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 113, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":110 + * caddv, csctm) ) + * + * def scatterEnd(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatterEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Scatter.pyx":116 + * caddv, csctm) ) + * + * def scatter(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_33scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Scatter_32scatter[] = "Scatter.scatter(self, Vec vec_from, Vec vec_to, addv=None, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Scatter_33scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec_from = 0; + struct PyPetscVecObject *__pyx_v_vec_to = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_from,&__pyx_n_s_vec_to,&__pyx_n_s_addv,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_from)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_to)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatter", 0, 2, 4, 1); __PYX_ERR(43, 116, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatter") < 0)) __PYX_ERR(43, 116, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vec_from = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vec_to = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatter", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(43, 116, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_from), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_from", 0))) __PYX_ERR(43, 116, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec_to), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec_to", 0))) __PYX_ERR(43, 116, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Scatter_32scatter(((struct PyPetscScatterObject *)__pyx_v_self), __pyx_v_vec_from, __pyx_v_vec_to, __pyx_v_addv, __pyx_v_mode); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Scatter_32scatter(struct PyPetscScatterObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec_from, struct PyPetscVecObject *__pyx_v_vec_to, PyObject *__pyx_v_addv, PyObject *__pyx_v_mode) { + InsertMode __pyx_v_caddv; + ScatterMode __pyx_v_csctm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + ScatterMode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatter", 0); + + /* "petsc4py/PETSc/Scatter.pyx":117 + * + * def scatter(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(43, 117, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Scatter.pyx":118 + * def scatter(self, Vec vec_from, Vec vec_to, addv=None, mode=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) # <<<<<<<<<<<<<< + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_scattermode(__pyx_v_mode); if (unlikely(__pyx_t_2 == ((ScatterMode)((ScatterMode)-1L)))) __PYX_ERR(43, 118, __pyx_L1_error) + __pyx_v_csctm = __pyx_t_2; + + /* "petsc4py/PETSc/Scatter.pyx":119 + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterBegin(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 119, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":121 + * CHKERR( VecScatterBegin(self.sct, vec_from.vec, vec_to.vec, + * caddv, csctm) ) + * CHKERR( VecScatterEnd(self.sct, vec_from.vec, vec_to.vec, # <<<<<<<<<<<<<< + * caddv, csctm) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScatterEnd(__pyx_v_self->sct, __pyx_v_vec_from->vec, __pyx_v_vec_to->vec, __pyx_v_caddv, __pyx_v_csctm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(43, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":116 + * caddv, csctm) ) + * + * def scatter(self, Vec vec_from, Vec vec_to, addv=None, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * cdef PetscScatterMode csctm = scattermode(mode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Scatter.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":5 + * cdef class Section(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sec + * self.sec = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7Section_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7Section_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section___cinit__(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7Section___cinit__(struct PyPetscSectionObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Section.pyx":6 + * + * def __cinit__(self): + * self.obj = &self.sec # <<<<<<<<<<<<<< + * self.sec = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->sec)); + + /* "petsc4py/PETSc/Section.pyx":7 + * def __cinit__(self): + * self.obj = &self.sec + * self.sec = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->sec = NULL; + + /* "petsc4py/PETSc/Section.pyx":5 + * cdef class Section(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.sec + * self.sec = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":9 + * self.sec = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionDestroy(&self.sec) ) + * self.sec = NULL + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_7Section_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_7Section_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_7Section_2__dealloc__(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_7Section_2__dealloc__(struct PyPetscSectionObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/Section.pyx":10 + * + * def __dealloc__(self): + * CHKERR( PetscSectionDestroy(&self.sec) ) # <<<<<<<<<<<<<< + * self.sec = NULL + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionDestroy((&__pyx_v_self->sec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 10, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":11 + * def __dealloc__(self): + * CHKERR( PetscSectionDestroy(&self.sec) ) + * self.sec = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->sec = NULL; + + /* "petsc4py/PETSc/Section.pyx":9 + * self.sec = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionDestroy(&self.sec) ) + * self.sec = NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_WriteUnraisable("petsc4py.PETSc.Section.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/Section.pyx":13 + * self.sec = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_4view[] = "Section.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(44, 13, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 13, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(44, 13, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_4view(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_4view(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Section.pyx":14 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSectionView(self.sec, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Section.pyx":15 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscSectionView(self.sec, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Section.pyx":16 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSectionView(self.sec, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionView(__pyx_v_self->sec, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 16, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":13 + * self.sec = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":18 + * CHKERR( PetscSectionView(self.sec, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionDestroy(&self.sec) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_6destroy[] = "Section.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_6destroy(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_6destroy(struct PyPetscSectionObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Section.pyx":19 + * + * def destroy(self): + * CHKERR( PetscSectionDestroy(&self.sec) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionDestroy((&__pyx_v_self->sec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 19, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":20 + * def destroy(self): + * CHKERR( PetscSectionDestroy(&self.sec) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":18 + * CHKERR( PetscSectionView(self.sec, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionDestroy(&self.sec) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":22 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSection newsec = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_8create[] = "Section.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(44, 22, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 22, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_8create(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_8create(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscSection __pyx_v_newsec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Section.pyx":23 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscSection newsec = NULL + * CHKERR( PetscSectionCreate(ccomm, &newsec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(44, 23, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":24 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSection newsec = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSectionCreate(ccomm, &newsec) ) + * PetscCLEAR(self.obj); self.sec = newsec + */ + __pyx_v_newsec = NULL; + + /* "petsc4py/PETSc/Section.pyx":25 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSection newsec = NULL + * CHKERR( PetscSectionCreate(ccomm, &newsec) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.sec = newsec + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionCreate(__pyx_v_ccomm, (&__pyx_v_newsec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 25, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":26 + * cdef PetscSection newsec = NULL + * CHKERR( PetscSectionCreate(ccomm, &newsec) ) + * PetscCLEAR(self.obj); self.sec = newsec # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->sec = __pyx_v_newsec; + + /* "petsc4py/PETSc/Section.pyx":27 + * CHKERR( PetscSectionCreate(ccomm, &newsec) ) + * PetscCLEAR(self.obj); self.sec = newsec + * return self # <<<<<<<<<<<<<< + * + * def clone(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":22 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSection newsec = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":29 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef Section sec =
type(self)() + * CHKERR( PetscSectionClone(self.sec, &sec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_10clone[] = "Section.clone(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clone (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clone", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clone", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_10clone(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_10clone(struct PyPetscSectionObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clone", 0); + + /* "petsc4py/PETSc/Section.pyx":30 + * + * def clone(self): + * cdef Section sec =
type(self)() # <<<<<<<<<<<<<< + * CHKERR( PetscSectionClone(self.sec, &sec.sec) ) + * return sec + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(44, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Section.pyx":31 + * def clone(self): + * cdef Section sec =
type(self)() + * CHKERR( PetscSectionClone(self.sec, &sec.sec) ) # <<<<<<<<<<<<<< + * return sec + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionClone(__pyx_v_self->sec, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 31, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":32 + * cdef Section sec =
type(self)() + * CHKERR( PetscSectionClone(self.sec, &sec.sec) ) + * return sec # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":29 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef Section sec =
type(self)() + * CHKERR( PetscSectionClone(self.sec, &sec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":34 + * return sec + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetUp(self.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_13setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_12setUp[] = "Section.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_13setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_12setUp(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_12setUp(struct PyPetscSectionObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Section.pyx":35 + * + * def setUp(self): + * CHKERR( PetscSectionSetUp(self.sec) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetUp(__pyx_v_self->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 35, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":34 + * return sec + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetUp(self.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":37 + * CHKERR( PetscSectionSetUp(self.sec) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionReset(self.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_15reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_14reset[] = "Section.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_15reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_14reset(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_14reset(struct PyPetscSectionObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/Section.pyx":38 + * + * def reset(self): + * CHKERR( PetscSectionReset(self.sec) ) # <<<<<<<<<<<<<< + * + * def getNumFields(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionReset(__pyx_v_self->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 38, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":37 + * CHKERR( PetscSectionSetUp(self.sec) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionReset(self.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":40 + * CHKERR( PetscSectionReset(self.sec) ) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt numFields = 0 + * CHKERR( PetscSectionGetNumFields(self.sec, &numFields) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_17getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_16getNumFields[] = "Section.getNumFields(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_17getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumFields (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumFields", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumFields", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_16getNumFields(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_16getNumFields(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_numFields; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumFields", 0); + + /* "petsc4py/PETSc/Section.pyx":41 + * + * def getNumFields(self): + * cdef PetscInt numFields = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetNumFields(self.sec, &numFields) ) + * return toInt(numFields) + */ + __pyx_v_numFields = 0; + + /* "petsc4py/PETSc/Section.pyx":42 + * def getNumFields(self): + * cdef PetscInt numFields = 0 + * CHKERR( PetscSectionGetNumFields(self.sec, &numFields) ) # <<<<<<<<<<<<<< + * return toInt(numFields) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetNumFields(__pyx_v_self->sec, (&__pyx_v_numFields))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 42, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":43 + * cdef PetscInt numFields = 0 + * CHKERR( PetscSectionGetNumFields(self.sec, &numFields) ) + * return toInt(numFields) # <<<<<<<<<<<<<< + * + * def setNumFields(self,numFields): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numFields); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":40 + * CHKERR( PetscSectionReset(self.sec) ) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt numFields = 0 + * CHKERR( PetscSectionGetNumFields(self.sec, &numFields) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":45 + * return toInt(numFields) + * + * def setNumFields(self,numFields): # <<<<<<<<<<<<<< + * cdef PetscInt cnumFields = asInt(numFields) + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_19setNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_18setNumFields[] = "Section.setNumFields(self, numFields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_19setNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numFields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumFields (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numFields,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numFields)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumFields") < 0)) __PYX_ERR(44, 45, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_numFields = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumFields", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 45, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_18setNumFields(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_numFields); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_18setNumFields(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_numFields) { + PetscInt __pyx_v_cnumFields; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumFields", 0); + + /* "petsc4py/PETSc/Section.pyx":46 + * + * def setNumFields(self,numFields): + * cdef PetscInt cnumFields = asInt(numFields) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numFields); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 46, __pyx_L1_error) + __pyx_v_cnumFields = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":47 + * def setNumFields(self,numFields): + * cdef PetscInt cnumFields = asInt(numFields) + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) # <<<<<<<<<<<<<< + * + * def getFieldName(self,field): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetNumFields(__pyx_v_self->sec, __pyx_v_cnumFields)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 47, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":45 + * return toInt(numFields) + * + * def setNumFields(self,numFields): # <<<<<<<<<<<<<< + * cdef PetscInt cnumFields = asInt(numFields) + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":49 + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) + * + * def getFieldName(self,field): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef const char *fieldName = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_21getFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_20getFieldName[] = "Section.getFieldName(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_21getFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldName") < 0)) __PYX_ERR(44, 49, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 49, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_20getFieldName(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_20getFieldName(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cfield; + char const *__pyx_v_fieldName; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldName", 0); + + /* "petsc4py/PETSc/Section.pyx":50 + * + * def getFieldName(self,field): + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef const char *fieldName = NULL + * CHKERR( PetscSectionGetFieldName(self.sec,cfield,&fieldName) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 50, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":51 + * def getFieldName(self,field): + * cdef PetscInt cfield = asInt(field) + * cdef const char *fieldName = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldName(self.sec,cfield,&fieldName) ) + * return bytes2str(fieldName) + */ + __pyx_v_fieldName = NULL; + + /* "petsc4py/PETSc/Section.pyx":52 + * cdef PetscInt cfield = asInt(field) + * cdef const char *fieldName = NULL + * CHKERR( PetscSectionGetFieldName(self.sec,cfield,&fieldName) ) # <<<<<<<<<<<<<< + * return bytes2str(fieldName) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldName(__pyx_v_self->sec, __pyx_v_cfield, (&__pyx_v_fieldName))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":53 + * cdef const char *fieldName = NULL + * CHKERR( PetscSectionGetFieldName(self.sec,cfield,&fieldName) ) + * return bytes2str(fieldName) # <<<<<<<<<<<<<< + * + * def setFieldName(self,field,fieldName): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_fieldName); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":49 + * CHKERR( PetscSectionSetNumFields(self.sec, cnumFields) ) + * + * def getFieldName(self,field): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef const char *fieldName = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":55 + * return bytes2str(fieldName) + * + * def setFieldName(self,field,fieldName): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_23setFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_22setFieldName[] = "Section.setFieldName(self, field, fieldName)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_23setFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_fieldName = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_fieldName,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldName)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldName", 1, 2, 2, 1); __PYX_ERR(44, 55, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldName") < 0)) __PYX_ERR(44, 55, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_field = values[0]; + __pyx_v_fieldName = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 55, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_22setFieldName(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_field, __pyx_v_fieldName); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_22setFieldName(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_fieldName) { + PetscInt __pyx_v_cfield; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldName", 0); + __Pyx_INCREF(__pyx_v_fieldName); + + /* "petsc4py/PETSc/Section.pyx":56 + * + * def setFieldName(self,field,fieldName): + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * fieldName = str2bytes(fieldName, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 56, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":57 + * def setFieldName(self,field,fieldName): + * cdef PetscInt cfield = asInt(field) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * fieldName = str2bytes(fieldName, &cname) + * CHKERR( PetscSectionSetFieldName(self.sec,cfield,cname) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Section.pyx":58 + * cdef PetscInt cfield = asInt(field) + * cdef const char *cname = NULL + * fieldName = str2bytes(fieldName, &cname) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldName(self.sec,cfield,cname) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldName, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_fieldName, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Section.pyx":59 + * cdef const char *cname = NULL + * fieldName = str2bytes(fieldName, &cname) + * CHKERR( PetscSectionSetFieldName(self.sec,cfield,cname) ) # <<<<<<<<<<<<<< + * + * def getFieldComponents(self,field): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldName(__pyx_v_self->sec, __pyx_v_cfield, __pyx_v_cname)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 59, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":55 + * return bytes2str(fieldName) + * + * def setFieldName(self,field,fieldName): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldName); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":61 + * CHKERR( PetscSectionSetFieldName(self.sec,cfield,cname) ) + * + * def getFieldComponents(self,field): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field), cnumComp = 0 + * CHKERR( PetscSectionGetFieldComponents(self.sec,cfield,&cnumComp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_25getFieldComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_24getFieldComponents[] = "Section.getFieldComponents(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_25getFieldComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldComponents") < 0)) __PYX_ERR(44, 61, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldComponents", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 61, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_24getFieldComponents(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_24getFieldComponents(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumComp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldComponents", 0); + + /* "petsc4py/PETSc/Section.pyx":62 + * + * def getFieldComponents(self,field): + * cdef PetscInt cfield = asInt(field), cnumComp = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldComponents(self.sec,cfield,&cnumComp) ) + * return toInt(cnumComp) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 62, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + __pyx_v_cnumComp = 0; + + /* "petsc4py/PETSc/Section.pyx":63 + * def getFieldComponents(self,field): + * cdef PetscInt cfield = asInt(field), cnumComp = 0 + * CHKERR( PetscSectionGetFieldComponents(self.sec,cfield,&cnumComp) ) # <<<<<<<<<<<<<< + * return toInt(cnumComp) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldComponents(__pyx_v_self->sec, __pyx_v_cfield, (&__pyx_v_cnumComp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 63, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":64 + * cdef PetscInt cfield = asInt(field), cnumComp = 0 + * CHKERR( PetscSectionGetFieldComponents(self.sec,cfield,&cnumComp) ) + * return toInt(cnumComp) # <<<<<<<<<<<<<< + * + * def setFieldComponents(self,field,numComp): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumComp); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":61 + * CHKERR( PetscSectionSetFieldName(self.sec,cfield,cname) ) + * + * def getFieldComponents(self,field): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field), cnumComp = 0 + * CHKERR( PetscSectionGetFieldComponents(self.sec,cfield,&cnumComp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":66 + * return toInt(cnumComp) + * + * def setFieldComponents(self,field,numComp): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumComp = asInt(numComp) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_27setFieldComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_26setFieldComponents[] = "Section.setFieldComponents(self, field, numComp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_27setFieldComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_numComp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_numComp,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numComp)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldComponents", 1, 2, 2, 1); __PYX_ERR(44, 66, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldComponents") < 0)) __PYX_ERR(44, 66, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_field = values[0]; + __pyx_v_numComp = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldComponents", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 66, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_26setFieldComponents(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_field, __pyx_v_numComp); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_26setFieldComponents(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_numComp) { + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumComp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldComponents", 0); + + /* "petsc4py/PETSc/Section.pyx":67 + * + * def setFieldComponents(self,field,numComp): + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt cnumComp = asInt(numComp) + * CHKERR( PetscSectionSetFieldComponents(self.sec,cfield,cnumComp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 67, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":68 + * def setFieldComponents(self,field,numComp): + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumComp = asInt(numComp) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldComponents(self.sec,cfield,cnumComp) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numComp); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 68, __pyx_L1_error) + __pyx_v_cnumComp = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":69 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumComp = asInt(numComp) + * CHKERR( PetscSectionSetFieldComponents(self.sec,cfield,cnumComp) ) # <<<<<<<<<<<<<< + * + * def getChart(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldComponents(__pyx_v_self->sec, __pyx_v_cfield, __pyx_v_cnumComp)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 69, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":66 + * return toInt(cnumComp) + * + * def setFieldComponents(self,field,numComp): # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumComp = asInt(numComp) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":71 + * CHKERR( PetscSectionSetFieldComponents(self.sec,cfield,cnumComp) ) + * + * def getChart(self): # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( PetscSectionGetChart(self.sec, &pStart, &pEnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_29getChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_28getChart[] = "Section.getChart(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_29getChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getChart (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getChart", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getChart", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_28getChart(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_28getChart(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getChart", 0); + + /* "petsc4py/PETSc/Section.pyx":72 + * + * def getChart(self): + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetChart(self.sec, &pStart, &pEnd) ) + * return toInt(pStart), toInt(pEnd) + */ + __pyx_v_pStart = 0; + __pyx_v_pEnd = 0; + + /* "petsc4py/PETSc/Section.pyx":73 + * def getChart(self): + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( PetscSectionGetChart(self.sec, &pStart, &pEnd) ) # <<<<<<<<<<<<<< + * return toInt(pStart), toInt(pEnd) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetChart(__pyx_v_self->sec, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 73, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":74 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( PetscSectionGetChart(self.sec, &pStart, &pEnd) ) + * return toInt(pStart), toInt(pEnd) # <<<<<<<<<<<<<< + * + * def setChart(self, pStart, pEnd): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_pStart); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_pEnd); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(44, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":71 + * CHKERR( PetscSectionSetFieldComponents(self.sec,cfield,cnumComp) ) + * + * def getChart(self): # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( PetscSectionGetChart(self.sec, &pStart, &pEnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":76 + * return toInt(pStart), toInt(pEnd) + * + * def setChart(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_31setChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_30setChart[] = "Section.setChart(self, pStart, pEnd)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_31setChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_pStart = 0; + PyObject *__pyx_v_pEnd = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setChart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pStart,&__pyx_n_s_pEnd,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pStart)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pEnd)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setChart", 1, 2, 2, 1); __PYX_ERR(44, 76, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setChart") < 0)) __PYX_ERR(44, 76, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_pStart = values[0]; + __pyx_v_pEnd = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setChart", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 76, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_30setChart(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_pStart, __pyx_v_pEnd); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_30setChart(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_pStart, PyObject *__pyx_v_pEnd) { + PetscInt __pyx_v_cStart; + PetscInt __pyx_v_cEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setChart", 0); + + /* "petsc4py/PETSc/Section.pyx":77 + * + * def setChart(self, pStart, pEnd): + * cdef PetscInt cStart = asInt(pStart) # <<<<<<<<<<<<<< + * cdef PetscInt cEnd = asInt(pEnd) + * CHKERR( PetscSectionSetChart(self.sec, cStart, cEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pStart); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 77, __pyx_L1_error) + __pyx_v_cStart = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":78 + * def setChart(self, pStart, pEnd): + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetChart(self.sec, cStart, cEnd) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pEnd); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 78, __pyx_L1_error) + __pyx_v_cEnd = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":79 + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + * CHKERR( PetscSectionSetChart(self.sec, cStart, cEnd) ) # <<<<<<<<<<<<<< + * + * def getPermutation(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetChart(__pyx_v_self->sec, __pyx_v_cStart, __pyx_v_cEnd)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 79, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":76 + * return toInt(pStart), toInt(pEnd) + * + * def setChart(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":81 + * CHKERR( PetscSectionSetChart(self.sec, cStart, cEnd) ) + * + * def getPermutation(self): # <<<<<<<<<<<<<< + * cdef IS perm = IS() + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_33getPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_32getPermutation[] = "Section.getPermutation(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_33getPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPermutation (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPermutation", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPermutation", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_32getPermutation(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_32getPermutation(struct PyPetscSectionObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_perm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPermutation", 0); + + /* "petsc4py/PETSc/Section.pyx":82 + * + * def getPermutation(self): + * cdef IS perm = IS() # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) + * PetscINCREF(perm.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(44, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_perm = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Section.pyx":83 + * def getPermutation(self): + * cdef IS perm = IS() + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) # <<<<<<<<<<<<<< + * PetscINCREF(perm.obj) + * return perm + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetPermutation(__pyx_v_self->sec, (&__pyx_v_perm->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 83, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":84 + * cdef IS perm = IS() + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) + * PetscINCREF(perm.obj) # <<<<<<<<<<<<<< + * return perm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_perm->__pyx_base.obj)); + + /* "petsc4py/PETSc/Section.pyx":85 + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) + * PetscINCREF(perm.obj) + * return perm # <<<<<<<<<<<<<< + * + * def setPermutation(self, IS perm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_perm)); + __pyx_r = ((PyObject *)__pyx_v_perm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":81 + * CHKERR( PetscSectionSetChart(self.sec, cStart, cEnd) ) + * + * def getPermutation(self): # <<<<<<<<<<<<<< + * cdef IS perm = IS() + * CHKERR( PetscSectionGetPermutation(self.sec, &perm.iset)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_perm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":87 + * return perm + * + * def setPermutation(self, IS perm): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetPermutation(self.sec, perm.iset)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_35setPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_34setPermutation[] = "Section.setPermutation(self, IS perm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_35setPermutation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_perm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPermutation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_perm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_perm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPermutation") < 0)) __PYX_ERR(44, 87, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_perm = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPermutation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 87, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_perm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "perm", 0))) __PYX_ERR(44, 87, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_34setPermutation(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_perm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_34setPermutation(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_perm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPermutation", 0); + + /* "petsc4py/PETSc/Section.pyx":88 + * + * def setPermutation(self, IS perm): + * CHKERR( PetscSectionSetPermutation(self.sec, perm.iset)) # <<<<<<<<<<<<<< + * + * def getDof(self,point): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetPermutation(__pyx_v_self->sec, __pyx_v_perm->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":87 + * return perm + * + * def setPermutation(self, IS perm): # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetPermutation(self.sec, perm.iset)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setPermutation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":90 + * CHKERR( PetscSectionSetPermutation(self.sec, perm.iset)) + * + * def getDof(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetDof(self.sec,cpoint,&cnumDof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_37getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_36getDof[] = "Section.getDof(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_37getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getDof") < 0)) __PYX_ERR(44, 90, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 90, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_36getDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_36getDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDof", 0); + + /* "petsc4py/PETSc/Section.pyx":91 + * + * def getDof(self,point): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetDof(self.sec,cpoint,&cnumDof) ) + * return toInt(cnumDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 91, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_cnumDof = 0; + + /* "petsc4py/PETSc/Section.pyx":92 + * def getDof(self,point): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetDof(self.sec,cpoint,&cnumDof) ) # <<<<<<<<<<<<<< + * return toInt(cnumDof) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetDof(__pyx_v_self->sec, __pyx_v_cpoint, (&__pyx_v_cnumDof))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 92, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":93 + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetDof(self.sec,cpoint,&cnumDof) ) + * return toInt(cnumDof) # <<<<<<<<<<<<<< + * + * def setDof(self,point,numDof): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumDof); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":90 + * CHKERR( PetscSectionSetPermutation(self.sec, perm.iset)) + * + * def getDof(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetDof(self.sec,cpoint,&cnumDof) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":95 + * return toInt(cnumDof) + * + * def setDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_39setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_38setDof[] = "Section.setDof(self, point, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_39setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_numDof,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setDof", 1, 2, 2, 1); __PYX_ERR(44, 95, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDof") < 0)) __PYX_ERR(44, 95, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_numDof = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 95, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_38setDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_38setDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDof", 0); + + /* "petsc4py/PETSc/Section.pyx":96 + * + * def setDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetDof(self.sec,cpoint,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 96, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":97 + * def setDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetDof(self.sec,cpoint,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 97, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":98 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetDof(self.sec,cpoint,cnumDof) ) # <<<<<<<<<<<<<< + * + * def addDof(self,point,numDof): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":95 + * return toInt(cnumDof) + * + * def setDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":100 + * CHKERR( PetscSectionSetDof(self.sec,cpoint,cnumDof) ) + * + * def addDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_41addDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_40addDof[] = "Section.addDof(self, point, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_41addDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_numDof,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addDof", 1, 2, 2, 1); __PYX_ERR(44, 100, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addDof") < 0)) __PYX_ERR(44, 100, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_numDof = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 100, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_40addDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_40addDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addDof", 0); + + /* "petsc4py/PETSc/Section.pyx":101 + * + * def addDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddDof(self.sec,cpoint,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 101, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":102 + * def addDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionAddDof(self.sec,cpoint,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 102, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":103 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddDof(self.sec,cpoint,cnumDof) ) # <<<<<<<<<<<<<< + * + * def getFieldDof(self,point,field): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionAddDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 103, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":100 + * CHKERR( PetscSectionSetDof(self.sec,cpoint,cnumDof) ) + * + * def addDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":105 + * CHKERR( PetscSectionAddDof(self.sec,cpoint,cnumDof) ) + * + * def getFieldDof(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_43getFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_42getFieldDof[] = "Section.getFieldDof(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_43getFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getFieldDof", 1, 2, 2, 1); __PYX_ERR(44, 105, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldDof") < 0)) __PYX_ERR(44, 105, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 105, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_42getFieldDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_42getFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PetscInt __pyx_v_cfield; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldDof", 0); + + /* "petsc4py/PETSc/Section.pyx":106 + * + * def getFieldDof(self,point,field): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldDof(self.sec,cpoint,cfield,&cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 106, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_cnumDof = 0; + + /* "petsc4py/PETSc/Section.pyx":107 + * def getFieldDof(self,point,field): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldDof(self.sec,cpoint,cfield,&cnumDof) ) + * return toInt(cnumDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 107, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":108 + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldDof(self.sec,cpoint,cfield,&cnumDof) ) # <<<<<<<<<<<<<< + * return toInt(cnumDof) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_cnumDof))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 108, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":109 + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldDof(self.sec,cpoint,cfield,&cnumDof) ) + * return toInt(cnumDof) # <<<<<<<<<<<<<< + * + * def setFieldDof(self,point,field,numDof): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumDof); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":105 + * CHKERR( PetscSectionAddDof(self.sec,cpoint,cnumDof) ) + * + * def getFieldDof(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":111 + * return toInt(cnumDof) + * + * def setFieldDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_45setFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_44setFieldDof[] = "Section.setFieldDof(self, point, field, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_45setFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_numDof,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldDof", 1, 3, 3, 1); __PYX_ERR(44, 111, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldDof", 1, 3, 3, 2); __PYX_ERR(44, 111, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldDof") < 0)) __PYX_ERR(44, 111, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_numDof = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldDof", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 111, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_44setFieldDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_44setFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldDof", 0); + + /* "petsc4py/PETSc/Section.pyx":112 + * + * def setFieldDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 112, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":113 + * def setFieldDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetFieldDof(self.sec,cpoint,cfield,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 113, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":114 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 114, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":115 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetFieldDof(self.sec,cpoint,cfield,cnumDof) ) # <<<<<<<<<<<<<< + * + * def addFieldDof(self,point,field,numDof): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 115, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":111 + * return toInt(cnumDof) + * + * def setFieldDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":117 + * CHKERR( PetscSectionSetFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def addFieldDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_47addFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_46addFieldDof[] = "Section.addFieldDof(self, point, field, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_47addFieldDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addFieldDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_numDof,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addFieldDof", 1, 3, 3, 1); __PYX_ERR(44, 117, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addFieldDof", 1, 3, 3, 2); __PYX_ERR(44, 117, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addFieldDof") < 0)) __PYX_ERR(44, 117, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_numDof = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addFieldDof", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 117, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_46addFieldDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_46addFieldDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addFieldDof", 0); + + /* "petsc4py/PETSc/Section.pyx":118 + * + * def addFieldDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 118, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":119 + * def addFieldDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddFieldDof(self.sec,cpoint,cfield,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 119, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":120 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionAddFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 120, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":121 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddFieldDof(self.sec,cpoint,cfield,cnumDof) ) # <<<<<<<<<<<<<< + * + * def getConstraintDof(self,point): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionAddFieldDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":117 + * CHKERR( PetscSectionSetFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def addFieldDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addFieldDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":123 + * CHKERR( PetscSectionAddFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def getConstraintDof(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetConstraintDof(self.sec,cpoint,&cnumDof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_49getConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_48getConstraintDof[] = "Section.getConstraintDof(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_49getConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getConstraintDof") < 0)) __PYX_ERR(44, 123, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getConstraintDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_48getConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_48getConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":124 + * + * def getConstraintDof(self,point): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetConstraintDof(self.sec,cpoint,&cnumDof) ) + * return toInt(cnumDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 124, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_cnumDof = 0; + + /* "petsc4py/PETSc/Section.pyx":125 + * def getConstraintDof(self,point): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetConstraintDof(self.sec,cpoint,&cnumDof) ) # <<<<<<<<<<<<<< + * return toInt(cnumDof) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, (&__pyx_v_cnumDof))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 125, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":126 + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetConstraintDof(self.sec,cpoint,&cnumDof) ) + * return toInt(cnumDof) # <<<<<<<<<<<<<< + * + * def setConstraintDof(self,point,numDof): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumDof); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":123 + * CHKERR( PetscSectionAddFieldDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def getConstraintDof(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * CHKERR( PetscSectionGetConstraintDof(self.sec,cpoint,&cnumDof) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":128 + * return toInt(cnumDof) + * + * def setConstraintDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_51setConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_50setConstraintDof[] = "Section.setConstraintDof(self, point, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_51setConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_numDof,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setConstraintDof", 1, 2, 2, 1); __PYX_ERR(44, 128, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintDof") < 0)) __PYX_ERR(44, 128, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_numDof = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConstraintDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 128, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_50setConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_50setConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":129 + * + * def setConstraintDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 129, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":130 + * def setConstraintDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 130, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":131 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,cnumDof) ) # <<<<<<<<<<<<<< + * + * def addConstraintDof(self,point,numDof): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 131, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":128 + * return toInt(cnumDof) + * + * def setConstraintDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":133 + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,cnumDof) ) + * + * def addConstraintDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_53addConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_52addConstraintDof[] = "Section.addConstraintDof(self, point, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_53addConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_numDof,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addConstraintDof", 1, 2, 2, 1); __PYX_ERR(44, 133, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addConstraintDof") < 0)) __PYX_ERR(44, 133, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_numDof = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addConstraintDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 133, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_52addConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_52addConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":134 + * + * def addConstraintDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddConstraintDof(self.sec,cpoint,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 134, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":135 + * def addConstraintDof(self,point,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionAddConstraintDof(self.sec,cpoint,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 135, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":136 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddConstraintDof(self.sec,cpoint,cnumDof) ) # <<<<<<<<<<<<<< + * + * def getFieldConstraintDof(self,point,field): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionAddConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 136, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":133 + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,cnumDof) ) + * + * def addConstraintDof(self,point,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cnumDof = asInt(numDof) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":138 + * CHKERR( PetscSectionAddConstraintDof(self.sec,cpoint,cnumDof) ) + * + * def getFieldConstraintDof(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_55getFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_54getFieldConstraintDof[] = "Section.getFieldConstraintDof(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_55getFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getFieldConstraintDof", 1, 2, 2, 1); __PYX_ERR(44, 138, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldConstraintDof") < 0)) __PYX_ERR(44, 138, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldConstraintDof", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 138, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_54getFieldConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_54getFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cnumDof; + PetscInt __pyx_v_cfield; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":139 + * + * def getFieldConstraintDof(self,point,field): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 139, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_cnumDof = 0; + + /* "petsc4py/PETSc/Section.pyx":140 + * def getFieldConstraintDof(self,point,field): + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&cnumDof) ) + * return toInt(cnumDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 140, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":141 + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&cnumDof) ) # <<<<<<<<<<<<<< + * return toInt(cnumDof) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_cnumDof))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 141, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":142 + * cdef PetscInt cfield = asInt(field) + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&cnumDof) ) + * return toInt(cnumDof) # <<<<<<<<<<<<<< + * + * def setFieldConstraintDof(self,point,field,numDof): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumDof); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":138 + * CHKERR( PetscSectionAddConstraintDof(self.sec,cpoint,cnumDof) ) + * + * def getFieldConstraintDof(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cnumDof = 0 + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":144 + * return toInt(cnumDof) + * + * def setFieldConstraintDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_57setFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_56setFieldConstraintDof[] = "Section.setFieldConstraintDof(self, point, field, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_57setFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_numDof,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldConstraintDof", 1, 3, 3, 1); __PYX_ERR(44, 144, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldConstraintDof", 1, 3, 3, 2); __PYX_ERR(44, 144, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldConstraintDof") < 0)) __PYX_ERR(44, 144, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_numDof = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldConstraintDof", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 144, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_56setFieldConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_56setFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":145 + * + * def setFieldConstraintDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 145, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":146 + * def setFieldConstraintDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 146, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":147 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 147, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":148 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) # <<<<<<<<<<<<<< + * + * def addFieldConstraintDof(self,point,field,numDof): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 148, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":144 + * return toInt(cnumDof) + * + * def setFieldConstraintDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":150 + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def addFieldConstraintDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_59addFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_58addFieldConstraintDof[] = "Section.addFieldConstraintDof(self, point, field, numDof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_59addFieldConstraintDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_numDof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addFieldConstraintDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_numDof,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addFieldConstraintDof", 1, 3, 3, 1); __PYX_ERR(44, 150, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addFieldConstraintDof", 1, 3, 3, 2); __PYX_ERR(44, 150, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addFieldConstraintDof") < 0)) __PYX_ERR(44, 150, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_numDof = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addFieldConstraintDof", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 150, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_58addFieldConstraintDof(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_numDof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_58addFieldConstraintDof(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_numDof) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_cnumDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addFieldConstraintDof", 0); + + /* "petsc4py/PETSc/Section.pyx":151 + * + * def addFieldConstraintDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 151, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":152 + * def addFieldConstraintDof(self,point,field,numDof): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 152, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":153 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionAddFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numDof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 153, __pyx_L1_error) + __pyx_v_cnumDof = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":154 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt cnumDof = asInt(numDof) + * CHKERR( PetscSectionAddFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) # <<<<<<<<<<<<<< + * + * def getConstraintIndices(self,point): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionAddFieldConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_cnumDof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 154, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":150 + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def addFieldConstraintDof(self,point,field,numDof): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.addFieldConstraintDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":156 + * CHKERR( PetscSectionAddFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def getConstraintIndices(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_61getConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_60getConstraintIndices[] = "Section.getConstraintIndices(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_61getConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConstraintIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getConstraintIndices") < 0)) __PYX_ERR(44, 156, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getConstraintIndices", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 156, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_60getConstraintIndices(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_60getConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_nindex; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConstraintIndices", 0); + + /* "petsc4py/PETSc/Section.pyx":157 + * + * def getConstraintIndices(self,point): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 157, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":158 + * def getConstraintIndices(self,point): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetConstraintDof(self.sec, cpoint, &nindex) ) + */ + __pyx_v_nindex = 0; + + /* "petsc4py/PETSc/Section.pyx":159 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetConstraintDof(self.sec, cpoint, &nindex) ) + * CHKERR( PetscSectionGetConstraintIndices(self.sec, cpoint, &indices) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/Section.pyx":160 + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetConstraintDof(self.sec, cpoint, &nindex) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetConstraintIndices(self.sec, cpoint, &indices) ) + * return array_i(nindex, indices) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, (&__pyx_v_nindex))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 160, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":161 + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetConstraintDof(self.sec, cpoint, &nindex) ) + * CHKERR( PetscSectionGetConstraintIndices(self.sec, cpoint, &indices) ) # <<<<<<<<<<<<<< + * return array_i(nindex, indices) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetConstraintIndices(__pyx_v_self->sec, __pyx_v_cpoint, (&__pyx_v_indices))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 161, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":162 + * CHKERR( PetscSectionGetConstraintDof(self.sec, cpoint, &nindex) ) + * CHKERR( PetscSectionGetConstraintIndices(self.sec, cpoint, &indices) ) + * return array_i(nindex, indices) # <<<<<<<<<<<<<< + * + * def setConstraintIndices(self,point,indices): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nindex, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":156 + * CHKERR( PetscSectionAddFieldConstraintDof(self.sec,cpoint,cfield,cnumDof) ) + * + * def getConstraintIndices(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":164 + * return array_i(nindex, indices) + * + * def setConstraintIndices(self,point,indices): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_63setConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_62setConstraintIndices[] = "Section.setConstraintIndices(self, point, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_63setConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConstraintIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_indices,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setConstraintIndices", 1, 2, 2, 1); __PYX_ERR(44, 164, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintIndices") < 0)) __PYX_ERR(44, 164, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_indices = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConstraintIndices", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 164, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_62setConstraintIndices(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_62setConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_indices) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_nindex; + PetscInt *__pyx_v_cindices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConstraintIndices", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/Section.pyx":165 + * + * def setConstraintIndices(self,point,indices): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 165, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":166 + * def setConstraintIndices(self,point,indices): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) + */ + __pyx_v_nindex = 0; + + /* "petsc4py/PETSc/Section.pyx":167 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,nindex) ) + */ + __pyx_v_cindices = NULL; + + /* "petsc4py/PETSc/Section.pyx":168 + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,nindex) ) + * CHKERR( PetscSectionSetConstraintIndices(self.sec,cpoint,cindices) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nindex), (&__pyx_v_cindices))); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Section.pyx":169 + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,nindex) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetConstraintIndices(self.sec,cpoint,cindices) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_nindex)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 169, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":170 + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetConstraintDof(self.sec,cpoint,nindex) ) + * CHKERR( PetscSectionSetConstraintIndices(self.sec,cpoint,cindices) ) # <<<<<<<<<<<<<< + * + * def getFieldConstraintIndices(self,point,field): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetConstraintIndices(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cindices)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":164 + * return array_i(nindex, indices) + * + * def setConstraintIndices(self,point,indices): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt nindex = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.setConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":172 + * CHKERR( PetscSectionSetConstraintIndices(self.sec,cpoint,cindices) ) + * + * def getFieldConstraintIndices(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_65getFieldConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_64getFieldConstraintIndices[] = "Section.getFieldConstraintIndices(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_65getFieldConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldConstraintIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getFieldConstraintIndices", 1, 2, 2, 1); __PYX_ERR(44, 172, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldConstraintIndices") < 0)) __PYX_ERR(44, 172, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldConstraintIndices", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 172, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_64getFieldConstraintIndices(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_64getFieldConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_nindex; + PetscInt const *__pyx_v_indices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldConstraintIndices", 0); + + /* "petsc4py/PETSc/Section.pyx":173 + * + * def getFieldConstraintIndices(self,point,field): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 173, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":174 + * def getFieldConstraintIndices(self,point,field): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 174, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":175 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&nindex) ) + */ + __pyx_v_nindex = 0; + + /* "petsc4py/PETSc/Section.pyx":176 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&nindex) ) + * CHKERR( PetscSectionGetFieldConstraintIndices(self.sec,cpoint,cfield,&indices) ) + */ + __pyx_v_indices = NULL; + + /* "petsc4py/PETSc/Section.pyx":177 + * cdef PetscInt nindex = 0 + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&nindex) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldConstraintIndices(self.sec,cpoint,cfield,&indices) ) + * return array_i(nindex, indices) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_nindex))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":178 + * cdef const PetscInt *indices = NULL + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&nindex) ) + * CHKERR( PetscSectionGetFieldConstraintIndices(self.sec,cpoint,cfield,&indices) ) # <<<<<<<<<<<<<< + * return array_i(nindex, indices) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldConstraintIndices(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_indices))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 178, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":179 + * CHKERR( PetscSectionGetFieldConstraintDof(self.sec,cpoint,cfield,&nindex) ) + * CHKERR( PetscSectionGetFieldConstraintIndices(self.sec,cpoint,cfield,&indices) ) + * return array_i(nindex, indices) # <<<<<<<<<<<<<< + * + * def setFieldConstraintIndices(self,point,field,indices): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nindex, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":172 + * CHKERR( PetscSectionSetConstraintIndices(self.sec,cpoint,cindices) ) + * + * def getFieldConstraintIndices(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":181 + * return array_i(nindex, indices) + * + * def setFieldConstraintIndices(self,point,field,indices): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_67setFieldConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_66setFieldConstraintIndices[] = "Section.setFieldConstraintIndices(self, point, field, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_67setFieldConstraintIndices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldConstraintIndices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_indices,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldConstraintIndices", 1, 3, 3, 1); __PYX_ERR(44, 181, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldConstraintIndices", 1, 3, 3, 2); __PYX_ERR(44, 181, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldConstraintIndices") < 0)) __PYX_ERR(44, 181, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_indices = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldConstraintIndices", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 181, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_66setFieldConstraintIndices(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_66setFieldConstraintIndices(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_indices) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_nindex; + PetscInt *__pyx_v_cindices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldConstraintIndices", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/Section.pyx":182 + * + * def setFieldConstraintIndices(self,point,field,indices): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 182, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":183 + * def setFieldConstraintIndices(self,point,field,indices): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 183, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":184 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) + */ + __pyx_v_nindex = 0; + + /* "petsc4py/PETSc/Section.pyx":185 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL # <<<<<<<<<<<<<< + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,nindex) ) + */ + __pyx_v_cindices = NULL; + + /* "petsc4py/PETSc/Section.pyx":186 + * cdef PetscInt nindex = 0 + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,nindex) ) + * CHKERR( PetscSectionSetFieldConstraintIndices(self.sec,cpoint,cfield,cindices) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_indices, (&__pyx_v_nindex), (&__pyx_v_cindices))); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Section.pyx":187 + * cdef PetscInt *cindices = NULL + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,nindex) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldConstraintIndices(self.sec,cpoint,cfield,cindices) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldConstraintDof(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_nindex)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":188 + * indices = iarray_i(indices, &nindex, &cindices) + * CHKERR( PetscSectionSetFieldConstraintDof(self.sec,cpoint,cfield,nindex) ) + * CHKERR( PetscSectionSetFieldConstraintIndices(self.sec,cpoint,cfield,cindices) ) # <<<<<<<<<<<<<< + * + * def getMaxDof(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldConstraintIndices(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_cindices)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 188, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":181 + * return array_i(nindex, indices) + * + * def setFieldConstraintIndices(self,point,field,indices): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldConstraintIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":190 + * CHKERR( PetscSectionSetFieldConstraintIndices(self.sec,cpoint,cfield,cindices) ) + * + * def getMaxDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt maxDof = 0 + * CHKERR( PetscSectionGetMaxDof(self.sec,&maxDof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_69getMaxDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_68getMaxDof[] = "Section.getMaxDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_69getMaxDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_68getMaxDof(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_68getMaxDof(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_maxDof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxDof", 0); + + /* "petsc4py/PETSc/Section.pyx":191 + * + * def getMaxDof(self): + * cdef PetscInt maxDof = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetMaxDof(self.sec,&maxDof) ) + * return toInt(maxDof) + */ + __pyx_v_maxDof = 0; + + /* "petsc4py/PETSc/Section.pyx":192 + * def getMaxDof(self): + * cdef PetscInt maxDof = 0 + * CHKERR( PetscSectionGetMaxDof(self.sec,&maxDof) ) # <<<<<<<<<<<<<< + * return toInt(maxDof) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetMaxDof(__pyx_v_self->sec, (&__pyx_v_maxDof))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 192, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":193 + * cdef PetscInt maxDof = 0 + * CHKERR( PetscSectionGetMaxDof(self.sec,&maxDof) ) + * return toInt(maxDof) # <<<<<<<<<<<<<< + * + * def getStorageSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_maxDof); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":190 + * CHKERR( PetscSectionSetFieldConstraintIndices(self.sec,cpoint,cfield,cindices) ) + * + * def getMaxDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt maxDof = 0 + * CHKERR( PetscSectionGetMaxDof(self.sec,&maxDof) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getMaxDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":195 + * return toInt(maxDof) + * + * def getStorageSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetStorageSize(self.sec,&size) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_71getStorageSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_70getStorageSize[] = "Section.getStorageSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_71getStorageSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStorageSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStorageSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStorageSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_70getStorageSize(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_70getStorageSize(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStorageSize", 0); + + /* "petsc4py/PETSc/Section.pyx":196 + * + * def getStorageSize(self): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetStorageSize(self.sec,&size) ) + * return toInt(size) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/Section.pyx":197 + * def getStorageSize(self): + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetStorageSize(self.sec,&size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetStorageSize(__pyx_v_self->sec, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 197, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":198 + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetStorageSize(self.sec,&size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def getConstrainedStorageSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":195 + * return toInt(maxDof) + * + * def getStorageSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetStorageSize(self.sec,&size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getStorageSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":200 + * return toInt(size) + * + * def getConstrainedStorageSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetConstrainedStorageSize(self.sec,&size) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_73getConstrainedStorageSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_72getConstrainedStorageSize[] = "Section.getConstrainedStorageSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_73getConstrainedStorageSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConstrainedStorageSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConstrainedStorageSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConstrainedStorageSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_72getConstrainedStorageSize(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_72getConstrainedStorageSize(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConstrainedStorageSize", 0); + + /* "petsc4py/PETSc/Section.pyx":201 + * + * def getConstrainedStorageSize(self): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetConstrainedStorageSize(self.sec,&size) ) + * return toInt(size) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/Section.pyx":202 + * def getConstrainedStorageSize(self): + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetConstrainedStorageSize(self.sec,&size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetConstrainedStorageSize(__pyx_v_self->sec, (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 202, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":203 + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetConstrainedStorageSize(self.sec,&size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def getOffset(self,point): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":200 + * return toInt(size) + * + * def getConstrainedStorageSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( PetscSectionGetConstrainedStorageSize(self.sec,&size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getConstrainedStorageSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":205 + * return toInt(size) + * + * def getOffset(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), offset = 0 + * CHKERR( PetscSectionGetOffset(self.sec,cpoint,&offset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_75getOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_74getOffset[] = "Section.getOffset(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_75getOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOffset (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getOffset") < 0)) __PYX_ERR(44, 205, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getOffset", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 205, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_74getOffset(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_74getOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_offset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOffset", 0); + + /* "petsc4py/PETSc/Section.pyx":206 + * + * def getOffset(self,point): + * cdef PetscInt cpoint = asInt(point), offset = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetOffset(self.sec,cpoint,&offset) ) + * return toInt(offset) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 206, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_offset = 0; + + /* "petsc4py/PETSc/Section.pyx":207 + * def getOffset(self,point): + * cdef PetscInt cpoint = asInt(point), offset = 0 + * CHKERR( PetscSectionGetOffset(self.sec,cpoint,&offset) ) # <<<<<<<<<<<<<< + * return toInt(offset) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetOffset(__pyx_v_self->sec, __pyx_v_cpoint, (&__pyx_v_offset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 207, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":208 + * cdef PetscInt cpoint = asInt(point), offset = 0 + * CHKERR( PetscSectionGetOffset(self.sec,cpoint,&offset) ) + * return toInt(offset) # <<<<<<<<<<<<<< + * + * def setOffset(self,point,offset): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_offset); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":205 + * return toInt(size) + * + * def getOffset(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), offset = 0 + * CHKERR( PetscSectionGetOffset(self.sec,cpoint,&offset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":210 + * return toInt(offset) + * + * def setOffset(self,point,offset): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt coffset = asInt(offset) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_77setOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_76setOffset[] = "Section.setOffset(self, point, offset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_77setOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_offset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOffset (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_offset,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setOffset", 1, 2, 2, 1); __PYX_ERR(44, 210, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOffset") < 0)) __PYX_ERR(44, 210, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_offset = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOffset", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 210, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_76setOffset(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_offset); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_76setOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_offset) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_coffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOffset", 0); + + /* "petsc4py/PETSc/Section.pyx":211 + * + * def setOffset(self,point,offset): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt coffset = asInt(offset) + * CHKERR( PetscSectionSetOffset(self.sec,cpoint,coffset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 211, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":212 + * def setOffset(self,point,offset): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt coffset = asInt(offset) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetOffset(self.sec,cpoint,coffset) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_offset); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 212, __pyx_L1_error) + __pyx_v_coffset = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":213 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt coffset = asInt(offset) + * CHKERR( PetscSectionSetOffset(self.sec,cpoint,coffset) ) # <<<<<<<<<<<<<< + * + * def getFieldOffset(self,point,field): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetOffset(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_coffset)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":210 + * return toInt(offset) + * + * def setOffset(self,point,offset): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt coffset = asInt(offset) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":215 + * CHKERR( PetscSectionSetOffset(self.sec,cpoint,coffset) ) + * + * def getFieldOffset(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_79getFieldOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_78getFieldOffset[] = "Section.getFieldOffset(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_79getFieldOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldOffset (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getFieldOffset", 1, 2, 2, 1); __PYX_ERR(44, 215, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldOffset") < 0)) __PYX_ERR(44, 215, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldOffset", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 215, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_78getFieldOffset(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_78getFieldOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_offset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldOffset", 0); + + /* "petsc4py/PETSc/Section.pyx":216 + * + * def getFieldOffset(self,point,field): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt offset = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 216, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":217 + * def getFieldOffset(self,point,field): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt offset = 0 + * CHKERR( PetscSectionGetFieldOffset(self.sec,cpoint,cfield,&offset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 217, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":218 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt offset = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetFieldOffset(self.sec,cpoint,cfield,&offset) ) + * return toInt(offset) + */ + __pyx_v_offset = 0; + + /* "petsc4py/PETSc/Section.pyx":219 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt offset = 0 + * CHKERR( PetscSectionGetFieldOffset(self.sec,cpoint,cfield,&offset) ) # <<<<<<<<<<<<<< + * return toInt(offset) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetFieldOffset(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_offset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 219, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":220 + * cdef PetscInt offset = 0 + * CHKERR( PetscSectionGetFieldOffset(self.sec,cpoint,cfield,&offset) ) + * return toInt(offset) # <<<<<<<<<<<<<< + * + * def setFieldOffset(self,point,field,offset): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_offset); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":215 + * CHKERR( PetscSectionSetOffset(self.sec,cpoint,coffset) ) + * + * def getFieldOffset(self,point,field): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getFieldOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":222 + * return toInt(offset) + * + * def setFieldOffset(self,point,field,offset): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_81setFieldOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_80setFieldOffset[] = "Section.setFieldOffset(self, point, field, offset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_81setFieldOffset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_offset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldOffset (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,&__pyx_n_s_offset,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldOffset", 1, 3, 3, 1); __PYX_ERR(44, 222, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_offset)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldOffset", 1, 3, 3, 2); __PYX_ERR(44, 222, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldOffset") < 0)) __PYX_ERR(44, 222, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + __pyx_v_offset = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldOffset", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 222, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_80setFieldOffset(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_point, __pyx_v_field, __pyx_v_offset); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_80setFieldOffset(struct PyPetscSectionObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field, PyObject *__pyx_v_offset) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PetscInt __pyx_v_coffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldOffset", 0); + + /* "petsc4py/PETSc/Section.pyx":223 + * + * def setFieldOffset(self,point,field,offset): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt coffset = asInt(offset) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 223, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":224 + * def setFieldOffset(self,point,field,offset): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscInt coffset = asInt(offset) + * CHKERR( PetscSectionSetFieldOffset(self.sec,cpoint,cfield,coffset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 224, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":225 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt coffset = asInt(offset) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionSetFieldOffset(self.sec,cpoint,cfield,coffset) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_offset); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(44, 225, __pyx_L1_error) + __pyx_v_coffset = __pyx_t_1; + + /* "petsc4py/PETSc/Section.pyx":226 + * cdef PetscInt cfield = asInt(field) + * cdef PetscInt coffset = asInt(offset) + * CHKERR( PetscSectionSetFieldOffset(self.sec,cpoint,cfield,coffset) ) # <<<<<<<<<<<<<< + * + * def getOffsetRange(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionSetFieldOffset(__pyx_v_self->sec, __pyx_v_cpoint, __pyx_v_cfield, __pyx_v_coffset)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 226, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":222 + * return toInt(offset) + * + * def setFieldOffset(self,point,field,offset): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.setFieldOffset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":228 + * CHKERR( PetscSectionSetFieldOffset(self.sec,cpoint,cfield,coffset) ) + * + * def getOffsetRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt oStart = 0, oEnd = 0 + * CHKERR( PetscSectionGetOffsetRange(self.sec,&oStart,&oEnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_83getOffsetRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_82getOffsetRange[] = "Section.getOffsetRange(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_83getOffsetRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOffsetRange (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOffsetRange", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOffsetRange", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_82getOffsetRange(((struct PyPetscSectionObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_82getOffsetRange(struct PyPetscSectionObject *__pyx_v_self) { + PetscInt __pyx_v_oStart; + PetscInt __pyx_v_oEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOffsetRange", 0); + + /* "petsc4py/PETSc/Section.pyx":229 + * + * def getOffsetRange(self): + * cdef PetscInt oStart = 0, oEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSectionGetOffsetRange(self.sec,&oStart,&oEnd) ) + * return toInt(oStart),toInt(oEnd) + */ + __pyx_v_oStart = 0; + __pyx_v_oEnd = 0; + + /* "petsc4py/PETSc/Section.pyx":230 + * def getOffsetRange(self): + * cdef PetscInt oStart = 0, oEnd = 0 + * CHKERR( PetscSectionGetOffsetRange(self.sec,&oStart,&oEnd) ) # <<<<<<<<<<<<<< + * return toInt(oStart),toInt(oEnd) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionGetOffsetRange(__pyx_v_self->sec, (&__pyx_v_oStart), (&__pyx_v_oEnd))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 230, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":231 + * cdef PetscInt oStart = 0, oEnd = 0 + * CHKERR( PetscSectionGetOffsetRange(self.sec,&oStart,&oEnd) ) + * return toInt(oStart),toInt(oEnd) # <<<<<<<<<<<<<< + * + * def createGlobalSection(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_oStart); if (unlikely(!__pyx_t_2)) __PYX_ERR(44, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_oEnd); if (unlikely(!__pyx_t_3)) __PYX_ERR(44, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(44, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":228 + * CHKERR( PetscSectionSetFieldOffset(self.sec,cpoint,cfield,coffset) ) + * + * def getOffsetRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt oStart = 0, oEnd = 0 + * CHKERR( PetscSectionGetOffsetRange(self.sec,&oStart,&oEnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Section.getOffsetRange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Section.pyx":233 + * return toInt(oStart),toInt(oEnd) + * + * def createGlobalSection(self, SF sf): # <<<<<<<<<<<<<< + * cdef Section gsec = Section() + * CHKERR( PetscSectionCreateGlobalSection(self.sec,sf.sf,PETSC_FALSE,PETSC_FALSE,&gsec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_85createGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7Section_84createGlobalSection[] = "Section.createGlobalSection(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7Section_85createGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGlobalSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGlobalSection") < 0)) __PYX_ERR(44, 233, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGlobalSection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(44, 233, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Section.createGlobalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(44, 233, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7Section_84createGlobalSection(((struct PyPetscSectionObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7Section_84createGlobalSection(struct PyPetscSectionObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + struct PyPetscSectionObject *__pyx_v_gsec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGlobalSection", 0); + + /* "petsc4py/PETSc/Section.pyx":234 + * + * def createGlobalSection(self, SF sf): + * cdef Section gsec = Section() # <<<<<<<<<<<<<< + * CHKERR( PetscSectionCreateGlobalSection(self.sec,sf.sf,PETSC_FALSE,PETSC_FALSE,&gsec.sec) ) + * return gsec + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(44, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gsec = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Section.pyx":235 + * def createGlobalSection(self, SF sf): + * cdef Section gsec = Section() + * CHKERR( PetscSectionCreateGlobalSection(self.sec,sf.sf,PETSC_FALSE,PETSC_FALSE,&gsec.sec) ) # <<<<<<<<<<<<<< + * return gsec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionCreateGlobalSection(__pyx_v_self->sec, __pyx_v_sf->sf, PETSC_FALSE, PETSC_FALSE, (&__pyx_v_gsec->sec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(44, 235, __pyx_L1_error) + + /* "petsc4py/PETSc/Section.pyx":236 + * cdef Section gsec = Section() + * CHKERR( PetscSectionCreateGlobalSection(self.sec,sf.sf,PETSC_FALSE,PETSC_FALSE,&gsec.sec) ) + * return gsec # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_gsec)); + __pyx_r = ((PyObject *)__pyx_v_gsec); + goto __pyx_L0; + + /* "petsc4py/PETSc/Section.pyx":233 + * return toInt(oStart),toInt(oEnd) + * + * def createGlobalSection(self, SF sf): # <<<<<<<<<<<<<< + * cdef Section gsec = Section() + * CHKERR( PetscSectionCreateGlobalSection(self.sec,sf.sf,PETSC_FALSE,PETSC_FALSE,&gsec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Section.createGlobalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_gsec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":220 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.mat + * self.mat = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat___cinit__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Mat___cinit__(struct PyPetscMatObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Mat.pyx":221 + * + * def __cinit__(self): + * self.obj = &self.mat # <<<<<<<<<<<<<< + * self.mat = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->mat)); + + /* "petsc4py/PETSc/Mat.pyx":222 + * def __cinit__(self): + * self.obj = &self.mat + * self.mat = NULL # <<<<<<<<<<<<<< + * + * # unary operations + */ + __pyx_v_self->mat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":220 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.mat + * self.mat = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":226 + * # unary operations + * + * def __pos__(self): # <<<<<<<<<<<<<< + * return mat_pos(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_3__pos__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_3__pos__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pos__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_2__pos__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_2__pos__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pos__", 0); + + /* "petsc4py/PETSc/Mat.pyx":227 + * + * def __pos__(self): + * return mat_pos(self) # <<<<<<<<<<<<<< + * + * def __neg__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_pos(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":226 + * # unary operations + * + * def __pos__(self): # <<<<<<<<<<<<<< + * return mat_pos(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__pos__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":229 + * return mat_pos(self) + * + * def __neg__(self): # <<<<<<<<<<<<<< + * return mat_neg(self) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_5__neg__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_5__neg__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__neg__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_4__neg__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_4__neg__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__neg__", 0); + + /* "petsc4py/PETSc/Mat.pyx":230 + * + * def __neg__(self): + * return mat_neg(self) # <<<<<<<<<<<<<< + * + * # inplace binary operations + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_neg(__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":229 + * return mat_pos(self) + * + * def __neg__(self): # <<<<<<<<<<<<<< + * return mat_neg(self) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__neg__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":234 + * # inplace binary operations + * + * def __iadd__(self, other): # <<<<<<<<<<<<<< + * return mat_iadd(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_7__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_7__iadd__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__iadd__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_6__iadd__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_6__iadd__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__iadd__", 0); + + /* "petsc4py/PETSc/Mat.pyx":235 + * + * def __iadd__(self, other): + * return mat_iadd(self, other) # <<<<<<<<<<<<<< + * + * def __isub__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_iadd(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":234 + * # inplace binary operations + * + * def __iadd__(self, other): # <<<<<<<<<<<<<< + * return mat_iadd(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__iadd__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":237 + * return mat_iadd(self, other) + * + * def __isub__(self, other): # <<<<<<<<<<<<<< + * return mat_isub(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9__isub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__isub__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_8__isub__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_8__isub__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__isub__", 0); + + /* "petsc4py/PETSc/Mat.pyx":238 + * + * def __isub__(self, other): + * return mat_isub(self, other) # <<<<<<<<<<<<<< + * + * def __imul__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_isub(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":237 + * return mat_iadd(self, other) + * + * def __isub__(self, other): # <<<<<<<<<<<<<< + * return mat_isub(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__isub__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":240 + * return mat_isub(self, other) + * + * def __imul__(self, other): # <<<<<<<<<<<<<< + * return mat_imul(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11__imul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__imul__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_10__imul__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10__imul__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__imul__", 0); + + /* "petsc4py/PETSc/Mat.pyx":241 + * + * def __imul__(self, other): + * return mat_imul(self, other) # <<<<<<<<<<<<<< + * + * def __idiv__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_imul(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":240 + * return mat_isub(self, other) + * + * def __imul__(self, other): # <<<<<<<<<<<<<< + * return mat_imul(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__imul__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":243 + * return mat_imul(self, other) + * + * def __idiv__(self, other): # <<<<<<<<<<<<<< + * return mat_idiv(self, other) + * + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_13__idiv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_13__idiv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__idiv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_12__idiv__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_12__idiv__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__idiv__", 0); + + /* "petsc4py/PETSc/Mat.pyx":244 + * + * def __idiv__(self, other): + * return mat_idiv(self, other) # <<<<<<<<<<<<<< + * + * def __itruediv__(self, other): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_idiv(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":243 + * return mat_imul(self, other) + * + * def __idiv__(self, other): # <<<<<<<<<<<<<< + * return mat_idiv(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__idiv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +/* "petsc4py/PETSc/Mat.pyx":246 + * return mat_idiv(self, other) + * + * def __itruediv__(self, other): # <<<<<<<<<<<<<< + * return mat_idiv(self, other) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_15__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_15__itruediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__itruediv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_14__itruediv__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_14__itruediv__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__itruediv__", 0); + + /* "petsc4py/PETSc/Mat.pyx":247 + * + * def __itruediv__(self, other): + * return mat_idiv(self, other) # <<<<<<<<<<<<<< + * + * # binary operations + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_idiv(__pyx_v_self, __pyx_v_other)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":246 + * return mat_idiv(self, other) + * + * def __itruediv__(self, other): # <<<<<<<<<<<<<< + * return mat_idiv(self, other) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__itruediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":251 + * # binary operations + * + * def __add__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_add(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_17__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_17__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__add__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_16__add__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_16__add__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__add__", 0); + + /* "petsc4py/PETSc/Mat.pyx":252 + * + * def __add__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_add(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":253 + * def __add__(self, other): + * if isinstance(self, Mat): + * return mat_add(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_radd(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 253, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_add(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":252 + * + * def __add__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_add(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":255 + * return mat_add(self, other) + * else: + * return mat_radd(other, self) # <<<<<<<<<<<<<< + * + * def __sub__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 255, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_radd(((struct PyPetscMatObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":251 + * # binary operations + * + * def __add__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_add(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__add__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":257 + * return mat_radd(other, self) + * + * def __sub__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_sub(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_19__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_19__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__sub__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_18__sub__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_18__sub__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__sub__", 0); + + /* "petsc4py/PETSc/Mat.pyx":258 + * + * def __sub__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_sub(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":259 + * def __sub__(self, other): + * if isinstance(self, Mat): + * return mat_sub(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_rsub(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 259, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_sub(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":258 + * + * def __sub__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_sub(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":261 + * return mat_sub(self, other) + * else: + * return mat_rsub(other, self) # <<<<<<<<<<<<<< + * + * def __mul__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 261, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_rsub(((struct PyPetscMatObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":257 + * return mat_radd(other, self) + * + * def __sub__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_sub(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__sub__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":263 + * return mat_rsub(other, self) + * + * def __mul__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * if isinstance(other, Vec): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_21__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_21__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__mul__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_20__mul__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_20__mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__mul__", 0); + + /* "petsc4py/PETSc/Mat.pyx":264 + * + * def __mul__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * if isinstance(other, Vec): + * return mat_mul_vec(self, other) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":265 + * def __mul__(self, other): + * if isinstance(self, Mat): + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * return mat_mul_vec(self, other) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":266 + * if isinstance(self, Mat): + * if isinstance(other, Vec): + * return mat_mul_vec(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_mul(self, other) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 266, __pyx_L1_error) + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(45, 266, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_mul_vec(((struct PyPetscMatObject *)__pyx_v_self), ((struct PyPetscVecObject *)__pyx_v_other))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":265 + * def __mul__(self, other): + * if isinstance(self, Mat): + * if isinstance(other, Vec): # <<<<<<<<<<<<<< + * return mat_mul_vec(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":268 + * return mat_mul_vec(self, other) + * else: + * return mat_mul(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_rmul(other, self) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 268, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_mul(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":264 + * + * def __mul__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * if isinstance(other, Vec): + * return mat_mul_vec(self, other) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":270 + * return mat_mul(self, other) + * else: + * return mat_rmul(other, self) # <<<<<<<<<<<<<< + * + * def __div__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 270, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_rmul(((struct PyPetscMatObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":263 + * return mat_rsub(other, self) + * + * def __mul__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * if isinstance(other, Vec): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__mul__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":272 + * return mat_rmul(other, self) + * + * def __div__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_div(self, other) + */ + +/* Python wrapper */ +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_23__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_23__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__div__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_22__div__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_22__div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__div__", 0); + + /* "petsc4py/PETSc/Mat.pyx":273 + * + * def __div__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_div(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":274 + * def __div__(self, other): + * if isinstance(self, Mat): + * return mat_div(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_rdiv(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 274, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_div(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":273 + * + * def __div__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_div(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":276 + * return mat_div(self, other) + * else: + * return mat_rdiv(other, self) # <<<<<<<<<<<<<< + * + * def __truediv__(self, other): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 276, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_rdiv(((struct PyPetscMatObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":272 + * return mat_rmul(other, self) + * + * def __div__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_div(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__div__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} +#endif /*!(#if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000))*/ + +/* "petsc4py/PETSc/Mat.pyx":278 + * return mat_rdiv(other, self) + * + * def __truediv__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_div(self, other) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_25__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_25__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__truediv__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_24__truediv__(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_other)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_24__truediv__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__truediv__", 0); + + /* "petsc4py/PETSc/Mat.pyx":279 + * + * def __truediv__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_div(self, other) + * else: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":280 + * def __truediv__(self, other): + * if isinstance(self, Mat): + * return mat_div(self, other) # <<<<<<<<<<<<<< + * else: + * return mat_rdiv(other, self) + */ + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_self) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_self, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 280, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_div(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_other)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":279 + * + * def __truediv__(self, other): + * if isinstance(self, Mat): # <<<<<<<<<<<<<< + * return mat_div(self, other) + * else: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":282 + * return mat_div(self, other) + * else: + * return mat_rdiv(other, self) # <<<<<<<<<<<<<< + * + * # + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + if (!(likely(((__pyx_v_other) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_other, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 282, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_mat_rdiv(((struct PyPetscMatObject *)__pyx_v_other), __pyx_v_self)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":278 + * return mat_rdiv(other, self) + * + * def __truediv__(self, other): # <<<<<<<<<<<<<< + * if isinstance(self, Mat): + * return mat_div(self, other) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__truediv__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":286 + * # + * + * def __getitem__(self, ij): # <<<<<<<<<<<<<< + * return mat_getitem(self, ij) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_27__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_ij); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_27__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_ij) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_26__getitem__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_ij)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_26__getitem__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "petsc4py/PETSc/Mat.pyx":287 + * + * def __getitem__(self, ij): + * return mat_getitem(self, ij) # <<<<<<<<<<<<<< + * + * def __setitem__(self, ij, v): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mat_getitem(__pyx_v_self, __pyx_v_ij); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":286 + * # + * + * def __getitem__(self, ij): # <<<<<<<<<<<<<< + * return mat_getitem(self, ij) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":289 + * return mat_getitem(self, ij) + * + * def __setitem__(self, ij, v): # <<<<<<<<<<<<<< + * mat_setitem(self, ij, v) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_29__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_ij, PyObject *__pyx_v_v); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_29__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_ij, PyObject *__pyx_v_v) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_28__setitem__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_ij), ((PyObject *)__pyx_v_v)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Mat_28__setitem__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ij, PyObject *__pyx_v_v) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "petsc4py/PETSc/Mat.pyx":290 + * + * def __setitem__(self, ij, v): + * mat_setitem(self, ij, v) # <<<<<<<<<<<<<< + * + * def __call__(self, x, y=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mat_setitem(__pyx_v_self, __pyx_v_ij, __pyx_v_v); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 290, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":289 + * return mat_getitem(self, ij) + * + * def __setitem__(self, ij, v): # <<<<<<<<<<<<<< + * mat_setitem(self, ij, v) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":292 + * mat_setitem(self, ij, v) + * + * def __call__(self, x, y=None): # <<<<<<<<<<<<<< + * if y is None: + * y = self.createVecLeft() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_31__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_31__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(45, 292, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = values[0]; + __pyx_v_y = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 292, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_30__call__(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_30__call__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_y); + + /* "petsc4py/PETSc/Mat.pyx":293 + * + * def __call__(self, x, y=None): + * if y is None: # <<<<<<<<<<<<<< + * y = self.createVecLeft() + * self.mult(x, y) + */ + __pyx_t_1 = (__pyx_v_y == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":294 + * def __call__(self, x, y=None): + * if y is None: + * y = self.createVecLeft() # <<<<<<<<<<<<<< + * self.mult(x, y) + * return y + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_createVecLeft); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":293 + * + * def __call__(self, x, y=None): + * if y is None: # <<<<<<<<<<<<<< + * y = self.createVecLeft() + * self.mult(x, y) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":295 + * if y is None: + * y = self.createVecLeft() + * self.mult(x, y) # <<<<<<<<<<<<<< + * return y + * # + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_mult); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_6 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_6 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_x, __pyx_v_y}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 295, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_x, __pyx_v_y}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 295, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_v_x); + __Pyx_GIVEREF(__pyx_v_x); + PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_x); + __Pyx_INCREF(__pyx_v_y); + __Pyx_GIVEREF(__pyx_v_y); + PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_y); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":296 + * y = self.createVecLeft() + * self.mult(x, y) + * return y # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_y); + __pyx_r = __pyx_v_y; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":292 + * mat_setitem(self, ij, v) + * + * def __call__(self, x, y=None): # <<<<<<<<<<<<<< + * if y is None: + * y = self.createVecLeft() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_y); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":299 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_33view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_32view[] = "Mat.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_33view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(45, 299, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 299, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(45, 299, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_32view(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_32view(struct PyPetscMatObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Mat.pyx":300 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatView(self.mat, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Mat.pyx":301 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( MatView(self.mat, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":302 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatView(self.mat, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatView(__pyx_v_self->mat, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 302, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":299 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":304 + * CHKERR( MatView(self.mat, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatDestroy(&self.mat) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_35destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_34destroy[] = "Mat.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_35destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_34destroy(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_34destroy(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Mat.pyx":305 + * + * def destroy(self): + * CHKERR( MatDestroy(&self.mat) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDestroy((&__pyx_v_self->mat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 305, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":306 + * def destroy(self): + * CHKERR( MatDestroy(&self.mat) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":304 + * CHKERR( MatView(self.mat, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatDestroy(&self.mat) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":308 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_37create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_36create[] = "Mat.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_37create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(45, 308, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 308, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_36create(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_36create(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Mat.pyx":309 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreate(ccomm, &newmat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 309, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":310 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":311 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL + * CHKERR( MatCreate(ccomm, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreate(__pyx_v_ccomm, (&__pyx_v_newmat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 311, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":312 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":313 + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def setType(self, mat_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":308 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":315 + * return self + * + * def setType(self, mat_type): # <<<<<<<<<<<<<< + * cdef PetscMatType cval = NULL + * mat_type = str2bytes(mat_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_39setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_38setType[] = "Mat.setType(self, mat_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_39setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mat_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(45, 315, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 315, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_38setType(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_38setType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mat_type) { + MatType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_mat_type); + + /* "petsc4py/PETSc/Mat.pyx":316 + * + * def setType(self, mat_type): + * cdef PetscMatType cval = NULL # <<<<<<<<<<<<<< + * mat_type = str2bytes(mat_type, &cval) + * CHKERR( MatSetType(self.mat, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":317 + * def setType(self, mat_type): + * cdef PetscMatType cval = NULL + * mat_type = str2bytes(mat_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatSetType(self.mat, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mat_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_mat_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":318 + * cdef PetscMatType cval = NULL + * mat_type = str2bytes(mat_type, &cval) + * CHKERR( MatSetType(self.mat, cval) ) # <<<<<<<<<<<<<< + * + * def setSizes(self, size, bsize=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetType(__pyx_v_self->mat, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 318, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":315 + * return self + * + * def setType(self, mat_type): # <<<<<<<<<<<<<< + * cdef PetscMatType cval = NULL + * mat_type = str2bytes(mat_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mat_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":320 + * CHKERR( MatSetType(self.mat, cval) ) + * + * def setSizes(self, size, bsize=None): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_41setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_40setSizes[] = "Mat.setSizes(self, size, bsize=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_41setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSizes") < 0)) __PYX_ERR(45, 320, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSizes", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 320, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_40setSizes(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_40setSizes(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSizes", 0); + + /* "petsc4py/PETSc/Mat.pyx":321 + * + * def setSizes(self, size, bsize=None): + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":322 + * def setSizes(self, size, bsize=None): + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * if rbs != PETSC_DECIDE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 322, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":323 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) # <<<<<<<<<<<<<< + * if rbs != PETSC_DECIDE: + * if cbs != PETSC_DECIDE: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetSizes(__pyx_v_self->mat, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 323, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":324 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * if rbs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * if cbs != PETSC_DECIDE: + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + */ + __pyx_t_2 = ((__pyx_v_rbs != PETSC_DECIDE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":325 + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * if rbs != PETSC_DECIDE: + * if cbs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * else: + */ + __pyx_t_2 = ((__pyx_v_cbs != PETSC_DECIDE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":326 + * if rbs != PETSC_DECIDE: + * if cbs != PETSC_DECIDE: + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatSetBlockSize(self.mat, rbs) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSizes(__pyx_v_self->mat, __pyx_v_rbs, __pyx_v_cbs)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 326, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":325 + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * if rbs != PETSC_DECIDE: + * if cbs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":328 + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * else: + * CHKERR( MatSetBlockSize(self.mat, rbs) ) # <<<<<<<<<<<<<< + * + * def setBlockSize(self, bsize): + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSize(__pyx_v_self->mat, __pyx_v_rbs)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 328, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Mat.pyx":324 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * if rbs != PETSC_DECIDE: # <<<<<<<<<<<<<< + * if cbs != PETSC_DECIDE: + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":320 + * CHKERR( MatSetType(self.mat, cval) ) + * + * def setSizes(self, size, bsize=None): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":330 + * CHKERR( MatSetBlockSize(self.mat, rbs) ) + * + * def setBlockSize(self, bsize): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( MatSetBlockSize(self.mat, bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_43setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_42setBlockSize[] = "Mat.setBlockSize(self, bsize)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_43setBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bsize = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBlockSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bsize,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBlockSize") < 0)) __PYX_ERR(45, 330, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bsize = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBlockSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 330, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_42setBlockSize(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_bsize); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_42setBlockSize(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_bsize) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBlockSize", 0); + + /* "petsc4py/PETSc/Mat.pyx":331 + * + * def setBlockSize(self, bsize): + * cdef PetscInt bs = asInt(bsize) # <<<<<<<<<<<<<< + * CHKERR( MatSetBlockSize(self.mat, bs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 331, __pyx_L1_error) + __pyx_v_bs = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":332 + * def setBlockSize(self, bsize): + * cdef PetscInt bs = asInt(bsize) + * CHKERR( MatSetBlockSize(self.mat, bs) ) # <<<<<<<<<<<<<< + * + * def setBlockSizes(self, row_bsize, col_bsize): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSize(__pyx_v_self->mat, __pyx_v_bs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 332, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":330 + * CHKERR( MatSetBlockSize(self.mat, rbs) ) + * + * def setBlockSize(self, bsize): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( MatSetBlockSize(self.mat, bs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":334 + * CHKERR( MatSetBlockSize(self.mat, bs) ) + * + * def setBlockSizes(self, row_bsize, col_bsize): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = asInt(row_bsize) + * cdef PetscInt cbs = asInt(col_bsize) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_45setBlockSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_44setBlockSizes[] = "Mat.setBlockSizes(self, row_bsize, col_bsize)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_45setBlockSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row_bsize = 0; + PyObject *__pyx_v_col_bsize = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBlockSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row_bsize,&__pyx_n_s_col_bsize,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col_bsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setBlockSizes", 1, 2, 2, 1); __PYX_ERR(45, 334, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBlockSizes") < 0)) __PYX_ERR(45, 334, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_row_bsize = values[0]; + __pyx_v_col_bsize = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBlockSizes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 334, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setBlockSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_44setBlockSizes(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row_bsize, __pyx_v_col_bsize); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_44setBlockSizes(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row_bsize, PyObject *__pyx_v_col_bsize) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBlockSizes", 0); + + /* "petsc4py/PETSc/Mat.pyx":335 + * + * def setBlockSizes(self, row_bsize, col_bsize): + * cdef PetscInt rbs = asInt(row_bsize) # <<<<<<<<<<<<<< + * cdef PetscInt cbs = asInt(col_bsize) + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_row_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 335, __pyx_L1_error) + __pyx_v_rbs = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":336 + * def setBlockSizes(self, row_bsize, col_bsize): + * cdef PetscInt rbs = asInt(row_bsize) + * cdef PetscInt cbs = asInt(col_bsize) # <<<<<<<<<<<<<< + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_col_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 336, __pyx_L1_error) + __pyx_v_cbs = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":337 + * cdef PetscInt rbs = asInt(row_bsize) + * cdef PetscInt cbs = asInt(col_bsize) + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) # <<<<<<<<<<<<<< + * + * def setVecType(self, vec_type): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSizes(__pyx_v_self->mat, __pyx_v_rbs, __pyx_v_cbs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 337, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":334 + * CHKERR( MatSetBlockSize(self.mat, bs) ) + * + * def setBlockSizes(self, row_bsize, col_bsize): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = asInt(row_bsize) + * cdef PetscInt cbs = asInt(col_bsize) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setBlockSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":339 + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * + * def setVecType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_47setVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_46setVecType[] = "Mat.setVecType(self, vec_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_47setVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vec_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVecType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVecType") < 0)) __PYX_ERR(45, 339, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVecType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 339, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setVecType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_46setVecType(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_vec_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_46setVecType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_vec_type) { + VecType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVecType", 0); + __Pyx_INCREF(__pyx_v_vec_type); + + /* "petsc4py/PETSc/Mat.pyx":340 + * + * def setVecType(self, vec_type): + * cdef PetscVecType cval = NULL # <<<<<<<<<<<<<< + * vec_type = str2bytes(vec_type, &cval) + * CHKERR( MatSetVecType(self.mat, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":341 + * def setVecType(self, vec_type): + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatSetVecType(self.mat, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_vec_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_vec_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":342 + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + * CHKERR( MatSetVecType(self.mat, cval) ) # <<<<<<<<<<<<<< + * + * def getVecType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetVecType(__pyx_v_self->mat, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 342, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":339 + * CHKERR( MatSetBlockSizes(self.mat, rbs, cbs) ) + * + * def setVecType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * vec_type = str2bytes(vec_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setVecType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vec_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":344 + * CHKERR( MatSetVecType(self.mat, cval) ) + * + * def getVecType(self): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * CHKERR( MatGetVecType(self.mat, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_49getVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_48getVecType[] = "Mat.getVecType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_49getVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVecType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVecType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVecType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_48getVecType(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_48getVecType(struct PyPetscMatObject *__pyx_v_self) { + VecType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVecType", 0); + + /* "petsc4py/PETSc/Mat.pyx":345 + * + * def getVecType(self): + * cdef PetscVecType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetVecType(self.mat, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":346 + * def getVecType(self): + * cdef PetscVecType cval = NULL + * CHKERR( MatGetVecType(self.mat, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetVecType(__pyx_v_self->mat, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 346, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":347 + * cdef PetscVecType cval = NULL + * CHKERR( MatGetVecType(self.mat, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":344 + * CHKERR( MatSetVecType(self.mat, cval) ) + * + * def getVecType(self): # <<<<<<<<<<<<<< + * cdef PetscVecType cval = NULL + * CHKERR( MatGetVecType(self.mat, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getVecType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":351 + * # + * + * def createAIJ(self, size, bsize=None, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_51createAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_50createAIJ[] = "Mat.createAIJ(self, size, bsize=None, nnz=None, csr=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_51createAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_nnz = 0; + PyObject *__pyx_v_csr = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createAIJ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_nnz,&__pyx_n_s_csr,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createAIJ") < 0)) __PYX_ERR(45, 351, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_nnz = values[2]; + __pyx_v_csr = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createAIJ", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 351, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_50createAIJ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_nnz, __pyx_v_csr, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_50createAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createAIJ", 0); + + /* "petsc4py/PETSc/Mat.pyx":353 + * def createAIJ(self, size, bsize=None, nnz=None, csr=None, comm=None): + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * Mat_Create(MATAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":354 + * # create matrix + * cdef PetscMat newmat = NULL + * Mat_Create(MATAIJ, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATAIJ, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 354, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":355 + * cdef PetscMat newmat = NULL + * Mat_Create(MATAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":357 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(__pyx_v_self->mat, __pyx_v_nnz, __pyx_v_csr); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 357, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":358 + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + * return self # <<<<<<<<<<<<<< + * + * def createBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":351 + * # + * + * def createAIJ(self, size, bsize=None, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":360 + * return self + * + * def createBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_53createBAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_52createBAIJ[] = "Mat.createBAIJ(self, size, bsize, nnz=None, csr=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_53createBAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_nnz = 0; + PyObject *__pyx_v_csr = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBAIJ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_nnz,&__pyx_n_s_csr,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createBAIJ", 0, 2, 5, 1); __PYX_ERR(45, 360, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBAIJ") < 0)) __PYX_ERR(45, 360, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_nnz = values[2]; + __pyx_v_csr = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBAIJ", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 360, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createBAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_52createBAIJ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_nnz, __pyx_v_csr, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_52createBAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBAIJ", 0); + + /* "petsc4py/PETSc/Mat.pyx":362 + * def createBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * Mat_Create(MATBAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":363 + * # create matrix + * cdef PetscMat newmat = NULL + * Mat_Create(MATBAIJ, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATBAIJ, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 363, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":364 + * cdef PetscMat newmat = NULL + * Mat_Create(MATBAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":366 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(__pyx_v_self->mat, __pyx_v_nnz, __pyx_v_csr); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 366, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":367 + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + * return self # <<<<<<<<<<<<<< + * + * def createSBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":360 + * return self + * + * def createBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createBAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":369 + * return self + * + * def createSBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_55createSBAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_54createSBAIJ[] = "Mat.createSBAIJ(self, size, bsize, nnz=None, csr=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_55createSBAIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_nnz = 0; + PyObject *__pyx_v_csr = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSBAIJ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_nnz,&__pyx_n_s_csr,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSBAIJ", 0, 2, 5, 1); __PYX_ERR(45, 369, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSBAIJ") < 0)) __PYX_ERR(45, 369, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_nnz = values[2]; + __pyx_v_csr = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSBAIJ", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 369, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSBAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_54createSBAIJ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_nnz, __pyx_v_csr, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_54createSBAIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSBAIJ", 0); + + /* "petsc4py/PETSc/Mat.pyx":371 + * def createSBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * Mat_Create(MATSBAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":372 + * # create matrix + * cdef PetscMat newmat = NULL + * Mat_Create(MATSBAIJ, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATSBAIJ, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 372, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":373 + * cdef PetscMat newmat = NULL + * Mat_Create(MATSBAIJ, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":375 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(__pyx_v_self->mat, __pyx_v_nnz, __pyx_v_csr); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":376 + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + * return self # <<<<<<<<<<<<<< + * + * def createAIJCRL(self, size, bsize=None, nnz=None, csr=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":369 + * return self + * + * def createSBAIJ(self, size, bsize, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSBAIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":378 + * return self + * + * def createAIJCRL(self, size, bsize=None, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_57createAIJCRL(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_56createAIJCRL[] = "Mat.createAIJCRL(self, size, bsize=None, nnz=None, csr=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_57createAIJCRL(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_nnz = 0; + PyObject *__pyx_v_csr = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createAIJCRL (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_nnz,&__pyx_n_s_csr,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createAIJCRL") < 0)) __PYX_ERR(45, 378, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_nnz = values[2]; + __pyx_v_csr = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createAIJCRL", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 378, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJCRL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_56createAIJCRL(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_nnz, __pyx_v_csr, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_56createAIJCRL(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_nnz, PyObject *__pyx_v_csr, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createAIJCRL", 0); + + /* "petsc4py/PETSc/Mat.pyx":380 + * def createAIJCRL(self, size, bsize=None, nnz=None, csr=None, comm=None): + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * Mat_Create(MATAIJCRL, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":381 + * # create matrix + * cdef PetscMat newmat = NULL + * Mat_Create(MATAIJCRL, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATAIJCRL, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 381, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":382 + * cdef PetscMat newmat = NULL + * Mat_Create(MATAIJCRL, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":384 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ(__pyx_v_self->mat, __pyx_v_nnz, __pyx_v_csr); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 384, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":385 + * # preallocate matrix + * Mat_AllocAIJ(self.mat, nnz, csr) + * return self # <<<<<<<<<<<<<< + * + * def setPreallocationNNZ(self, nnz): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":378 + * return self + * + * def createAIJCRL(self, size, bsize=None, nnz=None, csr=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJCRL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":387 + * return self + * + * def setPreallocationNNZ(self, nnz): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_59setPreallocationNNZ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_58setPreallocationNNZ[] = "Mat.setPreallocationNNZ(self, nnz)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_59setPreallocationNNZ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nnz = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPreallocationNNZ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nnz,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPreallocationNNZ") < 0)) __PYX_ERR(45, 387, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nnz = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPreallocationNNZ", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 387, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationNNZ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_58setPreallocationNNZ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nnz); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_58setPreallocationNNZ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nnz) { + PetscBool __pyx_v_done; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPreallocationNNZ", 0); + + /* "petsc4py/PETSc/Mat.pyx":388 + * + * def setPreallocationNNZ(self, nnz): + * cdef PetscBool done = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + */ + __pyx_v_done = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":389 + * def setPreallocationNNZ(self, nnz): + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) # <<<<<<<<<<<<<< + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_NNZ(self.mat, nnz) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsPreallocated(__pyx_v_self->mat, (&__pyx_v_done))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 389, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":391 + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_NNZ(self.mat, nnz) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_NNZ(__pyx_v_self->mat, __pyx_v_nnz); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 391, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":392 + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_NNZ(self.mat, nnz) + * return self # <<<<<<<<<<<<<< + * + * def setPreallocationCSR(self, csr): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":387 + * return self + * + * def setPreallocationNNZ(self, nnz): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationNNZ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":394 + * return self + * + * def setPreallocationCSR(self, csr): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_61setPreallocationCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_60setPreallocationCSR[] = "Mat.setPreallocationCSR(self, csr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_61setPreallocationCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_csr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPreallocationCSR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_csr,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPreallocationCSR") < 0)) __PYX_ERR(45, 394, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_csr = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPreallocationCSR", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 394, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_60setPreallocationCSR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_csr); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_60setPreallocationCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_csr) { + PetscBool __pyx_v_done; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPreallocationCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":395 + * + * def setPreallocationCSR(self, csr): + * cdef PetscBool done = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + */ + __pyx_v_done = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":396 + * def setPreallocationCSR(self, csr): + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) # <<<<<<<<<<<<<< + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_CSR(self.mat, csr) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsPreallocated(__pyx_v_self->mat, (&__pyx_v_done))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 396, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":398 + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_CSR(self.mat, csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_AllocAIJ_CSR(__pyx_v_self->mat, __pyx_v_csr); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 398, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":399 + * # if done: raise Error(PETSC_ERR_ORDER) + * Mat_AllocAIJ_CSR(self.mat, csr) + * return self # <<<<<<<<<<<<<< + * + * def createAIJWithArrays(self, size, csr, bsize=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":394 + * return self + * + * def setPreallocationCSR(self, csr): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":401 + * return self + * + * def createAIJWithArrays(self, size, csr, bsize=None, comm=None): # <<<<<<<<<<<<<< + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_63createAIJWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_62createAIJWithArrays[] = "Mat.createAIJWithArrays(self, size, csr, bsize=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_63createAIJWithArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_csr = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createAIJWithArrays (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_csr,&__pyx_n_s_bsize,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_csr)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createAIJWithArrays", 0, 2, 4, 1); __PYX_ERR(45, 401, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createAIJWithArrays") < 0)) __PYX_ERR(45, 401, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_csr = values[1]; + __pyx_v_bsize = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createAIJWithArrays", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 401, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_62createAIJWithArrays(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_csr, __pyx_v_bsize, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_62createAIJWithArrays(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_csr, PyObject *__pyx_v_bsize, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_v_pi = 0; + PyObject *__pyx_v_pj = 0; + PyObject *__pyx_v_pv = 0; + PyObject *__pyx_v_poi = 0; + PyObject *__pyx_v_poj = 0; + PyObject *__pyx_v_pov = 0; + PetscInt __pyx_v_ni; + PetscInt __pyx_v_noi; + PetscInt *__pyx_v_i; + PetscInt *__pyx_v_oi; + PetscInt __pyx_v_nj; + PetscInt __pyx_v_noj; + PetscInt *__pyx_v_j; + PetscInt *__pyx_v_oj; + PetscInt __pyx_v_nv; + PetscInt __pyx_v_nov; + PetscScalar *__pyx_v_v; + PetscScalar *__pyx_v_ov; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_t_14; + PyObject *__pyx_t_15 = NULL; + int __pyx_t_16; + int __pyx_t_17; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createAIJWithArrays", 0); + __Pyx_INCREF(__pyx_v_csr); + + /* "petsc4py/PETSc/Mat.pyx":403 + * def createAIJWithArrays(self, size, csr, bsize=None, comm=None): + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 403, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":405 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":406 + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, __pyx_v_bsize, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 406, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":407 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 # <<<<<<<<<<<<<< + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + */ + __pyx_t_3 = ((__pyx_v_rbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/Mat.pyx":408 + * Mat_Sizes(size, bsize, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) + */ + __pyx_t_3 = ((__pyx_v_cbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_cbs = __pyx_v_rbs; + } + + /* "petsc4py/PETSc/Mat.pyx":409 + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, cbs, &n, &N) + * # unpack CSR argument + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_rbs, (&__pyx_v_m), (&__pyx_v_M)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 409, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":410 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) # <<<<<<<<<<<<<< + * # unpack CSR argument + * cdef object pi, pj, pv, poi, poj, pov + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_cbs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 410, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":413 + * # unpack CSR argument + * cdef object pi, pj, pv, poi, poj, pov + * try: # <<<<<<<<<<<<<< + * (pi, pj, pv), (poi, poj, pov) = csr + * except (TypeError, ValueError): + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/Mat.pyx":414 + * cdef object pi, pj, pv, poi, poj, pov + * try: + * (pi, pj, pv), (poi, poj, pov) = csr # <<<<<<<<<<<<<< + * except (TypeError, ValueError): + * pi, pj, pv = csr + */ + if ((likely(PyTuple_CheckExact(__pyx_v_csr))) || (PyList_CheckExact(__pyx_v_csr))) { + PyObject* sequence = __pyx_v_csr; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 414, __pyx_L5_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_v_csr); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L11_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L12_unpacking_done; + __pyx_L11_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_L12_unpacking_done:; + } + if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) { + PyObject* sequence = __pyx_t_7; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 414, __pyx_L5_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_9 = PyList_GET_ITEM(sequence, 0); + __pyx_t_11 = PyList_GET_ITEM(sequence, 1); + __pyx_t_12 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_12); + #else + __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_12)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_12); + #endif + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_13 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_13)->tp_iternext; + index = 0; __pyx_t_9 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_9)) goto __pyx_L13_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + index = 1; __pyx_t_11 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L13_unpacking_failed; + __Pyx_GOTREF(__pyx_t_11); + index = 2; __pyx_t_12 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L13_unpacking_failed; + __Pyx_GOTREF(__pyx_t_12); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_13), 3) < 0) __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L14_unpacking_done; + __pyx_L13_unpacking_failed:; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_L14_unpacking_done:; + } + __pyx_v_pi = __pyx_t_9; + __pyx_t_9 = 0; + __pyx_v_pj = __pyx_t_11; + __pyx_t_11 = 0; + __pyx_v_pv = __pyx_t_12; + __pyx_t_12 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) { + PyObject* sequence = __pyx_t_8; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 414, __pyx_L5_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_12 = PyList_GET_ITEM(sequence, 0); + __pyx_t_11 = PyList_GET_ITEM(sequence, 1); + __pyx_t_9 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_9); + #else + __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_13 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 414, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_13)->tp_iternext; + index = 0; __pyx_t_12 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_12)) goto __pyx_L15_unpacking_failed; + __Pyx_GOTREF(__pyx_t_12); + index = 1; __pyx_t_11 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_11)) goto __pyx_L15_unpacking_failed; + __Pyx_GOTREF(__pyx_t_11); + index = 2; __pyx_t_9 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed; + __Pyx_GOTREF(__pyx_t_9); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_13), 3) < 0) __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L16_unpacking_done; + __pyx_L15_unpacking_failed:; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 414, __pyx_L5_error) + __pyx_L16_unpacking_done:; + } + __pyx_v_poi = __pyx_t_12; + __pyx_t_12 = 0; + __pyx_v_poj = __pyx_t_11; + __pyx_t_11 = 0; + __pyx_v_pov = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Mat.pyx":413 + * # unpack CSR argument + * cdef object pi, pj, pv, poi, poj, pov + * try: # <<<<<<<<<<<<<< + * (pi, pj, pv), (poi, poj, pov) = csr + * except (TypeError, ValueError): + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_try_end; + __pyx_L5_error:; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Mat.pyx":415 + * try: + * (pi, pj, pv), (poi, poj, pov) = csr + * except (TypeError, ValueError): # <<<<<<<<<<<<<< + * pi, pj, pv = csr + * poi = poj = pov = None + */ + __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError) || __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ValueError); + if (__pyx_t_14) { + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_9) < 0) __PYX_ERR(45, 415, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_9); + + /* "petsc4py/PETSc/Mat.pyx":416 + * (pi, pj, pv), (poi, poj, pov) = csr + * except (TypeError, ValueError): + * pi, pj, pv = csr # <<<<<<<<<<<<<< + * poi = poj = pov = None + * # rows, cols, and values + */ + if ((likely(PyTuple_CheckExact(__pyx_v_csr))) || (PyList_CheckExact(__pyx_v_csr))) { + PyObject* sequence = __pyx_v_csr; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 416, __pyx_L7_except_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_11 = PyList_GET_ITEM(sequence, 0); + __pyx_t_12 = PyList_GET_ITEM(sequence, 1); + __pyx_t_13 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_13); + #else + __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(45, 416, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(45, 416, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 416, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_13); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_15 = PyObject_GetIter(__pyx_v_csr); if (unlikely(!__pyx_t_15)) __PYX_ERR(45, 416, __pyx_L7_except_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_10 = Py_TYPE(__pyx_t_15)->tp_iternext; + index = 0; __pyx_t_11 = __pyx_t_10(__pyx_t_15); if (unlikely(!__pyx_t_11)) goto __pyx_L19_unpacking_failed; + __Pyx_GOTREF(__pyx_t_11); + index = 1; __pyx_t_12 = __pyx_t_10(__pyx_t_15); if (unlikely(!__pyx_t_12)) goto __pyx_L19_unpacking_failed; + __Pyx_GOTREF(__pyx_t_12); + index = 2; __pyx_t_13 = __pyx_t_10(__pyx_t_15); if (unlikely(!__pyx_t_13)) goto __pyx_L19_unpacking_failed; + __Pyx_GOTREF(__pyx_t_13); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_15), 3) < 0) __PYX_ERR(45, 416, __pyx_L7_except_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L20_unpacking_done; + __pyx_L19_unpacking_failed:; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 416, __pyx_L7_except_error) + __pyx_L20_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v_pi, __pyx_t_11); + __pyx_t_11 = 0; + __Pyx_XDECREF_SET(__pyx_v_pj, __pyx_t_12); + __pyx_t_12 = 0; + __Pyx_XDECREF_SET(__pyx_v_pv, __pyx_t_13); + __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":417 + * except (TypeError, ValueError): + * pi, pj, pv = csr + * poi = poj = pov = None # <<<<<<<<<<<<<< + * # rows, cols, and values + * cdef PetscInt ni=0, noi=0, *i=NULL, *oi=NULL + */ + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_poi, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_poj, Py_None); + __Pyx_INCREF(Py_None); + __Pyx_XDECREF_SET(__pyx_v_pov, Py_None); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_exception_handled; + } + goto __pyx_L7_except_error; + __pyx_L7_except_error:; + + /* "petsc4py/PETSc/Mat.pyx":413 + * # unpack CSR argument + * cdef object pi, pj, pv, poi, poj, pov + * try: # <<<<<<<<<<<<<< + * (pi, pj, pv), (poi, poj, pov) = csr + * except (TypeError, ValueError): + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L6_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + __pyx_L10_try_end:; + } + + /* "petsc4py/PETSc/Mat.pyx":419 + * poi = poj = pov = None + * # rows, cols, and values + * cdef PetscInt ni=0, noi=0, *i=NULL, *oi=NULL # <<<<<<<<<<<<<< + * cdef PetscInt nj=0, noj=0, *j=NULL, *oj=NULL + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) + */ + __pyx_v_ni = 0; + __pyx_v_noi = 0; + __pyx_v_i = NULL; + __pyx_v_oi = NULL; + + /* "petsc4py/PETSc/Mat.pyx":420 + * # rows, cols, and values + * cdef PetscInt ni=0, noi=0, *i=NULL, *oi=NULL + * cdef PetscInt nj=0, noj=0, *j=NULL, *oj=NULL # <<<<<<<<<<<<<< + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) + */ + __pyx_v_nj = 0; + __pyx_v_noj = 0; + __pyx_v_j = NULL; + __pyx_v_oj = NULL; + + /* "petsc4py/PETSc/Mat.pyx":421 + * cdef PetscInt ni=0, noi=0, *i=NULL, *oi=NULL + * cdef PetscInt nj=0, noj=0, *j=NULL, *oj=NULL + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) # <<<<<<<<<<<<<< + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) + * if ni != m+1: raise ValueError( + */ + __pyx_t_9 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_pi, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF_SET(__pyx_v_pi, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Mat.pyx":422 + * cdef PetscInt nj=0, noj=0, *j=NULL, *oj=NULL + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) # <<<<<<<<<<<<<< + * if ni != m+1: raise ValueError( + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + */ + __pyx_t_9 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_pj, (&__pyx_v_nj), (&__pyx_v_j))); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF_SET(__pyx_v_pj, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/Mat.pyx":423 + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) + * if ni != m+1: raise ValueError( # <<<<<<<<<<<<<< + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + * (toInt(m), toInt(m+1), toInt(ni))) + */ + __pyx_t_3 = ((__pyx_v_ni != (__pyx_v_m + 1)) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Mat.pyx":425 + * if ni != m+1: raise ValueError( + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + * (toInt(m), toInt(m+1), toInt(ni))) # <<<<<<<<<<<<<< + * if poi is not None and poj is not None: + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m + 1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ni); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_13 = PyTuple_New(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_8); + __pyx_t_9 = 0; + __pyx_t_7 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":424 + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) + * if ni != m+1: raise ValueError( + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % # <<<<<<<<<<<<<< + * (toInt(m), toInt(m+1), toInt(ni))) + * if poi is not None and poj is not None: + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_A_matrix_with_d_rows_requires_a, __pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":423 + * pi = iarray_i(pi, &ni, &i) # Row pointers (diagonal) + * pj = iarray_i(pj, &nj, &j) # Column indices (diagonal) + * if ni != m+1: raise ValueError( # <<<<<<<<<<<<<< + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + * (toInt(m), toInt(m+1), toInt(ni))) + */ + __pyx_t_13 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_13, 0, 0, 0); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + __PYX_ERR(45, 423, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":426 + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + * (toInt(m), toInt(m+1), toInt(ni))) + * if poi is not None and poj is not None: # <<<<<<<<<<<<<< + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) + */ + __pyx_t_16 = (__pyx_v_poi != Py_None); + __pyx_t_17 = (__pyx_t_16 != 0); + if (__pyx_t_17) { + } else { + __pyx_t_3 = __pyx_t_17; + goto __pyx_L23_bool_binop_done; + } + __pyx_t_17 = (__pyx_v_poj != Py_None); + __pyx_t_16 = (__pyx_t_17 != 0); + __pyx_t_3 = __pyx_t_16; + __pyx_L23_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":427 + * (toInt(m), toInt(m+1), toInt(ni))) + * if poi is not None and poj is not None: + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) # <<<<<<<<<<<<<< + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) + * cdef PetscInt nv=0, nov=0 + */ + __pyx_t_13 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_poi, (&__pyx_v_noi), (&__pyx_v_oi))); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF_SET(__pyx_v_poi, __pyx_t_13); + __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":428 + * if poi is not None and poj is not None: + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) # <<<<<<<<<<<<<< + * cdef PetscInt nv=0, nov=0 + * cdef PetscScalar *v=NULL, *ov=NULL + */ + __pyx_t_13 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_poj, (&__pyx_v_noj), (&__pyx_v_oj))); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF_SET(__pyx_v_poj, __pyx_t_13); + __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":426 + * "A matrix with %d rows requires a row pointer of length %d (given: %d)" % + * (toInt(m), toInt(m+1), toInt(ni))) + * if poi is not None and poj is not None: # <<<<<<<<<<<<<< + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":429 + * poi = iarray_i(poi, &noi, &oi) # Row pointers (off-diagonal) + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) + * cdef PetscInt nv=0, nov=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *v=NULL, *ov=NULL + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) + */ + __pyx_v_nv = 0; + __pyx_v_nov = 0; + + /* "petsc4py/PETSc/Mat.pyx":430 + * poj = iarray_i(poj, &noj, &oj) # Column indices (off-diagonal) + * cdef PetscInt nv=0, nov=0 + * cdef PetscScalar *v=NULL, *ov=NULL # <<<<<<<<<<<<<< + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) + * if nj != nv: raise ValueError( + */ + __pyx_v_v = NULL; + __pyx_v_ov = NULL; + + /* "petsc4py/PETSc/Mat.pyx":431 + * cdef PetscInt nv=0, nov=0 + * cdef PetscScalar *v=NULL, *ov=NULL + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) # <<<<<<<<<<<<<< + * if nj != nv: raise ValueError( + * "Given %d column indices but %d non-zero values" % + */ + __pyx_t_13 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_pv, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF_SET(__pyx_v_pv, __pyx_t_13); + __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":432 + * cdef PetscScalar *v=NULL, *ov=NULL + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) + * if nj != nv: raise ValueError( # <<<<<<<<<<<<<< + * "Given %d column indices but %d non-zero values" % + * (toInt(nj), toInt(nv))) + */ + __pyx_t_3 = ((__pyx_v_nj != __pyx_v_nv) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Mat.pyx":434 + * if nj != nv: raise ValueError( + * "Given %d column indices but %d non-zero values" % + * (toInt(nj), toInt(nv))) # <<<<<<<<<<<<<< + * if pov is not None: + * pov = iarray_s(pov, &nov, &ov) # Non-zero values (off-diagonal) + */ + __pyx_t_13 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nj); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nv); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_13); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_13); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_8); + __pyx_t_13 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":433 + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) + * if nj != nv: raise ValueError( + * "Given %d column indices but %d non-zero values" % # <<<<<<<<<<<<<< + * (toInt(nj), toInt(nv))) + * if pov is not None: + */ + __pyx_t_8 = __Pyx_PyString_Format(__pyx_kp_s_Given_d_column_indices_but_d_non, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Mat.pyx":432 + * cdef PetscScalar *v=NULL, *ov=NULL + * pv = iarray_s(pv, &nv, &v) # Non-zero values (diagonal) + * if nj != nv: raise ValueError( # <<<<<<<<<<<<<< + * "Given %d column indices but %d non-zero values" % + * (toInt(nj), toInt(nv))) + */ + __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_Raise(__pyx_t_7, 0, 0, 0); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __PYX_ERR(45, 432, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":435 + * "Given %d column indices but %d non-zero values" % + * (toInt(nj), toInt(nv))) + * if pov is not None: # <<<<<<<<<<<<<< + * pov = iarray_s(pov, &nov, &ov) # Non-zero values (off-diagonal) + * # create matrix + */ + __pyx_t_3 = (__pyx_v_pov != Py_None); + __pyx_t_16 = (__pyx_t_3 != 0); + if (__pyx_t_16) { + + /* "petsc4py/PETSc/Mat.pyx":436 + * (toInt(nj), toInt(nv))) + * if pov is not None: + * pov = iarray_s(pov, &nov, &ov) # Non-zero values (off-diagonal) # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_pov, (&__pyx_v_nov), (&__pyx_v_ov))); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF_SET(__pyx_v_pov, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Mat.pyx":435 + * "Given %d column indices but %d non-zero values" % + * (toInt(nj), toInt(nv))) + * if pov is not None: # <<<<<<<<<<<<<< + * pov = iarray_s(pov, &nov, &ov) # Non-zero values (off-diagonal) + * # create matrix + */ + } + + /* "petsc4py/PETSc/Mat.pyx":438 + * pov = iarray_s(pov, &nov, &ov) # Non-zero values (off-diagonal) + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * if comm_size(ccomm) == 1: + * CHKERR( MatCreateSeqAIJWithArrays( + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":439 + * # create matrix + * cdef PetscMat newmat = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( MatCreateSeqAIJWithArrays( + * ccomm, m, n, i, j, v, &newmat) ) + */ + __pyx_t_14 = __pyx_f_8petsc4py_5PETSc_comm_size(__pyx_v_ccomm); if (unlikely(__pyx_t_14 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(45, 439, __pyx_L1_error) + __pyx_t_16 = ((__pyx_t_14 == 1) != 0); + if (__pyx_t_16) { + + /* "petsc4py/PETSc/Mat.pyx":440 + * cdef PetscMat newmat = NULL + * if comm_size(ccomm) == 1: + * CHKERR( MatCreateSeqAIJWithArrays( # <<<<<<<<<<<<<< + * ccomm, m, n, i, j, v, &newmat) ) + * csr = (pi, pj, pv) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateSeqAIJWithArrays(__pyx_v_ccomm, __pyx_v_m, __pyx_v_n, __pyx_v_i, __pyx_v_j, __pyx_v_v, (&__pyx_v_newmat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 440, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":442 + * CHKERR( MatCreateSeqAIJWithArrays( + * ccomm, m, n, i, j, v, &newmat) ) + * csr = (pi, pj, pv) # <<<<<<<<<<<<<< + * else: + * if oi != NULL and oj != NULL and ov != NULL: + */ + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_pi); + __Pyx_GIVEREF(__pyx_v_pi); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pi); + __Pyx_INCREF(__pyx_v_pj); + __Pyx_GIVEREF(__pyx_v_pj); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_pj); + __Pyx_INCREF(__pyx_v_pv); + __Pyx_GIVEREF(__pyx_v_pv); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_pv); + __Pyx_DECREF_SET(__pyx_v_csr, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Mat.pyx":439 + * # create matrix + * cdef PetscMat newmat = NULL + * if comm_size(ccomm) == 1: # <<<<<<<<<<<<<< + * CHKERR( MatCreateSeqAIJWithArrays( + * ccomm, m, n, i, j, v, &newmat) ) + */ + goto __pyx_L27; + } + + /* "petsc4py/PETSc/Mat.pyx":444 + * csr = (pi, pj, pv) + * else: + * if oi != NULL and oj != NULL and ov != NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateMPIAIJWithSplitArrays( + * ccomm, m, n, M, N, i, j, v, oi, oj, ov, &newmat) ) + */ + /*else*/ { + __pyx_t_3 = ((__pyx_v_oi != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_16 = __pyx_t_3; + goto __pyx_L29_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_oj != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_16 = __pyx_t_3; + goto __pyx_L29_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_ov != NULL) != 0); + __pyx_t_16 = __pyx_t_3; + __pyx_L29_bool_binop_done:; + if (__pyx_t_16) { + + /* "petsc4py/PETSc/Mat.pyx":445 + * else: + * if oi != NULL and oj != NULL and ov != NULL: + * CHKERR( MatCreateMPIAIJWithSplitArrays( # <<<<<<<<<<<<<< + * ccomm, m, n, M, N, i, j, v, oi, oj, ov, &newmat) ) + * csr = ((pi, pj, pv), (poi, poj, pov)) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateMPIAIJWithSplitArrays(__pyx_v_ccomm, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N, __pyx_v_i, __pyx_v_j, __pyx_v_v, __pyx_v_oi, __pyx_v_oj, __pyx_v_ov, (&__pyx_v_newmat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 445, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":447 + * CHKERR( MatCreateMPIAIJWithSplitArrays( + * ccomm, m, n, M, N, i, j, v, oi, oj, ov, &newmat) ) + * csr = ((pi, pj, pv), (poi, poj, pov)) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatCreateMPIAIJWithArrays( + */ + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_pi); + __Pyx_GIVEREF(__pyx_v_pi); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_pi); + __Pyx_INCREF(__pyx_v_pj); + __Pyx_GIVEREF(__pyx_v_pj); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_pj); + __Pyx_INCREF(__pyx_v_pv); + __Pyx_GIVEREF(__pyx_v_pv); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_pv); + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_poi); + __Pyx_GIVEREF(__pyx_v_poi); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_poi); + __Pyx_INCREF(__pyx_v_poj); + __Pyx_GIVEREF(__pyx_v_poj); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_poj); + __Pyx_INCREF(__pyx_v_pov); + __Pyx_GIVEREF(__pyx_v_pov); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_pov); + __pyx_t_13 = PyTuple_New(2); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_8); + __pyx_t_7 = 0; + __pyx_t_8 = 0; + __Pyx_DECREF_SET(__pyx_v_csr, __pyx_t_13); + __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":444 + * csr = (pi, pj, pv) + * else: + * if oi != NULL and oj != NULL and ov != NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateMPIAIJWithSplitArrays( + * ccomm, m, n, M, N, i, j, v, oi, oj, ov, &newmat) ) + */ + goto __pyx_L28; + } + + /* "petsc4py/PETSc/Mat.pyx":449 + * csr = ((pi, pj, pv), (poi, poj, pov)) + * else: + * CHKERR( MatCreateMPIAIJWithArrays( # <<<<<<<<<<<<<< + * ccomm, m, n, M, N, i, j, v, &newmat) ) + * csr = None + */ + /*else*/ { + + /* "petsc4py/PETSc/Mat.pyx":450 + * else: + * CHKERR( MatCreateMPIAIJWithArrays( + * ccomm, m, n, M, N, i, j, v, &newmat) ) # <<<<<<<<<<<<<< + * csr = None + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateMPIAIJWithArrays(__pyx_v_ccomm, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N, __pyx_v_i, __pyx_v_j, __pyx_v_v, (&__pyx_v_newmat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 449, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":451 + * CHKERR( MatCreateMPIAIJWithArrays( + * ccomm, m, n, M, N, i, j, v, &newmat) ) + * csr = None # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * self.set_attr('__csr__', csr) + */ + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_csr, Py_None); + } + __pyx_L28:; + } + __pyx_L27:; + + /* "petsc4py/PETSc/Mat.pyx":452 + * ccomm, m, n, M, N, i, j, v, &newmat) ) + * csr = None + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * self.set_attr('__csr__', csr) + * return self + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":453 + * csr = None + * PetscCLEAR(self.obj); self.mat = newmat + * self.set_attr('__csr__', csr) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_13 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__csr__"), __pyx_v_csr); if (unlikely(!__pyx_t_13)) __PYX_ERR(45, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + + /* "petsc4py/PETSc/Mat.pyx":454 + * PetscCLEAR(self.obj); self.mat = newmat + * self.set_attr('__csr__', csr) + * return self # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":401 + * return self + * + * def createAIJWithArrays(self, size, csr, bsize=None, comm=None): # <<<<<<<<<<<<<< + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createAIJWithArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pi); + __Pyx_XDECREF(__pyx_v_pj); + __Pyx_XDECREF(__pyx_v_pv); + __Pyx_XDECREF(__pyx_v_poi); + __Pyx_XDECREF(__pyx_v_poj); + __Pyx_XDECREF(__pyx_v_pov); + __Pyx_XDECREF(__pyx_v_csr); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":458 + * # + * + * def createDense(self, size, bsize=None, array=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_65createDense(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_64createDense[] = "Mat.createDense(self, size, bsize=None, array=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_65createDense(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_array = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createDense (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_array,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createDense") < 0)) __PYX_ERR(45, 458, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_array = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createDense", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 458, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createDense", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_64createDense(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_array, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_64createDense(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_array, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createDense", 0); + __Pyx_INCREF(__pyx_v_array); + + /* "petsc4py/PETSc/Mat.pyx":460 + * def createDense(self, size, bsize=None, array=None, comm=None): + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * Mat_Create(MATDENSE, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":461 + * # create matrix + * cdef PetscMat newmat = NULL + * Mat_Create(MATDENSE, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATDENSE, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 461, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":462 + * cdef PetscMat newmat = NULL + * Mat_Create(MATDENSE, comm, size, bsize, &newmat) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * # preallocate matrix + * if array is not None: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":464 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * if array is not None: # <<<<<<<<<<<<<< + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + */ + __pyx_t_2 = (__pyx_v_array != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":465 + * # preallocate matrix + * if array is not None: + * array = Mat_AllocDense(self.mat, array) # <<<<<<<<<<<<<< + * self.set_attr('__array__', array) + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Mat_AllocDense(__pyx_v_self->mat, __pyx_v_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":466 + * if array is not None: + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_array); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":464 + * PetscCLEAR(self.obj); self.mat = newmat + * # preallocate matrix + * if array is not None: # <<<<<<<<<<<<<< + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":467 + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + * return self # <<<<<<<<<<<<<< + * + * def createDenseCUDA(self, size, bsize=None, array=None, cudahandle=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":458 + * # + * + * def createDense(self, size, bsize=None, array=None, comm=None): # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createDense", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":469 + * return self + * + * def createDenseCUDA(self, size, bsize=None, array=None, cudahandle=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Mat`, a MATDENSECUDA with user provided + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_67createDenseCUDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_66createDenseCUDA[] = "Mat.createDenseCUDA(self, size, bsize=None, array=None, cudahandle=None, comm=None)\n\n Returns an instance of :class:`Mat`, a MATDENSECUDA with user provided\n memory spaces for CPU and GPU arrays.\n\n :arg size: A list denoting the size of the Mat.\n :arg bsize: A :class:`int` denoting the block size.\n :arg array: A :class:`numpy.ndarray`. Will be lazily allocated if\n *None*.\n :arg cudahandle: Address of the array on the GPU. Will be lazily\n allocated if *None*. If cudahandle is provided, array will be\n ignored.\n :arg comm: MPI communicator\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_67createDenseCUDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_array = 0; + PyObject *__pyx_v_cudahandle = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createDenseCUDA (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_bsize,&__pyx_n_s_array,&__pyx_n_s_cudahandle,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cudahandle); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createDenseCUDA") < 0)) __PYX_ERR(45, 469, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_bsize = values[1]; + __pyx_v_array = values[2]; + __pyx_v_cudahandle = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createDenseCUDA", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 469, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createDenseCUDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_66createDenseCUDA(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_bsize, __pyx_v_array, __pyx_v_cudahandle, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_66createDenseCUDA(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_bsize, PyObject *__pyx_v_array, PyObject *__pyx_v_cudahandle, PyObject *__pyx_v_comm) { + Mat __pyx_v_newmat; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + Py_uintptr_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createDenseCUDA", 0); + __Pyx_INCREF(__pyx_v_array); + + /* "petsc4py/PETSc/Mat.pyx":484 + * """ + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":486 + * cdef PetscMat newmat = NULL + * # communicator + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 486, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":488 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * # sizes and block sizes + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * + * if cudahandle is not None: + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":490 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * + * if cudahandle is not None: # <<<<<<<<<<<<<< + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + */ + __pyx_t_2 = (__pyx_v_cudahandle != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":491 + * + * if cudahandle is not None: + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, Py_None, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 491, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":492 + * if cudahandle is not None: + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 # <<<<<<<<<<<<<< + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + */ + __pyx_t_3 = ((__pyx_v_rbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/Mat.pyx":493 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) + */ + __pyx_t_3 = ((__pyx_v_cbs == PETSC_DECIDE) != 0); + if (__pyx_t_3) { + __pyx_v_cbs = __pyx_v_rbs; + } + + /* "petsc4py/PETSc/Mat.pyx":494 + * if rbs == PETSC_DECIDE: rbs = 1 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix and set sizes + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_rbs, (&__pyx_v_m), (&__pyx_v_M)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 494, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":495 + * if cbs == PETSC_DECIDE: cbs = rbs + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) # <<<<<<<<<<<<<< + * # create matrix and set sizes + * CHKERR( MatCreateDenseCUDA(ccomm, m, n, M, N, (cudahandle), &newmat) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_cbs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 495, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":497 + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix and set sizes + * CHKERR( MatCreateDenseCUDA(ccomm, m, n, M, N, (cudahandle), &newmat) ) # <<<<<<<<<<<<<< + * # Does block size make sense for MATDENSE? + * CHKERR( MatSetBlockSizes(newmat, rbs, cbs) ) + */ + __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_v_cudahandle); if (unlikely((__pyx_t_5 == ((Py_uintptr_t)-1)) && PyErr_Occurred())) __PYX_ERR(45, 497, __pyx_L1_error) + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateDenseCUDA(__pyx_v_ccomm, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N, ((PetscScalar *)((Py_uintptr_t)__pyx_t_5)), (&__pyx_v_newmat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 497, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":499 + * CHKERR( MatCreateDenseCUDA(ccomm, m, n, M, N, (cudahandle), &newmat) ) + * # Does block size make sense for MATDENSE? + * CHKERR( MatSetBlockSizes(newmat, rbs, cbs) ) # <<<<<<<<<<<<<< + * else: + * Mat_Create(MATDENSECUDA, comm, size, bsize, &newmat) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetBlockSizes(__pyx_v_newmat, __pyx_v_rbs, __pyx_v_cbs)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 499, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":490 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * + * if cudahandle is not None: # <<<<<<<<<<<<<< + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * if rbs == PETSC_DECIDE: rbs = 1 + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":501 + * CHKERR( MatSetBlockSizes(newmat, rbs, cbs) ) + * else: + * Mat_Create(MATDENSECUDA, comm, size, bsize, &newmat) # <<<<<<<<<<<<<< + * if array is not None: + * array = Mat_AllocDense(self.mat, array) + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_Mat_Create(MATDENSECUDA, __pyx_v_comm, __pyx_v_size, __pyx_v_bsize, (&__pyx_v_newmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 501, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":502 + * else: + * Mat_Create(MATDENSECUDA, comm, size, bsize, &newmat) + * if array is not None: # <<<<<<<<<<<<<< + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + */ + __pyx_t_3 = (__pyx_v_array != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":503 + * Mat_Create(MATDENSECUDA, comm, size, bsize, &newmat) + * if array is not None: + * array = Mat_AllocDense(self.mat, array) # <<<<<<<<<<<<<< + * self.set_attr('__array__', array) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_Mat_AllocDense(__pyx_v_self->mat, __pyx_v_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":504 + * if array is not None: + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_6 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":502 + * else: + * Mat_Create(MATDENSECUDA, comm, size, bsize, &newmat) + * if array is not None: # <<<<<<<<<<<<<< + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + */ + } + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":505 + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":506 + * self.set_attr('__array__', array) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def setPreallocationDense(self, array): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":469 + * return self + * + * def createDenseCUDA(self, size, bsize=None, array=None, cudahandle=None, comm=None): # <<<<<<<<<<<<<< + * """ + * Returns an instance of :class:`Mat`, a MATDENSECUDA with user provided + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createDenseCUDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":508 + * return self + * + * def setPreallocationDense(self, array): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_69setPreallocationDense(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_68setPreallocationDense[] = "Mat.setPreallocationDense(self, array)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_69setPreallocationDense(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_array = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPreallocationDense (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_array,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_array)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPreallocationDense") < 0)) __PYX_ERR(45, 508, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_array = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPreallocationDense", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 508, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationDense", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_68setPreallocationDense(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_array); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_68setPreallocationDense(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_array) { + PetscBool __pyx_v_done; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPreallocationDense", 0); + __Pyx_INCREF(__pyx_v_array); + + /* "petsc4py/PETSc/Mat.pyx":509 + * + * def setPreallocationDense(self, array): + * cdef PetscBool done = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + */ + __pyx_v_done = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":510 + * def setPreallocationDense(self, array): + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) # <<<<<<<<<<<<<< + * # if done: raise Error(PETSC_ERR_ORDER) + * array = Mat_AllocDense(self.mat, array) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsPreallocated(__pyx_v_self->mat, (&__pyx_v_done))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 510, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":512 + * CHKERR( MatIsPreallocated(self.mat, &done) ) + * # if done: raise Error(PETSC_ERR_ORDER) + * array = Mat_AllocDense(self.mat, array) # <<<<<<<<<<<<<< + * self.set_attr('__array__', array) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Mat_AllocDense(__pyx_v_self->mat, __pyx_v_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_array, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":513 + * # if done: raise Error(PETSC_ERR_ORDER) + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__array__"), __pyx_v_array); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":514 + * array = Mat_AllocDense(self.mat, array) + * self.set_attr('__array__', array) + * return self # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":508 + * return self + * + * def setPreallocationDense(self, array): # <<<<<<<<<<<<<< + * cdef PetscBool done = PETSC_FALSE + * CHKERR( MatIsPreallocated(self.mat, &done) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPreallocationDense", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":518 + * # + * + * def createScatter(self, Scatter scatter, comm=None): # <<<<<<<<<<<<<< + * if comm is None: comm = scatter.getComm() + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_71createScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_70createScatter[] = "Mat.createScatter(self, Scatter scatter, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_71createScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscScatterObject *__pyx_v_scatter = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createScatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scatter,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scatter)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createScatter") < 0)) __PYX_ERR(45, 518, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_scatter = ((struct PyPetscScatterObject *)values[0]); + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createScatter", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 518, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_scatter), __pyx_ptype_8petsc4py_5PETSc_Scatter, 0, "scatter", 0))) __PYX_ERR(45, 518, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_70createScatter(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_scatter, __pyx_v_comm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_70createScatter(struct PyPetscMatObject *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_scatter, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + MPI_Comm __pyx_t_6; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createScatter", 0); + __Pyx_INCREF(__pyx_v_comm); + + /* "petsc4py/PETSc/Mat.pyx":519 + * + * def createScatter(self, Scatter scatter, comm=None): + * if comm is None: comm = scatter.getComm() # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL + */ + __pyx_t_1 = (__pyx_v_comm == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_scatter), __pyx_n_s_getComm); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_comm, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":520 + * def createScatter(self, Scatter scatter, comm=None): + * if comm is None: comm = scatter.getComm() + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateScatter(ccomm, scatter.sct, &newmat) ) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 520, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_6; + + /* "petsc4py/PETSc/Mat.pyx":521 + * if comm is None: comm = scatter.getComm() + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateScatter(ccomm, scatter.sct, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":522 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateScatter(ccomm, scatter.sct, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateScatter(__pyx_v_ccomm, __pyx_v_scatter->sct, (&__pyx_v_newmat))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 522, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":523 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateScatter(ccomm, scatter.sct, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":524 + * CHKERR( MatCreateScatter(ccomm, scatter.sct, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createNormal(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":518 + * # + * + * def createScatter(self, Scatter scatter, comm=None): # <<<<<<<<<<<<<< + * if comm is None: comm = scatter.getComm() + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":526 + * return self + * + * def createNormal(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_73createNormal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_72createNormal[] = "Mat.createNormal(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_73createNormal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createNormal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createNormal") < 0)) __PYX_ERR(45, 526, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createNormal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 526, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNormal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 526, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_72createNormal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_72createNormal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createNormal", 0); + + /* "petsc4py/PETSc/Mat.pyx":527 + * + * def createNormal(self, Mat mat): + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":528 + * def createNormal(self, Mat mat): + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateNormal(__pyx_v_mat->mat, (&__pyx_v_newmat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 528, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":529 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":530 + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createTranspose(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":526 + * return self + * + * def createNormal(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormal(mat.mat, &newmat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNormal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":532 + * return self + * + * def createTranspose(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_75createTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_74createTranspose[] = "Mat.createTranspose(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_75createTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createTranspose") < 0)) __PYX_ERR(45, 532, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createTranspose", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 532, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 532, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_74createTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_74createTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createTranspose", 0); + + /* "petsc4py/PETSc/Mat.pyx":533 + * + * def createTranspose(self, Mat mat): + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":534 + * def createTranspose(self, Mat mat): + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateTranspose(__pyx_v_mat->mat, (&__pyx_v_newmat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 534, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":535 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":536 + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createNormalHermitian(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":532 + * return self + * + * def createTranspose(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateTranspose(mat.mat, &newmat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":538 + * return self + * + * def createNormalHermitian(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_77createNormalHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_76createNormalHermitian[] = "Mat.createNormalHermitian(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_77createNormalHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createNormalHermitian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createNormalHermitian") < 0)) __PYX_ERR(45, 538, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createNormalHermitian", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 538, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNormalHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 538, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_76createNormalHermitian(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_76createNormalHermitian(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createNormalHermitian", 0); + + /* "petsc4py/PETSc/Mat.pyx":539 + * + * def createNormalHermitian(self, Mat mat): + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":540 + * def createNormalHermitian(self, Mat mat): + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateNormalHermitian(__pyx_v_mat->mat, (&__pyx_v_newmat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 540, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":541 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":542 + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createHermitianTranspose(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":538 + * return self + * + * def createNormalHermitian(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNormalHermitian(mat.mat, &newmat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNormalHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":544 + * return self + * + * def createHermitianTranspose(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_79createHermitianTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_78createHermitianTranspose[] = "Mat.createHermitianTranspose(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_79createHermitianTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createHermitianTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createHermitianTranspose") < 0)) __PYX_ERR(45, 544, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createHermitianTranspose", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 544, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createHermitianTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 544, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_78createHermitianTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_78createHermitianTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createHermitianTranspose", 0); + + /* "petsc4py/PETSc/Mat.pyx":545 + * + * def createHermitianTranspose(self, Mat mat): + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":546 + * def createHermitianTranspose(self, Mat mat): + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateHermitianTranspose(__pyx_v_mat->mat, (&__pyx_v_newmat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 546, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":547 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":548 + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createLRC(self, Mat A or None, Mat U, Vec c or None, Mat V or None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":544 + * return self + * + * def createHermitianTranspose(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateHermitianTranspose(mat.mat, &newmat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createHermitianTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":550 + * return self + * + * def createLRC(self, Mat A or None, Mat U, Vec c or None, Mat V or None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat = NULL + * cdef PetscMat Umat = U.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_81createLRC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_80createLRC[] = "Mat.createLRC(self, Mat A, Mat U, Vec c, Mat V)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_81createLRC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_U = 0; + struct PyPetscVecObject *__pyx_v_c = 0; + struct PyPetscMatObject *__pyx_v_V = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLRC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_A,&__pyx_n_s_U,&__pyx_n_s_c,&__pyx_n_s_V,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLRC", 1, 4, 4, 1); __PYX_ERR(45, 550, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLRC", 1, 4, 4, 2); __PYX_ERR(45, 550, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createLRC", 1, 4, 4, 3); __PYX_ERR(45, 550, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createLRC") < 0)) __PYX_ERR(45, 550, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_A = ((struct PyPetscMatObject *)values[0]); + __pyx_v_U = ((struct PyPetscMatObject *)values[1]); + __pyx_v_c = ((struct PyPetscVecObject *)values[2]); + __pyx_v_V = ((struct PyPetscMatObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createLRC", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 550, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createLRC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "A", 0))) __PYX_ERR(45, 550, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_U), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "U", 0))) __PYX_ERR(45, 550, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "c", 0))) __PYX_ERR(45, 550, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "V", 0))) __PYX_ERR(45, 550, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_80createLRC(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_A, __pyx_v_U, __pyx_v_c, __pyx_v_V); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_80createLRC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_U, struct PyPetscVecObject *__pyx_v_c, struct PyPetscMatObject *__pyx_v_V) { + Mat __pyx_v_Amat; + Mat __pyx_v_Umat; + Vec __pyx_v_cvec; + Mat __pyx_v_Vmat; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Mat __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Vec __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLRC", 0); + + /* "petsc4py/PETSc/Mat.pyx":551 + * + * def createLRC(self, Mat A or None, Mat U, Vec c or None, Mat V or None): + * cdef PetscMat Amat = NULL # <<<<<<<<<<<<<< + * cdef PetscMat Umat = U.mat + * cdef PetscVec cvec = NULL + */ + __pyx_v_Amat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":552 + * def createLRC(self, Mat A or None, Mat U, Vec c or None, Mat V or None): + * cdef PetscMat Amat = NULL + * cdef PetscMat Umat = U.mat # <<<<<<<<<<<<<< + * cdef PetscVec cvec = NULL + * cdef PetscMat Vmat = NULL + */ + __pyx_t_1 = __pyx_v_U->mat; + __pyx_v_Umat = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":553 + * cdef PetscMat Amat = NULL + * cdef PetscMat Umat = U.mat + * cdef PetscVec cvec = NULL # <<<<<<<<<<<<<< + * cdef PetscMat Vmat = NULL + * cdef PetscMat newmat = NULL + */ + __pyx_v_cvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":554 + * cdef PetscMat Umat = U.mat + * cdef PetscVec cvec = NULL + * cdef PetscMat Vmat = NULL # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * if A is not None: Amat = A.mat + */ + __pyx_v_Vmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":555 + * cdef PetscVec cvec = NULL + * cdef PetscMat Vmat = NULL + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * if A is not None: Amat = A.mat + * if c is not None: cvec = c.vec + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":556 + * cdef PetscMat Vmat = NULL + * cdef PetscMat newmat = NULL + * if A is not None: Amat = A.mat # <<<<<<<<<<<<<< + * if c is not None: cvec = c.vec + * if V is not None: Vmat = V.mat + */ + __pyx_t_2 = (((PyObject *)__pyx_v_A) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_v_A->mat; + __pyx_v_Amat = __pyx_t_1; + } + + /* "petsc4py/PETSc/Mat.pyx":557 + * cdef PetscMat newmat = NULL + * if A is not None: Amat = A.mat + * if c is not None: cvec = c.vec # <<<<<<<<<<<<<< + * if V is not None: Vmat = V.mat + * CHKERR( MatCreateLRC(Amat, Umat, cvec, Vmat, &newmat) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_c) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_v_c->vec; + __pyx_v_cvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":558 + * if A is not None: Amat = A.mat + * if c is not None: cvec = c.vec + * if V is not None: Vmat = V.mat # <<<<<<<<<<<<<< + * CHKERR( MatCreateLRC(Amat, Umat, cvec, Vmat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_t_2 = (((PyObject *)__pyx_v_V) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_v_V->mat; + __pyx_v_Vmat = __pyx_t_1; + } + + /* "petsc4py/PETSc/Mat.pyx":559 + * if c is not None: cvec = c.vec + * if V is not None: Vmat = V.mat + * CHKERR( MatCreateLRC(Amat, Umat, cvec, Vmat, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateLRC(__pyx_v_Amat, __pyx_v_Umat, __pyx_v_cvec, __pyx_v_Vmat, (&__pyx_v_newmat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 559, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":560 + * if V is not None: Vmat = V.mat + * CHKERR( MatCreateLRC(Amat, Umat, cvec, Vmat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":561 + * CHKERR( MatCreateLRC(Amat, Umat, cvec, Vmat, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":550 + * return self + * + * def createLRC(self, Mat A or None, Mat U, Vec c or None, Mat V or None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat = NULL + * cdef PetscMat Umat = U.mat + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createLRC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":563 + * return self + * + * def createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None): # <<<<<<<<<<<<<< + * if iscol is None: iscol = isrow + * cdef PetscMat newmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_83createSubMatrixVirtual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_82createSubMatrixVirtual[] = "Mat.createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_83createSubMatrixVirtual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSubMatrixVirtual (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_A,&__pyx_n_s_isrow,&__pyx_n_s_iscol,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSubMatrixVirtual", 0, 2, 3, 1); __PYX_ERR(45, 563, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSubMatrixVirtual") < 0)) __PYX_ERR(45, 563, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_A = ((struct PyPetscMatObject *)values[0]); + __pyx_v_isrow = ((struct PyPetscISObject *)values[1]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSubMatrixVirtual", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 563, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrixVirtual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "A", 0))) __PYX_ERR(45, 563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 563, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "iscol", 0))) __PYX_ERR(45, 563, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_82createSubMatrixVirtual(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_A, __pyx_v_isrow, __pyx_v_iscol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_82createSubMatrixVirtual(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol) { + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSubMatrixVirtual", 0); + __Pyx_INCREF((PyObject *)__pyx_v_iscol); + + /* "petsc4py/PETSc/Mat.pyx":564 + * + * def createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None): + * if iscol is None: iscol = isrow # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateSubMatrixVirtual(A.mat, isrow.iset, iscol.iset, &newmat) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_iscol) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(((PyObject *)__pyx_v_isrow)); + __Pyx_DECREF_SET(__pyx_v_iscol, __pyx_v_isrow); + } + + /* "petsc4py/PETSc/Mat.pyx":565 + * def createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None): + * if iscol is None: iscol = isrow + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateSubMatrixVirtual(A.mat, isrow.iset, iscol.iset, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":566 + * if iscol is None: iscol = isrow + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateSubMatrixVirtual(A.mat, isrow.iset, iscol.iset, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateSubMatrixVirtual(__pyx_v_A->mat, __pyx_v_isrow->iset, __pyx_v_iscol->iset, (&__pyx_v_newmat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 566, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":567 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateSubMatrixVirtual(A.mat, isrow.iset, iscol.iset, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":568 + * CHKERR( MatCreateSubMatrixVirtual(A.mat, isrow.iset, iscol.iset, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createNest(self, mats, isrows=None, iscols=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":563 + * return self + * + * def createSubMatrixVirtual(self, Mat A, IS isrow, IS iscol=None): # <<<<<<<<<<<<<< + * if iscol is None: iscol = isrow + * cdef PetscMat newmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrixVirtual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iscol); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":570 + * return self + * + * def createNest(self, mats, isrows=None, iscols=None, comm=None): # <<<<<<<<<<<<<< + * cdef object mat + * mats = [list(mat) for mat in mats] + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_85createNest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_84createNest[] = "Mat.createNest(self, mats, isrows=None, iscols=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_85createNest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mats = 0; + PyObject *__pyx_v_isrows = 0; + PyObject *__pyx_v_iscols = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createNest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mats,&__pyx_n_s_isrows,&__pyx_n_s_iscols,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mats)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrows); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscols); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createNest") < 0)) __PYX_ERR(45, 570, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mats = values[0]; + __pyx_v_isrows = values[1]; + __pyx_v_iscols = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createNest", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 570, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_84createNest(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mats, __pyx_v_isrows, __pyx_v_iscols, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_84createNest(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mats, PyObject *__pyx_v_isrows, PyObject *__pyx_v_iscols, PyObject *__pyx_v_comm) { + PyObject *__pyx_v_mat = 0; + MPI_Comm __pyx_v_ccomm; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_mr; + Py_ssize_t __pyx_v_j; + Py_ssize_t __pyx_v_mc; + PetscInt __pyx_v_nr; + PetscInt __pyx_v_nc; + Mat *__pyx_v_cmats; + IS *__pyx_v_cisrows; + IS *__pyx_v_ciscols; + CYTHON_UNUSED PyObject *__pyx_v_tmp1 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp3 = 0; + Mat __pyx_v_newmat; + PyObject *__pyx_8genexpr3__pyx_v_mat = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + MPI_Comm __pyx_t_8; + Mat __pyx_t_9; + int __pyx_t_10; + IS __pyx_t_11; + PetscErrorCode __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createNest", 0); + __Pyx_INCREF(__pyx_v_mats); + __Pyx_INCREF(__pyx_v_isrows); + __Pyx_INCREF(__pyx_v_iscols); + + /* "petsc4py/PETSc/Mat.pyx":572 + * def createNest(self, mats, isrows=None, iscols=None, comm=None): + * cdef object mat + * mats = [list(mat) for mat in mats] # <<<<<<<<<<<<<< + * if isrows: + * isrows = list(isrows) + */ + { /* enter inner scope */ + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_1); + if (likely(PyList_CheckExact(__pyx_v_mats)) || PyTuple_CheckExact(__pyx_v_mats)) { + __pyx_t_2 = __pyx_v_mats; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_mats); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 572, __pyx_L5_error) + } + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(45, 572, __pyx_L5_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(45, 572, __pyx_L5_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(45, 572, __pyx_L5_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v_mat, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_t_5 = PySequence_List(__pyx_8genexpr3__pyx_v_mat); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(45, 572, __pyx_L5_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_mat); __pyx_8genexpr3__pyx_v_mat = 0; + goto __pyx_L8_exit_scope; + __pyx_L5_error:; + __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_mat); __pyx_8genexpr3__pyx_v_mat = 0; + goto __pyx_L1_error; + __pyx_L8_exit_scope:; + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_mats, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":573 + * cdef object mat + * mats = [list(mat) for mat in mats] + * if isrows: # <<<<<<<<<<<<<< + * isrows = list(isrows) + * assert len(isrows) == len(mats) + */ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_isrows); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(45, 573, __pyx_L1_error) + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Mat.pyx":574 + * mats = [list(mat) for mat in mats] + * if isrows: + * isrows = list(isrows) # <<<<<<<<<<<<<< + * assert len(isrows) == len(mats) + * else: + */ + __pyx_t_1 = PySequence_List(__pyx_v_isrows); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_isrows, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":575 + * if isrows: + * isrows = list(isrows) + * assert len(isrows) == len(mats) # <<<<<<<<<<<<<< + * else: + * isrows = None + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = PyObject_Length(__pyx_v_isrows); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(45, 575, __pyx_L1_error) + __pyx_t_7 = PyObject_Length(__pyx_v_mats); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(45, 575, __pyx_L1_error) + if (unlikely(!((__pyx_t_3 == __pyx_t_7) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(45, 575, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Mat.pyx":573 + * cdef object mat + * mats = [list(mat) for mat in mats] + * if isrows: # <<<<<<<<<<<<<< + * isrows = list(isrows) + * assert len(isrows) == len(mats) + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/Mat.pyx":577 + * assert len(isrows) == len(mats) + * else: + * isrows = None # <<<<<<<<<<<<<< + * if iscols: + * iscols = list(iscols) + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_isrows, Py_None); + } + __pyx_L9:; + + /* "petsc4py/PETSc/Mat.pyx":578 + * else: + * isrows = None + * if iscols: # <<<<<<<<<<<<<< + * iscols = list(iscols) + * assert len(iscols) == len(mats[0]) + */ + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_v_iscols); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(45, 578, __pyx_L1_error) + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Mat.pyx":579 + * isrows = None + * if iscols: + * iscols = list(iscols) # <<<<<<<<<<<<<< + * assert len(iscols) == len(mats[0]) + * else: + */ + __pyx_t_1 = PySequence_List(__pyx_v_iscols); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_iscols, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":580 + * if iscols: + * iscols = list(iscols) + * assert len(iscols) == len(mats[0]) # <<<<<<<<<<<<<< + * else: + * iscols = None + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_7 = PyObject_Length(__pyx_v_iscols); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(45, 580, __pyx_L1_error) + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_mats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(45, 580, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!((__pyx_t_7 == __pyx_t_3) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(45, 580, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Mat.pyx":578 + * else: + * isrows = None + * if iscols: # <<<<<<<<<<<<<< + * iscols = list(iscols) + * assert len(iscols) == len(mats[0]) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/Mat.pyx":582 + * assert len(iscols) == len(mats[0]) + * else: + * iscols = None # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, mr = len(mats) + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_iscols, Py_None); + } + __pyx_L10:; + + /* "petsc4py/PETSc/Mat.pyx":583 + * else: + * iscols = None + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, mr = len(mats) + * cdef Py_ssize_t j, mc = len(mats[0]) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 583, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_8; + + /* "petsc4py/PETSc/Mat.pyx":584 + * iscols = None + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, mr = len(mats) # <<<<<<<<<<<<<< + * cdef Py_ssize_t j, mc = len(mats[0]) + * cdef PetscInt nr = mr + */ + __pyx_t_3 = PyObject_Length(__pyx_v_mats); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(45, 584, __pyx_L1_error) + __pyx_v_mr = __pyx_t_3; + + /* "petsc4py/PETSc/Mat.pyx":585 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Py_ssize_t i, mr = len(mats) + * cdef Py_ssize_t j, mc = len(mats[0]) # <<<<<<<<<<<<<< + * cdef PetscInt nr = mr + * cdef PetscInt nc = mc + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_mats, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(45, 585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_mc = __pyx_t_3; + + /* "petsc4py/PETSc/Mat.pyx":586 + * cdef Py_ssize_t i, mr = len(mats) + * cdef Py_ssize_t j, mc = len(mats[0]) + * cdef PetscInt nr = mr # <<<<<<<<<<<<<< + * cdef PetscInt nc = mc + * cdef PetscMat *cmats = NULL + */ + __pyx_v_nr = ((PetscInt)__pyx_v_mr); + + /* "petsc4py/PETSc/Mat.pyx":587 + * cdef Py_ssize_t j, mc = len(mats[0]) + * cdef PetscInt nr = mr + * cdef PetscInt nc = mc # <<<<<<<<<<<<<< + * cdef PetscMat *cmats = NULL + * cdef PetscIS *cisrows = NULL + */ + __pyx_v_nc = ((PetscInt)__pyx_v_mc); + + /* "petsc4py/PETSc/Mat.pyx":588 + * cdef PetscInt nr = mr + * cdef PetscInt nc = mc + * cdef PetscMat *cmats = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + */ + __pyx_v_cmats = NULL; + + /* "petsc4py/PETSc/Mat.pyx":589 + * cdef PetscInt nc = mc + * cdef PetscMat *cmats = NULL + * cdef PetscIS *cisrows = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *ciscols = NULL + * cdef object tmp1, tmp2, tmp3 + */ + __pyx_v_cisrows = NULL; + + /* "petsc4py/PETSc/Mat.pyx":590 + * cdef PetscMat *cmats = NULL + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL # <<<<<<<<<<<<<< + * cdef object tmp1, tmp2, tmp3 + * tmp1 = oarray_p(empty_p(nr*nc), NULL, &cmats) + */ + __pyx_v_ciscols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":592 + * cdef PetscIS *ciscols = NULL + * cdef object tmp1, tmp2, tmp3 + * tmp1 = oarray_p(empty_p(nr*nc), NULL, &cmats) # <<<<<<<<<<<<<< + * for i from 0 <= i < mr: + * for j from 0 <= j < mc: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p((__pyx_v_nr * __pyx_v_nc))); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cmats)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp1 = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":593 + * cdef object tmp1, tmp2, tmp3 + * tmp1 = oarray_p(empty_p(nr*nc), NULL, &cmats) + * for i from 0 <= i < mr: # <<<<<<<<<<<<<< + * for j from 0 <= j < mc: + * mat = mats[i][j] + */ + __pyx_t_3 = __pyx_v_mr; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/Mat.pyx":594 + * tmp1 = oarray_p(empty_p(nr*nc), NULL, &cmats) + * for i from 0 <= i < mr: + * for j from 0 <= j < mc: # <<<<<<<<<<<<<< + * mat = mats[i][j] + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL + */ + __pyx_t_7 = __pyx_v_mc; + for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_7; __pyx_v_j++) { + + /* "petsc4py/PETSc/Mat.pyx":595 + * for i from 0 <= i < mr: + * for j from 0 <= j < mc: + * mat = mats[i][j] # <<<<<<<<<<<<<< + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL + * if isrows is not None: + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_mats, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_j, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF_SET(__pyx_v_mat, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":596 + * for j from 0 <= j < mc: + * mat = mats[i][j] + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL # <<<<<<<<<<<<<< + * if isrows is not None: + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + */ + __pyx_t_6 = (__pyx_v_mat != Py_None); + if ((__pyx_t_6 != 0)) { + if (!(likely(__Pyx_TypeTest(__pyx_v_mat, __pyx_ptype_8petsc4py_5PETSc_Mat)))) __PYX_ERR(45, 596, __pyx_L1_error) + __pyx_t_9 = ((struct PyPetscMatObject *)__pyx_v_mat)->mat; + } else { + __pyx_t_9 = NULL; + } + (__pyx_v_cmats[((__pyx_v_i * __pyx_v_mc) + __pyx_v_j)]) = __pyx_t_9; + } + } + + /* "petsc4py/PETSc/Mat.pyx":597 + * mat = mats[i][j] + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL + * if isrows is not None: # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + */ + __pyx_t_6 = (__pyx_v_isrows != Py_None); + __pyx_t_10 = (__pyx_t_6 != 0); + if (__pyx_t_10) { + + /* "petsc4py/PETSc/Mat.pyx":598 + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL + * if isrows is not None: + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) # <<<<<<<<<<<<<< + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + * if iscols is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nr)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cisrows)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp2 = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":599 + * if isrows is not None: + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset # <<<<<<<<<<<<<< + * if iscols is not None: + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) + */ + __pyx_t_3 = __pyx_v_mr; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_isrows, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(45, 599, __pyx_L1_error) + __pyx_t_11 = ((struct PyPetscISObject *)__pyx_t_2)->iset; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + (__pyx_v_cisrows[__pyx_v_i]) = __pyx_t_11; + } + + /* "petsc4py/PETSc/Mat.pyx":597 + * mat = mats[i][j] + * cmats[i*mc+j] = (mat).mat if mat is not None else NULL + * if isrows is not None: # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + */ + } + + /* "petsc4py/PETSc/Mat.pyx":600 + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + * if iscols is not None: # <<<<<<<<<<<<<< + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset + */ + __pyx_t_10 = (__pyx_v_iscols != Py_None); + __pyx_t_6 = (__pyx_t_10 != 0); + if (__pyx_t_6) { + + /* "petsc4py/PETSc/Mat.pyx":601 + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + * if iscols is not None: + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) # <<<<<<<<<<<<<< + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset + * cdef PetscMat newmat = NULL + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_ciscols)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp3 = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":602 + * if iscols is not None: + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset # <<<<<<<<<<<<<< + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNest(ccomm, nr, cisrows, nc, ciscols, cmats, &newmat) ) + */ + __pyx_t_3 = __pyx_v_mc; + for (__pyx_v_j = 0; __pyx_v_j < __pyx_t_3; __pyx_v_j++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_iscols, __pyx_v_j, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(45, 602, __pyx_L1_error) + __pyx_t_11 = ((struct PyPetscISObject *)__pyx_t_1)->iset; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_ciscols[__pyx_v_j]) = __pyx_t_11; + } + + /* "petsc4py/PETSc/Mat.pyx":600 + * tmp2 = oarray_p(empty_p(nr), NULL, &cisrows) + * for i from 0 <= i < mr: cisrows[i] = (isrows[i]).iset + * if iscols is not None: # <<<<<<<<<<<<<< + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset + */ + } + + /* "petsc4py/PETSc/Mat.pyx":603 + * tmp3 = oarray_p(empty_p(nc), NULL, &ciscols) + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateNest(ccomm, nr, cisrows, nc, ciscols, cmats, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":604 + * for j from 0 <= j < mc: ciscols[j] = (iscols[j]).iset + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNest(ccomm, nr, cisrows, nc, ciscols, cmats, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateNest(__pyx_v_ccomm, __pyx_v_nr, __pyx_v_cisrows, __pyx_v_nc, __pyx_v_ciscols, __pyx_v_cmats, (&__pyx_v_newmat))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 604, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":605 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateNest(ccomm, nr, cisrows, nc, ciscols, cmats, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":606 + * CHKERR( MatCreateNest(ccomm, nr, cisrows, nc, ciscols, cmats, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":570 + * return self + * + * def createNest(self, mats, isrows=None, iscols=None, comm=None): # <<<<<<<<<<<<<< + * cdef object mat + * mats = [list(mat) for mat in mats] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createNest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_tmp1); + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_XDECREF(__pyx_v_tmp3); + __Pyx_XDECREF(__pyx_8genexpr3__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_mats); + __Pyx_XDECREF(__pyx_v_isrows); + __Pyx_XDECREF(__pyx_v_iscols); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":608 + * return self + * + * def createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 1 + * cdef PetscReal *coords = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_87createH2OpusFromMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_86createH2OpusFromMat[] = "Mat.createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_87createH2OpusFromMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_A = 0; + PyObject *__pyx_v_coordinates = 0; + PyObject *__pyx_v_dist = 0; + PyObject *__pyx_v_eta = 0; + PyObject *__pyx_v_leafsize = 0; + PyObject *__pyx_v_maxrank = 0; + PyObject *__pyx_v_bs = 0; + PyObject *__pyx_v_rtol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createH2OpusFromMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_A,&__pyx_n_s_coordinates,&__pyx_n_s_dist,&__pyx_n_s_eta,&__pyx_n_s_leafsize,&__pyx_n_s_maxrank,&__pyx_n_s_bs,&__pyx_n_s_rtol,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + values[6] = ((PyObject *)Py_None); + values[7] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coordinates); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dist); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eta); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_leafsize); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxrank); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bs); + if (value) { values[6] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol); + if (value) { values[7] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createH2OpusFromMat") < 0)) __PYX_ERR(45, 608, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_A = ((struct PyPetscMatObject *)values[0]); + __pyx_v_coordinates = values[1]; + __pyx_v_dist = values[2]; + __pyx_v_eta = values[3]; + __pyx_v_leafsize = values[4]; + __pyx_v_maxrank = values[5]; + __pyx_v_bs = values[6]; + __pyx_v_rtol = values[7]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createH2OpusFromMat", 0, 1, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 608, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createH2OpusFromMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "A", 0))) __PYX_ERR(45, 608, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_86createH2OpusFromMat(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_A, __pyx_v_coordinates, __pyx_v_dist, __pyx_v_eta, __pyx_v_leafsize, __pyx_v_maxrank, __pyx_v_bs, __pyx_v_rtol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_86createH2OpusFromMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_coordinates, PyObject *__pyx_v_dist, PyObject *__pyx_v_eta, PyObject *__pyx_v_leafsize, PyObject *__pyx_v_maxrank, PyObject *__pyx_v_bs, PyObject *__pyx_v_rtol) { + PetscInt __pyx_v_cdim; + PetscReal *__pyx_v_coords; + PetscBool __pyx_v_cdist; + PetscReal __pyx_v_peta; + PetscInt __pyx_v_lsize; + PetscInt __pyx_v_maxr; + PetscInt __pyx_v_pbs; + PetscReal __pyx_v_tol; + PyArrayObject *__pyx_v_xyz = 0; + PetscInt __pyx_v_nvtx; + PetscInt __pyx_v_rl; + PetscInt __pyx_v_cl; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscBool __pyx_t_3; + PetscReal __pyx_t_4; + PetscInt __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createH2OpusFromMat", 0); + + /* "petsc4py/PETSc/Mat.pyx":609 + * + * def createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None): + * cdef PetscInt cdim = 1 # <<<<<<<<<<<<<< + * cdef PetscReal *coords = NULL + * cdef PetscBool cdist = PETSC_FALSE + */ + __pyx_v_cdim = 1; + + /* "petsc4py/PETSc/Mat.pyx":610 + * def createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None): + * cdef PetscInt cdim = 1 + * cdef PetscReal *coords = NULL # <<<<<<<<<<<<<< + * cdef PetscBool cdist = PETSC_FALSE + * cdef PetscReal peta = PETSC_DECIDE + */ + __pyx_v_coords = NULL; + + /* "petsc4py/PETSc/Mat.pyx":611 + * cdef PetscInt cdim = 1 + * cdef PetscReal *coords = NULL + * cdef PetscBool cdist = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscReal peta = PETSC_DECIDE + * cdef PetscInt lsize = PETSC_DECIDE + */ + __pyx_v_cdist = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":612 + * cdef PetscReal *coords = NULL + * cdef PetscBool cdist = PETSC_FALSE + * cdef PetscReal peta = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt lsize = PETSC_DECIDE + * cdef PetscInt maxr = PETSC_DECIDE + */ + __pyx_v_peta = PETSC_DECIDE; + + /* "petsc4py/PETSc/Mat.pyx":613 + * cdef PetscBool cdist = PETSC_FALSE + * cdef PetscReal peta = PETSC_DECIDE + * cdef PetscInt lsize = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt maxr = PETSC_DECIDE + * cdef PetscInt pbs = PETSC_DECIDE + */ + __pyx_v_lsize = PETSC_DECIDE; + + /* "petsc4py/PETSc/Mat.pyx":614 + * cdef PetscReal peta = PETSC_DECIDE + * cdef PetscInt lsize = PETSC_DECIDE + * cdef PetscInt maxr = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt pbs = PETSC_DECIDE + * cdef PetscReal tol = PETSC_DECIDE + */ + __pyx_v_maxr = PETSC_DECIDE; + + /* "petsc4py/PETSc/Mat.pyx":615 + * cdef PetscInt lsize = PETSC_DECIDE + * cdef PetscInt maxr = PETSC_DECIDE + * cdef PetscInt pbs = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscReal tol = PETSC_DECIDE + * cdef ndarray xyz + */ + __pyx_v_pbs = PETSC_DECIDE; + + /* "petsc4py/PETSc/Mat.pyx":616 + * cdef PetscInt maxr = PETSC_DECIDE + * cdef PetscInt pbs = PETSC_DECIDE + * cdef PetscReal tol = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef ndarray xyz + * cdef PetscInt nvtx + */ + __pyx_v_tol = PETSC_DECIDE; + + /* "petsc4py/PETSc/Mat.pyx":619 + * cdef ndarray xyz + * cdef PetscInt nvtx + * cdef PetscInt rl = 0, cl = 0 # <<<<<<<<<<<<<< + * if dist is not None: cdist = asBool(dist) + * if eta is not None: peta = asReal(eta) + */ + __pyx_v_rl = 0; + __pyx_v_cl = 0; + + /* "petsc4py/PETSc/Mat.pyx":620 + * cdef PetscInt nvtx + * cdef PetscInt rl = 0, cl = 0 + * if dist is not None: cdist = asBool(dist) # <<<<<<<<<<<<<< + * if eta is not None: peta = asReal(eta) + * if leafsize is not None: lsize = asInt(leafsize) + */ + __pyx_t_1 = (__pyx_v_dist != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_dist); if (unlikely(__pyx_t_3 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(45, 620, __pyx_L1_error) + __pyx_v_cdist = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":621 + * cdef PetscInt rl = 0, cl = 0 + * if dist is not None: cdist = asBool(dist) + * if eta is not None: peta = asReal(eta) # <<<<<<<<<<<<<< + * if leafsize is not None: lsize = asInt(leafsize) + * if maxrank is not None: maxr = asInt(maxrank) + */ + __pyx_t_2 = (__pyx_v_eta != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_eta); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 621, __pyx_L1_error) + __pyx_v_peta = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":622 + * if dist is not None: cdist = asBool(dist) + * if eta is not None: peta = asReal(eta) + * if leafsize is not None: lsize = asInt(leafsize) # <<<<<<<<<<<<<< + * if maxrank is not None: maxr = asInt(maxrank) + * if bs is not None: pbs = asInt(bs) + */ + __pyx_t_1 = (__pyx_v_leafsize != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_leafsize); if (unlikely(__pyx_t_5 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 622, __pyx_L1_error) + __pyx_v_lsize = __pyx_t_5; + } + + /* "petsc4py/PETSc/Mat.pyx":623 + * if eta is not None: peta = asReal(eta) + * if leafsize is not None: lsize = asInt(leafsize) + * if maxrank is not None: maxr = asInt(maxrank) # <<<<<<<<<<<<<< + * if bs is not None: pbs = asInt(bs) + * if rtol is not None: tol = asReal(rtol) + */ + __pyx_t_2 = (__pyx_v_maxrank != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_maxrank); if (unlikely(__pyx_t_5 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 623, __pyx_L1_error) + __pyx_v_maxr = __pyx_t_5; + } + + /* "petsc4py/PETSc/Mat.pyx":624 + * if leafsize is not None: lsize = asInt(leafsize) + * if maxrank is not None: maxr = asInt(maxrank) + * if bs is not None: pbs = asInt(bs) # <<<<<<<<<<<<<< + * if rtol is not None: tol = asReal(rtol) + * + */ + __pyx_t_1 = (__pyx_v_bs != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bs); if (unlikely(__pyx_t_5 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 624, __pyx_L1_error) + __pyx_v_pbs = __pyx_t_5; + } + + /* "petsc4py/PETSc/Mat.pyx":625 + * if maxrank is not None: maxr = asInt(maxrank) + * if bs is not None: pbs = asInt(bs) + * if rtol is not None: tol = asReal(rtol) # <<<<<<<<<<<<<< + * + * if coordinates is not None: + */ + __pyx_t_2 = (__pyx_v_rtol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 625, __pyx_L1_error) + __pyx_v_tol = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":627 + * if rtol is not None: tol = asReal(rtol) + * + * if coordinates is not None: # <<<<<<<<<<<<<< + * xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + __pyx_t_1 = (__pyx_v_coordinates != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":628 + * + * if coordinates is not None: + * xyz = iarray(coordinates, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_coordinates, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_xyz = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":629 + * if coordinates is not None: + * xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) # <<<<<<<<<<<<<< + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_xyz) != 0); + if (__pyx_t_2) { + __pyx_t_6 = ((PyObject *)PyArray_Copy(__pyx_v_xyz)); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_xyz, ((PyArrayObject *)__pyx_t_6)); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":630 + * xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_2 = ((PyArray_NDIM(__pyx_v_xyz) != 2) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Mat.pyx":632 + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) # <<<<<<<<<<<<<< + * nvtx = PyArray_DIM(xyz, 0) + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + */ + __pyx_t_6 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_xyz)); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_coordinates_must_have_two_dimens, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":630 + * xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(45, 630, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":633 + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * nvtx = PyArray_DIM(xyz, 0) # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + * if cl != rl: raise ValueError("Not for rectangular matrices") + */ + __pyx_v_nvtx = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 0)); + + /* "petsc4py/PETSc/Mat.pyx":634 + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * nvtx = PyArray_DIM(xyz, 0) + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) # <<<<<<<<<<<<<< + * if cl != rl: raise ValueError("Not for rectangular matrices") + * if nvtx < rl: raise ValueError( + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_A->mat, (&__pyx_v_rl), (&__pyx_v_cl))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 634, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":635 + * nvtx = PyArray_DIM(xyz, 0) + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + * if cl != rl: raise ValueError("Not for rectangular matrices") # <<<<<<<<<<<<<< + * if nvtx < rl: raise ValueError( + * ("coordinates size must be at least %d" % rl )) + */ + __pyx_t_2 = ((__pyx_v_cl != __pyx_v_rl) != 0); + if (unlikely(__pyx_t_2)) { + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(45, 635, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":636 + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + * if cl != rl: raise ValueError("Not for rectangular matrices") + * if nvtx < rl: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates size must be at least %d" % rl )) + * cdim = PyArray_DIM(xyz, 1) + */ + __pyx_t_2 = ((__pyx_v_nvtx < __pyx_v_rl) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Mat.pyx":637 + * if cl != rl: raise ValueError("Not for rectangular matrices") + * if nvtx < rl: raise ValueError( + * ("coordinates size must be at least %d" % rl )) # <<<<<<<<<<<<<< + * cdim = PyArray_DIM(xyz, 1) + * coords = PyArray_DATA(xyz) + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_rl); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyString_Format(__pyx_kp_s_coordinates_size_must_be_at_leas, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":636 + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + * if cl != rl: raise ValueError("Not for rectangular matrices") + * if nvtx < rl: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates size must be at least %d" % rl )) + * cdim = PyArray_DIM(xyz, 1) + */ + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(45, 636, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":638 + * if nvtx < rl: raise ValueError( + * ("coordinates size must be at least %d" % rl )) + * cdim = PyArray_DIM(xyz, 1) # <<<<<<<<<<<<<< + * coords = PyArray_DATA(xyz) + * + */ + __pyx_v_cdim = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 1)); + + /* "petsc4py/PETSc/Mat.pyx":639 + * ("coordinates size must be at least %d" % rl )) + * cdim = PyArray_DIM(xyz, 1) + * coords = PyArray_DATA(xyz) # <<<<<<<<<<<<<< + * + * cdef PetscMat newmat = NULL + */ + __pyx_v_coords = ((PetscReal *)PyArray_DATA(__pyx_v_xyz)); + + /* "petsc4py/PETSc/Mat.pyx":627 + * if rtol is not None: tol = asReal(rtol) + * + * if coordinates is not None: # <<<<<<<<<<<<<< + * xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":641 + * coords = PyArray_DATA(xyz) + * + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateH2OpusFromMat(A.mat, cdim, coords, cdist, peta, lsize, maxr, pbs, tol, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":642 + * + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateH2OpusFromMat(A.mat, cdim, coords, cdist, peta, lsize, maxr, pbs, tol, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateH2OpusFromMat(__pyx_v_A->mat, __pyx_v_cdim, __pyx_v_coords, __pyx_v_cdist, __pyx_v_peta, __pyx_v_lsize, __pyx_v_maxr, __pyx_v_pbs, __pyx_v_tol, (&__pyx_v_newmat))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 642, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":643 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreateH2OpusFromMat(A.mat, cdim, coords, cdist, peta, lsize, maxr, pbs, tol, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":644 + * CHKERR( MatCreateH2OpusFromMat(A.mat, cdim, coords, cdist, peta, lsize, maxr, pbs, tol, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createIS(self, size, LGMap lgmapr=None, LGMap lgmapc=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":608 + * return self + * + * def createH2OpusFromMat(self, Mat A, coordinates=None, dist=None, eta=None, leafsize=None, maxrank=None, bs=None, rtol=None): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 1 + * cdef PetscReal *coords = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createH2OpusFromMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xyz); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":646 + * return self + * + * def createIS(self, size, LGMap lgmapr=None, LGMap lgmapc=None, comm=None): # <<<<<<<<<<<<<< + * # communicator and sizes + * if comm is None and lgmapr is not None: comm = lgmapr.getComm() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_89createIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_88createIS[] = "Mat.createIS(self, size, LGMap lgmapr=None, LGMap lgmapc=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_89createIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + struct PyPetscLGMapObject *__pyx_v_lgmapr = 0; + struct PyPetscLGMapObject *__pyx_v_lgmapc = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_lgmapr,&__pyx_n_s_lgmapc,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscLGMapObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscLGMapObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lgmapr); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lgmapc); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createIS") < 0)) __PYX_ERR(45, 646, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_lgmapr = ((struct PyPetscLGMapObject *)values[1]); + __pyx_v_lgmapc = ((struct PyPetscLGMapObject *)values[2]); + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createIS", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 646, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lgmapr), __pyx_ptype_8petsc4py_5PETSc_LGMap, 1, "lgmapr", 0))) __PYX_ERR(45, 646, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lgmapc), __pyx_ptype_8petsc4py_5PETSc_LGMap, 1, "lgmapc", 0))) __PYX_ERR(45, 646, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_88createIS(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_lgmapr, __pyx_v_lgmapc, __pyx_v_comm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_88createIS(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, struct PyPetscLGMapObject *__pyx_v_lgmapr, struct PyPetscLGMapObject *__pyx_v_lgmapc, PyObject *__pyx_v_comm) { + ISLocalToGlobalMapping __pyx_v_lgmr; + ISLocalToGlobalMapping __pyx_v_lgmc; + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + Mat __pyx_v_newmat; + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + MPI_Comm __pyx_t_7; + PetscErrorCode __pyx_t_8; + ISLocalToGlobalMapping __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createIS", 0); + __Pyx_INCREF(__pyx_v_comm); + + /* "petsc4py/PETSc/Mat.pyx":648 + * def createIS(self, size, LGMap lgmapr=None, LGMap lgmapc=None, comm=None): + * # communicator and sizes + * if comm is None and lgmapr is not None: comm = lgmapr.getComm() # <<<<<<<<<<<<<< + * if comm is None and lgmapc is not None: comm = lgmapc.getComm() + * cdef PetscLGMap lgmr = NULL + */ + __pyx_t_2 = (__pyx_v_comm == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)__pyx_v_lgmapr) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_lgmapr), __pyx_n_s_getComm); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_comm, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":649 + * # communicator and sizes + * if comm is None and lgmapr is not None: comm = lgmapr.getComm() + * if comm is None and lgmapc is not None: comm = lgmapc.getComm() # <<<<<<<<<<<<<< + * cdef PetscLGMap lgmr = NULL + * cdef PetscLGMap lgmc = NULL + */ + __pyx_t_2 = (__pyx_v_comm == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_3 = (((PyObject *)__pyx_v_lgmapc) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L7_bool_binop_done:; + if (__pyx_t_1) { + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_lgmapc), __pyx_n_s_getComm); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_comm, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":650 + * if comm is None and lgmapr is not None: comm = lgmapr.getComm() + * if comm is None and lgmapc is not None: comm = lgmapc.getComm() + * cdef PetscLGMap lgmr = NULL # <<<<<<<<<<<<<< + * cdef PetscLGMap lgmc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_lgmr = NULL; + + /* "petsc4py/PETSc/Mat.pyx":651 + * if comm is None and lgmapc is not None: comm = lgmapc.getComm() + * cdef PetscLGMap lgmr = NULL + * cdef PetscLGMap lgmc = NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + */ + __pyx_v_lgmc = NULL; + + /* "petsc4py/PETSc/Mat.pyx":652 + * cdef PetscLGMap lgmr = NULL + * cdef PetscLGMap lgmc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 652, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/Mat.pyx":653 + * cdef PetscLGMap lgmc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":654 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, Py_None, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 654, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":655 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_rbs, (&__pyx_v_m), (&__pyx_v_M)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 655, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":656 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_cbs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 656, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":658 + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * if rbs == cbs: bs = rbs + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":659 + * # create matrix + * cdef PetscMat newmat = NULL + * cdef PetscInt bs = 1 # <<<<<<<<<<<<<< + * if rbs == cbs: bs = rbs + * if lgmapr is not None: + */ + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/Mat.pyx":660 + * cdef PetscMat newmat = NULL + * cdef PetscInt bs = 1 + * if rbs == cbs: bs = rbs # <<<<<<<<<<<<<< + * if lgmapr is not None: + * lgmr = lgmapr.lgm + */ + __pyx_t_1 = ((__pyx_v_rbs == __pyx_v_cbs) != 0); + if (__pyx_t_1) { + __pyx_v_bs = __pyx_v_rbs; + } + + /* "petsc4py/PETSc/Mat.pyx":661 + * cdef PetscInt bs = 1 + * if rbs == cbs: bs = rbs + * if lgmapr is not None: # <<<<<<<<<<<<<< + * lgmr = lgmapr.lgm + * if lgmapc is not None: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_lgmapr) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":662 + * if rbs == cbs: bs = rbs + * if lgmapr is not None: + * lgmr = lgmapr.lgm # <<<<<<<<<<<<<< + * if lgmapc is not None: + * lgmc = lgmapc.lgm + */ + __pyx_t_9 = __pyx_v_lgmapr->lgm; + __pyx_v_lgmr = __pyx_t_9; + + /* "petsc4py/PETSc/Mat.pyx":661 + * cdef PetscInt bs = 1 + * if rbs == cbs: bs = rbs + * if lgmapr is not None: # <<<<<<<<<<<<<< + * lgmr = lgmapr.lgm + * if lgmapc is not None: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":663 + * if lgmapr is not None: + * lgmr = lgmapr.lgm + * if lgmapc is not None: # <<<<<<<<<<<<<< + * lgmc = lgmapc.lgm + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_lgmapc) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":664 + * lgmr = lgmapr.lgm + * if lgmapc is not None: + * lgmc = lgmapc.lgm # <<<<<<<<<<<<<< + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_t_9 = __pyx_v_lgmapc->lgm; + __pyx_v_lgmc = __pyx_t_9; + + /* "petsc4py/PETSc/Mat.pyx":663 + * if lgmapr is not None: + * lgmr = lgmapr.lgm + * if lgmapc is not None: # <<<<<<<<<<<<<< + * lgmc = lgmapc.lgm + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":665 + * if lgmapc is not None: + * lgmc = lgmapc.lgm + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * return self + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateIS(__pyx_v_ccomm, __pyx_v_bs, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N, __pyx_v_lgmr, __pyx_v_lgmc, (&__pyx_v_newmat))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 665, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":666 + * lgmc = lgmapc.lgm + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":667 + * CHKERR( MatCreateIS(ccomm, bs, m, n, M, N, lgmr, lgmc, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * return self # <<<<<<<<<<<<<< + * + * def createPython(self, size, context=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":646 + * return self + * + * def createIS(self, size, LGMap lgmapr=None, LGMap lgmapc=None, comm=None): # <<<<<<<<<<<<<< + * # communicator and sizes + * if comm is None and lgmapr is not None: comm = lgmapr.getComm() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":669 + * return self + * + * def createPython(self, size, context=None, comm=None): # <<<<<<<<<<<<<< + * # communicator and sizes + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_91createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_90createPython[] = "Mat.createPython(self, size, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_91createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(45, 669, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_size = values[0]; + __pyx_v_context = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 669, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_90createPython(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_size, __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_90createPython(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_size, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + Mat __pyx_v_newmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/Mat.pyx":671 + * def createPython(self, size, context=None, comm=None): + * # communicator and sizes + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 671, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":672 + * # communicator and sizes + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 # <<<<<<<<<<<<<< + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":673 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Mat_Sizes(__pyx_v_size, Py_None, (&__pyx_v_rbs), (&__pyx_v_cbs), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_M), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 673, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":674 + * cdef PetscInt rbs = 0, cbs = 0, m = 0, n = 0, M = 0, N = 0 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) # <<<<<<<<<<<<<< + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_rbs, (&__pyx_v_m), (&__pyx_v_M)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 674, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":675 + * Mat_Sizes(size, None, &rbs, &cbs, &m, &n, &M, &N) + * Sys_Layout(ccomm, rbs, &m, &M) + * Sys_Layout(ccomm, cbs, &n, &N) # <<<<<<<<<<<<<< + * # create matrix + * cdef PetscMat newmat = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_Sys_Layout(__pyx_v_ccomm, __pyx_v_cbs, (&__pyx_v_n), (&__pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 675, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":677 + * Sys_Layout(ccomm, cbs, &n, &N) + * # create matrix + * cdef PetscMat newmat = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + */ + __pyx_v_newmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":678 + * # create matrix + * cdef PetscMat newmat = NULL + * CHKERR( MatCreate(ccomm, &newmat) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.mat = newmat + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreate(__pyx_v_ccomm, (&__pyx_v_newmat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 678, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":679 + * cdef PetscMat newmat = NULL + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat # <<<<<<<<<<<<<< + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * CHKERR( MatSetType(self.mat, MATPYTHON) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->mat = __pyx_v_newmat; + + /* "petsc4py/PETSc/Mat.pyx":680 + * CHKERR( MatCreate(ccomm, &newmat) ) + * PetscCLEAR(self.obj); self.mat = newmat + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) # <<<<<<<<<<<<<< + * CHKERR( MatSetType(self.mat, MATPYTHON) ) + * CHKERR( MatPythonSetContext(self.mat, context) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetSizes(__pyx_v_self->mat, __pyx_v_m, __pyx_v_n, __pyx_v_M, __pyx_v_N)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 680, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":681 + * PetscCLEAR(self.obj); self.mat = newmat + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * CHKERR( MatSetType(self.mat, MATPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetContext(self.mat, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetType(__pyx_v_self->mat, MATPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 681, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":682 + * CHKERR( MatSetSizes(self.mat, m, n, M, N) ) + * CHKERR( MatSetType(self.mat, MATPYTHON) ) + * CHKERR( MatPythonSetContext(self.mat, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = MatPythonSetContext(__pyx_v_self->mat, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 682, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 682, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":683 + * CHKERR( MatSetType(self.mat, MATPYTHON) ) + * CHKERR( MatPythonSetContext(self.mat, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":669 + * return self + * + * def createPython(self, size, context=None, comm=None): # <<<<<<<<<<<<<< + * # communicator and sizes + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":685 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetContext(self.mat, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_93setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_92setPythonContext[] = "Mat.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_93setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(45, 685, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 685, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_92setPythonContext(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_92setPythonContext(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/Mat.pyx":686 + * + * def setPythonContext(self, context): + * CHKERR( MatPythonSetContext(self.mat, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = MatPythonSetContext(__pyx_v_self->mat, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 686, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 686, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":685 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetContext(self.mat, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":688 + * CHKERR( MatPythonSetContext(self.mat, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( MatPythonGetContext(self.mat, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_95getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_94getPythonContext[] = "Mat.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_95getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_94getPythonContext(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_94getPythonContext(struct PyPetscMatObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/Mat.pyx":689 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( MatPythonGetContext(self.mat, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/Mat.pyx":690 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( MatPythonGetContext(self.mat, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = MatPythonGetContext(__pyx_v_self->mat, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 690, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 690, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":691 + * cdef void *context = NULL + * CHKERR( MatPythonGetContext(self.mat, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":692 + * CHKERR( MatPythonGetContext(self.mat, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":688 + * CHKERR( MatPythonSetContext(self.mat, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( MatPythonGetContext(self.mat, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":694 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_97setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_96setPythonType[] = "Mat.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_97setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(45, 694, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 694, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_96setPythonType(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_96setPythonType(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/Mat.pyx":695 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( MatPythonSetType(self.mat, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":696 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetType(self.mat, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":697 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( MatPythonSetType(self.mat, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPythonSetType(__pyx_v_self->mat, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 697, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":694 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":699 + * CHKERR( MatPythonSetType(self.mat, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( MatPythonGetType(self.mat, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_99getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_98getPythonType[] = "Mat.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_99getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_98getPythonType(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_98getPythonType(struct PyPetscMatObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/Mat.pyx":700 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( MatPythonGetType(self.mat, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":701 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( MatPythonGetType(self.mat, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPythonGetType(__pyx_v_self->mat, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 701, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":702 + * cdef const char *cval = NULL + * CHKERR( MatPythonGetType(self.mat, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":699 + * CHKERR( MatPythonSetType(self.mat, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( MatPythonGetType(self.mat, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":706 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_101setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_100setOptionsPrefix[] = "Mat.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_101setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(45, 706, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 706, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_100setOptionsPrefix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_100setOptionsPrefix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Mat.pyx":707 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( MatSetOptionsPrefix(self.mat, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":708 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatSetOptionsPrefix(self.mat, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":709 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( MatSetOptionsPrefix(self.mat, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetOptionsPrefix(__pyx_v_self->mat, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 709, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":706 + * # + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":711 + * CHKERR( MatSetOptionsPrefix(self.mat, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( MatGetOptionsPrefix(self.mat, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_103getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_102getOptionsPrefix[] = "Mat.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_103getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_102getOptionsPrefix(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_102getOptionsPrefix(struct PyPetscMatObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/Mat.pyx":712 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetOptionsPrefix(self.mat, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":713 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( MatGetOptionsPrefix(self.mat, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOptionsPrefix(__pyx_v_self->mat, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 713, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":714 + * cdef const char *cval = NULL + * CHKERR( MatGetOptionsPrefix(self.mat, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":711 + * CHKERR( MatSetOptionsPrefix(self.mat, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( MatGetOptionsPrefix(self.mat, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":716 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_105appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_104appendOptionsPrefix[] = "Mat.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_105appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(45, 716, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 716, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_104appendOptionsPrefix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_104appendOptionsPrefix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/Mat.pyx":717 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( MatAppendOptionsPrefix(self.mat, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":718 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatAppendOptionsPrefix(self.mat, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":719 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( MatAppendOptionsPrefix(self.mat, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAppendOptionsPrefix(__pyx_v_self->mat, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 719, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":716 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":721 + * CHKERR( MatAppendOptionsPrefix(self.mat, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetFromOptions(self.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_107setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_106setFromOptions[] = "Mat.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_107setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_106setFromOptions(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_106setFromOptions(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Mat.pyx":722 + * + * def setFromOptions(self): + * CHKERR( MatSetFromOptions(self.mat) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetFromOptions(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 722, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":721 + * CHKERR( MatAppendOptionsPrefix(self.mat, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetFromOptions(self.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":724 + * CHKERR( MatSetFromOptions(self.mat) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetUp(self.mat) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_109setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_108setUp[] = "Mat.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_109setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_108setUp(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_108setUp(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Mat.pyx":725 + * + * def setUp(self): + * CHKERR( MatSetUp(self.mat) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetUp(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 725, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":726 + * def setUp(self): + * CHKERR( MatSetUp(self.mat) ) + * return self # <<<<<<<<<<<<<< + * + * def setOption(self, option, flag): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":724 + * CHKERR( MatSetFromOptions(self.mat) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetUp(self.mat) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":728 + * return self + * + * def setOption(self, option, flag): # <<<<<<<<<<<<<< + * CHKERR( MatSetOption(self.mat, option, flag) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_111setOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_110setOption[] = "Mat.setOption(self, option, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_111setOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_option = 0; + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOption (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_option,&__pyx_n_s_flag,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setOption", 1, 2, 2, 1); __PYX_ERR(45, 728, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOption") < 0)) __PYX_ERR(45, 728, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_option = values[0]; + __pyx_v_flag = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOption", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 728, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_110setOption(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_option, __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_110setOption(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_option, PyObject *__pyx_v_flag) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatOption __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOption", 0); + + /* "petsc4py/PETSc/Mat.pyx":729 + * + * def setOption(self, option, flag): + * CHKERR( MatSetOption(self.mat, option, flag) ) # <<<<<<<<<<<<<< + * + * def getOption(self, option): + */ + __pyx_t_1 = ((MatOption)__Pyx_PyInt_As_MatOption(__pyx_v_option)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 729, __pyx_L1_error) + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 729, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetOption(__pyx_v_self->mat, __pyx_t_1, __pyx_t_2)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 729, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":728 + * return self + * + * def setOption(self, option, flag): # <<<<<<<<<<<<<< + * CHKERR( MatSetOption(self.mat, option, flag) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":731 + * CHKERR( MatSetOption(self.mat, option, flag) ) + * + * def getOption(self, option): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatGetOption(self.mat, option, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_113getOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_112getOption[] = "Mat.getOption(self, option)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_113getOption(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_option = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOption (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_option,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getOption") < 0)) __PYX_ERR(45, 731, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_option = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getOption", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 731, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_112getOption(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_option); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_112getOption(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_option) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatOption __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOption", 0); + + /* "petsc4py/PETSc/Mat.pyx":732 + * + * def getOption(self, option): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatGetOption(self.mat, option, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":733 + * def getOption(self, option): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatGetOption(self.mat, option, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = ((MatOption)__Pyx_PyInt_As_MatOption(__pyx_v_option)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 733, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOption(__pyx_v_self->mat, __pyx_t_1, (&__pyx_v_flag))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 733, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":734 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatGetOption(self.mat, option, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":731 + * CHKERR( MatSetOption(self.mat, option, flag) ) + * + * def getOption(self, option): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatGetOption(self.mat, option, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOption", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":736 + * return toBool(flag) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscMatType cval = NULL + * CHKERR( MatGetType(self.mat, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_115getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_114getType[] = "Mat.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_115getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_114getType(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_114getType(struct PyPetscMatObject *__pyx_v_self) { + MatType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Mat.pyx":737 + * + * def getType(self): + * cdef PetscMatType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetType(self.mat, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":738 + * def getType(self): + * cdef PetscMatType cval = NULL + * CHKERR( MatGetType(self.mat, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetType(__pyx_v_self->mat, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 738, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":739 + * cdef PetscMatType cval = NULL + * CHKERR( MatGetType(self.mat, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":736 + * return toBool(flag) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscMatType cval = NULL + * CHKERR( MatGetType(self.mat, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":741 + * return bytes2str(cval) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetSize(self.mat, &M, &N) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_117getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_116getSize[] = "Mat.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_117getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_116getSize(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_116getSize(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/Mat.pyx":742 + * + * def getSize(self): + * cdef PetscInt M = 0, N = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, &N) ) + * return (toInt(M), toInt(N)) + */ + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":743 + * def getSize(self): + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetSize(self.mat, &M, &N) ) # <<<<<<<<<<<<<< + * return (toInt(M), toInt(N)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, (&__pyx_v_M), (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 743, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":744 + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetSize(self.mat, &M, &N) ) + * return (toInt(M), toInt(N)) # <<<<<<<<<<<<<< + * + * def getLocalSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 744, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":741 + * return bytes2str(cval) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetSize(self.mat, &M, &N) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":746 + * return (toInt(M), toInt(N)) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt m = 0, n = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_119getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_118getLocalSize[] = "Mat.getLocalSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_119getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_118getLocalSize(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_118getLocalSize(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSize", 0); + + /* "petsc4py/PETSc/Mat.pyx":747 + * + * def getLocalSize(self): + * cdef PetscInt m = 0, n = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + * return (toInt(m), toInt(n)) + */ + __pyx_v_m = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Mat.pyx":748 + * def getLocalSize(self): + * cdef PetscInt m = 0, n = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) # <<<<<<<<<<<<<< + * return (toInt(m), toInt(n)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_self->mat, (&__pyx_v_m), (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 748, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":749 + * cdef PetscInt m = 0, n = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + * return (toInt(m), toInt(n)) # <<<<<<<<<<<<<< + * + * def getSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":746 + * return (toInt(M), toInt(N)) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt m = 0, n = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getLocalSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":751 + * return (toInt(m), toInt(n)) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt m = 0, n = 0 + * cdef PetscInt M = 0, N = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_121getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_120getSizes[] = "Mat.getSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_121getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_120getSizes(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_120getSizes(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSizes", 0); + + /* "petsc4py/PETSc/Mat.pyx":752 + * + * def getSizes(self): + * cdef PetscInt m = 0, n = 0 # <<<<<<<<<<<<<< + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + */ + __pyx_v_m = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Mat.pyx":753 + * def getSizes(self): + * cdef PetscInt m = 0, n = 0 + * cdef PetscInt M = 0, N = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + * CHKERR( MatGetSize(self.mat, &M, &N) ) + */ + __pyx_v_M = 0; + __pyx_v_N = 0; + + /* "petsc4py/PETSc/Mat.pyx":754 + * cdef PetscInt m = 0, n = 0 + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, &M, &N) ) + * return ((toInt(m), toInt(M)), (toInt(n), toInt(N))) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_self->mat, (&__pyx_v_m), (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 754, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":755 + * cdef PetscInt M = 0, N = 0 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + * CHKERR( MatGetSize(self.mat, &M, &N) ) # <<<<<<<<<<<<<< + * return ((toInt(m), toInt(M)), (toInt(n), toInt(N))) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, (&__pyx_v_M), (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 755, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":756 + * CHKERR( MatGetLocalSize(self.mat, &m, &n) ) + * CHKERR( MatGetSize(self.mat, &M, &N) ) + * return ((toInt(m), toInt(M)), (toInt(n), toInt(N))) # <<<<<<<<<<<<<< + * + * def getBlockSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_M); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_N); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":751 + * return (toInt(m), toInt(n)) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt m = 0, n = 0 + * cdef PetscInt M = 0, N = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":758 + * return ((toInt(m), toInt(M)), (toInt(n), toInt(N))) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 0 + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_123getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_122getBlockSize[] = "Mat.getBlockSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_123getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_122getBlockSize(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_122getBlockSize(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSize", 0); + + /* "petsc4py/PETSc/Mat.pyx":759 + * + * def getBlockSize(self): + * cdef PetscInt bs = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + * return toInt(bs) + */ + __pyx_v_bs = 0; + + /* "petsc4py/PETSc/Mat.pyx":760 + * def getBlockSize(self): + * cdef PetscInt bs = 0 + * CHKERR( MatGetBlockSize(self.mat, &bs) ) # <<<<<<<<<<<<<< + * return toInt(bs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSize(__pyx_v_self->mat, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 760, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":761 + * cdef PetscInt bs = 0 + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + * return toInt(bs) # <<<<<<<<<<<<<< + * + * def getBlockSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":758 + * return ((toInt(m), toInt(M)), (toInt(n), toInt(N))) + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 0 + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":763 + * return toInt(bs) + * + * def getBlockSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0 + * CHKERR( MatGetBlockSizes(self.mat, &rbs, &cbs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_125getBlockSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_124getBlockSizes[] = "Mat.getBlockSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_125getBlockSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_124getBlockSizes(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_124getBlockSizes(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSizes", 0); + + /* "petsc4py/PETSc/Mat.pyx":764 + * + * def getBlockSizes(self): + * cdef PetscInt rbs = 0, cbs = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSizes(self.mat, &rbs, &cbs) ) + * return (toInt(rbs), toInt(cbs)) + */ + __pyx_v_rbs = 0; + __pyx_v_cbs = 0; + + /* "petsc4py/PETSc/Mat.pyx":765 + * def getBlockSizes(self): + * cdef PetscInt rbs = 0, cbs = 0 + * CHKERR( MatGetBlockSizes(self.mat, &rbs, &cbs) ) # <<<<<<<<<<<<<< + * return (toInt(rbs), toInt(cbs)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSizes(__pyx_v_self->mat, (&__pyx_v_rbs), (&__pyx_v_cbs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 765, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":766 + * cdef PetscInt rbs = 0, cbs = 0 + * CHKERR( MatGetBlockSizes(self.mat, &rbs, &cbs) ) + * return (toInt(rbs), toInt(cbs)) # <<<<<<<<<<<<<< + * + * def getOwnershipRange(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_rbs); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cbs); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":763 + * return toInt(bs) + * + * def getBlockSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt rbs = 0, cbs = 0 + * CHKERR( MatGetBlockSizes(self.mat, &rbs, &cbs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getBlockSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":768 + * return (toInt(rbs), toInt(cbs)) + * + * def getOwnershipRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRange(self.mat, &ival1, &ival2) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_127getOwnershipRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_126getOwnershipRange[] = "Mat.getOwnershipRange(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_127getOwnershipRange(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRange (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRange", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRange", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_126getOwnershipRange(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_126getOwnershipRange(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRange", 0); + + /* "petsc4py/PETSc/Mat.pyx":769 + * + * def getOwnershipRange(self): + * cdef PetscInt ival1 = 0, ival2 = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRange(self.mat, &ival1, &ival2) ) + * return (toInt(ival1), toInt(ival2)) + */ + __pyx_v_ival1 = 0; + __pyx_v_ival2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":770 + * def getOwnershipRange(self): + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRange(self.mat, &ival1, &ival2) ) # <<<<<<<<<<<<<< + * return (toInt(ival1), toInt(ival2)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRange(__pyx_v_self->mat, (&__pyx_v_ival1), (&__pyx_v_ival2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 770, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":771 + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRange(self.mat, &ival1, &ival2) ) + * return (toInt(ival1), toInt(ival2)) # <<<<<<<<<<<<<< + * + * def getOwnershipRanges(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":768 + * return (toInt(rbs), toInt(cbs)) + * + * def getOwnershipRange(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRange(self.mat, &ival1, &ival2) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOwnershipRange", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":773 + * return (toInt(ival1), toInt(ival2)) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *rowrng = NULL + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_129getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_128getOwnershipRanges[] = "Mat.getOwnershipRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_129getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_128getOwnershipRanges(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_128getOwnershipRanges(struct PyPetscMatObject *__pyx_v_self) { + PetscInt const *__pyx_v_rowrng; + MPI_Comm __pyx_v_comm; + int __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRanges", 0); + + /* "petsc4py/PETSc/Mat.pyx":774 + * + * def getOwnershipRanges(self): + * cdef const PetscInt *rowrng = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + */ + __pyx_v_rowrng = NULL; + + /* "petsc4py/PETSc/Mat.pyx":775 + * def getOwnershipRanges(self): + * cdef const PetscInt *rowrng = NULL + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRanges(__pyx_v_self->mat, (&__pyx_v_rowrng))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 775, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":776 + * cdef const PetscInt *rowrng = NULL + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Mat.pyx":777 + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) # <<<<<<<<<<<<<< + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->mat), (&__pyx_v_comm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 777, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":778 + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, rowrng) + */ + __pyx_v_size = -1; + + /* "petsc4py/PETSc/Mat.pyx":779 + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) # <<<<<<<<<<<<<< + * return array_i(size+1, rowrng) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 779, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":780 + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, rowrng) # <<<<<<<<<<<<<< + * + * def getOwnershipRangeColumn(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_size + 1), __pyx_v_rowrng)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":773 + * return (toInt(ival1), toInt(ival2)) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *rowrng = NULL + * CHKERR( MatGetOwnershipRanges(self.mat, &rowrng) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":782 + * return array_i(size+1, rowrng) + * + * def getOwnershipRangeColumn(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRangeColumn(self.mat, &ival1, &ival2) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_131getOwnershipRangeColumn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_130getOwnershipRangeColumn[] = "Mat.getOwnershipRangeColumn(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_131getOwnershipRangeColumn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRangeColumn (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRangeColumn", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRangeColumn", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_130getOwnershipRangeColumn(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_130getOwnershipRangeColumn(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRangeColumn", 0); + + /* "petsc4py/PETSc/Mat.pyx":783 + * + * def getOwnershipRangeColumn(self): + * cdef PetscInt ival1 = 0, ival2 = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRangeColumn(self.mat, &ival1, &ival2) ) + * return (toInt(ival1), toInt(ival2)) + */ + __pyx_v_ival1 = 0; + __pyx_v_ival2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":784 + * def getOwnershipRangeColumn(self): + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRangeColumn(self.mat, &ival1, &ival2) ) # <<<<<<<<<<<<<< + * return (toInt(ival1), toInt(ival2)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRangeColumn(__pyx_v_self->mat, (&__pyx_v_ival1), (&__pyx_v_ival2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 784, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":785 + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRangeColumn(self.mat, &ival1, &ival2) ) + * return (toInt(ival1), toInt(ival2)) # <<<<<<<<<<<<<< + * + * def getOwnershipRangesColumn(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":782 + * return array_i(size+1, rowrng) + * + * def getOwnershipRangeColumn(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0 + * CHKERR( MatGetOwnershipRangeColumn(self.mat, &ival1, &ival2) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOwnershipRangeColumn", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":787 + * return (toInt(ival1), toInt(ival2)) + * + * def getOwnershipRangesColumn(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *colrng = NULL + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_133getOwnershipRangesColumn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_132getOwnershipRangesColumn[] = "Mat.getOwnershipRangesColumn(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_133getOwnershipRangesColumn(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRangesColumn (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRangesColumn", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRangesColumn", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_132getOwnershipRangesColumn(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_132getOwnershipRangesColumn(struct PyPetscMatObject *__pyx_v_self) { + PetscInt const *__pyx_v_colrng; + MPI_Comm __pyx_v_comm; + int __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRangesColumn", 0); + + /* "petsc4py/PETSc/Mat.pyx":788 + * + * def getOwnershipRangesColumn(self): + * cdef const PetscInt *colrng = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + */ + __pyx_v_colrng = NULL; + + /* "petsc4py/PETSc/Mat.pyx":789 + * def getOwnershipRangesColumn(self): + * cdef const PetscInt *colrng = NULL + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRangesColumn(__pyx_v_self->mat, (&__pyx_v_colrng))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 789, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":790 + * cdef const PetscInt *colrng = NULL + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Mat.pyx":791 + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) # <<<<<<<<<<<<<< + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->mat), (&__pyx_v_comm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 791, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":792 + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 # <<<<<<<<<<<<<< + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, colrng) + */ + __pyx_v_size = -1; + + /* "petsc4py/PETSc/Mat.pyx":793 + * CHKERR( PetscObjectGetComm(self.mat, &comm) ) + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) # <<<<<<<<<<<<<< + * return array_i(size+1, colrng) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(((PetscErrorCode)MPI_Comm_size(__pyx_v_comm, (&__pyx_v_size)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 793, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":794 + * cdef int size = -1 + * CHKERR( MPI_Comm_size(comm, &size) ) + * return array_i(size+1, colrng) # <<<<<<<<<<<<<< + * + * def getOwnershipIS(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_size + 1), __pyx_v_colrng)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":787 + * return (toInt(ival1), toInt(ival2)) + * + * def getOwnershipRangesColumn(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *colrng = NULL + * CHKERR( MatGetOwnershipRangesColumn(self.mat, &colrng) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOwnershipRangesColumn", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":796 + * return array_i(size+1, colrng) + * + * def getOwnershipIS(self): # <<<<<<<<<<<<<< + * cdef IS rows = IS() + * cdef IS cols = IS() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_135getOwnershipIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_134getOwnershipIS[] = "Mat.getOwnershipIS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_135getOwnershipIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipIS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipIS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipIS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_134getOwnershipIS(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_134getOwnershipIS(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_rows = 0; + struct PyPetscISObject *__pyx_v_cols = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipIS", 0); + + /* "petsc4py/PETSc/Mat.pyx":797 + * + * def getOwnershipIS(self): + * cdef IS rows = IS() # <<<<<<<<<<<<<< + * cdef IS cols = IS() + * CHKERR( MatGetOwnershipIS(self.mat, &rows.iset, &cols.iset) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_rows = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":798 + * def getOwnershipIS(self): + * cdef IS rows = IS() + * cdef IS cols = IS() # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipIS(self.mat, &rows.iset, &cols.iset) ) + * return (rows, cols) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cols = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":799 + * cdef IS rows = IS() + * cdef IS cols = IS() + * CHKERR( MatGetOwnershipIS(self.mat, &rows.iset, &cols.iset) ) # <<<<<<<<<<<<<< + * return (rows, cols) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipIS(__pyx_v_self->mat, (&__pyx_v_rows->iset), (&__pyx_v_cols->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 799, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":800 + * cdef IS cols = IS() + * CHKERR( MatGetOwnershipIS(self.mat, &rows.iset, &cols.iset) ) + * return (rows, cols) # <<<<<<<<<<<<<< + * + * def getInfo(self, info=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_rows)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_rows)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_rows)); + __Pyx_INCREF(((PyObject *)__pyx_v_cols)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_cols)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cols)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":796 + * return array_i(size+1, colrng) + * + * def getOwnershipIS(self): # <<<<<<<<<<<<<< + * cdef IS rows = IS() + * cdef IS cols = IS() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOwnershipIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_rows); + __Pyx_XDECREF((PyObject *)__pyx_v_cols); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":802 + * return (rows, cols) + * + * def getInfo(self, info=None): # <<<<<<<<<<<<<< + * cdef PetscMatInfoType itype = infotype(info) + * cdef PetscMatInfo cinfo + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_137getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_136getInfo[] = "Mat.getInfo(self, info=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_137getInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_info = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_info,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_info); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getInfo") < 0)) __PYX_ERR(45, 802, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_info = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getInfo", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 802, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_136getInfo(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_info); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_136getInfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_info) { + MatInfoType __pyx_v_itype; + MatInfo __pyx_v_cinfo; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatInfoType __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInfo", 0); + + /* "petsc4py/PETSc/Mat.pyx":803 + * + * def getInfo(self, info=None): + * cdef PetscMatInfoType itype = infotype(info) # <<<<<<<<<<<<<< + * cdef PetscMatInfo cinfo + * CHKERR( MatGetInfo(self.mat, itype, &cinfo) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_infotype(__pyx_v_info); if (unlikely(__pyx_t_1 == ((MatInfoType)((MatInfoType)-1L)))) __PYX_ERR(45, 803, __pyx_L1_error) + __pyx_v_itype = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":805 + * cdef PetscMatInfoType itype = infotype(info) + * cdef PetscMatInfo cinfo + * CHKERR( MatGetInfo(self.mat, itype, &cinfo) ) # <<<<<<<<<<<<<< + * return cinfo + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetInfo(__pyx_v_self->mat, __pyx_v_itype, (&__pyx_v_cinfo))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 805, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":806 + * cdef PetscMatInfo cinfo + * CHKERR( MatGetInfo(self.mat, itype, &cinfo) ) + * return cinfo # <<<<<<<<<<<<<< + * + * def duplicate(self, copy=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_convert__to_py_MatInfo(__pyx_v_cinfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":802 + * return (rows, cols) + * + * def getInfo(self, info=None): # <<<<<<<<<<<<<< + * cdef PetscMatInfoType itype = infotype(info) + * cdef PetscMatInfo cinfo + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":808 + * return cinfo + * + * def duplicate(self, copy=False): # <<<<<<<<<<<<<< + * cdef PetscMatDuplicateOption flag = MAT_DO_NOT_COPY_VALUES + * if copy: flag = MAT_COPY_VALUES + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_139duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_138duplicate[] = "Mat.duplicate(self, copy=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_139duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_copy = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_copy,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_copy); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "duplicate") < 0)) __PYX_ERR(45, 808, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_copy = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("duplicate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 808, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_138duplicate(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_copy); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_138duplicate(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_copy) { + MatDuplicateOption __pyx_v_flag; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/Mat.pyx":809 + * + * def duplicate(self, copy=False): + * cdef PetscMatDuplicateOption flag = MAT_DO_NOT_COPY_VALUES # <<<<<<<<<<<<<< + * if copy: flag = MAT_COPY_VALUES + * if copy > MAT_COPY_VALUES: flag = MAT_SHARE_NONZERO_PATTERN + */ + __pyx_v_flag = MAT_DO_NOT_COPY_VALUES; + + /* "petsc4py/PETSc/Mat.pyx":810 + * def duplicate(self, copy=False): + * cdef PetscMatDuplicateOption flag = MAT_DO_NOT_COPY_VALUES + * if copy: flag = MAT_COPY_VALUES # <<<<<<<<<<<<<< + * if copy > MAT_COPY_VALUES: flag = MAT_SHARE_NONZERO_PATTERN + * cdef Mat mat = type(self)() + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_copy); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 810, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_flag = MAT_COPY_VALUES; + } + + /* "petsc4py/PETSc/Mat.pyx":811 + * cdef PetscMatDuplicateOption flag = MAT_DO_NOT_COPY_VALUES + * if copy: flag = MAT_COPY_VALUES + * if copy > MAT_COPY_VALUES: flag = MAT_SHARE_NONZERO_PATTERN # <<<<<<<<<<<<<< + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, flag, &mat.mat) ) + */ + __pyx_t_2 = __Pyx_PyInt_From_MatDuplicateOption(MAT_COPY_VALUES); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyObject_RichCompare(__pyx_v_copy, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_1) { + __pyx_v_flag = MAT_SHARE_NONZERO_PATTERN; + } + + /* "petsc4py/PETSc/Mat.pyx":812 + * if copy: flag = MAT_COPY_VALUES + * if copy > MAT_COPY_VALUES: flag = MAT_SHARE_NONZERO_PATTERN + * cdef Mat mat = type(self)() # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, flag, &mat.mat) ) + * return mat + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 812, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":813 + * if copy > MAT_COPY_VALUES: flag = MAT_SHARE_NONZERO_PATTERN + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, flag, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, __pyx_v_flag, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 813, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":814 + * cdef Mat mat = type(self)() + * CHKERR( MatDuplicate(self.mat, flag, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * def copy(self, Mat result=None, structure=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":808 + * return cinfo + * + * def duplicate(self, copy=False): # <<<<<<<<<<<<<< + * cdef PetscMatDuplicateOption flag = MAT_DO_NOT_COPY_VALUES + * if copy: flag = MAT_COPY_VALUES + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":816 + * return mat + * + * def copy(self, Mat result=None, structure=None): # <<<<<<<<<<<<<< + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES + * cdef PetscMatStructure mstr = matstructure(structure) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_141copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_140copy[] = "Mat.copy(self, Mat result=None, structure=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_141copy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_structure = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_result,&__pyx_n_s_structure,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_structure); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copy") < 0)) __PYX_ERR(45, 816, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_result = ((struct PyPetscMatObject *)values[0]); + __pyx_v_structure = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copy", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 816, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 816, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_140copy(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_result, __pyx_v_structure); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_140copy(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_structure) { + MatDuplicateOption __pyx_v_copy; + MatStructure __pyx_v_mstr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatStructure __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":817 + * + * def copy(self, Mat result=None, structure=None): + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES # <<<<<<<<<<<<<< + * cdef PetscMatStructure mstr = matstructure(structure) + * if result is None: + */ + __pyx_v_copy = MAT_COPY_VALUES; + + /* "petsc4py/PETSc/Mat.pyx":818 + * def copy(self, Mat result=None, structure=None): + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES + * cdef PetscMatStructure mstr = matstructure(structure) # <<<<<<<<<<<<<< + * if result is None: + * result = type(self)() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matstructure(__pyx_v_structure); if (unlikely(__pyx_t_1 == ((MatStructure)((MatStructure)-1L)))) __PYX_ERR(45, 818, __pyx_L1_error) + __pyx_v_mstr = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":819 + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES + * cdef PetscMatStructure mstr = matstructure(structure) + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.mat == NULL: + */ + __pyx_t_2 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":820 + * cdef PetscMatStructure mstr = matstructure(structure) + * if result is None: + * result = type(self)() # <<<<<<<<<<<<<< + * if result.mat == NULL: + * CHKERR( MatDuplicate(self.mat, copy, &result.mat) ) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_5 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 820, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":819 + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES + * cdef PetscMatStructure mstr = matstructure(structure) + * if result is None: # <<<<<<<<<<<<<< + * result = type(self)() + * if result.mat == NULL: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":821 + * if result is None: + * result = type(self)() + * if result.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, copy, &result.mat) ) + * else: + */ + __pyx_t_3 = ((__pyx_v_result->mat == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":822 + * result = type(self)() + * if result.mat == NULL: + * CHKERR( MatDuplicate(self.mat, copy, &result.mat) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatCopy(self.mat, result.mat, mstr) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, __pyx_v_copy, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 822, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":821 + * if result is None: + * result = type(self)() + * if result.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, copy, &result.mat) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":824 + * CHKERR( MatDuplicate(self.mat, copy, &result.mat) ) + * else: + * CHKERR( MatCopy(self.mat, result.mat, mstr) ) # <<<<<<<<<<<<<< + * return result + * + */ + /*else*/ { + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCopy(__pyx_v_self->mat, __pyx_v_result->mat, __pyx_v_mstr)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 824, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Mat.pyx":825 + * else: + * CHKERR( MatCopy(self.mat, result.mat, mstr) ) + * return result # <<<<<<<<<<<<<< + * + * def load(self, Viewer viewer): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":816 + * return mat + * + * def copy(self, Mat result=None, structure=None): # <<<<<<<<<<<<<< + * cdef PetscMatDuplicateOption copy = MAT_COPY_VALUES + * cdef PetscMatStructure mstr = matstructure(structure) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":827 + * return result + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_143load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_142load[] = "Mat.load(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_143load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("load (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "load") < 0)) __PYX_ERR(45, 827, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("load", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 827, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(45, 827, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_142load(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_142load(struct PyPetscMatObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + MPI_Comm __pyx_v_comm; + PetscObject __pyx_v_obj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load", 0); + + /* "petsc4py/PETSc/Mat.pyx":828 + * + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * cdef PetscObject obj = (viewer.vwr) + * if self.mat == NULL: + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Mat.pyx":829 + * def load(self, Viewer viewer): + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) # <<<<<<<<<<<<<< + * if self.mat == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + */ + __pyx_v_obj = ((PetscObject)__pyx_v_viewer->vwr); + + /* "petsc4py/PETSc/Mat.pyx":830 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( MatCreate(comm, &self.mat) ) + */ + __pyx_t_1 = ((__pyx_v_self->mat == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":831 + * cdef PetscObject obj = (viewer.vwr) + * if self.mat == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) # <<<<<<<<<<<<<< + * CHKERR( MatCreate(comm, &self.mat) ) + * CHKERR( MatLoad(self.mat, viewer.vwr) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(__pyx_v_obj, (&__pyx_v_comm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 831, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":832 + * if self.mat == NULL: + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( MatCreate(comm, &self.mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatLoad(self.mat, viewer.vwr) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreate(__pyx_v_comm, (&__pyx_v_self->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 832, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":830 + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + * if self.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( MatCreate(comm, &self.mat) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":833 + * CHKERR( PetscObjectGetComm(obj, &comm) ) + * CHKERR( MatCreate(comm, &self.mat) ) + * CHKERR( MatLoad(self.mat, viewer.vwr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatLoad(__pyx_v_self->mat, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 833, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":834 + * CHKERR( MatCreate(comm, &self.mat) ) + * CHKERR( MatLoad(self.mat, viewer.vwr) ) + * return self # <<<<<<<<<<<<<< + * + * def convert(self, mat_type=None, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":827 + * return result + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * cdef PetscObject obj = (viewer.vwr) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":836 + * return self + * + * def convert(self, mat_type=None, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatType mtype = MATSAME + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_145convert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_144convert[] = "Mat.convert(self, mat_type=None, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_145convert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mat_type = 0; + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("convert (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat_type,&__pyx_n_s_out,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat_type); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "convert") < 0)) __PYX_ERR(45, 836, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat_type = values[0]; + __pyx_v_out = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("convert", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 836, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.convert", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 836, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_144convert(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat_type, __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_144convert(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mat_type, struct PyPetscMatObject *__pyx_v_out) { + MatType __pyx_v_mtype; + MatReuse __pyx_v_reuse; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert", 0); + __Pyx_INCREF(__pyx_v_mat_type); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":837 + * + * def convert(self, mat_type=None, Mat out=None): + * cdef PetscMatType mtype = MATSAME # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * mat_type = str2bytes(mat_type, &mtype) + */ + __pyx_v_mtype = MATSAME; + + /* "petsc4py/PETSc/Mat.pyx":838 + * def convert(self, mat_type=None, Mat out=None): + * cdef PetscMatType mtype = MATSAME + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * mat_type = str2bytes(mat_type, &mtype) + * if mtype == NULL: mtype = MATSAME + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":839 + * cdef PetscMatType mtype = MATSAME + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * mat_type = str2bytes(mat_type, &mtype) # <<<<<<<<<<<<<< + * if mtype == NULL: mtype = MATSAME + * if out is None: out = self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mat_type, (&__pyx_v_mtype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 839, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_mat_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":840 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * mat_type = str2bytes(mat_type, &mtype) + * if mtype == NULL: mtype = MATSAME # <<<<<<<<<<<<<< + * if out is None: out = self + * if out.mat == self.mat: + */ + __pyx_t_2 = ((__pyx_v_mtype == NULL) != 0); + if (__pyx_t_2) { + __pyx_v_mtype = MATSAME; + } + + /* "petsc4py/PETSc/Mat.pyx":841 + * mat_type = str2bytes(mat_type, &mtype) + * if mtype == NULL: mtype = MATSAME + * if out is None: out = self # <<<<<<<<<<<<<< + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + */ + __pyx_t_2 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + } + + /* "petsc4py/PETSc/Mat.pyx":842 + * if mtype == NULL: mtype = MATSAME + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + __pyx_t_3 = ((__pyx_v_out->mat == __pyx_v_self->mat) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":843 + * if out is None: out = self + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX + */ + __pyx_v_reuse = MAT_INPLACE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":842 + * if mtype == NULL: mtype = MATSAME + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":844 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + __pyx_t_3 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":845 + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * else: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":844 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":847 + * reuse = MAT_INITIAL_MATRIX + * else: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatConvert(self.mat, mtype, reuse, &out.mat) ) + * return out + */ + /*else*/ { + __pyx_v_reuse = MAT_REUSE_MATRIX; + } + __pyx_L5:; + + /* "petsc4py/PETSc/Mat.pyx":848 + * else: + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatConvert(self.mat, mtype, reuse, &out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatConvert(__pyx_v_self->mat, __pyx_v_mtype, __pyx_v_reuse, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 848, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":849 + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatConvert(self.mat, mtype, reuse, &out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def transpose(self, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":836 + * return self + * + * def convert(self, mat_type=None, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatType mtype = MATSAME + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.convert", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mat_type); + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":851 + * return out + * + * def transpose(self, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_147transpose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_146transpose[] = "Mat.transpose(self, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_147transpose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("transpose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transpose") < 0)) __PYX_ERR(45, 851, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("transpose", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 851, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.transpose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 851, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_146transpose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_146transpose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + MatReuse __pyx_v_reuse; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("transpose", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":852 + * + * def transpose(self, Mat out=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * if out is None: out = self + * if out.mat == self.mat: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":853 + * def transpose(self, Mat out=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self # <<<<<<<<<<<<<< + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + */ + __pyx_t_1 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + } + + /* "petsc4py/PETSc/Mat.pyx":854 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + __pyx_t_2 = ((__pyx_v_out->mat == __pyx_v_self->mat) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":855 + * if out is None: out = self + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX + */ + __pyx_v_reuse = MAT_INPLACE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":854 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":856 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + __pyx_t_2 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":857 + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * else: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":856 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":859 + * reuse = MAT_INITIAL_MATRIX + * else: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatTranspose(self.mat, reuse, &out.mat) ) + * return out + */ + /*else*/ { + __pyx_v_reuse = MAT_REUSE_MATRIX; + } + __pyx_L4:; + + /* "petsc4py/PETSc/Mat.pyx":860 + * else: + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatTranspose(self.mat, reuse, &out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatTranspose(__pyx_v_self->mat, __pyx_v_reuse, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 860, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":861 + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatTranspose(self.mat, reuse, &out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def setTransposePrecursor(self, Mat out): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":851 + * return out + * + * def transpose(self, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.transpose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":863 + * return out + * + * def setTransposePrecursor(self, Mat out): # <<<<<<<<<<<<<< + * CHKERR( MatTransposeSetPrecursor(self.mat, out.mat) ) + * return out + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_149setTransposePrecursor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_148setTransposePrecursor[] = "Mat.setTransposePrecursor(self, Mat out)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_149setTransposePrecursor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTransposePrecursor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTransposePrecursor") < 0)) __PYX_ERR(45, 863, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTransposePrecursor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 863, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setTransposePrecursor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "out", 0))) __PYX_ERR(45, 863, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_148setTransposePrecursor(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_148setTransposePrecursor(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTransposePrecursor", 0); + + /* "petsc4py/PETSc/Mat.pyx":864 + * + * def setTransposePrecursor(self, Mat out): + * CHKERR( MatTransposeSetPrecursor(self.mat, out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatTransposeSetPrecursor(__pyx_v_self->mat, __pyx_v_out->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 864, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":865 + * def setTransposePrecursor(self, Mat out): + * CHKERR( MatTransposeSetPrecursor(self.mat, out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def hermitianTranspose(self, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":863 + * return out + * + * def setTransposePrecursor(self, Mat out): # <<<<<<<<<<<<<< + * CHKERR( MatTransposeSetPrecursor(self.mat, out.mat) ) + * return out + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setTransposePrecursor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":867 + * return out + * + * def hermitianTranspose(self, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_151hermitianTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_150hermitianTranspose[] = "Mat.hermitianTranspose(self, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_151hermitianTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hermitianTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hermitianTranspose") < 0)) __PYX_ERR(45, 867, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hermitianTranspose", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 867, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.hermitianTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 867, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_150hermitianTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_150hermitianTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + MatReuse __pyx_v_reuse; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hermitianTranspose", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":868 + * + * def hermitianTranspose(self, Mat out=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * if out is None: out = self + * if out.mat == self.mat: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":869 + * def hermitianTranspose(self, Mat out=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self # <<<<<<<<<<<<<< + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + */ + __pyx_t_1 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + } + + /* "petsc4py/PETSc/Mat.pyx":870 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + __pyx_t_2 = ((__pyx_v_out->mat == __pyx_v_self->mat) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":871 + * if out is None: out = self + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX + */ + __pyx_v_reuse = MAT_INPLACE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":870 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + * if out.mat == self.mat: # <<<<<<<<<<<<<< + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":872 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + __pyx_t_2 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":873 + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: + * reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * else: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":872 + * if out.mat == self.mat: + * reuse = MAT_INPLACE_MATRIX + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * reuse = MAT_INITIAL_MATRIX + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":875 + * reuse = MAT_INITIAL_MATRIX + * else: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatHermitianTranspose(self.mat, reuse, &out.mat) ) + * return out + */ + /*else*/ { + __pyx_v_reuse = MAT_REUSE_MATRIX; + } + __pyx_L4:; + + /* "petsc4py/PETSc/Mat.pyx":876 + * else: + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatHermitianTranspose(self.mat, reuse, &out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatHermitianTranspose(__pyx_v_self->mat, __pyx_v_reuse, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 876, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":877 + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatHermitianTranspose(self.mat, reuse, &out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def realPart(self, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":867 + * return out + * + * def hermitianTranspose(self, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.hermitianTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":879 + * return out + * + * def realPart(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_153realPart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_152realPart[] = "Mat.realPart(self, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_153realPart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("realPart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "realPart") < 0)) __PYX_ERR(45, 879, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("realPart", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 879, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.realPart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 879, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_152realPart(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_152realPart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("realPart", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":880 + * + * def realPart(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":881 + * def realPart(self, Mat out=None): + * if out is None: + * out = self # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + + /* "petsc4py/PETSc/Mat.pyx":880 + * + * def realPart(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":882 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatRealPart(out.mat) ) + */ + __pyx_t_2 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":883 + * out = self + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatRealPart(out.mat) ) + * return out + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, MAT_COPY_VALUES, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 883, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":882 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatRealPart(out.mat) ) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":884 + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatRealPart(out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRealPart(__pyx_v_out->mat)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 884, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":885 + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatRealPart(out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def imagPart(self, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":879 + * return out + * + * def realPart(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.realPart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":887 + * return out + * + * def imagPart(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_155imagPart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_154imagPart[] = "Mat.imagPart(self, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_155imagPart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("imagPart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "imagPart") < 0)) __PYX_ERR(45, 887, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("imagPart", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 887, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.imagPart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 887, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_154imagPart(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_154imagPart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("imagPart", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":888 + * + * def imagPart(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":889 + * def imagPart(self, Mat out=None): + * if out is None: + * out = self # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + + /* "petsc4py/PETSc/Mat.pyx":888 + * + * def imagPart(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":890 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatImaginaryPart(out.mat) ) + */ + __pyx_t_2 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":891 + * out = self + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatImaginaryPart(out.mat) ) + * return out + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, MAT_COPY_VALUES, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 891, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":890 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatImaginaryPart(out.mat) ) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":892 + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatImaginaryPart(out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatImaginaryPart(__pyx_v_out->mat)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 892, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":893 + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatImaginaryPart(out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def conjugate(self, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":887 + * return out + * + * def imagPart(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.imagPart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":895 + * return out + * + * def conjugate(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_157conjugate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_156conjugate[] = "Mat.conjugate(self, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_157conjugate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("conjugate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_out,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "conjugate") < 0)) __PYX_ERR(45, 895, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_out = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("conjugate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 895, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.conjugate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 895, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_156conjugate(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_156conjugate(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_out) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("conjugate", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":896 + * + * def conjugate(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":897 + * def conjugate(self, Mat out=None): + * if out is None: + * out = self # <<<<<<<<<<<<<< + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_out, __pyx_v_self); + + /* "petsc4py/PETSc/Mat.pyx":896 + * + * def conjugate(self, Mat out=None): + * if out is None: # <<<<<<<<<<<<<< + * out = self + * elif out.mat == NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":898 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatConjugate(out.mat) ) + */ + __pyx_t_2 = ((__pyx_v_out->mat == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":899 + * out = self + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatConjugate(out.mat) ) + * return out + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDuplicate(__pyx_v_self->mat, MAT_COPY_VALUES, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 899, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":898 + * if out is None: + * out = self + * elif out.mat == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatConjugate(out.mat) ) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":900 + * elif out.mat == NULL: + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatConjugate(out.mat) ) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatConjugate(__pyx_v_out->mat)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 900, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":901 + * CHKERR( MatDuplicate(self.mat, MAT_COPY_VALUES, &out.mat) ) + * CHKERR( MatConjugate(out.mat) ) + * return out # <<<<<<<<<<<<<< + * + * def permute(self, IS row, IS col): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":895 + * return out + * + * def conjugate(self, Mat out=None): # <<<<<<<<<<<<<< + * if out is None: + * out = self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.conjugate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":903 + * return out + * + * def permute(self, IS row, IS col): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( MatPermute(self.mat, row.iset, col.iset, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_159permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_158permute[] = "Mat.permute(self, IS row, IS col)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_159permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_row = 0; + struct PyPetscISObject *__pyx_v_col = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("permute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("permute", 1, 2, 2, 1); __PYX_ERR(45, 903, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "permute") < 0)) __PYX_ERR(45, 903, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_row = ((struct PyPetscISObject *)values[0]); + __pyx_v_col = ((struct PyPetscISObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("permute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 903, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_row), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "row", 0))) __PYX_ERR(45, 903, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_col), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "col", 0))) __PYX_ERR(45, 903, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_158permute(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_158permute(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_row, struct PyPetscISObject *__pyx_v_col) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("permute", 0); + + /* "petsc4py/PETSc/Mat.pyx":904 + * + * def permute(self, IS row, IS col): + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( MatPermute(self.mat, row.iset, col.iset, &mat.mat) ) + * return mat + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 904, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":905 + * def permute(self, IS row, IS col): + * cdef Mat mat = Mat() + * CHKERR( MatPermute(self.mat, row.iset, col.iset, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPermute(__pyx_v_self->mat, __pyx_v_row->iset, __pyx_v_col->iset, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 905, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":906 + * cdef Mat mat = Mat() + * CHKERR( MatPermute(self.mat, row.iset, col.iset, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * def equal(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":903 + * return out + * + * def permute(self, IS row, IS col): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( MatPermute(self.mat, row.iset, col.iset, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":908 + * return mat + * + * def equal(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatEqual(self.mat, mat.mat, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_161equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_160equal[] = "Mat.equal(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_161equal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("equal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "equal") < 0)) __PYX_ERR(45, 908, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("equal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 908, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 908, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_160equal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_160equal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("equal", 0); + + /* "petsc4py/PETSc/Mat.pyx":909 + * + * def equal(self, Mat mat): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatEqual(self.mat, mat.mat, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":910 + * def equal(self, Mat mat): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatEqual(self.mat, mat.mat, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatEqual(__pyx_v_self->mat, __pyx_v_mat->mat, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 910, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":911 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatEqual(self.mat, mat.mat, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def isTranspose(self, Mat mat=None, tol=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":908 + * return mat + * + * def equal(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatEqual(self.mat, mat.mat, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.equal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":913 + * return toBool(flag) + * + * def isTranspose(self, Mat mat=None, tol=0): # <<<<<<<<<<<<<< + * if mat is None: mat = self + * cdef PetscReal rval = asReal(tol) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_163isTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_162isTranspose[] = "Mat.isTranspose(self, Mat mat=None, tol=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_163isTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_tol,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[1] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "isTranspose") < 0)) __PYX_ERR(45, 913, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_tol = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("isTranspose", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 913, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "mat", 0))) __PYX_ERR(45, 913, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_162isTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_tol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_162isTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isTranspose", 0); + __Pyx_INCREF((PyObject *)__pyx_v_mat); + + /* "petsc4py/PETSc/Mat.pyx":914 + * + * def isTranspose(self, Mat mat=None, tol=0): + * if mat is None: mat = self # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + */ + __pyx_t_1 = (((PyObject *)__pyx_v_mat) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_DECREF_SET(__pyx_v_mat, __pyx_v_self); + } + + /* "petsc4py/PETSc/Mat.pyx":915 + * def isTranspose(self, Mat mat=None, tol=0): + * if mat is None: mat = self + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsTranspose(self.mat, mat.mat, rval, &flag) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 915, __pyx_L1_error) + __pyx_v_rval = __pyx_t_3; + + /* "petsc4py/PETSc/Mat.pyx":916 + * if mat is None: mat = self + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsTranspose(self.mat, mat.mat, rval, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":917 + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsTranspose(self.mat, mat.mat, rval, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsTranspose(__pyx_v_self->mat, __pyx_v_mat->mat, __pyx_v_rval, (&__pyx_v_flag))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 917, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":918 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsTranspose(self.mat, mat.mat, rval, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def isSymmetric(self, tol=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":913 + * return toBool(flag) + * + * def isTranspose(self, Mat mat=None, tol=0): # <<<<<<<<<<<<<< + * if mat is None: mat = self + * cdef PetscReal rval = asReal(tol) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":920 + * return toBool(flag) + * + * def isSymmetric(self, tol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_165isSymmetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_164isSymmetric[] = "Mat.isSymmetric(self, tol=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_165isSymmetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isSymmetric (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "isSymmetric") < 0)) __PYX_ERR(45, 920, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("isSymmetric", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 920, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isSymmetric", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_164isSymmetric(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_164isSymmetric(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isSymmetric", 0); + + /* "petsc4py/PETSc/Mat.pyx":921 + * + * def isSymmetric(self, tol=0): + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsSymmetric(self.mat, rval, &flag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 921, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":922 + * def isSymmetric(self, tol=0): + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsSymmetric(self.mat, rval, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":923 + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsSymmetric(self.mat, rval, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsSymmetric(__pyx_v_self->mat, __pyx_v_rval, (&__pyx_v_flag))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 923, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":924 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsSymmetric(self.mat, rval, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def isSymmetricKnown(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":920 + * return toBool(flag) + * + * def isSymmetric(self, tol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isSymmetric", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":926 + * return toBool(flag) + * + * def isSymmetricKnown(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_167isSymmetricKnown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_166isSymmetricKnown[] = "Mat.isSymmetricKnown(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_167isSymmetricKnown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isSymmetricKnown (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isSymmetricKnown", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isSymmetricKnown", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_166isSymmetricKnown(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_166isSymmetricKnown(struct PyPetscMatObject *__pyx_v_self) { + PetscBool __pyx_v_flag1; + PetscBool __pyx_v_flag2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isSymmetricKnown", 0); + + /* "petsc4py/PETSc/Mat.pyx":927 + * + * def isSymmetricKnown(self): + * cdef PetscBool flag1 = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsSymmetricKnown(self.mat, &flag1, &flag2) ) + */ + __pyx_v_flag1 = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":928 + * def isSymmetricKnown(self): + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsSymmetricKnown(self.mat, &flag1, &flag2) ) + * return (toBool(flag1), toBool(flag2)) + */ + __pyx_v_flag2 = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":929 + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsSymmetricKnown(self.mat, &flag1, &flag2) ) # <<<<<<<<<<<<<< + * return (toBool(flag1), toBool(flag2)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsSymmetricKnown(__pyx_v_self->mat, (&__pyx_v_flag1), (&__pyx_v_flag2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 929, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":930 + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsSymmetricKnown(self.mat, &flag1, &flag2) ) + * return (toBool(flag1), toBool(flag2)) # <<<<<<<<<<<<<< + * + * def isHermitian(self, tol=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":926 + * return toBool(flag) + * + * def isSymmetricKnown(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isSymmetricKnown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":932 + * return (toBool(flag1), toBool(flag2)) + * + * def isHermitian(self, tol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_169isHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_168isHermitian[] = "Mat.isHermitian(self, tol=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_169isHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isHermitian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "isHermitian") < 0)) __PYX_ERR(45, 932, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("isHermitian", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 932, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_168isHermitian(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_168isHermitian(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isHermitian", 0); + + /* "petsc4py/PETSc/Mat.pyx":933 + * + * def isHermitian(self, tol=0): + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsHermitian(self.mat, rval, &flag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 933, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":934 + * def isHermitian(self, tol=0): + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsHermitian(self.mat, rval, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":935 + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsHermitian(self.mat, rval, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsHermitian(__pyx_v_self->mat, __pyx_v_rval, (&__pyx_v_flag))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 935, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":936 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsHermitian(self.mat, rval, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def isHermitianKnown(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":932 + * return (toBool(flag1), toBool(flag2)) + * + * def isHermitian(self, tol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * cdef PetscBool flag = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":938 + * return toBool(flag) + * + * def isHermitianKnown(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_171isHermitianKnown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_170isHermitianKnown[] = "Mat.isHermitianKnown(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_171isHermitianKnown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isHermitianKnown (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isHermitianKnown", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isHermitianKnown", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_170isHermitianKnown(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_170isHermitianKnown(struct PyPetscMatObject *__pyx_v_self) { + PetscBool __pyx_v_flag1; + PetscBool __pyx_v_flag2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isHermitianKnown", 0); + + /* "petsc4py/PETSc/Mat.pyx":939 + * + * def isHermitianKnown(self): + * cdef PetscBool flag1 = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsHermitianKnown(self.mat, &flag1, &flag2) ) + */ + __pyx_v_flag1 = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":940 + * def isHermitianKnown(self): + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsHermitianKnown(self.mat, &flag1, &flag2) ) + * return (toBool(flag1), toBool(flag2)) + */ + __pyx_v_flag2 = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":941 + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsHermitianKnown(self.mat, &flag1, &flag2) ) # <<<<<<<<<<<<<< + * return (toBool(flag1), toBool(flag2)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsHermitianKnown(__pyx_v_self->mat, (&__pyx_v_flag1), (&__pyx_v_flag2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 941, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":942 + * cdef PetscBool flag2 = PETSC_FALSE + * CHKERR( MatIsHermitianKnown(self.mat, &flag1, &flag2) ) + * return (toBool(flag1), toBool(flag2)) # <<<<<<<<<<<<<< + * + * def isStructurallySymmetric(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":938 + * return toBool(flag) + * + * def isHermitianKnown(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag1 = PETSC_FALSE + * cdef PetscBool flag2 = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isHermitianKnown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":944 + * return (toBool(flag1), toBool(flag2)) + * + * def isStructurallySymmetric(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsStructurallySymmetric(self.mat, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_173isStructurallySymmetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_172isStructurallySymmetric[] = "Mat.isStructurallySymmetric(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_173isStructurallySymmetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isStructurallySymmetric (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isStructurallySymmetric", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isStructurallySymmetric", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_172isStructurallySymmetric(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_172isStructurallySymmetric(struct PyPetscMatObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isStructurallySymmetric", 0); + + /* "petsc4py/PETSc/Mat.pyx":945 + * + * def isStructurallySymmetric(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatIsStructurallySymmetric(self.mat, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":946 + * def isStructurallySymmetric(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsStructurallySymmetric(self.mat, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIsStructurallySymmetric(__pyx_v_self->mat, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 946, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":947 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsStructurallySymmetric(self.mat, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def zeroEntries(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":944 + * return (toBool(flag1), toBool(flag2)) + * + * def isStructurallySymmetric(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatIsStructurallySymmetric(self.mat, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isStructurallySymmetric", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":949 + * return toBool(flag) + * + * def zeroEntries(self): # <<<<<<<<<<<<<< + * CHKERR( MatZeroEntries(self.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_175zeroEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_174zeroEntries[] = "Mat.zeroEntries(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_175zeroEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroEntries (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("zeroEntries", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "zeroEntries", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_174zeroEntries(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_174zeroEntries(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroEntries", 0); + + /* "petsc4py/PETSc/Mat.pyx":950 + * + * def zeroEntries(self): + * CHKERR( MatZeroEntries(self.mat) ) # <<<<<<<<<<<<<< + * + * def getValue(self, row, col): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroEntries(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 950, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":949 + * return toBool(flag) + * + * def zeroEntries(self): # <<<<<<<<<<<<<< + * CHKERR( MatZeroEntries(self.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroEntries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":952 + * CHKERR( MatZeroEntries(self.mat) ) + * + * def getValue(self, row, col): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_177getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_176getValue[] = "Mat.getValue(self, row, col)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_177getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + PyObject *__pyx_v_col = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getValue", 1, 2, 2, 1); __PYX_ERR(45, 952, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValue") < 0)) __PYX_ERR(45, 952, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValue", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 952, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_176getValue(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_176getValue(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValue", 0); + + /* "petsc4py/PETSc/Mat.pyx":953 + * + * def getValue(self, row, col): + * cdef PetscInt ival1 = asInt(row) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_row); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 953, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":954 + * def getValue(self, row, col): + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = 0 + * CHKERR( MatGetValues(self.mat, 1, &ival1, 1, &ival2, &sval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_col); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 954, __pyx_L1_error) + __pyx_v_ival2 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":955 + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetValues(self.mat, 1, &ival1, 1, &ival2, &sval) ) + * return toScalar(sval) + */ + __pyx_v_sval = 0.0; + + /* "petsc4py/PETSc/Mat.pyx":956 + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = 0 + * CHKERR( MatGetValues(self.mat, 1, &ival1, 1, &ival2, &sval) ) # <<<<<<<<<<<<<< + * return toScalar(sval) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetValues(__pyx_v_self->mat, 1, (&__pyx_v_ival1), 1, (&__pyx_v_ival2), (&__pyx_v_sval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 956, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":957 + * cdef PetscScalar sval = 0 + * CHKERR( MatGetValues(self.mat, 1, &ival1, 1, &ival2, &sval) ) + * return toScalar(sval) # <<<<<<<<<<<<<< + * + * def getValues(self, rows, cols, values=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_sval); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":952 + * CHKERR( MatZeroEntries(self.mat) ) + * + * def getValue(self, row, col): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":959 + * return toScalar(sval) + * + * def getValues(self, rows, cols, values=None): # <<<<<<<<<<<<<< + * return matgetvalues(self.mat, rows, cols, values) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_179getValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_178getValues[] = "Mat.getValues(self, rows, cols, values=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_179getValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_values = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_cols,&__pyx_n_s_values,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cols)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getValues", 0, 2, 3, 1); __PYX_ERR(45, 959, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValues") < 0)) __PYX_ERR(45, 959, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_cols = values[1]; + __pyx_v_values = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValues", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 959, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_178getValues(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_cols, __pyx_v_values); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_178getValues(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValues", 0); + + /* "petsc4py/PETSc/Mat.pyx":960 + * + * def getValues(self, rows, cols, values=None): + * return matgetvalues(self.mat, rows, cols, values) # <<<<<<<<<<<<<< + * + * def getValuesCSR(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matgetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":959 + * return toScalar(sval) + * + * def getValues(self, rows, cols, values=None): # <<<<<<<<<<<<<< + * return matgetvalues(self.mat, rows, cols, values) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":962 + * return matgetvalues(self.mat, rows, cols, values) + * + * def getValuesCSR(self): # <<<<<<<<<<<<<< + * # row ownership + * cdef PetscInt rstart=0, rend=0, nrows=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_181getValuesCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_180getValuesCSR[] = "Mat.getValuesCSR(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_181getValuesCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValuesCSR (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getValuesCSR", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getValuesCSR", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_180getValuesCSR(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_180getValuesCSR(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_rstart; + PetscInt __pyx_v_rend; + PetscInt __pyx_v_nrows; + PetscInt *__pyx_v_AI; + PyArrayObject *__pyx_v_ai = 0; + PetscInt __pyx_v_irow; + PetscInt __pyx_v_ncols; + PetscInt *__pyx_v_AJ; + PyArrayObject *__pyx_v_aj = 0; + PetscScalar *__pyx_v_AV; + PyArrayObject *__pyx_v_av = 0; + PetscInt const *__pyx_v_cols; + PetscScalar const *__pyx_v_vals; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValuesCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":964 + * def getValuesCSR(self): + * # row ownership + * cdef PetscInt rstart=0, rend=0, nrows=0 # <<<<<<<<<<<<<< + * CHKERR( MatGetOwnershipRange(self.mat, &rstart, &rend) ) + * nrows = rend - rstart + */ + __pyx_v_rstart = 0; + __pyx_v_rend = 0; + __pyx_v_nrows = 0; + + /* "petsc4py/PETSc/Mat.pyx":965 + * # row ownership + * cdef PetscInt rstart=0, rend=0, nrows=0 + * CHKERR( MatGetOwnershipRange(self.mat, &rstart, &rend) ) # <<<<<<<<<<<<<< + * nrows = rend - rstart + * # first pass: row pointer array + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOwnershipRange(__pyx_v_self->mat, (&__pyx_v_rstart), (&__pyx_v_rend))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 965, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":966 + * cdef PetscInt rstart=0, rend=0, nrows=0 + * CHKERR( MatGetOwnershipRange(self.mat, &rstart, &rend) ) + * nrows = rend - rstart # <<<<<<<<<<<<<< + * # first pass: row pointer array + * cdef PetscInt *AI = NULL + */ + __pyx_v_nrows = (__pyx_v_rend - __pyx_v_rstart); + + /* "petsc4py/PETSc/Mat.pyx":968 + * nrows = rend - rstart + * # first pass: row pointer array + * cdef PetscInt *AI = NULL # <<<<<<<<<<<<<< + * cdef ndarray ai = oarray_i(empty_i(nrows+1), NULL, &AI) + * cdef PetscInt irow=0, ncols=0 + */ + __pyx_v_AI = NULL; + + /* "petsc4py/PETSc/Mat.pyx":969 + * # first pass: row pointer array + * cdef PetscInt *AI = NULL + * cdef ndarray ai = oarray_i(empty_i(nrows+1), NULL, &AI) # <<<<<<<<<<<<<< + * cdef PetscInt irow=0, ncols=0 + * AI[0] = 0 + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i((__pyx_v_nrows + 1))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_t_2, NULL, (&__pyx_v_AI))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_ai = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":970 + * cdef PetscInt *AI = NULL + * cdef ndarray ai = oarray_i(empty_i(nrows+1), NULL, &AI) + * cdef PetscInt irow=0, ncols=0 # <<<<<<<<<<<<<< + * AI[0] = 0 + * for irow from 0 <= irow < nrows: + */ + __pyx_v_irow = 0; + __pyx_v_ncols = 0; + + /* "petsc4py/PETSc/Mat.pyx":971 + * cdef ndarray ai = oarray_i(empty_i(nrows+1), NULL, &AI) + * cdef PetscInt irow=0, ncols=0 + * AI[0] = 0 # <<<<<<<<<<<<<< + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + */ + (__pyx_v_AI[0]) = 0; + + /* "petsc4py/PETSc/Mat.pyx":972 + * cdef PetscInt irow=0, ncols=0 + * AI[0] = 0 + * for irow from 0 <= irow < nrows: # <<<<<<<<<<<<<< + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + * AI[irow+1] = AI[irow] + ncols + */ + __pyx_t_4 = __pyx_v_nrows; + for (__pyx_v_irow = 0; __pyx_v_irow < __pyx_t_4; __pyx_v_irow++) { + + /* "petsc4py/PETSc/Mat.pyx":973 + * AI[0] = 0 + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) # <<<<<<<<<<<<<< + * AI[irow+1] = AI[irow] + ncols + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetRow(__pyx_v_self->mat, (__pyx_v_irow + __pyx_v_rstart), (&__pyx_v_ncols), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 973, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":974 + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + * AI[irow+1] = AI[irow] + ncols # <<<<<<<<<<<<<< + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + * # second pass: column indices and values + */ + (__pyx_v_AI[(__pyx_v_irow + 1)]) = ((__pyx_v_AI[__pyx_v_irow]) + __pyx_v_ncols); + + /* "petsc4py/PETSc/Mat.pyx":975 + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + * AI[irow+1] = AI[irow] + ncols + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) # <<<<<<<<<<<<<< + * # second pass: column indices and values + * cdef PetscInt *AJ = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreRow(__pyx_v_self->mat, (__pyx_v_irow + __pyx_v_rstart), (&__pyx_v_ncols), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 975, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":977 + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, NULL, NULL) ) + * # second pass: column indices and values + * cdef PetscInt *AJ = NULL # <<<<<<<<<<<<<< + * cdef ndarray aj = oarray_i(empty_i(AI[nrows]), NULL, &AJ) + * cdef PetscScalar *AV = NULL + */ + __pyx_v_AJ = NULL; + + /* "petsc4py/PETSc/Mat.pyx":978 + * # second pass: column indices and values + * cdef PetscInt *AJ = NULL + * cdef ndarray aj = oarray_i(empty_i(AI[nrows]), NULL, &AJ) # <<<<<<<<<<<<<< + * cdef PetscScalar *AV = NULL + * cdef ndarray av = oarray_s(empty_s(AI[nrows]), NULL, &AV) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i((__pyx_v_AI[__pyx_v_nrows]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_t_3, NULL, (&__pyx_v_AJ))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_aj = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":979 + * cdef PetscInt *AJ = NULL + * cdef ndarray aj = oarray_i(empty_i(AI[nrows]), NULL, &AJ) + * cdef PetscScalar *AV = NULL # <<<<<<<<<<<<<< + * cdef ndarray av = oarray_s(empty_s(AI[nrows]), NULL, &AV) + * cdef const PetscInt *cols = NULL + */ + __pyx_v_AV = NULL; + + /* "petsc4py/PETSc/Mat.pyx":980 + * cdef ndarray aj = oarray_i(empty_i(AI[nrows]), NULL, &AJ) + * cdef PetscScalar *AV = NULL + * cdef ndarray av = oarray_s(empty_s(AI[nrows]), NULL, &AV) # <<<<<<<<<<<<<< + * cdef const PetscInt *cols = NULL + * cdef const PetscScalar *vals = NULL + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_s((__pyx_v_AI[__pyx_v_nrows]))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_s(__pyx_t_2, NULL, (&__pyx_v_AV))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_av = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":981 + * cdef PetscScalar *AV = NULL + * cdef ndarray av = oarray_s(empty_s(AI[nrows]), NULL, &AV) + * cdef const PetscInt *cols = NULL # <<<<<<<<<<<<<< + * cdef const PetscScalar *vals = NULL + * for irow from 0 <= irow < nrows: + */ + __pyx_v_cols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":982 + * cdef ndarray av = oarray_s(empty_s(AI[nrows]), NULL, &AV) + * cdef const PetscInt *cols = NULL + * cdef const PetscScalar *vals = NULL # <<<<<<<<<<<<<< + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + */ + __pyx_v_vals = NULL; + + /* "petsc4py/PETSc/Mat.pyx":983 + * cdef const PetscInt *cols = NULL + * cdef const PetscScalar *vals = NULL + * for irow from 0 <= irow < nrows: # <<<<<<<<<<<<<< + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + * CHKERR( PetscMemcpy(AJ+AI[irow], cols, ncols*sizeof(PetscInt)) ) + */ + __pyx_t_4 = __pyx_v_nrows; + for (__pyx_v_irow = 0; __pyx_v_irow < __pyx_t_4; __pyx_v_irow++) { + + /* "petsc4py/PETSc/Mat.pyx":984 + * cdef const PetscScalar *vals = NULL + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMemcpy(AJ+AI[irow], cols, ncols*sizeof(PetscInt)) ) + * CHKERR( PetscMemcpy(AV+AI[irow], vals, ncols*sizeof(PetscScalar)) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetRow(__pyx_v_self->mat, (__pyx_v_irow + __pyx_v_rstart), (&__pyx_v_ncols), (&__pyx_v_cols), (&__pyx_v_vals))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 984, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":985 + * for irow from 0 <= irow < nrows: + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + * CHKERR( PetscMemcpy(AJ+AI[irow], cols, ncols*sizeof(PetscInt)) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMemcpy(AV+AI[irow], vals, ncols*sizeof(PetscScalar)) ) + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMemcpy((__pyx_v_AJ + (__pyx_v_AI[__pyx_v_irow])), __pyx_v_cols, (((size_t)__pyx_v_ncols) * (sizeof(PetscInt))))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 985, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":986 + * CHKERR( MatGetRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + * CHKERR( PetscMemcpy(AJ+AI[irow], cols, ncols*sizeof(PetscInt)) ) + * CHKERR( PetscMemcpy(AV+AI[irow], vals, ncols*sizeof(PetscScalar)) ) # <<<<<<<<<<<<<< + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMemcpy((__pyx_v_AV + (__pyx_v_AI[__pyx_v_irow])), __pyx_v_vals, (((size_t)__pyx_v_ncols) * (sizeof(PetscScalar))))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 986, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":987 + * CHKERR( PetscMemcpy(AJ+AI[irow], cols, ncols*sizeof(PetscInt)) ) + * CHKERR( PetscMemcpy(AV+AI[irow], vals, ncols*sizeof(PetscScalar)) ) + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) # <<<<<<<<<<<<<< + * # + * return (ai, aj, av) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreRow(__pyx_v_self->mat, (__pyx_v_irow + __pyx_v_rstart), (&__pyx_v_ncols), (&__pyx_v_cols), (&__pyx_v_vals))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 987, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":989 + * CHKERR( MatRestoreRow(self.mat, irow+rstart, &ncols, &cols, &vals) ) + * # + * return (ai, aj, av) # <<<<<<<<<<<<<< + * + * def getRow(self, row): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_ai)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ai)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_ai)); + __Pyx_INCREF(((PyObject *)__pyx_v_aj)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_aj)); + PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_aj)); + __Pyx_INCREF(((PyObject *)__pyx_v_av)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_av)); + PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_av)); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":962 + * return matgetvalues(self.mat, rows, cols, values) + * + * def getValuesCSR(self): # <<<<<<<<<<<<<< + * # row ownership + * cdef PetscInt rstart=0, rend=0, nrows=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getValuesCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ai); + __Pyx_XDECREF((PyObject *)__pyx_v_aj); + __Pyx_XDECREF((PyObject *)__pyx_v_av); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":991 + * return (ai, aj, av) + * + * def getRow(self, row): # <<<<<<<<<<<<<< + * cdef PetscInt irow = asInt(row) + * cdef PetscInt ncols = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_183getRow(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_182getRow[] = "Mat.getRow(self, row)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_183getRow(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRow (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getRow") < 0)) __PYX_ERR(45, 991, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_row = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getRow", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 991, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_182getRow(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_182getRow(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row) { + PetscInt __pyx_v_irow; + PetscInt __pyx_v_ncols; + PetscInt const *__pyx_v_icols; + PetscScalar const *__pyx_v_svals; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_vals = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRow", 0); + + /* "petsc4py/PETSc/Mat.pyx":992 + * + * def getRow(self, row): + * cdef PetscInt irow = asInt(row) # <<<<<<<<<<<<<< + * cdef PetscInt ncols = 0 + * cdef const PetscInt *icols=NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_row); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 992, __pyx_L1_error) + __pyx_v_irow = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":993 + * def getRow(self, row): + * cdef PetscInt irow = asInt(row) + * cdef PetscInt ncols = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *icols=NULL + * cdef const PetscScalar *svals=NULL + */ + __pyx_v_ncols = 0; + + /* "petsc4py/PETSc/Mat.pyx":994 + * cdef PetscInt irow = asInt(row) + * cdef PetscInt ncols = 0 + * cdef const PetscInt *icols=NULL # <<<<<<<<<<<<<< + * cdef const PetscScalar *svals=NULL + * CHKERR( MatGetRow(self.mat, irow, &ncols, &icols, &svals) ) + */ + __pyx_v_icols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":995 + * cdef PetscInt ncols = 0 + * cdef const PetscInt *icols=NULL + * cdef const PetscScalar *svals=NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetRow(self.mat, irow, &ncols, &icols, &svals) ) + * cdef object cols = array_i(ncols, icols) + */ + __pyx_v_svals = NULL; + + /* "petsc4py/PETSc/Mat.pyx":996 + * cdef const PetscInt *icols=NULL + * cdef const PetscScalar *svals=NULL + * CHKERR( MatGetRow(self.mat, irow, &ncols, &icols, &svals) ) # <<<<<<<<<<<<<< + * cdef object cols = array_i(ncols, icols) + * cdef object vals = array_s(ncols, svals) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetRow(__pyx_v_self->mat, __pyx_v_irow, (&__pyx_v_ncols), (&__pyx_v_icols), (&__pyx_v_svals))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 996, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":997 + * cdef const PetscScalar *svals=NULL + * CHKERR( MatGetRow(self.mat, irow, &ncols, &icols, &svals) ) + * cdef object cols = array_i(ncols, icols) # <<<<<<<<<<<<<< + * cdef object vals = array_s(ncols, svals) + * CHKERR( MatRestoreRow(self.mat, irow, &ncols, &icols, &svals) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_ncols, __pyx_v_icols)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_cols = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":998 + * CHKERR( MatGetRow(self.mat, irow, &ncols, &icols, &svals) ) + * cdef object cols = array_i(ncols, icols) + * cdef object vals = array_s(ncols, svals) # <<<<<<<<<<<<<< + * CHKERR( MatRestoreRow(self.mat, irow, &ncols, &icols, &svals) ) + * return (cols, vals) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_s(__pyx_v_ncols, __pyx_v_svals)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_vals = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":999 + * cdef object cols = array_i(ncols, icols) + * cdef object vals = array_s(ncols, svals) + * CHKERR( MatRestoreRow(self.mat, irow, &ncols, &icols, &svals) ) # <<<<<<<<<<<<<< + * return (cols, vals) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreRow(__pyx_v_self->mat, __pyx_v_irow, (&__pyx_v_ncols), (&__pyx_v_icols), (&__pyx_v_svals))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 999, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1000 + * cdef object vals = array_s(ncols, svals) + * CHKERR( MatRestoreRow(self.mat, irow, &ncols, &icols, &svals) ) + * return (cols, vals) # <<<<<<<<<<<<<< + * + * def getRowIJ(self, symmetric=False, compressed=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_cols); + __Pyx_GIVEREF(__pyx_v_cols); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_cols); + __Pyx_INCREF(__pyx_v_vals); + __Pyx_GIVEREF(__pyx_v_vals); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_vals); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":991 + * return (ai, aj, av) + * + * def getRow(self, row): # <<<<<<<<<<<<<< + * cdef PetscInt irow = asInt(row) + * cdef PetscInt ncols = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRow", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cols); + __Pyx_XDECREF(__pyx_v_vals); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1002 + * return (cols, vals) + * + * def getRowIJ(self, symmetric=False, compressed=False): # <<<<<<<<<<<<<< + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_185getRowIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_184getRowIJ[] = "Mat.getRowIJ(self, symmetric=False, compressed=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_185getRowIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_symmetric = 0; + PyObject *__pyx_v_compressed = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRowIJ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_symmetric,&__pyx_n_s_compressed,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_False); + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_symmetric); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compressed); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getRowIJ") < 0)) __PYX_ERR(45, 1002, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_symmetric = values[0]; + __pyx_v_compressed = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getRowIJ", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1002, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRowIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_184getRowIJ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_symmetric, __pyx_v_compressed); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_184getRowIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_symmetric, PyObject *__pyx_v_compressed) { + PetscInt __pyx_v_shift; + PetscBool __pyx_v_symm; + PetscBool __pyx_v_bcmp; + PetscInt __pyx_v_n; + PetscInt const *__pyx_v_ia; + PetscInt const *__pyx_v_ja; + PetscBool __pyx_v_done; + PyObject *__pyx_v_ai = 0; + PyObject *__pyx_v_aj = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRowIJ", 0); + + /* "petsc4py/PETSc/Mat.pyx":1003 + * + * def getRowIJ(self, symmetric=False, compressed=False): + * cdef PetscInt shift=0 # <<<<<<<<<<<<<< + * cdef PetscBool symm=symmetric + * cdef PetscBool bcmp=compressed + */ + __pyx_v_shift = 0; + + /* "petsc4py/PETSc/Mat.pyx":1004 + * def getRowIJ(self, symmetric=False, compressed=False): + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric # <<<<<<<<<<<<<< + * cdef PetscBool bcmp=compressed + * cdef PetscInt n=0 + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_symmetric)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1004, __pyx_L1_error) + __pyx_v_symm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1005 + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric + * cdef PetscBool bcmp=compressed # <<<<<<<<<<<<<< + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_compressed)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1005, __pyx_L1_error) + __pyx_v_bcmp = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1006 + * cdef PetscBool symm=symmetric + * cdef PetscBool bcmp=compressed + * cdef PetscInt n=0 # <<<<<<<<<<<<<< + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Mat.pyx":1007 + * cdef PetscBool bcmp=compressed + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL # <<<<<<<<<<<<<< + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE + */ + __pyx_v_ia = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1008 + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL # <<<<<<<<<<<<<< + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + */ + __pyx_v_ja = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1009 + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatGetRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None + */ + __pyx_v_done = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":1010 + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) # <<<<<<<<<<<<<< + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetRowIJ(__pyx_v_self->mat, __pyx_v_shift, __pyx_v_symm, __pyx_v_bcmp, (&__pyx_v_n), (&__pyx_v_ia), (&__pyx_v_ja), (&__pyx_v_done))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1010, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1011 + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None # <<<<<<<<<<<<<< + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + */ + __Pyx_INCREF(Py_None); + __pyx_v_ai = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_aj = Py_None; + + /* "petsc4py/PETSc/Mat.pyx":1012 + * CHKERR( MatGetRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) # <<<<<<<<<<<<<< + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + */ + __pyx_t_3 = ((__pyx_v_done != PETSC_FALSE) != 0); + if (__pyx_t_3) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_n + 1), __pyx_v_ia)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_ai, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1013 + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) # <<<<<<<<<<<<<< + * CHKERR( MatRestoreRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * return (ai, aj) + */ + __pyx_t_3 = ((__pyx_v_done != PETSC_FALSE) != 0); + if (__pyx_t_3) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_ia[__pyx_v_n]), __pyx_v_ja)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_aj, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1014 + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) # <<<<<<<<<<<<<< + * return (ai, aj) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreRowIJ(__pyx_v_self->mat, __pyx_v_shift, __pyx_v_symm, __pyx_v_bcmp, (&__pyx_v_n), (&__pyx_v_ia), (&__pyx_v_ja), (&__pyx_v_done))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1014, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1015 + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreRowIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * return (ai, aj) # <<<<<<<<<<<<<< + * + * def getColumnIJ(self, symmetric=False, compressed=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_ai); + __Pyx_GIVEREF(__pyx_v_ai); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ai); + __Pyx_INCREF(__pyx_v_aj); + __Pyx_GIVEREF(__pyx_v_aj); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_aj); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1002 + * return (cols, vals) + * + * def getRowIJ(self, symmetric=False, compressed=False): # <<<<<<<<<<<<<< + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRowIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ai); + __Pyx_XDECREF(__pyx_v_aj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1017 + * return (ai, aj) + * + * def getColumnIJ(self, symmetric=False, compressed=False): # <<<<<<<<<<<<<< + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric, bcmp=compressed + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_187getColumnIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_186getColumnIJ[] = "Mat.getColumnIJ(self, symmetric=False, compressed=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_187getColumnIJ(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_symmetric = 0; + PyObject *__pyx_v_compressed = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getColumnIJ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_symmetric,&__pyx_n_s_compressed,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_False); + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_symmetric); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_compressed); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getColumnIJ") < 0)) __PYX_ERR(45, 1017, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_symmetric = values[0]; + __pyx_v_compressed = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getColumnIJ", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1017, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getColumnIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_186getColumnIJ(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_symmetric, __pyx_v_compressed); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_186getColumnIJ(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_symmetric, PyObject *__pyx_v_compressed) { + PetscInt __pyx_v_shift; + PetscBool __pyx_v_symm; + PetscBool __pyx_v_bcmp; + PetscInt __pyx_v_n; + PetscInt const *__pyx_v_ia; + PetscInt const *__pyx_v_ja; + PetscBool __pyx_v_done; + PyObject *__pyx_v_ai = 0; + PyObject *__pyx_v_aj = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getColumnIJ", 0); + + /* "petsc4py/PETSc/Mat.pyx":1018 + * + * def getColumnIJ(self, symmetric=False, compressed=False): + * cdef PetscInt shift=0 # <<<<<<<<<<<<<< + * cdef PetscBool symm=symmetric, bcmp=compressed + * cdef PetscInt n=0 + */ + __pyx_v_shift = 0; + + /* "petsc4py/PETSc/Mat.pyx":1019 + * def getColumnIJ(self, symmetric=False, compressed=False): + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric, bcmp=compressed # <<<<<<<<<<<<<< + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_symmetric)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1019, __pyx_L1_error) + __pyx_v_symm = __pyx_t_1; + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_compressed)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1019, __pyx_L1_error) + __pyx_v_bcmp = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1020 + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric, bcmp=compressed + * cdef PetscInt n=0 # <<<<<<<<<<<<<< + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/Mat.pyx":1021 + * cdef PetscBool symm=symmetric, bcmp=compressed + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL # <<<<<<<<<<<<<< + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE + */ + __pyx_v_ia = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1022 + * cdef PetscInt n=0 + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL # <<<<<<<<<<<<<< + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + */ + __pyx_v_ja = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1023 + * cdef const PetscInt *ia=NULL + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatGetColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None + */ + __pyx_v_done = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":1024 + * cdef const PetscInt *ja=NULL + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) # <<<<<<<<<<<<<< + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetColumnIJ(__pyx_v_self->mat, __pyx_v_shift, __pyx_v_symm, __pyx_v_bcmp, (&__pyx_v_n), (&__pyx_v_ia), (&__pyx_v_ja), (&__pyx_v_done))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1024, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1025 + * cdef PetscBool done=PETSC_FALSE + * CHKERR( MatGetColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None # <<<<<<<<<<<<<< + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + */ + __Pyx_INCREF(Py_None); + __pyx_v_ai = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_aj = Py_None; + + /* "petsc4py/PETSc/Mat.pyx":1026 + * CHKERR( MatGetColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) # <<<<<<<<<<<<<< + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + */ + __pyx_t_3 = ((__pyx_v_done != PETSC_FALSE) != 0); + if (__pyx_t_3) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_n + 1), __pyx_v_ia)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_ai, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1027 + * cdef object ai=None, aj=None + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) # <<<<<<<<<<<<<< + * CHKERR( MatRestoreColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * return (ai, aj) + */ + __pyx_t_3 = ((__pyx_v_done != PETSC_FALSE) != 0); + if (__pyx_t_3) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_ia[__pyx_v_n]), __pyx_v_ja)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_aj, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1028 + * if done != PETSC_FALSE: ai = array_i( n+1, ia) + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) # <<<<<<<<<<<<<< + * return (ai, aj) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreColumnIJ(__pyx_v_self->mat, __pyx_v_shift, __pyx_v_symm, __pyx_v_bcmp, (&__pyx_v_n), (&__pyx_v_ia), (&__pyx_v_ja), (&__pyx_v_done))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1028, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1029 + * if done != PETSC_FALSE: aj = array_i(ia[n], ja) + * CHKERR( MatRestoreColumnIJ(self.mat, shift, symm, bcmp, &n, &ia, &ja, &done) ) + * return (ai, aj) # <<<<<<<<<<<<<< + * + * def setValue(self, row, col, value, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_ai); + __Pyx_GIVEREF(__pyx_v_ai); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_ai); + __Pyx_INCREF(__pyx_v_aj); + __Pyx_GIVEREF(__pyx_v_aj); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_aj); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1017 + * return (ai, aj) + * + * def getColumnIJ(self, symmetric=False, compressed=False): # <<<<<<<<<<<<<< + * cdef PetscInt shift=0 + * cdef PetscBool symm=symmetric, bcmp=compressed + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getColumnIJ", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ai); + __Pyx_XDECREF(__pyx_v_aj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1031 + * return (ai, aj) + * + * def setValue(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_189setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_188setValue[] = "Mat.setValue(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_189setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + PyObject *__pyx_v_col = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValue", 0, 3, 4, 1); __PYX_ERR(45, 1031, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValue", 0, 3, 4, 2); __PYX_ERR(45, 1031, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValue") < 0)) __PYX_ERR(45, 1031, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValue", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1031, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_188setValue(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_188setValue(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscScalar __pyx_v_sval; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscScalar __pyx_t_2; + InsertMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValue", 0); + + /* "petsc4py/PETSc/Mat.pyx":1032 + * + * def setValue(self, row, col, value, addv=None): + * cdef PetscInt ival1 = asInt(row) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_row); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1032, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1033 + * def setValue(self, row, col, value, addv=None): + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_col); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1033, __pyx_L1_error) + __pyx_v_ival2 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1034 + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatSetValues(self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_value); if (unlikely(__pyx_t_2 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1034, __pyx_L1_error) + __pyx_v_sval = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1035 + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( MatSetValues(self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_3 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(45, 1035, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_3; + + /* "petsc4py/PETSc/Mat.pyx":1036 + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatSetValues(self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) # <<<<<<<<<<<<<< + * + * def setValues(self, rows, cols, values, addv=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetValues(__pyx_v_self->mat, 1, (&__pyx_v_ival1), 1, (&__pyx_v_ival2), (&__pyx_v_sval), __pyx_v_caddv)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1036, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1031 + * return (ai, aj) + * + * def setValue(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1038 + * CHKERR( MatSetValues(self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + * def setValues(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 0, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_191setValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_190setValues[] = "Mat.setValues(self, rows, cols, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_191setValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_cols,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cols)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValues", 0, 3, 4, 1); __PYX_ERR(45, 1038, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValues", 0, 3, 4, 2); __PYX_ERR(45, 1038, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValues") < 0)) __PYX_ERR(45, 1038, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_cols = values[1]; + __pyx_v_values = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValues", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1038, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_190setValues(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_190setValues(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValues", 0); + + /* "petsc4py/PETSc/Mat.pyx":1039 + * + * def setValues(self, rows, cols, values, addv=None): + * matsetvalues(self.mat, rows, cols, values, addv, 0, 0) # <<<<<<<<<<<<<< + * + * def setValuesRCV(self, R, C, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv, 0, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1039, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1038 + * CHKERR( MatSetValues(self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + * def setValues(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 0, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1041 + * matsetvalues(self.mat, rows, cols, values, addv, 0, 0) + * + * def setValuesRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_193setValuesRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_192setValuesRCV[] = "Mat.setValuesRCV(self, R, C, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_193setValuesRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_R = 0; + PyObject *__pyx_v_C = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesRCV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_R,&__pyx_n_s_C,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesRCV", 0, 3, 4, 1); __PYX_ERR(45, 1041, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesRCV", 0, 3, 4, 2); __PYX_ERR(45, 1041, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesRCV") < 0)) __PYX_ERR(45, 1041, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_R = values[0]; + __pyx_v_C = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesRCV", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1041, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_192setValuesRCV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_192setValuesRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesRCV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1042 + * + * def setValuesRCV(self, R, C, V, addv=None): + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 0) # <<<<<<<<<<<<<< + * + * def setValuesIJV(self, I, J, V, addv=None, rowmap=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(__pyx_v_self->mat, __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv, 0, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1042, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1041 + * matsetvalues(self.mat, rows, cols, values, addv, 0, 0) + * + * def setValuesRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1044 + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 0) + * + * def setValuesIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_195setValuesIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_194setValuesIJV[] = "Mat.setValuesIJV(self, I, J, V, addv=None, rowmap=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_195setValuesIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_rowmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesIJV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,&__pyx_n_s_rowmap,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesIJV", 0, 3, 5, 1); __PYX_ERR(45, 1044, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesIJV", 0, 3, 5, 2); __PYX_ERR(45, 1044, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowmap); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesIJV") < 0)) __PYX_ERR(45, 1044, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + __pyx_v_rowmap = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesIJV", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1044, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_194setValuesIJV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_194setValuesIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesIJV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1045 + * + * def setValuesIJV(self, I, J, V, addv=None, rowmap=None): + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 0) # <<<<<<<<<<<<<< + * + * def setValuesCSR(self, I, J, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap, 0, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1045, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1044 + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 0) + * + * def setValuesIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1047 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 0) + * + * def setValuesCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_197setValuesCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_196setValuesCSR[] = "Mat.setValuesCSR(self, I, J, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_197setValuesCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesCSR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesCSR", 0, 3, 4, 1); __PYX_ERR(45, 1047, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesCSR", 0, 3, 4, 2); __PYX_ERR(45, 1047, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesCSR") < 0)) __PYX_ERR(45, 1047, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesCSR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1047, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_196setValuesCSR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_196setValuesCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":1048 + * + * def setValuesCSR(self, I, J, V, addv=None): + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 0) # <<<<<<<<<<<<<< + * + * def setValuesBlocked(self, rows, cols, values, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, 0, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1048, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1047 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 0) + * + * def setValuesCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1050 + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 0) + * + * def setValuesBlocked(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 1, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_199setValuesBlocked(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_198setValuesBlocked[] = "Mat.setValuesBlocked(self, rows, cols, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_199setValuesBlocked(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlocked (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_cols,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cols)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlocked", 0, 3, 4, 1); __PYX_ERR(45, 1050, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlocked", 0, 3, 4, 2); __PYX_ERR(45, 1050, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlocked") < 0)) __PYX_ERR(45, 1050, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_cols = values[1]; + __pyx_v_values = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlocked", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1050, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlocked", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_198setValuesBlocked(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_198setValuesBlocked(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlocked", 0); + + /* "petsc4py/PETSc/Mat.pyx":1051 + * + * def setValuesBlocked(self, rows, cols, values, addv=None): + * matsetvalues(self.mat, rows, cols, values, addv, 1, 0) # <<<<<<<<<<<<<< + * + * def setValuesBlockedRCV(self, R, C, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv, 1, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1051, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1050 + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 0) + * + * def setValuesBlocked(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 1, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlocked", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1053 + * matsetvalues(self.mat, rows, cols, values, addv, 1, 0) + * + * def setValuesBlockedRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_201setValuesBlockedRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_200setValuesBlockedRCV[] = "Mat.setValuesBlockedRCV(self, R, C, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_201setValuesBlockedRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_R = 0; + PyObject *__pyx_v_C = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedRCV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_R,&__pyx_n_s_C,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedRCV", 0, 3, 4, 1); __PYX_ERR(45, 1053, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedRCV", 0, 3, 4, 2); __PYX_ERR(45, 1053, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedRCV") < 0)) __PYX_ERR(45, 1053, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_R = values[0]; + __pyx_v_C = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedRCV", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1053, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_200setValuesBlockedRCV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_200setValuesBlockedRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedRCV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1054 + * + * def setValuesBlockedRCV(self, R, C, V, addv=None): + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 0) # <<<<<<<<<<<<<< + * + * def setValuesBlockedIJV(self, I, J, V, addv=None, rowmap=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(__pyx_v_self->mat, __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv, 1, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1054, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1053 + * matsetvalues(self.mat, rows, cols, values, addv, 1, 0) + * + * def setValuesBlockedRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1056 + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 0) + * + * def setValuesBlockedIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_203setValuesBlockedIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_202setValuesBlockedIJV[] = "Mat.setValuesBlockedIJV(self, I, J, V, addv=None, rowmap=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_203setValuesBlockedIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_rowmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedIJV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,&__pyx_n_s_rowmap,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedIJV", 0, 3, 5, 1); __PYX_ERR(45, 1056, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedIJV", 0, 3, 5, 2); __PYX_ERR(45, 1056, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowmap); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedIJV") < 0)) __PYX_ERR(45, 1056, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + __pyx_v_rowmap = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedIJV", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1056, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_202setValuesBlockedIJV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_202setValuesBlockedIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedIJV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1057 + * + * def setValuesBlockedIJV(self, I, J, V, addv=None, rowmap=None): + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 0) # <<<<<<<<<<<<<< + * + * def setValuesBlockedCSR(self, I, J, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap, 1, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1057, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1056 + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 0) + * + * def setValuesBlockedIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1059 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 0) + * + * def setValuesBlockedCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 0) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_205setValuesBlockedCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_204setValuesBlockedCSR[] = "Mat.setValuesBlockedCSR(self, I, J, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_205setValuesBlockedCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedCSR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedCSR", 0, 3, 4, 1); __PYX_ERR(45, 1059, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedCSR", 0, 3, 4, 2); __PYX_ERR(45, 1059, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedCSR") < 0)) __PYX_ERR(45, 1059, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedCSR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1059, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_204setValuesBlockedCSR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_204setValuesBlockedCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":1060 + * + * def setValuesBlockedCSR(self, I, J, V, addv=None): + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 0) # <<<<<<<<<<<<<< + * + * def setLGMap(self, LGMap rmap, LGMap cmap=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, 1, 0); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1060, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1059 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 0) + * + * def setValuesBlockedCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 0) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1062 + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 0) + * + * def setLGMap(self, LGMap rmap, LGMap cmap=None): # <<<<<<<<<<<<<< + * if cmap is None: cmap = rmap + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_207setLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_206setLGMap[] = "Mat.setLGMap(self, LGMap rmap, LGMap cmap=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_207setLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscLGMapObject *__pyx_v_rmap = 0; + struct PyPetscLGMapObject *__pyx_v_cmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLGMap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rmap,&__pyx_n_s_cmap,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscLGMapObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rmap)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cmap); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLGMap") < 0)) __PYX_ERR(45, 1062, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rmap = ((struct PyPetscLGMapObject *)values[0]); + __pyx_v_cmap = ((struct PyPetscLGMapObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLGMap", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1062, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rmap), __pyx_ptype_8petsc4py_5PETSc_LGMap, 0, "rmap", 0))) __PYX_ERR(45, 1062, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cmap), __pyx_ptype_8petsc4py_5PETSc_LGMap, 1, "cmap", 0))) __PYX_ERR(45, 1062, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_206setLGMap(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rmap, __pyx_v_cmap); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_206setLGMap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscLGMapObject *__pyx_v_rmap, struct PyPetscLGMapObject *__pyx_v_cmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLGMap", 0); + __Pyx_INCREF((PyObject *)__pyx_v_cmap); + + /* "petsc4py/PETSc/Mat.pyx":1063 + * + * def setLGMap(self, LGMap rmap, LGMap cmap=None): + * if cmap is None: cmap = rmap # <<<<<<<<<<<<<< + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_cmap) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(((PyObject *)__pyx_v_rmap)); + __Pyx_DECREF_SET(__pyx_v_cmap, __pyx_v_rmap); + } + + /* "petsc4py/PETSc/Mat.pyx":1064 + * def setLGMap(self, LGMap rmap, LGMap cmap=None): + * if cmap is None: cmap = rmap + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) # <<<<<<<<<<<<<< + * + * def getLGMap(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetLocalToGlobalMapping(__pyx_v_self->mat, __pyx_v_rmap->lgm, __pyx_v_cmap->lgm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1064, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1062 + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 0) + * + * def setLGMap(self, LGMap rmap, LGMap cmap=None): # <<<<<<<<<<<<<< + * if cmap is None: cmap = rmap + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_cmap); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1066 + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap cmap = LGMap() + * cdef LGMap rmap = LGMap() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_209getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_208getLGMap[] = "Mat.getLGMap(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_209getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLGMap (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLGMap", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLGMap", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_208getLGMap(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_208getLGMap(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscLGMapObject *__pyx_v_cmap = 0; + struct PyPetscLGMapObject *__pyx_v_rmap = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLGMap", 0); + + /* "petsc4py/PETSc/Mat.pyx":1067 + * + * def getLGMap(self): + * cdef LGMap cmap = LGMap() # <<<<<<<<<<<<<< + * cdef LGMap rmap = LGMap() + * CHKERR( MatGetLocalToGlobalMapping(self.mat, &rmap.lgm, &cmap.lgm) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cmap = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1068 + * def getLGMap(self): + * cdef LGMap cmap = LGMap() + * cdef LGMap rmap = LGMap() # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalToGlobalMapping(self.mat, &rmap.lgm, &cmap.lgm) ) + * PetscINCREF(cmap.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_rmap = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1069 + * cdef LGMap cmap = LGMap() + * cdef LGMap rmap = LGMap() + * CHKERR( MatGetLocalToGlobalMapping(self.mat, &rmap.lgm, &cmap.lgm) ) # <<<<<<<<<<<<<< + * PetscINCREF(cmap.obj) + * PetscINCREF(rmap.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalToGlobalMapping(__pyx_v_self->mat, (&__pyx_v_rmap->lgm), (&__pyx_v_cmap->lgm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1069, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1070 + * cdef LGMap rmap = LGMap() + * CHKERR( MatGetLocalToGlobalMapping(self.mat, &rmap.lgm, &cmap.lgm) ) + * PetscINCREF(cmap.obj) # <<<<<<<<<<<<<< + * PetscINCREF(rmap.obj) + * return (rmap, cmap) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_cmap->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1071 + * CHKERR( MatGetLocalToGlobalMapping(self.mat, &rmap.lgm, &cmap.lgm) ) + * PetscINCREF(cmap.obj) + * PetscINCREF(rmap.obj) # <<<<<<<<<<<<<< + * return (rmap, cmap) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_rmap->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1072 + * PetscINCREF(cmap.obj) + * PetscINCREF(rmap.obj) + * return (rmap, cmap) # <<<<<<<<<<<<<< + * + * def setValueLocal(self, row, col, value, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1072, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_rmap)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_rmap)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_rmap)); + __Pyx_INCREF(((PyObject *)__pyx_v_cmap)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_cmap)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cmap)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1066 + * CHKERR( MatSetLocalToGlobalMapping(self.mat, rmap.lgm, cmap.lgm) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap cmap = LGMap() + * cdef LGMap rmap = LGMap() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_cmap); + __Pyx_XDECREF((PyObject *)__pyx_v_rmap); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1074 + * return (rmap, cmap) + * + * def setValueLocal(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_211setValueLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_210setValueLocal[] = "Mat.setValueLocal(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_211setValueLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + PyObject *__pyx_v_col = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueLocal", 0, 3, 4, 1); __PYX_ERR(45, 1074, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueLocal", 0, 3, 4, 2); __PYX_ERR(45, 1074, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueLocal") < 0)) __PYX_ERR(45, 1074, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueLocal", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1074, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_210setValueLocal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_210setValueLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscScalar __pyx_v_sval; + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscScalar __pyx_t_2; + InsertMode __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueLocal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1075 + * + * def setValueLocal(self, row, col, value, addv=None): + * cdef PetscInt ival1 = asInt(row) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_row); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1075, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1076 + * def setValueLocal(self, row, col, value, addv=None): + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_col); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1076, __pyx_L1_error) + __pyx_v_ival2 = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1077 + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatSetValuesLocal( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_value); if (unlikely(__pyx_t_2 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1077, __pyx_L1_error) + __pyx_v_sval = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1078 + * cdef PetscInt ival2 = asInt(col) + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( MatSetValuesLocal( + * self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_3 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(45, 1078, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_3; + + /* "petsc4py/PETSc/Mat.pyx":1079 + * cdef PetscScalar sval = asScalar(value) + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatSetValuesLocal( # <<<<<<<<<<<<<< + * self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetValuesLocal(__pyx_v_self->mat, 1, (&__pyx_v_ival1), 1, (&__pyx_v_ival2), (&__pyx_v_sval), __pyx_v_caddv)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1079, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1074 + * return (rmap, cmap) + * + * def setValueLocal(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(row) + * cdef PetscInt ival2 = asInt(col) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1082 + * self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + * def setValuesLocal(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 0, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_213setValuesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_212setValuesLocal[] = "Mat.setValuesLocal(self, rows, cols, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_213setValuesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_cols,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cols)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocal", 0, 3, 4, 1); __PYX_ERR(45, 1082, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocal", 0, 3, 4, 2); __PYX_ERR(45, 1082, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesLocal") < 0)) __PYX_ERR(45, 1082, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_cols = values[1]; + __pyx_v_values = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesLocal", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1082, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_212setValuesLocal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_212setValuesLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesLocal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1083 + * + * def setValuesLocal(self, rows, cols, values, addv=None): + * matsetvalues(self.mat, rows, cols, values, addv, 0, 1) # <<<<<<<<<<<<<< + * + * def setValuesLocalRCV(self, R, C, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv, 0, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1083, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1082 + * self.mat, 1, &ival1, 1, &ival2, &sval, caddv) ) + * + * def setValuesLocal(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 0, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1085 + * matsetvalues(self.mat, rows, cols, values, addv, 0, 1) + * + * def setValuesLocalRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_215setValuesLocalRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_214setValuesLocalRCV[] = "Mat.setValuesLocalRCV(self, R, C, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_215setValuesLocalRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_R = 0; + PyObject *__pyx_v_C = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesLocalRCV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_R,&__pyx_n_s_C,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalRCV", 0, 3, 4, 1); __PYX_ERR(45, 1085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalRCV", 0, 3, 4, 2); __PYX_ERR(45, 1085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesLocalRCV") < 0)) __PYX_ERR(45, 1085, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_R = values[0]; + __pyx_v_C = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesLocalRCV", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1085, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_214setValuesLocalRCV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_214setValuesLocalRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesLocalRCV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1086 + * + * def setValuesLocalRCV(self, R, C, V, addv=None): + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 1) # <<<<<<<<<<<<<< + * + * def setValuesLocalIJV(self, I, J, V, addv=None, rowmap=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(__pyx_v_self->mat, __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv, 0, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1086, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1085 + * matsetvalues(self.mat, rows, cols, values, addv, 0, 1) + * + * def setValuesLocalRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1088 + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 1) + * + * def setValuesLocalIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_217setValuesLocalIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_216setValuesLocalIJV[] = "Mat.setValuesLocalIJV(self, I, J, V, addv=None, rowmap=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_217setValuesLocalIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_rowmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesLocalIJV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,&__pyx_n_s_rowmap,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalIJV", 0, 3, 5, 1); __PYX_ERR(45, 1088, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalIJV", 0, 3, 5, 2); __PYX_ERR(45, 1088, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowmap); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesLocalIJV") < 0)) __PYX_ERR(45, 1088, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + __pyx_v_rowmap = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesLocalIJV", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1088, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_216setValuesLocalIJV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_216setValuesLocalIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesLocalIJV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1089 + * + * def setValuesLocalIJV(self, I, J, V, addv=None, rowmap=None): + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 1) # <<<<<<<<<<<<<< + * + * def setValuesLocalCSR(self, I, J, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap, 0, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1089, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1088 + * matsetvalues_rcv(self.mat, R, C, V, addv, 0, 1) + * + * def setValuesLocalIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1091 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 1) + * + * def setValuesLocalCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_219setValuesLocalCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_218setValuesLocalCSR[] = "Mat.setValuesLocalCSR(self, I, J, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_219setValuesLocalCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesLocalCSR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalCSR", 0, 3, 4, 1); __PYX_ERR(45, 1091, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesLocalCSR", 0, 3, 4, 2); __PYX_ERR(45, 1091, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesLocalCSR") < 0)) __PYX_ERR(45, 1091, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesLocalCSR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1091, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_218setValuesLocalCSR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_218setValuesLocalCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesLocalCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":1092 + * + * def setValuesLocalCSR(self, I, J, V, addv=None): + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 1) # <<<<<<<<<<<<<< + * + * def setValuesBlockedLocal(self, rows, cols, values, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, 0, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1092, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1091 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 0, 1) + * + * def setValuesLocalCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesLocalCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1094 + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 1) + * + * def setValuesBlockedLocal(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 1, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_221setValuesBlockedLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_220setValuesBlockedLocal[] = "Mat.setValuesBlockedLocal(self, rows, cols, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_221setValuesBlockedLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_cols = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_cols,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cols)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocal", 0, 3, 4, 1); __PYX_ERR(45, 1094, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocal", 0, 3, 4, 2); __PYX_ERR(45, 1094, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedLocal") < 0)) __PYX_ERR(45, 1094, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_cols = values[1]; + __pyx_v_values = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocal", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1094, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_220setValuesBlockedLocal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_220setValuesBlockedLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_cols, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedLocal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1095 + * + * def setValuesBlockedLocal(self, rows, cols, values, addv=None): + * matsetvalues(self.mat, rows, cols, values, addv, 1, 1) # <<<<<<<<<<<<<< + * + * def setValuesBlockedLocalRCV(self, R, C, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues(__pyx_v_self->mat, __pyx_v_rows, __pyx_v_cols, __pyx_v_values, __pyx_v_addv, 1, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1095, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1094 + * matsetvalues_csr(self.mat, I, J, V, addv, 0, 1) + * + * def setValuesBlockedLocal(self, rows, cols, values, addv=None): # <<<<<<<<<<<<<< + * matsetvalues(self.mat, rows, cols, values, addv, 1, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1097 + * matsetvalues(self.mat, rows, cols, values, addv, 1, 1) + * + * def setValuesBlockedLocalRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_223setValuesBlockedLocalRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_222setValuesBlockedLocalRCV[] = "Mat.setValuesBlockedLocalRCV(self, R, C, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_223setValuesBlockedLocalRCV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_R = 0; + PyObject *__pyx_v_C = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedLocalRCV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_R,&__pyx_n_s_C,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalRCV", 0, 3, 4, 1); __PYX_ERR(45, 1097, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalRCV", 0, 3, 4, 2); __PYX_ERR(45, 1097, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedLocalRCV") < 0)) __PYX_ERR(45, 1097, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_R = values[0]; + __pyx_v_C = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalRCV", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1097, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_222setValuesBlockedLocalRCV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_222setValuesBlockedLocalRCV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_R, PyObject *__pyx_v_C, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedLocalRCV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1098 + * + * def setValuesBlockedLocalRCV(self, R, C, V, addv=None): + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 1) # <<<<<<<<<<<<<< + * + * def setValuesBlockedLocalIJV(self, I, J, V, addv=None, rowmap=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_rcv(__pyx_v_self->mat, __pyx_v_R, __pyx_v_C, __pyx_v_V, __pyx_v_addv, 1, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1098, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1097 + * matsetvalues(self.mat, rows, cols, values, addv, 1, 1) + * + * def setValuesBlockedLocalRCV(self, R, C, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalRCV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1100 + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 1) + * + * def setValuesBlockedLocalIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_225setValuesBlockedLocalIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_224setValuesBlockedLocalIJV[] = "Mat.setValuesBlockedLocalIJV(self, I, J, V, addv=None, rowmap=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_225setValuesBlockedLocalIJV(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + PyObject *__pyx_v_rowmap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedLocalIJV (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,&__pyx_n_s_rowmap,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalIJV", 0, 3, 5, 1); __PYX_ERR(45, 1100, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalIJV", 0, 3, 5, 2); __PYX_ERR(45, 1100, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rowmap); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedLocalIJV") < 0)) __PYX_ERR(45, 1100, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + __pyx_v_rowmap = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalIJV", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1100, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_224setValuesBlockedLocalIJV(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_224setValuesBlockedLocalIJV(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv, PyObject *__pyx_v_rowmap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedLocalIJV", 0); + + /* "petsc4py/PETSc/Mat.pyx":1101 + * + * def setValuesBlockedLocalIJV(self, I, J, V, addv=None, rowmap=None): + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 1) # <<<<<<<<<<<<<< + * + * def setValuesBlockedLocalCSR(self, I, J, V, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_ijv(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, __pyx_v_rowmap, 1, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1101, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1100 + * matsetvalues_rcv(self.mat, R, C, V, addv, 1, 1) + * + * def setValuesBlockedLocalIJV(self, I, J, V, addv=None, rowmap=None): # <<<<<<<<<<<<<< + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalIJV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1103 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 1) + * + * def setValuesBlockedLocalCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 1) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_227setValuesBlockedLocalCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_226setValuesBlockedLocalCSR[] = "Mat.setValuesBlockedLocalCSR(self, I, J, V, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_227setValuesBlockedLocalCSR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_I = 0; + PyObject *__pyx_v_J = 0; + PyObject *__pyx_v_V = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValuesBlockedLocalCSR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_I,&__pyx_n_s_J,&__pyx_n_s_V,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalCSR", 0, 3, 4, 1); __PYX_ERR(45, 1103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalCSR", 0, 3, 4, 2); __PYX_ERR(45, 1103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValuesBlockedLocalCSR") < 0)) __PYX_ERR(45, 1103, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_I = values[0]; + __pyx_v_J = values[1]; + __pyx_v_V = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValuesBlockedLocalCSR", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1103, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_226setValuesBlockedLocalCSR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_226setValuesBlockedLocalCSR(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_I, PyObject *__pyx_v_J, PyObject *__pyx_v_V, PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValuesBlockedLocalCSR", 0); + + /* "petsc4py/PETSc/Mat.pyx":1104 + * + * def setValuesBlockedLocalCSR(self, I, J, V, addv=None): + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 1) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvalues_csr(__pyx_v_self->mat, __pyx_v_I, __pyx_v_J, __pyx_v_V, __pyx_v_addv, 1, 1); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1104, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1103 + * matsetvalues_ijv(self.mat, I, J, V, addv, rowmap, 1, 1) + * + * def setValuesBlockedLocalCSR(self, I, J, V, addv=None): # <<<<<<<<<<<<<< + * matsetvalues_csr(self.mat, I, J, V, addv, 1, 1) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValuesBlockedLocalCSR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1110 + * Stencil = _Mat_Stencil + * + * def setStencil(self, dims, starts=None, dof=1): # <<<<<<<<<<<<<< + * cdef PetscInt ndim, ndof + * cdef PetscInt cdims[3], cstarts[3] + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_229setStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_228setStencil[] = "Mat.setStencil(self, dims, starts=None, dof=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_229setStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dims = 0; + PyObject *__pyx_v_starts = 0; + PyObject *__pyx_v_dof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dims,&__pyx_n_s_starts,&__pyx_n_s_dof,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dims)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_starts); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencil") < 0)) __PYX_ERR(45, 1110, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dims = values[0]; + __pyx_v_starts = values[1]; + __pyx_v_dof = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencil", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1110, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_228setStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_dims, __pyx_v_starts, __pyx_v_dof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_228setStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_dims, PyObject *__pyx_v_starts, PyObject *__pyx_v_dof) { + PetscInt __pyx_v_ndim; + PetscInt __pyx_v_ndof; + PetscInt __pyx_v_cdims[3]; + PetscInt __pyx_v_cstarts[3]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1113 + * cdef PetscInt ndim, ndof + * cdef PetscInt cdims[3], cstarts[3] + * cdims[0] = cdims[1] = cdims[2] = 1 # <<<<<<<<<<<<<< + * cstarts[0] = cstarts[1] = cstarts[2] = 0 + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) + */ + (__pyx_v_cdims[0]) = 1; + (__pyx_v_cdims[1]) = 1; + (__pyx_v_cdims[2]) = 1; + + /* "petsc4py/PETSc/Mat.pyx":1114 + * cdef PetscInt cdims[3], cstarts[3] + * cdims[0] = cdims[1] = cdims[2] = 1 + * cstarts[0] = cstarts[1] = cstarts[2] = 0 # <<<<<<<<<<<<<< + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) + * ndof = asInt(dof) + */ + (__pyx_v_cstarts[0]) = 0; + (__pyx_v_cstarts[1]) = 0; + (__pyx_v_cstarts[2]) = 0; + + /* "petsc4py/PETSc/Mat.pyx":1115 + * cdims[0] = cdims[1] = cdims[2] = 1 + * cstarts[0] = cstarts[1] = cstarts[2] = 0 + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) # <<<<<<<<<<<<<< + * ndof = asInt(dof) + * if starts is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_dims, (&(__pyx_v_cdims[0])), (&(__pyx_v_cdims[1])), (&(__pyx_v_cdims[2]))); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1115, __pyx_L1_error) + __pyx_v_ndim = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1116 + * cstarts[0] = cstarts[1] = cstarts[2] = 0 + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) + * ndof = asInt(dof) # <<<<<<<<<<<<<< + * if starts is not None: + * asDims(dims, &cstarts[0], &cstarts[1], &cstarts[2]) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1116, __pyx_L1_error) + __pyx_v_ndof = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1117 + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) + * ndof = asInt(dof) + * if starts is not None: # <<<<<<<<<<<<<< + * asDims(dims, &cstarts[0], &cstarts[1], &cstarts[2]) + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) + */ + __pyx_t_2 = (__pyx_v_starts != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1118 + * ndof = asInt(dof) + * if starts is not None: + * asDims(dims, &cstarts[0], &cstarts[1], &cstarts[2]) # <<<<<<<<<<<<<< + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_dims, (&(__pyx_v_cstarts[0])), (&(__pyx_v_cstarts[1])), (&(__pyx_v_cstarts[2]))); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1118, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1117 + * ndim = asDims(dims, &cdims[0], &cdims[1], &cdims[2]) + * ndof = asInt(dof) + * if starts is not None: # <<<<<<<<<<<<<< + * asDims(dims, &cstarts[0], &cstarts[1], &cstarts[2]) + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1119 + * if starts is not None: + * asDims(dims, &cstarts[0], &cstarts[1], &cstarts[2]) + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) # <<<<<<<<<<<<<< + * + * def setValueStencil(self, row, col, value, addv=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetStencil(__pyx_v_self->mat, __pyx_v_ndim, __pyx_v_cdims, __pyx_v_cstarts, __pyx_v_ndof)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1119, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1110 + * Stencil = _Mat_Stencil + * + * def setStencil(self, dims, starts=None, dof=1): # <<<<<<<<<<<<<< + * cdef PetscInt ndim, ndof + * cdef PetscInt cdims[3], cstarts[3] + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1121 + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) + * + * def setValueStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_231setValueStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_230setValueStencil[] = "Mat.setValueStencil(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_231setValueStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + PyObject *__pyx_v_col = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueStencil", 0, 3, 4, 1); __PYX_ERR(45, 1121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueStencil", 0, 3, 4, 2); __PYX_ERR(45, 1121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueStencil") < 0)) __PYX_ERR(45, 1121, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueStencil", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1121, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_230setValueStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_230setValueStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_r = 0; + struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_c = 0; + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + InsertMode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1122 + * + * def setValueStencil(self, row, col, value, addv=None): + * cdef _Mat_Stencil r = row, c = col # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * matsetvaluestencil(self.mat, r, c, value, im, 0) + */ + if (!(likely(((__pyx_v_row) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_row, __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil))))) __PYX_ERR(45, 1122, __pyx_L1_error) + __pyx_t_1 = __pyx_v_row; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_r = ((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_t_1); + __pyx_t_1 = 0; + if (!(likely(((__pyx_v_col) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_col, __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil))))) __PYX_ERR(45, 1122, __pyx_L1_error) + __pyx_t_1 = __pyx_v_col; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_c = ((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1123 + * def setValueStencil(self, row, col, value, addv=None): + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * matsetvaluestencil(self.mat, r, c, value, im, 0) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_2 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(45, 1123, __pyx_L1_error) + __pyx_v_im = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1124 + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + * matsetvaluestencil(self.mat, r, c, value, im, 0) # <<<<<<<<<<<<<< + * + * def setValueStagStencil(self, row, col, value, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvaluestencil(__pyx_v_self->mat, __pyx_v_r, __pyx_v_c, __pyx_v_value, __pyx_v_im, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1121 + * CHKERR( MatSetStencil(self.mat, ndim, cdims, cstarts, ndof) ) + * + * def setValueStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1126 + * matsetvaluestencil(self.mat, r, c, value, im, 0) + * + * def setValueStagStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_233setValueStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_232setValueStagStencil[] = "Mat.setValueStagStencil(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_233setValueStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_row = 0; + CYTHON_UNUSED PyObject *__pyx_v_col = 0; + CYTHON_UNUSED PyObject *__pyx_v_value = 0; + CYTHON_UNUSED PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueStagStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueStagStencil", 0, 3, 4, 1); __PYX_ERR(45, 1126, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueStagStencil", 0, 3, 4, 2); __PYX_ERR(45, 1126, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueStagStencil") < 0)) __PYX_ERR(45, 1126, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueStagStencil", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1126, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_232setValueStagStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_232setValueStagStencil(CYTHON_UNUSED struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_row, CYTHON_UNUSED PyObject *__pyx_v_col, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueStagStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1127 + * + * def setValueStagStencil(self, row, col, value, addv=None): + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setValueBlockedStencil(self, row, col, value, addv=None): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__42, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(45, 1127, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1126 + * matsetvaluestencil(self.mat, r, c, value, im, 0) + * + * def setValueStagStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1129 + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') + * + * def setValueBlockedStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_235setValueBlockedStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_234setValueBlockedStencil[] = "Mat.setValueBlockedStencil(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_235setValueBlockedStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_row = 0; + PyObject *__pyx_v_col = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueBlockedStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueBlockedStencil", 0, 3, 4, 1); __PYX_ERR(45, 1129, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueBlockedStencil", 0, 3, 4, 2); __PYX_ERR(45, 1129, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueBlockedStencil") < 0)) __PYX_ERR(45, 1129, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueBlockedStencil", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1129, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueBlockedStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_234setValueBlockedStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_234setValueBlockedStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_row, PyObject *__pyx_v_col, PyObject *__pyx_v_value, PyObject *__pyx_v_addv) { + struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_r = 0; + struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_c = 0; + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + InsertMode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueBlockedStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1130 + * + * def setValueBlockedStencil(self, row, col, value, addv=None): + * cdef _Mat_Stencil r = row, c = col # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * matsetvaluestencil(self.mat, r, c, value, im, 1) + */ + if (!(likely(((__pyx_v_row) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_row, __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil))))) __PYX_ERR(45, 1130, __pyx_L1_error) + __pyx_t_1 = __pyx_v_row; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_r = ((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_t_1); + __pyx_t_1 = 0; + if (!(likely(((__pyx_v_col) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_col, __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil))))) __PYX_ERR(45, 1130, __pyx_L1_error) + __pyx_t_1 = __pyx_v_col; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_c = ((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1131 + * def setValueBlockedStencil(self, row, col, value, addv=None): + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * matsetvaluestencil(self.mat, r, c, value, im, 1) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_2 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(45, 1131, __pyx_L1_error) + __pyx_v_im = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1132 + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + * matsetvaluestencil(self.mat, r, c, value, im, 1) # <<<<<<<<<<<<<< + * + * def setValueBlockedStagStencil(self, row, col, value, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matsetvaluestencil(__pyx_v_self->mat, __pyx_v_r, __pyx_v_c, __pyx_v_value, __pyx_v_im, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1129 + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') + * + * def setValueBlockedStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * cdef _Mat_Stencil r = row, c = col + * cdef PetscInsertMode im = insertmode(addv) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueBlockedStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1134 + * matsetvaluestencil(self.mat, r, c, value, im, 1) + * + * def setValueBlockedStagStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_237setValueBlockedStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_236setValueBlockedStagStencil[] = "Mat.setValueBlockedStagStencil(self, row, col, value, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_237setValueBlockedStagStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_row = 0; + CYTHON_UNUSED PyObject *__pyx_v_col = 0; + CYTHON_UNUSED PyObject *__pyx_v_value = 0; + CYTHON_UNUSED PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValueBlockedStagStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_row,&__pyx_n_s_col,&__pyx_n_s_value,&__pyx_n_s_addv,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_row)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_col)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueBlockedStagStencil", 0, 3, 4, 1); __PYX_ERR(45, 1134, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValueBlockedStagStencil", 0, 3, 4, 2); __PYX_ERR(45, 1134, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValueBlockedStagStencil") < 0)) __PYX_ERR(45, 1134, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_row = values[0]; + __pyx_v_col = values[1]; + __pyx_v_value = values[2]; + __pyx_v_addv = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValueBlockedStagStencil", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1134, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueBlockedStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_236setValueBlockedStagStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_row, __pyx_v_col, __pyx_v_value, __pyx_v_addv); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_236setValueBlockedStagStencil(CYTHON_UNUSED struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_row, CYTHON_UNUSED PyObject *__pyx_v_col, CYTHON_UNUSED PyObject *__pyx_v_value, CYTHON_UNUSED PyObject *__pyx_v_addv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValueBlockedStagStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1135 + * + * def setValueBlockedStagStencil(self, row, col, value, addv=None): + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__43, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(45, 1135, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1134 + * matsetvaluestencil(self.mat, r, c, value, im, 1) + * + * def setValueBlockedStagStencil(self, row, col, value, addv=None): # <<<<<<<<<<<<<< + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setValueBlockedStagStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1137 + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') + * + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_239zeroRows(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_238zeroRows[] = "Mat.zeroRows(self, rows, diag=1, Vec x=None, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_239zeroRows(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_diag = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroRows (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_diag,&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zeroRows") < 0)) __PYX_ERR(45, 1137, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_diag = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + __pyx_v_b = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("zeroRows", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1137, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRows", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(45, 1137, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(45, 1137, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_238zeroRows(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_diag, __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_238zeroRows(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscScalar __pyx_v_sval; + Vec __pyx_v_xvec; + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Vec __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroRows", 0); + __Pyx_INCREF(__pyx_v_rows); + + /* "petsc4py/PETSc/Mat.pyx":1138 + * + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1139 + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) # <<<<<<<<<<<<<< + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_diag); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1139, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1140 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL # <<<<<<<<<<<<<< + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + */ + __pyx_v_xvec = NULL; + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1141 + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_x->vec; + __pyx_v_xvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1142 + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1143 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_rows, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1144 + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsIS(self.mat, (rows).iset, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * else: + * rows = iarray_i(rows, &ni, &i) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsIS(__pyx_v_self->mat, ((struct PyPetscISObject *)__pyx_v_rows)->iset, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1144, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1143 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":1146 + * CHKERR( MatZeroRowsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + * rows = iarray_i(rows, &ni, &i) # <<<<<<<<<<<<<< + * CHKERR( MatZeroRows(self.mat, ni, i, sval, xvec, bvec) ) + * + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_rows, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1147 + * else: + * rows = iarray_i(rows, &ni, &i) + * CHKERR( MatZeroRows(self.mat, ni, i, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * + * def zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRows(__pyx_v_self->mat, __pyx_v_ni, __pyx_v_i, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1147, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/Mat.pyx":1137 + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') + * + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRows", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1149 + * CHKERR( MatZeroRows(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_241zeroRowsLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_240zeroRowsLocal[] = "Mat.zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_241zeroRowsLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_diag = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroRowsLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_diag,&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zeroRowsLocal") < 0)) __PYX_ERR(45, 1149, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_diag = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + __pyx_v_b = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("zeroRowsLocal", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1149, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(45, 1149, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(45, 1149, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_240zeroRowsLocal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_diag, __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_240zeroRowsLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscScalar __pyx_v_sval; + Vec __pyx_v_xvec; + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Vec __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroRowsLocal", 0); + __Pyx_INCREF(__pyx_v_rows); + + /* "petsc4py/PETSc/Mat.pyx":1150 + * + * def zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1151 + * def zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) # <<<<<<<<<<<<<< + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_diag); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1151, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1152 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL # <<<<<<<<<<<<<< + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + */ + __pyx_v_xvec = NULL; + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1153 + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_x->vec; + __pyx_v_xvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1154 + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1155 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_rows, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1156 + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * else: + * rows = iarray_i(rows, &ni, &i) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsLocalIS(__pyx_v_self->mat, ((struct PyPetscISObject *)__pyx_v_rows)->iset, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1156, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1155 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":1158 + * CHKERR( MatZeroRowsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + * rows = iarray_i(rows, &ni, &i) # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_rows, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1159 + * else: + * rows = iarray_i(rows, &ni, &i) + * CHKERR( MatZeroRowsLocal(self.mat, ni, i, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * + * def zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsLocal(__pyx_v_self->mat, __pyx_v_ni, __pyx_v_i, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1159, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/Mat.pyx":1149 + * CHKERR( MatZeroRows(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsLocal(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1161 + * CHKERR( MatZeroRowsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_243zeroRowsColumns(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_242zeroRowsColumns[] = "Mat.zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_243zeroRowsColumns(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_diag = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroRowsColumns (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_diag,&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zeroRowsColumns") < 0)) __PYX_ERR(45, 1161, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_diag = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + __pyx_v_b = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("zeroRowsColumns", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumns", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(45, 1161, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(45, 1161, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_242zeroRowsColumns(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_diag, __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_242zeroRowsColumns(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscScalar __pyx_v_sval; + Vec __pyx_v_xvec; + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Vec __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroRowsColumns", 0); + __Pyx_INCREF(__pyx_v_rows); + + /* "petsc4py/PETSc/Mat.pyx":1162 + * + * def zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1163 + * def zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) # <<<<<<<<<<<<<< + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_diag); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1163, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1164 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL # <<<<<<<<<<<<<< + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + */ + __pyx_v_xvec = NULL; + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1165 + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_x->vec; + __pyx_v_xvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1166 + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsColumnsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1167 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_rows, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1168 + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsColumnsIS(self.mat, (rows).iset, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * else: + * rows = iarray_i(rows, &ni, &i) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsColumnsIS(__pyx_v_self->mat, ((struct PyPetscISObject *)__pyx_v_rows)->iset, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1168, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1167 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":1170 + * CHKERR( MatZeroRowsColumnsIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + * rows = iarray_i(rows, &ni, &i) # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumns(self.mat, ni, i, sval, xvec, bvec) ) + * + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_rows, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1171 + * else: + * rows = iarray_i(rows, &ni, &i) + * CHKERR( MatZeroRowsColumns(self.mat, ni, i, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * + * def zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsColumns(__pyx_v_self->mat, __pyx_v_ni, __pyx_v_i, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1171, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/Mat.pyx":1161 + * CHKERR( MatZeroRowsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumns(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumns", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1173 + * CHKERR( MatZeroRowsColumns(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_245zeroRowsColumnsLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_244zeroRowsColumnsLocal[] = "Mat.zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_245zeroRowsColumnsLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_diag = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroRowsColumnsLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_diag,&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zeroRowsColumnsLocal") < 0)) __PYX_ERR(45, 1173, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_diag = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + __pyx_v_b = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("zeroRowsColumnsLocal", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1173, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumnsLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(45, 1173, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(45, 1173, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_244zeroRowsColumnsLocal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_diag, __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_244zeroRowsColumnsLocal(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + PetscInt __pyx_v_ni; + PetscInt *__pyx_v_i; + PetscScalar __pyx_v_sval; + Vec __pyx_v_xvec; + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Vec __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroRowsColumnsLocal", 0); + __Pyx_INCREF(__pyx_v_rows); + + /* "petsc4py/PETSc/Mat.pyx":1174 + * + * def zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + */ + __pyx_v_ni = 0; + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1175 + * def zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) # <<<<<<<<<<<<<< + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_diag); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1175, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1176 + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL # <<<<<<<<<<<<<< + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + */ + __pyx_v_xvec = NULL; + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1177 + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_x->vec; + __pyx_v_xvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1178 + * cdef PetscVec xvec=NULL, bvec=NULL + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsColumnsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1179 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_rows, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1180 + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): + * CHKERR( MatZeroRowsColumnsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * else: + * rows = iarray_i(rows, &ni, &i) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsColumnsLocalIS(__pyx_v_self->mat, ((struct PyPetscISObject *)__pyx_v_rows)->iset, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1180, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1179 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * if isinstance(rows, IS): # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/Mat.pyx":1182 + * CHKERR( MatZeroRowsColumnsLocalIS(self.mat, (rows).iset, sval, xvec, bvec) ) + * else: + * rows = iarray_i(rows, &ni, &i) # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_rows, (&__pyx_v_ni), (&__pyx_v_i))); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_rows, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1183 + * else: + * rows = iarray_i(rows, &ni, &i) + * CHKERR( MatZeroRowsColumnsLocal(self.mat, ni, i, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * + * def zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsColumnsLocal(__pyx_v_self->mat, __pyx_v_ni, __pyx_v_i, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1183, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/Mat.pyx":1173 + * CHKERR( MatZeroRowsColumns(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumnsLocal(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscInt ni=0, *i=NULL + * cdef PetscScalar sval = asScalar(diag) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumnsLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rows); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1185 + * CHKERR( MatZeroRowsColumnsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscInt nrows = asInt(len(rows)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_247zeroRowsColumnsStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_246zeroRowsColumnsStencil[] = "Mat.zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_247zeroRowsColumnsStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rows = 0; + PyObject *__pyx_v_diag = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("zeroRowsColumnsStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rows,&__pyx_n_s_diag,&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "zeroRowsColumnsStencil") < 0)) __PYX_ERR(45, 1185, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rows = values[0]; + __pyx_v_diag = values[1]; + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + __pyx_v_b = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("zeroRowsColumnsStencil", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1185, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumnsStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(45, 1185, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(45, 1185, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_246zeroRowsColumnsStencil(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_rows, __pyx_v_diag, __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_246zeroRowsColumnsStencil(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_rows, PyObject *__pyx_v_diag, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + PetscScalar __pyx_v_sval; + PetscInt __pyx_v_nrows; + CYTHON_UNUSED MatStencil __pyx_v_st; + struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *__pyx_v_r = 0; + MatStencil *__pyx_v_crows; + PetscInt __pyx_v_i; + Vec __pyx_v_xvec; + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + PetscInt __pyx_t_6; + PetscInt __pyx_t_7; + MatStencil __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + Vec __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("zeroRowsColumnsStencil", 0); + + /* "petsc4py/PETSc/Mat.pyx":1186 + * + * def zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscScalar sval = asScalar(diag) # <<<<<<<<<<<<<< + * cdef PetscInt nrows = asInt(len(rows)) + * cdef PetscMatStencil st + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_diag); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1186, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1187 + * def zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None): + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscInt nrows = asInt(len(rows)) # <<<<<<<<<<<<<< + * cdef PetscMatStencil st + * cdef _Mat_Stencil r + */ + __pyx_t_2 = PyObject_Length(__pyx_v_rows); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1187, __pyx_L1_error) + __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_3); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_nrows = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1190 + * cdef PetscMatStencil st + * cdef _Mat_Stencil r + * cdef PetscMatStencil *crows = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc((nrows+1)*sizeof(st), &crows) ) + * for i in range(nrows): + */ + __pyx_v_crows = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1191 + * cdef _Mat_Stencil r + * cdef PetscMatStencil *crows = NULL + * CHKERR( PetscMalloc((nrows+1)*sizeof(st), &crows) ) # <<<<<<<<<<<<<< + * for i in range(nrows): + * r = rows[i] + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)(__pyx_v_nrows + 1)) * (sizeof(__pyx_v_st))), (&__pyx_v_crows))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1191, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1192 + * cdef PetscMatStencil *crows = NULL + * CHKERR( PetscMalloc((nrows+1)*sizeof(st), &crows) ) + * for i in range(nrows): # <<<<<<<<<<<<<< + * r = rows[i] + * crows[i] = r.stencil + */ + __pyx_t_4 = __pyx_v_nrows; + __pyx_t_6 = __pyx_t_4; + for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) { + __pyx_v_i = __pyx_t_7; + + /* "petsc4py/PETSc/Mat.pyx":1193 + * CHKERR( PetscMalloc((nrows+1)*sizeof(st), &crows) ) + * for i in range(nrows): + * r = rows[i] # <<<<<<<<<<<<<< + * crows[i] = r.stencil + * cdef PetscVec xvec = NULL, bvec = NULL + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_rows, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil))))) __PYX_ERR(45, 1193, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_r, ((struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1194 + * for i in range(nrows): + * r = rows[i] + * crows[i] = r.stencil # <<<<<<<<<<<<<< + * cdef PetscVec xvec = NULL, bvec = NULL + * if x is not None: xvec = x.vec + */ + __pyx_t_8 = __pyx_v_r->stencil; + (__pyx_v_crows[__pyx_v_i]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/Mat.pyx":1195 + * r = rows[i] + * crows[i] = r.stencil + * cdef PetscVec xvec = NULL, bvec = NULL # <<<<<<<<<<<<<< + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + */ + __pyx_v_xvec = NULL; + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1196 + * crows[i] = r.stencil + * cdef PetscVec xvec = NULL, bvec = NULL + * if x is not None: xvec = x.vec # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * CHKERR( MatZeroRowsColumnsStencil(self.mat, nrows, crows, sval, xvec, bvec) ) + */ + __pyx_t_9 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_10 = (__pyx_t_9 != 0); + if (__pyx_t_10) { + __pyx_t_11 = __pyx_v_x->vec; + __pyx_v_xvec = __pyx_t_11; + } + + /* "petsc4py/PETSc/Mat.pyx":1197 + * cdef PetscVec xvec = NULL, bvec = NULL + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * CHKERR( MatZeroRowsColumnsStencil(self.mat, nrows, crows, sval, xvec, bvec) ) + * CHKERR( PetscFree( crows ) ) + */ + __pyx_t_10 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_9 = (__pyx_t_10 != 0); + if (__pyx_t_9) { + __pyx_t_11 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_11; + } + + /* "petsc4py/PETSc/Mat.pyx":1198 + * if x is not None: xvec = x.vec + * if b is not None: bvec = b.vec + * CHKERR( MatZeroRowsColumnsStencil(self.mat, nrows, crows, sval, xvec, bvec) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree( crows ) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatZeroRowsColumnsStencil(__pyx_v_self->mat, __pyx_v_nrows, __pyx_v_crows, __pyx_v_sval, __pyx_v_xvec, __pyx_v_bvec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1198, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1199 + * if b is not None: bvec = b.vec + * CHKERR( MatZeroRowsColumnsStencil(self.mat, nrows, crows, sval, xvec, bvec) ) + * CHKERR( PetscFree( crows ) ) # <<<<<<<<<<<<<< + * + * def storeValues(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_crows)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1199, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1185 + * CHKERR( MatZeroRowsColumnsLocal(self.mat, ni, i, sval, xvec, bvec) ) + * + * def zeroRowsColumnsStencil(self, rows, diag=1, Vec x=None, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(diag) + * cdef PetscInt nrows = asInt(len(rows)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.zeroRowsColumnsStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1201 + * CHKERR( PetscFree( crows ) ) + * + * def storeValues(self): # <<<<<<<<<<<<<< + * CHKERR( MatStoreValues(self.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_249storeValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_248storeValues[] = "Mat.storeValues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_249storeValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("storeValues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("storeValues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "storeValues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_248storeValues(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_248storeValues(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("storeValues", 0); + + /* "petsc4py/PETSc/Mat.pyx":1202 + * + * def storeValues(self): + * CHKERR( MatStoreValues(self.mat) ) # <<<<<<<<<<<<<< + * + * def retrieveValues(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatStoreValues(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1202, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1201 + * CHKERR( PetscFree( crows ) ) + * + * def storeValues(self): # <<<<<<<<<<<<<< + * CHKERR( MatStoreValues(self.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.storeValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1204 + * CHKERR( MatStoreValues(self.mat) ) + * + * def retrieveValues(self): # <<<<<<<<<<<<<< + * CHKERR( MatRetrieveValues(self.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_251retrieveValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_250retrieveValues[] = "Mat.retrieveValues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_251retrieveValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("retrieveValues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("retrieveValues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "retrieveValues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_250retrieveValues(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_250retrieveValues(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("retrieveValues", 0); + + /* "petsc4py/PETSc/Mat.pyx":1205 + * + * def retrieveValues(self): + * CHKERR( MatRetrieveValues(self.mat) ) # <<<<<<<<<<<<<< + * + * def assemblyBegin(self, assembly=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRetrieveValues(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1205, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1204 + * CHKERR( MatStoreValues(self.mat) ) + * + * def retrieveValues(self): # <<<<<<<<<<<<<< + * CHKERR( MatRetrieveValues(self.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.retrieveValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1207 + * CHKERR( MatRetrieveValues(self.mat) ) + * + * def assemblyBegin(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_253assemblyBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_252assemblyBegin[] = "Mat.assemblyBegin(self, assembly=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_253assemblyBegin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_assembly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemblyBegin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_assembly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assembly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "assemblyBegin") < 0)) __PYX_ERR(45, 1207, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_assembly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("assemblyBegin", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1207, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemblyBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_252assemblyBegin(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_assembly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_252assemblyBegin(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly) { + MatAssemblyType __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatAssemblyType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemblyBegin", 0); + + /* "petsc4py/PETSc/Mat.pyx":1208 + * + * def assemblyBegin(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) # <<<<<<<<<<<<<< + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_assemblytype(__pyx_v_assembly); if (unlikely(__pyx_t_1 == ((MatAssemblyType)((MatAssemblyType)-1L)))) __PYX_ERR(45, 1208, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1209 + * def assemblyBegin(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) # <<<<<<<<<<<<<< + * + * def assemblyEnd(self, assembly=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAssemblyBegin(__pyx_v_self->mat, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1209, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1207 + * CHKERR( MatRetrieveValues(self.mat) ) + * + * def assemblyBegin(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemblyBegin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1211 + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + * + * def assemblyEnd(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_255assemblyEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_254assemblyEnd[] = "Mat.assemblyEnd(self, assembly=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_255assemblyEnd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_assembly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemblyEnd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_assembly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assembly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "assemblyEnd") < 0)) __PYX_ERR(45, 1211, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_assembly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("assemblyEnd", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1211, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemblyEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_254assemblyEnd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_assembly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_254assemblyEnd(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly) { + MatAssemblyType __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatAssemblyType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemblyEnd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1212 + * + * def assemblyEnd(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) # <<<<<<<<<<<<<< + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_assemblytype(__pyx_v_assembly); if (unlikely(__pyx_t_1 == ((MatAssemblyType)((MatAssemblyType)-1L)))) __PYX_ERR(45, 1212, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1213 + * def assemblyEnd(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyEnd(self.mat, flag) ) # <<<<<<<<<<<<<< + * + * def assemble(self, assembly=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAssemblyEnd(__pyx_v_self->mat, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1213, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1211 + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + * + * def assemblyEnd(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemblyEnd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1215 + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + * def assemble(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_257assemble(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_256assemble[] = "Mat.assemble(self, assembly=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_257assemble(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_assembly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("assemble (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_assembly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_assembly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "assemble") < 0)) __PYX_ERR(45, 1215, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_assembly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("assemble", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1215, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemble", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_256assemble(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_assembly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_256assemble(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_assembly) { + MatAssemblyType __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MatAssemblyType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assemble", 0); + + /* "petsc4py/PETSc/Mat.pyx":1216 + * + * def assemble(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) # <<<<<<<<<<<<<< + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_assemblytype(__pyx_v_assembly); if (unlikely(__pyx_t_1 == ((MatAssemblyType)((MatAssemblyType)-1L)))) __PYX_ERR(45, 1216, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1217 + * def assemble(self, assembly=None): + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) # <<<<<<<<<<<<<< + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAssemblyBegin(__pyx_v_self->mat, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1217, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1218 + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + * CHKERR( MatAssemblyEnd(self.mat, flag) ) # <<<<<<<<<<<<<< + * + * def isAssembled(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAssemblyEnd(__pyx_v_self->mat, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1218, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1215 + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + * def assemble(self, assembly=None): # <<<<<<<<<<<<<< + * cdef PetscMatAssemblyType flag = assemblytype(assembly) + * CHKERR( MatAssemblyBegin(self.mat, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assemble", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1220 + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + * def isAssembled(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatAssembled(self.mat, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_259isAssembled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_258isAssembled[] = "Mat.isAssembled(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_259isAssembled(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isAssembled (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isAssembled", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isAssembled", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_258isAssembled(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_258isAssembled(struct PyPetscMatObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isAssembled", 0); + + /* "petsc4py/PETSc/Mat.pyx":1221 + * + * def isAssembled(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatAssembled(self.mat, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":1222 + * def isAssembled(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatAssembled(self.mat, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAssembled(__pyx_v_self->mat, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1222, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1223 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatAssembled(self.mat, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def findZeroRows(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1220 + * CHKERR( MatAssemblyEnd(self.mat, flag) ) + * + * def isAssembled(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatAssembled(self.mat, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.isAssembled", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1225 + * return toBool(flag) + * + * def findZeroRows(self): # <<<<<<<<<<<<<< + * cdef IS zerorows = IS() + * CHKERR( MatFindZeroRows(self.mat, &zerorows.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_261findZeroRows(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_260findZeroRows[] = "Mat.findZeroRows(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_261findZeroRows(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("findZeroRows (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("findZeroRows", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "findZeroRows", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_260findZeroRows(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_260findZeroRows(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_zerorows = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("findZeroRows", 0); + + /* "petsc4py/PETSc/Mat.pyx":1226 + * + * def findZeroRows(self): + * cdef IS zerorows = IS() # <<<<<<<<<<<<<< + * CHKERR( MatFindZeroRows(self.mat, &zerorows.iset) ) + * return zerorows + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_zerorows = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1227 + * def findZeroRows(self): + * cdef IS zerorows = IS() + * CHKERR( MatFindZeroRows(self.mat, &zerorows.iset) ) # <<<<<<<<<<<<<< + * return zerorows + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatFindZeroRows(__pyx_v_self->mat, (&__pyx_v_zerorows->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1227, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1228 + * cdef IS zerorows = IS() + * CHKERR( MatFindZeroRows(self.mat, &zerorows.iset) ) + * return zerorows # <<<<<<<<<<<<<< + * + * def createVecs(self, side=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_zerorows)); + __pyx_r = ((PyObject *)__pyx_v_zerorows); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1225 + * return toBool(flag) + * + * def findZeroRows(self): # <<<<<<<<<<<<<< + * cdef IS zerorows = IS() + * CHKERR( MatFindZeroRows(self.mat, &zerorows.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.findZeroRows", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_zerorows); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1230 + * return zerorows + * + * def createVecs(self, side=None): # <<<<<<<<<<<<<< + * cdef Vec vecr, vecl + * if side is None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_263createVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_262createVecs[] = "Mat.createVecs(self, side=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_263createVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_side = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createVecs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_side,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_side); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createVecs") < 0)) __PYX_ERR(45, 1230, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_side = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createVecs", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1230, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_262createVecs(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_side); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_262createVecs(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_side) { + struct PyPetscVecObject *__pyx_v_vecr = 0; + struct PyPetscVecObject *__pyx_v_vecl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createVecs", 0); + + /* "petsc4py/PETSc/Mat.pyx":1232 + * def createVecs(self, side=None): + * cdef Vec vecr, vecl + * if side is None: # <<<<<<<<<<<<<< + * vecr = Vec(); vecl = Vec(); + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + */ + __pyx_t_1 = (__pyx_v_side == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1233 + * cdef Vec vecr, vecl + * if side is None: + * vecr = Vec(); vecl = Vec(); # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + * return (vecr, vecl) + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_vecr = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_vecl = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1234 + * if side is None: + * vecr = Vec(); vecl = Vec(); + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) # <<<<<<<<<<<<<< + * return (vecr, vecl) + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, (&__pyx_v_vecr->vec), (&__pyx_v_vecl->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1234, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1235 + * vecr = Vec(); vecl = Vec(); + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + * return (vecr, vecl) # <<<<<<<<<<<<<< + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): + * vecr = Vec() + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_vecr)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vecr)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_vecr)); + __Pyx_INCREF(((PyObject *)__pyx_v_vecl)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vecl)); + PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_vecl)); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1232 + * def createVecs(self, side=None): + * cdef Vec vecr, vecl + * if side is None: # <<<<<<<<<<<<<< + * vecr = Vec(); vecl = Vec(); + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1236 + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + * return (vecr, vecl) + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): # <<<<<<<<<<<<<< + * vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + */ + __Pyx_INCREF(__pyx_v_side); + __pyx_t_3 = __pyx_v_side; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1236, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_R, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1236, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_right, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1236, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_Right, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1236, __pyx_L1_error) + if (!__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_RIGHT, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1236, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L4_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1237 + * return (vecr, vecl) + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): + * vecr = Vec() # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_vecr = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1238 + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): + * vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) # <<<<<<<<<<<<<< + * return vecr + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, (&__pyx_v_vecr->vec), NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1238, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1239 + * vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr # <<<<<<<<<<<<<< + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): + * vecl = Vec() + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vecr)); + __pyx_r = ((PyObject *)__pyx_v_vecr); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1236 + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, &vecl.vec) ) + * return (vecr, vecl) + * elif side in ('r', 'R', 'right', 'Right', 'RIGHT'): # <<<<<<<<<<<<<< + * vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1240 + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): # <<<<<<<<<<<<<< + * vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + */ + __Pyx_INCREF(__pyx_v_side); + __pyx_t_3 = __pyx_v_side; + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_l, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1240, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_L, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1240, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1240, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_Left, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1240, __pyx_L1_error) + if (!__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_LEFT, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1240, __pyx_L1_error) + __pyx_t_1 = __pyx_t_2; + __pyx_L9_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = (__pyx_t_1 != 0); + if (likely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Mat.pyx":1241 + * return vecr + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): + * vecl = Vec() # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + * return vecl + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_vecl = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1242 + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): + * vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) # <<<<<<<<<<<<<< + * return vecl + * else: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, NULL, (&__pyx_v_vecl->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1242, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1243 + * vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + * return vecl # <<<<<<<<<<<<<< + * else: + * raise ValueError("side '%r' not understood" % side) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vecl)); + __pyx_r = ((PyObject *)__pyx_v_vecl); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1240 + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr + * elif side in ('l', 'L', 'left', 'Left', 'LEFT'): # <<<<<<<<<<<<<< + * vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1245 + * return vecl + * else: + * raise ValueError("side '%r' not understood" % side) # <<<<<<<<<<<<<< + * + * def createVecRight(self): + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_side_r_not_understood, __pyx_v_side); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(45, 1245, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":1230 + * return zerorows + * + * def createVecs(self, side=None): # <<<<<<<<<<<<<< + * cdef Vec vecr, vecl + * if side is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vecr); + __Pyx_XDECREF((PyObject *)__pyx_v_vecl); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1247 + * raise ValueError("side '%r' not understood" % side) + * + * def createVecRight(self): # <<<<<<<<<<<<<< + * cdef Vec vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_265createVecRight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_264createVecRight[] = "Mat.createVecRight(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_265createVecRight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createVecRight (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createVecRight", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createVecRight", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_264createVecRight(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_264createVecRight(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vecr = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createVecRight", 0); + + /* "petsc4py/PETSc/Mat.pyx":1248 + * + * def createVecRight(self): + * cdef Vec vecr = Vec() # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vecr = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1249 + * def createVecRight(self): + * cdef Vec vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) # <<<<<<<<<<<<<< + * return vecr + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, (&__pyx_v_vecr->vec), NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1249, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1250 + * cdef Vec vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + * return vecr # <<<<<<<<<<<<<< + * + * def createVecLeft(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vecr)); + __pyx_r = ((PyObject *)__pyx_v_vecr); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1247 + * raise ValueError("side '%r' not understood" % side) + * + * def createVecRight(self): # <<<<<<<<<<<<<< + * cdef Vec vecr = Vec() + * CHKERR( MatCreateVecs(self.mat, &vecr.vec, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createVecRight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vecr); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1252 + * return vecr + * + * def createVecLeft(self): # <<<<<<<<<<<<<< + * cdef Vec vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_267createVecLeft(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_266createVecLeft[] = "Mat.createVecLeft(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_267createVecLeft(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createVecLeft (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createVecLeft", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createVecLeft", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_266createVecLeft(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_266createVecLeft(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vecl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createVecLeft", 0); + + /* "petsc4py/PETSc/Mat.pyx":1253 + * + * def createVecLeft(self): + * cdef Vec vecl = Vec() # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + * return vecl + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vecl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1254 + * def createVecLeft(self): + * cdef Vec vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) # <<<<<<<<<<<<<< + * return vecl + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, NULL, (&__pyx_v_vecl->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1254, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1255 + * cdef Vec vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + * return vecl # <<<<<<<<<<<<<< + * + * getVecs = createVecs + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vecl)); + __pyx_r = ((PyObject *)__pyx_v_vecl); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1252 + * return vecr + * + * def createVecLeft(self): # <<<<<<<<<<<<<< + * cdef Vec vecl = Vec() + * CHKERR( MatCreateVecs(self.mat, NULL, &vecl.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createVecLeft", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vecl); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1263 + * # + * + * def getColumnVector(self, column, Vec result=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(column) + * if result is None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_269getColumnVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_268getColumnVector[] = "Mat.getColumnVector(self, column, Vec result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_269getColumnVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_column = 0; + struct PyPetscVecObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getColumnVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_column,&__pyx_n_s_result,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_column)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getColumnVector") < 0)) __PYX_ERR(45, 1263, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_column = values[0]; + __pyx_v_result = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getColumnVector", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1263, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getColumnVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "result", 0))) __PYX_ERR(45, 1263, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_268getColumnVector(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_column, __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_268getColumnVector(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_column, struct PyPetscVecObject *__pyx_v_result) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getColumnVector", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1264 + * + * def getColumnVector(self, column, Vec result=None): + * cdef PetscInt ival = asInt(column) # <<<<<<<<<<<<<< + * if result is None: + * result = Vec() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_column); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1264, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1265 + * def getColumnVector(self, column, Vec result=None): + * cdef PetscInt ival = asInt(column) + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + __pyx_t_2 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1266 + * cdef PetscInt ival = asInt(column) + * if result is None: + * result = Vec() # <<<<<<<<<<<<<< + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscVecObject *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1265 + * def getColumnVector(self, column, Vec result=None): + * cdef PetscInt ival = asInt(column) + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1267 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetColumnVector(self.mat, result.vec, ival) ) + */ + __pyx_t_3 = ((__pyx_v_result->vec == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1268 + * result = Vec() + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetColumnVector(self.mat, result.vec, ival) ) + * return result + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, NULL, (&__pyx_v_result->vec))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1268, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1267 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetColumnVector(self.mat, result.vec, ival) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1269 + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetColumnVector(self.mat, result.vec, ival) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetColumnVector(__pyx_v_self->mat, __pyx_v_result->vec, __pyx_v_ival)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1269, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1270 + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetColumnVector(self.mat, result.vec, ival) ) + * return result # <<<<<<<<<<<<<< + * + * def getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1263 + * # + * + * def getColumnVector(self, column, Vec result=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(column) + * if result is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getColumnVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1272 + * return result + * + * def getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscInt _nsubcomm = asInt(nsubcomm) + * cdef MPI_Comm _subcomm = MPI_COMM_NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_271getRedundantMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_270getRedundantMatrix[] = "Mat.getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_271getRedundantMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nsubcomm = 0; + PyObject *__pyx_v_subcomm = 0; + struct PyPetscMatObject *__pyx_v_out = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRedundantMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsubcomm,&__pyx_n_s_subcomm,&__pyx_n_s_out,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsubcomm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subcomm); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_out); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getRedundantMatrix") < 0)) __PYX_ERR(45, 1272, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_nsubcomm = values[0]; + __pyx_v_subcomm = values[1]; + __pyx_v_out = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getRedundantMatrix", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1272, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRedundantMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_out), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "out", 0))) __PYX_ERR(45, 1272, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_270getRedundantMatrix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nsubcomm, __pyx_v_subcomm, __pyx_v_out); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_270getRedundantMatrix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nsubcomm, PyObject *__pyx_v_subcomm, struct PyPetscMatObject *__pyx_v_out) { + PetscInt __pyx_v__nsubcomm; + MPI_Comm __pyx_v__subcomm; + MatReuse __pyx_v_reuse; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + MPI_Comm __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRedundantMatrix", 0); + __Pyx_INCREF((PyObject *)__pyx_v_out); + + /* "petsc4py/PETSc/Mat.pyx":1273 + * + * def getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None): + * cdef PetscInt _nsubcomm = asInt(nsubcomm) # <<<<<<<<<<<<<< + * cdef MPI_Comm _subcomm = MPI_COMM_NULL + * if subcomm: _subcomm = def_Comm(subcomm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nsubcomm); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1273, __pyx_L1_error) + __pyx_v__nsubcomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1274 + * def getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None): + * cdef PetscInt _nsubcomm = asInt(nsubcomm) + * cdef MPI_Comm _subcomm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * if subcomm: _subcomm = def_Comm(subcomm, PETSC_COMM_DEFAULT) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + */ + __pyx_v__subcomm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/Mat.pyx":1275 + * cdef PetscInt _nsubcomm = asInt(nsubcomm) + * cdef MPI_Comm _subcomm = MPI_COMM_NULL + * if subcomm: _subcomm = def_Comm(subcomm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = Mat() + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_subcomm); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1275, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_subcomm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1275, __pyx_L1_error) + __pyx_v__subcomm = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1276 + * cdef MPI_Comm _subcomm = MPI_COMM_NULL + * if subcomm: _subcomm = def_Comm(subcomm, PETSC_COMM_DEFAULT) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * if out is None: out = Mat() + * if out.mat != NULL: reuse = MAT_REUSE_MATRIX + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1277 + * if subcomm: _subcomm = def_Comm(subcomm, PETSC_COMM_DEFAULT) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = Mat() # <<<<<<<<<<<<<< + * if out.mat != NULL: reuse = MAT_REUSE_MATRIX + * CHKERR( MatCreateRedundantMatrix(self.mat, _nsubcomm, _subcomm, reuse, &out.mat)) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_out) == Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + __pyx_t_5 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_out, ((struct PyPetscMatObject *)__pyx_t_5)); + __pyx_t_5 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1278 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if out is None: out = Mat() + * if out.mat != NULL: reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatCreateRedundantMatrix(self.mat, _nsubcomm, _subcomm, reuse, &out.mat)) + * return out + */ + __pyx_t_4 = ((__pyx_v_out->mat != NULL) != 0); + if (__pyx_t_4) { + __pyx_v_reuse = MAT_REUSE_MATRIX; + } + + /* "petsc4py/PETSc/Mat.pyx":1279 + * if out is None: out = Mat() + * if out.mat != NULL: reuse = MAT_REUSE_MATRIX + * CHKERR( MatCreateRedundantMatrix(self.mat, _nsubcomm, _subcomm, reuse, &out.mat)) # <<<<<<<<<<<<<< + * return out + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateRedundantMatrix(__pyx_v_self->mat, __pyx_v__nsubcomm, __pyx_v__subcomm, __pyx_v_reuse, (&__pyx_v_out->mat))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1279, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1280 + * if out.mat != NULL: reuse = MAT_REUSE_MATRIX + * CHKERR( MatCreateRedundantMatrix(self.mat, _nsubcomm, _subcomm, reuse, &out.mat)) + * return out # <<<<<<<<<<<<<< + * + * def getDiagonal(self, Vec result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_out)); + __pyx_r = ((PyObject *)__pyx_v_out); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1272 + * return result + * + * def getRedundantMatrix(self, nsubcomm, subcomm=None, Mat out=None): # <<<<<<<<<<<<<< + * cdef PetscInt _nsubcomm = asInt(nsubcomm) + * cdef MPI_Comm _subcomm = MPI_COMM_NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRedundantMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1282 + * return out + * + * def getDiagonal(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_273getDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_272getDiagonal[] = "Mat.getDiagonal(self, Vec result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_273getDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDiagonal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_result,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getDiagonal") < 0)) __PYX_ERR(45, 1282, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_result = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getDiagonal", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1282, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "result", 0))) __PYX_ERR(45, 1282, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_272getDiagonal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_272getDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDiagonal", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1283 + * + * def getDiagonal(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1284 + * def getDiagonal(self, Vec result=None): + * if result is None: + * result = Vec() # <<<<<<<<<<<<<< + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1283 + * + * def getDiagonal(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1285 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetDiagonal(self.mat, result.vec) ) + */ + __pyx_t_2 = ((__pyx_v_result->vec == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1286 + * result = Vec() + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetDiagonal(self.mat, result.vec) ) + * return result + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, NULL, (&__pyx_v_result->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1286, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1285 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetDiagonal(self.mat, result.vec) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1287 + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetDiagonal(self.mat, result.vec) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetDiagonal(__pyx_v_self->mat, __pyx_v_result->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1287, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1288 + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetDiagonal(self.mat, result.vec) ) + * return result # <<<<<<<<<<<<<< + * + * def getRowSum(self, Vec result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1282 + * return out + * + * def getDiagonal(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1290 + * return result + * + * def getRowSum(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_275getRowSum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_274getRowSum[] = "Mat.getRowSum(self, Vec result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_275getRowSum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRowSum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_result,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getRowSum") < 0)) __PYX_ERR(45, 1290, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_result = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getRowSum", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1290, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRowSum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "result", 0))) __PYX_ERR(45, 1290, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_274getRowSum(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_274getRowSum(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_result) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRowSum", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1291 + * + * def getRowSum(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1292 + * def getRowSum(self, Vec result=None): + * if result is None: + * result = Vec() # <<<<<<<<<<<<<< + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1291 + * + * def getRowSum(self, Vec result=None): + * if result is None: # <<<<<<<<<<<<<< + * result = Vec() + * if result.vec == NULL: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1293 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetRowSum(self.mat, result.vec) ) + */ + __pyx_t_2 = ((__pyx_v_result->vec == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1294 + * result = Vec() + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetRowSum(self.mat, result.vec) ) + * return result + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_self->mat, NULL, (&__pyx_v_result->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1294, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1293 + * if result is None: + * result = Vec() + * if result.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetRowSum(self.mat, result.vec) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1295 + * if result.vec == NULL: + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetRowSum(self.mat, result.vec) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetRowSum(__pyx_v_self->mat, __pyx_v_result->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1295, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1296 + * CHKERR( MatCreateVecs(self.mat, NULL, &result.vec) ) + * CHKERR( MatGetRowSum(self.mat, result.vec) ) + * return result # <<<<<<<<<<<<<< + * + * def setDiagonal(self, Vec diag, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1290 + * return result + * + * def getRowSum(self, Vec result=None): # <<<<<<<<<<<<<< + * if result is None: + * result = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getRowSum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1298 + * return result + * + * def setDiagonal(self, Vec diag, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_277setDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_276setDiagonal[] = "Mat.setDiagonal(self, Vec diag, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_277setDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_diag = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDiagonal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_diag,&__pyx_n_s_addv,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_diag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDiagonal") < 0)) __PYX_ERR(45, 1298, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_diag = ((struct PyPetscVecObject *)values[0]); + __pyx_v_addv = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDiagonal", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1298, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_diag), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "diag", 0))) __PYX_ERR(45, 1298, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_276setDiagonal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_diag, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_276setDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_diag, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_caddv; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDiagonal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1299 + * + * def setDiagonal(self, Vec diag, addv=None): + * cdef PetscInsertMode caddv = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(45, 1299, __pyx_L1_error) + __pyx_v_caddv = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1300 + * def setDiagonal(self, Vec diag, addv=None): + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) # <<<<<<<<<<<<<< + * + * def diagonalScale(self, Vec L=None, Vec R=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDiagonalSet(__pyx_v_self->mat, __pyx_v_diag->vec, __pyx_v_caddv)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1300, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1298 + * return result + * + * def setDiagonal(self, Vec diag, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode caddv = insertmode(addv) + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1302 + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) + * + * def diagonalScale(self, Vec L=None, Vec R=None): # <<<<<<<<<<<<<< + * cdef PetscVec vecl=NULL, vecr=NULL + * if L is not None: vecl = L.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_279diagonalScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_278diagonalScale[] = "Mat.diagonalScale(self, Vec L=None, Vec R=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_279diagonalScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_L = 0; + struct PyPetscVecObject *__pyx_v_R = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("diagonalScale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_L,&__pyx_n_s_R,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_L); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "diagonalScale") < 0)) __PYX_ERR(45, 1302, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_L = ((struct PyPetscVecObject *)values[0]); + __pyx_v_R = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("diagonalScale", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1302, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.diagonalScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_L), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "L", 0))) __PYX_ERR(45, 1302, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_R), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "R", 0))) __PYX_ERR(45, 1302, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_278diagonalScale(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_L, __pyx_v_R); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_278diagonalScale(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_L, struct PyPetscVecObject *__pyx_v_R) { + Vec __pyx_v_vecl; + Vec __pyx_v_vecr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("diagonalScale", 0); + + /* "petsc4py/PETSc/Mat.pyx":1303 + * + * def diagonalScale(self, Vec L=None, Vec R=None): + * cdef PetscVec vecl=NULL, vecr=NULL # <<<<<<<<<<<<<< + * if L is not None: vecl = L.vec + * if R is not None: vecr = R.vec + */ + __pyx_v_vecl = NULL; + __pyx_v_vecr = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1304 + * def diagonalScale(self, Vec L=None, Vec R=None): + * cdef PetscVec vecl=NULL, vecr=NULL + * if L is not None: vecl = L.vec # <<<<<<<<<<<<<< + * if R is not None: vecr = R.vec + * CHKERR( MatDiagonalScale(self.mat, vecl, vecr) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_L) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_L->vec; + __pyx_v_vecl = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1305 + * cdef PetscVec vecl=NULL, vecr=NULL + * if L is not None: vecl = L.vec + * if R is not None: vecr = R.vec # <<<<<<<<<<<<<< + * CHKERR( MatDiagonalScale(self.mat, vecl, vecr) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_R) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_R->vec; + __pyx_v_vecr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1306 + * if L is not None: vecl = L.vec + * if R is not None: vecr = R.vec + * CHKERR( MatDiagonalScale(self.mat, vecl, vecr) ) # <<<<<<<<<<<<<< + * + * def invertBlockDiagonal(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDiagonalScale(__pyx_v_self->mat, __pyx_v_vecl, __pyx_v_vecr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1306, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1302 + * CHKERR( MatDiagonalSet(self.mat, diag.vec, caddv) ) + * + * def diagonalScale(self, Vec L=None, Vec R=None): # <<<<<<<<<<<<<< + * cdef PetscVec vecl=NULL, vecr=NULL + * if L is not None: vecl = L.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.diagonalScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1308 + * CHKERR( MatDiagonalScale(self.mat, vecl, vecr) ) + * + * def invertBlockDiagonal(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 0, m = 0 + * cdef const PetscScalar *cibdiag = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_281invertBlockDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_280invertBlockDiagonal[] = "Mat.invertBlockDiagonal(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_281invertBlockDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("invertBlockDiagonal (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("invertBlockDiagonal", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "invertBlockDiagonal", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_280invertBlockDiagonal(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_280invertBlockDiagonal(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PetscInt __pyx_v_m; + PetscScalar const *__pyx_v_cibdiag; + PyArrayObject *__pyx_v_ibdiag = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("invertBlockDiagonal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1309 + * + * def invertBlockDiagonal(self): + * cdef PetscInt bs = 0, m = 0 # <<<<<<<<<<<<<< + * cdef const PetscScalar *cibdiag = NULL + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + */ + __pyx_v_bs = 0; + __pyx_v_m = 0; + + /* "petsc4py/PETSc/Mat.pyx":1310 + * def invertBlockDiagonal(self): + * cdef PetscInt bs = 0, m = 0 + * cdef const PetscScalar *cibdiag = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + */ + __pyx_v_cibdiag = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1311 + * cdef PetscInt bs = 0, m = 0 + * cdef const PetscScalar *cibdiag = NULL + * CHKERR( MatGetBlockSize(self.mat, &bs) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatInvertBlockDiagonal(self.mat, &cibdiag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetBlockSize(__pyx_v_self->mat, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1311, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1312 + * cdef const PetscScalar *cibdiag = NULL + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( MatInvertBlockDiagonal(self.mat, &cibdiag) ) + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_self->mat, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1312, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1313 + * CHKERR( MatGetBlockSize(self.mat, &bs) ) + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatInvertBlockDiagonal(self.mat, &cibdiag) ) # <<<<<<<<<<<<<< + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) + * ibdiag.shape = (toInt(m//bs), toInt(bs), toInt(bs)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatInvertBlockDiagonal(__pyx_v_self->mat, (&__pyx_v_cibdiag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1313, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1314 + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatInvertBlockDiagonal(self.mat, &cibdiag) ) + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) # <<<<<<<<<<<<<< + * ibdiag.shape = (toInt(m//bs), toInt(bs), toInt(bs)) + * return ibdiag.transpose(0, 2, 1) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_s((__pyx_v_m * __pyx_v_bs), __pyx_v_cibdiag)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ibdiag = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1315 + * CHKERR( MatInvertBlockDiagonal(self.mat, &cibdiag) ) + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) + * ibdiag.shape = (toInt(m//bs), toInt(bs), toInt(bs)) # <<<<<<<<<<<<<< + * return ibdiag.transpose(0, 2, 1) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_m / __pyx_v_bs)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_ibdiag), __pyx_n_s_shape, __pyx_t_5) < 0) __PYX_ERR(45, 1315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1316 + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) + * ibdiag.shape = (toInt(m//bs), toInt(bs), toInt(bs)) + * return ibdiag.transpose(0, 2, 1) # <<<<<<<<<<<<<< + * + * # null space + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ibdiag), __pyx_n_s_transpose); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__44, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1308 + * CHKERR( MatDiagonalScale(self.mat, vecl, vecr) ) + * + * def invertBlockDiagonal(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 0, m = 0 + * cdef const PetscScalar *cibdiag = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.invertBlockDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ibdiag); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1320 + * # null space + * + * def setNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetNullSpace(self.mat, nsp.nsp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_283setNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_282setNullSpace[] = "Mat.setNullSpace(self, NullSpace nsp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_283setNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNullSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNullSpace") < 0)) __PYX_ERR(45, 1320, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNullSpace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1320, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nsp), __pyx_ptype_8petsc4py_5PETSc_NullSpace, 0, "nsp", 0))) __PYX_ERR(45, 1320, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_282setNullSpace(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nsp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_282setNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1321 + * + * def setNullSpace(self, NullSpace nsp): + * CHKERR( MatSetNullSpace(self.mat, nsp.nsp) ) # <<<<<<<<<<<<<< + * + * def getNullSpace(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetNullSpace(__pyx_v_self->mat, __pyx_v_nsp->nsp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1321, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1320 + * # null space + * + * def setNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetNullSpace(self.mat, nsp.nsp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1323 + * CHKERR( MatSetNullSpace(self.mat, nsp.nsp) ) + * + * def getNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_285getNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_284getNullSpace[] = "Mat.getNullSpace(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_285getNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNullSpace (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNullSpace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNullSpace", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_284getNullSpace(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_284getNullSpace(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1324 + * + * def getNullSpace(self): + * cdef NullSpace nsp = NullSpace() # <<<<<<<<<<<<<< + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_NullSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1325 + * def getNullSpace(self): + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) # <<<<<<<<<<<<<< + * PetscINCREF(nsp.obj) + * return nsp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetNullSpace(__pyx_v_self->mat, (&__pyx_v_nsp->nsp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1325, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1326 + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) # <<<<<<<<<<<<<< + * return nsp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_nsp->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1327 + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + * return nsp # <<<<<<<<<<<<<< + * + * def setTransposeNullSpace(self, NullSpace nsp): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_nsp)); + __pyx_r = ((PyObject *)__pyx_v_nsp); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1323 + * CHKERR( MatSetNullSpace(self.mat, nsp.nsp) ) + * + * def getNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNullSpace(self.mat, &nsp.nsp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_nsp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1329 + * return nsp + * + * def setTransposeNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetTransposeNullSpace(self.mat, nsp.nsp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_287setTransposeNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_286setTransposeNullSpace[] = "Mat.setTransposeNullSpace(self, NullSpace nsp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_287setTransposeNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTransposeNullSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTransposeNullSpace") < 0)) __PYX_ERR(45, 1329, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTransposeNullSpace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1329, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setTransposeNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nsp), __pyx_ptype_8petsc4py_5PETSc_NullSpace, 0, "nsp", 0))) __PYX_ERR(45, 1329, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_286setTransposeNullSpace(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nsp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_286setTransposeNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTransposeNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1330 + * + * def setTransposeNullSpace(self, NullSpace nsp): + * CHKERR( MatSetTransposeNullSpace(self.mat, nsp.nsp) ) # <<<<<<<<<<<<<< + * + * def getTransposeNullSpace(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetTransposeNullSpace(__pyx_v_self->mat, __pyx_v_nsp->nsp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1330, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1329 + * return nsp + * + * def setTransposeNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetTransposeNullSpace(self.mat, nsp.nsp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setTransposeNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1332 + * CHKERR( MatSetTransposeNullSpace(self.mat, nsp.nsp) ) + * + * def getTransposeNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_289getTransposeNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_288getTransposeNullSpace[] = "Mat.getTransposeNullSpace(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_289getTransposeNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTransposeNullSpace (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTransposeNullSpace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTransposeNullSpace", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_288getTransposeNullSpace(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_288getTransposeNullSpace(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTransposeNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1333 + * + * def getTransposeNullSpace(self): + * cdef NullSpace nsp = NullSpace() # <<<<<<<<<<<<<< + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_NullSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1334 + * def getTransposeNullSpace(self): + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) # <<<<<<<<<<<<<< + * PetscINCREF(nsp.obj) + * return nsp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetTransposeNullSpace(__pyx_v_self->mat, (&__pyx_v_nsp->nsp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1334, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1335 + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) # <<<<<<<<<<<<<< + * return nsp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_nsp->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1336 + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + * return nsp # <<<<<<<<<<<<<< + * + * def setNearNullSpace(self, NullSpace nsp): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_nsp)); + __pyx_r = ((PyObject *)__pyx_v_nsp); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1332 + * CHKERR( MatSetTransposeNullSpace(self.mat, nsp.nsp) ) + * + * def getTransposeNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetTransposeNullSpace(self.mat, &nsp.nsp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getTransposeNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_nsp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1338 + * return nsp + * + * def setNearNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetNearNullSpace(self.mat, nsp.nsp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_291setNearNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_290setNearNullSpace[] = "Mat.setNearNullSpace(self, NullSpace nsp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_291setNearNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNearNullSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNearNullSpace") < 0)) __PYX_ERR(45, 1338, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNearNullSpace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1338, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setNearNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nsp), __pyx_ptype_8petsc4py_5PETSc_NullSpace, 0, "nsp", 0))) __PYX_ERR(45, 1338, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_290setNearNullSpace(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nsp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_290setNearNullSpace(struct PyPetscMatObject *__pyx_v_self, struct PyPetscNullSpaceObject *__pyx_v_nsp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNearNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1339 + * + * def setNearNullSpace(self, NullSpace nsp): + * CHKERR( MatSetNearNullSpace(self.mat, nsp.nsp) ) # <<<<<<<<<<<<<< + * + * def getNearNullSpace(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetNearNullSpace(__pyx_v_self->mat, __pyx_v_nsp->nsp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1339, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1338 + * return nsp + * + * def setNearNullSpace(self, NullSpace nsp): # <<<<<<<<<<<<<< + * CHKERR( MatSetNearNullSpace(self.mat, nsp.nsp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setNearNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1341 + * CHKERR( MatSetNearNullSpace(self.mat, nsp.nsp) ) + * + * def getNearNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_293getNearNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_292getNearNullSpace[] = "Mat.getNearNullSpace(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_293getNearNullSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNearNullSpace (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNearNullSpace", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNearNullSpace", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_292getNearNullSpace(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_292getNearNullSpace(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscNullSpaceObject *__pyx_v_nsp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNearNullSpace", 0); + + /* "petsc4py/PETSc/Mat.pyx":1342 + * + * def getNearNullSpace(self): + * cdef NullSpace nsp = NullSpace() # <<<<<<<<<<<<<< + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_NullSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_nsp = ((struct PyPetscNullSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1343 + * def getNearNullSpace(self): + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) # <<<<<<<<<<<<<< + * PetscINCREF(nsp.obj) + * return nsp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetNearNullSpace(__pyx_v_self->mat, (&__pyx_v_nsp->nsp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1343, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1344 + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) # <<<<<<<<<<<<<< + * return nsp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_nsp->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1345 + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) + * PetscINCREF(nsp.obj) + * return nsp # <<<<<<<<<<<<<< + * + * # matrix-vector product + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_nsp)); + __pyx_r = ((PyObject *)__pyx_v_nsp); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1341 + * CHKERR( MatSetNearNullSpace(self.mat, nsp.nsp) ) + * + * def getNearNullSpace(self): # <<<<<<<<<<<<<< + * cdef NullSpace nsp = NullSpace() + * CHKERR( MatGetNearNullSpace(self.mat, &nsp.nsp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNearNullSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_nsp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1349 + * # matrix-vector product + * + * def mult(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMult(self.mat, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_295mult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_294mult[] = "Mat.mult(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_295mult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("mult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("mult", 1, 2, 2, 1); __PYX_ERR(45, 1349, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "mult") < 0)) __PYX_ERR(45, 1349, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("mult", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1349, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.mult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1349, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1349, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_294mult(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_294mult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("mult", 0); + + /* "petsc4py/PETSc/Mat.pyx":1350 + * + * def mult(self, Vec x, Vec y): + * CHKERR( MatMult(self.mat, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def multAdd(self, Vec x, Vec v, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMult(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1350, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1349 + * # matrix-vector product + * + * def mult(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMult(self.mat, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.mult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1352 + * CHKERR( MatMult(self.mat, x.vec, y.vec) ) + * + * def multAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_297multAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_296multAdd[] = "Mat.multAdd(self, Vec x, Vec v, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_297multAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("multAdd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_v,&__pyx_n_s_y,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multAdd", 1, 3, 3, 1); __PYX_ERR(45, 1352, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multAdd", 1, 3, 3, 2); __PYX_ERR(45, 1352, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "multAdd") < 0)) __PYX_ERR(45, 1352, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_v = ((struct PyPetscVecObject *)values[1]); + __pyx_v_y = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("multAdd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1352, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1352, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "v", 0))) __PYX_ERR(45, 1352, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1352, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_296multAdd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_v, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_296multAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("multAdd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1353 + * + * def multAdd(self, Vec x, Vec v, Vec y): + * CHKERR( MatMultAdd(self.mat, x.vec, v.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def multTranspose(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultAdd(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_v->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1353, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1352 + * CHKERR( MatMult(self.mat, x.vec, y.vec) ) + * + * def multAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1355 + * CHKERR( MatMultAdd(self.mat, x.vec, v.vec, y.vec) ) + * + * def multTranspose(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultTranspose(self.mat, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_299multTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_298multTranspose[] = "Mat.multTranspose(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_299multTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("multTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multTranspose", 1, 2, 2, 1); __PYX_ERR(45, 1355, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "multTranspose") < 0)) __PYX_ERR(45, 1355, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("multTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1355, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1355, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1355, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_298multTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_298multTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("multTranspose", 0); + + /* "petsc4py/PETSc/Mat.pyx":1356 + * + * def multTranspose(self, Vec x, Vec y): + * CHKERR( MatMultTranspose(self.mat, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def multTransposeAdd(self, Vec x, Vec v, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultTranspose(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1356, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1355 + * CHKERR( MatMultAdd(self.mat, x.vec, v.vec, y.vec) ) + * + * def multTranspose(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultTranspose(self.mat, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1358 + * CHKERR( MatMultTranspose(self.mat, x.vec, y.vec) ) + * + * def multTransposeAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultTransposeAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_301multTransposeAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_300multTransposeAdd[] = "Mat.multTransposeAdd(self, Vec x, Vec v, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_301multTransposeAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("multTransposeAdd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_v,&__pyx_n_s_y,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multTransposeAdd", 1, 3, 3, 1); __PYX_ERR(45, 1358, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multTransposeAdd", 1, 3, 3, 2); __PYX_ERR(45, 1358, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "multTransposeAdd") < 0)) __PYX_ERR(45, 1358, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_v = ((struct PyPetscVecObject *)values[1]); + __pyx_v_y = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("multTransposeAdd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1358, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multTransposeAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1358, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "v", 0))) __PYX_ERR(45, 1358, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1358, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_300multTransposeAdd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_v, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_300multTransposeAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("multTransposeAdd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1359 + * + * def multTransposeAdd(self, Vec x, Vec v, Vec y): + * CHKERR( MatMultTransposeAdd(self.mat, x.vec, v.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def multHermitian(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultTransposeAdd(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_v->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1359, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1358 + * CHKERR( MatMultTranspose(self.mat, x.vec, y.vec) ) + * + * def multTransposeAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultTransposeAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multTransposeAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1361 + * CHKERR( MatMultTransposeAdd(self.mat, x.vec, v.vec, y.vec) ) + * + * def multHermitian(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitian(self.mat, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_303multHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_302multHermitian[] = "Mat.multHermitian(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_303multHermitian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("multHermitian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multHermitian", 1, 2, 2, 1); __PYX_ERR(45, 1361, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "multHermitian") < 0)) __PYX_ERR(45, 1361, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("multHermitian", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1361, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1361, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1361, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_302multHermitian(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_302multHermitian(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("multHermitian", 0); + + /* "petsc4py/PETSc/Mat.pyx":1362 + * + * def multHermitian(self, Vec x, Vec y): + * CHKERR( MatMultHermitian(self.mat, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def multHermitianAdd(self, Vec x, Vec v, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultHermitianTranspose(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1362, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1361 + * CHKERR( MatMultTransposeAdd(self.mat, x.vec, v.vec, y.vec) ) + * + * def multHermitian(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitian(self.mat, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multHermitian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1364 + * CHKERR( MatMultHermitian(self.mat, x.vec, y.vec) ) + * + * def multHermitianAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitianAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_305multHermitianAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_304multHermitianAdd[] = "Mat.multHermitianAdd(self, Vec x, Vec v, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_305multHermitianAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("multHermitianAdd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_v,&__pyx_n_s_y,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multHermitianAdd", 1, 3, 3, 1); __PYX_ERR(45, 1364, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("multHermitianAdd", 1, 3, 3, 2); __PYX_ERR(45, 1364, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "multHermitianAdd") < 0)) __PYX_ERR(45, 1364, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_v = ((struct PyPetscVecObject *)values[1]); + __pyx_v_y = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("multHermitianAdd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1364, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multHermitianAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "v", 0))) __PYX_ERR(45, 1364, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1364, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_304multHermitianAdd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_x, __pyx_v_v, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_304multHermitianAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_v, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("multHermitianAdd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1365 + * + * def multHermitianAdd(self, Vec x, Vec v, Vec y): + * CHKERR( MatMultHermitianAdd(self.mat, x.vec, v.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * # SOR + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultHermitianTransposeAdd(__pyx_v_self->mat, __pyx_v_x->vec, __pyx_v_v->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1365, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1364 + * CHKERR( MatMultHermitian(self.mat, x.vec, y.vec) ) + * + * def multHermitianAdd(self, Vec x, Vec v, Vec y): # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitianAdd(self.mat, x.vec, v.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.multHermitianAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1369 + * # SOR + * + * def SOR(self, Vec b, Vec x, omega=1.0, sortype=None, shift=0.0, its=1, lits=1): # <<<<<<<<<<<<<< + * cdef PetscReal comega = asReal(omega) + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_307SOR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_306SOR[] = "Mat.SOR(self, Vec b, Vec x, omega=1.0, sortype=None, shift=0.0, its=1, lits=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_307SOR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + PyObject *__pyx_v_omega = 0; + PyObject *__pyx_v_sortype = 0; + PyObject *__pyx_v_shift = 0; + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_lits = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("SOR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,&__pyx_n_s_omega,&__pyx_n_s_sortype,&__pyx_n_s_shift,&__pyx_n_s_its,&__pyx_n_s_lits,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + values[2] = ((PyObject *)__pyx_float_1_0); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)__pyx_float_0_0); + values[5] = ((PyObject *)__pyx_int_1); + values[6] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("SOR", 0, 2, 7, 1); __PYX_ERR(45, 1369, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_omega); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sortype); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shift); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lits); + if (value) { values[6] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "SOR") < 0)) __PYX_ERR(45, 1369, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_omega = values[2]; + __pyx_v_sortype = values[3]; + __pyx_v_shift = values[4]; + __pyx_v_its = values[5]; + __pyx_v_lits = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("SOR", 0, 2, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1369, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.SOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1369, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1369, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_306SOR(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x, __pyx_v_omega, __pyx_v_sortype, __pyx_v_shift, __pyx_v_its, __pyx_v_lits); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_306SOR(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x, PyObject *__pyx_v_omega, PyObject *__pyx_v_sortype, PyObject *__pyx_v_shift, PyObject *__pyx_v_its, PyObject *__pyx_v_lits) { + PetscReal __pyx_v_comega; + MatSORType __pyx_v_csortype; + PetscInt __pyx_v_cshift; + PetscInt __pyx_v_cits; + PetscInt __pyx_v_clits; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SOR", 0); + + /* "petsc4py/PETSc/Mat.pyx":1370 + * + * def SOR(self, Vec b, Vec x, omega=1.0, sortype=None, shift=0.0, its=1, lits=1): + * cdef PetscReal comega = asReal(omega) # <<<<<<<<<<<<<< + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + * if sortype is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_omega); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1370, __pyx_L1_error) + __pyx_v_comega = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1371 + * def SOR(self, Vec b, Vec x, omega=1.0, sortype=None, shift=0.0, its=1, lits=1): + * cdef PetscReal comega = asReal(omega) + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP # <<<<<<<<<<<<<< + * if sortype is not None: + * csortype = asInt(sortype) + */ + __pyx_v_csortype = SOR_LOCAL_SYMMETRIC_SWEEP; + + /* "petsc4py/PETSc/Mat.pyx":1372 + * cdef PetscReal comega = asReal(omega) + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + * if sortype is not None: # <<<<<<<<<<<<<< + * csortype = asInt(sortype) + * cdef PetscInt cshift = asInt(shift) + */ + __pyx_t_2 = (__pyx_v_sortype != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1373 + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + * if sortype is not None: + * csortype = asInt(sortype) # <<<<<<<<<<<<<< + * cdef PetscInt cshift = asInt(shift) + * cdef PetscInt cits = asInt(its) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_sortype); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1373, __pyx_L1_error) + __pyx_v_csortype = ((MatSORType)__pyx_t_4); + + /* "petsc4py/PETSc/Mat.pyx":1372 + * cdef PetscReal comega = asReal(omega) + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + * if sortype is not None: # <<<<<<<<<<<<<< + * csortype = asInt(sortype) + * cdef PetscInt cshift = asInt(shift) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1374 + * if sortype is not None: + * csortype = asInt(sortype) + * cdef PetscInt cshift = asInt(shift) # <<<<<<<<<<<<<< + * cdef PetscInt cits = asInt(its) + * cdef PetscInt clits = asInt(lits) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_shift); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1374, __pyx_L1_error) + __pyx_v_cshift = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1375 + * csortype = asInt(sortype) + * cdef PetscInt cshift = asInt(shift) + * cdef PetscInt cits = asInt(its) # <<<<<<<<<<<<<< + * cdef PetscInt clits = asInt(lits) + * CHKERR( MatSOR(self.mat, b.vec, comega, csortype, cshift, cits, clits, x.vec) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1375, __pyx_L1_error) + __pyx_v_cits = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1376 + * cdef PetscInt cshift = asInt(shift) + * cdef PetscInt cits = asInt(its) + * cdef PetscInt clits = asInt(lits) # <<<<<<<<<<<<<< + * CHKERR( MatSOR(self.mat, b.vec, comega, csortype, cshift, cits, clits, x.vec) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_lits); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1376, __pyx_L1_error) + __pyx_v_clits = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1377 + * cdef PetscInt cits = asInt(its) + * cdef PetscInt clits = asInt(lits) + * CHKERR( MatSOR(self.mat, b.vec, comega, csortype, cshift, cits, clits, x.vec) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSOR(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_comega, __pyx_v_csortype, __pyx_v_cshift, __pyx_v_cits, __pyx_v_clits, __pyx_v_x->vec)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1377, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1369 + * # SOR + * + * def SOR(self, Vec b, Vec x, omega=1.0, sortype=None, shift=0.0, its=1, lits=1): # <<<<<<<<<<<<<< + * cdef PetscReal comega = asReal(omega) + * cdef PetscMatSORType csortype = SOR_LOCAL_SYMMETRIC_SWEEP + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.SOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1381 + * # + * + * def getDiagonalBlock(self): # <<<<<<<<<<<<<< + * cdef Mat submat = Mat() + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_309getDiagonalBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_308getDiagonalBlock[] = "Mat.getDiagonalBlock(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_309getDiagonalBlock(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDiagonalBlock (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDiagonalBlock", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDiagonalBlock", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_308getDiagonalBlock(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_308getDiagonalBlock(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_submat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDiagonalBlock", 0); + + /* "petsc4py/PETSc/Mat.pyx":1382 + * + * def getDiagonalBlock(self): + * cdef Mat submat = Mat() # <<<<<<<<<<<<<< + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) + * PetscINCREF(submat.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_submat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1383 + * def getDiagonalBlock(self): + * cdef Mat submat = Mat() + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(submat.obj) + * return submat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetDiagonalBlock(__pyx_v_self->mat, (&__pyx_v_submat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1383, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1384 + * cdef Mat submat = Mat() + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) + * PetscINCREF(submat.obj) # <<<<<<<<<<<<<< + * return submat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_submat->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1385 + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) + * PetscINCREF(submat.obj) + * return submat # <<<<<<<<<<<<<< + * + * def increaseOverlap(self, IS iset, overlap=1): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_submat)); + __pyx_r = ((PyObject *)__pyx_v_submat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1381 + * # + * + * def getDiagonalBlock(self): # <<<<<<<<<<<<<< + * cdef Mat submat = Mat() + * CHKERR( MatGetDiagonalBlock(self.mat, &submat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDiagonalBlock", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_submat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1387 + * return submat + * + * def increaseOverlap(self, IS iset, overlap=1): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_311increaseOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_310increaseOverlap[] = "Mat.increaseOverlap(self, IS iset, overlap=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_311increaseOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_v_overlap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("increaseOverlap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,&__pyx_n_s_overlap,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overlap); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "increaseOverlap") < 0)) __PYX_ERR(45, 1387, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + __pyx_v_overlap = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("increaseOverlap", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1387, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.increaseOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(45, 1387, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_310increaseOverlap(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_iset, __pyx_v_overlap); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_310increaseOverlap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_overlap) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("increaseOverlap", 0); + + /* "petsc4py/PETSc/Mat.pyx":1388 + * + * def increaseOverlap(self, IS iset, overlap=1): + * cdef PetscInt ival = asInt(overlap) # <<<<<<<<<<<<<< + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_overlap); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1388, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1389 + * def increaseOverlap(self, IS iset, overlap=1): + * cdef PetscInt ival = asInt(overlap) + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) # <<<<<<<<<<<<<< + * + * def createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatIncreaseOverlap(__pyx_v_self->mat, 1, (&__pyx_v_iset->iset), __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1389, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1387 + * return submat + * + * def increaseOverlap(self, IS iset, overlap=1): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.increaseOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1391 + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) + * + * def createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS ciscol = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_313createSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_312createSubMatrix[] = "Mat.createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_313createSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + struct PyPetscMatObject *__pyx_v_submat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSubMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_submat,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscISObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submat); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSubMatrix") < 0)) __PYX_ERR(45, 1391, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_submat = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSubMatrix", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1391, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1391, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "iscol", 0))) __PYX_ERR(45, 1391, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_submat), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "submat", 0))) __PYX_ERR(45, 1391, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_312createSubMatrix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_submat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_312createSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat) { + MatReuse __pyx_v_reuse; + IS __pyx_v_ciscol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSubMatrix", 0); + __Pyx_INCREF((PyObject *)__pyx_v_submat); + + /* "petsc4py/PETSc/Mat.pyx":1392 + * + * def createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscIS ciscol = NULL + * if iscol is not None: ciscol = iscol.iset + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1393 + * def createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS ciscol = NULL # <<<<<<<<<<<<<< + * if iscol is not None: ciscol = iscol.iset + * if submat is None: submat = Mat() + */ + __pyx_v_ciscol = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1394 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS ciscol = NULL + * if iscol is not None: ciscol = iscol.iset # <<<<<<<<<<<<<< + * if submat is None: submat = Mat() + * if submat.mat != NULL: reuse = MAT_REUSE_MATRIX + */ + __pyx_t_1 = (((PyObject *)__pyx_v_iscol) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_iscol->iset; + __pyx_v_ciscol = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1395 + * cdef PetscIS ciscol = NULL + * if iscol is not None: ciscol = iscol.iset + * if submat is None: submat = Mat() # <<<<<<<<<<<<<< + * if submat.mat != NULL: reuse = MAT_REUSE_MATRIX + * CHKERR( MatCreateSubMatrix(self.mat, isrow.iset, ciscol, + */ + __pyx_t_2 = (((PyObject *)__pyx_v_submat) == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_submat, ((struct PyPetscMatObject *)__pyx_t_4)); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":1396 + * if iscol is not None: ciscol = iscol.iset + * if submat is None: submat = Mat() + * if submat.mat != NULL: reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatCreateSubMatrix(self.mat, isrow.iset, ciscol, + * reuse, &submat.mat) ) + */ + __pyx_t_1 = ((__pyx_v_submat->mat != NULL) != 0); + if (__pyx_t_1) { + __pyx_v_reuse = MAT_REUSE_MATRIX; + } + + /* "petsc4py/PETSc/Mat.pyx":1397 + * if submat is None: submat = Mat() + * if submat.mat != NULL: reuse = MAT_REUSE_MATRIX + * CHKERR( MatCreateSubMatrix(self.mat, isrow.iset, ciscol, # <<<<<<<<<<<<<< + * reuse, &submat.mat) ) + * return submat + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateSubMatrix(__pyx_v_self->mat, __pyx_v_isrow->iset, __pyx_v_ciscol, __pyx_v_reuse, (&__pyx_v_submat->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1397, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1399 + * CHKERR( MatCreateSubMatrix(self.mat, isrow.iset, ciscol, + * reuse, &submat.mat) ) + * return submat # <<<<<<<<<<<<<< + * + * def createSubMatrices(self, isrows, iscols=None, submats=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_submat)); + __pyx_r = ((PyObject *)__pyx_v_submat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1391 + * CHKERR( MatIncreaseOverlap(self.mat, 1, &iset.iset, ival) ) + * + * def createSubMatrix(self, IS isrow, IS iscol=None, Mat submat=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS ciscol = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_submat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1401 + * return submat + * + * def createSubMatrices(self, isrows, iscols=None, submats=None): # <<<<<<<<<<<<<< + * if iscols is None: iscols = isrows + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_315createSubMatrices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_314createSubMatrices[] = "Mat.createSubMatrices(self, isrows, iscols=None, submats=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_315createSubMatrices(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_isrows = 0; + PyObject *__pyx_v_iscols = 0; + PyObject *__pyx_v_submats = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSubMatrices (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrows,&__pyx_n_s_iscols,&__pyx_n_s_submats,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrows)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscols); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submats); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSubMatrices") < 0)) __PYX_ERR(45, 1401, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrows = values[0]; + __pyx_v_iscols = values[1]; + __pyx_v_submats = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSubMatrices", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1401, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_314createSubMatrices(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrows, __pyx_v_iscols, __pyx_v_submats); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_314createSubMatrices(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_isrows, PyObject *__pyx_v_iscols, PyObject *__pyx_v_submats) { + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_n; + MatReuse __pyx_v_reuse; + IS *__pyx_v_cisrows; + IS *__pyx_v_ciscols; + Mat *__pyx_v_cmats; + CYTHON_UNUSED PyObject *__pyx_v_tmp1 = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + IS __pyx_t_7; + PetscErrorCode __pyx_t_8; + Mat __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSubMatrices", 0); + __Pyx_INCREF(__pyx_v_isrows); + __Pyx_INCREF(__pyx_v_iscols); + __Pyx_INCREF(__pyx_v_submats); + + /* "petsc4py/PETSc/Mat.pyx":1402 + * + * def createSubMatrices(self, isrows, iscols=None, submats=None): + * if iscols is None: iscols = isrows # <<<<<<<<<<<<<< + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) + * iscols = [iscols] if isinstance(iscols, IS) else list(iscols) + */ + __pyx_t_1 = (__pyx_v_iscols == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_v_isrows); + __Pyx_DECREF_SET(__pyx_v_iscols, __pyx_v_isrows); + } + + /* "petsc4py/PETSc/Mat.pyx":1403 + * def createSubMatrices(self, isrows, iscols=None, submats=None): + * if iscols is None: iscols = isrows + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) # <<<<<<<<<<<<<< + * iscols = [iscols] if isinstance(iscols, IS) else list(iscols) + * assert len(isrows) == len(iscols) + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_isrows, __pyx_ptype_8petsc4py_5PETSc_IS); + if ((__pyx_t_2 != 0)) { + __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_isrows); + __Pyx_GIVEREF(__pyx_v_isrows); + PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_isrows); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } else { + __pyx_t_4 = PySequence_List(__pyx_v_isrows); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } + __Pyx_DECREF_SET(__pyx_v_isrows, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1404 + * if iscols is None: iscols = isrows + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) + * iscols = [iscols] if isinstance(iscols, IS) else list(iscols) # <<<<<<<<<<<<<< + * assert len(isrows) == len(iscols) + * cdef Py_ssize_t i, n = len(isrows) + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_iscols, __pyx_ptype_8petsc4py_5PETSc_IS); + if ((__pyx_t_2 != 0)) { + __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_iscols); + __Pyx_GIVEREF(__pyx_v_iscols); + PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_iscols); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } else { + __pyx_t_4 = PySequence_List(__pyx_v_iscols); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1404, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } + __Pyx_DECREF_SET(__pyx_v_iscols, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1405 + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) + * iscols = [iscols] if isinstance(iscols, IS) else list(iscols) + * assert len(isrows) == len(iscols) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = len(isrows) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_5 = PyObject_Length(__pyx_v_isrows); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1405, __pyx_L1_error) + __pyx_t_6 = PyObject_Length(__pyx_v_iscols); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1405, __pyx_L1_error) + if (unlikely(!((__pyx_t_5 == __pyx_t_6) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(45, 1405, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Mat.pyx":1406 + * iscols = [iscols] if isinstance(iscols, IS) else list(iscols) + * assert len(isrows) == len(iscols) + * cdef Py_ssize_t i, n = len(isrows) # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS *cisrows = NULL + */ + __pyx_t_6 = PyObject_Length(__pyx_v_isrows); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1406, __pyx_L1_error) + __pyx_v_n = __pyx_t_6; + + /* "petsc4py/PETSc/Mat.pyx":1407 + * assert len(isrows) == len(iscols) + * cdef Py_ssize_t i, n = len(isrows) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1408 + * cdef Py_ssize_t i, n = len(isrows) + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS *cisrows = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *ciscols = NULL + * cdef PetscMat *cmats = NULL + */ + __pyx_v_cisrows = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1409 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL # <<<<<<<<<<<<<< + * cdef PetscMat *cmats = NULL + * cdef object tmp1, tmp2 + */ + __pyx_v_ciscols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1410 + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + * cdef PetscMat *cmats = NULL # <<<<<<<<<<<<<< + * cdef object tmp1, tmp2 + * cdef Mat mat + */ + __pyx_v_cmats = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1413 + * cdef object tmp1, tmp2 + * cdef Mat mat + * tmp1 = oarray_p(empty_p(n), NULL, &cisrows) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: cisrows[i] = (isrows[i]).iset + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_cisrows)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_tmp1 = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1414 + * cdef Mat mat + * tmp1 = oarray_p(empty_p(n), NULL, &cisrows) + * for i from 0 <= i < n: cisrows[i] = (isrows[i]).iset # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset + */ + __pyx_t_6 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_isrows, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(45, 1414, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscISObject *)__pyx_t_4)->iset; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_cisrows[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/Mat.pyx":1415 + * tmp1 = oarray_p(empty_p(n), NULL, &cisrows) + * for i from 0 <= i < n: cisrows[i] = (isrows[i]).iset + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset + * if submats is not None: + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_4, NULL, ((void **)(&__pyx_v_ciscols)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_tmp2 = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1416 + * for i from 0 <= i < n: cisrows[i] = (isrows[i]).iset + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset # <<<<<<<<<<<<<< + * if submats is not None: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_6 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_iscols, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(45, 1416, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscISObject *)__pyx_t_3)->iset; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_ciscols[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/Mat.pyx":1417 + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset + * if submats is not None: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * submats = list(submats) + */ + __pyx_t_2 = (__pyx_v_submats != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1418 + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset + * if submats is not None: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * submats = list(submats) + * assert len(submats) == len(isrows) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1419 + * if submats is not None: + * reuse = MAT_REUSE_MATRIX + * submats = list(submats) # <<<<<<<<<<<<<< + * assert len(submats) == len(isrows) + * CHKERR( PetscMalloc((n+1)*sizeof(PetscMat), &cmats) ) + */ + __pyx_t_3 = PySequence_List(__pyx_v_submats); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_submats, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1420 + * reuse = MAT_REUSE_MATRIX + * submats = list(submats) + * assert len(submats) == len(isrows) # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc((n+1)*sizeof(PetscMat), &cmats) ) + * for i from 0 <= i < n: cmats[i] = (submats[i]).mat + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_6 = PyObject_Length(__pyx_v_submats); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1420, __pyx_L1_error) + __pyx_t_5 = PyObject_Length(__pyx_v_isrows); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(45, 1420, __pyx_L1_error) + if (unlikely(!((__pyx_t_6 == __pyx_t_5) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(45, 1420, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Mat.pyx":1421 + * submats = list(submats) + * assert len(submats) == len(isrows) + * CHKERR( PetscMalloc((n+1)*sizeof(PetscMat), &cmats) ) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: cmats[i] = (submats[i]).mat + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)(__pyx_v_n + 1)) * (sizeof(Mat))), (&__pyx_v_cmats))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1421, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1422 + * assert len(submats) == len(isrows) + * CHKERR( PetscMalloc((n+1)*sizeof(PetscMat), &cmats) ) + * for i from 0 <= i < n: cmats[i] = (submats[i]).mat # <<<<<<<<<<<<<< + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) + */ + __pyx_t_5 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_submats, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Mat)))) __PYX_ERR(45, 1422, __pyx_L1_error) + __pyx_t_9 = ((struct PyPetscMatObject *)__pyx_t_3)->mat; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_cmats[__pyx_v_i]) = __pyx_t_9; + } + + /* "petsc4py/PETSc/Mat.pyx":1417 + * tmp2 = oarray_p(empty_p(n), NULL, &ciscols) + * for i from 0 <= i < n: ciscols[i] = (iscols[i]).iset + * if submats is not None: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * submats = list(submats) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1423 + * CHKERR( PetscMalloc((n+1)*sizeof(PetscMat), &cmats) ) + * for i from 0 <= i < n: cmats[i] = (submats[i]).mat + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) + * if reuse == MAT_INITIAL_MATRIX: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateSubMatrices(__pyx_v_self->mat, ((PetscInt)__pyx_v_n), __pyx_v_cisrows, __pyx_v_ciscols, __pyx_v_reuse, (&__pyx_v_cmats))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1423, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1424 + * for i from 0 <= i < n: cmats[i] = (submats[i]).mat + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) # <<<<<<<<<<<<<< + * if reuse == MAT_INITIAL_MATRIX: + * submats = [None] * n + */ + __pyx_t_5 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(((PetscObject *)(&(__pyx_v_cmats[__pyx_v_i]))))); + } + + /* "petsc4py/PETSc/Mat.pyx":1425 + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) + * if reuse == MAT_INITIAL_MATRIX: # <<<<<<<<<<<<<< + * submats = [None] * n + * for i from 0 <= i < n: + */ + __pyx_t_1 = ((__pyx_v_reuse == MAT_INITIAL_MATRIX) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1426 + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) + * if reuse == MAT_INITIAL_MATRIX: + * submats = [None] * n # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * submats[i] = mat = Mat() + */ + __pyx_t_3 = PyList_New(1 * ((__pyx_v_n<0) ? 0:__pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_v_n; __pyx_temp++) { + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyList_SET_ITEM(__pyx_t_3, __pyx_temp, Py_None); + } + } + __Pyx_DECREF_SET(__pyx_v_submats, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1427 + * if reuse == MAT_INITIAL_MATRIX: + * submats = [None] * n + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * submats[i] = mat = Mat() + * mat.mat = cmats[i] + */ + __pyx_t_5 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + + /* "petsc4py/PETSc/Mat.pyx":1428 + * submats = [None] * n + * for i from 0 <= i < n: + * submats[i] = mat = Mat() # <<<<<<<<<<<<<< + * mat.mat = cmats[i] + * CHKERR( MatDestroyMatrices(n, &cmats) ) + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_SetItemInt(__pyx_v_submats, __pyx_v_i, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(45, 1428, __pyx_L1_error) + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_mat, ((struct PyPetscMatObject *)__pyx_t_3)); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1429 + * for i from 0 <= i < n: + * submats[i] = mat = Mat() + * mat.mat = cmats[i] # <<<<<<<<<<<<<< + * CHKERR( MatDestroyMatrices(n, &cmats) ) + * return submats + */ + __pyx_v_mat->mat = (__pyx_v_cmats[__pyx_v_i]); + } + + /* "petsc4py/PETSc/Mat.pyx":1425 + * CHKERR( MatCreateSubMatrices(self.mat, n, cisrows, ciscols, reuse, &cmats) ) + * for i from 0 <= i < n: PetscINCREF(&cmats[i]) + * if reuse == MAT_INITIAL_MATRIX: # <<<<<<<<<<<<<< + * submats = [None] * n + * for i from 0 <= i < n: + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1430 + * submats[i] = mat = Mat() + * mat.mat = cmats[i] + * CHKERR( MatDestroyMatrices(n, &cmats) ) # <<<<<<<<<<<<<< + * return submats + * + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDestroyMatrices(((PetscInt)__pyx_v_n), (&__pyx_v_cmats))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1430, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1431 + * mat.mat = cmats[i] + * CHKERR( MatDestroyMatrices(n, &cmats) ) + * return submats # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_submats); + __pyx_r = __pyx_v_submats; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1401 + * return submat + * + * def createSubMatrices(self, isrows, iscols=None, submats=None): # <<<<<<<<<<<<<< + * if iscols is None: iscols = isrows + * isrows = [isrows] if isinstance(isrows, IS) else list(isrows) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.createSubMatrices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp1); + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XDECREF(__pyx_v_isrows); + __Pyx_XDECREF(__pyx_v_iscols); + __Pyx_XDECREF(__pyx_v_submats); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1435 + * # + * + * def getLocalSubMatrix(self, IS isrow, IS iscol, Mat submat=None): # <<<<<<<<<<<<<< + * if submat is None: submat = Mat() + * else: CHKERR( MatDestroy(&submat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_317getLocalSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_316getLocalSubMatrix[] = "Mat.getLocalSubMatrix(self, IS isrow, IS iscol, Mat submat=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_317getLocalSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + struct PyPetscMatObject *__pyx_v_submat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSubMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_submat,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getLocalSubMatrix", 0, 2, 3, 1); __PYX_ERR(45, 1435, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submat); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocalSubMatrix") < 0)) __PYX_ERR(45, 1435, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_submat = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLocalSubMatrix", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1435, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getLocalSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1435, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1435, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_submat), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "submat", 0))) __PYX_ERR(45, 1435, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_316getLocalSubMatrix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_submat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_316getLocalSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSubMatrix", 0); + __Pyx_INCREF((PyObject *)__pyx_v_submat); + + /* "petsc4py/PETSc/Mat.pyx":1436 + * + * def getLocalSubMatrix(self, IS isrow, IS iscol, Mat submat=None): + * if submat is None: submat = Mat() # <<<<<<<<<<<<<< + * else: CHKERR( MatDestroy(&submat.mat) ) + * CHKERR( MatGetLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_submat) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_submat, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1437 + * def getLocalSubMatrix(self, IS isrow, IS iscol, Mat submat=None): + * if submat is None: submat = Mat() + * else: CHKERR( MatDestroy(&submat.mat) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) + * return submat + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDestroy((&__pyx_v_submat->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1437, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1438 + * if submat is None: submat = Mat() + * else: CHKERR( MatDestroy(&submat.mat) ) + * CHKERR( MatGetLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) # <<<<<<<<<<<<<< + * return submat + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSubMatrix(__pyx_v_self->mat, __pyx_v_isrow->iset, __pyx_v_iscol->iset, (&__pyx_v_submat->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1438, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1439 + * else: CHKERR( MatDestroy(&submat.mat) ) + * CHKERR( MatGetLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) + * return submat # <<<<<<<<<<<<<< + * + * def restoreLocalSubMatrix(self, IS isrow, IS iscol, Mat submat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_submat)); + __pyx_r = ((PyObject *)__pyx_v_submat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1435 + * # + * + * def getLocalSubMatrix(self, IS isrow, IS iscol, Mat submat=None): # <<<<<<<<<<<<<< + * if submat is None: submat = Mat() + * else: CHKERR( MatDestroy(&submat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getLocalSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_submat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1441 + * return submat + * + * def restoreLocalSubMatrix(self, IS isrow, IS iscol, Mat submat): # <<<<<<<<<<<<<< + * CHKERR( MatRestoreLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_319restoreLocalSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_318restoreLocalSubMatrix[] = "Mat.restoreLocalSubMatrix(self, IS isrow, IS iscol, Mat submat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_319restoreLocalSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + struct PyPetscMatObject *__pyx_v_submat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreLocalSubMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_submat,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("restoreLocalSubMatrix", 1, 3, 3, 1); __PYX_ERR(45, 1441, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_submat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("restoreLocalSubMatrix", 1, 3, 3, 2); __PYX_ERR(45, 1441, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreLocalSubMatrix") < 0)) __PYX_ERR(45, 1441, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_submat = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreLocalSubMatrix", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1441, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreLocalSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1441, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1441, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_submat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "submat", 0))) __PYX_ERR(45, 1441, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_318restoreLocalSubMatrix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_submat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_318restoreLocalSubMatrix(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, struct PyPetscMatObject *__pyx_v_submat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreLocalSubMatrix", 0); + + /* "petsc4py/PETSc/Mat.pyx":1442 + * + * def restoreLocalSubMatrix(self, IS isrow, IS iscol, Mat submat): + * CHKERR( MatRestoreLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRestoreLocalSubMatrix(__pyx_v_self->mat, __pyx_v_isrow->iset, __pyx_v_iscol->iset, (&__pyx_v_submat->mat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1442, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1441 + * return submat + * + * def restoreLocalSubMatrix(self, IS isrow, IS iscol, Mat submat): # <<<<<<<<<<<<<< + * CHKERR( MatRestoreLocalSubMatrix(self.mat, isrow.iset, iscol.iset, &submat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreLocalSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1446 + * # + * + * def norm(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_FROBENIUS + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_321norm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_320norm[] = "Mat.norm(self, norm_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_321norm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("norm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm_type,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm_type); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "norm") < 0)) __PYX_ERR(45, 1446, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_norm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("norm", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1446, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.norm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_320norm(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_norm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_320norm(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_norm_type) { + NormType __pyx_v_norm_1_2; + NormType __pyx_v_ntype; + PetscReal __pyx_v_rval[2]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + NormType __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("norm", 0); + + /* "petsc4py/PETSc/Mat.pyx":1447 + * + * def norm(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 # <<<<<<<<<<<<<< + * cdef PetscNormType ntype = PETSC_NORM_FROBENIUS + * if norm_type is not None: ntype = norm_type + */ + __pyx_v_norm_1_2 = NORM_1_AND_2; + + /* "petsc4py/PETSc/Mat.pyx":1448 + * def norm(self, norm_type=None): + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_FROBENIUS # <<<<<<<<<<<<<< + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + */ + __pyx_v_ntype = NORM_FROBENIUS; + + /* "petsc4py/PETSc/Mat.pyx":1449 + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_FROBENIUS + * if norm_type is not None: ntype = norm_type # <<<<<<<<<<<<<< + * cdef PetscReal rval[2] + * CHKERR( MatNorm(self.mat, ntype, rval) ) + */ + __pyx_t_1 = (__pyx_v_norm_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = ((NormType)__Pyx_PyInt_As_NormType(__pyx_v_norm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1449, __pyx_L1_error) + __pyx_v_ntype = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1451 + * if norm_type is not None: ntype = norm_type + * cdef PetscReal rval[2] + * CHKERR( MatNorm(self.mat, ntype, rval) ) # <<<<<<<<<<<<<< + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNorm(__pyx_v_self->mat, __pyx_v_ntype, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1451, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1452 + * cdef PetscReal rval[2] + * CHKERR( MatNorm(self.mat, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) # <<<<<<<<<<<<<< + * else: return (toReal(rval[0]), toReal(rval[1])) + * + */ + __pyx_t_2 = ((__pyx_v_ntype != __pyx_v_norm_1_2) != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":1453 + * CHKERR( MatNorm(self.mat, ntype, rval) ) + * if ntype != norm_1_2: return toReal(rval[0]) + * else: return (toReal(rval[0]), toReal(rval[1])) # <<<<<<<<<<<<<< + * + * def scale(self, alpha): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[0])); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_rval[1])); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_r = __pyx_t_7; + __pyx_t_7 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/Mat.pyx":1446 + * # + * + * def norm(self, norm_type=None): # <<<<<<<<<<<<<< + * cdef PetscNormType norm_1_2 = PETSC_NORM_1_AND_2 + * cdef PetscNormType ntype = PETSC_NORM_FROBENIUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.norm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1455 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def scale(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatScale(self.mat, sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_323scale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_322scale[] = "Mat.scale(self, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_323scale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scale") < 0)) __PYX_ERR(45, 1455, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_alpha = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scale", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1455, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.scale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_322scale(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_322scale(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scale", 0); + + /* "petsc4py/PETSc/Mat.pyx":1456 + * + * def scale(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( MatScale(self.mat, sval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1456, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1457 + * def scale(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatScale(self.mat, sval) ) # <<<<<<<<<<<<<< + * + * def shift(self, alpha): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatScale(__pyx_v_self->mat, __pyx_v_sval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1457, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1455 + * else: return (toReal(rval[0]), toReal(rval[1])) + * + * def scale(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatScale(self.mat, sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.scale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1459 + * CHKERR( MatScale(self.mat, sval) ) + * + * def shift(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatShift(self.mat, sval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_325shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_324shift[] = "Mat.shift(self, alpha)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_325shift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("shift (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "shift") < 0)) __PYX_ERR(45, 1459, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_alpha = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("shift", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1459, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.shift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_324shift(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_alpha); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_324shift(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha) { + PetscScalar __pyx_v_sval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("shift", 0); + + /* "petsc4py/PETSc/Mat.pyx":1460 + * + * def shift(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * CHKERR( MatShift(self.mat, sval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1460, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1461 + * def shift(self, alpha): + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatShift(self.mat, sval) ) # <<<<<<<<<<<<<< + * + * def chop(self, tol): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatShift(__pyx_v_self->mat, __pyx_v_sval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1461, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1459 + * CHKERR( MatScale(self.mat, sval) ) + * + * def shift(self, alpha): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * CHKERR( MatShift(self.mat, sval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.shift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1463 + * CHKERR( MatShift(self.mat, sval) ) + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( MatChop(self.mat, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_327chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_326chop[] = "Mat.chop(self, tol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_327chop(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("chop (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "chop") < 0)) __PYX_ERR(45, 1463, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("chop", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1463, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_326chop(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_326chop(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("chop", 0); + + /* "petsc4py/PETSc/Mat.pyx":1464 + * + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) # <<<<<<<<<<<<<< + * CHKERR( MatChop(self.mat, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1464, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1465 + * def chop(self, tol): + * cdef PetscReal rval = asReal(tol) + * CHKERR( MatChop(self.mat, rval) ) # <<<<<<<<<<<<<< + * + * def setRandom(self, Random random=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatChop(__pyx_v_self->mat, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1465, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1463 + * CHKERR( MatShift(self.mat, sval) ) + * + * def chop(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(tol) + * CHKERR( MatChop(self.mat, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.chop", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1467 + * CHKERR( MatChop(self.mat, rval) ) + * + * def setRandom(self, Random random=None): # <<<<<<<<<<<<<< + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_329setRandom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_328setRandom[] = "Mat.setRandom(self, Random random=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_329setRandom(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscRandomObject *__pyx_v_random = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRandom (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_random,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscRandomObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_random); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRandom") < 0)) __PYX_ERR(45, 1467, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_random = ((struct PyPetscRandomObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRandom", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1467, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setRandom", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_random), __pyx_ptype_8petsc4py_5PETSc_Random, 1, "random", 0))) __PYX_ERR(45, 1467, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_328setRandom(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_random); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_328setRandom(struct PyPetscMatObject *__pyx_v_self, struct PyPetscRandomObject *__pyx_v_random) { + PetscRandom __pyx_v_rnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscRandom __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRandom", 0); + + /* "petsc4py/PETSc/Mat.pyx":1468 + * + * def setRandom(self, Random random=None): + * cdef PetscRandom rnd = NULL # <<<<<<<<<<<<<< + * if random is not None: rnd = random.rnd + * CHKERR( MatSetRandom(self.mat, rnd) ) + */ + __pyx_v_rnd = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1469 + * def setRandom(self, Random random=None): + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd # <<<<<<<<<<<<<< + * CHKERR( MatSetRandom(self.mat, rnd) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_random) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_random->rnd; + __pyx_v_rnd = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":1470 + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + * CHKERR( MatSetRandom(self.mat, rnd) ) # <<<<<<<<<<<<<< + * + * def axpy(self, alpha, Mat X, structure=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetRandom(__pyx_v_self->mat, __pyx_v_rnd)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1470, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1467 + * CHKERR( MatChop(self.mat, rval) ) + * + * def setRandom(self, Random random=None): # <<<<<<<<<<<<<< + * cdef PetscRandom rnd = NULL + * if random is not None: rnd = random.rnd + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setRandom", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1472 + * CHKERR( MatSetRandom(self.mat, rnd) ) + * + * def axpy(self, alpha, Mat X, structure=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_331axpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_330axpy[] = "Mat.axpy(self, alpha, Mat X, structure=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_331axpy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + struct PyPetscMatObject *__pyx_v_X = 0; + PyObject *__pyx_v_structure = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("axpy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_X,&__pyx_n_s_structure,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_X)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("axpy", 0, 2, 3, 1); __PYX_ERR(45, 1472, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_structure); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "axpy") < 0)) __PYX_ERR(45, 1472, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_alpha = values[0]; + __pyx_v_X = ((struct PyPetscMatObject *)values[1]); + __pyx_v_structure = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("axpy", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1472, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.axpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "X", 0))) __PYX_ERR(45, 1472, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_330axpy(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_X, __pyx_v_structure); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_330axpy(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscMatObject *__pyx_v_X, PyObject *__pyx_v_structure) { + PetscScalar __pyx_v_sval; + MatStructure __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + MatStructure __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("axpy", 0); + + /* "petsc4py/PETSc/Mat.pyx":1473 + * + * def axpy(self, alpha, Mat X, structure=None): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * cdef PetscMatStructure flag = matstructure(structure) + * CHKERR( MatAXPY(self.mat, sval, X.mat, flag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1473, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1474 + * def axpy(self, alpha, Mat X, structure=None): + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) # <<<<<<<<<<<<<< + * CHKERR( MatAXPY(self.mat, sval, X.mat, flag) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_matstructure(__pyx_v_structure); if (unlikely(__pyx_t_2 == ((MatStructure)((MatStructure)-1L)))) __PYX_ERR(45, 1474, __pyx_L1_error) + __pyx_v_flag = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1475 + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + * CHKERR( MatAXPY(self.mat, sval, X.mat, flag) ) # <<<<<<<<<<<<<< + * + * def aypx(self, alpha, Mat X, structure=None): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAXPY(__pyx_v_self->mat, __pyx_v_sval, __pyx_v_X->mat, __pyx_v_flag)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1475, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1472 + * CHKERR( MatSetRandom(self.mat, rnd) ) + * + * def axpy(self, alpha, Mat X, structure=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.axpy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1477 + * CHKERR( MatAXPY(self.mat, sval, X.mat, flag) ) + * + * def aypx(self, alpha, Mat X, structure=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_333aypx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_332aypx[] = "Mat.aypx(self, alpha, Mat X, structure=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_333aypx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha = 0; + struct PyPetscMatObject *__pyx_v_X = 0; + PyObject *__pyx_v_structure = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("aypx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_X,&__pyx_n_s_structure,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_X)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("aypx", 0, 2, 3, 1); __PYX_ERR(45, 1477, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_structure); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aypx") < 0)) __PYX_ERR(45, 1477, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_alpha = values[0]; + __pyx_v_X = ((struct PyPetscMatObject *)values[1]); + __pyx_v_structure = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("aypx", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1477, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.aypx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "X", 0))) __PYX_ERR(45, 1477, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_332aypx(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_alpha, __pyx_v_X, __pyx_v_structure); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_332aypx(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_alpha, struct PyPetscMatObject *__pyx_v_X, PyObject *__pyx_v_structure) { + PetscScalar __pyx_v_sval; + MatStructure __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + MatStructure __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("aypx", 0); + + /* "petsc4py/PETSc/Mat.pyx":1478 + * + * def aypx(self, alpha, Mat X, structure=None): + * cdef PetscScalar sval = asScalar(alpha) # <<<<<<<<<<<<<< + * cdef PetscMatStructure flag = matstructure(structure) + * CHKERR( MatAYPX(self.mat, sval, X.mat, flag) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_alpha); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1478, __pyx_L1_error) + __pyx_v_sval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1479 + * def aypx(self, alpha, Mat X, structure=None): + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) # <<<<<<<<<<<<<< + * CHKERR( MatAYPX(self.mat, sval, X.mat, flag) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_matstructure(__pyx_v_structure); if (unlikely(__pyx_t_2 == ((MatStructure)((MatStructure)-1L)))) __PYX_ERR(45, 1479, __pyx_L1_error) + __pyx_v_flag = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1480 + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + * CHKERR( MatAYPX(self.mat, sval, X.mat, flag) ) # <<<<<<<<<<<<<< + * + * # matrix-matrix product + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatAYPX(__pyx_v_self->mat, __pyx_v_sval, __pyx_v_X->mat, __pyx_v_flag)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1480, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1477 + * CHKERR( MatAXPY(self.mat, sval, X.mat, flag) ) + * + * def aypx(self, alpha, Mat X, structure=None): # <<<<<<<<<<<<<< + * cdef PetscScalar sval = asScalar(alpha) + * cdef PetscMatStructure flag = matstructure(structure) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.aypx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1484 + * # matrix-matrix product + * + * def matMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_335matMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_334matMult[] = "Mat.matMult(self, Mat mat, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_335matMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matMult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matMult") < 0)) __PYX_ERR(45, 1484, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + __pyx_v_fill = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matMult", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1484, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1484, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1484, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_334matMult(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_334matMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matMult", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1485 + * + * def matMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal rval = 2 + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1486 + * def matMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_rval = 2.0; + + /* "petsc4py/PETSc/Mat.pyx":1487 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1488 + * cdef PetscReal rval = 2 + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1487 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1489 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1490 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1489 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1491 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1491, __pyx_L1_error) + __pyx_v_rval = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1492 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMatMult(__pyx_v_self->mat, __pyx_v_mat->mat, __pyx_v_reuse, __pyx_v_rval, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1492, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1493 + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def matTransposeMult(self, Mat mat, Mat result=None, fill=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1484 + * # matrix-matrix product + * + * def matMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1495 + * return result + * + * def matTransposeMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_337matTransposeMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_336matTransposeMult[] = "Mat.matTransposeMult(self, Mat mat, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_337matTransposeMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matTransposeMult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matTransposeMult") < 0)) __PYX_ERR(45, 1495, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + __pyx_v_fill = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matTransposeMult", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1495, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matTransposeMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1495, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1495, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_336matTransposeMult(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_336matTransposeMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matTransposeMult", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1496 + * + * def matTransposeMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal rval = 2 + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1497 + * def matTransposeMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_rval = 2.0; + + /* "petsc4py/PETSc/Mat.pyx":1498 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1499 + * cdef PetscReal rval = 2 + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1498 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1500 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1501 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatTransposeMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1500 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1502 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatMatTransposeMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1502, __pyx_L1_error) + __pyx_v_rval = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1503 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatTransposeMult(self.mat, mat.mat, reuse, rval, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMatTransposeMult(__pyx_v_self->mat, __pyx_v_mat->mat, __pyx_v_reuse, __pyx_v_rval, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1503, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1504 + * if fill is not None: rval = asReal(fill) + * CHKERR( MatMatTransposeMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def transposeMatMult(self, Mat mat, Mat result=None, fill=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1495 + * return result + * + * def matTransposeMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matTransposeMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1506 + * return result + * + * def transposeMatMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_339transposeMatMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_338transposeMatMult[] = "Mat.transposeMatMult(self, Mat mat, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_339transposeMatMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("transposeMatMult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "transposeMatMult") < 0)) __PYX_ERR(45, 1506, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + __pyx_v_fill = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("transposeMatMult", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1506, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.transposeMatMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1506, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1506, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_338transposeMatMult(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_338transposeMatMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("transposeMatMult", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1507 + * + * def transposeMatMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal rval = 2 + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1508 + * def transposeMatMult(self, Mat mat, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_rval = 2.0; + + /* "petsc4py/PETSc/Mat.pyx":1509 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1510 + * cdef PetscReal rval = 2 + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1509 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1511 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1512 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: rval = asReal(fill) + * CHKERR( MatTransposeMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1511 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1513 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatTransposeMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1513, __pyx_L1_error) + __pyx_v_rval = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1514 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: rval = asReal(fill) + * CHKERR( MatTransposeMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatTransposeMatMult(__pyx_v_self->mat, __pyx_v_mat->mat, __pyx_v_reuse, __pyx_v_rval, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1514, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1515 + * if fill is not None: rval = asReal(fill) + * CHKERR( MatTransposeMatMult(self.mat, mat.mat, reuse, rval, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def ptap(self, Mat P, Mat result=None, fill=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1506 + * return result + * + * def transposeMatMult(self, Mat mat, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal rval = 2 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.transposeMatMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1517 + * return result + * + * def ptap(self, Mat P, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_341ptap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_340ptap[] = "Mat.ptap(self, Mat P, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_341ptap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_P = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("ptap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_P,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ptap") < 0)) __PYX_ERR(45, 1517, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_P = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + __pyx_v_fill = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("ptap", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1517, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.ptap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "P", 0))) __PYX_ERR(45, 1517, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1517, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_340ptap(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_P, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_340ptap(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_P, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_cfill; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("ptap", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1518 + * + * def ptap(self, Mat P, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1519 + * def ptap(self, Mat P, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_cfill = PETSC_DEFAULT; + + /* "petsc4py/PETSc/Mat.pyx":1520 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1521 + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1520 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1522 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1523 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatPtAP(self.mat, P.mat, reuse, cfill, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1522 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1524 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatPtAP(self.mat, P.mat, reuse, cfill, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1524, __pyx_L1_error) + __pyx_v_cfill = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1525 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatPtAP(self.mat, P.mat, reuse, cfill, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPtAP(__pyx_v_self->mat, __pyx_v_P->mat, __pyx_v_reuse, __pyx_v_cfill, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1525, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1526 + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatPtAP(self.mat, P.mat, reuse, cfill, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def rart(self, Mat R, Mat result=None, fill=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1517 + * return result + * + * def ptap(self, Mat P, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.ptap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1528 + * return result + * + * def rart(self, Mat R, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_343rart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_342rart[] = "Mat.rart(self, Mat R, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_343rart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_R = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("rart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_R,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rart") < 0)) __PYX_ERR(45, 1528, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_R = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + __pyx_v_fill = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("rart", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1528, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.rart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_R), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "R", 0))) __PYX_ERR(45, 1528, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1528, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_342rart(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_R, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_342rart(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_R, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_cfill; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("rart", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1529 + * + * def rart(self, Mat R, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1530 + * def rart(self, Mat R, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_cfill = PETSC_DEFAULT; + + /* "petsc4py/PETSc/Mat.pyx":1531 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1532 + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1531 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1533 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1534 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatRARt(self.mat, R.mat, reuse, cfill, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1533 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1535 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatRARt(self.mat, R.mat, reuse, cfill, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1535, __pyx_L1_error) + __pyx_v_cfill = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1536 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatRARt(self.mat, R.mat, reuse, cfill, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRARt(__pyx_v_self->mat, __pyx_v_R->mat, __pyx_v_reuse, __pyx_v_cfill, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1536, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1537 + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatRARt(self.mat, R.mat, reuse, cfill, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def matMatMult(self, Mat B, Mat C, Mat result=None, fill=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1528 + * return result + * + * def rart(self, Mat R, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.rart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1539 + * return result + * + * def matMatMult(self, Mat B, Mat C, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_345matMatMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_344matMatMult[] = "Mat.matMatMult(self, Mat B, Mat C, Mat result=None, fill=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_345matMatMult(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_B = 0; + struct PyPetscMatObject *__pyx_v_C = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + PyObject *__pyx_v_fill = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matMatMult (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_B,&__pyx_n_s_C,&__pyx_n_s_result,&__pyx_n_s_fill,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("matMatMult", 0, 2, 4, 1); __PYX_ERR(45, 1539, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matMatMult") < 0)) __PYX_ERR(45, 1539, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_B = ((struct PyPetscMatObject *)values[0]); + __pyx_v_C = ((struct PyPetscMatObject *)values[1]); + __pyx_v_result = ((struct PyPetscMatObject *)values[2]); + __pyx_v_fill = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matMatMult", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1539, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matMatMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_B), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "B", 0))) __PYX_ERR(45, 1539, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_C), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "C", 0))) __PYX_ERR(45, 1539, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1539, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_344matMatMult(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_B, __pyx_v_C, __pyx_v_result, __pyx_v_fill); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_344matMatMult(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_C, struct PyPetscMatObject *__pyx_v_result, PyObject *__pyx_v_fill) { + MatReuse __pyx_v_reuse; + PetscReal __pyx_v_cfill; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matMatMult", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1540 + * + * def matMatMult(self, Mat B, Mat C, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1541 + * def matMatMult(self, Mat B, Mat C, Mat result=None, fill=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_cfill = PETSC_DEFAULT; + + /* "petsc4py/PETSc/Mat.pyx":1542 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1543 + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1542 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1544 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1545 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatMatMatMult(self.mat, B.mat, C.mat, reuse, cfill, &result.mat) ) + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1544 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1546 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) # <<<<<<<<<<<<<< + * CHKERR( MatMatMatMult(self.mat, B.mat, C.mat, reuse, cfill, &result.mat) ) + * return result + */ + __pyx_t_2 = (__pyx_v_fill != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fill); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1546, __pyx_L1_error) + __pyx_v_cfill = __pyx_t_4; + } + + /* "petsc4py/PETSc/Mat.pyx":1547 + * reuse = MAT_REUSE_MATRIX + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatMatMatMult(self.mat, B.mat, C.mat, reuse, cfill, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMatMatMult(__pyx_v_self->mat, __pyx_v_B->mat, __pyx_v_C->mat, __pyx_v_reuse, __pyx_v_cfill, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1547, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1548 + * if fill is not None: cfill = asReal(fill) + * CHKERR( MatMatMatMult(self.mat, B.mat, C.mat, reuse, cfill, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def kron(self, Mat mat, Mat result=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1539 + * return result + * + * def matMatMult(self, Mat B, Mat C, Mat result=None, fill=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * cdef PetscReal cfill = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matMatMult", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1550 + * return result + * + * def kron(self, Mat mat, Mat result=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if result is None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_347kron(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_346kron[] = "Mat.kron(self, Mat mat, Mat result=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_347kron(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscMatObject *__pyx_v_result = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("kron (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_result,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_result); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "kron") < 0)) __PYX_ERR(45, 1550, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_result = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("kron", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1550, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.kron", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1550, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "result", 0))) __PYX_ERR(45, 1550, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_346kron(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_result); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_346kron(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscMatObject *__pyx_v_result) { + MatReuse __pyx_v_reuse; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("kron", 0); + __Pyx_INCREF((PyObject *)__pyx_v_result); + + /* "petsc4py/PETSc/Mat.pyx":1551 + * + * def kron(self, Mat mat, Mat result=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX # <<<<<<<<<<<<<< + * if result is None: + * result = Mat() + */ + __pyx_v_reuse = MAT_INITIAL_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1552 + * def kron(self, Mat mat, Mat result=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_result) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1553 + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if result is None: + * result = Mat() # <<<<<<<<<<<<<< + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_result, ((struct PyPetscMatObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1552 + * def kron(self, Mat mat, Mat result=None): + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if result is None: # <<<<<<<<<<<<<< + * result = Mat() + * elif result.mat != NULL: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1554 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatSeqAIJKron(self.mat, mat.mat, reuse, &result.mat) ) + */ + __pyx_t_2 = ((__pyx_v_result->mat != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1555 + * result = Mat() + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX # <<<<<<<<<<<<<< + * CHKERR( MatSeqAIJKron(self.mat, mat.mat, reuse, &result.mat) ) + * return result + */ + __pyx_v_reuse = MAT_REUSE_MATRIX; + + /* "petsc4py/PETSc/Mat.pyx":1554 + * if result is None: + * result = Mat() + * elif result.mat != NULL: # <<<<<<<<<<<<<< + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatSeqAIJKron(self.mat, mat.mat, reuse, &result.mat) ) + */ + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1556 + * elif result.mat != NULL: + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatSeqAIJKron(self.mat, mat.mat, reuse, &result.mat) ) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSeqAIJKron(__pyx_v_self->mat, __pyx_v_mat->mat, __pyx_v_reuse, (&__pyx_v_result->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1556, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1557 + * reuse = MAT_REUSE_MATRIX + * CHKERR( MatSeqAIJKron(self.mat, mat.mat, reuse, &result.mat) ) + * return result # <<<<<<<<<<<<<< + * + * def bindToCPU(self, flg): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1550 + * return result + * + * def kron(self, Mat mat, Mat result=None): # <<<<<<<<<<<<<< + * cdef PetscMatReuse reuse = MAT_INITIAL_MATRIX + * if result is None: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.kron", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1559 + * return result + * + * def bindToCPU(self, flg): # <<<<<<<<<<<<<< + * cdef PetscBool bindFlg = asBool(flg) + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_349bindToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_348bindToCPU[] = "Mat.bindToCPU(self, flg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_349bindToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("bindToCPU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "bindToCPU") < 0)) __PYX_ERR(45, 1559, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flg = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("bindToCPU", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1559, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.bindToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_348bindToCPU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_flg); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_348bindToCPU(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_flg) { + PetscBool __pyx_v_bindFlg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("bindToCPU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1560 + * + * def bindToCPU(self, flg): + * cdef PetscBool bindFlg = asBool(flg) # <<<<<<<<<<<<<< + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flg); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(45, 1560, __pyx_L1_error) + __pyx_v_bindFlg = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1561 + * def bindToCPU(self, flg): + * cdef PetscBool bindFlg = asBool(flg) + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) # <<<<<<<<<<<<<< + * + * def boundToCPU(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatBindToCPU(__pyx_v_self->mat, __pyx_v_bindFlg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1561, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1559 + * return result + * + * def bindToCPU(self, flg): # <<<<<<<<<<<<<< + * cdef PetscBool bindFlg = asBool(flg) + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.bindToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1563 + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) + * + * def boundToCPU(self): # <<<<<<<<<<<<<< + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( MatBoundToCPU(self.mat, &flg) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_351boundToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_350boundToCPU[] = "Mat.boundToCPU(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_351boundToCPU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("boundToCPU (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("boundToCPU", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "boundToCPU", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_350boundToCPU(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_350boundToCPU(struct PyPetscMatObject *__pyx_v_self) { + PetscBool __pyx_v_flg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("boundToCPU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1564 + * + * def boundToCPU(self): + * cdef PetscBool flg = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( MatBoundToCPU(self.mat, &flg) ) + * return toBool(flg) + */ + __pyx_v_flg = PETSC_TRUE; + + /* "petsc4py/PETSc/Mat.pyx":1565 + * def boundToCPU(self): + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( MatBoundToCPU(self.mat, &flg) ) # <<<<<<<<<<<<<< + * return toBool(flg) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatBoundToCPU(__pyx_v_self->mat, (&__pyx_v_flg))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1565, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1566 + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( MatBoundToCPU(self.mat, &flg) ) + * return toBool(flg) # <<<<<<<<<<<<<< + * + * # XXX factorization + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flg); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1563 + * CHKERR( MatBindToCPU(self.mat, bindFlg) ) + * + * def boundToCPU(self): # <<<<<<<<<<<<<< + * cdef PetscBool flg = PETSC_TRUE + * CHKERR( MatBoundToCPU(self.mat, &flg) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.boundToCPU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1570 + * # XXX factorization + * + * def getOrdering(self, ord_type): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * ord_type = str2bytes(ord_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_353getOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_352getOrdering[] = "Mat.getOrdering(self, ord_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_353getOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ord_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOrdering (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ord_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ord_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getOrdering") < 0)) __PYX_ERR(45, 1570, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ord_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getOrdering", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1570, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_352getOrdering(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_ord_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_352getOrdering(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_ord_type) { + MatOrderingType __pyx_v_cval; + struct PyPetscISObject *__pyx_v_rp = 0; + struct PyPetscISObject *__pyx_v_cp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOrdering", 0); + __Pyx_INCREF(__pyx_v_ord_type); + + /* "petsc4py/PETSc/Mat.pyx":1571 + * + * def getOrdering(self, ord_type): + * cdef PetscMatOrderingType cval = NULL # <<<<<<<<<<<<<< + * ord_type = str2bytes(ord_type, &cval) + * cdef IS rp = IS(), cp = IS() + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1572 + * def getOrdering(self, ord_type): + * cdef PetscMatOrderingType cval = NULL + * ord_type = str2bytes(ord_type, &cval) # <<<<<<<<<<<<<< + * cdef IS rp = IS(), cp = IS() + * CHKERR( MatGetOrdering(self.mat, cval, &rp.iset, &cp.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ord_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ord_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1573 + * cdef PetscMatOrderingType cval = NULL + * ord_type = str2bytes(ord_type, &cval) + * cdef IS rp = IS(), cp = IS() # <<<<<<<<<<<<<< + * CHKERR( MatGetOrdering(self.mat, cval, &rp.iset, &cp.iset) ) + * return (rp, cp) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_rp = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cp = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1574 + * ord_type = str2bytes(ord_type, &cval) + * cdef IS rp = IS(), cp = IS() + * CHKERR( MatGetOrdering(self.mat, cval, &rp.iset, &cp.iset) ) # <<<<<<<<<<<<<< + * return (rp, cp) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetOrdering(__pyx_v_self->mat, __pyx_v_cval, (&__pyx_v_rp->iset), (&__pyx_v_cp->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1574, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1575 + * cdef IS rp = IS(), cp = IS() + * CHKERR( MatGetOrdering(self.mat, cval, &rp.iset, &cp.iset) ) + * return (rp, cp) # <<<<<<<<<<<<<< + * + * def reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_rp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_rp)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_rp)); + __Pyx_INCREF(((PyObject *)__pyx_v_cp)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_cp)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_cp)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1570 + * # XXX factorization + * + * def getOrdering(self, ord_type): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * ord_type = str2bytes(ord_type, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_rp); + __Pyx_XDECREF((PyObject *)__pyx_v_cp); + __Pyx_XDECREF(__pyx_v_ord_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1577 + * return (rp, cp) + * + * def reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(atol) + * cdef PetscIS rp = isrow.iset, cp = iscol.iset + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_355reorderForNonzeroDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_354reorderForNonzeroDiagonal[] = "Mat.reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_355reorderForNonzeroDiagonal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + PyObject *__pyx_v_atol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reorderForNonzeroDiagonal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_atol,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("reorderForNonzeroDiagonal", 0, 2, 3, 1); __PYX_ERR(45, 1577, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_atol); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reorderForNonzeroDiagonal") < 0)) __PYX_ERR(45, 1577, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_atol = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("reorderForNonzeroDiagonal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1577, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.reorderForNonzeroDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1577, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1577, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_354reorderForNonzeroDiagonal(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_atol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_354reorderForNonzeroDiagonal(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_atol) { + PetscReal __pyx_v_rval; + IS __pyx_v_rp; + IS __pyx_v_cp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + IS __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reorderForNonzeroDiagonal", 0); + + /* "petsc4py/PETSc/Mat.pyx":1578 + * + * def reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0): + * cdef PetscReal rval = asReal(atol) # <<<<<<<<<<<<<< + * cdef PetscIS rp = isrow.iset, cp = iscol.iset + * CHKERR( MatReorderForNonzeroDiagonal(self.mat, rval, rp, cp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_atol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1578, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1579 + * def reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0): + * cdef PetscReal rval = asReal(atol) + * cdef PetscIS rp = isrow.iset, cp = iscol.iset # <<<<<<<<<<<<<< + * CHKERR( MatReorderForNonzeroDiagonal(self.mat, rval, rp, cp) ) + * + */ + __pyx_t_2 = __pyx_v_isrow->iset; + __pyx_v_rp = __pyx_t_2; + __pyx_t_2 = __pyx_v_iscol->iset; + __pyx_v_cp = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1580 + * cdef PetscReal rval = asReal(atol) + * cdef PetscIS rp = isrow.iset, cp = iscol.iset + * CHKERR( MatReorderForNonzeroDiagonal(self.mat, rval, rp, cp) ) # <<<<<<<<<<<<<< + * + * def factorLU(self, IS isrow, IS iscol, options=None): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatReorderForNonzeroDiagonal(__pyx_v_self->mat, __pyx_v_rval, __pyx_v_rp, __pyx_v_cp)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1580, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1577 + * return (rp, cp) + * + * def reorderForNonzeroDiagonal(self, IS isrow, IS iscol, atol=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(atol) + * cdef PetscIS rp = isrow.iset, cp = iscol.iset + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.reorderForNonzeroDiagonal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1582 + * CHKERR( MatReorderForNonzeroDiagonal(self.mat, rval, rp, cp) ) + * + * def factorLU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_357factorLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_356factorLU[] = "Mat.factorLU(self, IS isrow, IS iscol, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_357factorLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorLU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_options,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("factorLU", 0, 2, 3, 1); __PYX_ERR(45, 1582, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorLU") < 0)) __PYX_ERR(45, 1582, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_options = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorLU", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1582, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1582, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1582, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_356factorLU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_356factorLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options) { + MatFactorInfo __pyx_v_info; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorLU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1584 + * def factorLU(self, IS isrow, IS iscol, options=None): + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) # <<<<<<<<<<<<<< + * CHKERR( MatLUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matfactorinfo(PETSC_FALSE, PETSC_FALSE, __pyx_v_options, (&__pyx_v_info)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1584, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1585 + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) + * CHKERR( MatLUFactor(self.mat, isrow.iset, iscol.iset, &info) ) # <<<<<<<<<<<<<< + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): + * self; mat; isrow; iscol; options; # unused + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatLUFactor(__pyx_v_self->mat, __pyx_v_isrow->iset, __pyx_v_iscol->iset, (&__pyx_v_info))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1585, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1582 + * CHKERR( MatReorderForNonzeroDiagonal(self.mat, rval, rp, cp) ) + * + * def factorLU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1586 + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) + * CHKERR( MatLUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * self; mat; isrow; iscol; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_359factorSymbolicLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_358factorSymbolicLU[] = "Mat.factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_359factorSymbolicLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorSymbolicLU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_options,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("factorSymbolicLU", 0, 3, 4, 1); __PYX_ERR(45, 1586, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("factorSymbolicLU", 0, 3, 4, 2); __PYX_ERR(45, 1586, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorSymbolicLU") < 0)) __PYX_ERR(45, 1586, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_isrow = ((struct PyPetscISObject *)values[1]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[2]); + __pyx_v_options = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorSymbolicLU", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1586, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1586, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1586, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1586, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_358factorSymbolicLU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_isrow, __pyx_v_iscol, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_358factorSymbolicLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorSymbolicLU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1587 + * CHKERR( MatLUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): + * self; mat; isrow; iscol; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * def factorNumericLU(self, Mat mat, options=None): + */ + ((void)__pyx_v_self); + ((void)__pyx_v_mat); + ((void)__pyx_v_isrow); + ((void)__pyx_v_iscol); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1588 + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): + * self; mat; isrow; iscol; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * def factorNumericLU(self, Mat mat, options=None): + * self; mat; options; # unused + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1588, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1586 + * matfactorinfo(PETSC_FALSE, PETSC_FALSE, options, &info) + * CHKERR( MatLUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicLU(self, Mat mat, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * self; mat; isrow; iscol; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1589 + * self; mat; isrow; iscol; options; # unused + * raise NotImplementedError + * def factorNumericLU(self, Mat mat, options=None): # <<<<<<<<<<<<<< + * self; mat; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_361factorNumericLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_360factorNumericLU[] = "Mat.factorNumericLU(self, Mat mat, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_361factorNumericLU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorNumericLU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorNumericLU") < 0)) __PYX_ERR(45, 1589, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorNumericLU", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1589, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorNumericLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1589, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_360factorNumericLU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_360factorNumericLU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorNumericLU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1590 + * raise NotImplementedError + * def factorNumericLU(self, Mat mat, options=None): + * self; mat; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * def factorILU(self, IS isrow, IS iscol, options=None): + */ + ((void)__pyx_v_self); + ((void)__pyx_v_mat); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1591 + * def factorNumericLU(self, Mat mat, options=None): + * self; mat; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * def factorILU(self, IS isrow, IS iscol, options=None): + * cdef PetscMatFactorInfo info + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1591, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1589 + * self; mat; isrow; iscol; options; # unused + * raise NotImplementedError + * def factorNumericLU(self, Mat mat, options=None): # <<<<<<<<<<<<<< + * self; mat; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorNumericLU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1592 + * self; mat; options; # unused + * raise NotImplementedError + * def factorILU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_363factorILU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_362factorILU[] = "Mat.factorILU(self, IS isrow, IS iscol, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_363factorILU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorILU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_options,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("factorILU", 0, 2, 3, 1); __PYX_ERR(45, 1592, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorILU") < 0)) __PYX_ERR(45, 1592, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_options = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorILU", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1592, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorILU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1592, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1592, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_362factorILU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_362factorILU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options) { + MatFactorInfo __pyx_v_info; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorILU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1594 + * def factorILU(self, IS isrow, IS iscol, options=None): + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) # <<<<<<<<<<<<<< + * CHKERR( MatILUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matfactorinfo(PETSC_TRUE, PETSC_FALSE, __pyx_v_options, (&__pyx_v_info)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1594, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1595 + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) + * CHKERR( MatILUFactor(self.mat, isrow.iset, iscol.iset, &info) ) # <<<<<<<<<<<<<< + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): + * self; isrow; iscol; options; # unused + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatILUFactor(__pyx_v_self->mat, __pyx_v_isrow->iset, __pyx_v_iscol->iset, (&__pyx_v_info))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1595, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1592 + * self; mat; options; # unused + * raise NotImplementedError + * def factorILU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorILU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1596 + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) + * CHKERR( MatILUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * self; isrow; iscol; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_365factorSymbolicILU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_364factorSymbolicILU[] = "Mat.factorSymbolicILU(self, IS isrow, IS iscol, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_365factorSymbolicILU(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isrow = 0; + struct PyPetscISObject *__pyx_v_iscol = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorSymbolicILU (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isrow,&__pyx_n_s_iscol,&__pyx_n_s_options,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isrow)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iscol)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("factorSymbolicILU", 0, 2, 3, 1); __PYX_ERR(45, 1596, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorSymbolicILU") < 0)) __PYX_ERR(45, 1596, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isrow = ((struct PyPetscISObject *)values[0]); + __pyx_v_iscol = ((struct PyPetscISObject *)values[1]); + __pyx_v_options = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorSymbolicILU", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1596, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicILU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isrow), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isrow", 0))) __PYX_ERR(45, 1596, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iscol), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iscol", 0))) __PYX_ERR(45, 1596, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_364factorSymbolicILU(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isrow, __pyx_v_iscol, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_364factorSymbolicILU(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isrow, struct PyPetscISObject *__pyx_v_iscol, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorSymbolicILU", 0); + + /* "petsc4py/PETSc/Mat.pyx":1597 + * CHKERR( MatILUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): + * self; isrow; iscol; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_isrow); + ((void)__pyx_v_iscol); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1598 + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): + * self; isrow; iscol; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def factorCholesky(self, IS isperm, options=None): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1598, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1596 + * matfactorinfo(PETSC_TRUE, PETSC_FALSE, options, &info) + * CHKERR( MatILUFactor(self.mat, isrow.iset, iscol.iset, &info) ) + * def factorSymbolicILU(self, IS isrow, IS iscol, options=None): # <<<<<<<<<<<<<< + * self; isrow; iscol; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicILU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1600 + * raise NotImplementedError + * + * def factorCholesky(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_367factorCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_366factorCholesky[] = "Mat.factorCholesky(self, IS isperm, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_367factorCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isperm = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorCholesky (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isperm,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isperm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorCholesky") < 0)) __PYX_ERR(45, 1600, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isperm = ((struct PyPetscISObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorCholesky", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1600, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isperm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isperm", 0))) __PYX_ERR(45, 1600, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_366factorCholesky(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isperm, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_366factorCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options) { + MatFactorInfo __pyx_v_info; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorCholesky", 0); + + /* "petsc4py/PETSc/Mat.pyx":1602 + * def factorCholesky(self, IS isperm, options=None): + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) # <<<<<<<<<<<<<< + * CHKERR( MatCholeskyFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicCholesky(self, IS isperm, options=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matfactorinfo(PETSC_FALSE, PETSC_TRUE, __pyx_v_options, (&__pyx_v_info)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1602, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1603 + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) + * CHKERR( MatCholeskyFactor(self.mat, isperm.iset, &info) ) # <<<<<<<<<<<<<< + * def factorSymbolicCholesky(self, IS isperm, options=None): + * self; isperm; options; # unused + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCholeskyFactor(__pyx_v_self->mat, __pyx_v_isperm->iset, (&__pyx_v_info))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1603, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1600 + * raise NotImplementedError + * + * def factorCholesky(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1604 + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) + * CHKERR( MatCholeskyFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicCholesky(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * self; isperm; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_369factorSymbolicCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_368factorSymbolicCholesky[] = "Mat.factorSymbolicCholesky(self, IS isperm, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_369factorSymbolicCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isperm = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorSymbolicCholesky (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isperm,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isperm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorSymbolicCholesky") < 0)) __PYX_ERR(45, 1604, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isperm = ((struct PyPetscISObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorSymbolicCholesky", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1604, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isperm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isperm", 0))) __PYX_ERR(45, 1604, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_368factorSymbolicCholesky(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isperm, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_368factorSymbolicCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorSymbolicCholesky", 0); + + /* "petsc4py/PETSc/Mat.pyx":1605 + * CHKERR( MatCholeskyFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicCholesky(self, IS isperm, options=None): + * self; isperm; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * def factorNumericCholesky(self, Mat mat, options=None): + */ + ((void)__pyx_v_self); + ((void)__pyx_v_isperm); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1606 + * def factorSymbolicCholesky(self, IS isperm, options=None): + * self; isperm; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * def factorNumericCholesky(self, Mat mat, options=None): + * self; mat; options; # unused + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1606, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1604 + * matfactorinfo(PETSC_FALSE, PETSC_TRUE, options, &info) + * CHKERR( MatCholeskyFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicCholesky(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * self; isperm; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1607 + * self; isperm; options; # unused + * raise NotImplementedError + * def factorNumericCholesky(self, Mat mat, options=None): # <<<<<<<<<<<<<< + * self; mat; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_371factorNumericCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_370factorNumericCholesky[] = "Mat.factorNumericCholesky(self, Mat mat, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_371factorNumericCholesky(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorNumericCholesky (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorNumericCholesky") < 0)) __PYX_ERR(45, 1607, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorNumericCholesky", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1607, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorNumericCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 1607, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_370factorNumericCholesky(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mat, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_370factorNumericCholesky(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorNumericCholesky", 0); + + /* "petsc4py/PETSc/Mat.pyx":1608 + * raise NotImplementedError + * def factorNumericCholesky(self, Mat mat, options=None): + * self; mat; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * def factorICC(self, IS isperm, options=None): + */ + ((void)__pyx_v_self); + ((void)__pyx_v_mat); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1609 + * def factorNumericCholesky(self, Mat mat, options=None): + * self; mat; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * def factorICC(self, IS isperm, options=None): + * cdef PetscMatFactorInfo info + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1609, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1607 + * self; isperm; options; # unused + * raise NotImplementedError + * def factorNumericCholesky(self, Mat mat, options=None): # <<<<<<<<<<<<<< + * self; mat; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorNumericCholesky", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1610 + * self; mat; options; # unused + * raise NotImplementedError + * def factorICC(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_373factorICC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_372factorICC[] = "Mat.factorICC(self, IS isperm, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_373factorICC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isperm = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorICC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isperm,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isperm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorICC") < 0)) __PYX_ERR(45, 1610, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isperm = ((struct PyPetscISObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorICC", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1610, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorICC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isperm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isperm", 0))) __PYX_ERR(45, 1610, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_372factorICC(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isperm, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_372factorICC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options) { + MatFactorInfo __pyx_v_info; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorICC", 0); + + /* "petsc4py/PETSc/Mat.pyx":1612 + * def factorICC(self, IS isperm, options=None): + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) # <<<<<<<<<<<<<< + * CHKERR( MatICCFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicICC(self, IS isperm, options=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_matfactorinfo(PETSC_TRUE, PETSC_TRUE, __pyx_v_options, (&__pyx_v_info)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1612, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1613 + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) + * CHKERR( MatICCFactor(self.mat, isperm.iset, &info) ) # <<<<<<<<<<<<<< + * def factorSymbolicICC(self, IS isperm, options=None): + * self; isperm; options; # unused + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatICCFactor(__pyx_v_self->mat, __pyx_v_isperm->iset, (&__pyx_v_info))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1613, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1610 + * self; mat; options; # unused + * raise NotImplementedError + * def factorICC(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorInfo info + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorICC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1614 + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) + * CHKERR( MatICCFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicICC(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * self; isperm; options; # unused + * raise NotImplementedError + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_375factorSymbolicICC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_374factorSymbolicICC[] = "Mat.factorSymbolicICC(self, IS isperm, options=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_375factorSymbolicICC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_isperm = 0; + PyObject *__pyx_v_options = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("factorSymbolicICC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isperm,&__pyx_n_s_options,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isperm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_options); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "factorSymbolicICC") < 0)) __PYX_ERR(45, 1614, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_isperm = ((struct PyPetscISObject *)values[0]); + __pyx_v_options = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("factorSymbolicICC", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1614, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicICC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_isperm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "isperm", 0))) __PYX_ERR(45, 1614, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_374factorSymbolicICC(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_isperm, __pyx_v_options); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_374factorSymbolicICC(struct PyPetscMatObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_isperm, PyObject *__pyx_v_options) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("factorSymbolicICC", 0); + + /* "petsc4py/PETSc/Mat.pyx":1615 + * CHKERR( MatICCFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicICC(self, IS isperm, options=None): + * self; isperm; options; # unused # <<<<<<<<<<<<<< + * raise NotImplementedError + * + */ + ((void)__pyx_v_self); + ((void)__pyx_v_isperm); + ((void)__pyx_v_options); + + /* "petsc4py/PETSc/Mat.pyx":1616 + * def factorSymbolicICC(self, IS isperm, options=None): + * self; isperm; options; # unused + * raise NotImplementedError # <<<<<<<<<<<<<< + * + * def getInertia(self): + */ + __Pyx_Raise(__pyx_builtin_NotImplementedError, 0, 0, 0); + __PYX_ERR(45, 1616, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1614 + * matfactorinfo(PETSC_TRUE, PETSC_TRUE, options, &info) + * CHKERR( MatICCFactor(self.mat, isperm.iset, &info) ) + * def factorSymbolicICC(self, IS isperm, options=None): # <<<<<<<<<<<<<< + * self; isperm; options; # unused + * raise NotImplementedError + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.factorSymbolicICC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1618 + * raise NotImplementedError + * + * def getInertia(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0, ival3 = 0 + * CHKERR( MatGetInertia(self.mat, &ival1, &ival2, &ival3) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_377getInertia(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_376getInertia[] = "Mat.getInertia(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_377getInertia(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInertia (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInertia", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInertia", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_376getInertia(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_376getInertia(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PetscInt __pyx_v_ival3; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInertia", 0); + + /* "petsc4py/PETSc/Mat.pyx":1619 + * + * def getInertia(self): + * cdef PetscInt ival1 = 0, ival2 = 0, ival3 = 0 # <<<<<<<<<<<<<< + * CHKERR( MatGetInertia(self.mat, &ival1, &ival2, &ival3) ) + * return (toInt(ival1), toInt(ival2), toInt(ival3)) + */ + __pyx_v_ival1 = 0; + __pyx_v_ival2 = 0; + __pyx_v_ival3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1620 + * def getInertia(self): + * cdef PetscInt ival1 = 0, ival2 = 0, ival3 = 0 + * CHKERR( MatGetInertia(self.mat, &ival1, &ival2, &ival3) ) # <<<<<<<<<<<<<< + * return (toInt(ival1), toInt(ival2), toInt(ival3)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetInertia(__pyx_v_self->mat, (&__pyx_v_ival1), (&__pyx_v_ival2), (&__pyx_v_ival3))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1620, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1621 + * cdef PetscInt ival1 = 0, ival2 = 0, ival3 = 0 + * CHKERR( MatGetInertia(self.mat, &ival1, &ival2, &ival3) ) + * return (toInt(ival1), toInt(ival2), toInt(ival3)) # <<<<<<<<<<<<<< + * + * def setUnfactored(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival1); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival3); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 1621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1618 + * raise NotImplementedError + * + * def getInertia(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = 0, ival2 = 0, ival3 = 0 + * CHKERR( MatGetInertia(self.mat, &ival1, &ival2, &ival3) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getInertia", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1623 + * return (toInt(ival1), toInt(ival2), toInt(ival3)) + * + * def setUnfactored(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetUnfactored(self.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_379setUnfactored(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_378setUnfactored[] = "Mat.setUnfactored(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_379setUnfactored(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUnfactored (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUnfactored", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUnfactored", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_378setUnfactored(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_378setUnfactored(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUnfactored", 0); + + /* "petsc4py/PETSc/Mat.pyx":1624 + * + * def setUnfactored(self): + * CHKERR( MatSetUnfactored(self.mat) ) # <<<<<<<<<<<<<< + * + * # IS + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetUnfactored(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1624, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1623 + * return (toInt(ival1), toInt(ival2), toInt(ival3)) + * + * def setUnfactored(self): # <<<<<<<<<<<<<< + * CHKERR( MatSetUnfactored(self.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setUnfactored", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1628 + * # IS + * + * def fixISLocalEmpty(self, fix): # <<<<<<<<<<<<<< + * cdef PetscBool cfix = asBool(fix) + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_381fixISLocalEmpty(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_380fixISLocalEmpty[] = "Mat.fixISLocalEmpty(self, fix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_381fixISLocalEmpty(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("fixISLocalEmpty (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fixISLocalEmpty") < 0)) __PYX_ERR(45, 1628, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("fixISLocalEmpty", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1628, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.fixISLocalEmpty", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_380fixISLocalEmpty(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_fix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_380fixISLocalEmpty(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_fix) { + PetscBool __pyx_v_cfix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("fixISLocalEmpty", 0); + + /* "petsc4py/PETSc/Mat.pyx":1629 + * + * def fixISLocalEmpty(self, fix): + * cdef PetscBool cfix = asBool(fix) # <<<<<<<<<<<<<< + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_fix); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(45, 1629, __pyx_L1_error) + __pyx_v_cfix = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1630 + * def fixISLocalEmpty(self, fix): + * cdef PetscBool cfix = asBool(fix) + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) # <<<<<<<<<<<<<< + * + * def getISLocalMat(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISFixLocalEmpty(__pyx_v_self->mat, __pyx_v_cfix)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1630, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1628 + * # IS + * + * def fixISLocalEmpty(self, fix): # <<<<<<<<<<<<<< + * cdef PetscBool cfix = asBool(fix) + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.fixISLocalEmpty", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1632 + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) + * + * def getISLocalMat(self): # <<<<<<<<<<<<<< + * cdef Mat local = Mat() + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_383getISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_382getISLocalMat[] = "Mat.getISLocalMat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_383getISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getISLocalMat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getISLocalMat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getISLocalMat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_382getISLocalMat(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_382getISLocalMat(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_local = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getISLocalMat", 0); + + /* "petsc4py/PETSc/Mat.pyx":1633 + * + * def getISLocalMat(self): + * cdef Mat local = Mat() # <<<<<<<<<<<<<< + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) + * PetscINCREF(local.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_local = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1634 + * def getISLocalMat(self): + * cdef Mat local = Mat() + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(local.obj) + * return local + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISGetLocalMat(__pyx_v_self->mat, (&__pyx_v_local->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1634, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1635 + * cdef Mat local = Mat() + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) + * PetscINCREF(local.obj) # <<<<<<<<<<<<<< + * return local + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_local->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1636 + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) + * PetscINCREF(local.obj) + * return local # <<<<<<<<<<<<<< + * + * def restoreISLocalMat(self, Mat local not None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_local)); + __pyx_r = ((PyObject *)__pyx_v_local); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1632 + * CHKERR( MatISFixLocalEmpty(self.mat, cfix) ) + * + * def getISLocalMat(self): # <<<<<<<<<<<<<< + * cdef Mat local = Mat() + * CHKERR( MatISGetLocalMat(self.mat, &local.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_local); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1638 + * return local + * + * def restoreISLocalMat(self, Mat local not None): # <<<<<<<<<<<<<< + * CHKERR( MatISRestoreLocalMat(self.mat, &local.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_385restoreISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_384restoreISLocalMat[] = "Mat.restoreISLocalMat(self, Mat local)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_385restoreISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_local = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreISLocalMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_local)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreISLocalMat") < 0)) __PYX_ERR(45, 1638, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_local = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreISLocalMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1638, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_local), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "local", 0))) __PYX_ERR(45, 1638, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_384restoreISLocalMat(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_local); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_384restoreISLocalMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_local) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreISLocalMat", 0); + + /* "petsc4py/PETSc/Mat.pyx":1639 + * + * def restoreISLocalMat(self, Mat local not None): + * CHKERR( MatISRestoreLocalMat(self.mat, &local.mat) ) # <<<<<<<<<<<<<< + * + * def setISLocalMat(self, Mat local not None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISRestoreLocalMat(__pyx_v_self->mat, (&__pyx_v_local->mat))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1639, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1638 + * return local + * + * def restoreISLocalMat(self, Mat local not None): # <<<<<<<<<<<<<< + * CHKERR( MatISRestoreLocalMat(self.mat, &local.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1641 + * CHKERR( MatISRestoreLocalMat(self.mat, &local.mat) ) + * + * def setISLocalMat(self, Mat local not None): # <<<<<<<<<<<<<< + * CHKERR( MatISSetLocalMat(self.mat, local.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_387setISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_386setISLocalMat[] = "Mat.setISLocalMat(self, Mat local)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_387setISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_local = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setISLocalMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_local,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_local)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setISLocalMat") < 0)) __PYX_ERR(45, 1641, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_local = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setISLocalMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1641, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_local), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "local", 0))) __PYX_ERR(45, 1641, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_386setISLocalMat(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_local); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_386setISLocalMat(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_local) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setISLocalMat", 0); + + /* "petsc4py/PETSc/Mat.pyx":1642 + * + * def setISLocalMat(self, Mat local not None): + * CHKERR( MatISSetLocalMat(self.mat, local.mat) ) # <<<<<<<<<<<<<< + * + * def setISPreallocation(self, nnz, onnz): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISSetLocalMat(__pyx_v_self->mat, __pyx_v_local->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1642, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1641 + * CHKERR( MatISRestoreLocalMat(self.mat, &local.mat) ) + * + * def setISLocalMat(self, Mat local not None): # <<<<<<<<<<<<<< + * CHKERR( MatISSetLocalMat(self.mat, local.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1644 + * CHKERR( MatISSetLocalMat(self.mat, local.mat) ) + * + * def setISPreallocation(self, nnz, onnz): # <<<<<<<<<<<<<< + * cdef PetscInt *cnnz = NULL + * cdef PetscInt *connz = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_389setISPreallocation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_388setISPreallocation[] = "Mat.setISPreallocation(self, nnz, onnz)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_389setISPreallocation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nnz = 0; + PyObject *__pyx_v_onnz = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setISPreallocation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nnz,&__pyx_n_s_onnz,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nnz)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_onnz)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setISPreallocation", 1, 2, 2, 1); __PYX_ERR(45, 1644, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setISPreallocation") < 0)) __PYX_ERR(45, 1644, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_nnz = values[0]; + __pyx_v_onnz = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setISPreallocation", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1644, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setISPreallocation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_388setISPreallocation(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_nnz, __pyx_v_onnz); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_388setISPreallocation(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_nnz, PyObject *__pyx_v_onnz) { + PetscInt *__pyx_v_cnnz; + PetscInt *__pyx_v_connz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setISPreallocation", 0); + __Pyx_INCREF(__pyx_v_nnz); + __Pyx_INCREF(__pyx_v_onnz); + + /* "petsc4py/PETSc/Mat.pyx":1645 + * + * def setISPreallocation(self, nnz, onnz): + * cdef PetscInt *cnnz = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *connz = NULL + * nnz = iarray_i(nnz, NULL, &cnnz) + */ + __pyx_v_cnnz = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1646 + * def setISPreallocation(self, nnz, onnz): + * cdef PetscInt *cnnz = NULL + * cdef PetscInt *connz = NULL # <<<<<<<<<<<<<< + * nnz = iarray_i(nnz, NULL, &cnnz) + * onnz = iarray_i(onnz, NULL, &connz) + */ + __pyx_v_connz = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1647 + * cdef PetscInt *cnnz = NULL + * cdef PetscInt *connz = NULL + * nnz = iarray_i(nnz, NULL, &cnnz) # <<<<<<<<<<<<<< + * onnz = iarray_i(onnz, NULL, &connz) + * CHKERR( MatISSetPreallocation(self.mat, 0, cnnz, 0, connz) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_nnz, NULL, (&__pyx_v_cnnz))); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_nnz, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1648 + * cdef PetscInt *connz = NULL + * nnz = iarray_i(nnz, NULL, &cnnz) + * onnz = iarray_i(onnz, NULL, &connz) # <<<<<<<<<<<<<< + * CHKERR( MatISSetPreallocation(self.mat, 0, cnnz, 0, connz) ) + * return self + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_onnz, NULL, (&__pyx_v_connz))); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_onnz, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1649 + * nnz = iarray_i(nnz, NULL, &cnnz) + * onnz = iarray_i(onnz, NULL, &connz) + * CHKERR( MatISSetPreallocation(self.mat, 0, cnnz, 0, connz) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISSetPreallocation(__pyx_v_self->mat, 0, __pyx_v_cnnz, 0, __pyx_v_connz)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1649, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1650 + * onnz = iarray_i(onnz, NULL, &connz) + * CHKERR( MatISSetPreallocation(self.mat, 0, cnnz, 0, connz) ) + * return self # <<<<<<<<<<<<<< + * + * # LRC + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1644 + * CHKERR( MatISSetLocalMat(self.mat, local.mat) ) + * + * def setISPreallocation(self, nnz, onnz): # <<<<<<<<<<<<<< + * cdef PetscInt *cnnz = NULL + * cdef PetscInt *connz = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setISPreallocation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_nnz); + __Pyx_XDECREF(__pyx_v_onnz); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1654 + * # LRC + * + * def getLRCMats(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat() + * cdef Mat U = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_391getLRCMats(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_390getLRCMats[] = "Mat.getLRCMats(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_391getLRCMats(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLRCMats (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLRCMats", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLRCMats", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_390getLRCMats(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_390getLRCMats(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_U = 0; + struct PyPetscVecObject *__pyx_v_c = 0; + struct PyPetscMatObject *__pyx_v_V = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLRCMats", 0); + + /* "petsc4py/PETSc/Mat.pyx":1655 + * + * def getLRCMats(self): + * cdef Mat A = Mat() # <<<<<<<<<<<<<< + * cdef Mat U = Mat() + * cdef Vec c = Vec() + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_A = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1656 + * def getLRCMats(self): + * cdef Mat A = Mat() + * cdef Mat U = Mat() # <<<<<<<<<<<<<< + * cdef Vec c = Vec() + * cdef Mat V = Mat() + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_U = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1657 + * cdef Mat A = Mat() + * cdef Mat U = Mat() + * cdef Vec c = Vec() # <<<<<<<<<<<<<< + * cdef Mat V = Mat() + * CHKERR( MatLRCGetMats(self.mat, &A.mat, &U.mat, &c.vec, &V.mat) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_c = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1658 + * cdef Mat U = Mat() + * cdef Vec c = Vec() + * cdef Mat V = Mat() # <<<<<<<<<<<<<< + * CHKERR( MatLRCGetMats(self.mat, &A.mat, &U.mat, &c.vec, &V.mat) ) + * PetscINCREF(A.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_V = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1659 + * cdef Vec c = Vec() + * cdef Mat V = Mat() + * CHKERR( MatLRCGetMats(self.mat, &A.mat, &U.mat, &c.vec, &V.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(A.obj) + * PetscINCREF(U.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatLRCGetMats(__pyx_v_self->mat, (&__pyx_v_A->mat), (&__pyx_v_U->mat), (&__pyx_v_c->vec), (&__pyx_v_V->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1659, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1660 + * cdef Mat V = Mat() + * CHKERR( MatLRCGetMats(self.mat, &A.mat, &U.mat, &c.vec, &V.mat) ) + * PetscINCREF(A.obj) # <<<<<<<<<<<<<< + * PetscINCREF(U.obj) + * PetscINCREF(c.obj) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_A->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1661 + * CHKERR( MatLRCGetMats(self.mat, &A.mat, &U.mat, &c.vec, &V.mat) ) + * PetscINCREF(A.obj) + * PetscINCREF(U.obj) # <<<<<<<<<<<<<< + * PetscINCREF(c.obj) + * PetscINCREF(V.obj) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_U->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1662 + * PetscINCREF(A.obj) + * PetscINCREF(U.obj) + * PetscINCREF(c.obj) # <<<<<<<<<<<<<< + * PetscINCREF(V.obj) + * return (A, U, c, V) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_c->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1663 + * PetscINCREF(U.obj) + * PetscINCREF(c.obj) + * PetscINCREF(V.obj) # <<<<<<<<<<<<<< + * return (A, U, c, V) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_V->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1664 + * PetscINCREF(c.obj) + * PetscINCREF(V.obj) + * return (A, U, c, V) # <<<<<<<<<<<<<< + * + * # H2Opus + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_A)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_A)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_A)); + __Pyx_INCREF(((PyObject *)__pyx_v_U)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_U)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_U)); + __Pyx_INCREF(((PyObject *)__pyx_v_c)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_c)); + PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)__pyx_v_c)); + __Pyx_INCREF(((PyObject *)__pyx_v_V)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_V)); + PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)__pyx_v_V)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1654 + * # LRC + * + * def getLRCMats(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat() + * cdef Mat U = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getLRCMats", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_A); + __Pyx_XDECREF((PyObject *)__pyx_v_U); + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XDECREF((PyObject *)__pyx_v_V); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1668 + * # H2Opus + * + * def H2OpusOrthogonalize(self): # <<<<<<<<<<<<<< + * CHKERR( MatH2OpusOrthogonalize(self.mat) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_393H2OpusOrthogonalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_392H2OpusOrthogonalize[] = "Mat.H2OpusOrthogonalize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_393H2OpusOrthogonalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("H2OpusOrthogonalize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("H2OpusOrthogonalize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "H2OpusOrthogonalize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_392H2OpusOrthogonalize(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_392H2OpusOrthogonalize(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("H2OpusOrthogonalize", 0); + + /* "petsc4py/PETSc/Mat.pyx":1669 + * + * def H2OpusOrthogonalize(self): + * CHKERR( MatH2OpusOrthogonalize(self.mat) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatH2OpusOrthogonalize(__pyx_v_self->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1669, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1670 + * def H2OpusOrthogonalize(self): + * CHKERR( MatH2OpusOrthogonalize(self.mat) ) + * return self # <<<<<<<<<<<<<< + * + * def H2OpusCompress(self, tol): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1668 + * # H2Opus + * + * def H2OpusOrthogonalize(self): # <<<<<<<<<<<<<< + * CHKERR( MatH2OpusOrthogonalize(self.mat) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.H2OpusOrthogonalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1672 + * return self + * + * def H2OpusCompress(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal _tol = asReal(tol) + * CHKERR( MatH2OpusCompress(self.mat, _tol) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_395H2OpusCompress(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_394H2OpusCompress[] = "Mat.H2OpusCompress(self, tol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_395H2OpusCompress(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("H2OpusCompress (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "H2OpusCompress") < 0)) __PYX_ERR(45, 1672, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tol = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("H2OpusCompress", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1672, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.H2OpusCompress", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_394H2OpusCompress(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_tol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_394H2OpusCompress(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_tol) { + PetscReal __pyx_v__tol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("H2OpusCompress", 0); + + /* "petsc4py/PETSc/Mat.pyx":1673 + * + * def H2OpusCompress(self, tol): + * cdef PetscReal _tol = asReal(tol) # <<<<<<<<<<<<<< + * CHKERR( MatH2OpusCompress(self.mat, _tol) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1673, __pyx_L1_error) + __pyx_v__tol = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1674 + * def H2OpusCompress(self, tol): + * cdef PetscReal _tol = asReal(tol) + * CHKERR( MatH2OpusCompress(self.mat, _tol) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatH2OpusCompress(__pyx_v_self->mat, __pyx_v__tol)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1674, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1675 + * cdef PetscReal _tol = asReal(tol) + * CHKERR( MatH2OpusCompress(self.mat, _tol) ) + * return self # <<<<<<<<<<<<<< + * + * def H2OpusLowRankUpdate(self, Mat U, Mat V=None, s = 1.0): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1672 + * return self + * + * def H2OpusCompress(self, tol): # <<<<<<<<<<<<<< + * cdef PetscReal _tol = asReal(tol) + * CHKERR( MatH2OpusCompress(self.mat, _tol) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.H2OpusCompress", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1677 + * return self + * + * def H2OpusLowRankUpdate(self, Mat U, Mat V=None, s = 1.0): # <<<<<<<<<<<<<< + * cdef PetscScalar _s = asScalar(s) + * cdef PetscMat vmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_397H2OpusLowRankUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_396H2OpusLowRankUpdate[] = "Mat.H2OpusLowRankUpdate(self, Mat U, Mat V=None, s=1.0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_397H2OpusLowRankUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_U = 0; + struct PyPetscMatObject *__pyx_v_V = 0; + PyObject *__pyx_v_s = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("H2OpusLowRankUpdate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_U,&__pyx_n_s_V,&__pyx_n_s_s_2,0}; + PyObject* values[3] = {0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)__pyx_float_1_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_V); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_2); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "H2OpusLowRankUpdate") < 0)) __PYX_ERR(45, 1677, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_U = ((struct PyPetscMatObject *)values[0]); + __pyx_v_V = ((struct PyPetscMatObject *)values[1]); + __pyx_v_s = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("H2OpusLowRankUpdate", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1677, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.H2OpusLowRankUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_U), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "U", 0))) __PYX_ERR(45, 1677, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_V), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "V", 0))) __PYX_ERR(45, 1677, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_396H2OpusLowRankUpdate(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_U, __pyx_v_V, __pyx_v_s); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_396H2OpusLowRankUpdate(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_U, struct PyPetscMatObject *__pyx_v_V, PyObject *__pyx_v_s) { + PetscScalar __pyx_v__s; + Mat __pyx_v_vmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Mat __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("H2OpusLowRankUpdate", 0); + + /* "petsc4py/PETSc/Mat.pyx":1678 + * + * def H2OpusLowRankUpdate(self, Mat U, Mat V=None, s = 1.0): + * cdef PetscScalar _s = asScalar(s) # <<<<<<<<<<<<<< + * cdef PetscMat vmat = NULL + * if V is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_s); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(45, 1678, __pyx_L1_error) + __pyx_v__s = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1679 + * def H2OpusLowRankUpdate(self, Mat U, Mat V=None, s = 1.0): + * cdef PetscScalar _s = asScalar(s) + * cdef PetscMat vmat = NULL # <<<<<<<<<<<<<< + * if V is not None: + * vmat = V.mat + */ + __pyx_v_vmat = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1680 + * cdef PetscScalar _s = asScalar(s) + * cdef PetscMat vmat = NULL + * if V is not None: # <<<<<<<<<<<<<< + * vmat = V.mat + * CHKERR( MatH2OpusLowRankUpdate(self.mat, U.mat, vmat, _s) ) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_V) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Mat.pyx":1681 + * cdef PetscMat vmat = NULL + * if V is not None: + * vmat = V.mat # <<<<<<<<<<<<<< + * CHKERR( MatH2OpusLowRankUpdate(self.mat, U.mat, vmat, _s) ) + * return self + */ + __pyx_t_4 = __pyx_v_V->mat; + __pyx_v_vmat = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1680 + * cdef PetscScalar _s = asScalar(s) + * cdef PetscMat vmat = NULL + * if V is not None: # <<<<<<<<<<<<<< + * vmat = V.mat + * CHKERR( MatH2OpusLowRankUpdate(self.mat, U.mat, vmat, _s) ) + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1682 + * if V is not None: + * vmat = V.mat + * CHKERR( MatH2OpusLowRankUpdate(self.mat, U.mat, vmat, _s) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatH2OpusLowRankUpdate(__pyx_v_self->mat, __pyx_v_U->mat, __pyx_v_vmat, __pyx_v__s)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1682, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1683 + * vmat = V.mat + * CHKERR( MatH2OpusLowRankUpdate(self.mat, U.mat, vmat, _s) ) + * return self # <<<<<<<<<<<<<< + * + * # MUMPS + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1677 + * return self + * + * def H2OpusLowRankUpdate(self, Mat U, Mat V=None, s = 1.0): # <<<<<<<<<<<<<< + * cdef PetscScalar _s = asScalar(s) + * cdef PetscMat vmat = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.H2OpusLowRankUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1687 + * # MUMPS + * + * def setMumpsIcntl(self, icntl, ival): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt _ival = asInt(ival) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_399setMumpsIcntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_398setMumpsIcntl[] = "Mat.setMumpsIcntl(self, icntl, ival)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_399setMumpsIcntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + PyObject *__pyx_v_ival = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMumpsIcntl (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,&__pyx_n_s_ival,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ival)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMumpsIcntl", 1, 2, 2, 1); __PYX_ERR(45, 1687, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMumpsIcntl") < 0)) __PYX_ERR(45, 1687, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_icntl = values[0]; + __pyx_v_ival = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMumpsIcntl", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1687, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setMumpsIcntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_398setMumpsIcntl(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl, __pyx_v_ival); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_398setMumpsIcntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl, PyObject *__pyx_v_ival) { + PetscInt __pyx_v__icntl; + PetscInt __pyx_v__ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMumpsIcntl", 0); + + /* "petsc4py/PETSc/Mat.pyx":1688 + * + * def setMumpsIcntl(self, icntl, ival): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscInt _ival = asInt(ival) + * CHKERR( MatMumpsSetIcntl(self.mat, _icntl, _ival) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1688, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1689 + * def setMumpsIcntl(self, icntl, ival): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt _ival = asInt(ival) # <<<<<<<<<<<<<< + * CHKERR( MatMumpsSetIcntl(self.mat, _icntl, _ival) ); + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_ival); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1689, __pyx_L1_error) + __pyx_v__ival = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1690 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt _ival = asInt(ival) + * CHKERR( MatMumpsSetIcntl(self.mat, _icntl, _ival) ); # <<<<<<<<<<<<<< + * + * def getMumpsIcntl(self, icntl): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsSetIcntl(__pyx_v_self->mat, __pyx_v__icntl, __pyx_v__ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1690, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1687 + * # MUMPS + * + * def setMumpsIcntl(self, icntl, ival): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt _ival = asInt(ival) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setMumpsIcntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1692 + * CHKERR( MatMumpsSetIcntl(self.mat, _icntl, _ival) ); + * + * def getMumpsIcntl(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_401getMumpsIcntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_400getMumpsIcntl[] = "Mat.getMumpsIcntl(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_401getMumpsIcntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsIcntl (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsIcntl") < 0)) __PYX_ERR(45, 1692, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsIcntl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1692, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsIcntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_400getMumpsIcntl(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_400getMumpsIcntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsIcntl", 0); + + /* "petsc4py/PETSc/Mat.pyx":1693 + * + * def getMumpsIcntl(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetIcntl(self.mat, _icntl, &ival) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1693, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1694 + * def getMumpsIcntl(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetIcntl(self.mat, _icntl, &ival) ); + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/Mat.pyx":1695 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetIcntl(self.mat, _icntl, &ival) ); # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetIcntl(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_ival))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1695, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1696 + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetIcntl(self.mat, _icntl, &ival) ); + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setMumpsCntl(self, icntl, val): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1692 + * CHKERR( MatMumpsSetIcntl(self.mat, _icntl, _ival) ); + * + * def getMumpsIcntl(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsIcntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1698 + * return toInt(ival) + * + * def setMumpsCntl(self, icntl, val): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal _val = asReal(val) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_403setMumpsCntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_402setMumpsCntl[] = "Mat.setMumpsCntl(self, icntl, val)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_403setMumpsCntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + PyObject *__pyx_v_val = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMumpsCntl (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,&__pyx_n_s_val,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMumpsCntl", 1, 2, 2, 1); __PYX_ERR(45, 1698, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMumpsCntl") < 0)) __PYX_ERR(45, 1698, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_icntl = values[0]; + __pyx_v_val = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMumpsCntl", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1698, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setMumpsCntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_402setMumpsCntl(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl, __pyx_v_val); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_402setMumpsCntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl, PyObject *__pyx_v_val) { + PetscInt __pyx_v__icntl; + PetscReal __pyx_v__val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMumpsCntl", 0); + + /* "petsc4py/PETSc/Mat.pyx":1699 + * + * def setMumpsCntl(self, icntl, val): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscReal _val = asReal(val) + * CHKERR( MatMumpsSetCntl(self.mat, _icntl, _val) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1699, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1700 + * def setMumpsCntl(self, icntl, val): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal _val = asReal(val) # <<<<<<<<<<<<<< + * CHKERR( MatMumpsSetCntl(self.mat, _icntl, _val) ); + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_val); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(45, 1700, __pyx_L1_error) + __pyx_v__val = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1701 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal _val = asReal(val) + * CHKERR( MatMumpsSetCntl(self.mat, _icntl, _val) ); # <<<<<<<<<<<<<< + * + * def getMumpsCntl(self, icntl): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsSetCntl(__pyx_v_self->mat, __pyx_v__icntl, __pyx_v__val)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1701, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1698 + * return toInt(ival) + * + * def setMumpsCntl(self, icntl, val): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal _val = asReal(val) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setMumpsCntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1703 + * CHKERR( MatMumpsSetCntl(self.mat, _icntl, _val) ); + * + * def getMumpsCntl(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_405getMumpsCntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_404getMumpsCntl[] = "Mat.getMumpsCntl(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_405getMumpsCntl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsCntl (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsCntl") < 0)) __PYX_ERR(45, 1703, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsCntl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1703, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsCntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_404getMumpsCntl(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_404getMumpsCntl(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscReal __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsCntl", 0); + + /* "petsc4py/PETSc/Mat.pyx":1704 + * + * def getMumpsCntl(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetCntl(self.mat, _icntl, &val) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1704, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1705 + * def getMumpsCntl(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetCntl(self.mat, _icntl, &val) ); + * return toReal(val) + */ + __pyx_v_val = 0.0; + + /* "petsc4py/PETSc/Mat.pyx":1706 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetCntl(self.mat, _icntl, &val) ); # <<<<<<<<<<<<<< + * return toReal(val) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetCntl(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_val))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1706, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1707 + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetCntl(self.mat, _icntl, &val) ); + * return toReal(val) # <<<<<<<<<<<<<< + * + * def getMumpsInfo(self, icntl): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1703 + * CHKERR( MatMumpsSetCntl(self.mat, _icntl, _val) ); + * + * def getMumpsCntl(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsCntl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1709 + * return toReal(val) + * + * def getMumpsInfo(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_407getMumpsInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_406getMumpsInfo[] = "Mat.getMumpsInfo(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_407getMumpsInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsInfo") < 0)) __PYX_ERR(45, 1709, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsInfo", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1709, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_406getMumpsInfo(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_406getMumpsInfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsInfo", 0); + + /* "petsc4py/PETSc/Mat.pyx":1710 + * + * def getMumpsInfo(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfo(self.mat, _icntl, &ival) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1710, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1711 + * def getMumpsInfo(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetInfo(self.mat, _icntl, &ival) ); + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/Mat.pyx":1712 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfo(self.mat, _icntl, &ival) ); # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetInfo(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_ival))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1712, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1713 + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfo(self.mat, _icntl, &ival) ); + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getMumpsInfog(self, icntl): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1709 + * return toReal(val) + * + * def getMumpsInfo(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1715 + * return toInt(ival) + * + * def getMumpsInfog(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_409getMumpsInfog(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_408getMumpsInfog[] = "Mat.getMumpsInfog(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_409getMumpsInfog(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsInfog (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsInfog") < 0)) __PYX_ERR(45, 1715, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsInfog", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1715, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsInfog", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_408getMumpsInfog(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_408getMumpsInfog(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsInfog", 0); + + /* "petsc4py/PETSc/Mat.pyx":1716 + * + * def getMumpsInfog(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfog(self.mat, _icntl, &ival) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1716, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1717 + * def getMumpsInfog(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetInfog(self.mat, _icntl, &ival) ); + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/Mat.pyx":1718 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfog(self.mat, _icntl, &ival) ); # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetInfog(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_ival))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1718, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1719 + * cdef PetscInt ival = 0 + * CHKERR( MatMumpsGetInfog(self.mat, _icntl, &ival) ); + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getMumpsRinfo(self, icntl): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1715 + * return toInt(ival) + * + * def getMumpsInfog(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscInt ival = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsInfog", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1721 + * return toInt(ival) + * + * def getMumpsRinfo(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_411getMumpsRinfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_410getMumpsRinfo[] = "Mat.getMumpsRinfo(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_411getMumpsRinfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsRinfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsRinfo") < 0)) __PYX_ERR(45, 1721, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsRinfo", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1721, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsRinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_410getMumpsRinfo(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_410getMumpsRinfo(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscReal __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsRinfo", 0); + + /* "petsc4py/PETSc/Mat.pyx":1722 + * + * def getMumpsRinfo(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfo(self.mat, _icntl, &val) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1722, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1723 + * def getMumpsRinfo(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetRinfo(self.mat, _icntl, &val) ); + * return toReal(val) + */ + __pyx_v_val = 0.0; + + /* "petsc4py/PETSc/Mat.pyx":1724 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfo(self.mat, _icntl, &val) ); # <<<<<<<<<<<<<< + * return toReal(val) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetRinfo(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_val))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1724, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1725 + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfo(self.mat, _icntl, &val) ); + * return toReal(val) # <<<<<<<<<<<<<< + * + * def getMumpsRinfog(self, icntl): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1721 + * return toInt(ival) + * + * def getMumpsRinfo(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsRinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1727 + * return toReal(val) + * + * def getMumpsRinfog(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_413getMumpsRinfog(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_412getMumpsRinfog[] = "Mat.getMumpsRinfog(self, icntl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_413getMumpsRinfog(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_icntl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMumpsRinfog (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_icntl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_icntl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMumpsRinfog") < 0)) __PYX_ERR(45, 1727, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_icntl = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMumpsRinfog", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1727, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsRinfog", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_412getMumpsRinfog(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_icntl); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_412getMumpsRinfog(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_icntl) { + PetscInt __pyx_v__icntl; + PetscReal __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMumpsRinfog", 0); + + /* "petsc4py/PETSc/Mat.pyx":1728 + * + * def getMumpsRinfog(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) # <<<<<<<<<<<<<< + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfog(self.mat, _icntl, &val) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_icntl); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1728, __pyx_L1_error) + __pyx_v__icntl = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1729 + * def getMumpsRinfog(self, icntl): + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 # <<<<<<<<<<<<<< + * CHKERR( MatMumpsGetRinfog(self.mat, _icntl, &val) ); + * return toReal(val) + */ + __pyx_v_val = 0.0; + + /* "petsc4py/PETSc/Mat.pyx":1730 + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfog(self.mat, _icntl, &val) ); # <<<<<<<<<<<<<< + * return toReal(val) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMumpsGetRinfog(__pyx_v_self->mat, __pyx_v__icntl, (&__pyx_v_val))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1730, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1731 + * cdef PetscReal val = 0 + * CHKERR( MatMumpsGetRinfog(self.mat, _icntl, &val) ); + * return toReal(val) # <<<<<<<<<<<<<< + * + * # solve + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_val); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1727 + * return toReal(val) + * + * def getMumpsRinfog(self, icntl): # <<<<<<<<<<<<<< + * cdef PetscInt _icntl = asInt(icntl) + * cdef PetscReal val = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getMumpsRinfog", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1735 + * # solve + * + * def solveForward(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatForwardSolve(self.mat, b.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_415solveForward(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_414solveForward[] = "Mat.solveForward(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_415solveForward(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveForward (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveForward", 1, 2, 2, 1); __PYX_ERR(45, 1735, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveForward") < 0)) __PYX_ERR(45, 1735, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveForward", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1735, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveForward", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1735, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1735, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_414solveForward(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_414solveForward(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveForward", 0); + + /* "petsc4py/PETSc/Mat.pyx":1736 + * + * def solveForward(self, Vec b, Vec x): + * CHKERR( MatForwardSolve(self.mat, b.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def solveBackward(self, Vec b, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatForwardSolve(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1736, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1735 + * # solve + * + * def solveForward(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatForwardSolve(self.mat, b.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveForward", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1738 + * CHKERR( MatForwardSolve(self.mat, b.vec, x.vec) ) + * + * def solveBackward(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatBackwardSolve(self.mat, b.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_417solveBackward(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_416solveBackward[] = "Mat.solveBackward(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_417solveBackward(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveBackward (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveBackward", 1, 2, 2, 1); __PYX_ERR(45, 1738, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveBackward") < 0)) __PYX_ERR(45, 1738, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveBackward", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1738, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveBackward", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1738, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1738, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_416solveBackward(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_416solveBackward(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveBackward", 0); + + /* "petsc4py/PETSc/Mat.pyx":1739 + * + * def solveBackward(self, Vec b, Vec x): + * CHKERR( MatBackwardSolve(self.mat, b.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def solve(self, Vec b, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatBackwardSolve(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1739, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1738 + * CHKERR( MatForwardSolve(self.mat, b.vec, x.vec) ) + * + * def solveBackward(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatBackwardSolve(self.mat, b.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveBackward", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1741 + * CHKERR( MatBackwardSolve(self.mat, b.vec, x.vec) ) + * + * def solve(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolve(self.mat, b.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_419solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_418solve[] = "Mat.solve(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_419solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solve", 1, 2, 2, 1); __PYX_ERR(45, 1741, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solve") < 0)) __PYX_ERR(45, 1741, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1741, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1741, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1741, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_418solve(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_418solve(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solve", 0); + + /* "petsc4py/PETSc/Mat.pyx":1742 + * + * def solve(self, Vec b, Vec x): + * CHKERR( MatSolve(self.mat, b.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def solveTranspose(self, Vec b, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolve(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1742, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1741 + * CHKERR( MatBackwardSolve(self.mat, b.vec, x.vec) ) + * + * def solve(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolve(self.mat, b.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1744 + * CHKERR( MatSolve(self.mat, b.vec, x.vec) ) + * + * def solveTranspose(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveTranspose(self.mat, b.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_421solveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_420solveTranspose[] = "Mat.solveTranspose(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_421solveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveTranspose", 1, 2, 2, 1); __PYX_ERR(45, 1744, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveTranspose") < 0)) __PYX_ERR(45, 1744, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1744, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1744, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1744, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_420solveTranspose(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_420solveTranspose(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveTranspose", 0); + + /* "petsc4py/PETSc/Mat.pyx":1745 + * + * def solveTranspose(self, Vec b, Vec x): + * CHKERR( MatSolveTranspose(self.mat, b.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def solveAdd(self, Vec b, Vec y, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveTranspose(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1745, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1744 + * CHKERR( MatSolve(self.mat, b.vec, x.vec) ) + * + * def solveTranspose(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveTranspose(self.mat, b.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1747 + * CHKERR( MatSolveTranspose(self.mat, b.vec, x.vec) ) + * + * def solveAdd(self, Vec b, Vec y, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveAdd(self.mat, b.vec, y.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_423solveAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_422solveAdd[] = "Mat.solveAdd(self, Vec b, Vec y, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_423solveAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveAdd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_y,&__pyx_n_s_x,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveAdd", 1, 3, 3, 1); __PYX_ERR(45, 1747, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveAdd", 1, 3, 3, 2); __PYX_ERR(45, 1747, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveAdd") < 0)) __PYX_ERR(45, 1747, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveAdd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1747, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1747, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1747, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1747, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_422solveAdd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_y, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_422solveAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_y, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveAdd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1748 + * + * def solveAdd(self, Vec b, Vec y, Vec x): + * CHKERR( MatSolveAdd(self.mat, b.vec, y.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def solveTransposeAdd(self, Vec b, Vec y, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveAdd(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_y->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1748, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1747 + * CHKERR( MatSolveTranspose(self.mat, b.vec, x.vec) ) + * + * def solveAdd(self, Vec b, Vec y, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveAdd(self.mat, b.vec, y.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1750 + * CHKERR( MatSolveAdd(self.mat, b.vec, y.vec, x.vec) ) + * + * def solveTransposeAdd(self, Vec b, Vec y, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveTransposeAdd(self.mat, b.vec, y.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_425solveTransposeAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_424solveTransposeAdd[] = "Mat.solveTransposeAdd(self, Vec b, Vec y, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_425solveTransposeAdd(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveTransposeAdd (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_y,&__pyx_n_s_x,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveTransposeAdd", 1, 3, 3, 1); __PYX_ERR(45, 1750, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveTransposeAdd", 1, 3, 3, 2); __PYX_ERR(45, 1750, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveTransposeAdd") < 0)) __PYX_ERR(45, 1750, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + __pyx_v_x = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveTransposeAdd", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1750, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveTransposeAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(45, 1750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(45, 1750, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(45, 1750, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_424solveTransposeAdd(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_b, __pyx_v_y, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_424solveTransposeAdd(struct PyPetscMatObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_y, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveTransposeAdd", 0); + + /* "petsc4py/PETSc/Mat.pyx":1751 + * + * def solveTransposeAdd(self, Vec b, Vec y, Vec x): + * CHKERR( MatSolveTransposeAdd(self.mat, b.vec, y.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def matSolve(self, Mat B, Mat X): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveTransposeAdd(__pyx_v_self->mat, __pyx_v_b->vec, __pyx_v_y->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1751, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1750 + * CHKERR( MatSolveAdd(self.mat, b.vec, y.vec, x.vec) ) + * + * def solveTransposeAdd(self, Vec b, Vec y, Vec x): # <<<<<<<<<<<<<< + * CHKERR( MatSolveTransposeAdd(self.mat, b.vec, y.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.solveTransposeAdd", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1753 + * CHKERR( MatSolveTransposeAdd(self.mat, b.vec, y.vec, x.vec) ) + * + * def matSolve(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( MatMatSolve(self.mat, B.mat, X.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_427matSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_426matSolve[] = "Mat.matSolve(self, Mat B, Mat X)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_427matSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_B = 0; + struct PyPetscMatObject *__pyx_v_X = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matSolve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_B,&__pyx_n_s_X,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_X)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("matSolve", 1, 2, 2, 1); __PYX_ERR(45, 1753, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matSolve") < 0)) __PYX_ERR(45, 1753, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_B = ((struct PyPetscMatObject *)values[0]); + __pyx_v_X = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matSolve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1753, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_B), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "B", 0))) __PYX_ERR(45, 1753, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "X", 0))) __PYX_ERR(45, 1753, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_426matSolve(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_B, __pyx_v_X); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_426matSolve(struct PyPetscMatObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matSolve", 0); + + /* "petsc4py/PETSc/Mat.pyx":1754 + * + * def matSolve(self, Mat B, Mat X): + * CHKERR( MatMatSolve(self.mat, B.mat, X.mat) ) # <<<<<<<<<<<<<< + * + * # dense matrices + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMatSolve(__pyx_v_self->mat, __pyx_v_B->mat, __pyx_v_X->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1754, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1753 + * CHKERR( MatSolveTransposeAdd(self.mat, b.vec, y.vec, x.vec) ) + * + * def matSolve(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( MatMatSolve(self.mat, B.mat, X.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.matSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1758 + * # dense matrices + * + * def setDenseLDA(self, lda): # <<<<<<<<<<<<<< + * cdef PetscInt _ilda = asInt(lda) + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_429setDenseLDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_428setDenseLDA[] = "Mat.setDenseLDA(self, lda)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_429setDenseLDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_lda = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDenseLDA (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lda,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lda)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDenseLDA") < 0)) __PYX_ERR(45, 1758, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_lda = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDenseLDA", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1758, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDenseLDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_428setDenseLDA(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_lda); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_428setDenseLDA(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_lda) { + PetscInt __pyx_v__ilda; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDenseLDA", 0); + + /* "petsc4py/PETSc/Mat.pyx":1759 + * + * def setDenseLDA(self, lda): + * cdef PetscInt _ilda = asInt(lda) # <<<<<<<<<<<<<< + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_lda); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1759, __pyx_L1_error) + __pyx_v__ilda = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1760 + * def setDenseLDA(self, lda): + * cdef PetscInt _ilda = asInt(lda) + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) # <<<<<<<<<<<<<< + * + * def getDenseLDA(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseSetLDA(__pyx_v_self->mat, __pyx_v__ilda)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1760, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1758 + * # dense matrices + * + * def setDenseLDA(self, lda): # <<<<<<<<<<<<<< + * cdef PetscInt _ilda = asInt(lda) + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDenseLDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1762 + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) + * + * def getDenseLDA(self): # <<<<<<<<<<<<<< + * cdef PetscInt lda=0 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_431getDenseLDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_430getDenseLDA[] = "Mat.getDenseLDA(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_431getDenseLDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDenseLDA (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDenseLDA", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDenseLDA", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_430getDenseLDA(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_430getDenseLDA(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_lda; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDenseLDA", 0); + + /* "petsc4py/PETSc/Mat.pyx":1763 + * + * def getDenseLDA(self): + * cdef PetscInt lda=0 # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * return toInt(lda) + */ + __pyx_v_lda = 0; + + /* "petsc4py/PETSc/Mat.pyx":1764 + * def getDenseLDA(self): + * cdef PetscInt lda=0 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) # <<<<<<<<<<<<<< + * return toInt(lda) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetLDA(__pyx_v_self->mat, (&__pyx_v_lda))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1764, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1765 + * cdef PetscInt lda=0 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * return toInt(lda) # <<<<<<<<<<<<<< + * + * def getDenseArray(self,readonly=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_lda); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1762 + * CHKERR( MatDenseSetLDA(self.mat, _ilda) ) + * + * def getDenseLDA(self): # <<<<<<<<<<<<<< + * cdef PetscInt lda=0 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseLDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1767 + * return toInt(lda) + * + * def getDenseArray(self,readonly=False): # <<<<<<<<<<<<<< + * cdef PetscInt m=0, N=0, lda=0 + * cdef PetscScalar *data = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_433getDenseArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_432getDenseArray[] = "Mat.getDenseArray(self, readonly=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_433getDenseArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_readonly = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDenseArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_readonly,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_readonly); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getDenseArray") < 0)) __PYX_ERR(45, 1767, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_readonly = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getDenseArray", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1767, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_432getDenseArray(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_readonly); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_432getDenseArray(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_readonly) { + PetscInt __pyx_v_m; + PetscInt __pyx_v_N; + PetscInt __pyx_v_lda; + PetscScalar *__pyx_v_data; + int __pyx_v_typenum; + int __pyx_v_itemsize; + int __pyx_v_flags; + npy_intp __pyx_v_dims[2]; + npy_intp __pyx_v_strides[2]; + PyObject *__pyx_v_array = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDenseArray", 0); + + /* "petsc4py/PETSc/Mat.pyx":1768 + * + * def getDenseArray(self,readonly=False): + * cdef PetscInt m=0, N=0, lda=0 # <<<<<<<<<<<<<< + * cdef PetscScalar *data = NULL + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + */ + __pyx_v_m = 0; + __pyx_v_N = 0; + __pyx_v_lda = 0; + + /* "petsc4py/PETSc/Mat.pyx":1769 + * def getDenseArray(self,readonly=False): + * cdef PetscInt m=0, N=0, lda=0 + * cdef PetscScalar *data = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + */ + __pyx_v_data = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1770 + * cdef PetscInt m=0, N=0, lda=0 + * cdef PetscScalar *data = NULL + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetLocalSize(__pyx_v_self->mat, (&__pyx_v_m), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1770, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1771 + * cdef PetscScalar *data = NULL + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatGetSize(self.mat, NULL, &N) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * if readonly: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetSize(__pyx_v_self->mat, NULL, (&__pyx_v_N))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1771, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1772 + * CHKERR( MatGetLocalSize(self.mat, &m, NULL) ) + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) # <<<<<<<<<<<<<< + * if readonly: + * CHKERR( MatDenseGetArrayRead(self.mat, &data) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetLDA(__pyx_v_self->mat, (&__pyx_v_lda))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1772, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1773 + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayRead(self.mat, &data) ) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1773, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1774 + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * if readonly: + * CHKERR( MatDenseGetArrayRead(self.mat, &data) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseGetArray(self.mat, &data) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetArrayRead(__pyx_v_self->mat, ((PetscScalar const **)(&__pyx_v_data)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1774, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1773 + * CHKERR( MatGetSize(self.mat, NULL, &N) ) + * CHKERR( MatDenseGetLDA(self.mat, &lda) ) + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayRead(self.mat, &data) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1776 + * CHKERR( MatDenseGetArrayRead(self.mat, &data) ) + * else: + * CHKERR( MatDenseGetArray(self.mat, &data) ) # <<<<<<<<<<<<<< + * cdef int typenum = NPY_PETSC_SCALAR + * cdef int itemsize = sizeof(PetscScalar) + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetArray(__pyx_v_self->mat, (&__pyx_v_data))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1776, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1777 + * else: + * CHKERR( MatDenseGetArray(self.mat, &data) ) + * cdef int typenum = NPY_PETSC_SCALAR # <<<<<<<<<<<<<< + * cdef int itemsize = sizeof(PetscScalar) + * cdef int flags = NPY_ARRAY_FARRAY + */ + __pyx_v_typenum = NPY_PETSC_SCALAR; + + /* "petsc4py/PETSc/Mat.pyx":1778 + * CHKERR( MatDenseGetArray(self.mat, &data) ) + * cdef int typenum = NPY_PETSC_SCALAR + * cdef int itemsize = sizeof(PetscScalar) # <<<<<<<<<<<<<< + * cdef int flags = NPY_ARRAY_FARRAY + * cdef npy_intp dims[2], strides[2] + */ + __pyx_v_itemsize = ((int)(sizeof(PetscScalar))); + + /* "petsc4py/PETSc/Mat.pyx":1779 + * cdef int typenum = NPY_PETSC_SCALAR + * cdef int itemsize = sizeof(PetscScalar) + * cdef int flags = NPY_ARRAY_FARRAY # <<<<<<<<<<<<<< + * cdef npy_intp dims[2], strides[2] + * dims[0] = m; strides[0] = sizeof(PetscScalar); + */ + __pyx_v_flags = NPY_ARRAY_FARRAY; + + /* "petsc4py/PETSc/Mat.pyx":1781 + * cdef int flags = NPY_ARRAY_FARRAY + * cdef npy_intp dims[2], strides[2] + * dims[0] = m; strides[0] = sizeof(PetscScalar); # <<<<<<<<<<<<<< + * dims[1] = N; strides[1] = (lda*sizeof(PetscScalar)); + * array = PyArray_New(ndarray, 2, dims, typenum, + */ + (__pyx_v_dims[0]) = ((npy_intp)__pyx_v_m); + (__pyx_v_strides[0]) = ((npy_intp)(sizeof(PetscScalar))); + + /* "petsc4py/PETSc/Mat.pyx":1782 + * cdef npy_intp dims[2], strides[2] + * dims[0] = m; strides[0] = sizeof(PetscScalar); + * dims[1] = N; strides[1] = (lda*sizeof(PetscScalar)); # <<<<<<<<<<<<<< + * array = PyArray_New(ndarray, 2, dims, typenum, + * strides, data, itemsize, flags, NULL) + */ + (__pyx_v_dims[1]) = ((npy_intp)__pyx_v_N); + (__pyx_v_strides[1]) = ((npy_intp)(__pyx_v_lda * (sizeof(PetscScalar)))); + + /* "petsc4py/PETSc/Mat.pyx":1783 + * dims[0] = m; strides[0] = sizeof(PetscScalar); + * dims[1] = N; strides[1] = (lda*sizeof(PetscScalar)); + * array = PyArray_New(ndarray, 2, dims, typenum, # <<<<<<<<<<<<<< + * strides, data, itemsize, flags, NULL) + * if readonly: + */ + __pyx_t_3 = ((PyObject *)PyArray_New(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_ndarray), 2, __pyx_v_dims, __pyx_v_typenum, __pyx_v_strides, __pyx_v_data, __pyx_v_itemsize, __pyx_v_flags, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_t_3; + __Pyx_INCREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_array = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1785 + * array = PyArray_New(ndarray, 2, dims, typenum, + * strides, data, itemsize, flags, NULL) + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreArrayRead(self.mat, &data) ) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_readonly); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1785, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1786 + * strides, data, itemsize, flags, NULL) + * if readonly: + * CHKERR( MatDenseRestoreArrayRead(self.mat, &data) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseRestoreArray(self.mat, &data) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreArrayRead(__pyx_v_self->mat, ((PetscScalar const **)(&__pyx_v_data)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1786, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1785 + * array = PyArray_New(ndarray, 2, dims, typenum, + * strides, data, itemsize, flags, NULL) + * if readonly: # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreArrayRead(self.mat, &data) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/Mat.pyx":1788 + * CHKERR( MatDenseRestoreArrayRead(self.mat, &data) ) + * else: + * CHKERR( MatDenseRestoreArray(self.mat, &data) ) # <<<<<<<<<<<<<< + * return array + * + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreArray(__pyx_v_self->mat, (&__pyx_v_data))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1788, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/Mat.pyx":1789 + * else: + * CHKERR( MatDenseRestoreArray(self.mat, &data) ) + * return array # <<<<<<<<<<<<<< + * + * def getDenseLocalMatrix(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_array); + __pyx_r = __pyx_v_array; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1767 + * return toInt(lda) + * + * def getDenseArray(self,readonly=False): # <<<<<<<<<<<<<< + * cdef PetscInt m=0, N=0, lda=0 + * cdef PetscScalar *data = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_array); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1791 + * return array + * + * def getDenseLocalMatrix(self): # <<<<<<<<<<<<<< + * cdef Mat mat = type(self)() + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_435getDenseLocalMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_434getDenseLocalMatrix[] = "Mat.getDenseLocalMatrix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_435getDenseLocalMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDenseLocalMatrix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDenseLocalMatrix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDenseLocalMatrix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_434getDenseLocalMatrix(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_434getDenseLocalMatrix(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDenseLocalMatrix", 0); + + /* "petsc4py/PETSc/Mat.pyx":1792 + * + * def getDenseLocalMatrix(self): + * cdef Mat mat = type(self)() # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 1792, __pyx_L1_error) + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1793 + * def getDenseLocalMatrix(self): + * cdef Mat mat = type(self)() + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetLocalMatrix(__pyx_v_self->mat, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1793, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1794 + * cdef Mat mat = type(self)() + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1795 + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def getDenseColumnVec(self, i, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1791 + * return array + * + * def getDenseLocalMatrix(self): # <<<<<<<<<<<<<< + * cdef Mat mat = type(self)() + * CHKERR( MatDenseGetLocalMatrix(self.mat, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseLocalMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1797 + * return mat + * + * def getDenseColumnVec(self, i, mode='rw'): # <<<<<<<<<<<<<< + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_437getDenseColumnVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_436getDenseColumnVec[] = "Mat.getDenseColumnVec(self, i, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_437getDenseColumnVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_i = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDenseColumnVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getDenseColumnVec") < 0)) __PYX_ERR(45, 1797, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_i = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getDenseColumnVec", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1797, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseColumnVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_436getDenseColumnVec(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_i, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_436getDenseColumnVec(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_mode) { + struct PyPetscVecObject *__pyx_v_v = 0; + PetscInt __pyx_v__i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDenseColumnVec", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Mat.pyx":1798 + * + * def getDenseColumnVec(self, i, mode='rw'): + * if mode is None: mode = 'rw' # <<<<<<<<<<<<<< + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_n_s_rw); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_n_s_rw); + } + + /* "petsc4py/PETSc/Mat.pyx":1799 + * def getDenseColumnVec(self, i, mode='rw'): + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * cdef Vec v = Vec() + */ + __Pyx_INCREF(__pyx_v_mode); + __pyx_t_3 = __pyx_v_mode; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_rw, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1799, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1799, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_w, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1799, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Mat.pyx":1800 + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * cdef Vec v = Vec() + * cdef PetscInt _i = asInt(i) + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1800, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(45, 1800, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1799 + * def getDenseColumnVec(self, i, mode='rw'): + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * cdef Vec v = Vec() + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1801 + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * cdef Vec v = Vec() # <<<<<<<<<<<<<< + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_v = ((struct PyPetscVecObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1802 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * cdef Vec v = Vec() + * cdef PetscInt _i = asInt(i) # <<<<<<<<<<<<<< + * if mode == 'rw': + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_i); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1802, __pyx_L1_error) + __pyx_v__i = __pyx_t_4; + + /* "petsc4py/PETSc/Mat.pyx":1803 + * cdef Vec v = Vec() + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + * elif mode == 'r': + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_rw, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1803, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1804 + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) # <<<<<<<<<<<<<< + * elif mode == 'r': + * CHKERR( MatDenseGetColumnVecRead(self.mat, _i, &v.vec) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetColumnVec(__pyx_v_self->mat, __pyx_v__i, (&__pyx_v_v->vec))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1804, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1803 + * cdef Vec v = Vec() + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + * elif mode == 'r': + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Mat.pyx":1805 + * if mode == 'rw': + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetColumnVecRead(self.mat, _i, &v.vec) ) + * else: + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1805, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1806 + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + * elif mode == 'r': + * CHKERR( MatDenseGetColumnVecRead(self.mat, _i, &v.vec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseGetColumnVecWrite(self.mat, _i, &v.vec) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetColumnVecRead(__pyx_v_self->mat, __pyx_v__i, (&__pyx_v_v->vec))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1806, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1805 + * if mode == 'rw': + * CHKERR( MatDenseGetColumnVec(self.mat, _i, &v.vec) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetColumnVecRead(self.mat, _i, &v.vec) ) + * else: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/Mat.pyx":1808 + * CHKERR( MatDenseGetColumnVecRead(self.mat, _i, &v.vec) ) + * else: + * CHKERR( MatDenseGetColumnVecWrite(self.mat, _i, &v.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(v.obj) + * return v + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetColumnVecWrite(__pyx_v_self->mat, __pyx_v__i, (&__pyx_v_v->vec))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1808, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/Mat.pyx":1809 + * else: + * CHKERR( MatDenseGetColumnVecWrite(self.mat, _i, &v.vec) ) + * PetscINCREF(v.obj) # <<<<<<<<<<<<<< + * return v + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_v->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1810 + * CHKERR( MatDenseGetColumnVecWrite(self.mat, _i, &v.vec) ) + * PetscINCREF(v.obj) + * return v # <<<<<<<<<<<<<< + * + * def restoreDenseColumnVec(self, i, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_v)); + __pyx_r = ((PyObject *)__pyx_v_v); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1797 + * return mat + * + * def getDenseColumnVec(self, i, mode='rw'): # <<<<<<<<<<<<<< + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDenseColumnVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_v); + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1812 + * return v + * + * def restoreDenseColumnVec(self, i, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_439restoreDenseColumnVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_438restoreDenseColumnVec[] = "Mat.restoreDenseColumnVec(self, i, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_439restoreDenseColumnVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_i = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreDenseColumnVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_mode,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreDenseColumnVec") < 0)) __PYX_ERR(45, 1812, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_i = values[0]; + __pyx_v_mode = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreDenseColumnVec", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1812, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreDenseColumnVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_438restoreDenseColumnVec(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_i, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_438restoreDenseColumnVec(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_mode) { + PetscInt __pyx_v__i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreDenseColumnVec", 0); + + /* "petsc4py/PETSc/Mat.pyx":1813 + * + * def restoreDenseColumnVec(self, i, mode='rw'): + * cdef PetscInt _i = asInt(i) # <<<<<<<<<<<<<< + * if mode == 'rw': + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_i); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1813, __pyx_L1_error) + __pyx_v__i = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":1814 + * def restoreDenseColumnVec(self, i, mode='rw'): + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + * elif mode == 'r': + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_rw, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1814, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1815 + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) # <<<<<<<<<<<<<< + * elif mode == 'r': + * CHKERR( MatDenseRestoreColumnVecRead(self.mat, _i, NULL) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreColumnVec(__pyx_v_self->mat, __pyx_v__i, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1815, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1814 + * def restoreDenseColumnVec(self, i, mode='rw'): + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + * elif mode == 'r': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1816 + * if mode == 'rw': + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreColumnVecRead(self.mat, _i, NULL) ) + * else: + */ + __pyx_t_2 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 1816, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":1817 + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + * elif mode == 'r': + * CHKERR( MatDenseRestoreColumnVecRead(self.mat, _i, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseRestoreColumnVecWrite(self.mat, _i, NULL) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreColumnVecRead(__pyx_v_self->mat, __pyx_v__i, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1817, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1816 + * if mode == 'rw': + * CHKERR( MatDenseRestoreColumnVec(self.mat, _i, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreColumnVecRead(self.mat, _i, NULL) ) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":1819 + * CHKERR( MatDenseRestoreColumnVecRead(self.mat, _i, NULL) ) + * else: + * CHKERR( MatDenseRestoreColumnVecWrite(self.mat, _i, NULL) ) # <<<<<<<<<<<<<< + * + * # Nest + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreColumnVecWrite(__pyx_v_self->mat, __pyx_v__i, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1819, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":1812 + * return v + * + * def restoreDenseColumnVec(self, i, mode='rw'): # <<<<<<<<<<<<<< + * cdef PetscInt _i = asInt(i) + * if mode == 'rw': + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.restoreDenseColumnVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1823 + * # Nest + * + * def getNestSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt nrows, ncols + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_441getNestSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_440getNestSize[] = "Mat.getNestSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_441getNestSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNestSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNestSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNestSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_440getNestSize(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_440getNestSize(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_nrows; + PetscInt __pyx_v_ncols; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNestSize", 0); + + /* "petsc4py/PETSc/Mat.pyx":1825 + * def getNestSize(self): + * cdef PetscInt nrows, ncols + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) # <<<<<<<<<<<<<< + * return toInt(nrows), toInt(ncols) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetSize(__pyx_v_self->mat, (&__pyx_v_nrows), (&__pyx_v_ncols))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1825, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1826 + * cdef PetscInt nrows, ncols + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * return toInt(nrows), toInt(ncols) # <<<<<<<<<<<<<< + * + * def getNestISs(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nrows); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ncols); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 1826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1823 + * # Nest + * + * def getNestSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt nrows, ncols + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNestSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1828 + * return toInt(nrows), toInt(ncols) + * + * def getNestISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_443getNestISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_442getNestISs[] = "Mat.getNestISs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_443getNestISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNestISs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNestISs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNestISs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_442getNestISs(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_442getNestISs(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_nrows; + PetscInt __pyx_v_ncols; + IS *__pyx_v_cisrows; + IS *__pyx_v_ciscols; + CYTHON_UNUSED PyObject *__pyx_v_tmpr = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmpc = 0; + PyObject *__pyx_v_isetsrows = 0; + PyObject *__pyx_v_isetscols = 0; + PetscInt __pyx_8genexpr4__pyx_v_i; + PetscInt __pyx_8genexpr5__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNestISs", 0); + + /* "petsc4py/PETSc/Mat.pyx":1829 + * + * def getNestISs(self): + * cdef PetscInt i, nrows =0, ncols = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + */ + __pyx_v_nrows = 0; + __pyx_v_ncols = 0; + + /* "petsc4py/PETSc/Mat.pyx":1830 + * def getNestISs(self): + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + */ + __pyx_v_cisrows = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1831 + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL # <<<<<<<<<<<<<< + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + */ + __pyx_v_ciscols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1832 + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) # <<<<<<<<<<<<<< + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetSize(__pyx_v_self->mat, (&__pyx_v_nrows), (&__pyx_v_ncols))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1832, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1833 + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) # <<<<<<<<<<<<<< + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetISs(self.mat, cisrows, ciscols) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nrows)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_cisrows)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmpr = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1834 + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) # <<<<<<<<<<<<<< + * CHKERR( MatNestGetISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ncols)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_ciscols)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_tmpc = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1835 + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetISs(self.mat, cisrows, ciscols) ) # <<<<<<<<<<<<<< + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetISs(__pyx_v_self->mat, __pyx_v_cisrows, __pyx_v_ciscols)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1835, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1836 + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] # <<<<<<<<<<<<<< + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + * return isetsrows, isetscols + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_v_nrows; + for (__pyx_8genexpr4__pyx_v_i = 0; __pyx_8genexpr4__pyx_v_i < __pyx_t_4; __pyx_8genexpr4__pyx_v_i++) { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_cisrows[__pyx_8genexpr4__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(45, 1836, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } /* exit inner scope */ + __pyx_v_isetsrows = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1837 + * CHKERR( MatNestGetISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] # <<<<<<<<<<<<<< + * return isetsrows, isetscols + * + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_v_ncols; + for (__pyx_8genexpr5__pyx_v_i = 0; __pyx_8genexpr5__pyx_v_i < __pyx_t_4; __pyx_8genexpr5__pyx_v_i++) { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_ciscols[__pyx_8genexpr5__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(45, 1837, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } /* exit inner scope */ + __pyx_v_isetscols = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1838 + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + * return isetsrows, isetscols # <<<<<<<<<<<<<< + * + * def getNestLocalISs(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_isetsrows); + __Pyx_GIVEREF(__pyx_v_isetsrows); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_isetsrows); + __Pyx_INCREF(__pyx_v_isetscols); + __Pyx_GIVEREF(__pyx_v_isetscols); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_isetscols); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1828 + * return toInt(nrows), toInt(ncols) + * + * def getNestISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNestISs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmpr); + __Pyx_XDECREF(__pyx_v_tmpc); + __Pyx_XDECREF(__pyx_v_isetsrows); + __Pyx_XDECREF(__pyx_v_isetscols); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1840 + * return isetsrows, isetscols + * + * def getNestLocalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_445getNestLocalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_444getNestLocalISs[] = "Mat.getNestLocalISs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_445getNestLocalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNestLocalISs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNestLocalISs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNestLocalISs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_444getNestLocalISs(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_444getNestLocalISs(struct PyPetscMatObject *__pyx_v_self) { + PetscInt __pyx_v_nrows; + PetscInt __pyx_v_ncols; + IS *__pyx_v_cisrows; + IS *__pyx_v_ciscols; + CYTHON_UNUSED PyObject *__pyx_v_tmpr = 0; + CYTHON_UNUSED PyObject *__pyx_v_tmpc = 0; + PyObject *__pyx_v_isetsrows = 0; + PyObject *__pyx_v_isetscols = 0; + PetscInt __pyx_8genexpr6__pyx_v_i; + PetscInt __pyx_8genexpr7__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNestLocalISs", 0); + + /* "petsc4py/PETSc/Mat.pyx":1841 + * + * def getNestLocalISs(self): + * cdef PetscInt i, nrows =0, ncols = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + */ + __pyx_v_nrows = 0; + __pyx_v_ncols = 0; + + /* "petsc4py/PETSc/Mat.pyx":1842 + * def getNestLocalISs(self): + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + */ + __pyx_v_cisrows = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1843 + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL # <<<<<<<<<<<<<< + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + */ + __pyx_v_ciscols = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1844 + * cdef PetscIS *cisrows = NULL + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) # <<<<<<<<<<<<<< + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetSize(__pyx_v_self->mat, (&__pyx_v_nrows), (&__pyx_v_ncols))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1844, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1845 + * cdef PetscIS *ciscols = NULL + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) # <<<<<<<<<<<<<< + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetLocalISs(self.mat, cisrows, ciscols) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nrows)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_cisrows)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmpr = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1846 + * CHKERR( MatNestGetSize(self.mat, &nrows, &ncols) ) + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) # <<<<<<<<<<<<<< + * CHKERR( MatNestGetLocalISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_ncols)); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_ciscols)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_tmpc = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1847 + * cdef object tmpr = oarray_p(empty_p(nrows), NULL, &cisrows) + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetLocalISs(self.mat, cisrows, ciscols) ) # <<<<<<<<<<<<<< + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetLocalISs(__pyx_v_self->mat, __pyx_v_cisrows, __pyx_v_ciscols)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1847, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1848 + * cdef object tmpc = oarray_p(empty_p(ncols), NULL, &ciscols) + * CHKERR( MatNestGetLocalISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] # <<<<<<<<<<<<<< + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + * return isetsrows, isetscols + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_v_nrows; + for (__pyx_8genexpr6__pyx_v_i = 0; __pyx_8genexpr6__pyx_v_i < __pyx_t_4; __pyx_8genexpr6__pyx_v_i++) { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_cisrows[__pyx_8genexpr6__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1848, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(45, 1848, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } /* exit inner scope */ + __pyx_v_isetsrows = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1849 + * CHKERR( MatNestGetLocalISs(self.mat, cisrows, ciscols) ) + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] # <<<<<<<<<<<<<< + * return isetsrows, isetscols + * + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_v_ncols; + for (__pyx_8genexpr7__pyx_v_i = 0; __pyx_8genexpr7__pyx_v_i < __pyx_t_4; __pyx_8genexpr7__pyx_v_i++) { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_ciscols[__pyx_8genexpr7__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_3))) __PYX_ERR(45, 1849, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } /* exit inner scope */ + __pyx_v_isetscols = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1850 + * cdef object isetsrows = [ref_IS(cisrows[i]) for i from 0 <= i < nrows] + * cdef object isetscols = [ref_IS(ciscols[i]) for i from 0 <= i < ncols] + * return isetsrows, isetscols # <<<<<<<<<<<<<< + * + * def getNestSubMatrix(self, i, j): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_isetsrows); + __Pyx_GIVEREF(__pyx_v_isetsrows); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_isetsrows); + __Pyx_INCREF(__pyx_v_isetscols); + __Pyx_GIVEREF(__pyx_v_isetscols); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_isetscols); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1840 + * return isetsrows, isetscols + * + * def getNestLocalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, nrows =0, ncols = 0 + * cdef PetscIS *cisrows = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNestLocalISs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmpr); + __Pyx_XDECREF(__pyx_v_tmpc); + __Pyx_XDECREF(__pyx_v_isetsrows); + __Pyx_XDECREF(__pyx_v_isetscols); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1852 + * return isetsrows, isetscols + * + * def getNestSubMatrix(self, i, j): # <<<<<<<<<<<<<< + * cdef Mat submat = Mat() + * cdef PetscInt idxm = asInt(i) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_447getNestSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_446getNestSubMatrix[] = "Mat.getNestSubMatrix(self, i, j)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_447getNestSubMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_i = 0; + PyObject *__pyx_v_j = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNestSubMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,&__pyx_n_s_j,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_j)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getNestSubMatrix", 1, 2, 2, 1); __PYX_ERR(45, 1852, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getNestSubMatrix") < 0)) __PYX_ERR(45, 1852, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_i = values[0]; + __pyx_v_j = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getNestSubMatrix", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1852, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNestSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_446getNestSubMatrix(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_i, __pyx_v_j); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_446getNestSubMatrix(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_i, PyObject *__pyx_v_j) { + struct PyPetscMatObject *__pyx_v_submat = 0; + PetscInt __pyx_v_idxm; + PetscInt __pyx_v_jdxm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNestSubMatrix", 0); + + /* "petsc4py/PETSc/Mat.pyx":1853 + * + * def getNestSubMatrix(self, i, j): + * cdef Mat submat = Mat() # <<<<<<<<<<<<<< + * cdef PetscInt idxm = asInt(i) + * cdef PetscInt jdxm = asInt(j) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_submat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1854 + * def getNestSubMatrix(self, i, j): + * cdef Mat submat = Mat() + * cdef PetscInt idxm = asInt(i) # <<<<<<<<<<<<<< + * cdef PetscInt jdxm = asInt(j) + * CHKERR( MatNestGetSubMat(self.mat, idxm, jdxm, &submat.mat) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_i); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1854, __pyx_L1_error) + __pyx_v_idxm = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1855 + * cdef Mat submat = Mat() + * cdef PetscInt idxm = asInt(i) + * cdef PetscInt jdxm = asInt(j) # <<<<<<<<<<<<<< + * CHKERR( MatNestGetSubMat(self.mat, idxm, jdxm, &submat.mat) ) + * PetscINCREF(submat.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_j); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(45, 1855, __pyx_L1_error) + __pyx_v_jdxm = __pyx_t_2; + + /* "petsc4py/PETSc/Mat.pyx":1856 + * cdef PetscInt idxm = asInt(i) + * cdef PetscInt jdxm = asInt(j) + * CHKERR( MatNestGetSubMat(self.mat, idxm, jdxm, &submat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(submat.obj) + * return submat + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNestGetSubMat(__pyx_v_self->mat, __pyx_v_idxm, __pyx_v_jdxm, (&__pyx_v_submat->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1856, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1857 + * cdef PetscInt jdxm = asInt(j) + * CHKERR( MatNestGetSubMat(self.mat, idxm, jdxm, &submat.mat) ) + * PetscINCREF(submat.obj) # <<<<<<<<<<<<<< + * return submat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_submat->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1858 + * CHKERR( MatNestGetSubMat(self.mat, idxm, jdxm, &submat.mat) ) + * PetscINCREF(submat.obj) + * return submat # <<<<<<<<<<<<<< + * + * # MatIS + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_submat)); + __pyx_r = ((PyObject *)__pyx_v_submat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1852 + * return isetsrows, isetscols + * + * def getNestSubMatrix(self, i, j): # <<<<<<<<<<<<<< + * cdef Mat submat = Mat() + * cdef PetscInt idxm = asInt(i) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getNestSubMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_submat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1862 + * # MatIS + * + * def getISLocalMat(self): # <<<<<<<<<<<<<< + * cdef Mat localmat = type(self)() + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_449getISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_448getISLocalMat[] = "Mat.getISLocalMat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_449getISLocalMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getISLocalMat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getISLocalMat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getISLocalMat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_448getISLocalMat(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_448getISLocalMat(struct PyPetscMatObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_localmat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getISLocalMat", 0); + + /* "petsc4py/PETSc/Mat.pyx":1863 + * + * def getISLocalMat(self): + * cdef Mat localmat = type(self)() # <<<<<<<<<<<<<< + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) + * PetscINCREF(localmat.obj) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(45, 1863, __pyx_L1_error) + __pyx_v_localmat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1864 + * def getISLocalMat(self): + * cdef Mat localmat = type(self)() + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(localmat.obj) + * return localmat + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatISGetLocalMat(__pyx_v_self->mat, (&__pyx_v_localmat->mat))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1864, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1865 + * cdef Mat localmat = type(self)() + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) + * PetscINCREF(localmat.obj) # <<<<<<<<<<<<<< + * return localmat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_localmat->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1866 + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) + * PetscINCREF(localmat.obj) + * return localmat # <<<<<<<<<<<<<< + * + * # DM + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_localmat)); + __pyx_r = ((PyObject *)__pyx_v_localmat); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1862 + * # MatIS + * + * def getISLocalMat(self): # <<<<<<<<<<<<<< + * cdef Mat localmat = type(self)() + * CHKERR( MatISGetLocalMat(self.mat, &localmat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getISLocalMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_localmat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1870 + * # DM + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( MatGetDM(self.mat, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_451getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_450getDM[] = "Mat.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_451getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_450getDM(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_450getDM(struct PyPetscMatObject *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/Mat.pyx":1871 + * + * def getDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetDM(self.mat, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1872 + * def getDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( MatGetDM(self.mat, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetDM(__pyx_v_self->mat, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1872, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1873 + * cdef PetscDM newdm = NULL + * CHKERR( MatGetDM(self.mat, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(45, 1873, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1874 + * CHKERR( MatGetDM(self.mat, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/Mat.pyx":1875 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":1876 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1870 + * # DM + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( MatGetDM(self.mat, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1878 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( MatSetDM(self.mat, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_453setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_452setDM[] = "Mat.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_453setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(45, 1878, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1878, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(45, 1878, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_452setDM(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_452setDM(struct PyPetscMatObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/Mat.pyx":1879 + * + * def setDM(self, DM dm): + * CHKERR( MatSetDM(self.mat, dm.dm) ) # <<<<<<<<<<<<<< + * + * # backward compatibility + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSetDM(__pyx_v_self->mat, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1879, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1878 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( MatSetDM(self.mat, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1888 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_5sizes___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_5sizes___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1889 + * property sizes: + * def __get__(self): + * return self.getSizes() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setSizes(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1888 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1890 + * def __get__(self): + * return self.getSizes() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSizes(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_5sizes_2__set__(((struct PyPetscMatObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3Mat_5sizes_2__set__(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1891 + * return self.getSizes() + * def __set__(self, value): + * self.setSizes(value) # <<<<<<<<<<<<<< + * + * property size: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1890 + * def __get__(self): + * return self.getSizes() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setSizes(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.sizes.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1894 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_4size___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_4size___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1895 + * property size: + * def __get__(self): + * return self.getSize() # <<<<<<<<<<<<<< + * + * property local_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1894 + * + * property size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1898 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10local_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10local_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_10local_size___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10local_size___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1899 + * property local_size: + * def __get__(self): + * return self.getLocalSize() # <<<<<<<<<<<<<< + * + * property block_size: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getLocalSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1898 + * + * property local_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.local_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1902 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10block_size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10block_size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_10block_size___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10block_size___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1903 + * property block_size: + * def __get__(self): + * return self.getBlockSize() # <<<<<<<<<<<<<< + * + * property block_sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1902 + * + * property block_size: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSize() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.block_size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1906 + * + * property block_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11block_sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11block_sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_11block_sizes___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_11block_sizes___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1907 + * property block_sizes: + * def __get__(self): + * return self.getBlockSizes() # <<<<<<<<<<<<<< + * + * property owner_range: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBlockSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1906 + * + * property block_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBlockSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.block_sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1910 + * + * property owner_range: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRange() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11owner_range_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_11owner_range_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_11owner_range___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_11owner_range___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1911 + * property owner_range: + * def __get__(self): + * return self.getOwnershipRange() # <<<<<<<<<<<<<< + * + * property owner_ranges: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOwnershipRange); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1910 + * + * property owner_range: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRange() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.owner_range.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1914 + * + * property owner_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRanges() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_12owner_ranges_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_12owner_ranges_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_12owner_ranges___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_12owner_ranges___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1915 + * property owner_ranges: + * def __get__(self): + * return self.getOwnershipRanges() # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOwnershipRanges); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1914 + * + * property owner_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOwnershipRanges() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.owner_ranges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1920 + * + * property assembled: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isAssembled() + * property symmetric: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9assembled_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9assembled_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_9assembled___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9assembled___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1921 + * property assembled: + * def __get__(self): + * return self.isAssembled() # <<<<<<<<<<<<<< + * property symmetric: + * def __get__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isAssembled); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1921, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1920 + * + * property assembled: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isAssembled() + * property symmetric: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.assembled.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1923 + * return self.isAssembled() + * property symmetric: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isSymmetric() + * property hermitian: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9symmetric_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9symmetric_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_9symmetric___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9symmetric___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1924 + * property symmetric: + * def __get__(self): + * return self.isSymmetric() # <<<<<<<<<<<<<< + * property hermitian: + * def __get__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isSymmetric); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1923 + * return self.isAssembled() + * property symmetric: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isSymmetric() + * property hermitian: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.symmetric.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1926 + * return self.isSymmetric() + * property hermitian: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isHermitian() + * property structsymm: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9hermitian_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_9hermitian_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_9hermitian___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_9hermitian___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1927 + * property hermitian: + * def __get__(self): + * return self.isHermitian() # <<<<<<<<<<<<<< + * property structsymm: + * def __get__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isHermitian); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1926 + * return self.isSymmetric() + * property hermitian: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isHermitian() + * property structsymm: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.hermitian.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1929 + * return self.isHermitian() + * property structsymm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isStructurallySymmetric() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10structsymm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_10structsymm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_10structsymm___get__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_10structsymm___get__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1930 + * property structsymm: + * def __get__(self): + * return self.isStructurallySymmetric() # <<<<<<<<<<<<<< + * + * # TODO Stream + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isStructurallySymmetric); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1929 + * return self.isHermitian() + * property structsymm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.isStructurallySymmetric() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.structsymm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1933 + * + * # TODO Stream + * def __dlpack__(self, stream=-1): # <<<<<<<<<<<<<< + * return self.toDLPack('rw') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_455__dlpack__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_454__dlpack__[] = "Mat.__dlpack__(self, stream=-1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_455__dlpack__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_stream = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dlpack__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stream,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_neg_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stream); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__dlpack__") < 0)) __PYX_ERR(45, 1933, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_stream = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__dlpack__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1933, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__dlpack__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_454__dlpack__(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_stream); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_454__dlpack__(struct PyPetscMatObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_stream) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dlpack__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1934 + * # TODO Stream + * def __dlpack__(self, stream=-1): + * return self.toDLPack('rw') # <<<<<<<<<<<<<< + * + * def __dlpack_device__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_toDLPack); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 1934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_n_s_rw) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_n_s_rw); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1934, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1933 + * + * # TODO Stream + * def __dlpack__(self, stream=-1): # <<<<<<<<<<<<<< + * return self.toDLPack('rw') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__dlpack__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1936 + * return self.toDLPack('rw') + * + * def __dlpack_device__(self): # <<<<<<<<<<<<<< + * (dltype, devId, _, _, _) = mat_get_dlpack_ctx(self) + * return (dltype, devId) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_457__dlpack_device__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_456__dlpack_device__[] = "Mat.__dlpack_device__(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_457__dlpack_device__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dlpack_device__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__dlpack_device__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__dlpack_device__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_456__dlpack_device__(((struct PyPetscMatObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_456__dlpack_device__(struct PyPetscMatObject *__pyx_v_self) { + PyObject *__pyx_v_dltype = NULL; + PyObject *__pyx_v_devId = NULL; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dlpack_device__", 0); + + /* "petsc4py/PETSc/Mat.pyx":1937 + * + * def __dlpack_device__(self): + * (dltype, devId, _, _, _) = mat_get_dlpack_ctx(self) # <<<<<<<<<<<<<< + * return (dltype, devId) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_mat_get_dlpack_ctx(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 1937, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + __pyx_t_4 = PyList_GET_ITEM(sequence, 2); + __pyx_t_5 = PyList_GET_ITEM(sequence, 3); + __pyx_t_6 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(45, 1937, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_2,&__pyx_t_3,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6}; + __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 1937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 5) < 0) __PYX_ERR(45, 1937, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 1937, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_dltype = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_devId = __pyx_t_3; + __pyx_t_3 = 0; + __pyx_v__ = __pyx_t_4; + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_5); + __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v__, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1938 + * def __dlpack_device__(self): + * (dltype, devId, _, _, _) = mat_get_dlpack_ctx(self) + * return (dltype, devId) # <<<<<<<<<<<<<< + * + * def toDLPack(self, mode='rw'): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 1938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_dltype); + __Pyx_GIVEREF(__pyx_v_dltype); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_dltype); + __Pyx_INCREF(__pyx_v_devId); + __Pyx_GIVEREF(__pyx_v_devId); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_devId); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1936 + * return self.toDLPack('rw') + * + * def __dlpack_device__(self): # <<<<<<<<<<<<<< + * (dltype, devId, _, _, _) = mat_get_dlpack_ctx(self) + * return (dltype, devId) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.__dlpack_device__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dltype); + __Pyx_XDECREF(__pyx_v_devId); + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":1940 + * return (dltype, devId) + * + * def toDLPack(self, mode='rw'): # <<<<<<<<<<<<<< + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_459toDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3Mat_458toDLPack[] = "Mat.toDLPack(self, mode='rw')"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3Mat_459toDLPack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("toDLPack (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mode,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_n_s_rw); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "toDLPack") < 0)) __PYX_ERR(45, 1940, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mode = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("toDLPack", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 1940, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Mat.toDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3Mat_458toDLPack(((struct PyPetscMatObject *)__pyx_v_self), __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3Mat_458toDLPack(struct PyPetscMatObject *__pyx_v_self, PyObject *__pyx_v_mode) { + int64_t __pyx_v_ndim; + PyObject *__pyx_v_device_type = NULL; + PyObject *__pyx_v_device_id = NULL; + PyObject *__pyx_v_shape = NULL; + PyObject *__pyx_v_strides = NULL; + PyObject *__pyx_v_hostmem = NULL; + struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *__pyx_v_dlm_tensor; + struct __pyx_t_8petsc4py_5PETSc_DLTensor *__pyx_v_dl_tensor; + PetscScalar *__pyx_v_a; + int64_t *__pyx_v_shape_strides; + __pyx_t_8petsc4py_5PETSc_DLContext *__pyx_v_ctx; + PyObject *__pyx_v_i = NULL; + struct __pyx_t_8petsc4py_5PETSc_DLDataType *__pyx_v_dtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + int64_t __pyx_t_11; + PetscErrorCode __pyx_t_12; + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __pyx_t_13; + int __pyx_t_14; + Py_ssize_t __pyx_t_15; + PyObject *(*__pyx_t_16)(PyObject *); + Py_ssize_t __pyx_t_17; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("toDLPack", 0); + __Pyx_INCREF(__pyx_v_mode); + + /* "petsc4py/PETSc/Mat.pyx":1941 + * + * def toDLPack(self, mode='rw'): + * if mode is None: mode = 'rw' # <<<<<<<<<<<<<< + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + */ + __pyx_t_1 = (__pyx_v_mode == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_n_s_rw); + __Pyx_DECREF_SET(__pyx_v_mode, __pyx_n_s_rw); + } + + /* "petsc4py/PETSc/Mat.pyx":1942 + * def toDLPack(self, mode='rw'): + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + */ + __Pyx_INCREF(__pyx_v_mode); + __pyx_t_3 = __pyx_v_mode; + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_rw, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1942, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_r, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1942, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_t_3, __pyx_n_s_w, Py_NE)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1942, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L5_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = (__pyx_t_2 != 0); + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Mat.pyx":1943 + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * + * cdef int64_t ndim = 0 + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(45, 1943, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1942 + * def toDLPack(self, mode='rw'): + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: # <<<<<<<<<<<<<< + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + */ + } + + /* "petsc4py/PETSc/Mat.pyx":1945 + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") + * + * cdef int64_t ndim = 0 # <<<<<<<<<<<<<< + * (device_type, device_id, ndim, shape, strides) = mat_get_dlpack_ctx(self) + * hostmem = (device_type == kDLCPU) + */ + __pyx_v_ndim = 0; + + /* "petsc4py/PETSc/Mat.pyx":1946 + * + * cdef int64_t ndim = 0 + * (device_type, device_id, ndim, shape, strides) = mat_get_dlpack_ctx(self) # <<<<<<<<<<<<<< + * hostmem = (device_type == kDLCPU) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_mat_get_dlpack_ctx(__pyx_v_self); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 5)) { + if (size > 5) __Pyx_RaiseTooManyValuesError(5); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(45, 1946, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 4); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + __pyx_t_6 = PyList_GET_ITEM(sequence, 2); + __pyx_t_7 = PyList_GET_ITEM(sequence, 3); + __pyx_t_8 = PyList_GET_ITEM(sequence, 4); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + { + Py_ssize_t i; + PyObject** temps[5] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + for (i=0; i < 5; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(45, 1946, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[5] = {&__pyx_t_4,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7,&__pyx_t_8}; + __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(45, 1946, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + for (index=0; index < 5; index++) { + PyObject* item = __pyx_t_10(__pyx_t_9); if (unlikely(!item)) goto __pyx_L8_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 5) < 0) __PYX_ERR(45, 1946, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_unpacking_done; + __pyx_L8_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(45, 1946, __pyx_L1_error) + __pyx_L9_unpacking_done:; + } + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_6); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(45, 1946, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_device_type = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_device_id = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_ndim = __pyx_t_11; + __pyx_v_shape = __pyx_t_7; + __pyx_t_7 = 0; + __pyx_v_strides = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1947 + * cdef int64_t ndim = 0 + * (device_type, device_id, ndim, shape, strides) = mat_get_dlpack_ctx(self) + * hostmem = (device_type == kDLCPU) # <<<<<<<<<<<<<< + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + */ + __pyx_t_3 = __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_e_8petsc4py_5PETSc_kDLCPU); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1947, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PyObject_RichCompare(__pyx_v_device_type, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 1947, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_hostmem = __pyx_t_8; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1949 + * hostmem = (device_type == kDLCPU) + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) # <<<<<<<<<<<<<< + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL + */ + __pyx_v_dlm_tensor = ((struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor *)malloc((sizeof(struct __pyx_t_8petsc4py_5PETSc_DLManagedTensor)))); + + /* "petsc4py/PETSc/Mat.pyx":1950 + * + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor # <<<<<<<<<<<<<< + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL + */ + __pyx_v_dl_tensor = (&__pyx_v_dlm_tensor->dl_tensor); + + /* "petsc4py/PETSc/Mat.pyx":1951 + * cdef DLManagedTensor* dlm_tensor = malloc(sizeof(DLManagedTensor)) + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL # <<<<<<<<<<<<<< + * cdef int64_t* shape_strides = NULL + * dl_tensor.byte_offset = 0 + */ + __pyx_v_a = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1952 + * cdef DLTensor* dl_tensor = &dlm_tensor.dl_tensor + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL # <<<<<<<<<<<<<< + * dl_tensor.byte_offset = 0 + * + */ + __pyx_v_shape_strides = NULL; + + /* "petsc4py/PETSc/Mat.pyx":1953 + * cdef PetscScalar *a = NULL + * cdef int64_t* shape_strides = NULL + * dl_tensor.byte_offset = 0 # <<<<<<<<<<<<<< + * + * # DLPack does not currently play well with our get/restore model + */ + __pyx_v_dl_tensor->byte_offset = 0; + + /* "petsc4py/PETSc/Mat.pyx":1959 + * # and not modify memory requested with read access + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_w, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1959, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1960 + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayWrite(self.mat, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1960, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1961 + * if mode == 'w': + * if hostmem: + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreArrayWrite(self.mat, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetArrayWrite(__pyx_v_self->mat, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1961, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1962 + * if hostmem: + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayWrite(self.mat, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseCUDAGetArrayWrite(self.mat, &a) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreArrayWrite(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1962, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1960 + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayWrite(self.mat, NULL) ) + */ + goto __pyx_L11; + } + + /* "petsc4py/PETSc/Mat.pyx":1964 + * CHKERR( MatDenseRestoreArrayWrite(self.mat, NULL) ) + * else: + * CHKERR( MatDenseCUDAGetArrayWrite(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) + * elif mode == 'r': + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDAGetArrayWrite(__pyx_v_self->mat, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1964, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1965 + * else: + * CHKERR( MatDenseCUDAGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) # <<<<<<<<<<<<<< + * elif mode == 'r': + * if hostmem: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDARestoreArrayWrite(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1965, __pyx_L1_error) + } + __pyx_L11:; + + /* "petsc4py/PETSc/Mat.pyx":1959 + * # and not modify memory requested with read access + * # By restoring now, we guarantee the sanity of the ObjectState + * if mode == 'w': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( MatDenseGetArrayWrite(self.mat, &a) ) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/Mat.pyx":1966 + * CHKERR( MatDenseCUDAGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_r, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1966, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1967 + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) + * elif mode == 'r': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayRead(self.mat, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1967, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1968 + * elif mode == 'r': + * if hostmem: + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreArrayRead(self.mat, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetArrayRead(__pyx_v_self->mat, ((PetscScalar const **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1968, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1969 + * if hostmem: + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayRead(self.mat, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseCUDAGetArrayRead(self.mat, &a) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreArrayRead(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1969, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1967 + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) + * elif mode == 'r': + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) + * CHKERR( MatDenseRestoreArrayRead(self.mat, NULL) ) + */ + goto __pyx_L12; + } + + /* "petsc4py/PETSc/Mat.pyx":1971 + * CHKERR( MatDenseRestoreArrayRead(self.mat, NULL) ) + * else: + * CHKERR( MatDenseCUDAGetArrayRead(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseCUDARestoreArrayRead(self.mat, NULL) ) + * else: + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDAGetArrayRead(__pyx_v_self->mat, ((PetscScalar const **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1971, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1972 + * else: + * CHKERR( MatDenseCUDAGetArrayRead(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArrayRead(self.mat, NULL) ) # <<<<<<<<<<<<<< + * else: + * if hostmem: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDARestoreArrayRead(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1972, __pyx_L1_error) + } + __pyx_L12:; + + /* "petsc4py/PETSc/Mat.pyx":1966 + * CHKERR( MatDenseCUDAGetArrayWrite(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArrayWrite(self.mat, NULL) ) + * elif mode == 'r': # <<<<<<<<<<<<<< + * if hostmem: + * CHKERR( MatDenseGetArrayRead(self.mat, &a) ) + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/Mat.pyx":1974 + * CHKERR( MatDenseCUDARestoreArrayRead(self.mat, NULL) ) + * else: + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArray(self.mat, &a) ) + * CHKERR( MatDenseRestoreArray(self.mat, NULL) ) + */ + /*else*/ { + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_hostmem); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(45, 1974, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1975 + * else: + * if hostmem: + * CHKERR( MatDenseGetArray(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseRestoreArray(self.mat, NULL) ) + * else: + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseGetArray(__pyx_v_self->mat, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1975, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1976 + * if hostmem: + * CHKERR( MatDenseGetArray(self.mat, &a) ) + * CHKERR( MatDenseRestoreArray(self.mat, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatDenseCUDAGetArray(self.mat, &a) ) + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseRestoreArray(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1976, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1974 + * CHKERR( MatDenseCUDARestoreArrayRead(self.mat, NULL) ) + * else: + * if hostmem: # <<<<<<<<<<<<<< + * CHKERR( MatDenseGetArray(self.mat, &a) ) + * CHKERR( MatDenseRestoreArray(self.mat, NULL) ) + */ + goto __pyx_L13; + } + + /* "petsc4py/PETSc/Mat.pyx":1978 + * CHKERR( MatDenseRestoreArray(self.mat, NULL) ) + * else: + * CHKERR( MatDenseCUDAGetArray(self.mat, &a) ) # <<<<<<<<<<<<<< + * CHKERR( MatDenseCUDARestoreArray(self.mat, NULL) ) + * dl_tensor.data = a + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDAGetArray(__pyx_v_self->mat, ((PetscScalar **)(&__pyx_v_a)))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1978, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":1979 + * else: + * CHKERR( MatDenseCUDAGetArray(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArray(self.mat, NULL) ) # <<<<<<<<<<<<<< + * dl_tensor.data = a + * + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatDenseCUDARestoreArray(__pyx_v_self->mat, NULL)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 1979, __pyx_L1_error) + } + __pyx_L13:; + } + __pyx_L10:; + + /* "petsc4py/PETSc/Mat.pyx":1980 + * CHKERR( MatDenseCUDAGetArray(self.mat, &a) ) + * CHKERR( MatDenseCUDARestoreArray(self.mat, NULL) ) + * dl_tensor.data = a # <<<<<<<<<<<<<< + * + * cdef DLContext* ctx = &dl_tensor.ctx + */ + __pyx_v_dl_tensor->data = ((void *)__pyx_v_a); + + /* "petsc4py/PETSc/Mat.pyx":1982 + * dl_tensor.data = a + * + * cdef DLContext* ctx = &dl_tensor.ctx # <<<<<<<<<<<<<< + * ctx.device_type = device_type + * ctx.device_id = device_id + */ + __pyx_v_ctx = (&__pyx_v_dl_tensor->ctx); + + /* "petsc4py/PETSc/Mat.pyx":1983 + * + * cdef DLContext* ctx = &dl_tensor.ctx + * ctx.device_type = device_type # <<<<<<<<<<<<<< + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + */ + __pyx_t_13 = ((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)__Pyx_PyInt_As_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(__pyx_v_device_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 1983, __pyx_L1_error) + __pyx_v_ctx->device_type = __pyx_t_13; + + /* "petsc4py/PETSc/Mat.pyx":1984 + * cdef DLContext* ctx = &dl_tensor.ctx + * ctx.device_type = device_type + * ctx.device_id = device_id # <<<<<<<<<<<<<< + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): + */ + __pyx_t_14 = __Pyx_PyInt_As_int(__pyx_v_device_id); if (unlikely((__pyx_t_14 == (int)-1) && PyErr_Occurred())) __PYX_ERR(45, 1984, __pyx_L1_error) + __pyx_v_ctx->device_id = __pyx_t_14; + + /* "petsc4py/PETSc/Mat.pyx":1985 + * ctx.device_type = device_type + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_strides[i] = shape[i] + */ + __pyx_v_shape_strides = ((int64_t *)malloc((((sizeof(int64_t)) * 2) * __pyx_v_ndim))); + + /* "petsc4py/PETSc/Mat.pyx":1986 + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i] = shape[i] + * for i in range(ndim): + */ + __pyx_t_8 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + } else { + __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(45, 1986, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_16)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(45, 1986, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(45, 1986, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_16(__pyx_t_8); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(45, 1986, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1987 + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): + * shape_strides[i] = shape[i] # <<<<<<<<<<<<<< + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_shape, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_3); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(45, 1987, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(45, 1987, __pyx_L1_error) + (__pyx_v_shape_strides[__pyx_t_17]) = __pyx_t_11; + + /* "petsc4py/PETSc/Mat.pyx":1986 + * ctx.device_id = device_id + * shape_strides = malloc(sizeof(int64_t)*2*ndim) + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i] = shape[i] + * for i in range(ndim): + */ + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1988 + * for i in range(ndim): + * shape_strides[i] = shape[i] + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + */ + __pyx_t_8 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) { + __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + } else { + __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(45, 1988, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + for (;;) { + if (likely(!__pyx_t_16)) { + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(45, 1988, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } else { + if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_3); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(45, 1988, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + } + } else { + __pyx_t_3 = __pyx_t_16(__pyx_t_8); + if (unlikely(!__pyx_t_3)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(45, 1988, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_3); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1989 + * shape_strides[i] = shape[i] + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] # <<<<<<<<<<<<<< + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides + */ + __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_strides, __pyx_v_i); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_11 = __Pyx_PyInt_As_int64_t(__pyx_t_3); if (unlikely((__pyx_t_11 == ((int64_t)-1)) && PyErr_Occurred())) __PYX_ERR(45, 1989, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_int64_t(__pyx_v_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(45, 1989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyNumber_Add(__pyx_v_i, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(45, 1989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_17 = __Pyx_PyIndex_AsSsize_t(__pyx_t_7); if (unlikely((__pyx_t_17 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(45, 1989, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + (__pyx_v_shape_strides[__pyx_t_17]) = __pyx_t_11; + + /* "petsc4py/PETSc/Mat.pyx":1988 + * for i in range(ndim): + * shape_strides[i] = shape[i] + * for i in range(ndim): # <<<<<<<<<<<<<< + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + */ + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Mat.pyx":1990 + * for i in range(ndim): + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim # <<<<<<<<<<<<<< + * dl_tensor.shape = shape_strides + * dl_tensor.strides = shape_strides + ndim + */ + __pyx_v_dl_tensor->ndim = __pyx_v_ndim; + + /* "petsc4py/PETSc/Mat.pyx":1991 + * shape_strides[i+ndim] = strides[i] + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides # <<<<<<<<<<<<<< + * dl_tensor.strides = shape_strides + ndim + * + */ + __pyx_v_dl_tensor->shape = __pyx_v_shape_strides; + + /* "petsc4py/PETSc/Mat.pyx":1992 + * dl_tensor.ndim = ndim + * dl_tensor.shape = shape_strides + * dl_tensor.strides = shape_strides + ndim # <<<<<<<<<<<<<< + * + * cdef DLDataType* dtype = &dl_tensor.dtype + */ + __pyx_v_dl_tensor->strides = (__pyx_v_shape_strides + __pyx_v_ndim); + + /* "petsc4py/PETSc/Mat.pyx":1994 + * dl_tensor.strides = shape_strides + ndim + * + * cdef DLDataType* dtype = &dl_tensor.dtype # <<<<<<<<<<<<<< + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: + */ + __pyx_v_dtype = (&__pyx_v_dl_tensor->dtype); + + /* "petsc4py/PETSc/Mat.pyx":1995 + * + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat # <<<<<<<<<<<<<< + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + */ + __pyx_v_dtype->code = ((uint8_t)__pyx_e_8petsc4py_5PETSc_kDLFloat); + + /* "petsc4py/PETSc/Mat.pyx":1996 + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: # <<<<<<<<<<<<<< + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + */ + __pyx_t_1 = (((sizeof(PetscScalar)) == 8) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/Mat.pyx":1997 + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 # <<<<<<<<<<<<<< + * elif sizeof(PetscScalar) == 4: + * dtype.bits = 32 + */ + __pyx_v_dtype->bits = ((uint8_t)64); + + /* "petsc4py/PETSc/Mat.pyx":1996 + * cdef DLDataType* dtype = &dl_tensor.dtype + * dtype.code = DLDataTypeCode.kDLFloat + * if sizeof(PetscScalar) == 8: # <<<<<<<<<<<<<< + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + */ + goto __pyx_L18; + } + + /* "petsc4py/PETSc/Mat.pyx":1998 + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: # <<<<<<<<<<<<<< + * dtype.bits = 32 + * else: + */ + __pyx_t_1 = (((sizeof(PetscScalar)) == 4) != 0); + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/Mat.pyx":1999 + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: + * dtype.bits = 32 # <<<<<<<<<<<<<< + * else: + * raise ValueError('Unsupported PetscScalar type') + */ + __pyx_v_dtype->bits = ((uint8_t)32); + + /* "petsc4py/PETSc/Mat.pyx":1998 + * if sizeof(PetscScalar) == 8: + * dtype.bits = 64 + * elif sizeof(PetscScalar) == 4: # <<<<<<<<<<<<<< + * dtype.bits = 32 + * else: + */ + goto __pyx_L18; + } + + /* "petsc4py/PETSc/Mat.pyx":2001 + * dtype.bits = 32 + * else: + * raise ValueError('Unsupported PetscScalar type') # <<<<<<<<<<<<<< + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.mat + */ + /*else*/ { + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 2001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_Raise(__pyx_t_8, 0, 0, 0); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __PYX_ERR(45, 2001, __pyx_L1_error) + } + __pyx_L18:; + + /* "petsc4py/PETSc/Mat.pyx":2002 + * else: + * raise ValueError('Unsupported PetscScalar type') + * dtype.lanes = 1 # <<<<<<<<<<<<<< + * dlm_tensor.manager_ctx = self.mat + * CHKERR( PetscObjectReference(self.mat) ) + */ + __pyx_v_dtype->lanes = ((uint16_t)1); + + /* "petsc4py/PETSc/Mat.pyx":2003 + * raise ValueError('Unsupported PetscScalar type') + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.mat # <<<<<<<<<<<<<< + * CHKERR( PetscObjectReference(self.mat) ) + * dlm_tensor.manager_deleter = manager_deleter + */ + __pyx_v_dlm_tensor->manager_ctx = ((void *)__pyx_v_self->mat); + + /* "petsc4py/PETSc/Mat.pyx":2004 + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.mat + * CHKERR( PetscObjectReference(self.mat) ) # <<<<<<<<<<<<<< + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectReference(((PetscObject)__pyx_v_self->mat))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2004, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2005 + * dlm_tensor.manager_ctx = self.mat + * CHKERR( PetscObjectReference(self.mat) ) + * dlm_tensor.manager_deleter = manager_deleter # <<<<<<<<<<<<<< + * dlm_tensor.del_obj = PetscDEALLOC + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + */ + __pyx_v_dlm_tensor->manager_deleter = __pyx_f_8petsc4py_5PETSc_manager_deleter; + + /* "petsc4py/PETSc/Mat.pyx":2006 + * CHKERR( PetscObjectReference(self.mat) ) + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC # <<<<<<<<<<<<<< + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) + * + */ + __pyx_v_dlm_tensor->del_obj = ((__pyx_t_8petsc4py_5PETSc_dlpack_manager_del_obj)__pyx_f_8petsc4py_5PETSc_PetscDEALLOC); + + /* "petsc4py/PETSc/Mat.pyx":2007 + * dlm_tensor.manager_deleter = manager_deleter + * dlm_tensor.del_obj = PetscDEALLOC + * return PyCapsule_New(dlm_tensor, 'dltensor', pycapsule_deleter) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_8 = PyCapsule_New(__pyx_v_dlm_tensor, ((char const *)"dltensor"), __pyx_f_8petsc4py_5PETSc_pycapsule_deleter); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 2007, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_r = __pyx_t_8; + __pyx_t_8 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":1940 + * return (dltype, devId) + * + * def toDLPack(self, mode='rw'): # <<<<<<<<<<<<<< + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.Mat.toDLPack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_device_type); + __Pyx_XDECREF(__pyx_v_device_id); + __Pyx_XDECREF(__pyx_v_shape); + __Pyx_XDECREF(__pyx_v_strides); + __Pyx_XDECREF(__pyx_v_hostmem); + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XDECREF(__pyx_v_mode); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2015 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.nsp + * self.nsp = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_9NullSpace_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_9NullSpace_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace___cinit__(((struct PyPetscNullSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_9NullSpace___cinit__(struct PyPetscNullSpaceObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Mat.pyx":2016 + * + * def __cinit__(self): + * self.obj = &self.nsp # <<<<<<<<<<<<<< + * self.nsp = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->nsp)); + + /* "petsc4py/PETSc/Mat.pyx":2017 + * def __cinit__(self): + * self.obj = &self.nsp + * self.nsp = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, vec): + */ + __pyx_v_self->nsp = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2015 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.nsp + * self.nsp = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2019 + * self.nsp = NULL + * + * def __call__(self, vec): # <<<<<<<<<<<<<< + * self.remove(vec) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(45, 2019, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2019, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_2__call__(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_2__call__(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/Mat.pyx":2020 + * + * def __call__(self, vec): + * self.remove(vec) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_remove); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 2020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_vec) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_vec); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 2020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Mat.pyx":2019 + * self.nsp = NULL + * + * def __call__(self, vec): # <<<<<<<<<<<<<< + * self.remove(vec) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2024 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_4view[] = "NullSpace.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(45, 2024, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2024, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(45, 2024, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_4view(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_4view(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Mat.pyx":2025 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatNullSpaceView(self.nsp, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2026 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceView(self.nsp, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Mat.pyx":2027 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatNullSpaceView(self.nsp, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceView(__pyx_v_self->nsp, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2027, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2024 + * # + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2029 + * CHKERR( MatNullSpaceView(self.nsp, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceDestroy(&self.nsp) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_6destroy[] = "NullSpace.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_6destroy(((struct PyPetscNullSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_6destroy(struct PyPetscNullSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Mat.pyx":2030 + * + * def destroy(self): + * CHKERR( MatNullSpaceDestroy(&self.nsp) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceDestroy((&__pyx_v_self->nsp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2030, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2031 + * def destroy(self): + * CHKERR( MatNullSpaceDestroy(&self.nsp) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, constant=False, vectors=(), comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2029 + * CHKERR( MatNullSpaceView(self.nsp, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceDestroy(&self.nsp) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2033 + * return self + * + * def create(self, constant=False, vectors=(), comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool has_const = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_8create[] = "NullSpace.create(self, constant=False, vectors=(), comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_constant = 0; + PyObject *__pyx_v_vectors = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_constant,&__pyx_n_s_vectors,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_False); + values[1] = ((PyObject *)__pyx_empty_tuple); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constant); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vectors); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(45, 2033, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_constant = values[0]; + __pyx_v_vectors = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2033, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_8create(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_constant, __pyx_v_vectors, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_8create(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_constant, PyObject *__pyx_v_vectors, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_has_const; + PetscInt __pyx_v_i; + PetscInt __pyx_v_nv; + Vec *__pyx_v_v; + CYTHON_UNUSED PyObject *__pyx_v_tmp2 = 0; + MatNullSpace __pyx_v_newnsp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscInt __pyx_t_6; + Vec __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Mat.pyx":2034 + * + * def create(self, constant=False, vectors=(), comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool has_const = PETSC_FALSE + * if constant: has_const = PETSC_TRUE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(45, 2034, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Mat.pyx":2035 + * def create(self, constant=False, vectors=(), comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool has_const = PETSC_FALSE # <<<<<<<<<<<<<< + * if constant: has_const = PETSC_TRUE + * cdef PetscInt i = 0, nv = len(vectors) + */ + __pyx_v_has_const = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":2036 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool has_const = PETSC_FALSE + * if constant: has_const = PETSC_TRUE # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, nv = len(vectors) + * cdef PetscVec *v = NULL + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_constant); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(45, 2036, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_v_has_const = PETSC_TRUE; + } + + /* "petsc4py/PETSc/Mat.pyx":2037 + * cdef PetscBool has_const = PETSC_FALSE + * if constant: has_const = PETSC_TRUE + * cdef PetscInt i = 0, nv = len(vectors) # <<<<<<<<<<<<<< + * cdef PetscVec *v = NULL + * cdef object tmp2 = oarray_p(empty_p(nv), NULL, &v) + */ + __pyx_v_i = 0; + __pyx_t_3 = PyObject_Length(__pyx_v_vectors); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(45, 2037, __pyx_L1_error) + __pyx_v_nv = ((PetscInt)__pyx_t_3); + + /* "petsc4py/PETSc/Mat.pyx":2038 + * if constant: has_const = PETSC_TRUE + * cdef PetscInt i = 0, nv = len(vectors) + * cdef PetscVec *v = NULL # <<<<<<<<<<<<<< + * cdef object tmp2 = oarray_p(empty_p(nv), NULL, &v) + * for i from 0 <= i < nv: + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2039 + * cdef PetscInt i = 0, nv = len(vectors) + * cdef PetscVec *v = NULL + * cdef object tmp2 = oarray_p(empty_p(nv), NULL, &v) # <<<<<<<<<<<<<< + * for i from 0 <= i < nv: + * v[i] = ((vectors[i])).vec + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nv)); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 2039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_4, NULL, ((void **)(&__pyx_v_v)))); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 2039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_tmp2 = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":2040 + * cdef PetscVec *v = NULL + * cdef object tmp2 = oarray_p(empty_p(nv), NULL, &v) + * for i from 0 <= i < nv: # <<<<<<<<<<<<<< + * v[i] = ((vectors[i])).vec + * cdef PetscNullSpace newnsp = NULL + */ + __pyx_t_6 = __pyx_v_nv; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { + + /* "petsc4py/PETSc/Mat.pyx":2041 + * cdef object tmp2 = oarray_p(empty_p(nv), NULL, &v) + * for i from 0 <= i < nv: + * v[i] = ((vectors[i])).vec # <<<<<<<<<<<<<< + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreate(ccomm, has_const, nv, v, &newnsp) ) + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_vectors, ((Py_ssize_t)__pyx_v_i), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 2041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(45, 2041, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscVecObject *)__pyx_t_5)->vec; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + (__pyx_v_v[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/Mat.pyx":2042 + * for i from 0 <= i < nv: + * v[i] = ((vectors[i])).vec + * cdef PetscNullSpace newnsp = NULL # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceCreate(ccomm, has_const, nv, v, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp + */ + __pyx_v_newnsp = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2043 + * v[i] = ((vectors[i])).vec + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreate(ccomm, has_const, nv, v, &newnsp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.nsp = newnsp + * return self + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceCreate(__pyx_v_ccomm, __pyx_v_has_const, __pyx_v_nv, __pyx_v_v, (&__pyx_v_newnsp))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2043, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2044 + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreate(ccomm, has_const, nv, v, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->nsp = __pyx_v_newnsp; + + /* "petsc4py/PETSc/Mat.pyx":2045 + * CHKERR( MatNullSpaceCreate(ccomm, has_const, nv, v, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp + * return self # <<<<<<<<<<<<<< + * + * def createRigidBody(self, Vec coords): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2033 + * return self + * + * def create(self, constant=False, vectors=(), comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool has_const = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp2); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2047 + * return self + * + * def createRigidBody(self, Vec coords): # <<<<<<<<<<<<<< + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_11createRigidBody(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_10createRigidBody[] = "NullSpace.createRigidBody(self, Vec coords)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_11createRigidBody(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_coords = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createRigidBody (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coords,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createRigidBody") < 0)) __PYX_ERR(45, 2047, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_coords = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createRigidBody", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2047, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.createRigidBody", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_coords), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "coords", 0))) __PYX_ERR(45, 2047, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_10createRigidBody(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_coords); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_10createRigidBody(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_coords) { + MatNullSpace __pyx_v_newnsp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createRigidBody", 0); + + /* "petsc4py/PETSc/Mat.pyx":2048 + * + * def createRigidBody(self, Vec coords): + * cdef PetscNullSpace newnsp = NULL # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp + */ + __pyx_v_newnsp = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2049 + * def createRigidBody(self, Vec coords): + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.nsp = newnsp + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceCreateRigidBody(__pyx_v_coords->vec, (&__pyx_v_newnsp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2049, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2050 + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->nsp = __pyx_v_newnsp; + + /* "petsc4py/PETSc/Mat.pyx":2051 + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) + * PetscCLEAR(self.obj); self.nsp = newnsp + * return self # <<<<<<<<<<<<<< + * + * def setFunction(self, function, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2047 + * return self + * + * def createRigidBody(self, Vec coords): # <<<<<<<<<<<<<< + * cdef PetscNullSpace newnsp = NULL + * CHKERR( MatNullSpaceCreateRigidBody(coords.vec, &newnsp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.createRigidBody", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2053 + * return self + * + * def setFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if function is not None: + * CHKERR( MatNullSpaceSetFunction( + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_13setFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_12setFunction[] = "NullSpace.setFunction(self, function, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_13setFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFunction") < 0)) __PYX_ERR(45, 2053, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFunction", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2053, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.setFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_12setFunction(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_function, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_12setFunction(struct PyPetscNullSpaceObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/Mat.pyx":2054 + * + * def setFunction(self, function, args=None, kargs=None): + * if function is not None: # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceSetFunction( + * self.nsp, NullSpace_Function, NULL) ) + */ + __pyx_t_1 = (__pyx_v_function != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/Mat.pyx":2055 + * def setFunction(self, function, args=None, kargs=None): + * if function is not None: + * CHKERR( MatNullSpaceSetFunction( # <<<<<<<<<<<<<< + * self.nsp, NullSpace_Function, NULL) ) + * if args is None: args = () + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceSetFunction(__pyx_v_self->nsp, __pyx_f_8petsc4py_5PETSc_NullSpace_Function, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2055, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2057 + * CHKERR( MatNullSpaceSetFunction( + * self.nsp, NullSpace_Function, NULL) ) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * self.set_attr('__function__', (function, args, kargs)) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/Mat.pyx":2058 + * self.nsp, NullSpace_Function, NULL) ) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * self.set_attr('__function__', (function, args, kargs)) + * else: + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 2058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/Mat.pyx":2059 + * if args is None: args = () + * if kargs is None: kargs = {} + * self.set_attr('__function__', (function, args, kargs)) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatNullSpaceSetFunction(self.nsp, NULL, NULL) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(45, 2059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__"), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 2059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":2054 + * + * def setFunction(self, function, args=None, kargs=None): + * if function is not None: # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceSetFunction( + * self.nsp, NullSpace_Function, NULL) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/Mat.pyx":2061 + * self.set_attr('__function__', (function, args, kargs)) + * else: + * CHKERR( MatNullSpaceSetFunction(self.nsp, NULL, NULL) ) # <<<<<<<<<<<<<< + * self.set_attr('__function__', None) + * # + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceSetFunction(__pyx_v_self->nsp, NULL, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2061, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2062 + * else: + * CHKERR( MatNullSpaceSetFunction(self.nsp, NULL, NULL) ) + * self.set_attr('__function__', None) # <<<<<<<<<<<<<< + * # + * + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__"), Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 2062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/Mat.pyx":2053 + * return self + * + * def setFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if function is not None: + * CHKERR( MatNullSpaceSetFunction( + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.setFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2065 + * # + * + * def hasConstant(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceGetVecs(self.nsp, &flag, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_15hasConstant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_14hasConstant[] = "NullSpace.hasConstant(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_15hasConstant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasConstant (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("hasConstant", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "hasConstant", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_14hasConstant(((struct PyPetscNullSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_14hasConstant(struct PyPetscNullSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasConstant", 0); + + /* "petsc4py/PETSc/Mat.pyx":2066 + * + * def hasConstant(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceGetVecs(self.nsp, &flag, NULL, NULL) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":2067 + * def hasConstant(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceGetVecs(self.nsp, &flag, NULL, NULL) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceGetVecs(__pyx_v_self->nsp, (&__pyx_v_flag), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2067, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2068 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceGetVecs(self.nsp, &flag, NULL, NULL) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def getVecs(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 2068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2065 + * # + * + * def hasConstant(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceGetVecs(self.nsp, &flag, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.hasConstant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2070 + * return toBool(flag) + * + * def getVecs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, nv = 0 + * cdef const PetscVec *v = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_17getVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_16getVecs[] = "NullSpace.getVecs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_17getVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVecs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVecs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVecs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_16getVecs(((struct PyPetscNullSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_16getVecs(struct PyPetscNullSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_nv; + Vec const *__pyx_v_v; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_vectors = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVecs", 0); + + /* "petsc4py/PETSc/Mat.pyx":2071 + * + * def getVecs(self): + * cdef PetscInt i = 0, nv = 0 # <<<<<<<<<<<<<< + * cdef const PetscVec *v = NULL + * CHKERR( MatNullSpaceGetVecs(self.nsp, NULL, &nv, &v) ) + */ + __pyx_v_i = 0; + __pyx_v_nv = 0; + + /* "petsc4py/PETSc/Mat.pyx":2072 + * def getVecs(self): + * cdef PetscInt i = 0, nv = 0 + * cdef const PetscVec *v = NULL # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceGetVecs(self.nsp, NULL, &nv, &v) ) + * cdef Vec vec = None + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/Mat.pyx":2073 + * cdef PetscInt i = 0, nv = 0 + * cdef const PetscVec *v = NULL + * CHKERR( MatNullSpaceGetVecs(self.nsp, NULL, &nv, &v) ) # <<<<<<<<<<<<<< + * cdef Vec vec = None + * cdef list vectors = [] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceGetVecs(__pyx_v_self->nsp, NULL, (&__pyx_v_nv), (&__pyx_v_v))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2073, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2074 + * cdef const PetscVec *v = NULL + * CHKERR( MatNullSpaceGetVecs(self.nsp, NULL, &nv, &v) ) + * cdef Vec vec = None # <<<<<<<<<<<<<< + * cdef list vectors = [] + * for i from 0 <= i < nv: + */ + __Pyx_INCREF(Py_None); + __pyx_v_vec = ((struct PyPetscVecObject *)Py_None); + + /* "petsc4py/PETSc/Mat.pyx":2075 + * CHKERR( MatNullSpaceGetVecs(self.nsp, NULL, &nv, &v) ) + * cdef Vec vec = None + * cdef list vectors = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < nv: + * vec = Vec() + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 2075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_vectors = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":2076 + * cdef Vec vec = None + * cdef list vectors = [] + * for i from 0 <= i < nv: # <<<<<<<<<<<<<< + * vec = Vec() + * vec.vec = v[i] + */ + __pyx_t_3 = __pyx_v_nv; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/Mat.pyx":2077 + * cdef list vectors = [] + * for i from 0 <= i < nv: + * vec = Vec() # <<<<<<<<<<<<<< + * vec.vec = v[i] + * PetscINCREF(vec.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 2077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_vec, ((struct PyPetscVecObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Mat.pyx":2078 + * for i from 0 <= i < nv: + * vec = Vec() + * vec.vec = v[i] # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * vectors.append(vec) + */ + __pyx_v_vec->vec = (__pyx_v_v[__pyx_v_i]); + + /* "petsc4py/PETSc/Mat.pyx":2079 + * vec = Vec() + * vec.vec = v[i] + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * vectors.append(vec) + * return vectors + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/Mat.pyx":2080 + * vec.vec = v[i] + * PetscINCREF(vec.obj) + * vectors.append(vec) # <<<<<<<<<<<<<< + * return vectors + * + */ + __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_vectors, ((PyObject *)__pyx_v_vec)); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(45, 2080, __pyx_L1_error) + } + + /* "petsc4py/PETSc/Mat.pyx":2081 + * PetscINCREF(vec.obj) + * vectors.append(vec) + * return vectors # <<<<<<<<<<<<<< + * + * def getFunction(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_vectors); + __pyx_r = __pyx_v_vectors; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2070 + * return toBool(flag) + * + * def getVecs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, nv = 0 + * cdef const PetscVec *v = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.getVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_vectors); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2083 + * return vectors + * + * def getFunction(self): # <<<<<<<<<<<<<< + * return self.get_attr('__function__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_19getFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_18getFunction[] = "NullSpace.getFunction(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_19getFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFunction (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFunction", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFunction", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_18getFunction(((struct PyPetscNullSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_18getFunction(struct PyPetscNullSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFunction", 0); + + /* "petsc4py/PETSc/Mat.pyx":2084 + * + * def getFunction(self): + * return self.get_attr('__function__') # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(45, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2083 + * return vectors + * + * def getFunction(self): # <<<<<<<<<<<<<< + * return self.get_attr('__function__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.getFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2088 + * # + * + * def remove(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceRemove(self.nsp, vec.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_21remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_20remove[] = "NullSpace.remove(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_21remove(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("remove (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "remove") < 0)) __PYX_ERR(45, 2088, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("remove", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2088, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(45, 2088, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_20remove(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_20remove(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("remove", 0); + + /* "petsc4py/PETSc/Mat.pyx":2089 + * + * def remove(self, Vec vec): + * CHKERR( MatNullSpaceRemove(self.nsp, vec.vec) ) # <<<<<<<<<<<<<< + * + * def test(self, Mat mat): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceRemove(__pyx_v_self->nsp, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2089, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2088 + * # + * + * def remove(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceRemove(self.nsp, vec.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.remove", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Mat.pyx":2091 + * CHKERR( MatNullSpaceRemove(self.nsp, vec.vec) ) + * + * def test(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceTest(self.nsp, mat.mat, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_23test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9NullSpace_22test[] = "NullSpace.test(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9NullSpace_23test(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("test (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "test") < 0)) __PYX_ERR(45, 2091, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("test", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(45, 2091, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.test", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(45, 2091, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9NullSpace_22test(((struct PyPetscNullSpaceObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9NullSpace_22test(struct PyPetscNullSpaceObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("test", 0); + + /* "petsc4py/PETSc/Mat.pyx":2092 + * + * def test(self, Mat mat): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( MatNullSpaceTest(self.nsp, mat.mat, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/Mat.pyx":2093 + * def test(self, Mat mat): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceTest(self.nsp, mat.mat, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatNullSpaceTest(__pyx_v_self->nsp, __pyx_v_mat->mat, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(45, 2093, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2094 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceTest(self.nsp, mat.mat, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(45, 2094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Mat.pyx":2091 + * CHKERR( MatNullSpaceRemove(self.nsp, vec.vec) ) + * + * def test(self, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( MatNullSpaceTest(self.nsp, mat.mat, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.NullSpace.test", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":19 + * Type = MatPartitioningType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.part + * self.part = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_15MatPartitioning_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_15MatPartitioning_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning___cinit__(((struct PyPetscMatPartitioningObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_15MatPartitioning___cinit__(struct PyPetscMatPartitioningObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":20 + * + * def __cinit__(self): + * self.obj = &self.part # <<<<<<<<<<<<<< + * self.part = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->part)); + + /* "petsc4py/PETSc/MatPartitioning.pyx":21 + * def __cinit__(self): + * self.obj = &self.part + * self.part = NULL # <<<<<<<<<<<<<< + * + * def __call__(self): + */ + __pyx_v_self->part = NULL; + + /* "petsc4py/PETSc/MatPartitioning.pyx":19 + * Type = MatPartitioningType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.part + * self.part = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":23 + * self.part = NULL + * + * def __call__(self): # <<<<<<<<<<<<<< + * return self.getValue() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__call__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__call__", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_2__call__(((struct PyPetscMatPartitioningObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_2__call__(struct PyPetscMatPartitioningObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":24 + * + * def __call__(self): + * return self.getValue() # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(46, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(46, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":23 + * self.part = NULL + * + * def __call__(self): # <<<<<<<<<<<<<< + * return self.getValue() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":26 + * return self.getValue() + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_4view[] = "MatPartitioning.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(46, 26, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(46, 26, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(46, 26, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_4view(((struct PyPetscMatPartitioningObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_4view(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":27 + * + * def view(self, Viewer viewer=None): + * assert self.obj != NULL # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_self->__pyx_base.obj != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(46, 27, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/MatPartitioning.pyx":28 + * def view(self, Viewer viewer=None): + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatPartitioningView(self.part, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/MatPartitioning.pyx":29 + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningView(self.part, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/MatPartitioning.pyx":30 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( MatPartitioningView(self.part, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningView(__pyx_v_self->part, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":26 + * return self.getValue() + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * assert self.obj != NULL + * cdef PetscViewer vwr = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":32 + * CHKERR( MatPartitioningView(self.part, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningDestroy(&self.part) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_6destroy[] = "MatPartitioning.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_6destroy(((struct PyPetscMatPartitioningObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_6destroy(struct PyPetscMatPartitioningObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":33 + * + * def destroy(self): + * CHKERR( MatPartitioningDestroy(&self.part) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningDestroy((&__pyx_v_self->part))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":34 + * def destroy(self): + * CHKERR( MatPartitioningDestroy(&self.part) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":32 + * CHKERR( MatPartitioningView(self.part, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningDestroy(&self.part) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":36 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( MatPartitioningCreate(ccomm, &self.part) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_8create[] = "MatPartitioning.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(46, 36, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(46, 36, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_8create(((struct PyPetscMatPartitioningObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_8create(struct PyPetscMatPartitioningObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":37 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningCreate(ccomm, &self.part) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(46, 37, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/MatPartitioning.pyx":38 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( MatPartitioningCreate(ccomm, &self.part) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningCreate(__pyx_v_ccomm, (&__pyx_v_self->part))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 38, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":39 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( MatPartitioningCreate(ccomm, &self.part) ) + * return self # <<<<<<<<<<<<<< + * + * def setType(self, matpartitioning_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":36 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( MatPartitioningCreate(ccomm, &self.part) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":41 + * return self + * + * def setType(self, matpartitioning_type): # <<<<<<<<<<<<<< + * cdef PetscMatPartitioningType cval = NULL + * matpartitioning_type = str2bytes(matpartitioning_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_10setType[] = "MatPartitioning.setType(self, matpartitioning_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_matpartitioning_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_matpartitioning_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_matpartitioning_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(46, 41, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_matpartitioning_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(46, 41, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_10setType(((struct PyPetscMatPartitioningObject *)__pyx_v_self), __pyx_v_matpartitioning_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_10setType(struct PyPetscMatPartitioningObject *__pyx_v_self, PyObject *__pyx_v_matpartitioning_type) { + MatPartitioningType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_matpartitioning_type); + + /* "petsc4py/PETSc/MatPartitioning.pyx":42 + * + * def setType(self, matpartitioning_type): + * cdef PetscMatPartitioningType cval = NULL # <<<<<<<<<<<<<< + * matpartitioning_type = str2bytes(matpartitioning_type, &cval) + * CHKERR( MatPartitioningSetType(self.part, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/MatPartitioning.pyx":43 + * def setType(self, matpartitioning_type): + * cdef PetscMatPartitioningType cval = NULL + * matpartitioning_type = str2bytes(matpartitioning_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningSetType(self.part, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_matpartitioning_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(46, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_matpartitioning_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":44 + * cdef PetscMatPartitioningType cval = NULL + * matpartitioning_type = str2bytes(matpartitioning_type, &cval) + * CHKERR( MatPartitioningSetType(self.part, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningSetType(__pyx_v_self->part, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 44, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":41 + * return self + * + * def setType(self, matpartitioning_type): # <<<<<<<<<<<<<< + * cdef PetscMatPartitioningType cval = NULL + * matpartitioning_type = str2bytes(matpartitioning_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_matpartitioning_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":46 + * CHKERR( MatPartitioningSetType(self.part, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscMatPartitioningType cval = NULL + * CHKERR( MatPartitioningGetType(self.part, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_12getType[] = "MatPartitioning.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_12getType(((struct PyPetscMatPartitioningObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_12getType(struct PyPetscMatPartitioningObject *__pyx_v_self) { + MatPartitioningType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":47 + * + * def getType(self): + * cdef PetscMatPartitioningType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningGetType(self.part, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/MatPartitioning.pyx":48 + * def getType(self): + * cdef PetscMatPartitioningType cval = NULL + * CHKERR( MatPartitioningGetType(self.part, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningGetType(__pyx_v_self->part, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 48, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":49 + * cdef PetscMatPartitioningType cval = NULL + * CHKERR( MatPartitioningGetType(self.part, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(46, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":46 + * CHKERR( MatPartitioningSetType(self.part, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscMatPartitioningType cval = NULL + * CHKERR( MatPartitioningGetType(self.part, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":51 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningSetFromOptions(self.part) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_14setFromOptions[] = "MatPartitioning.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_15setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_14setFromOptions(((struct PyPetscMatPartitioningObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_14setFromOptions(struct PyPetscMatPartitioningObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":52 + * + * def setFromOptions(self): + * CHKERR( MatPartitioningSetFromOptions(self.part) ) # <<<<<<<<<<<<<< + * + * def setAdjacency(self, Mat adj): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningSetFromOptions(__pyx_v_self->part)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":51 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningSetFromOptions(self.part) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":54 + * CHKERR( MatPartitioningSetFromOptions(self.part) ) + * + * def setAdjacency(self, Mat adj): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningSetAdjacency(self.part, adj.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_17setAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_16setAdjacency[] = "MatPartitioning.setAdjacency(self, Mat adj)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_17setAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_adj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAdjacency (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_adj,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_adj)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAdjacency") < 0)) __PYX_ERR(46, 54, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_adj = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAdjacency", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(46, 54, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.setAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_adj), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "adj", 0))) __PYX_ERR(46, 54, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_16setAdjacency(((struct PyPetscMatPartitioningObject *)__pyx_v_self), __pyx_v_adj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_16setAdjacency(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_adj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAdjacency", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":55 + * + * def setAdjacency(self, Mat adj): + * CHKERR( MatPartitioningSetAdjacency(self.part, adj.mat) ) # <<<<<<<<<<<<<< + * + * def apply(self, IS partitioning): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningSetAdjacency(__pyx_v_self->part, __pyx_v_adj->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":54 + * CHKERR( MatPartitioningSetFromOptions(self.part) ) + * + * def setAdjacency(self, Mat adj): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningSetAdjacency(self.part, adj.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.setAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/MatPartitioning.pyx":57 + * CHKERR( MatPartitioningSetAdjacency(self.part, adj.mat) ) + * + * def apply(self, IS partitioning): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningApply(self.part, &partitioning.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_19apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_18apply[] = "MatPartitioning.apply(self, IS partitioning)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_19apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_partitioning = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("apply (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_partitioning,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_partitioning)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply") < 0)) __PYX_ERR(46, 57, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_partitioning = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("apply", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(46, 57, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_partitioning), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "partitioning", 0))) __PYX_ERR(46, 57, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15MatPartitioning_18apply(((struct PyPetscMatPartitioningObject *)__pyx_v_self), __pyx_v_partitioning); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15MatPartitioning_18apply(struct PyPetscMatPartitioningObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_partitioning) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("apply", 0); + + /* "petsc4py/PETSc/MatPartitioning.pyx":58 + * + * def apply(self, IS partitioning): + * CHKERR( MatPartitioningApply(self.part, &partitioning.iset) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatPartitioningApply(__pyx_v_self->part, (&__pyx_v_partitioning->iset))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(46, 58, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":57 + * CHKERR( MatPartitioningSetAdjacency(self.part, adj.mat) ) + * + * def apply(self, IS partitioning): # <<<<<<<<<<<<<< + * CHKERR( MatPartitioningApply(self.part, &partitioning.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatPartitioning.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":166 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.pc + * self.pc = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2PC_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2PC_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC___cinit__(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2PC___cinit__(struct PyPetscPCObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/PC.pyx":167 + * + * def __cinit__(self): + * self.obj = &self.pc # <<<<<<<<<<<<<< + * self.pc = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->pc)); + + /* "petsc4py/PETSc/PC.pyx":168 + * def __cinit__(self): + * self.obj = &self.pc + * self.pc = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, x, y=None): + */ + __pyx_v_self->pc = NULL; + + /* "petsc4py/PETSc/PC.pyx":166 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.pc + * self.pc = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":170 + * self.pc = NULL + * + * def __call__(self, x, y=None): # <<<<<<<<<<<<<< + * if y is None: # XXX do this better + * y = self.getOperators()[0].createVecLeft() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_x = 0; + PyObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(47, 170, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = values[0]; + __pyx_v_y = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 170, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_2__call__(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_2__call__(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_y); + + /* "petsc4py/PETSc/PC.pyx":171 + * + * def __call__(self, x, y=None): + * if y is None: # XXX do this better # <<<<<<<<<<<<<< + * y = self.getOperators()[0].createVecLeft() + * self.apply(x, y) + */ + __pyx_t_1 = (__pyx_v_y == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":172 + * def __call__(self, x, y=None): + * if y is None: # XXX do this better + * y = self.getOperators()[0].createVecLeft() # <<<<<<<<<<<<<< + * self.apply(x, y) + * return y + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOperators); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_createVecLeft); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":171 + * + * def __call__(self, x, y=None): + * if y is None: # XXX do this better # <<<<<<<<<<<<<< + * y = self.getOperators()[0].createVecLeft() + * self.apply(x, y) + */ + } + + /* "petsc4py/PETSc/PC.pyx":173 + * if y is None: # XXX do this better + * y = self.getOperators()[0].createVecLeft() + * self.apply(x, y) # <<<<<<<<<<<<<< + * return y + * + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_apply); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_x, __pyx_v_y}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 173, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_x, __pyx_v_y}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 173, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_v_x); + __Pyx_GIVEREF(__pyx_v_x); + PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_x); + __Pyx_INCREF(__pyx_v_y); + __Pyx_GIVEREF(__pyx_v_y); + PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_y); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":174 + * y = self.getOperators()[0].createVecLeft() + * self.apply(x, y) + * return y # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_y); + __pyx_r = __pyx_v_y; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":170 + * self.pc = NULL + * + * def __call__(self, x, y=None): # <<<<<<<<<<<<<< + * if y is None: # XXX do this better + * y = self.getOperators()[0].createVecLeft() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.PC.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_y); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":178 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_4view[] = "PC.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(47, 178, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 178, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(47, 178, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_4view(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_4view(struct PyPetscPCObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/PC.pyx":179 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PCView(self.pc, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/PC.pyx":180 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PCView(self.pc, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":181 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PCView(self.pc, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCView(__pyx_v_self->pc, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 181, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":178 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":183 + * CHKERR( PCView(self.pc, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PCDestroy(&self.pc) ) + * self.pc = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_6destroy[] = "PC.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_6destroy(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_6destroy(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/PC.pyx":184 + * + * def destroy(self): + * CHKERR( PCDestroy(&self.pc) ) # <<<<<<<<<<<<<< + * self.pc = NULL + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDestroy((&__pyx_v_self->pc))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":185 + * def destroy(self): + * CHKERR( PCDestroy(&self.pc) ) + * self.pc = NULL # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_v_self->pc = NULL; + + /* "petsc4py/PETSc/PC.pyx":186 + * CHKERR( PCDestroy(&self.pc) ) + * self.pc = NULL + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":183 + * CHKERR( PCView(self.pc, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PCDestroy(&self.pc) ) + * self.pc = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":188 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_8create[] = "PC.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(47, 188, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 188, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_8create(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_8create(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PC __pyx_v_newpc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/PC.pyx":189 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 189, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":190 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL # <<<<<<<<<<<<<< + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc + */ + __pyx_v_newpc = NULL; + + /* "petsc4py/PETSc/PC.pyx":191 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.pc = newpc + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCCreate(__pyx_v_ccomm, (&__pyx_v_newpc))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 191, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":192 + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->pc = __pyx_v_newpc; + + /* "petsc4py/PETSc/PC.pyx":193 + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc + * return self # <<<<<<<<<<<<<< + * + * def setType(self, pc_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":188 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":195 + * return self + * + * def setType(self, pc_type): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_10setType[] = "PC.setType(self, pc_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_pc_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pc_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pc_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(47, 195, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_pc_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 195, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_10setType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_pc_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_10setType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_pc_type) { + PCType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_pc_type); + + /* "petsc4py/PETSc/PC.pyx":196 + * + * def setType(self, pc_type): + * cdef PetscPCType cval = NULL # <<<<<<<<<<<<<< + * pc_type = str2bytes(pc_type, &cval) + * CHKERR( PCSetType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":197 + * def setType(self, pc_type): + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_pc_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_pc_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":198 + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + * CHKERR( PCSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 198, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":195 + * return self + * + * def setType(self, pc_type): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pc_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":200 + * CHKERR( PCSetType(self.pc, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * CHKERR( PCGetType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_12getType[] = "PC.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_12getType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_12getType(struct PyPetscPCObject *__pyx_v_self) { + PCType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/PC.pyx":201 + * + * def getType(self): + * cdef PetscPCType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PCGetType(self.pc, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":202 + * def getType(self): + * cdef PetscPCType cval = NULL + * CHKERR( PCGetType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 202, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":203 + * cdef PetscPCType cval = NULL + * CHKERR( PCGetType(self.pc, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":200 + * CHKERR( PCSetType(self.pc, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * CHKERR( PCGetType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":205 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_15setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_14setOptionsPrefix[] = "PC.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_15setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(47, 205, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 205, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_14setOptionsPrefix(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_14setOptionsPrefix(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/PC.pyx":206 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( PCSetOptionsPrefix(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":207 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCSetOptionsPrefix(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":208 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( PCSetOptionsPrefix(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetOptionsPrefix(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 208, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":205 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":210 + * CHKERR( PCSetOptionsPrefix(self.pc, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PCGetOptionsPrefix(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_16getOptionsPrefix[] = "PC.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_16getOptionsPrefix(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_16getOptionsPrefix(struct PyPetscPCObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/PC.pyx":211 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PCGetOptionsPrefix(self.pc, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":212 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( PCGetOptionsPrefix(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetOptionsPrefix(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 212, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":213 + * cdef const char *cval = NULL + * CHKERR( PCGetOptionsPrefix(self.pc, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":210 + * CHKERR( PCSetOptionsPrefix(self.pc, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PCGetOptionsPrefix(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":215 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_19appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_18appendOptionsPrefix[] = "PC.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_19appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(47, 215, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 215, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_18appendOptionsPrefix(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_18appendOptionsPrefix(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/PC.pyx":216 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( PCAppendOptionsPrefix(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":217 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCAppendOptionsPrefix(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":218 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( PCAppendOptionsPrefix(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCAppendOptionsPrefix(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 218, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":215 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":220 + * CHKERR( PCAppendOptionsPrefix(self.pc, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetFromOptions(self.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_21setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_20setFromOptions[] = "PC.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_21setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_20setFromOptions(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_20setFromOptions(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/PC.pyx":221 + * + * def setFromOptions(self): + * CHKERR( PCSetFromOptions(self.pc) ) # <<<<<<<<<<<<<< + * + * def setOperators(self, Mat A=None, Mat P=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetFromOptions(__pyx_v_self->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 221, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":220 + * CHKERR( PCAppendOptionsPrefix(self.pc, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetFromOptions(self.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":223 + * CHKERR( PCSetFromOptions(self.pc) ) + * + * def setOperators(self, Mat A=None, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_23setOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_22setOperators[] = "PC.setOperators(self, Mat A=None, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_23setOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOperators (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_A,&__pyx_n_s_P,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOperators") < 0)) __PYX_ERR(47, 223, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_A = ((struct PyPetscMatObject *)values[0]); + __pyx_v_P = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOperators", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 223, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "A", 0))) __PYX_ERR(47, 223, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(47, 223, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_22setOperators(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_A, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_22setOperators(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_P) { + Mat __pyx_v_amat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOperators", 0); + + /* "petsc4py/PETSc/PC.pyx":224 + * + * def setOperators(self, Mat A=None, Mat P=None): + * cdef PetscMat amat=NULL # <<<<<<<<<<<<<< + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat + */ + __pyx_v_amat = NULL; + + /* "petsc4py/PETSc/PC.pyx":225 + * def setOperators(self, Mat A=None, Mat P=None): + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat # <<<<<<<<<<<<<< + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_A) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_A->mat; + __pyx_v_amat = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":226 + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( PCSetOperators(self.pc, amat, pmat) ) + */ + __pyx_v_pmat = __pyx_v_amat; + + /* "petsc4py/PETSc/PC.pyx":227 + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( PCSetOperators(self.pc, amat, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":228 + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat + * CHKERR( PCSetOperators(self.pc, amat, pmat) ) # <<<<<<<<<<<<<< + * + * def getOperators(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetOperators(__pyx_v_self->pc, __pyx_v_amat, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":223 + * CHKERR( PCSetFromOptions(self.pc) ) + * + * def setOperators(self, Mat A=None, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":230 + * CHKERR( PCSetOperators(self.pc, amat, pmat) ) + * + * def getOperators(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat(), P = Mat() + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_25getOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_24getOperators[] = "PC.getOperators(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_25getOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOperators (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOperators", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOperators", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_24getOperators(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_24getOperators(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOperators", 0); + + /* "petsc4py/PETSc/PC.pyx":231 + * + * def getOperators(self): + * cdef Mat A = Mat(), P = Mat() # <<<<<<<<<<<<<< + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_A = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":232 + * def getOperators(self): + * cdef Mat A = Mat(), P = Mat() + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetOperators(__pyx_v_self->pc, (&__pyx_v_A->mat), (&__pyx_v_P->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 232, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":233 + * cdef Mat A = Mat(), P = Mat() + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) # <<<<<<<<<<<<<< + * PetscINCREF(P.obj) + * return (A, P) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_A->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":234 + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * return (A, P) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":235 + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) + * return (A, P) # <<<<<<<<<<<<<< + * + * def setUseAmat(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_A)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_A)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_A)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":230 + * CHKERR( PCSetOperators(self.pc, amat, pmat) ) + * + * def getOperators(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat(), P = Mat() + * CHKERR( PCGetOperators(self.pc, &A.mat, &P.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_A); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":237 + * return (A, P) + * + * def setUseAmat(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_27setUseAmat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_26setUseAmat[] = "PC.setUseAmat(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_27setUseAmat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUseAmat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUseAmat") < 0)) __PYX_ERR(47, 237, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUseAmat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 237, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setUseAmat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_26setUseAmat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_26setUseAmat(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_cflag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUseAmat", 0); + + /* "petsc4py/PETSc/PC.pyx":238 + * + * def setUseAmat(self, flag): + * cdef PetscBool cflag = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: + * cflag = PETSC_TRUE + */ + __pyx_v_cflag = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":239 + * def setUseAmat(self, flag): + * cdef PetscBool cflag = PETSC_FALSE + * if flag: # <<<<<<<<<<<<<< + * cflag = PETSC_TRUE + * CHKERR( PCSetUseAmat(self.pc, cflag) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(47, 239, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":240 + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + * cflag = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PCSetUseAmat(self.pc, cflag) ) + * + */ + __pyx_v_cflag = PETSC_TRUE; + + /* "petsc4py/PETSc/PC.pyx":239 + * def setUseAmat(self, flag): + * cdef PetscBool cflag = PETSC_FALSE + * if flag: # <<<<<<<<<<<<<< + * cflag = PETSC_TRUE + * CHKERR( PCSetUseAmat(self.pc, cflag) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":241 + * if flag: + * cflag = PETSC_TRUE + * CHKERR( PCSetUseAmat(self.pc, cflag) ) # <<<<<<<<<<<<<< + * + * def getUseAmat(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetUseAmat(__pyx_v_self->pc, __pyx_v_cflag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 241, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":237 + * return (A, P) + * + * def setUseAmat(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setUseAmat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":243 + * CHKERR( PCSetUseAmat(self.pc, cflag) ) + * + * def getUseAmat(self): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * CHKERR( PCGetUseAmat(self.pc, &cflag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_29getUseAmat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_28getUseAmat[] = "PC.getUseAmat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_29getUseAmat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUseAmat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUseAmat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUseAmat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_28getUseAmat(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_28getUseAmat(struct PyPetscPCObject *__pyx_v_self) { + PetscBool __pyx_v_cflag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUseAmat", 0); + + /* "petsc4py/PETSc/PC.pyx":244 + * + * def getUseAmat(self): + * cdef PetscBool cflag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PCGetUseAmat(self.pc, &cflag) ) + * return toBool(cflag) + */ + __pyx_v_cflag = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":245 + * def getUseAmat(self): + * cdef PetscBool cflag = PETSC_FALSE + * CHKERR( PCGetUseAmat(self.pc, &cflag) ) # <<<<<<<<<<<<<< + * return toBool(cflag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetUseAmat(__pyx_v_self->pc, (&__pyx_v_cflag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 245, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":246 + * cdef PetscBool cflag = PETSC_FALSE + * CHKERR( PCGetUseAmat(self.pc, &cflag) ) + * return toBool(cflag) # <<<<<<<<<<<<<< + * + * def setReusePreconditioner(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_cflag); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":243 + * CHKERR( PCSetUseAmat(self.pc, cflag) ) + * + * def getUseAmat(self): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * CHKERR( PCGetUseAmat(self.pc, &cflag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getUseAmat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":248 + * return toBool(cflag) + * + * def setReusePreconditioner(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_31setReusePreconditioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_30setReusePreconditioner[] = "PC.setReusePreconditioner(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_31setReusePreconditioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setReusePreconditioner (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setReusePreconditioner") < 0)) __PYX_ERR(47, 248, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setReusePreconditioner", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 248, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setReusePreconditioner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_30setReusePreconditioner(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_30setReusePreconditioner(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_cflag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setReusePreconditioner", 0); + + /* "petsc4py/PETSc/PC.pyx":249 + * + * def setReusePreconditioner(self, flag): + * cdef PetscBool cflag = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: + * cflag = PETSC_TRUE + */ + __pyx_v_cflag = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":250 + * def setReusePreconditioner(self, flag): + * cdef PetscBool cflag = PETSC_FALSE + * if flag: # <<<<<<<<<<<<<< + * cflag = PETSC_TRUE + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_flag); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(47, 250, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":251 + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + * cflag = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) + * + */ + __pyx_v_cflag = PETSC_TRUE; + + /* "petsc4py/PETSc/PC.pyx":250 + * def setReusePreconditioner(self, flag): + * cdef PetscBool cflag = PETSC_FALSE + * if flag: # <<<<<<<<<<<<<< + * cflag = PETSC_TRUE + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":252 + * if flag: + * cflag = PETSC_TRUE + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) # <<<<<<<<<<<<<< + * + * def setFailedReason(self, reason): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetReusePreconditioner(__pyx_v_self->pc, __pyx_v_cflag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 252, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":248 + * return toBool(cflag) + * + * def setReusePreconditioner(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setReusePreconditioner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":254 + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) + * + * def setFailedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason val = reason + * CHKERR( PCSetFailedReason(self.pc, val) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_33setFailedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_32setFailedReason[] = "PC.setFailedReason(self, reason)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_33setFailedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reason = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFailedReason (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reason,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFailedReason") < 0)) __PYX_ERR(47, 254, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_reason = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFailedReason", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 254, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFailedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_32setFailedReason(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_reason); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_32setFailedReason(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_reason) { + PCFailedReason __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCFailedReason __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFailedReason", 0); + + /* "petsc4py/PETSc/PC.pyx":255 + * + * def setFailedReason(self, reason): + * cdef PetscPCFailedReason val = reason # <<<<<<<<<<<<<< + * CHKERR( PCSetFailedReason(self.pc, val) ) + * + */ + __pyx_t_1 = ((PCFailedReason)__Pyx_PyInt_As_PCFailedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 255, __pyx_L1_error) + __pyx_v_val = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":256 + * def setFailedReason(self, reason): + * cdef PetscPCFailedReason val = reason + * CHKERR( PCSetFailedReason(self.pc, val) ) # <<<<<<<<<<<<<< + * + * def getFailedReason(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetFailedReason(__pyx_v_self->pc, __pyx_v_val)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":254 + * CHKERR( PCSetReusePreconditioner(self.pc, cflag) ) + * + * def setFailedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason val = reason + * CHKERR( PCSetFailedReason(self.pc, val) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFailedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":258 + * CHKERR( PCSetFailedReason(self.pc, val) ) + * + * def getFailedReason(self): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReason(self.pc, &reason) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_35getFailedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_34getFailedReason[] = "PC.getFailedReason(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_35getFailedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFailedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFailedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFailedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_34getFailedReason(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_34getFailedReason(struct PyPetscPCObject *__pyx_v_self) { + PCFailedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFailedReason", 0); + + /* "petsc4py/PETSc/PC.pyx":259 + * + * def getFailedReason(self): + * cdef PetscPCFailedReason reason = PC_NOERROR # <<<<<<<<<<<<<< + * CHKERR( PCGetFailedReason(self.pc, &reason) ) + * return reason + */ + __pyx_v_reason = PC_NOERROR; + + /* "petsc4py/PETSc/PC.pyx":260 + * def getFailedReason(self): + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReason(self.pc, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetFailedReason(__pyx_v_self->pc, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 260, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":261 + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReason(self.pc, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def getFailedReasonRank(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCFailedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":258 + * CHKERR( PCSetFailedReason(self.pc, val) ) + * + * def getFailedReason(self): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReason(self.pc, &reason) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFailedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":263 + * return reason + * + * def getFailedReasonRank(self): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReasonRank(self.pc, &reason) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_37getFailedReasonRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_36getFailedReasonRank[] = "PC.getFailedReasonRank(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_37getFailedReasonRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFailedReasonRank (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFailedReasonRank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFailedReasonRank", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_36getFailedReasonRank(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_36getFailedReasonRank(struct PyPetscPCObject *__pyx_v_self) { + PCFailedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFailedReasonRank", 0); + + /* "petsc4py/PETSc/PC.pyx":264 + * + * def getFailedReasonRank(self): + * cdef PetscPCFailedReason reason = PC_NOERROR # <<<<<<<<<<<<<< + * CHKERR( PCGetFailedReasonRank(self.pc, &reason) ) + * return reason + */ + __pyx_v_reason = PC_NOERROR; + + /* "petsc4py/PETSc/PC.pyx":265 + * def getFailedReasonRank(self): + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReasonRank(self.pc, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetFailedReasonRank(__pyx_v_self->pc, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 265, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":266 + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReasonRank(self.pc, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCFailedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":263 + * return reason + * + * def getFailedReasonRank(self): # <<<<<<<<<<<<<< + * cdef PetscPCFailedReason reason = PC_NOERROR + * CHKERR( PCGetFailedReasonRank(self.pc, &reason) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFailedReasonRank", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":268 + * return reason + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetUp(self.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_39setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_38setUp[] = "PC.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_39setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_38setUp(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_38setUp(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/PC.pyx":269 + * + * def setUp(self): + * CHKERR( PCSetUp(self.pc) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetUp(__pyx_v_self->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 269, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":268 + * return reason + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetUp(self.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":271 + * CHKERR( PCSetUp(self.pc) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PCReset(self.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_41reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_40reset[] = "PC.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_41reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_40reset(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_40reset(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/PC.pyx":272 + * + * def reset(self): + * CHKERR( PCReset(self.pc) ) # <<<<<<<<<<<<<< + * + * def setUpOnBlocks(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCReset(__pyx_v_self->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 272, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":271 + * CHKERR( PCSetUp(self.pc) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PCReset(self.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":274 + * CHKERR( PCReset(self.pc) ) + * + * def setUpOnBlocks(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetUpOnBlocks(self.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_43setUpOnBlocks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_42setUpOnBlocks[] = "PC.setUpOnBlocks(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_43setUpOnBlocks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUpOnBlocks (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUpOnBlocks", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUpOnBlocks", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_42setUpOnBlocks(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_42setUpOnBlocks(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUpOnBlocks", 0); + + /* "petsc4py/PETSc/PC.pyx":275 + * + * def setUpOnBlocks(self): + * CHKERR( PCSetUpOnBlocks(self.pc) ) # <<<<<<<<<<<<<< + * + * def apply(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetUpOnBlocks(__pyx_v_self->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":274 + * CHKERR( PCReset(self.pc) ) + * + * def setUpOnBlocks(self): # <<<<<<<<<<<<<< + * CHKERR( PCSetUpOnBlocks(self.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setUpOnBlocks", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":277 + * CHKERR( PCSetUpOnBlocks(self.pc) ) + * + * def apply(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApply(self.pc, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_45apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_44apply[] = "PC.apply(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_45apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("apply (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("apply", 1, 2, 2, 1); __PYX_ERR(47, 277, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply") < 0)) __PYX_ERR(47, 277, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("apply", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 277, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(47, 277, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(47, 277, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_44apply(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_44apply(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("apply", 0); + + /* "petsc4py/PETSc/PC.pyx":278 + * + * def apply(self, Vec x, Vec y): + * CHKERR( PCApply(self.pc, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def matApply(self, Mat x, Mat y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCApply(__pyx_v_self->pc, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 278, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":277 + * CHKERR( PCSetUpOnBlocks(self.pc) ) + * + * def apply(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApply(self.pc, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":280 + * CHKERR( PCApply(self.pc, x.vec, y.vec) ) + * + * def matApply(self, Mat x, Mat y): # <<<<<<<<<<<<<< + * CHKERR( PCMatApply(self.pc, x.mat, y.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_47matApply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_46matApply[] = "PC.matApply(self, Mat x, Mat y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_47matApply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matApply (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("matApply", 1, 2, 2, 1); __PYX_ERR(47, 280, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matApply") < 0)) __PYX_ERR(47, 280, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscMatObject *)values[0]); + __pyx_v_y = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matApply", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 280, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.matApply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "x", 0))) __PYX_ERR(47, 280, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "y", 0))) __PYX_ERR(47, 280, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_46matApply(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_46matApply(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matApply", 0); + + /* "petsc4py/PETSc/PC.pyx":281 + * + * def matApply(self, Mat x, Mat y): + * CHKERR( PCMatApply(self.pc, x.mat, y.mat) ) # <<<<<<<<<<<<<< + * + * def applyTranspose(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMatApply(__pyx_v_self->pc, __pyx_v_x->mat, __pyx_v_y->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":280 + * CHKERR( PCApply(self.pc, x.vec, y.vec) ) + * + * def matApply(self, Mat x, Mat y): # <<<<<<<<<<<<<< + * CHKERR( PCMatApply(self.pc, x.mat, y.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.matApply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":283 + * CHKERR( PCMatApply(self.pc, x.mat, y.mat) ) + * + * def applyTranspose(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplyTranspose(self.pc, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_49applyTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_48applyTranspose[] = "PC.applyTranspose(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_49applyTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applyTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("applyTranspose", 1, 2, 2, 1); __PYX_ERR(47, 283, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applyTranspose") < 0)) __PYX_ERR(47, 283, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applyTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 283, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applyTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(47, 283, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(47, 283, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_48applyTranspose(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_48applyTranspose(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applyTranspose", 0); + + /* "petsc4py/PETSc/PC.pyx":284 + * + * def applyTranspose(self, Vec x, Vec y): + * CHKERR( PCApplyTranspose(self.pc, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def applySymmetricLeft(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCApplyTranspose(__pyx_v_self->pc, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 284, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":283 + * CHKERR( PCMatApply(self.pc, x.mat, y.mat) ) + * + * def applyTranspose(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplyTranspose(self.pc, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applyTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":286 + * CHKERR( PCApplyTranspose(self.pc, x.vec, y.vec) ) + * + * def applySymmetricLeft(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplySymmetricLeft(self.pc, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_51applySymmetricLeft(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_50applySymmetricLeft[] = "PC.applySymmetricLeft(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_51applySymmetricLeft(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applySymmetricLeft (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("applySymmetricLeft", 1, 2, 2, 1); __PYX_ERR(47, 286, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applySymmetricLeft") < 0)) __PYX_ERR(47, 286, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applySymmetricLeft", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 286, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applySymmetricLeft", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(47, 286, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(47, 286, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_50applySymmetricLeft(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_50applySymmetricLeft(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applySymmetricLeft", 0); + + /* "petsc4py/PETSc/PC.pyx":287 + * + * def applySymmetricLeft(self, Vec x, Vec y): + * CHKERR( PCApplySymmetricLeft(self.pc, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * def applySymmetricRight(self, Vec x, Vec y): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCApplySymmetricLeft(__pyx_v_self->pc, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 287, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":286 + * CHKERR( PCApplyTranspose(self.pc, x.vec, y.vec) ) + * + * def applySymmetricLeft(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplySymmetricLeft(self.pc, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applySymmetricLeft", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":289 + * CHKERR( PCApplySymmetricLeft(self.pc, x.vec, y.vec) ) + * + * def applySymmetricRight(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplySymmetricRight(self.pc, x.vec, y.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_53applySymmetricRight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_52applySymmetricRight[] = "PC.applySymmetricRight(self, Vec x, Vec y)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_53applySymmetricRight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_y = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("applySymmetricRight (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("applySymmetricRight", 1, 2, 2, 1); __PYX_ERR(47, 289, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "applySymmetricRight") < 0)) __PYX_ERR(47, 289, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_y = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("applySymmetricRight", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 289, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applySymmetricRight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(47, 289, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "y", 0))) __PYX_ERR(47, 289, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_52applySymmetricRight(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_x, __pyx_v_y); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_52applySymmetricRight(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_y) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("applySymmetricRight", 0); + + /* "petsc4py/PETSc/PC.pyx":290 + * + * def applySymmetricRight(self, Vec x, Vec y): + * CHKERR( PCApplySymmetricRight(self.pc, x.vec, y.vec) ) # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCApplySymmetricRight(__pyx_v_self->pc, __pyx_v_x->vec, __pyx_v_y->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 290, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":289 + * CHKERR( PCApplySymmetricLeft(self.pc, x.vec, y.vec) ) + * + * def applySymmetricRight(self, Vec x, Vec y): # <<<<<<<<<<<<<< + * CHKERR( PCApplySymmetricRight(self.pc, x.vec, y.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.applySymmetricRight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":294 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( PCGetDM(self.pc, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_55getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_54getDM[] = "PC.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_55getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_54getDM(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_54getDM(struct PyPetscPCObject *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/PC.pyx":295 + * + * def getDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( PCGetDM(self.pc, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/PC.pyx":296 + * def getDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( PCGetDM(self.pc, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGetDM(__pyx_v_self->pc, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 296, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":297 + * cdef PetscDM newdm = NULL + * CHKERR( PCGetDM(self.pc, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(47, 297, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":298 + * CHKERR( PCGetDM(self.pc, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/PC.pyx":299 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":300 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":294 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( PCGetDM(self.pc, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":302 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( PCSetDM(self.pc, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_57setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_56setDM[] = "PC.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_57setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(47, 302, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 302, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(47, 302, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_56setDM(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_56setDM(struct PyPetscPCObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/PC.pyx":303 + * + * def setDM(self, DM dm): + * CHKERR( PCSetDM(self.pc, dm.dm) ) # <<<<<<<<<<<<<< + * + * def setCoordinates(self, coordinates): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetDM(__pyx_v_self->pc, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 303, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":302 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( PCSetDM(self.pc, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":305 + * CHKERR( PCSetDM(self.pc, dm.dm) ) + * + * def setCoordinates(self, coordinates): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_59setCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_58setCoordinates[] = "PC.setCoordinates(self, coordinates)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_59setCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_coordinates = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coordinates,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coordinates)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinates") < 0)) __PYX_ERR(47, 305, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_coordinates = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinates", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 305, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_58setCoordinates(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_coordinates); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_58setCoordinates(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_coordinates) { + PyArrayObject *__pyx_v_xyz = 0; + PetscInt __pyx_v_nvtx; + PetscInt __pyx_v_ndim; + PetscReal *__pyx_v_coords; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinates", 0); + + /* "petsc4py/PETSc/PC.pyx":306 + * + * def setCoordinates(self, coordinates): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_coordinates, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xyz = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":307 + * def setCoordinates(self, coordinates): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) # <<<<<<<<<<<<<< + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_xyz) != 0); + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)PyArray_Copy(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_xyz, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":308 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_2 = ((PyArray_NDIM(__pyx_v_xyz) != 2) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/PC.pyx":310 + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) # <<<<<<<<<<<<<< + * cdef PetscInt nvtx = PyArray_DIM(xyz, 0) + * cdef PetscInt ndim = PyArray_DIM(xyz, 1) + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_coordinates_must_have_two_dimens, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":308 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(47, 308, __pyx_L1_error) + } + + /* "petsc4py/PETSc/PC.pyx":311 + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt nvtx = PyArray_DIM(xyz, 0) # <<<<<<<<<<<<<< + * cdef PetscInt ndim = PyArray_DIM(xyz, 1) + * cdef PetscReal *coords = PyArray_DATA(xyz) + */ + __pyx_v_nvtx = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 0)); + + /* "petsc4py/PETSc/PC.pyx":312 + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt nvtx = PyArray_DIM(xyz, 0) + * cdef PetscInt ndim = PyArray_DIM(xyz, 1) # <<<<<<<<<<<<<< + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( PCSetCoordinates(self.pc, ndim, nvtx, coords) ) + */ + __pyx_v_ndim = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 1)); + + /* "petsc4py/PETSc/PC.pyx":313 + * cdef PetscInt nvtx = PyArray_DIM(xyz, 0) + * cdef PetscInt ndim = PyArray_DIM(xyz, 1) + * cdef PetscReal *coords = PyArray_DATA(xyz) # <<<<<<<<<<<<<< + * CHKERR( PCSetCoordinates(self.pc, ndim, nvtx, coords) ) + * + */ + __pyx_v_coords = ((PetscReal *)PyArray_DATA(__pyx_v_xyz)); + + /* "petsc4py/PETSc/PC.pyx":314 + * cdef PetscInt ndim = PyArray_DIM(xyz, 1) + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( PCSetCoordinates(self.pc, ndim, nvtx, coords) ) # <<<<<<<<<<<<<< + * + * # --- Python --- + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetCoordinates(__pyx_v_self->pc, __pyx_v_ndim, __pyx_v_nvtx, __pyx_v_coords)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 314, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":305 + * CHKERR( PCSetDM(self.pc, dm.dm) ) + * + * def setCoordinates(self, coordinates): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xyz); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":318 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_61createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_60createPython[] = "PC.createPython(self, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_61createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(47, 318, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_context = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 318, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_60createPython(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_60createPython(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PC __pyx_v_newpc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/PC.pyx":319 + * + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 319, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":320 + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL # <<<<<<<<<<<<<< + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc + */ + __pyx_v_newpc = NULL; + + /* "petsc4py/PETSc/PC.pyx":321 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.pc = newpc + * CHKERR( PCSetType(self.pc, PCPYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCCreate(__pyx_v_ccomm, (&__pyx_v_newpc))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 321, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":322 + * cdef PetscPC newpc = NULL + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc # <<<<<<<<<<<<<< + * CHKERR( PCSetType(self.pc, PCPYTHON) ) + * CHKERR( PCPythonSetContext(self.pc, context) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->pc = __pyx_v_newpc; + + /* "petsc4py/PETSc/PC.pyx":323 + * CHKERR( PCCreate(ccomm, &newpc) ) + * PetscCLEAR(self.obj); self.pc = newpc + * CHKERR( PCSetType(self.pc, PCPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetContext(self.pc, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSetType(__pyx_v_self->pc, PCPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 323, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":324 + * PetscCLEAR(self.obj); self.pc = newpc + * CHKERR( PCSetType(self.pc, PCPYTHON) ) + * CHKERR( PCPythonSetContext(self.pc, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = PCPythonSetContext(__pyx_v_self->pc, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 324, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 324, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":325 + * CHKERR( PCSetType(self.pc, PCPYTHON) ) + * CHKERR( PCPythonSetContext(self.pc, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":318 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPC newpc = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":327 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetContext(self.pc, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_63setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_62setPythonContext[] = "PC.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_63setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(47, 327, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 327, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_62setPythonContext(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_62setPythonContext(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/PC.pyx":328 + * + * def setPythonContext(self, context): + * CHKERR( PCPythonSetContext(self.pc, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = PCPythonSetContext(__pyx_v_self->pc, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 328, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 328, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":327 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetContext(self.pc, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":330 + * CHKERR( PCPythonSetContext(self.pc, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( PCPythonGetContext(self.pc, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_65getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_64getPythonContext[] = "PC.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_65getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_64getPythonContext(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_64getPythonContext(struct PyPetscPCObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/PC.pyx":331 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( PCPythonGetContext(self.pc, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/PC.pyx":332 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( PCPythonGetContext(self.pc, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = PCPythonGetContext(__pyx_v_self->pc, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 332, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 332, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":333 + * cdef void *context = NULL + * CHKERR( PCPythonGetContext(self.pc, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PC.pyx":334 + * CHKERR( PCPythonGetContext(self.pc, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PC.pyx":330 + * CHKERR( PCPythonSetContext(self.pc, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( PCPythonGetContext(self.pc, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":336 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_67setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_66setPythonType[] = "PC.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_67setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(47, 336, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 336, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_66setPythonType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_66setPythonType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/PC.pyx":337 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( PCPythonSetType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":338 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":339 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( PCPythonSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPythonSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 339, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":336 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":341 + * CHKERR( PCPythonSetType(self.pc, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PCPythonGetType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_69getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_68getPythonType[] = "PC.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_69getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_68getPythonType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_68getPythonType(struct PyPetscPCObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/PC.pyx":342 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PCPythonGetType(self.pc, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":343 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( PCPythonGetType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPythonGetType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 343, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":344 + * cdef const char *cval = NULL + * CHKERR( PCPythonGetType(self.pc, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- ASM --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":341 + * CHKERR( PCPythonSetType(self.pc, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( PCPythonGetType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":348 + * # --- ASM --- + * + * def setASMType(self, asmtype): # <<<<<<<<<<<<<< + * cdef PetscPCASMType cval = asmtype + * CHKERR( PCASMSetType(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_71setASMType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_70setASMType[] = "PC.setASMType(self, asmtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_71setASMType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_asmtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setASMType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_asmtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_asmtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASMType") < 0)) __PYX_ERR(47, 348, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_asmtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASMType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 348, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_70setASMType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_asmtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_70setASMType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_asmtype) { + PCASMType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCASMType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASMType", 0); + + /* "petsc4py/PETSc/PC.pyx":349 + * + * def setASMType(self, asmtype): + * cdef PetscPCASMType cval = asmtype # <<<<<<<<<<<<<< + * CHKERR( PCASMSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCASMType)__Pyx_PyInt_As_PCASMType(__pyx_v_asmtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 349, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":350 + * def setASMType(self, asmtype): + * cdef PetscPCASMType cval = asmtype + * CHKERR( PCASMSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setASMOverlap(self, overlap): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCASMSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 350, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":348 + * # --- ASM --- + * + * def setASMType(self, asmtype): # <<<<<<<<<<<<<< + * cdef PetscPCASMType cval = asmtype + * CHKERR( PCASMSetType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":352 + * CHKERR( PCASMSetType(self.pc, cval) ) + * + * def setASMOverlap(self, overlap): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCASMSetOverlap(self.pc, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_73setASMOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_72setASMOverlap[] = "PC.setASMOverlap(self, overlap)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_73setASMOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_overlap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setASMOverlap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_overlap,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overlap)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASMOverlap") < 0)) __PYX_ERR(47, 352, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_overlap = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASMOverlap", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 352, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_72setASMOverlap(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_overlap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_72setASMOverlap(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_overlap) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASMOverlap", 0); + + /* "petsc4py/PETSc/PC.pyx":353 + * + * def setASMOverlap(self, overlap): + * cdef PetscInt ival = asInt(overlap) # <<<<<<<<<<<<<< + * CHKERR( PCASMSetOverlap(self.pc, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_overlap); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 353, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":354 + * def setASMOverlap(self, overlap): + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCASMSetOverlap(self.pc, ival) ) # <<<<<<<<<<<<<< + * + * def setASMLocalSubdomains(self, nsd, is_=None, is_local=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCASMSetOverlap(__pyx_v_self->pc, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 354, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":352 + * CHKERR( PCASMSetType(self.pc, cval) ) + * + * def setASMOverlap(self, overlap): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCASMSetOverlap(self.pc, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":356 + * CHKERR( PCASMSetOverlap(self.pc, ival) ) + * + * def setASMLocalSubdomains(self, nsd, is_=None, is_local=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_75setASMLocalSubdomains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_74setASMLocalSubdomains[] = "PC.setASMLocalSubdomains(self, nsd, is_=None, is_local=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_75setASMLocalSubdomains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nsd = 0; + PyObject *__pyx_v_is_ = 0; + PyObject *__pyx_v_is_local = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setASMLocalSubdomains (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsd,&__pyx_n_s_is,&__pyx_n_s_is_local,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsd)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_local); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASMLocalSubdomains") < 0)) __PYX_ERR(47, 356, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_nsd = values[0]; + __pyx_v_is_ = values[1]; + __pyx_v_is_local = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASMLocalSubdomains", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 356, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMLocalSubdomains", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_74setASMLocalSubdomains(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_nsd, __pyx_v_is_, __pyx_v_is_local); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_74setASMLocalSubdomains(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nsd, PyObject *__pyx_v_is_, PyObject *__pyx_v_is_local) { + PetscInt __pyx_v_n; + PetscInt __pyx_v_i; + IS *__pyx_v_isets; + IS *__pyx_v_isets_local; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + PetscInt __pyx_t_8; + PetscInt __pyx_t_9; + IS __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASMLocalSubdomains", 0); + + /* "petsc4py/PETSc/PC.pyx":357 + * + * def setASMLocalSubdomains(self, nsd, is_=None, is_local=None): + * cdef PetscInt n = asInt(nsd) # <<<<<<<<<<<<<< + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nsd); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 357, __pyx_L1_error) + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":358 + * def setASMLocalSubdomains(self, nsd, is_=None, is_local=None): + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/PC.pyx":359 + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *isets_local = NULL + * if is_ is not None: + */ + __pyx_v_isets = NULL; + + /* "petsc4py/PETSc/PC.pyx":360 + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL # <<<<<<<<<<<<<< + * if is_ is not None: + * assert len(is_) == nsd + */ + __pyx_v_isets_local = NULL; + + /* "petsc4py/PETSc/PC.pyx":361 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + * if is_ is not None: # <<<<<<<<<<<<<< + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + */ + __pyx_t_2 = (__pyx_v_is_ != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/PC.pyx":362 + * cdef PetscIS *isets_local = NULL + * if is_ is not None: + * assert len(is_) == nsd # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_is_); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 362, __pyx_L1_error) + __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_v_nsd, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(47, 362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 362, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":363 + * if is_ is not None: + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) # <<<<<<<<<<<<<< + * for i in range(n): + * isets[i] = (is_[i]).iset + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_n) * (sizeof(IS))), (&__pyx_v_isets))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 363, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":364 + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): # <<<<<<<<<<<<<< + * isets[i] = (is_[i]).iset + * if is_local is not None: + */ + __pyx_t_1 = __pyx_v_n; + __pyx_t_8 = __pyx_t_1; + for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_i = __pyx_t_9; + + /* "petsc4py/PETSc/PC.pyx":365 + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): + * isets[i] = (is_[i]).iset # <<<<<<<<<<<<<< + * if is_local is not None: + * assert len(is_local) == nsd + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_is_, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 365, __pyx_L1_error) + __pyx_t_10 = ((struct PyPetscISObject *)__pyx_t_6)->iset; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + (__pyx_v_isets[__pyx_v_i]) = __pyx_t_10; + } + + /* "petsc4py/PETSc/PC.pyx":361 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + * if is_ is not None: # <<<<<<<<<<<<<< + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":366 + * for i in range(n): + * isets[i] = (is_[i]).iset + * if is_local is not None: # <<<<<<<<<<<<<< + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + */ + __pyx_t_3 = (__pyx_v_is_local != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":367 + * isets[i] = (is_[i]).iset + * if is_local is not None: + * assert len(is_local) == nsd # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_is_local); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 367, __pyx_L1_error) + __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_v_nsd, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 367, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(47, 367, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 367, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":368 + * if is_local is not None: + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) # <<<<<<<<<<<<<< + * for i in range(n): + * isets_local[i] = (is_local[i]).iset + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_n) * (sizeof(IS))), (&__pyx_v_isets_local))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 368, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":369 + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): # <<<<<<<<<<<<<< + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetLocalSubdomains(self.pc, n, isets, isets_local) ) + */ + __pyx_t_1 = __pyx_v_n; + __pyx_t_8 = __pyx_t_1; + for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_i = __pyx_t_9; + + /* "petsc4py/PETSc/PC.pyx":370 + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): + * isets_local[i] = (is_local[i]).iset # <<<<<<<<<<<<<< + * CHKERR( PCASMSetLocalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_is_local, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 370, __pyx_L1_error) + __pyx_t_10 = ((struct PyPetscISObject *)__pyx_t_5)->iset; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + (__pyx_v_isets_local[__pyx_v_i]) = __pyx_t_10; + } + + /* "petsc4py/PETSc/PC.pyx":366 + * for i in range(n): + * isets[i] = (is_[i]).iset + * if is_local is not None: # <<<<<<<<<<<<<< + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":371 + * for i in range(n): + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetLocalSubdomains(self.pc, n, isets, isets_local) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(isets) ) + * CHKERR( PetscFree(isets_local) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCASMSetLocalSubdomains(__pyx_v_self->pc, __pyx_v_n, __pyx_v_isets, __pyx_v_isets_local)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 371, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":372 + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetLocalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(isets_local) ) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_isets)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 372, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":373 + * CHKERR( PCASMSetLocalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) + * CHKERR( PetscFree(isets_local) ) # <<<<<<<<<<<<<< + * + * def setASMTotalSubdomains(self, nsd, is_=None, is_local=None): + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_isets_local)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 373, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":356 + * CHKERR( PCASMSetOverlap(self.pc, ival) ) + * + * def setASMLocalSubdomains(self, nsd, is_=None, is_local=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMLocalSubdomains", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":375 + * CHKERR( PetscFree(isets_local) ) + * + * def setASMTotalSubdomains(self, nsd, is_=None, is_local=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_77setASMTotalSubdomains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_76setASMTotalSubdomains[] = "PC.setASMTotalSubdomains(self, nsd, is_=None, is_local=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_77setASMTotalSubdomains(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nsd = 0; + PyObject *__pyx_v_is_ = 0; + PyObject *__pyx_v_is_local = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setASMTotalSubdomains (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nsd,&__pyx_n_s_is,&__pyx_n_s_is_local,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nsd)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_is_local); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASMTotalSubdomains") < 0)) __PYX_ERR(47, 375, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_nsd = values[0]; + __pyx_v_is_ = values[1]; + __pyx_v_is_local = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASMTotalSubdomains", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 375, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMTotalSubdomains", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_76setASMTotalSubdomains(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_nsd, __pyx_v_is_, __pyx_v_is_local); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_76setASMTotalSubdomains(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nsd, PyObject *__pyx_v_is_, PyObject *__pyx_v_is_local) { + PetscInt __pyx_v_n; + PetscInt __pyx_v_i; + IS *__pyx_v_isets; + IS *__pyx_v_isets_local; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + PetscInt __pyx_t_8; + PetscInt __pyx_t_9; + IS __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASMTotalSubdomains", 0); + + /* "petsc4py/PETSc/PC.pyx":376 + * + * def setASMTotalSubdomains(self, nsd, is_=None, is_local=None): + * cdef PetscInt n = asInt(nsd) # <<<<<<<<<<<<<< + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nsd); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 376, __pyx_L1_error) + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":377 + * def setASMTotalSubdomains(self, nsd, is_=None, is_local=None): + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/PC.pyx":378 + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *isets_local = NULL + * if is_ is not None: + */ + __pyx_v_isets = NULL; + + /* "petsc4py/PETSc/PC.pyx":379 + * cdef PetscInt i = 0 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL # <<<<<<<<<<<<<< + * if is_ is not None: + * assert len(is_) == nsd + */ + __pyx_v_isets_local = NULL; + + /* "petsc4py/PETSc/PC.pyx":380 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + * if is_ is not None: # <<<<<<<<<<<<<< + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + */ + __pyx_t_2 = (__pyx_v_is_ != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/PC.pyx":381 + * cdef PetscIS *isets_local = NULL + * if is_ is not None: + * assert len(is_) == nsd # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_is_); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 381, __pyx_L1_error) + __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_v_nsd, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 381, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(47, 381, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 381, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":382 + * if is_ is not None: + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) # <<<<<<<<<<<<<< + * for i in range(n): + * isets[i] = (is_[i]).iset + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_n) * (sizeof(IS))), (&__pyx_v_isets))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 382, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":383 + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): # <<<<<<<<<<<<<< + * isets[i] = (is_[i]).iset + * if is_local is not None: + */ + __pyx_t_1 = __pyx_v_n; + __pyx_t_8 = __pyx_t_1; + for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_i = __pyx_t_9; + + /* "petsc4py/PETSc/PC.pyx":384 + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + * for i in range(n): + * isets[i] = (is_[i]).iset # <<<<<<<<<<<<<< + * if is_local is not None: + * assert len(is_local) == nsd + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_is_, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 384, __pyx_L1_error) + __pyx_t_10 = ((struct PyPetscISObject *)__pyx_t_6)->iset; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + (__pyx_v_isets[__pyx_v_i]) = __pyx_t_10; + } + + /* "petsc4py/PETSc/PC.pyx":380 + * cdef PetscIS *isets = NULL + * cdef PetscIS *isets_local = NULL + * if is_ is not None: # <<<<<<<<<<<<<< + * assert len(is_) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":385 + * for i in range(n): + * isets[i] = (is_[i]).iset + * if is_local is not None: # <<<<<<<<<<<<<< + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + */ + __pyx_t_3 = (__pyx_v_is_local != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":386 + * isets[i] = (is_[i]).iset + * if is_local is not None: + * assert len(is_local) == nsd # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_is_local); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 386, __pyx_L1_error) + __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_v_nsd, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(47, 386, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 386, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":387 + * if is_local is not None: + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) # <<<<<<<<<<<<<< + * for i in range(n): + * isets_local[i] = (is_local[i]).iset + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_n) * (sizeof(IS))), (&__pyx_v_isets_local))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 387, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":388 + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): # <<<<<<<<<<<<<< + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetTotalSubdomains(self.pc, n, isets, isets_local) ) + */ + __pyx_t_1 = __pyx_v_n; + __pyx_t_8 = __pyx_t_1; + for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_i = __pyx_t_9; + + /* "petsc4py/PETSc/PC.pyx":389 + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + * for i in range(n): + * isets_local[i] = (is_local[i]).iset # <<<<<<<<<<<<<< + * CHKERR( PCASMSetTotalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_is_local, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 389, __pyx_L1_error) + __pyx_t_10 = ((struct PyPetscISObject *)__pyx_t_5)->iset; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + (__pyx_v_isets_local[__pyx_v_i]) = __pyx_t_10; + } + + /* "petsc4py/PETSc/PC.pyx":385 + * for i in range(n): + * isets[i] = (is_[i]).iset + * if is_local is not None: # <<<<<<<<<<<<<< + * assert len(is_local) == nsd + * CHKERR( PetscMalloc(n*sizeof(PetscIS), &isets_local) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":390 + * for i in range(n): + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetTotalSubdomains(self.pc, n, isets, isets_local) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(isets) ) + * CHKERR( PetscFree(isets_local) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCASMSetTotalSubdomains(__pyx_v_self->pc, __pyx_v_n, __pyx_v_isets, __pyx_v_isets_local)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 390, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":391 + * isets_local[i] = (is_local[i]).iset + * CHKERR( PCASMSetTotalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(isets_local) ) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_isets)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 391, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":392 + * CHKERR( PCASMSetTotalSubdomains(self.pc, n, isets, isets_local) ) + * CHKERR( PetscFree(isets) ) + * CHKERR( PetscFree(isets_local) ) # <<<<<<<<<<<<<< + * + * def getASMSubKSP(self): + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_isets_local)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 392, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":375 + * CHKERR( PetscFree(isets_local) ) + * + * def setASMTotalSubdomains(self, nsd, is_=None, is_local=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = asInt(nsd) + * cdef PetscInt i = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMTotalSubdomains", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":394 + * CHKERR( PetscFree(isets_local) ) + * + * def getASMSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_79getASMSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_78getASMSubKSP[] = "PC.getASMSubKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_79getASMSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getASMSubKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getASMSubKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getASMSubKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_78getASMSubKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_78getASMSubKSP(struct PyPetscPCObject *__pyx_v_self) { + CYTHON_UNUSED PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + KSP *__pyx_v_p; + PetscInt __pyx_8genexpr8__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getASMSubKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":395 + * + * def getASMSubKSP(self): + * cdef PetscInt i = 0, n = 0 # <<<<<<<<<<<<<< + * cdef PetscKSP *p = NULL + * CHKERR( PCASMGetSubKSP(self.pc, &n, NULL, &p) ) + */ + __pyx_v_i = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/PC.pyx":396 + * def getASMSubKSP(self): + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL # <<<<<<<<<<<<<< + * CHKERR( PCASMGetSubKSP(self.pc, &n, NULL, &p) ) + * return [ref_KSP(p[i]) for i from 0 <= i pc, (&__pyx_v_n), NULL, (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 397, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":398 + * cdef PetscKSP *p = NULL + * CHKERR( PCASMGetSubKSP(self.pc, &n, NULL, &p) ) + * return [ref_KSP(p[i]) for i from 0 <= i 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setASMSortIndices") < 0)) __PYX_ERR(47, 400, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dosort = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setASMSortIndices", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 400, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setASMSortIndices", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_80setASMSortIndices(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_dosort); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_80setASMSortIndices(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dosort) { + PetscBool __pyx_v_cdosort; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setASMSortIndices", 0); + + /* "petsc4py/PETSc/PC.pyx":401 + * + * def setASMSortIndices(self, dosort): + * cdef PetscBool cdosort = asBool(dosort) # <<<<<<<<<<<<<< + * CHKERR( PCASMSetSortIndices(self.pc, cdosort) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_dosort); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(47, 401, __pyx_L1_error) + __pyx_v_cdosort = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":402 + * def setASMSortIndices(self, dosort): + * cdef PetscBool cdosort = asBool(dosort) + * CHKERR( PCASMSetSortIndices(self.pc, cdosort) ) # <<<<<<<<<<<<<< + * + * # --- GASM --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCASMSetSortIndices(__pyx_v_self->pc, __pyx_v_cdosort)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 402, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":400 + * return [ref_KSP(p[i]) for i from 0 <= i 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGASMType") < 0)) __PYX_ERR(47, 406, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_gasmtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGASMType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 406, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGASMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_82setGASMType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_gasmtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_82setGASMType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_gasmtype) { + PCGASMType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCGASMType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGASMType", 0); + + /* "petsc4py/PETSc/PC.pyx":407 + * + * def setGASMType(self, gasmtype): + * cdef PetscPCGASMType cval = gasmtype # <<<<<<<<<<<<<< + * CHKERR( PCGASMSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCGASMType)__Pyx_PyInt_As_PCGASMType(__pyx_v_gasmtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 407, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":408 + * def setGASMType(self, gasmtype): + * cdef PetscPCGASMType cval = gasmtype + * CHKERR( PCGASMSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setGASMOverlap(self, overlap): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGASMSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 408, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":406 + * # --- GASM --- + * + * def setGASMType(self, gasmtype): # <<<<<<<<<<<<<< + * cdef PetscPCGASMType cval = gasmtype + * CHKERR( PCGASMSetType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGASMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":410 + * CHKERR( PCGASMSetType(self.pc, cval) ) + * + * def setGASMOverlap(self, overlap): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCGASMSetOverlap(self.pc, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_85setGASMOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_84setGASMOverlap[] = "PC.setGASMOverlap(self, overlap)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_85setGASMOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_overlap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGASMOverlap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_overlap,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overlap)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGASMOverlap") < 0)) __PYX_ERR(47, 410, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_overlap = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGASMOverlap", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 410, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGASMOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_84setGASMOverlap(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_overlap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_84setGASMOverlap(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_overlap) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGASMOverlap", 0); + + /* "petsc4py/PETSc/PC.pyx":411 + * + * def setGASMOverlap(self, overlap): + * cdef PetscInt ival = asInt(overlap) # <<<<<<<<<<<<<< + * CHKERR( PCGASMSetOverlap(self.pc, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_overlap); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 411, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":412 + * def setGASMOverlap(self, overlap): + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCGASMSetOverlap(self.pc, ival) ) # <<<<<<<<<<<<<< + * + * # --- GAMG --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGASMSetOverlap(__pyx_v_self->pc, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 412, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":410 + * CHKERR( PCGASMSetType(self.pc, cval) ) + * + * def setGASMOverlap(self, overlap): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(overlap) + * CHKERR( PCGASMSetOverlap(self.pc, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGASMOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":416 + * # --- GAMG --- + * + * def setGAMGType(self, gamgtype): # <<<<<<<<<<<<<< + * cdef PetscPCGAMGType cval = NULL + * gamgtype = str2bytes(gamgtype, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_87setGAMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_86setGAMGType[] = "PC.setGAMGType(self, gamgtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_87setGAMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_gamgtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGAMGType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gamgtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gamgtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGAMGType") < 0)) __PYX_ERR(47, 416, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_gamgtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGAMGType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 416, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_86setGAMGType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_gamgtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_86setGAMGType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_gamgtype) { + PCGAMGType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGAMGType", 0); + __Pyx_INCREF(__pyx_v_gamgtype); + + /* "petsc4py/PETSc/PC.pyx":417 + * + * def setGAMGType(self, gamgtype): + * cdef PetscPCGAMGType cval = NULL # <<<<<<<<<<<<<< + * gamgtype = str2bytes(gamgtype, &cval) + * CHKERR( PCGAMGSetType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":418 + * def setGAMGType(self, gamgtype): + * cdef PetscPCGAMGType cval = NULL + * gamgtype = str2bytes(gamgtype, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCGAMGSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_gamgtype, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_gamgtype, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":419 + * cdef PetscPCGAMGType cval = NULL + * gamgtype = str2bytes(gamgtype, &cval) + * CHKERR( PCGAMGSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setGAMGLevels(self, levels): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGAMGSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 419, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":416 + * # --- GAMG --- + * + * def setGAMGType(self, gamgtype): # <<<<<<<<<<<<<< + * cdef PetscPCGAMGType cval = NULL + * gamgtype = str2bytes(gamgtype, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gamgtype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":421 + * CHKERR( PCGAMGSetType(self.pc, cval) ) + * + * def setGAMGLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_89setGAMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_88setGAMGLevels[] = "PC.setGAMGLevels(self, levels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_89setGAMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGAMGLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGAMGLevels") < 0)) __PYX_ERR(47, 421, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_levels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGAMGLevels", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 421, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_88setGAMGLevels(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_levels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_88setGAMGLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGAMGLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":422 + * + * def setGAMGLevels(self, levels): + * cdef PetscInt ival = asInt(levels) # <<<<<<<<<<<<<< + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 422, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":423 + * def setGAMGLevels(self, levels): + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) # <<<<<<<<<<<<<< + * + * def setGAMGSmooths(self, smooths): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGAMGSetNlevels(__pyx_v_self->pc, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 423, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":421 + * CHKERR( PCGAMGSetType(self.pc, cval) ) + * + * def setGAMGLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":425 + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) + * + * def setGAMGSmooths(self, smooths): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(smooths) + * CHKERR( PCGAMGSetNSmooths(self.pc, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_91setGAMGSmooths(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_90setGAMGSmooths[] = "PC.setGAMGSmooths(self, smooths)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_91setGAMGSmooths(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_smooths = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGAMGSmooths (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_smooths,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_smooths)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGAMGSmooths") < 0)) __PYX_ERR(47, 425, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_smooths = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGAMGSmooths", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 425, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGSmooths", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_90setGAMGSmooths(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_smooths); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_90setGAMGSmooths(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_smooths) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGAMGSmooths", 0); + + /* "petsc4py/PETSc/PC.pyx":426 + * + * def setGAMGSmooths(self, smooths): + * cdef PetscInt ival = asInt(smooths) # <<<<<<<<<<<<<< + * CHKERR( PCGAMGSetNSmooths(self.pc, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_smooths); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 426, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":427 + * def setGAMGSmooths(self, smooths): + * cdef PetscInt ival = asInt(smooths) + * CHKERR( PCGAMGSetNSmooths(self.pc, ival) ) # <<<<<<<<<<<<<< + * + * # --- Hypre --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCGAMGSetNSmooths(__pyx_v_self->pc, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 427, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":425 + * CHKERR( PCGAMGSetNlevels(self.pc, ival) ) + * + * def setGAMGSmooths(self, smooths): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(smooths) + * CHKERR( PCGAMGSetNSmooths(self.pc, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setGAMGSmooths", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":431 + * # --- Hypre --- + * + * def getHYPREType(self): # <<<<<<<<<<<<<< + * cdef PetscPCHYPREType cval = NULL + * CHKERR( PCHYPREGetType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_93getHYPREType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_92getHYPREType[] = "PC.getHYPREType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_93getHYPREType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHYPREType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getHYPREType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getHYPREType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_92getHYPREType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_92getHYPREType(struct PyPetscPCObject *__pyx_v_self) { + const char* __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHYPREType", 0); + + /* "petsc4py/PETSc/PC.pyx":432 + * + * def getHYPREType(self): + * cdef PetscPCHYPREType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PCHYPREGetType(self.pc, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":433 + * def getHYPREType(self): + * cdef PetscPCHYPREType cval = NULL + * CHKERR( PCHYPREGetType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPREGetType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 433, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":434 + * cdef PetscPCHYPREType cval = NULL + * CHKERR( PCHYPREGetType(self.pc, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setHYPREType(self, hypretype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 434, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":431 + * # --- Hypre --- + * + * def getHYPREType(self): # <<<<<<<<<<<<<< + * cdef PetscPCHYPREType cval = NULL + * CHKERR( PCHYPREGetType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getHYPREType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":436 + * return bytes2str(cval) + * + * def setHYPREType(self, hypretype): # <<<<<<<<<<<<<< + * cdef PetscPCHYPREType cval = NULL + * hypretype = str2bytes(hypretype, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_95setHYPREType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_94setHYPREType[] = "PC.setHYPREType(self, hypretype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_95setHYPREType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_hypretype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPREType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hypretype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hypretype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPREType") < 0)) __PYX_ERR(47, 436, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_hypretype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPREType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 436, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_94setHYPREType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_hypretype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_94setHYPREType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_hypretype) { + const char* __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPREType", 0); + __Pyx_INCREF(__pyx_v_hypretype); + + /* "petsc4py/PETSc/PC.pyx":437 + * + * def setHYPREType(self, hypretype): + * cdef PetscPCHYPREType cval = NULL # <<<<<<<<<<<<<< + * hypretype = str2bytes(hypretype, &cval) + * CHKERR( PCHYPRESetType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":438 + * def setHYPREType(self, hypretype): + * cdef PetscPCHYPREType cval = NULL + * hypretype = str2bytes(hypretype, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_hypretype, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_hypretype, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":439 + * cdef PetscPCHYPREType cval = NULL + * hypretype = str2bytes(hypretype, &cval) + * CHKERR( PCHYPRESetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setHYPREDiscreteCurl(self, Mat mat): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 439, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":436 + * return bytes2str(cval) + * + * def setHYPREType(self, hypretype): # <<<<<<<<<<<<<< + * cdef PetscPCHYPREType cval = NULL + * hypretype = str2bytes(hypretype, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_hypretype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":441 + * CHKERR( PCHYPRESetType(self.pc, cval) ) + * + * def setHYPREDiscreteCurl(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetDiscreteCurl(self.pc, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_97setHYPREDiscreteCurl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_96setHYPREDiscreteCurl[] = "PC.setHYPREDiscreteCurl(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_97setHYPREDiscreteCurl(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPREDiscreteCurl (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPREDiscreteCurl") < 0)) __PYX_ERR(47, 441, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPREDiscreteCurl", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 441, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREDiscreteCurl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 441, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_96setHYPREDiscreteCurl(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_96setHYPREDiscreteCurl(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPREDiscreteCurl", 0); + + /* "petsc4py/PETSc/PC.pyx":442 + * + * def setHYPREDiscreteCurl(self, Mat mat): + * CHKERR( PCHYPRESetDiscreteCurl(self.pc, mat.mat) ) # <<<<<<<<<<<<<< + * + * def setHYPREDiscreteGradient(self, Mat mat): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetDiscreteCurl(__pyx_v_self->pc, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 442, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":441 + * CHKERR( PCHYPRESetType(self.pc, cval) ) + * + * def setHYPREDiscreteCurl(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetDiscreteCurl(self.pc, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREDiscreteCurl", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":444 + * CHKERR( PCHYPRESetDiscreteCurl(self.pc, mat.mat) ) + * + * def setHYPREDiscreteGradient(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetDiscreteGradient(self.pc, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_99setHYPREDiscreteGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_98setHYPREDiscreteGradient[] = "PC.setHYPREDiscreteGradient(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_99setHYPREDiscreteGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPREDiscreteGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPREDiscreteGradient") < 0)) __PYX_ERR(47, 444, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPREDiscreteGradient", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 444, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREDiscreteGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 444, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_98setHYPREDiscreteGradient(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_98setHYPREDiscreteGradient(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPREDiscreteGradient", 0); + + /* "petsc4py/PETSc/PC.pyx":445 + * + * def setHYPREDiscreteGradient(self, Mat mat): + * CHKERR( PCHYPRESetDiscreteGradient(self.pc, mat.mat) ) # <<<<<<<<<<<<<< + * + * def setHYPRESetAlphaPoissonMatrix(self, Mat mat): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetDiscreteGradient(__pyx_v_self->pc, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 445, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":444 + * CHKERR( PCHYPRESetDiscreteCurl(self.pc, mat.mat) ) + * + * def setHYPREDiscreteGradient(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetDiscreteGradient(self.pc, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREDiscreteGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":447 + * CHKERR( PCHYPRESetDiscreteGradient(self.pc, mat.mat) ) + * + * def setHYPRESetAlphaPoissonMatrix(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetAlphaPoissonMatrix(self.pc, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_101setHYPRESetAlphaPoissonMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_100setHYPRESetAlphaPoissonMatrix[] = "PC.setHYPRESetAlphaPoissonMatrix(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_101setHYPRESetAlphaPoissonMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPRESetAlphaPoissonMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPRESetAlphaPoissonMatrix") < 0)) __PYX_ERR(47, 447, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPRESetAlphaPoissonMatrix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 447, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetAlphaPoissonMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 447, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_100setHYPRESetAlphaPoissonMatrix(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_100setHYPRESetAlphaPoissonMatrix(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPRESetAlphaPoissonMatrix", 0); + + /* "petsc4py/PETSc/PC.pyx":448 + * + * def setHYPRESetAlphaPoissonMatrix(self, Mat mat): + * CHKERR( PCHYPRESetAlphaPoissonMatrix(self.pc, mat.mat) ) # <<<<<<<<<<<<<< + * + * def setHYPRESetBetaPoissonMatrix(self, Mat mat=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetAlphaPoissonMatrix(__pyx_v_self->pc, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 448, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":447 + * CHKERR( PCHYPRESetDiscreteGradient(self.pc, mat.mat) ) + * + * def setHYPRESetAlphaPoissonMatrix(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetAlphaPoissonMatrix(self.pc, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetAlphaPoissonMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":450 + * CHKERR( PCHYPRESetAlphaPoissonMatrix(self.pc, mat.mat) ) + * + * def setHYPRESetBetaPoissonMatrix(self, Mat mat=None): # <<<<<<<<<<<<<< + * cdef PetscMat pmat = NULL + * if mat is not None: pmat = mat.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_103setHYPRESetBetaPoissonMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_102setHYPRESetBetaPoissonMatrix[] = "PC.setHYPRESetBetaPoissonMatrix(self, Mat mat=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_103setHYPRESetBetaPoissonMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPRESetBetaPoissonMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPRESetBetaPoissonMatrix") < 0)) __PYX_ERR(47, 450, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPRESetBetaPoissonMatrix", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 450, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetBetaPoissonMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "mat", 0))) __PYX_ERR(47, 450, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_102setHYPRESetBetaPoissonMatrix(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_102setHYPRESetBetaPoissonMatrix(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPRESetBetaPoissonMatrix", 0); + + /* "petsc4py/PETSc/PC.pyx":451 + * + * def setHYPRESetBetaPoissonMatrix(self, Mat mat=None): + * cdef PetscMat pmat = NULL # <<<<<<<<<<<<<< + * if mat is not None: pmat = mat.mat + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) + */ + __pyx_v_pmat = NULL; + + /* "petsc4py/PETSc/PC.pyx":452 + * def setHYPRESetBetaPoissonMatrix(self, Mat mat=None): + * cdef PetscMat pmat = NULL + * if mat is not None: pmat = mat.mat # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_mat) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_mat->mat; + __pyx_v_pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":453 + * cdef PetscMat pmat = NULL + * if mat is not None: pmat = mat.mat + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) # <<<<<<<<<<<<<< + * + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetBetaPoissonMatrix(__pyx_v_self->pc, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 453, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":450 + * CHKERR( PCHYPRESetAlphaPoissonMatrix(self.pc, mat.mat) ) + * + * def setHYPRESetBetaPoissonMatrix(self, Mat mat=None): # <<<<<<<<<<<<<< + * cdef PetscMat pmat = NULL + * if mat is not None: pmat = mat.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetBetaPoissonMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":455 + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) + * + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, # <<<<<<<<<<<<<< + * Mat ND_Pi_Full=None, ND_Pi=None): + * cdef PetscMat RT_full_mat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_105setHYPRESetInterpolations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_104setHYPRESetInterpolations[] = "PC.setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, Mat ND_Pi_Full=None, ND_Pi=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_105setHYPRESetInterpolations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + struct PyPetscMatObject *__pyx_v_RT_Pi_Full = 0; + PyObject *__pyx_v_RT_Pi = 0; + struct PyPetscMatObject *__pyx_v_ND_Pi_Full = 0; + PyObject *__pyx_v_ND_Pi = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPRESetInterpolations (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_RT_Pi_Full,&__pyx_n_s_RT_Pi,&__pyx_n_s_ND_Pi_Full,&__pyx_n_s_ND_Pi,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/PC.pyx":456 + * + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, + * Mat ND_Pi_Full=None, ND_Pi=None): # <<<<<<<<<<<<<< + * cdef PetscMat RT_full_mat = NULL + * if RT_Pi_Full is not None: RT_full_mat = RT_Pi_Full.mat + */ + values[3] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RT_Pi_Full); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_RT_Pi); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ND_Pi_Full); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ND_Pi); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPRESetInterpolations") < 0)) __PYX_ERR(47, 455, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_RT_Pi_Full = ((struct PyPetscMatObject *)values[1]); + __pyx_v_RT_Pi = values[2]; + __pyx_v_ND_Pi_Full = ((struct PyPetscMatObject *)values[3]); + __pyx_v_ND_Pi = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPRESetInterpolations", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 455, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetInterpolations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_RT_Pi_Full), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "RT_Pi_Full", 0))) __PYX_ERR(47, 455, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ND_Pi_Full), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "ND_Pi_Full", 0))) __PYX_ERR(47, 456, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_104setHYPRESetInterpolations(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_dim, __pyx_v_RT_Pi_Full, __pyx_v_RT_Pi, __pyx_v_ND_Pi_Full, __pyx_v_ND_Pi); + + /* "petsc4py/PETSc/PC.pyx":455 + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) + * + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, # <<<<<<<<<<<<<< + * Mat ND_Pi_Full=None, ND_Pi=None): + * cdef PetscMat RT_full_mat = NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_104setHYPRESetInterpolations(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dim, struct PyPetscMatObject *__pyx_v_RT_Pi_Full, PyObject *__pyx_v_RT_Pi, struct PyPetscMatObject *__pyx_v_ND_Pi_Full, PyObject *__pyx_v_ND_Pi) { + Mat __pyx_v_RT_full_mat; + Mat __pyx_v_ND_full_mat; + PetscInt __pyx_v_idim; + Mat *__pyx_v_RT_Pi_mat; + PyObject *__pyx_v_i = NULL; + Mat *__pyx_v_ND_Pi_mat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PetscInt __pyx_t_4; + size_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + Py_ssize_t __pyx_t_10; + PetscErrorCode __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPRESetInterpolations", 0); + + /* "petsc4py/PETSc/PC.pyx":457 + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, + * Mat ND_Pi_Full=None, ND_Pi=None): + * cdef PetscMat RT_full_mat = NULL # <<<<<<<<<<<<<< + * if RT_Pi_Full is not None: RT_full_mat = RT_Pi_Full.mat + * cdef PetscMat ND_full_mat = NULL + */ + __pyx_v_RT_full_mat = NULL; + + /* "petsc4py/PETSc/PC.pyx":458 + * Mat ND_Pi_Full=None, ND_Pi=None): + * cdef PetscMat RT_full_mat = NULL + * if RT_Pi_Full is not None: RT_full_mat = RT_Pi_Full.mat # <<<<<<<<<<<<<< + * cdef PetscMat ND_full_mat = NULL + * if ND_Pi_Full is not None: ND_full_mat = ND_Pi_Full.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_RT_Pi_Full) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_RT_Pi_Full->mat; + __pyx_v_RT_full_mat = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":459 + * cdef PetscMat RT_full_mat = NULL + * if RT_Pi_Full is not None: RT_full_mat = RT_Pi_Full.mat + * cdef PetscMat ND_full_mat = NULL # <<<<<<<<<<<<<< + * if ND_Pi_Full is not None: ND_full_mat = ND_Pi_Full.mat + * cdef PetscInt idim = asInt(dim) + */ + __pyx_v_ND_full_mat = NULL; + + /* "petsc4py/PETSc/PC.pyx":460 + * if RT_Pi_Full is not None: RT_full_mat = RT_Pi_Full.mat + * cdef PetscMat ND_full_mat = NULL + * if ND_Pi_Full is not None: ND_full_mat = ND_Pi_Full.mat # <<<<<<<<<<<<<< + * cdef PetscInt idim = asInt(dim) + * cdef PetscMat *RT_Pi_mat = NULL + */ + __pyx_t_2 = (((PyObject *)__pyx_v_ND_Pi_Full) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_ND_Pi_Full->mat; + __pyx_v_ND_full_mat = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":461 + * cdef PetscMat ND_full_mat = NULL + * if ND_Pi_Full is not None: ND_full_mat = ND_Pi_Full.mat + * cdef PetscInt idim = asInt(dim) # <<<<<<<<<<<<<< + * cdef PetscMat *RT_Pi_mat = NULL + * if RT_Pi is not None: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 461, __pyx_L1_error) + __pyx_v_idim = __pyx_t_4; + + /* "petsc4py/PETSc/PC.pyx":462 + * if ND_Pi_Full is not None: ND_full_mat = ND_Pi_Full.mat + * cdef PetscInt idim = asInt(dim) + * cdef PetscMat *RT_Pi_mat = NULL # <<<<<<<<<<<<<< + * if RT_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + */ + __pyx_v_RT_Pi_mat = NULL; + + /* "petsc4py/PETSc/PC.pyx":463 + * cdef PetscInt idim = asInt(dim) + * cdef PetscMat *RT_Pi_mat = NULL + * if RT_Pi is not None: # <<<<<<<<<<<<<< + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + * assert len(RT_Pi) == dim + */ + __pyx_t_1 = (__pyx_v_RT_Pi != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":464 + * cdef PetscMat *RT_Pi_mat = NULL + * if RT_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) # <<<<<<<<<<<<<< + * assert len(RT_Pi) == dim + * for i in range(dim): + */ + __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_v_dim); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(47, 464, __pyx_L1_error) + (void)(PetscMalloc((((size_t)__pyx_t_5) * (sizeof(Mat))), (&__pyx_v_RT_Pi_mat))); + + /* "petsc4py/PETSc/PC.pyx":465 + * if RT_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + * assert len(RT_Pi) == dim # <<<<<<<<<<<<<< + * for i in range(dim): + * RT_Pi_mat[i] = (RT_Pi[i]).mat + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_6 = PyObject_Length(__pyx_v_RT_Pi); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(47, 465, __pyx_L1_error) + __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_v_dim, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(47, 465, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 465, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":466 + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + * assert len(RT_Pi) == dim + * for i in range(dim): # <<<<<<<<<<<<<< + * RT_Pi_mat[i] = (RT_Pi[i]).mat + * cdef PetscMat *ND_Pi_mat = NULL + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { + __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0; + __pyx_t_9 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(47, 466, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + for (;;) { + if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(47, 466, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(47, 466, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } + } else { + __pyx_t_8 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_8)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(47, 466, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/PC.pyx":467 + * assert len(RT_Pi) == dim + * for i in range(dim): + * RT_Pi_mat[i] = (RT_Pi[i]).mat # <<<<<<<<<<<<<< + * cdef PetscMat *ND_Pi_mat = NULL + * if ND_Pi is not None: + */ + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_RT_Pi, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Mat)))) __PYX_ERR(47, 467, __pyx_L1_error) + __pyx_t_3 = ((struct PyPetscMatObject *)__pyx_t_8)->mat; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(47, 467, __pyx_L1_error) + (__pyx_v_RT_Pi_mat[__pyx_t_10]) = __pyx_t_3; + + /* "petsc4py/PETSc/PC.pyx":466 + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + * assert len(RT_Pi) == dim + * for i in range(dim): # <<<<<<<<<<<<<< + * RT_Pi_mat[i] = (RT_Pi[i]).mat + * cdef PetscMat *ND_Pi_mat = NULL + */ + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/PC.pyx":463 + * cdef PetscInt idim = asInt(dim) + * cdef PetscMat *RT_Pi_mat = NULL + * if RT_Pi is not None: # <<<<<<<<<<<<<< + * PetscMalloc(dim*sizeof(PetscMat), &RT_Pi_mat) + * assert len(RT_Pi) == dim + */ + } + + /* "petsc4py/PETSc/PC.pyx":468 + * for i in range(dim): + * RT_Pi_mat[i] = (RT_Pi[i]).mat + * cdef PetscMat *ND_Pi_mat = NULL # <<<<<<<<<<<<<< + * if ND_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + */ + __pyx_v_ND_Pi_mat = NULL; + + /* "petsc4py/PETSc/PC.pyx":469 + * RT_Pi_mat[i] = (RT_Pi[i]).mat + * cdef PetscMat *ND_Pi_mat = NULL + * if ND_Pi is not None: # <<<<<<<<<<<<<< + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + * assert len(ND_Pi) == dim + */ + __pyx_t_2 = (__pyx_v_ND_Pi != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":470 + * cdef PetscMat *ND_Pi_mat = NULL + * if ND_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) # <<<<<<<<<<<<<< + * assert len(ND_Pi) == dim + * for i in range(dim): + */ + __pyx_t_5 = __Pyx_PyInt_As_size_t(__pyx_v_dim); if (unlikely((__pyx_t_5 == (size_t)-1) && PyErr_Occurred())) __PYX_ERR(47, 470, __pyx_L1_error) + (void)(PetscMalloc((((size_t)__pyx_t_5) * (sizeof(Mat))), (&__pyx_v_ND_Pi_mat))); + + /* "petsc4py/PETSc/PC.pyx":471 + * if ND_Pi is not None: + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + * assert len(ND_Pi) == dim # <<<<<<<<<<<<<< + * for i in range(dim): + * ND_Pi_mat[dim] = (ND_Pi[i]).mat + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_6 = PyObject_Length(__pyx_v_ND_Pi); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(47, 471, __pyx_L1_error) + __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_v_dim, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(47, 471, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_1)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(47, 471, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PC.pyx":472 + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + * assert len(ND_Pi) == dim + * for i in range(dim): # <<<<<<<<<<<<<< + * ND_Pi_mat[dim] = (ND_Pi[i]).mat + * CHKERR (PCHYPRESetInterpolations(self.pc, idim, RT_full_mat, RT_Pi_mat, + */ + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_dim); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { + __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_6 = 0; + __pyx_t_9 = NULL; + } else { + __pyx_t_6 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_9 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(47, 472, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + for (;;) { + if (likely(!__pyx_t_9)) { + if (likely(PyList_CheckExact(__pyx_t_7))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_7)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(47, 472, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_7)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(47, 472, __pyx_L1_error) + #else + __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } + } else { + __pyx_t_8 = __pyx_t_9(__pyx_t_7); + if (unlikely(!__pyx_t_8)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(47, 472, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_8); + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/PC.pyx":473 + * assert len(ND_Pi) == dim + * for i in range(dim): + * ND_Pi_mat[dim] = (ND_Pi[i]).mat # <<<<<<<<<<<<<< + * CHKERR (PCHYPRESetInterpolations(self.pc, idim, RT_full_mat, RT_Pi_mat, + * ND_full_mat, ND_Pi_mat)) + */ + __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ND_Pi, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (!(likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_8petsc4py_5PETSc_Mat)))) __PYX_ERR(47, 473, __pyx_L1_error) + __pyx_t_3 = ((struct PyPetscMatObject *)__pyx_t_8)->mat; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_dim); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(47, 473, __pyx_L1_error) + (__pyx_v_ND_Pi_mat[__pyx_t_10]) = __pyx_t_3; + + /* "petsc4py/PETSc/PC.pyx":472 + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + * assert len(ND_Pi) == dim + * for i in range(dim): # <<<<<<<<<<<<<< + * ND_Pi_mat[dim] = (ND_Pi[i]).mat + * CHKERR (PCHYPRESetInterpolations(self.pc, idim, RT_full_mat, RT_Pi_mat, + */ + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/PC.pyx":469 + * RT_Pi_mat[i] = (RT_Pi[i]).mat + * cdef PetscMat *ND_Pi_mat = NULL + * if ND_Pi is not None: # <<<<<<<<<<<<<< + * PetscMalloc(dim*sizeof(PetscMat), &ND_Pi_mat) + * assert len(ND_Pi) == dim + */ + } + + /* "petsc4py/PETSc/PC.pyx":474 + * for i in range(dim): + * ND_Pi_mat[dim] = (ND_Pi[i]).mat + * CHKERR (PCHYPRESetInterpolations(self.pc, idim, RT_full_mat, RT_Pi_mat, # <<<<<<<<<<<<<< + * ND_full_mat, ND_Pi_mat)) + * CHKERR (PetscFree(RT_Pi_mat)) + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetInterpolations(__pyx_v_self->pc, __pyx_v_idim, __pyx_v_RT_full_mat, __pyx_v_RT_Pi_mat, __pyx_v_ND_full_mat, __pyx_v_ND_Pi_mat)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 474, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":476 + * CHKERR (PCHYPRESetInterpolations(self.pc, idim, RT_full_mat, RT_Pi_mat, + * ND_full_mat, ND_Pi_mat)) + * CHKERR (PetscFree(RT_Pi_mat)) # <<<<<<<<<<<<<< + * CHKERR (PetscFree(ND_Pi_mat)) + * + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_RT_Pi_mat)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 476, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":477 + * ND_full_mat, ND_Pi_mat)) + * CHKERR (PetscFree(RT_Pi_mat)) + * CHKERR (PetscFree(ND_Pi_mat)) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_ND_Pi_mat)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 477, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":455 + * CHKERR( PCHYPRESetBetaPoissonMatrix(self.pc, pmat) ) + * + * def setHYPRESetInterpolations(self, dim, Mat RT_Pi_Full=None, RT_Pi=None, # <<<<<<<<<<<<<< + * Mat ND_Pi_Full=None, ND_Pi=None): + * cdef PetscMat RT_full_mat = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetInterpolations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_i); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":481 + * + * + * def setHYPRESetEdgeConstantVectors(self, Vec ozz, Vec zoz, Vec zzo=None): # <<<<<<<<<<<<<< + * cdef PetscVec zzo_vec = NULL + * if zzo is not None: zzo_vec = zzo.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_107setHYPRESetEdgeConstantVectors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_106setHYPRESetEdgeConstantVectors[] = "PC.setHYPRESetEdgeConstantVectors(self, Vec ozz, Vec zoz, Vec zzo=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_107setHYPRESetEdgeConstantVectors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_ozz = 0; + struct PyPetscVecObject *__pyx_v_zoz = 0; + struct PyPetscVecObject *__pyx_v_zzo = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPRESetEdgeConstantVectors (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ozz,&__pyx_n_s_zoz,&__pyx_n_s_zzo,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ozz)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zoz)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setHYPRESetEdgeConstantVectors", 0, 2, 3, 1); __PYX_ERR(47, 481, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zzo); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPRESetEdgeConstantVectors") < 0)) __PYX_ERR(47, 481, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ozz = ((struct PyPetscVecObject *)values[0]); + __pyx_v_zoz = ((struct PyPetscVecObject *)values[1]); + __pyx_v_zzo = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPRESetEdgeConstantVectors", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 481, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetEdgeConstantVectors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ozz), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "ozz", 0))) __PYX_ERR(47, 481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_zoz), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "zoz", 0))) __PYX_ERR(47, 481, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_zzo), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "zzo", 0))) __PYX_ERR(47, 481, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_106setHYPRESetEdgeConstantVectors(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ozz, __pyx_v_zoz, __pyx_v_zzo); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_106setHYPRESetEdgeConstantVectors(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_ozz, struct PyPetscVecObject *__pyx_v_zoz, struct PyPetscVecObject *__pyx_v_zzo) { + Vec __pyx_v_zzo_vec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPRESetEdgeConstantVectors", 0); + + /* "petsc4py/PETSc/PC.pyx":482 + * + * def setHYPRESetEdgeConstantVectors(self, Vec ozz, Vec zoz, Vec zzo=None): + * cdef PetscVec zzo_vec = NULL # <<<<<<<<<<<<<< + * if zzo is not None: zzo_vec = zzo.vec + * CHKERR( PCHYPRESetEdgeConstantVectors(self.pc, ozz.vec, zoz.vec, + */ + __pyx_v_zzo_vec = NULL; + + /* "petsc4py/PETSc/PC.pyx":483 + * def setHYPRESetEdgeConstantVectors(self, Vec ozz, Vec zoz, Vec zzo=None): + * cdef PetscVec zzo_vec = NULL + * if zzo is not None: zzo_vec = zzo.vec # <<<<<<<<<<<<<< + * CHKERR( PCHYPRESetEdgeConstantVectors(self.pc, ozz.vec, zoz.vec, + * zzo_vec) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_zzo) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_zzo->vec; + __pyx_v_zzo_vec = __pyx_t_3; + } + + /* "petsc4py/PETSc/PC.pyx":484 + * cdef PetscVec zzo_vec = NULL + * if zzo is not None: zzo_vec = zzo.vec + * CHKERR( PCHYPRESetEdgeConstantVectors(self.pc, ozz.vec, zoz.vec, # <<<<<<<<<<<<<< + * zzo_vec) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPRESetEdgeConstantVectors(__pyx_v_self->pc, __pyx_v_ozz->vec, __pyx_v_zoz->vec, __pyx_v_zzo_vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 484, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":481 + * + * + * def setHYPRESetEdgeConstantVectors(self, Vec ozz, Vec zoz, Vec zzo=None): # <<<<<<<<<<<<<< + * cdef PetscVec zzo_vec = NULL + * if zzo is not None: zzo_vec = zzo.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPRESetEdgeConstantVectors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":487 + * zzo_vec) ) + * + * def setHYPREAMSSetInteriorNodes(self, Vec interior): # <<<<<<<<<<<<<< + * CHKERR(PCHYPREAMSSetInteriorNodes(self.pc, interior.vec)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_109setHYPREAMSSetInteriorNodes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_108setHYPREAMSSetInteriorNodes[] = "PC.setHYPREAMSSetInteriorNodes(self, Vec interior)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_109setHYPREAMSSetInteriorNodes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_interior = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHYPREAMSSetInteriorNodes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interior,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interior)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHYPREAMSSetInteriorNodes") < 0)) __PYX_ERR(47, 487, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_interior = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHYPREAMSSetInteriorNodes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 487, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREAMSSetInteriorNodes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_interior), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "interior", 0))) __PYX_ERR(47, 487, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_108setHYPREAMSSetInteriorNodes(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_interior); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_108setHYPREAMSSetInteriorNodes(struct PyPetscPCObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_interior) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHYPREAMSSetInteriorNodes", 0); + + /* "petsc4py/PETSc/PC.pyx":488 + * + * def setHYPREAMSSetInteriorNodes(self, Vec interior): + * CHKERR(PCHYPREAMSSetInteriorNodes(self.pc, interior.vec)) # <<<<<<<<<<<<<< + * + * # --- Factor --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHYPREAMSSetInteriorNodes(__pyx_v_self->pc, __pyx_v_interior->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 488, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":487 + * zzo_vec) ) + * + * def setHYPREAMSSetInteriorNodes(self, Vec interior): # <<<<<<<<<<<<<< + * CHKERR(PCHYPREAMSSetInteriorNodes(self.pc, interior.vec)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHYPREAMSSetInteriorNodes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":492 + * # --- Factor --- + * + * def setFactorSolverType(self, solver): # <<<<<<<<<<<<<< + * cdef PetscMatSolverType cval = NULL + * solver = str2bytes(solver, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_111setFactorSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_110setFactorSolverType[] = "PC.setFactorSolverType(self, solver)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_111setFactorSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_solver = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorSolverType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_solver,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_solver)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFactorSolverType") < 0)) __PYX_ERR(47, 492, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_solver = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFactorSolverType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 492, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorSolverType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_110setFactorSolverType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_solver); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_110setFactorSolverType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_solver) { + MatSolverType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorSolverType", 0); + __Pyx_INCREF(__pyx_v_solver); + + /* "petsc4py/PETSc/PC.pyx":493 + * + * def setFactorSolverType(self, solver): + * cdef PetscMatSolverType cval = NULL # <<<<<<<<<<<<<< + * solver = str2bytes(solver, &cval) + * CHKERR( PCFactorSetMatSolverType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":494 + * def setFactorSolverType(self, solver): + * cdef PetscMatSolverType cval = NULL + * solver = str2bytes(solver, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetMatSolverType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_solver, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_solver, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":495 + * cdef PetscMatSolverType cval = NULL + * solver = str2bytes(solver, &cval) + * CHKERR( PCFactorSetMatSolverType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getFactorSolverType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetMatSolverType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 495, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":492 + * # --- Factor --- + * + * def setFactorSolverType(self, solver): # <<<<<<<<<<<<<< + * cdef PetscMatSolverType cval = NULL + * solver = str2bytes(solver, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorSolverType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solver); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":497 + * CHKERR( PCFactorSetMatSolverType(self.pc, cval) ) + * + * def getFactorSolverType(self): # <<<<<<<<<<<<<< + * cdef PetscMatSolverType cval = NULL + * CHKERR( PCFactorGetMatSolverType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_113getFactorSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_112getFactorSolverType[] = "PC.getFactorSolverType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_113getFactorSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFactorSolverType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFactorSolverType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFactorSolverType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_112getFactorSolverType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_112getFactorSolverType(struct PyPetscPCObject *__pyx_v_self) { + MatSolverType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFactorSolverType", 0); + + /* "petsc4py/PETSc/PC.pyx":498 + * + * def getFactorSolverType(self): + * cdef PetscMatSolverType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PCFactorGetMatSolverType(self.pc, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":499 + * def getFactorSolverType(self): + * cdef PetscMatSolverType cval = NULL + * CHKERR( PCFactorGetMatSolverType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorGetMatSolverType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 499, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":500 + * cdef PetscMatSolverType cval = NULL + * CHKERR( PCFactorGetMatSolverType(self.pc, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFactorSetUpSolverType(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":497 + * CHKERR( PCFactorSetMatSolverType(self.pc, cval) ) + * + * def getFactorSolverType(self): # <<<<<<<<<<<<<< + * cdef PetscMatSolverType cval = NULL + * CHKERR( PCFactorGetMatSolverType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFactorSolverType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":502 + * return bytes2str(cval) + * + * def setFactorSetUpSolverType(self): # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetUpMatSolverType(self.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_115setFactorSetUpSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_114setFactorSetUpSolverType[] = "PC.setFactorSetUpSolverType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_115setFactorSetUpSolverType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorSetUpSolverType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFactorSetUpSolverType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFactorSetUpSolverType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_114setFactorSetUpSolverType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_114setFactorSetUpSolverType(struct PyPetscPCObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorSetUpSolverType", 0); + + /* "petsc4py/PETSc/PC.pyx":503 + * + * def setFactorSetUpSolverType(self): + * CHKERR( PCFactorSetUpMatSolverType(self.pc) ) # <<<<<<<<<<<<<< + * + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetUpMatSolverType(__pyx_v_self->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 503, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":502 + * return bytes2str(cval) + * + * def setFactorSetUpSolverType(self): # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetUpMatSolverType(self.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorSetUpSolverType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":505 + * CHKERR( PCFactorSetUpMatSolverType(self.pc) ) + * + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * if ord_type is not None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_117setFactorOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_116setFactorOrdering[] = "PC.setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_117setFactorOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ord_type = 0; + PyObject *__pyx_v_nzdiag = 0; + PyObject *__pyx_v_reuse = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorOrdering (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ord_type,&__pyx_n_s_nzdiag,&__pyx_n_s_reuse,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ord_type); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nzdiag); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reuse); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFactorOrdering") < 0)) __PYX_ERR(47, 505, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ord_type = values[0]; + __pyx_v_nzdiag = values[1]; + __pyx_v_reuse = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFactorOrdering", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 505, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_116setFactorOrdering(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ord_type, __pyx_v_nzdiag, __pyx_v_reuse); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_116setFactorOrdering(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ord_type, PyObject *__pyx_v_nzdiag, PyObject *__pyx_v_reuse) { + MatOrderingType __pyx_v_cval; + PetscReal __pyx_v_rval; + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PetscReal __pyx_t_5; + PetscBool __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorOrdering", 0); + __Pyx_INCREF(__pyx_v_ord_type); + + /* "petsc4py/PETSc/PC.pyx":506 + * + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): + * cdef PetscMatOrderingType cval = NULL # <<<<<<<<<<<<<< + * if ord_type is not None: + * ord_type = str2bytes(ord_type, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":507 + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): + * cdef PetscMatOrderingType cval = NULL + * if ord_type is not None: # <<<<<<<<<<<<<< + * ord_type = str2bytes(ord_type, &cval) + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + */ + __pyx_t_1 = (__pyx_v_ord_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":508 + * cdef PetscMatOrderingType cval = NULL + * if ord_type is not None: + * ord_type = str2bytes(ord_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + * cdef PetscReal rval = 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ord_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_ord_type, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":509 + * if ord_type is not None: + * ord_type = str2bytes(ord_type, &cval) + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * if nzdiag is not None: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetMatOrderingType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 509, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":507 + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): + * cdef PetscMatOrderingType cval = NULL + * if ord_type is not None: # <<<<<<<<<<<<<< + * ord_type = str2bytes(ord_type, &cval) + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":510 + * ord_type = str2bytes(ord_type, &cval) + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * if nzdiag is not None: + * rval = asReal(nzdiag) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/PC.pyx":511 + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + * cdef PetscReal rval = 0 + * if nzdiag is not None: # <<<<<<<<<<<<<< + * rval = asReal(nzdiag) + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + */ + __pyx_t_2 = (__pyx_v_nzdiag != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":512 + * cdef PetscReal rval = 0 + * if nzdiag is not None: + * rval = asReal(nzdiag) # <<<<<<<<<<<<<< + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_nzdiag); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(47, 512, __pyx_L1_error) + __pyx_v_rval = __pyx_t_5; + + /* "petsc4py/PETSc/PC.pyx":513 + * if nzdiag is not None: + * rval = asReal(nzdiag) + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) # <<<<<<<<<<<<<< + * cdef PetscBool bval = PETSC_FALSE + * if reuse is not None: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorReorderForNonzeroDiagonal(__pyx_v_self->pc, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 513, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":511 + * CHKERR( PCFactorSetMatOrderingType(self.pc, cval) ) + * cdef PetscReal rval = 0 + * if nzdiag is not None: # <<<<<<<<<<<<<< + * rval = asReal(nzdiag) + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":514 + * rval = asReal(nzdiag) + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE # <<<<<<<<<<<<<< + * if reuse is not None: + * bval = PETSC_TRUE if reuse else PETSC_FALSE + */ + __pyx_v_bval = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":515 + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + * if reuse is not None: # <<<<<<<<<<<<<< + * bval = PETSC_TRUE if reuse else PETSC_FALSE + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) + */ + __pyx_t_1 = (__pyx_v_reuse != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":516 + * cdef PetscBool bval = PETSC_FALSE + * if reuse is not None: + * bval = PETSC_TRUE if reuse else PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) + * + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_reuse); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(47, 516, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_t_6 = PETSC_TRUE; + } else { + __pyx_t_6 = PETSC_FALSE; + } + __pyx_v_bval = __pyx_t_6; + + /* "petsc4py/PETSc/PC.pyx":517 + * if reuse is not None: + * bval = PETSC_TRUE if reuse else PETSC_FALSE + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) # <<<<<<<<<<<<<< + * + * def setFactorPivot(self, zeropivot=None, inblocks=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetReuseOrdering(__pyx_v_self->pc, __pyx_v_bval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 517, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":515 + * CHKERR( PCFactorReorderForNonzeroDiagonal(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + * if reuse is not None: # <<<<<<<<<<<<<< + * bval = PETSC_TRUE if reuse else PETSC_FALSE + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":505 + * CHKERR( PCFactorSetUpMatSolverType(self.pc) ) + * + * def setFactorOrdering(self, ord_type=None, nzdiag=None, reuse=None): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * if ord_type is not None: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ord_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":519 + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) + * + * def setFactorPivot(self, zeropivot=None, inblocks=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * if zeropivot is not None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_119setFactorPivot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_118setFactorPivot[] = "PC.setFactorPivot(self, zeropivot=None, inblocks=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_119setFactorPivot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_zeropivot = 0; + PyObject *__pyx_v_inblocks = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorPivot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_zeropivot,&__pyx_n_s_inblocks,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zeropivot); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_inblocks); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFactorPivot") < 0)) __PYX_ERR(47, 519, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_zeropivot = values[0]; + __pyx_v_inblocks = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFactorPivot", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 519, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorPivot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_118setFactorPivot(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_zeropivot, __pyx_v_inblocks); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_118setFactorPivot(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_zeropivot, PyObject *__pyx_v_inblocks) { + PetscReal __pyx_v_rval; + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscBool __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorPivot", 0); + + /* "petsc4py/PETSc/PC.pyx":520 + * + * def setFactorPivot(self, zeropivot=None, inblocks=None): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * if zeropivot is not None: + * rval = asReal(zeropivot) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/PC.pyx":521 + * def setFactorPivot(self, zeropivot=None, inblocks=None): + * cdef PetscReal rval = 0 + * if zeropivot is not None: # <<<<<<<<<<<<<< + * rval = asReal(zeropivot) + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + */ + __pyx_t_1 = (__pyx_v_zeropivot != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":522 + * cdef PetscReal rval = 0 + * if zeropivot is not None: + * rval = asReal(zeropivot) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zeropivot); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(47, 522, __pyx_L1_error) + __pyx_v_rval = __pyx_t_3; + + /* "petsc4py/PETSc/PC.pyx":523 + * if zeropivot is not None: + * rval = asReal(zeropivot) + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) # <<<<<<<<<<<<<< + * cdef PetscBool bval = PETSC_FALSE + * if inblocks is not None: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetZeroPivot(__pyx_v_self->pc, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 523, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":521 + * def setFactorPivot(self, zeropivot=None, inblocks=None): + * cdef PetscReal rval = 0 + * if zeropivot is not None: # <<<<<<<<<<<<<< + * rval = asReal(zeropivot) + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":524 + * rval = asReal(zeropivot) + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE # <<<<<<<<<<<<<< + * if inblocks is not None: + * bval = PETSC_TRUE if inblocks else PETSC_FALSE + */ + __pyx_v_bval = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":525 + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + * if inblocks is not None: # <<<<<<<<<<<<<< + * bval = PETSC_TRUE if inblocks else PETSC_FALSE + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) + */ + __pyx_t_2 = (__pyx_v_inblocks != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":526 + * cdef PetscBool bval = PETSC_FALSE + * if inblocks is not None: + * bval = PETSC_TRUE if inblocks else PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_inblocks); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(47, 526, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_t_5 = PETSC_TRUE; + } else { + __pyx_t_5 = PETSC_FALSE; + } + __pyx_v_bval = __pyx_t_5; + + /* "petsc4py/PETSc/PC.pyx":527 + * if inblocks is not None: + * bval = PETSC_TRUE if inblocks else PETSC_FALSE + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) # <<<<<<<<<<<<<< + * + * def setFactorShift(self, shift_type=None, amount=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetPivotInBlocks(__pyx_v_self->pc, __pyx_v_bval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 527, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":525 + * CHKERR( PCFactorSetZeroPivot(self.pc, rval) ) + * cdef PetscBool bval = PETSC_FALSE + * if inblocks is not None: # <<<<<<<<<<<<<< + * bval = PETSC_TRUE if inblocks else PETSC_FALSE + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":519 + * CHKERR( PCFactorSetReuseOrdering(self.pc, bval) ) + * + * def setFactorPivot(self, zeropivot=None, inblocks=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * if zeropivot is not None: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorPivot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":529 + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) + * + * def setFactorShift(self, shift_type=None, amount=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE + * if shift_type is not None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_121setFactorShift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_120setFactorShift[] = "PC.setFactorShift(self, shift_type=None, amount=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_121setFactorShift(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_shift_type = 0; + PyObject *__pyx_v_amount = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorShift (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shift_type,&__pyx_n_s_amount,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shift_type); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_amount); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFactorShift") < 0)) __PYX_ERR(47, 529, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_shift_type = values[0]; + __pyx_v_amount = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFactorShift", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 529, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorShift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_120setFactorShift(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_shift_type, __pyx_v_amount); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_120setFactorShift(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_shift_type, PyObject *__pyx_v_amount) { + MatFactorShiftType __pyx_v_cval; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MatFactorShiftType __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscReal __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorShift", 0); + + /* "petsc4py/PETSc/PC.pyx":530 + * + * def setFactorShift(self, shift_type=None, amount=None): + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE # <<<<<<<<<<<<<< + * if shift_type is not None: + * cval = matfactorshifttype(shift_type) + */ + __pyx_v_cval = MAT_SHIFT_NONE; + + /* "petsc4py/PETSc/PC.pyx":531 + * def setFactorShift(self, shift_type=None, amount=None): + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE + * if shift_type is not None: # <<<<<<<<<<<<<< + * cval = matfactorshifttype(shift_type) + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + */ + __pyx_t_1 = (__pyx_v_shift_type != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":532 + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE + * if shift_type is not None: + * cval = matfactorshifttype(shift_type) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + * cdef PetscReal rval = 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_matfactorshifttype(__pyx_v_shift_type); if (unlikely(__pyx_t_3 == ((MatFactorShiftType)((MatFactorShiftType)-1L)))) __PYX_ERR(47, 532, __pyx_L1_error) + __pyx_v_cval = __pyx_t_3; + + /* "petsc4py/PETSc/PC.pyx":533 + * if shift_type is not None: + * cval = matfactorshifttype(shift_type) + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * if amount is not None: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetShiftType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 533, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":531 + * def setFactorShift(self, shift_type=None, amount=None): + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE + * if shift_type is not None: # <<<<<<<<<<<<<< + * cval = matfactorshifttype(shift_type) + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":534 + * cval = matfactorshifttype(shift_type) + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * if amount is not None: + * rval = asReal(amount) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/PC.pyx":535 + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + * cdef PetscReal rval = 0 + * if amount is not None: # <<<<<<<<<<<<<< + * rval = asReal(amount) + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) + */ + __pyx_t_2 = (__pyx_v_amount != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PC.pyx":536 + * cdef PetscReal rval = 0 + * if amount is not None: + * rval = asReal(amount) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_amount); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(47, 536, __pyx_L1_error) + __pyx_v_rval = __pyx_t_5; + + /* "petsc4py/PETSc/PC.pyx":537 + * if amount is not None: + * rval = asReal(amount) + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) # <<<<<<<<<<<<<< + * + * def setFactorLevels(self, levels): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetShiftAmount(__pyx_v_self->pc, __pyx_v_rval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 537, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":535 + * CHKERR( PCFactorSetShiftType(self.pc, cval) ) + * cdef PetscReal rval = 0 + * if amount is not None: # <<<<<<<<<<<<<< + * rval = asReal(amount) + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) + */ + } + + /* "petsc4py/PETSc/PC.pyx":529 + * CHKERR( PCFactorSetPivotInBlocks(self.pc, bval) ) + * + * def setFactorShift(self, shift_type=None, amount=None): # <<<<<<<<<<<<<< + * cdef PetscMatFactorShiftType cval = MAT_SHIFT_NONE + * if shift_type is not None: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorShift", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":539 + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) + * + * def setFactorLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCFactorSetLevels(self.pc, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_123setFactorLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_122setFactorLevels[] = "PC.setFactorLevels(self, levels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_123setFactorLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFactorLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFactorLevels") < 0)) __PYX_ERR(47, 539, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_levels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFactorLevels", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 539, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_122setFactorLevels(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_levels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_122setFactorLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFactorLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":540 + * + * def setFactorLevels(self, levels): + * cdef PetscInt ival = asInt(levels) # <<<<<<<<<<<<<< + * CHKERR( PCFactorSetLevels(self.pc, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 540, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":541 + * def setFactorLevels(self, levels): + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCFactorSetLevels(self.pc, ival) ) # <<<<<<<<<<<<<< + * + * def getFactorMatrix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorSetLevels(__pyx_v_self->pc, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 541, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":539 + * CHKERR( PCFactorSetShiftAmount(self.pc, rval) ) + * + * def setFactorLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(levels) + * CHKERR( PCFactorSetLevels(self.pc, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFactorLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":543 + * CHKERR( PCFactorSetLevels(self.pc, ival) ) + * + * def getFactorMatrix(self): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_125getFactorMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_124getFactorMatrix[] = "PC.getFactorMatrix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_125getFactorMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFactorMatrix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFactorMatrix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFactorMatrix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_124getFactorMatrix(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_124getFactorMatrix(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFactorMatrix", 0); + + /* "petsc4py/PETSc/PC.pyx":544 + * + * def getFactorMatrix(self): + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":545 + * def getFactorMatrix(self): + * cdef Mat mat = Mat() + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFactorGetMatrix(__pyx_v_self->pc, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 545, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":546 + * cdef Mat mat = Mat() + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":547 + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * # --- FieldSplit --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":543 + * CHKERR( PCFactorSetLevels(self.pc, ival) ) + * + * def getFactorMatrix(self): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( PCFactorGetMatrix(self.pc, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFactorMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":551 + * # --- FieldSplit --- + * + * def setFieldSplitType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_127setFieldSplitType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_126setFieldSplitType[] = "PC.setFieldSplitType(self, ctype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_127setFieldSplitType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ctype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldSplitType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ctype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldSplitType") < 0)) __PYX_ERR(47, 551, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ctype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldSplitType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 551, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_126setFieldSplitType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ctype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_126setFieldSplitType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype) { + PCCompositeType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCCompositeType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldSplitType", 0); + + /* "petsc4py/PETSc/PC.pyx":552 + * + * def setFieldSplitType(self, ctype): + * cdef PetscPCCompositeType cval = ctype # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCCompositeType)__Pyx_PyInt_As_PCCompositeType(__pyx_v_ctype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 552, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":553 + * def setFieldSplitType(self, ctype): + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setFieldSplitIS(self, *fields): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 553, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":551 + * # --- FieldSplit --- + * + * def setFieldSplitType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":555 + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) + * + * def setFieldSplitIS(self, *fields): # <<<<<<<<<<<<<< + * cdef object name = None + * cdef IS field = None + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_129setFieldSplitIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_128setFieldSplitIS[] = "PC.setFieldSplitIS(self, *fields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_129setFieldSplitIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fields = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldSplitIS (wrapper)", 0); + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFieldSplitIS", 0))) return NULL; + __Pyx_INCREF(__pyx_args); + __pyx_v_fields = __pyx_args; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_128setFieldSplitIS(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_fields); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_fields); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_128setFieldSplitIS(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_fields) { + PyObject *__pyx_v_name = 0; + struct PyPetscISObject *__pyx_v_field = 0; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldSplitIS", 0); + + /* "petsc4py/PETSc/PC.pyx":556 + * + * def setFieldSplitIS(self, *fields): + * cdef object name = None # <<<<<<<<<<<<<< + * cdef IS field = None + * cdef const char *cname = NULL + */ + __Pyx_INCREF(Py_None); + __pyx_v_name = Py_None; + + /* "petsc4py/PETSc/PC.pyx":557 + * def setFieldSplitIS(self, *fields): + * cdef object name = None + * cdef IS field = None # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * for name, field in fields: + */ + __Pyx_INCREF(Py_None); + __pyx_v_field = ((struct PyPetscISObject *)Py_None); + + /* "petsc4py/PETSc/PC.pyx":558 + * cdef object name = None + * cdef IS field = None + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * for name, field in fields: + * name = str2bytes(name, &cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/PC.pyx":559 + * cdef IS field = None + * cdef const char *cname = NULL + * for name, field in fields: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) + */ + __pyx_t_1 = __pyx_v_fields; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; + for (;;) { + if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(47, 559, __pyx_L1_error) + #else + __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(47, 559, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(47, 559, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(47, 559, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8petsc4py_5PETSc_IS))))) __PYX_ERR(47, 559, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_field, ((struct PyPetscISObject *)__pyx_t_5)); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":560 + * cdef const char *cname = NULL + * for name, field in fields: + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":561 + * for name, field in fields: + * name = str2bytes(name, &cname) + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) # <<<<<<<<<<<<<< + * + * def setFieldSplitFields(self, bsize, *fields): + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetIS(__pyx_v_self->pc, __pyx_v_cname, __pyx_v_field->iset)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 561, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":559 + * cdef IS field = None + * cdef const char *cname = NULL + * for name, field in fields: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) + */ + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":555 + * CHKERR( PCFieldSplitSetType(self.pc, cval) ) + * + * def setFieldSplitIS(self, *fields): # <<<<<<<<<<<<<< + * cdef object name = None + * cdef IS field = None + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF((PyObject *)__pyx_v_field); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":563 + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) + * + * def setFieldSplitFields(self, bsize, *fields): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_131setFieldSplitFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_130setFieldSplitFields[] = "PC.setFieldSplitFields(self, bsize, *fields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_131setFieldSplitFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_bsize = 0; + PyObject *__pyx_v_fields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldSplitFields (wrapper)", 0); + if (PyTuple_GET_SIZE(__pyx_args) > 1) { + __pyx_v_fields = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); + if (unlikely(!__pyx_v_fields)) { + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_fields); + } else { + __pyx_v_fields = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); + } + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bsize,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + default: + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bsize)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "setFieldSplitFields") < 0)) __PYX_ERR(47, 563, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bsize = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldSplitFields", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 563, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_fields); __pyx_v_fields = 0; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_130setFieldSplitFields(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_bsize, __pyx_v_fields); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_fields); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_130setFieldSplitFields(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_bsize, PyObject *__pyx_v_fields) { + PetscInt __pyx_v_bs; + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_field = 0; + char const *__pyx_v_cname; + PetscInt __pyx_v_nfields; + PetscInt *__pyx_v_ifields; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *(*__pyx_t_9)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldSplitFields", 0); + + /* "petsc4py/PETSc/PC.pyx":564 + * + * def setFieldSplitFields(self, bsize, *fields): + * cdef PetscInt bs = asInt(bsize) # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) + * cdef object name = None + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bsize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 564, __pyx_L1_error) + __pyx_v_bs = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":565 + * def setFieldSplitFields(self, bsize, *fields): + * cdef PetscInt bs = asInt(bsize) + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) # <<<<<<<<<<<<<< + * cdef object name = None + * cdef object field = None + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetBlockSize(__pyx_v_self->pc, __pyx_v_bs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 565, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":566 + * cdef PetscInt bs = asInt(bsize) + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) + * cdef object name = None # <<<<<<<<<<<<<< + * cdef object field = None + * cdef const char *cname = NULL + */ + __Pyx_INCREF(Py_None); + __pyx_v_name = Py_None; + + /* "petsc4py/PETSc/PC.pyx":567 + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) + * cdef object name = None + * cdef object field = None # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef PetscInt nfields = 0, *ifields = NULL + */ + __Pyx_INCREF(Py_None); + __pyx_v_field = Py_None; + + /* "petsc4py/PETSc/PC.pyx":568 + * cdef object name = None + * cdef object field = None + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nfields = 0, *ifields = NULL + * for name, field in fields: + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/PC.pyx":569 + * cdef object field = None + * cdef const char *cname = NULL + * cdef PetscInt nfields = 0, *ifields = NULL # <<<<<<<<<<<<<< + * for name, field in fields: + * name = str2bytes(name, &cname) + */ + __pyx_v_nfields = 0; + __pyx_v_ifields = NULL; + + /* "petsc4py/PETSc/PC.pyx":570 + * cdef const char *cname = NULL + * cdef PetscInt nfields = 0, *ifields = NULL + * for name, field in fields: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * field = iarray_i(field, &nfields, &ifields) + */ + __pyx_t_3 = __pyx_v_fields; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0; + for (;;) { + if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(47, 570, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(47, 570, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_7 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + #else + __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext; + index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) __PYX_ERR(47, 570, __pyx_L1_error) + __pyx_t_9 = NULL; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(47, 570, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_6); + __pyx_t_6 = 0; + __Pyx_DECREF_SET(__pyx_v_field, __pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/PC.pyx":571 + * cdef PetscInt nfields = 0, *ifields = NULL + * for name, field in fields: + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * field = iarray_i(field, &nfields, &ifields) + * CHKERR( PCFieldSplitSetFields(self.pc, cname, + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":572 + * for name, field in fields: + * name = str2bytes(name, &cname) + * field = iarray_i(field, &nfields, &ifields) # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetFields(self.pc, cname, + * nfields, ifields, ifields) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_field, (&__pyx_v_nfields), (&__pyx_v_ifields))); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_field, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":573 + * name = str2bytes(name, &cname) + * field = iarray_i(field, &nfields, &ifields) + * CHKERR( PCFieldSplitSetFields(self.pc, cname, # <<<<<<<<<<<<<< + * nfields, ifields, ifields) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetFields(__pyx_v_self->pc, __pyx_v_cname, __pyx_v_nfields, __pyx_v_ifields, __pyx_v_ifields)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 573, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":570 + * cdef const char *cname = NULL + * cdef PetscInt nfields = 0, *ifields = NULL + * for name, field in fields: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * field = iarray_i(field, &nfields, &ifields) + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":563 + * CHKERR( PCFieldSplitSetIS(self.pc, cname, field.iset) ) + * + * def setFieldSplitFields(self, bsize, *fields): # <<<<<<<<<<<<<< + * cdef PetscInt bs = asInt(bsize) + * CHKERR( PCFieldSplitSetBlockSize(self.pc, bs) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_field); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":576 + * nfields, ifields, ifields) ) + * + * def getFieldSplitSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_133getFieldSplitSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_132getFieldSplitSubKSP[] = "PC.getFieldSplitSubKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_133getFieldSplitSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldSplitSubKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFieldSplitSubKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFieldSplitSubKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_132getFieldSplitSubKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_132getFieldSplitSubKSP(struct PyPetscPCObject *__pyx_v_self) { + CYTHON_UNUSED PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + KSP *__pyx_v_p; + PyObject *__pyx_v_subksp = 0; + PetscInt __pyx_8genexpr9__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldSplitSubKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":577 + * + * def getFieldSplitSubKSP(self): + * cdef PetscInt i = 0, n = 0 # <<<<<<<<<<<<<< + * cdef PetscKSP *p = NULL + * cdef object subksp = None + */ + __pyx_v_i = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/PC.pyx":578 + * def getFieldSplitSubKSP(self): + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL # <<<<<<<<<<<<<< + * cdef object subksp = None + * try: + */ + __pyx_v_p = NULL; + + /* "petsc4py/PETSc/PC.pyx":579 + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + * cdef object subksp = None # <<<<<<<<<<<<<< + * try: + * CHKERR( PCFieldSplitGetSubKSP(self.pc, &n, &p) ) + */ + __Pyx_INCREF(Py_None); + __pyx_v_subksp = Py_None; + + /* "petsc4py/PETSc/PC.pyx":580 + * cdef PetscKSP *p = NULL + * cdef object subksp = None + * try: # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitGetSubKSP(self.pc, &n, &p) ) + * subksp = [ref_KSP(p[i]) for i from 0 <= i pc, (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 581, __pyx_L4_error) + + /* "petsc4py/PETSc/PC.pyx":582 + * try: + * CHKERR( PCFieldSplitGetSubKSP(self.pc, &n, &p) ) + * subksp = [ref_KSP(p[i]) for i from 0 <= i = 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_p)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 584, __pyx_L9_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + __pyx_L9_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/PC.pyx":585 + * finally: + * CHKERR( PetscFree(p) ) + * return subksp # <<<<<<<<<<<<<< + * + * def getFieldSplitSchurGetSubKSP(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_subksp); + __pyx_r = __pyx_v_subksp; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":576 + * nfields, ifields, ifields) ) + * + * def getFieldSplitSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFieldSplitSubKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_subksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":587 + * return subksp + * + * def getFieldSplitSchurGetSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_135getFieldSplitSchurGetSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_134getFieldSplitSchurGetSubKSP[] = "PC.getFieldSplitSchurGetSubKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_135getFieldSplitSchurGetSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldSplitSchurGetSubKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFieldSplitSchurGetSubKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFieldSplitSchurGetSubKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_134getFieldSplitSchurGetSubKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_134getFieldSplitSchurGetSubKSP(struct PyPetscPCObject *__pyx_v_self) { + CYTHON_UNUSED PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + KSP *__pyx_v_p; + PyObject *__pyx_v_subksp = 0; + PetscInt __pyx_9genexpr10__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + char const *__pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldSplitSchurGetSubKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":588 + * + * def getFieldSplitSchurGetSubKSP(self): + * cdef PetscInt i = 0, n = 0 # <<<<<<<<<<<<<< + * cdef PetscKSP *p = NULL + * cdef object subksp = None + */ + __pyx_v_i = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/PC.pyx":589 + * def getFieldSplitSchurGetSubKSP(self): + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL # <<<<<<<<<<<<<< + * cdef object subksp = None + * try: + */ + __pyx_v_p = NULL; + + /* "petsc4py/PETSc/PC.pyx":590 + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + * cdef object subksp = None # <<<<<<<<<<<<<< + * try: + * CHKERR( PCFieldSplitSchurGetSubKSP(self.pc, &n, &p) ) + */ + __Pyx_INCREF(Py_None); + __pyx_v_subksp = Py_None; + + /* "petsc4py/PETSc/PC.pyx":591 + * cdef PetscKSP *p = NULL + * cdef object subksp = None + * try: # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSchurGetSubKSP(self.pc, &n, &p) ) + * subksp = [ref_KSP(p[i]) for i from 0 <= i pc, (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 592, __pyx_L4_error) + + /* "petsc4py/PETSc/PC.pyx":593 + * try: + * CHKERR( PCFieldSplitSchurGetSubKSP(self.pc, &n, &p) ) + * subksp = [ref_KSP(p[i]) for i from 0 <= i = 3) __Pyx_ExceptionSwap(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10) < 0)) __Pyx_ErrFetch(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __pyx_t_5 = __pyx_lineno; __pyx_t_6 = __pyx_clineno; __pyx_t_7 = __pyx_filename; + { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_p)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 595, __pyx_L9_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ErrRestore(__pyx_t_8, __pyx_t_9, __pyx_t_10); + __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + __pyx_lineno = __pyx_t_5; __pyx_clineno = __pyx_t_6; __pyx_filename = __pyx_t_7; + goto __pyx_L1_error; + __pyx_L9_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + } + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/PC.pyx":596 + * finally: + * CHKERR( PetscFree(p) ) + * return subksp # <<<<<<<<<<<<<< + * + * def setFieldSplitSchurFactType(self, ctype): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_subksp); + __pyx_r = __pyx_v_subksp; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":587 + * return subksp + * + * def getFieldSplitSchurGetSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscKSP *p = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getFieldSplitSchurGetSubKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_subksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":598 + * return subksp + * + * def setFieldSplitSchurFactType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCFieldSplitSchurFactType cval = ctype + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_137setFieldSplitSchurFactType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_136setFieldSplitSchurFactType[] = "PC.setFieldSplitSchurFactType(self, ctype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_137setFieldSplitSchurFactType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ctype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldSplitSchurFactType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ctype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldSplitSchurFactType") < 0)) __PYX_ERR(47, 598, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ctype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldSplitSchurFactType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 598, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitSchurFactType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_136setFieldSplitSchurFactType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ctype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_136setFieldSplitSchurFactType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype) { + PCFieldSplitSchurFactType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCFieldSplitSchurFactType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldSplitSchurFactType", 0); + + /* "petsc4py/PETSc/PC.pyx":599 + * + * def setFieldSplitSchurFactType(self, ctype): + * cdef PetscPCFieldSplitSchurFactType cval = ctype # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCFieldSplitSchurFactType)__Pyx_PyInt_As_PCFieldSplitSchurFactType(__pyx_v_ctype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 599, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":600 + * def setFieldSplitSchurFactType(self, ctype): + * cdef PetscPCFieldSplitSchurFactType cval = ctype + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setFieldSplitSchurPreType(self, ptype, Mat pre=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetSchurFactType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 600, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":598 + * return subksp + * + * def setFieldSplitSchurFactType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCFieldSplitSchurFactType cval = ctype + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitSchurFactType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":602 + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) + * + * def setFieldSplitSchurPreType(self, ptype, Mat pre=None): # <<<<<<<<<<<<<< + * cdef PetscPCFieldSplitSchurPreType pval = ptype + * cdef PetscMat pmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_139setFieldSplitSchurPreType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_138setFieldSplitSchurPreType[] = "PC.setFieldSplitSchurPreType(self, ptype, Mat pre=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_139setFieldSplitSchurPreType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ptype = 0; + struct PyPetscMatObject *__pyx_v_pre = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldSplitSchurPreType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptype,&__pyx_n_s_pre,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pre); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldSplitSchurPreType") < 0)) __PYX_ERR(47, 602, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ptype = values[0]; + __pyx_v_pre = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldSplitSchurPreType", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 602, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitSchurPreType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pre), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "pre", 0))) __PYX_ERR(47, 602, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_138setFieldSplitSchurPreType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ptype, __pyx_v_pre); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_138setFieldSplitSchurPreType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ptype, struct PyPetscMatObject *__pyx_v_pre) { + PCFieldSplitSchurPreType __pyx_v_pval; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCFieldSplitSchurPreType __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Mat __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldSplitSchurPreType", 0); + + /* "petsc4py/PETSc/PC.pyx":603 + * + * def setFieldSplitSchurPreType(self, ptype, Mat pre=None): + * cdef PetscPCFieldSplitSchurPreType pval = ptype # <<<<<<<<<<<<<< + * cdef PetscMat pmat = NULL + * if pre is not None: pmat = pre.mat + */ + __pyx_t_1 = ((PCFieldSplitSchurPreType)__Pyx_PyInt_As_PCFieldSplitSchurPreType(__pyx_v_ptype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 603, __pyx_L1_error) + __pyx_v_pval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":604 + * def setFieldSplitSchurPreType(self, ptype, Mat pre=None): + * cdef PetscPCFieldSplitSchurPreType pval = ptype + * cdef PetscMat pmat = NULL # <<<<<<<<<<<<<< + * if pre is not None: pmat = pre.mat + * CHKERR( PCFieldSplitSetSchurPre(self.pc, pval, pmat) ) + */ + __pyx_v_pmat = NULL; + + /* "petsc4py/PETSc/PC.pyx":605 + * cdef PetscPCFieldSplitSchurPreType pval = ptype + * cdef PetscMat pmat = NULL + * if pre is not None: pmat = pre.mat # <<<<<<<<<<<<<< + * CHKERR( PCFieldSplitSetSchurPre(self.pc, pval, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_pre) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_pre->mat; + __pyx_v_pmat = __pyx_t_4; + } + + /* "petsc4py/PETSc/PC.pyx":606 + * cdef PetscMat pmat = NULL + * if pre is not None: pmat = pre.mat + * CHKERR( PCFieldSplitSetSchurPre(self.pc, pval, pmat) ) # <<<<<<<<<<<<<< + * + * # --- COMPOSITE --- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCFieldSplitSetSchurPre(__pyx_v_self->pc, __pyx_v_pval, __pyx_v_pmat)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 606, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":602 + * CHKERR( PCFieldSplitSetSchurFactType(self.pc, cval) ) + * + * def setFieldSplitSchurPreType(self, ptype, Mat pre=None): # <<<<<<<<<<<<<< + * cdef PetscPCFieldSplitSchurPreType pval = ptype + * cdef PetscMat pmat = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setFieldSplitSchurPreType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":610 + * # --- COMPOSITE --- + * + * def setCompositeType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCCompositeSetType(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_141setCompositeType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_140setCompositeType[] = "PC.setCompositeType(self, ctype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_141setCompositeType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ctype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCompositeType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ctype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCompositeType") < 0)) __PYX_ERR(47, 610, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ctype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCompositeType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 610, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setCompositeType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_140setCompositeType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_ctype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_140setCompositeType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_ctype) { + PCCompositeType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCCompositeType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCompositeType", 0); + + /* "petsc4py/PETSc/PC.pyx":611 + * + * def setCompositeType(self, ctype): + * cdef PetscPCCompositeType cval = ctype # <<<<<<<<<<<<<< + * CHKERR( PCCompositeSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCCompositeType)__Pyx_PyInt_As_PCCompositeType(__pyx_v_ctype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 611, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":612 + * def setCompositeType(self, ctype): + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCCompositeSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getCompositePC(self, n): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCCompositeSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 612, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":610 + * # --- COMPOSITE --- + * + * def setCompositeType(self, ctype): # <<<<<<<<<<<<<< + * cdef PetscPCCompositeType cval = ctype + * CHKERR( PCCompositeSetType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setCompositeType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":614 + * CHKERR( PCCompositeSetType(self.pc, cval) ) + * + * def getCompositePC(self, n): # <<<<<<<<<<<<<< + * cdef PC pc = PC() + * cdef cn = asInt(n) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_143getCompositePC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_142getCompositePC[] = "PC.getCompositePC(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_143getCompositePC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCompositePC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCompositePC") < 0)) __PYX_ERR(47, 614, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCompositePC", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 614, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getCompositePC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_142getCompositePC(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_142getCompositePC(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_n) { + struct PyPetscPCObject *__pyx_v_pc = 0; + PyObject *__pyx_v_cn = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCompositePC", 0); + + /* "petsc4py/PETSc/PC.pyx":615 + * + * def getCompositePC(self, n): + * cdef PC pc = PC() # <<<<<<<<<<<<<< + * cdef cn = asInt(n) + * CHKERR( PCCompositeGetPC(self.pc, cn, &pc.pc) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":616 + * def getCompositePC(self, n): + * cdef PC pc = PC() + * cdef cn = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( PCCompositeGetPC(self.pc, cn, &pc.pc) ) + * PetscINCREF(pc.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 616, __pyx_L1_error) + __pyx_t_1 = __Pyx_PyInt_From_PetscInt(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 616, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cn = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":617 + * cdef PC pc = PC() + * cdef cn = asInt(n) + * CHKERR( PCCompositeGetPC(self.pc, cn, &pc.pc) ) # <<<<<<<<<<<<<< + * PetscINCREF(pc.obj) + * return pc + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_cn); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(47, 617, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCCompositeGetPC(__pyx_v_self->pc, __pyx_t_2, (&__pyx_v_pc->pc))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 617, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":618 + * cdef cn = asInt(n) + * CHKERR( PCCompositeGetPC(self.pc, cn, &pc.pc) ) + * PetscINCREF(pc.obj) # <<<<<<<<<<<<<< + * return pc + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_pc->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":619 + * CHKERR( PCCompositeGetPC(self.pc, cn, &pc.pc) ) + * PetscINCREF(pc.obj) + * return pc # <<<<<<<<<<<<<< + * + * def addCompositePCType(self, pc_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_pc)); + __pyx_r = ((PyObject *)__pyx_v_pc); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":614 + * CHKERR( PCCompositeSetType(self.pc, cval) ) + * + * def getCompositePC(self, n): # <<<<<<<<<<<<<< + * cdef PC pc = PC() + * cdef cn = asInt(n) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getCompositePC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_pc); + __Pyx_XDECREF(__pyx_v_cn); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":621 + * return pc + * + * def addCompositePCType(self, pc_type): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_145addCompositePCType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_144addCompositePCType[] = "PC.addCompositePCType(self, pc_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_145addCompositePCType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_pc_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addCompositePCType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pc_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pc_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addCompositePCType") < 0)) __PYX_ERR(47, 621, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_pc_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addCompositePCType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 621, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.addCompositePCType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_144addCompositePCType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_pc_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_144addCompositePCType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_pc_type) { + PCType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addCompositePCType", 0); + __Pyx_INCREF(__pyx_v_pc_type); + + /* "petsc4py/PETSc/PC.pyx":622 + * + * def addCompositePCType(self, pc_type): + * cdef PetscPCType cval = NULL # <<<<<<<<<<<<<< + * pc_type = str2bytes(pc_type, &cval) + * CHKERR( PCCompositeAddPCType(self.pc, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/PC.pyx":623 + * def addCompositePCType(self, pc_type): + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PCCompositeAddPCType(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_pc_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_pc_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":624 + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + * CHKERR( PCCompositeAddPCType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * # --- KSP --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCCompositeAddPCType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 624, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":621 + * return pc + * + * def addCompositePCType(self, pc_type): # <<<<<<<<<<<<<< + * cdef PetscPCType cval = NULL + * pc_type = str2bytes(pc_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.addCompositePCType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pc_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":628 + * # --- KSP --- + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_147getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_146getKSP[] = "PC.getKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_147getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_146getKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_146getKSP(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":629 + * + * def getKSP(self): + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":630 + * def getKSP(self): + * cdef KSP ksp = KSP() + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCKSPGetKSP(__pyx_v_self->pc, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 630, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":631 + * cdef KSP ksp = KSP() + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":632 + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * # --- MG --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":628 + * # --- KSP --- + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCKSPGetKSP(self.pc, &ksp.ksp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":636 + * # --- MG --- + * + * def getMGType(self): # <<<<<<<<<<<<<< + * cdef PetscPCMGType cval = PC_MG_ADDITIVE + * CHKERR( PCMGGetType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_149getMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_148getMGType[] = "PC.getMGType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_149getMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMGType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMGType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_148getMGType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_148getMGType(struct PyPetscPCObject *__pyx_v_self) { + PCMGType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGType", 0); + + /* "petsc4py/PETSc/PC.pyx":637 + * + * def getMGType(self): + * cdef PetscPCMGType cval = PC_MG_ADDITIVE # <<<<<<<<<<<<<< + * CHKERR( PCMGGetType(self.pc, &cval) ) + * return cval + */ + __pyx_v_cval = PC_MG_ADDITIVE; + + /* "petsc4py/PETSc/PC.pyx":638 + * def getMGType(self): + * cdef PetscPCMGType cval = PC_MG_ADDITIVE + * CHKERR( PCMGGetType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return cval + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 638, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":639 + * cdef PetscPCMGType cval = PC_MG_ADDITIVE + * CHKERR( PCMGGetType(self.pc, &cval) ) + * return cval # <<<<<<<<<<<<<< + * + * def setMGType(self, mgtype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCMGType(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":636 + * # --- MG --- + * + * def getMGType(self): # <<<<<<<<<<<<<< + * cdef PetscPCMGType cval = PC_MG_ADDITIVE + * CHKERR( PCMGGetType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":641 + * return cval + * + * def setMGType(self, mgtype): # <<<<<<<<<<<<<< + * cdef PetscPCMGType cval = mgtype + * CHKERR( PCMGSetType(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_151setMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_150setMGType[] = "PC.setMGType(self, mgtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_151setMGType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mgtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mgtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mgtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGType") < 0)) __PYX_ERR(47, 641, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mgtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 641, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_150setMGType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mgtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_150setMGType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_mgtype) { + PCMGType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCMGType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGType", 0); + + /* "petsc4py/PETSc/PC.pyx":642 + * + * def setMGType(self, mgtype): + * cdef PetscPCMGType cval = mgtype # <<<<<<<<<<<<<< + * CHKERR( PCMGSetType(self.pc, cval) ) + * + */ + __pyx_t_1 = ((PCMGType)__Pyx_PyInt_As_PCMGType(__pyx_v_mgtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 642, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":643 + * def setMGType(self, mgtype): + * cdef PetscPCMGType cval = mgtype + * CHKERR( PCMGSetType(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def getMGLevels(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetType(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 643, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":641 + * return cval + * + * def setMGType(self, mgtype): # <<<<<<<<<<<<<< + * cdef PetscPCMGType cval = mgtype + * CHKERR( PCMGSetType(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":645 + * CHKERR( PCMGSetType(self.pc, cval) ) + * + * def getMGLevels(self): # <<<<<<<<<<<<<< + * cdef PetscInt levels = 0 + * CHKERR( PCMGGetLevels(self.pc, &levels) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_153getMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_152getMGLevels[] = "PC.getMGLevels(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_153getMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGLevels (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMGLevels", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMGLevels", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_152getMGLevels(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_152getMGLevels(struct PyPetscPCObject *__pyx_v_self) { + PetscInt __pyx_v_levels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":646 + * + * def getMGLevels(self): + * cdef PetscInt levels = 0 # <<<<<<<<<<<<<< + * CHKERR( PCMGGetLevels(self.pc, &levels) ) + * return toInt(levels) + */ + __pyx_v_levels = 0; + + /* "petsc4py/PETSc/PC.pyx":647 + * def getMGLevels(self): + * cdef PetscInt levels = 0 + * CHKERR( PCMGGetLevels(self.pc, &levels) ) # <<<<<<<<<<<<<< + * return toInt(levels) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetLevels(__pyx_v_self->pc, (&__pyx_v_levels))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 647, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":648 + * cdef PetscInt levels = 0 + * CHKERR( PCMGGetLevels(self.pc, &levels) ) + * return toInt(levels) # <<<<<<<<<<<<<< + * + * def setMGLevels(self, levels): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_levels); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":645 + * CHKERR( PCMGSetType(self.pc, cval) ) + * + * def getMGLevels(self): # <<<<<<<<<<<<<< + * cdef PetscInt levels = 0 + * CHKERR( PCMGGetLevels(self.pc, &levels) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":650 + * return toInt(levels) + * + * def setMGLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_155setMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_154setMGLevels[] = "PC.setMGLevels(self, levels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_155setMGLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGLevels") < 0)) __PYX_ERR(47, 650, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_levels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGLevels", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 650, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_154setMGLevels(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_levels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_154setMGLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels) { + PetscInt __pyx_v_clevels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":651 + * + * def setMGLevels(self, levels): + * cdef PetscInt clevels = asInt(levels) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 651, __pyx_L1_error) + __pyx_v_clevels = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":652 + * def setMGLevels(self, levels): + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) # <<<<<<<<<<<<<< + * + * def getMGCoarseSolve(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetLevels(__pyx_v_self->pc, __pyx_v_clevels, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 652, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":650 + * return toInt(levels) + * + * def setMGLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":654 + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) + * + * def getMGCoarseSolve(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_157getMGCoarseSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_156getMGCoarseSolve[] = "PC.getMGCoarseSolve(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_157getMGCoarseSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGCoarseSolve (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMGCoarseSolve", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMGCoarseSolve", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_156getMGCoarseSolve(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_156getMGCoarseSolve(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGCoarseSolve", 0); + + /* "petsc4py/PETSc/PC.pyx":655 + * + * def getMGCoarseSolve(self): + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":656 + * def getMGCoarseSolve(self): + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetCoarseSolve(__pyx_v_self->pc, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 656, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":657 + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":658 + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def setMGInterpolation(self, level, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":654 + * CHKERR( PCMGSetLevels(self.pc, clevels, NULL) ) + * + * def getMGCoarseSolve(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetCoarseSolve(self.pc, &ksp.ksp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGCoarseSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":660 + * return ksp + * + * def setMGInterpolation(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_159setMGInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_158setMGInterpolation[] = "PC.setMGInterpolation(self, level, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_159setMGInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_mat,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGInterpolation", 1, 2, 2, 1); __PYX_ERR(47, 660, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGInterpolation") < 0)) __PYX_ERR(47, 660, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_mat = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGInterpolation", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 660, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 660, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_158setMGInterpolation(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_158setMGInterpolation(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGInterpolation", 0); + + /* "petsc4py/PETSc/PC.pyx":661 + * + * def setMGInterpolation(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 661, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":662 + * def setMGInterpolation(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getMGInterpolation(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetInterpolation(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_mat->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 662, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":660 + * return ksp + * + * def setMGInterpolation(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":664 + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) + * + * def getMGInterpolation(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat interpolation = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_161getMGInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_160getMGInterpolation[] = "PC.getMGInterpolation(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_161getMGInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGInterpolation") < 0)) __PYX_ERR(47, 664, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGInterpolation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 664, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_160getMGInterpolation(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_160getMGInterpolation(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscMatObject *__pyx_v_interpolation = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGInterpolation", 0); + + /* "petsc4py/PETSc/PC.pyx":665 + * + * def getMGInterpolation(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Mat interpolation = Mat() + * CHKERR( PCMGGetInterpolation(self.pc, clevel, &interpolation.mat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 665, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":666 + * def getMGInterpolation(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Mat interpolation = Mat() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetInterpolation(self.pc, clevel, &interpolation.mat) ) + * PetscINCREF(interpolation.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 666, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_interpolation = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":667 + * cdef PetscInt clevel = asInt(level) + * cdef Mat interpolation = Mat() + * CHKERR( PCMGGetInterpolation(self.pc, clevel, &interpolation.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(interpolation.obj) + * return interpolation + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetInterpolation(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_interpolation->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 667, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":668 + * cdef Mat interpolation = Mat() + * CHKERR( PCMGGetInterpolation(self.pc, clevel, &interpolation.mat) ) + * PetscINCREF(interpolation.obj) # <<<<<<<<<<<<<< + * return interpolation + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_interpolation->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":669 + * CHKERR( PCMGGetInterpolation(self.pc, clevel, &interpolation.mat) ) + * PetscINCREF(interpolation.obj) + * return interpolation # <<<<<<<<<<<<<< + * + * def setMGRestriction(self, level, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_interpolation)); + __pyx_r = ((PyObject *)__pyx_v_interpolation); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":664 + * CHKERR( PCMGSetInterpolation(self.pc, clevel, mat.mat) ) + * + * def getMGInterpolation(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat interpolation = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_interpolation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":671 + * return interpolation + * + * def setMGRestriction(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_163setMGRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_162setMGRestriction[] = "PC.setMGRestriction(self, level, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_163setMGRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_mat,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGRestriction", 1, 2, 2, 1); __PYX_ERR(47, 671, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGRestriction") < 0)) __PYX_ERR(47, 671, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_mat = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGRestriction", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 671, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 671, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_162setMGRestriction(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_162setMGRestriction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGRestriction", 0); + + /* "petsc4py/PETSc/PC.pyx":672 + * + * def setMGRestriction(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 672, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":673 + * def setMGRestriction(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getMGRestriction(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetRestriction(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_mat->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 673, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":671 + * return interpolation + * + * def setMGRestriction(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":675 + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) + * + * def getMGRestriction(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat restriction = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_165getMGRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_164getMGRestriction[] = "PC.getMGRestriction(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_165getMGRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGRestriction") < 0)) __PYX_ERR(47, 675, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGRestriction", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 675, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_164getMGRestriction(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_164getMGRestriction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscMatObject *__pyx_v_restriction = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGRestriction", 0); + + /* "petsc4py/PETSc/PC.pyx":676 + * + * def getMGRestriction(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Mat restriction = Mat() + * CHKERR( PCMGGetRestriction(self.pc, clevel, &restriction.mat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 676, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":677 + * def getMGRestriction(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Mat restriction = Mat() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetRestriction(self.pc, clevel, &restriction.mat) ) + * PetscINCREF(restriction.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_restriction = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":678 + * cdef PetscInt clevel = asInt(level) + * cdef Mat restriction = Mat() + * CHKERR( PCMGGetRestriction(self.pc, clevel, &restriction.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(restriction.obj) + * return restriction + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetRestriction(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_restriction->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 678, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":679 + * cdef Mat restriction = Mat() + * CHKERR( PCMGGetRestriction(self.pc, clevel, &restriction.mat) ) + * PetscINCREF(restriction.obj) # <<<<<<<<<<<<<< + * return restriction + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_restriction->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":680 + * CHKERR( PCMGGetRestriction(self.pc, clevel, &restriction.mat) ) + * PetscINCREF(restriction.obj) + * return restriction # <<<<<<<<<<<<<< + * + * def setMGRScale(self, level, Vec rscale): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_restriction)); + __pyx_r = ((PyObject *)__pyx_v_restriction); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":675 + * CHKERR( PCMGSetRestriction(self.pc, clevel, mat.mat) ) + * + * def getMGRestriction(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat restriction = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_restriction); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":682 + * return restriction + * + * def setMGRScale(self, level, Vec rscale): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_167setMGRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_166setMGRScale[] = "PC.setMGRScale(self, level, Vec rscale)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_167setMGRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscVecObject *__pyx_v_rscale = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGRScale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_rscale,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rscale)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGRScale", 1, 2, 2, 1); __PYX_ERR(47, 682, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGRScale") < 0)) __PYX_ERR(47, 682, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_rscale = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGRScale", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 682, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rscale), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "rscale", 0))) __PYX_ERR(47, 682, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_166setMGRScale(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_rscale); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_166setMGRScale(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_rscale) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGRScale", 0); + + /* "petsc4py/PETSc/PC.pyx":683 + * + * def setMGRScale(self, level, Vec rscale): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 683, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":684 + * def setMGRScale(self, level, Vec rscale): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) # <<<<<<<<<<<<<< + * + * def getMGRScale(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetRScale(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_rscale->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 684, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":682 + * return restriction + * + * def setMGRScale(self, level, Vec rscale): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":686 + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) + * + * def getMGRScale(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Vec rscale = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_169getMGRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_168getMGRScale[] = "PC.getMGRScale(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_169getMGRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGRScale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGRScale") < 0)) __PYX_ERR(47, 686, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGRScale", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 686, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_168getMGRScale(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_168getMGRScale(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscVecObject *__pyx_v_rscale = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGRScale", 0); + + /* "petsc4py/PETSc/PC.pyx":687 + * + * def getMGRScale(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Vec rscale = Vec() + * CHKERR( PCMGGetRScale(self.pc, clevel, &rscale.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 687, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":688 + * def getMGRScale(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Vec rscale = Vec() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetRScale(self.pc, clevel, &rscale.vec) ) + * PetscINCREF(rscale.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_rscale = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":689 + * cdef PetscInt clevel = asInt(level) + * cdef Vec rscale = Vec() + * CHKERR( PCMGGetRScale(self.pc, clevel, &rscale.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(rscale.obj) + * return rscale + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetRScale(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_rscale->vec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 689, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":690 + * cdef Vec rscale = Vec() + * CHKERR( PCMGGetRScale(self.pc, clevel, &rscale.vec) ) + * PetscINCREF(rscale.obj) # <<<<<<<<<<<<<< + * return rscale + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_rscale->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":691 + * CHKERR( PCMGGetRScale(self.pc, clevel, &rscale.vec) ) + * PetscINCREF(rscale.obj) + * return rscale # <<<<<<<<<<<<<< + * + * def getMGSmoother(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_rscale)); + __pyx_r = ((PyObject *)__pyx_v_rscale); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":686 + * CHKERR( PCMGSetRScale(self.pc, clevel, rscale.vec) ) + * + * def getMGRScale(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Vec rscale = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_rscale); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":693 + * return rscale + * + * def getMGSmoother(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_171getMGSmoother(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_170getMGSmoother[] = "PC.getMGSmoother(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_171getMGSmoother(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGSmoother (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGSmoother") < 0)) __PYX_ERR(47, 693, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGSmoother", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 693, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmoother", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_170getMGSmoother(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_170getMGSmoother(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGSmoother", 0); + + /* "petsc4py/PETSc/PC.pyx":694 + * + * def getMGSmoother(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmoother(self.pc, clevel, &ksp.ksp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 694, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":695 + * def getMGSmoother(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetSmoother(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":696 + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmoother(self.pc, clevel, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetSmoother(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 696, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":697 + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmoother(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":698 + * CHKERR( PCMGGetSmoother(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def getMGSmootherDown(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":693 + * return rscale + * + * def getMGSmoother(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmoother", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":700 + * return ksp + * + * def getMGSmootherDown(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_173getMGSmootherDown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_172getMGSmootherDown[] = "PC.getMGSmootherDown(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_173getMGSmootherDown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGSmootherDown (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGSmootherDown") < 0)) __PYX_ERR(47, 700, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGSmootherDown", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 700, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmootherDown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_172getMGSmootherDown(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_172getMGSmootherDown(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGSmootherDown", 0); + + /* "petsc4py/PETSc/PC.pyx":701 + * + * def getMGSmootherDown(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherDown(self.pc, clevel, &ksp.ksp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 701, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":702 + * def getMGSmootherDown(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetSmootherDown(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":703 + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherDown(self.pc, clevel, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetSmootherDown(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 703, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":704 + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherDown(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":705 + * CHKERR( PCMGGetSmootherDown(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def getMGSmootherUp(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":700 + * return ksp + * + * def getMGSmootherDown(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmootherDown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":707 + * return ksp + * + * def getMGSmootherUp(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_175getMGSmootherUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_174getMGSmootherUp[] = "PC.getMGSmootherUp(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_175getMGSmootherUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMGSmootherUp (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMGSmootherUp") < 0)) __PYX_ERR(47, 707, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMGSmootherUp", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 707, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmootherUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_174getMGSmootherUp(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_174getMGSmootherUp(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMGSmootherUp", 0); + + /* "petsc4py/PETSc/PC.pyx":708 + * + * def getMGSmootherUp(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherUp(self.pc, clevel, &ksp.ksp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 708, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":709 + * def getMGSmootherUp(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCMGGetSmootherUp(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PC.pyx":710 + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherUp(self.pc, clevel, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGGetSmootherUp(__pyx_v_self->pc, __pyx_v_clevel, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 710, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":711 + * cdef KSP ksp = KSP() + * CHKERR( PCMGGetSmootherUp(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":712 + * CHKERR( PCMGGetSmootherUp(self.pc, clevel, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def setMGCycleType(self, cycle_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":707 + * return ksp + * + * def getMGSmootherUp(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef KSP ksp = KSP() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getMGSmootherUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":714 + * return ksp + * + * def setMGCycleType(self, cycle_type): # <<<<<<<<<<<<<< + * cdef PetscPCMGCycleType ctype = cycle_type + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_177setMGCycleType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_176setMGCycleType[] = "PC.setMGCycleType(self, cycle_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_177setMGCycleType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cycle_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGCycleType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cycle_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cycle_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGCycleType") < 0)) __PYX_ERR(47, 714, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_cycle_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGCycleType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 714, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGCycleType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_176setMGCycleType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_cycle_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_176setMGCycleType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_cycle_type) { + PCMGCycleType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCMGCycleType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGCycleType", 0); + + /* "petsc4py/PETSc/PC.pyx":715 + * + * def setMGCycleType(self, cycle_type): + * cdef PetscPCMGCycleType ctype = cycle_type # <<<<<<<<<<<<<< + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) + * + */ + __pyx_t_1 = ((PCMGCycleType)__Pyx_PyInt_As_PCMGCycleType(__pyx_v_cycle_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 715, __pyx_L1_error) + __pyx_v_ctype = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":716 + * def setMGCycleType(self, cycle_type): + * cdef PetscPCMGCycleType ctype = cycle_type + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) # <<<<<<<<<<<<<< + * + * def setMGCycleTypeOnLevel(self, level, cycle_type): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetCycleType(__pyx_v_self->pc, __pyx_v_ctype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 716, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":714 + * return ksp + * + * def setMGCycleType(self, cycle_type): # <<<<<<<<<<<<<< + * cdef PetscPCMGCycleType ctype = cycle_type + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGCycleType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":718 + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) + * + * def setMGCycleTypeOnLevel(self, level, cycle_type): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef PetscPCMGCycleType ctype = cycle_type + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_179setMGCycleTypeOnLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_178setMGCycleTypeOnLevel[] = "PC.setMGCycleTypeOnLevel(self, level, cycle_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_179setMGCycleTypeOnLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + PyObject *__pyx_v_cycle_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGCycleTypeOnLevel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_cycle_type,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cycle_type)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGCycleTypeOnLevel", 1, 2, 2, 1); __PYX_ERR(47, 718, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGCycleTypeOnLevel") < 0)) __PYX_ERR(47, 718, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_cycle_type = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGCycleTypeOnLevel", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 718, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGCycleTypeOnLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_178setMGCycleTypeOnLevel(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_cycle_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_178setMGCycleTypeOnLevel(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, PyObject *__pyx_v_cycle_type) { + PetscInt __pyx_v_clevel; + PCMGCycleType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PCMGCycleType __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGCycleTypeOnLevel", 0); + + /* "petsc4py/PETSc/PC.pyx":719 + * + * def setMGCycleTypeOnLevel(self, level, cycle_type): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef PetscPCMGCycleType ctype = cycle_type + * CHKERR( PCMGSetCycleTypeOnLevel(self.pc, clevel, ctype) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 719, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":720 + * def setMGCycleTypeOnLevel(self, level, cycle_type): + * cdef PetscInt clevel = asInt(level) + * cdef PetscPCMGCycleType ctype = cycle_type # <<<<<<<<<<<<<< + * CHKERR( PCMGSetCycleTypeOnLevel(self.pc, clevel, ctype) ) + * + */ + __pyx_t_2 = ((PCMGCycleType)__Pyx_PyInt_As_PCMGCycleType(__pyx_v_cycle_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 720, __pyx_L1_error) + __pyx_v_ctype = __pyx_t_2; + + /* "petsc4py/PETSc/PC.pyx":721 + * cdef PetscInt clevel = asInt(level) + * cdef PetscPCMGCycleType ctype = cycle_type + * CHKERR( PCMGSetCycleTypeOnLevel(self.pc, clevel, ctype) ) # <<<<<<<<<<<<<< + * + * def setMGRhs(self, level, Vec rhs): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetCycleTypeOnLevel(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_ctype)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 721, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":718 + * CHKERR( PCMGSetCycleType(self.pc, ctype) ) + * + * def setMGCycleTypeOnLevel(self, level, cycle_type): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef PetscPCMGCycleType ctype = cycle_type + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGCycleTypeOnLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":723 + * CHKERR( PCMGSetCycleTypeOnLevel(self.pc, clevel, ctype) ) + * + * def setMGRhs(self, level, Vec rhs): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_181setMGRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_180setMGRhs[] = "PC.setMGRhs(self, level, Vec rhs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_181setMGRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscVecObject *__pyx_v_rhs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGRhs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_rhs,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGRhs", 1, 2, 2, 1); __PYX_ERR(47, 723, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGRhs") < 0)) __PYX_ERR(47, 723, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_rhs = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGRhs", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 723, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRhs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_rhs), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "rhs", 0))) __PYX_ERR(47, 723, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_180setMGRhs(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_rhs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_180setMGRhs(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_rhs) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGRhs", 0); + + /* "petsc4py/PETSc/PC.pyx":724 + * + * def setMGRhs(self, level, Vec rhs): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 724, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":725 + * def setMGRhs(self, level, Vec rhs): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) # <<<<<<<<<<<<<< + * + * def setMGX(self, level, Vec x): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetRhs(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_rhs->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 725, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":723 + * CHKERR( PCMGSetCycleTypeOnLevel(self.pc, clevel, ctype) ) + * + * def setMGRhs(self, level, Vec rhs): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGRhs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":727 + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) + * + * def setMGX(self, level, Vec x): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_183setMGX(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_182setMGX[] = "PC.setMGX(self, level, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_183setMGX(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGX (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGX", 1, 2, 2, 1); __PYX_ERR(47, 727, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGX") < 0)) __PYX_ERR(47, 727, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGX", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 727, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(47, 727, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_182setMGX(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_182setMGX(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_x) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGX", 0); + + /* "petsc4py/PETSc/PC.pyx":728 + * + * def setMGX(self, level, Vec x): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 728, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":729 + * def setMGX(self, level, Vec x): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) # <<<<<<<<<<<<<< + * + * def setMGR(self, level, Vec r): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetX(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_x->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 729, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":727 + * CHKERR( PCMGSetRhs(self.pc, clevel, rhs.vec) ) + * + * def setMGX(self, level, Vec x): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":731 + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) + * + * def setMGR(self, level, Vec r): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetR(self.pc, clevel, r.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_185setMGR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_184setMGR[] = "PC.setMGR(self, level, Vec r)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_185setMGR(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscVecObject *__pyx_v_r = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMGR (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_r,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMGR", 1, 2, 2, 1); __PYX_ERR(47, 731, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMGR") < 0)) __PYX_ERR(47, 731, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_r = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMGR", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 731, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "r", 0))) __PYX_ERR(47, 731, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_184setMGR(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level, __pyx_v_r); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_184setMGR(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_r) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMGR", 0); + + /* "petsc4py/PETSc/PC.pyx":732 + * + * def setMGR(self, level, Vec r): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCMGSetR(self.pc, clevel, r.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 732, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":733 + * def setMGR(self, level, Vec r): + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetR(self.pc, clevel, r.vec) ) # <<<<<<<<<<<<<< + * + * # --- BDDC --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMGSetR(__pyx_v_self->pc, __pyx_v_clevel, __pyx_v_r->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 733, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":731 + * CHKERR( PCMGSetX(self.pc, clevel, x.vec) ) + * + * def setMGR(self, level, Vec r): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( PCMGSetR(self.pc, clevel, r.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setMGR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":737 + * # --- BDDC --- + * + * def setBDDCDivergenceMat(self, Mat div, trans=False, IS l2l=None): # <<<<<<<<<<<<<< + * cdef PetscBool ptrans = trans + * cdef PetscIS pl2l = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_187setBDDCDivergenceMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_186setBDDCDivergenceMat[] = "PC.setBDDCDivergenceMat(self, Mat div, trans=False, IS l2l=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_187setBDDCDivergenceMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_div = 0; + PyObject *__pyx_v_trans = 0; + struct PyPetscISObject *__pyx_v_l2l = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDivergenceMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_div,&__pyx_n_s_trans,&__pyx_n_s_l2l,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_False); + values[2] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_div)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trans); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_l2l); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDivergenceMat") < 0)) __PYX_ERR(47, 737, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_div = ((struct PyPetscMatObject *)values[0]); + __pyx_v_trans = values[1]; + __pyx_v_l2l = ((struct PyPetscISObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDivergenceMat", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 737, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDivergenceMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_div), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "div", 0))) __PYX_ERR(47, 737, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l2l), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "l2l", 0))) __PYX_ERR(47, 737, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_186setBDDCDivergenceMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_div, __pyx_v_trans, __pyx_v_l2l); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_186setBDDCDivergenceMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_div, PyObject *__pyx_v_trans, struct PyPetscISObject *__pyx_v_l2l) { + PetscBool __pyx_v_ptrans; + IS __pyx_v_pl2l; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + IS __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDivergenceMat", 0); + + /* "petsc4py/PETSc/PC.pyx":738 + * + * def setBDDCDivergenceMat(self, Mat div, trans=False, IS l2l=None): + * cdef PetscBool ptrans = trans # <<<<<<<<<<<<<< + * cdef PetscIS pl2l = NULL + * if l2l is not None: pl2l = l2l.iset + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_trans)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 738, __pyx_L1_error) + __pyx_v_ptrans = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":739 + * def setBDDCDivergenceMat(self, Mat div, trans=False, IS l2l=None): + * cdef PetscBool ptrans = trans + * cdef PetscIS pl2l = NULL # <<<<<<<<<<<<<< + * if l2l is not None: pl2l = l2l.iset + * CHKERR( PCBDDCSetDivergenceMat(self.pc, div.mat, ptrans, pl2l) ) + */ + __pyx_v_pl2l = NULL; + + /* "petsc4py/PETSc/PC.pyx":740 + * cdef PetscBool ptrans = trans + * cdef PetscIS pl2l = NULL + * if l2l is not None: pl2l = l2l.iset # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDivergenceMat(self.pc, div.mat, ptrans, pl2l) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_l2l) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __pyx_v_l2l->iset; + __pyx_v_pl2l = __pyx_t_4; + } + + /* "petsc4py/PETSc/PC.pyx":741 + * cdef PetscIS pl2l = NULL + * if l2l is not None: pl2l = l2l.iset + * CHKERR( PCBDDCSetDivergenceMat(self.pc, div.mat, ptrans, pl2l) ) # <<<<<<<<<<<<<< + * + * def setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDivergenceMat(__pyx_v_self->pc, __pyx_v_div->mat, __pyx_v_ptrans, __pyx_v_pl2l)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 741, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":737 + * # --- BDDC --- + * + * def setBDDCDivergenceMat(self, Mat div, trans=False, IS l2l=None): # <<<<<<<<<<<<<< + * cdef PetscBool ptrans = trans + * cdef PetscIS pl2l = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDivergenceMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":743 + * CHKERR( PCBDDCSetDivergenceMat(self.pc, div.mat, ptrans, pl2l) ) + * + * def setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True): # <<<<<<<<<<<<<< + * cdef PetscInt porder = asInt(order) + * cdef PetscInt pfield = asInt(field) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_189setBDDCDiscreteGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_188setBDDCDiscreteGradient[] = "PC.setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_189setBDDCDiscreteGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_G = 0; + PyObject *__pyx_v_order = 0; + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_gord = 0; + PyObject *__pyx_v_conforming = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDiscreteGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_G,&__pyx_n_s_order,&__pyx_n_s_field,&__pyx_n_s_gord,&__pyx_n_s_conforming,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = ((PyObject *)__pyx_int_1); + values[2] = ((PyObject *)__pyx_int_1); + values[3] = ((PyObject *)Py_True); + values[4] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_G)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_order); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gord); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_conforming); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDiscreteGradient") < 0)) __PYX_ERR(47, 743, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_G = ((struct PyPetscMatObject *)values[0]); + __pyx_v_order = values[1]; + __pyx_v_field = values[2]; + __pyx_v_gord = values[3]; + __pyx_v_conforming = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDiscreteGradient", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 743, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDiscreteGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_G), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "G", 0))) __PYX_ERR(47, 743, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_188setBDDCDiscreteGradient(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_G, __pyx_v_order, __pyx_v_field, __pyx_v_gord, __pyx_v_conforming); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_188setBDDCDiscreteGradient(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_G, PyObject *__pyx_v_order, PyObject *__pyx_v_field, PyObject *__pyx_v_gord, PyObject *__pyx_v_conforming) { + PetscInt __pyx_v_porder; + PetscInt __pyx_v_pfield; + PetscBool __pyx_v_pgord; + PetscBool __pyx_v_pconforming; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDiscreteGradient", 0); + + /* "petsc4py/PETSc/PC.pyx":744 + * + * def setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True): + * cdef PetscInt porder = asInt(order) # <<<<<<<<<<<<<< + * cdef PetscInt pfield = asInt(field) + * cdef PetscBool pgord = gord + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_order); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 744, __pyx_L1_error) + __pyx_v_porder = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":745 + * def setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True): + * cdef PetscInt porder = asInt(order) + * cdef PetscInt pfield = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscBool pgord = gord + * cdef PetscBool pconforming = conforming + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 745, __pyx_L1_error) + __pyx_v_pfield = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":746 + * cdef PetscInt porder = asInt(order) + * cdef PetscInt pfield = asInt(field) + * cdef PetscBool pgord = gord # <<<<<<<<<<<<<< + * cdef PetscBool pconforming = conforming + * CHKERR( PCBDDCSetDiscreteGradient(self.pc, G.mat, porder, pfield, pgord, pconforming) ) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_gord)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 746, __pyx_L1_error) + __pyx_v_pgord = __pyx_t_2; + + /* "petsc4py/PETSc/PC.pyx":747 + * cdef PetscInt pfield = asInt(field) + * cdef PetscBool pgord = gord + * cdef PetscBool pconforming = conforming # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDiscreteGradient(self.pc, G.mat, porder, pfield, pgord, pconforming) ) + * + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_conforming)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 747, __pyx_L1_error) + __pyx_v_pconforming = __pyx_t_2; + + /* "petsc4py/PETSc/PC.pyx":748 + * cdef PetscBool pgord = gord + * cdef PetscBool pconforming = conforming + * CHKERR( PCBDDCSetDiscreteGradient(self.pc, G.mat, porder, pfield, pgord, pconforming) ) # <<<<<<<<<<<<<< + * + * def setBDDCChangeOfBasisMat(self, Mat T, interior=False): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDiscreteGradient(__pyx_v_self->pc, __pyx_v_G->mat, __pyx_v_porder, __pyx_v_pfield, __pyx_v_pgord, __pyx_v_pconforming)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 748, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":743 + * CHKERR( PCBDDCSetDivergenceMat(self.pc, div.mat, ptrans, pl2l) ) + * + * def setBDDCDiscreteGradient(self, Mat G, order=1, field=1, gord=True, conforming=True): # <<<<<<<<<<<<<< + * cdef PetscInt porder = asInt(order) + * cdef PetscInt pfield = asInt(field) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDiscreteGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":750 + * CHKERR( PCBDDCSetDiscreteGradient(self.pc, G.mat, porder, pfield, pgord, pconforming) ) + * + * def setBDDCChangeOfBasisMat(self, Mat T, interior=False): # <<<<<<<<<<<<<< + * cdef PetscBool pinterior = interior + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_191setBDDCChangeOfBasisMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_190setBDDCChangeOfBasisMat[] = "PC.setBDDCChangeOfBasisMat(self, Mat T, interior=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_191setBDDCChangeOfBasisMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_T = 0; + PyObject *__pyx_v_interior = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCChangeOfBasisMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_T,&__pyx_n_s_interior,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_T)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interior); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCChangeOfBasisMat") < 0)) __PYX_ERR(47, 750, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_T = ((struct PyPetscMatObject *)values[0]); + __pyx_v_interior = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCChangeOfBasisMat", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 750, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCChangeOfBasisMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_T), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "T", 0))) __PYX_ERR(47, 750, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_190setBDDCChangeOfBasisMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_T, __pyx_v_interior); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_190setBDDCChangeOfBasisMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_T, PyObject *__pyx_v_interior) { + PetscBool __pyx_v_pinterior; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCChangeOfBasisMat", 0); + + /* "petsc4py/PETSc/PC.pyx":751 + * + * def setBDDCChangeOfBasisMat(self, Mat T, interior=False): + * cdef PetscBool pinterior = interior # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interior)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 751, __pyx_L1_error) + __pyx_v_pinterior = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":752 + * def setBDDCChangeOfBasisMat(self, Mat T, interior=False): + * cdef PetscBool pinterior = interior + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) # <<<<<<<<<<<<<< + * + * def setBDDCPrimalVerticesIS(self, IS primv): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetChangeOfBasisMat(__pyx_v_self->pc, __pyx_v_T->mat, __pyx_v_pinterior)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 752, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":750 + * CHKERR( PCBDDCSetDiscreteGradient(self.pc, G.mat, porder, pfield, pgord, pconforming) ) + * + * def setBDDCChangeOfBasisMat(self, Mat T, interior=False): # <<<<<<<<<<<<<< + * cdef PetscBool pinterior = interior + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCChangeOfBasisMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":754 + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) + * + * def setBDDCPrimalVerticesIS(self, IS primv): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetPrimalVerticesIS(self.pc, primv.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_193setBDDCPrimalVerticesIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_192setBDDCPrimalVerticesIS[] = "PC.setBDDCPrimalVerticesIS(self, IS primv)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_193setBDDCPrimalVerticesIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_primv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCPrimalVerticesIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_primv,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_primv)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCPrimalVerticesIS") < 0)) __PYX_ERR(47, 754, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_primv = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCPrimalVerticesIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 754, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCPrimalVerticesIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_primv), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "primv", 0))) __PYX_ERR(47, 754, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_192setBDDCPrimalVerticesIS(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_primv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_192setBDDCPrimalVerticesIS(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_primv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCPrimalVerticesIS", 0); + + /* "petsc4py/PETSc/PC.pyx":755 + * + * def setBDDCPrimalVerticesIS(self, IS primv): + * CHKERR( PCBDDCSetPrimalVerticesIS(self.pc, primv.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCPrimalVerticesLocalIS(self, IS primv): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetPrimalVerticesIS(__pyx_v_self->pc, __pyx_v_primv->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 755, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":754 + * CHKERR( PCBDDCSetChangeOfBasisMat(self.pc, T.mat, pinterior) ) + * + * def setBDDCPrimalVerticesIS(self, IS primv): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetPrimalVerticesIS(self.pc, primv.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCPrimalVerticesIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":757 + * CHKERR( PCBDDCSetPrimalVerticesIS(self.pc, primv.iset) ) + * + * def setBDDCPrimalVerticesLocalIS(self, IS primv): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetPrimalVerticesLocalIS(self.pc, primv.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_195setBDDCPrimalVerticesLocalIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_194setBDDCPrimalVerticesLocalIS[] = "PC.setBDDCPrimalVerticesLocalIS(self, IS primv)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_195setBDDCPrimalVerticesLocalIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_primv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCPrimalVerticesLocalIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_primv,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_primv)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCPrimalVerticesLocalIS") < 0)) __PYX_ERR(47, 757, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_primv = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCPrimalVerticesLocalIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 757, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCPrimalVerticesLocalIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_primv), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "primv", 0))) __PYX_ERR(47, 757, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_194setBDDCPrimalVerticesLocalIS(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_primv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_194setBDDCPrimalVerticesLocalIS(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_primv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCPrimalVerticesLocalIS", 0); + + /* "petsc4py/PETSc/PC.pyx":758 + * + * def setBDDCPrimalVerticesLocalIS(self, IS primv): + * CHKERR( PCBDDCSetPrimalVerticesLocalIS(self.pc, primv.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCCoarseningRatio(self, cratio): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetPrimalVerticesLocalIS(__pyx_v_self->pc, __pyx_v_primv->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 758, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":757 + * CHKERR( PCBDDCSetPrimalVerticesIS(self.pc, primv.iset) ) + * + * def setBDDCPrimalVerticesLocalIS(self, IS primv): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetPrimalVerticesLocalIS(self.pc, primv.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCPrimalVerticesLocalIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":760 + * CHKERR( PCBDDCSetPrimalVerticesLocalIS(self.pc, primv.iset) ) + * + * def setBDDCCoarseningRatio(self, cratio): # <<<<<<<<<<<<<< + * cdef PetscInt pcratio = asInt(cratio) + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_197setBDDCCoarseningRatio(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_196setBDDCCoarseningRatio[] = "PC.setBDDCCoarseningRatio(self, cratio)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_197setBDDCCoarseningRatio(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cratio = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCCoarseningRatio (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cratio,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cratio)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCCoarseningRatio") < 0)) __PYX_ERR(47, 760, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_cratio = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCCoarseningRatio", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 760, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCCoarseningRatio", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_196setBDDCCoarseningRatio(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_cratio); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_196setBDDCCoarseningRatio(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_cratio) { + PetscInt __pyx_v_pcratio; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCCoarseningRatio", 0); + + /* "petsc4py/PETSc/PC.pyx":761 + * + * def setBDDCCoarseningRatio(self, cratio): + * cdef PetscInt pcratio = asInt(cratio) # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_cratio); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 761, __pyx_L1_error) + __pyx_v_pcratio = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":762 + * def setBDDCCoarseningRatio(self, cratio): + * cdef PetscInt pcratio = asInt(cratio) + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) # <<<<<<<<<<<<<< + * + * def setBDDCLevels(self, levels): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetCoarseningRatio(__pyx_v_self->pc, __pyx_v_pcratio)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 762, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":760 + * CHKERR( PCBDDCSetPrimalVerticesLocalIS(self.pc, primv.iset) ) + * + * def setBDDCCoarseningRatio(self, cratio): # <<<<<<<<<<<<<< + * cdef PetscInt pcratio = asInt(cratio) + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCCoarseningRatio", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":764 + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) + * + * def setBDDCLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt plevels = asInt(levels) + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_199setBDDCLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_198setBDDCLevels[] = "PC.setBDDCLevels(self, levels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_199setBDDCLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCLevels") < 0)) __PYX_ERR(47, 764, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_levels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCLevels", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 764, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_198setBDDCLevels(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_levels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_198setBDDCLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels) { + PetscInt __pyx_v_plevels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":765 + * + * def setBDDCLevels(self, levels): + * cdef PetscInt plevels = asInt(levels) # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 765, __pyx_L1_error) + __pyx_v_plevels = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":766 + * def setBDDCLevels(self, levels): + * cdef PetscInt plevels = asInt(levels) + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) # <<<<<<<<<<<<<< + * + * def setBDDCDirichletBoundaries(self, IS bndr): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetLevels(__pyx_v_self->pc, __pyx_v_plevels)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 766, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":764 + * CHKERR( PCBDDCSetCoarseningRatio(self.pc, pcratio) ) + * + * def setBDDCLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt plevels = asInt(levels) + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":768 + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) + * + * def setBDDCDirichletBoundaries(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDirichletBoundaries(self.pc, bndr.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_201setBDDCDirichletBoundaries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_200setBDDCDirichletBoundaries[] = "PC.setBDDCDirichletBoundaries(self, IS bndr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_201setBDDCDirichletBoundaries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_bndr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDirichletBoundaries (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bndr,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bndr)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDirichletBoundaries") < 0)) __PYX_ERR(47, 768, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bndr = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDirichletBoundaries", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 768, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDirichletBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bndr), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "bndr", 0))) __PYX_ERR(47, 768, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_200setBDDCDirichletBoundaries(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_bndr); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_200setBDDCDirichletBoundaries(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDirichletBoundaries", 0); + + /* "petsc4py/PETSc/PC.pyx":769 + * + * def setBDDCDirichletBoundaries(self, IS bndr): + * CHKERR( PCBDDCSetDirichletBoundaries(self.pc, bndr.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCDirichletBoundariesLocal(self, IS bndr): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDirichletBoundaries(__pyx_v_self->pc, __pyx_v_bndr->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 769, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":768 + * CHKERR( PCBDDCSetLevels(self.pc, plevels) ) + * + * def setBDDCDirichletBoundaries(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDirichletBoundaries(self.pc, bndr.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDirichletBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":771 + * CHKERR( PCBDDCSetDirichletBoundaries(self.pc, bndr.iset) ) + * + * def setBDDCDirichletBoundariesLocal(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDirichletBoundariesLocal(self.pc, bndr.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_203setBDDCDirichletBoundariesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_202setBDDCDirichletBoundariesLocal[] = "PC.setBDDCDirichletBoundariesLocal(self, IS bndr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_203setBDDCDirichletBoundariesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_bndr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDirichletBoundariesLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bndr,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bndr)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDirichletBoundariesLocal") < 0)) __PYX_ERR(47, 771, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bndr = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDirichletBoundariesLocal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 771, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDirichletBoundariesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bndr), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "bndr", 0))) __PYX_ERR(47, 771, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_202setBDDCDirichletBoundariesLocal(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_bndr); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_202setBDDCDirichletBoundariesLocal(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDirichletBoundariesLocal", 0); + + /* "petsc4py/PETSc/PC.pyx":772 + * + * def setBDDCDirichletBoundariesLocal(self, IS bndr): + * CHKERR( PCBDDCSetDirichletBoundariesLocal(self.pc, bndr.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCNeumannBoundaries(self, IS bndr): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDirichletBoundariesLocal(__pyx_v_self->pc, __pyx_v_bndr->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 772, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":771 + * CHKERR( PCBDDCSetDirichletBoundaries(self.pc, bndr.iset) ) + * + * def setBDDCDirichletBoundariesLocal(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDirichletBoundariesLocal(self.pc, bndr.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDirichletBoundariesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":774 + * CHKERR( PCBDDCSetDirichletBoundariesLocal(self.pc, bndr.iset) ) + * + * def setBDDCNeumannBoundaries(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetNeumannBoundaries(self.pc, bndr.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_205setBDDCNeumannBoundaries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_204setBDDCNeumannBoundaries[] = "PC.setBDDCNeumannBoundaries(self, IS bndr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_205setBDDCNeumannBoundaries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_bndr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCNeumannBoundaries (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bndr,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bndr)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCNeumannBoundaries") < 0)) __PYX_ERR(47, 774, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bndr = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCNeumannBoundaries", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 774, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCNeumannBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bndr), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "bndr", 0))) __PYX_ERR(47, 774, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_204setBDDCNeumannBoundaries(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_bndr); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_204setBDDCNeumannBoundaries(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCNeumannBoundaries", 0); + + /* "petsc4py/PETSc/PC.pyx":775 + * + * def setBDDCNeumannBoundaries(self, IS bndr): + * CHKERR( PCBDDCSetNeumannBoundaries(self.pc, bndr.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCNeumannBoundariesLocal(self, IS bndr): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetNeumannBoundaries(__pyx_v_self->pc, __pyx_v_bndr->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 775, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":774 + * CHKERR( PCBDDCSetDirichletBoundariesLocal(self.pc, bndr.iset) ) + * + * def setBDDCNeumannBoundaries(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetNeumannBoundaries(self.pc, bndr.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCNeumannBoundaries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":777 + * CHKERR( PCBDDCSetNeumannBoundaries(self.pc, bndr.iset) ) + * + * def setBDDCNeumannBoundariesLocal(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetNeumannBoundariesLocal(self.pc, bndr.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_207setBDDCNeumannBoundariesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_206setBDDCNeumannBoundariesLocal[] = "PC.setBDDCNeumannBoundariesLocal(self, IS bndr)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_207setBDDCNeumannBoundariesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_bndr = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCNeumannBoundariesLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_bndr,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bndr)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCNeumannBoundariesLocal") < 0)) __PYX_ERR(47, 777, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_bndr = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCNeumannBoundariesLocal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 777, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCNeumannBoundariesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bndr), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "bndr", 0))) __PYX_ERR(47, 777, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_206setBDDCNeumannBoundariesLocal(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_bndr); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_206setBDDCNeumannBoundariesLocal(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_bndr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCNeumannBoundariesLocal", 0); + + /* "petsc4py/PETSc/PC.pyx":778 + * + * def setBDDCNeumannBoundariesLocal(self, IS bndr): + * CHKERR( PCBDDCSetNeumannBoundariesLocal(self.pc, bndr.iset) ) # <<<<<<<<<<<<<< + * + * def setBDDCDofsSplitting(self, isfields): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetNeumannBoundariesLocal(__pyx_v_self->pc, __pyx_v_bndr->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 778, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":777 + * CHKERR( PCBDDCSetNeumannBoundaries(self.pc, bndr.iset) ) + * + * def setBDDCNeumannBoundariesLocal(self, IS bndr): # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetNeumannBoundariesLocal(self.pc, bndr.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCNeumannBoundariesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":780 + * CHKERR( PCBDDCSetNeumannBoundariesLocal(self.pc, bndr.iset) ) + * + * def setBDDCDofsSplitting(self, isfields): # <<<<<<<<<<<<<< + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_209setBDDCDofsSplitting(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_208setBDDCDofsSplitting[] = "PC.setBDDCDofsSplitting(self, isfields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_209setBDDCDofsSplitting(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_isfields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDofsSplitting (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isfields,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isfields)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDofsSplitting") < 0)) __PYX_ERR(47, 780, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_isfields = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDofsSplitting", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 780, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDofsSplitting", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_208setBDDCDofsSplitting(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_isfields); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_208setBDDCDofsSplitting(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_isfields) { + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_n; + IS *__pyx_v_cisfields; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + IS __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDofsSplitting", 0); + __Pyx_INCREF(__pyx_v_isfields); + + /* "petsc4py/PETSc/PC.pyx":781 + * + * def setBDDCDofsSplitting(self, isfields): + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = len(isfields) + * cdef PetscIS *cisfields = NULL + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_isfields, __pyx_ptype_8petsc4py_5PETSc_IS); + if ((__pyx_t_2 != 0)) { + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_isfields); + __Pyx_GIVEREF(__pyx_v_isfields); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_isfields); + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; + } else { + __pyx_t_3 = PySequence_List(__pyx_v_isfields); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; + } + __Pyx_DECREF_SET(__pyx_v_isfields, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":782 + * def setBDDCDofsSplitting(self, isfields): + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) # <<<<<<<<<<<<<< + * cdef PetscIS *cisfields = NULL + * cdef object tmp + */ + __pyx_t_4 = PyObject_Length(__pyx_v_isfields); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 782, __pyx_L1_error) + __pyx_v_n = __pyx_t_4; + + /* "petsc4py/PETSc/PC.pyx":783 + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + * cdef PetscIS *cisfields = NULL # <<<<<<<<<<<<<< + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + */ + __pyx_v_cisfields = NULL; + + /* "petsc4py/PETSc/PC.pyx":785 + * cdef PetscIS *cisfields = NULL + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset + * CHKERR( PCBDDCSetDofsSplitting(self.pc, n, cisfields) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cisfields)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":786 + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDofsSplitting(self.pc, n, cisfields) ) + * + */ + __pyx_t_4 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_isfields, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 786, __pyx_L1_error) + __pyx_t_5 = ((struct PyPetscISObject *)__pyx_t_3)->iset; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_cisfields[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/PC.pyx":787 + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset + * CHKERR( PCBDDCSetDofsSplitting(self.pc, n, cisfields) ) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDofsSplitting(__pyx_v_self->pc, ((PetscInt)__pyx_v_n), __pyx_v_cisfields)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 787, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":780 + * CHKERR( PCBDDCSetNeumannBoundariesLocal(self.pc, bndr.iset) ) + * + * def setBDDCDofsSplitting(self, isfields): # <<<<<<<<<<<<<< + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDofsSplitting", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_isfields); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":790 + * + * + * def setBDDCDofsSplittingLocal(self, isfields): # <<<<<<<<<<<<<< + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_211setBDDCDofsSplittingLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_210setBDDCDofsSplittingLocal[] = "PC.setBDDCDofsSplittingLocal(self, isfields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_211setBDDCDofsSplittingLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_isfields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBDDCDofsSplittingLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isfields,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isfields)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBDDCDofsSplittingLocal") < 0)) __PYX_ERR(47, 790, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_isfields = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBDDCDofsSplittingLocal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 790, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDofsSplittingLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_210setBDDCDofsSplittingLocal(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_isfields); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_210setBDDCDofsSplittingLocal(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_isfields) { + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_n; + IS *__pyx_v_cisfields; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + IS __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBDDCDofsSplittingLocal", 0); + __Pyx_INCREF(__pyx_v_isfields); + + /* "petsc4py/PETSc/PC.pyx":791 + * + * def setBDDCDofsSplittingLocal(self, isfields): + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) # <<<<<<<<<<<<<< + * cdef Py_ssize_t i, n = len(isfields) + * cdef PetscIS *cisfields = NULL + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_isfields, __pyx_ptype_8petsc4py_5PETSc_IS); + if ((__pyx_t_2 != 0)) { + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_isfields); + __Pyx_GIVEREF(__pyx_v_isfields); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_isfields); + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; + } else { + __pyx_t_3 = PySequence_List(__pyx_v_isfields); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __pyx_t_3; + __pyx_t_3 = 0; + } + __Pyx_DECREF_SET(__pyx_v_isfields, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":792 + * def setBDDCDofsSplittingLocal(self, isfields): + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) # <<<<<<<<<<<<<< + * cdef PetscIS *cisfields = NULL + * cdef object tmp + */ + __pyx_t_4 = PyObject_Length(__pyx_v_isfields); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(47, 792, __pyx_L1_error) + __pyx_v_n = __pyx_t_4; + + /* "petsc4py/PETSc/PC.pyx":793 + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + * cdef PetscIS *cisfields = NULL # <<<<<<<<<<<<<< + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + */ + __pyx_v_cisfields = NULL; + + /* "petsc4py/PETSc/PC.pyx":795 + * cdef PetscIS *cisfields = NULL + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset + * CHKERR( PCBDDCSetDofsSplittingLocal(self.pc, n, cisfields) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cisfields)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":796 + * cdef object tmp + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset # <<<<<<<<<<<<<< + * CHKERR( PCBDDCSetDofsSplittingLocal(self.pc, n, cisfields) ) + * + */ + __pyx_t_4 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_isfields, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 796, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(47, 796, __pyx_L1_error) + __pyx_t_5 = ((struct PyPetscISObject *)__pyx_t_3)->iset; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_cisfields[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/PC.pyx":797 + * tmp = oarray_p(empty_p(n), NULL, &cisfields) + * for i from 0 <= i < n: cisfields[i] = (isfields[i]).iset + * CHKERR( PCBDDCSetDofsSplittingLocal(self.pc, n, cisfields) ) # <<<<<<<<<<<<<< + * + * # --- Patch --- + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCBDDCSetDofsSplittingLocal(__pyx_v_self->pc, ((PetscInt)__pyx_v_n), __pyx_v_cisfields)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 797, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":790 + * + * + * def setBDDCDofsSplittingLocal(self, isfields): # <<<<<<<<<<<<<< + * isfields = [isfields] if isinstance(isfields, IS) else list(isfields) + * cdef Py_ssize_t i, n = len(isfields) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setBDDCDofsSplittingLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_isfields); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":800 + * + * # --- Patch --- + * def setPatchCellNumbering(self, Section sec not None): # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetCellNumbering(self.pc, sec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_213setPatchCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_212setPatchCellNumbering[] = "PC.setPatchCellNumbering(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_213setPatchCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchCellNumbering (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchCellNumbering") < 0)) __PYX_ERR(47, 800, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchCellNumbering", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 800, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchCellNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(47, 800, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_212setPatchCellNumbering(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_212setPatchCellNumbering(struct PyPetscPCObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchCellNumbering", 0); + + /* "petsc4py/PETSc/PC.pyx":801 + * # --- Patch --- + * def setPatchCellNumbering(self, Section sec not None): + * CHKERR( PCPatchSetCellNumbering(self.pc, sec.sec) ) # <<<<<<<<<<<<<< + * + * def setPatchDiscretisationInfo(self, dms, bs, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetCellNumbering(__pyx_v_self->pc, __pyx_v_sec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 801, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":800 + * + * # --- Patch --- + * def setPatchCellNumbering(self, Section sec not None): # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetCellNumbering(self.pc, sec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchCellNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":803 + * CHKERR( PCPatchSetCellNumbering(self.pc, sec.sec) ) + * + * def setPatchDiscretisationInfo(self, dms, bs, # <<<<<<<<<<<<<< + * cellNodeMaps, + * subspaceOffsets, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_215setPatchDiscretisationInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_214setPatchDiscretisationInfo[] = "PC.setPatchDiscretisationInfo(self, dms, bs, cellNodeMaps, subspaceOffsets, ghostBcNodes, globalBcNodes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_215setPatchDiscretisationInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dms = 0; + PyObject *__pyx_v_bs = 0; + PyObject *__pyx_v_cellNodeMaps = 0; + PyObject *__pyx_v_subspaceOffsets = 0; + PyObject *__pyx_v_ghostBcNodes = 0; + PyObject *__pyx_v_globalBcNodes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchDiscretisationInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dms,&__pyx_n_s_bs,&__pyx_n_s_cellNodeMaps,&__pyx_n_s_subspaceOffsets,&__pyx_n_s_ghostBcNodes,&__pyx_n_s_globalBcNodes,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dms)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 1); __PYX_ERR(47, 803, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cellNodeMaps)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 2); __PYX_ERR(47, 803, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subspaceOffsets)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 3); __PYX_ERR(47, 803, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ghostBcNodes)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 4); __PYX_ERR(47, 803, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_globalBcNodes)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 5); __PYX_ERR(47, 803, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchDiscretisationInfo") < 0)) __PYX_ERR(47, 803, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_dms = values[0]; + __pyx_v_bs = values[1]; + __pyx_v_cellNodeMaps = values[2]; + __pyx_v_subspaceOffsets = values[3]; + __pyx_v_ghostBcNodes = values[4]; + __pyx_v_globalBcNodes = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 803, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchDiscretisationInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_214setPatchDiscretisationInfo(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_dms, __pyx_v_bs, __pyx_v_cellNodeMaps, __pyx_v_subspaceOffsets, __pyx_v_ghostBcNodes, __pyx_v_globalBcNodes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_214setPatchDiscretisationInfo(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_dms, PyObject *__pyx_v_bs, PyObject *__pyx_v_cellNodeMaps, PyObject *__pyx_v_subspaceOffsets, PyObject *__pyx_v_ghostBcNodes, PyObject *__pyx_v_globalBcNodes) { + PetscInt __pyx_v_numSubSpaces; + PetscInt __pyx_v_numGhostBcs; + PetscInt __pyx_v_numGlobalBcs; + PetscInt *__pyx_v_nodesPerCell; + PetscInt const **__pyx_v_ccellNodeMaps; + DM *__pyx_v_cdms; + PetscInt *__pyx_v_cbs; + PetscInt *__pyx_v_csubspaceOffsets; + PetscInt *__pyx_v_cghostBcNodes; + PetscInt *__pyx_v_cglobalBcNodes; + PetscInt __pyx_v_i; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_v_nodes = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PetscInt __pyx_t_3; + PetscInt __pyx_t_4; + PetscInt __pyx_t_5; + DM __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + PetscInt __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchDiscretisationInfo", 0); + __Pyx_INCREF(__pyx_v_bs); + __Pyx_INCREF(__pyx_v_subspaceOffsets); + __Pyx_INCREF(__pyx_v_ghostBcNodes); + __Pyx_INCREF(__pyx_v_globalBcNodes); + + /* "petsc4py/PETSc/PC.pyx":808 + * ghostBcNodes, + * globalBcNodes): + * cdef PetscInt numSubSpaces = 0 # <<<<<<<<<<<<<< + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL + */ + __pyx_v_numSubSpaces = 0; + + /* "petsc4py/PETSc/PC.pyx":809 + * globalBcNodes): + * cdef PetscInt numSubSpaces = 0 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL + */ + __pyx_v_numGhostBcs = 0; + __pyx_v_numGlobalBcs = 0; + + /* "petsc4py/PETSc/PC.pyx":810 + * cdef PetscInt numSubSpaces = 0 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL # <<<<<<<<<<<<<< + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL + */ + __pyx_v_nodesPerCell = NULL; + + /* "petsc4py/PETSc/PC.pyx":811 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL # <<<<<<<<<<<<<< + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL + */ + __pyx_v_ccellNodeMaps = NULL; + + /* "petsc4py/PETSc/PC.pyx":812 + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL + */ + __pyx_v_cdms = NULL; + + /* "petsc4py/PETSc/PC.pyx":813 + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL + */ + __pyx_v_cbs = NULL; + + /* "petsc4py/PETSc/PC.pyx":814 + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL + */ + __pyx_v_csubspaceOffsets = NULL; + + /* "petsc4py/PETSc/PC.pyx":815 + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cglobalBcNodes = NULL + * cdef PetscInt i = 0 + */ + __pyx_v_cghostBcNodes = NULL; + + /* "petsc4py/PETSc/PC.pyx":816 + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL # <<<<<<<<<<<<<< + * cdef PetscInt i = 0 + * + */ + __pyx_v_cglobalBcNodes = NULL; + + /* "petsc4py/PETSc/PC.pyx":817 + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL + * cdef PetscInt i = 0 # <<<<<<<<<<<<<< + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/PC.pyx":819 + * cdef PetscInt i = 0 + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) # <<<<<<<<<<<<<< + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_bs, (&__pyx_v_numSubSpaces), (&__pyx_v_cbs))); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_bs, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":820 + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) # <<<<<<<<<<<<<< + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ghostBcNodes, (&__pyx_v_numGhostBcs), (&__pyx_v_cghostBcNodes))); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ghostBcNodes, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":821 + * bs = iarray_i(bs, &numSubSpaces, &cbs) + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) # <<<<<<<<<<<<<< + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_globalBcNodes, (&__pyx_v_numGlobalBcs), (&__pyx_v_cglobalBcNodes))); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_globalBcNodes, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":822 + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) # <<<<<<<<<<<<<< + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_subspaceOffsets, NULL, (&__pyx_v_csubspaceOffsets))); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_subspaceOffsets, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":824 + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(PetscInt))), (&__pyx_v_nodesPerCell))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 824, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":825 + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(DM))), (&__pyx_v_cdms))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 825, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":826 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) # <<<<<<<<<<<<<< + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(PetscInt *))), (&__pyx_v_ccellNodeMaps))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 826, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":827 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): # <<<<<<<<<<<<<< + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape + */ + __pyx_t_3 = __pyx_v_numSubSpaces; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "petsc4py/PETSc/PC.pyx":828 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm # <<<<<<<<<<<<<< + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(47, 828, __pyx_L1_error) + __pyx_t_6 = ((struct PyPetscDMObject *)__pyx_t_1)->dm; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_cdms[__pyx_v_i]) = __pyx_t_6; + + /* "petsc4py/PETSc/PC.pyx":829 + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape # <<<<<<<<<<<<<< + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + * nodesPerCell[i] = asInt(nodes) + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(47, 829, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(47, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(47, 829, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(47, 829, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_nodes, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/PC.pyx":830 + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) # <<<<<<<<<<<<<< + * nodesPerCell[i] = asInt(nodes) + * + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_1, NULL, ((PetscInt **)(&(__pyx_v_ccellNodeMaps[__pyx_v_i]))))); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, __pyx_t_8, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1) < 0)) __PYX_ERR(47, 830, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/PC.pyx":831 + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + * nodesPerCell[i] = asInt(nodes) # <<<<<<<<<<<<<< + * + * # TODO: refactor on the PETSc side to take ISes? + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nodes); if (unlikely(__pyx_t_11 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 831, __pyx_L1_error) + (__pyx_v_nodesPerCell[__pyx_v_i]) = __pyx_t_11; + } + + /* "petsc4py/PETSc/PC.pyx":834 + * + * # TODO: refactor on the PETSc side to take ISes? + * CHKERR( PCPatchSetDiscretisationInfo(self.pc, numSubSpaces, # <<<<<<<<<<<<<< + * cdms, cbs, nodesPerCell, + * ccellNodeMaps, csubspaceOffsets, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetDiscretisationInfo(__pyx_v_self->pc, __pyx_v_numSubSpaces, __pyx_v_cdms, __pyx_v_cbs, __pyx_v_nodesPerCell, __pyx_v_ccellNodeMaps, __pyx_v_csubspaceOffsets, __pyx_v_numGhostBcs, __pyx_v_cghostBcNodes, __pyx_v_numGlobalBcs, __pyx_v_cglobalBcNodes)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 834, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":839 + * numGhostBcs, cghostBcNodes, + * numGlobalBcs, cglobalBcNodes) ) + * CHKERR( PetscFree(nodesPerCell) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cdms) ) + * CHKERR( PetscFree(ccellNodeMaps) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_nodesPerCell)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 839, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":840 + * numGlobalBcs, cglobalBcNodes) ) + * CHKERR( PetscFree(nodesPerCell) ) + * CHKERR( PetscFree(cdms) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(ccellNodeMaps) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cdms)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 840, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":841 + * CHKERR( PetscFree(nodesPerCell) ) + * CHKERR( PetscFree(cdms) ) + * CHKERR( PetscFree(ccellNodeMaps) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_ccellNodeMaps)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 841, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":803 + * CHKERR( PCPatchSetCellNumbering(self.pc, sec.sec) ) + * + * def setPatchDiscretisationInfo(self, dms, bs, # <<<<<<<<<<<<<< + * cellNodeMaps, + * subspaceOffsets, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchDiscretisationInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XDECREF(__pyx_v_nodes); + __Pyx_XDECREF(__pyx_v_bs); + __Pyx_XDECREF(__pyx_v_subspaceOffsets); + __Pyx_XDECREF(__pyx_v_ghostBcNodes); + __Pyx_XDECREF(__pyx_v_globalBcNodes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":843 + * CHKERR( PetscFree(ccellNodeMaps) ) + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_217setPatchComputeOperator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_216setPatchComputeOperator[] = "PC.setPatchComputeOperator(self, operator, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_217setPatchComputeOperator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_operator = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeOperator (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operator,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operator)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeOperator") < 0)) __PYX_ERR(47, 843, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_operator = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeOperator", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 843, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_216setPatchComputeOperator(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_operator, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_216setPatchComputeOperator(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeOperator", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/PC.pyx":844 + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/PC.pyx":845 + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":846 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (operator, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_operator__", context) + * CHKERR( PCPatchSetComputeOperator(self.pc, PCPatch_ComputeOperator, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operator); + __Pyx_GIVEREF(__pyx_v_operator); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":847 + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetComputeOperator(self.pc, PCPatch_ComputeOperator, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_operator__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":848 + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) + * CHKERR( PCPatchSetComputeOperator(self.pc, PCPatch_ComputeOperator, context) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetComputeOperator(__pyx_v_self->pc, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperator, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 848, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":843 + * CHKERR( PetscFree(ccellNodeMaps) ) + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":850 + * CHKERR( PCPatchSetComputeOperator(self.pc, PCPatch_ComputeOperator, context) ) + * + * def setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_219setPatchComputeOperatorInteriorFacets(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_218setPatchComputeOperatorInteriorFacets[] = "PC.setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_219setPatchComputeOperatorInteriorFacets(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_operator = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeOperatorInteriorFacets (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operator,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operator)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeOperatorInteriorFacets") < 0)) __PYX_ERR(47, 850, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_operator = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeOperatorInteriorFacets", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 850, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeOperatorInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_218setPatchComputeOperatorInteriorFacets(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_operator, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_218setPatchComputeOperatorInteriorFacets(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeOperatorInteriorFacets", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/PC.pyx":851 + * + * def setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/PC.pyx":852 + * def setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator_interior_facets__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":853 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (operator, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_operator_interior_facets__", context) + * CHKERR( PCPatchSetComputeOperatorInteriorFacets(self.pc, PCPatch_ComputeOperatorInteriorFacets, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operator); + __Pyx_GIVEREF(__pyx_v_operator); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":854 + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator_interior_facets__", context) # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetComputeOperatorInteriorFacets(self.pc, PCPatch_ComputeOperatorInteriorFacets, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_operator_interior_facets__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":855 + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator_interior_facets__", context) + * CHKERR( PCPatchSetComputeOperatorInteriorFacets(self.pc, PCPatch_ComputeOperatorInteriorFacets, context) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetComputeOperatorInteriorFacets(__pyx_v_self->pc, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperatorInteriorFacets, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 855, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":850 + * CHKERR( PCPatchSetComputeOperator(self.pc, PCPatch_ComputeOperator, context) ) + * + * def setPatchComputeOperatorInteriorFacets(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeOperatorInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":857 + * CHKERR( PCPatchSetComputeOperatorInteriorFacets(self.pc, PCPatch_ComputeOperatorInteriorFacets, context) ) + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_221setPatchComputeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_220setPatchComputeFunction[] = "PC.setPatchComputeFunction(self, function, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_221setPatchComputeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeFunction") < 0)) __PYX_ERR(47, 857, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeFunction", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 857, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_220setPatchComputeFunction(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_function, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_220setPatchComputeFunction(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/PC.pyx":858 + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/PC.pyx":859 + * def setPatchComputeFunction(self, function, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":860 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_function__", context) + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunction, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":861 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunction, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_function__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":862 + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunction, context) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetComputeFunction(__pyx_v_self->pc, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunction, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 862, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":857 + * CHKERR( PCPatchSetComputeOperatorInteriorFacets(self.pc, PCPatch_ComputeOperatorInteriorFacets, context) ) + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":864 + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunction, context) ) + * + * def setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_223setPatchComputeFunctionInteriorFacets(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_222setPatchComputeFunctionInteriorFacets[] = "PC.setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_223setPatchComputeFunctionInteriorFacets(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeFunctionInteriorFacets (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeFunctionInteriorFacets") < 0)) __PYX_ERR(47, 864, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeFunctionInteriorFacets", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 864, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeFunctionInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_222setPatchComputeFunctionInteriorFacets(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_function, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_222setPatchComputeFunctionInteriorFacets(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeFunctionInteriorFacets", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/PC.pyx":865 + * + * def setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/PC.pyx":866 + * def setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function_interior_facets__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":867 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_function_interior_facets__", context) + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunctionInteriorFacets, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":868 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function_interior_facets__", context) # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunctionInteriorFacets, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_function_interior_facets__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":869 + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function_interior_facets__", context) + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunctionInteriorFacets, context) ) # <<<<<<<<<<<<<< + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetComputeFunction(__pyx_v_self->pc, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunctionInteriorFacets, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 869, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":864 + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunction, context) ) + * + * def setPatchComputeFunctionInteriorFacets(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchComputeFunctionInteriorFacets", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":871 + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunctionInteriorFacets, context) ) + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_225setPatchConstructType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_224setPatchConstructType[] = "PC.setPatchConstructType(self, typ, operator=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_225setPatchConstructType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_typ = 0; + PyObject *__pyx_v_operator = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchConstructType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_typ,&__pyx_n_s_operator,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typ)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operator); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchConstructType") < 0)) __PYX_ERR(47, 871, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_typ = values[0]; + __pyx_v_operator = values[1]; + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchConstructType", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 871, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchConstructType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_224setPatchConstructType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_typ, __pyx_v_operator, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_224setPatchConstructType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_typ, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PCPatchConstructType __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchConstructType", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/PC.pyx":872 + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/PC.pyx":873 + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PC.pyx":875 + * if kargs is None: kargs = {} + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + */ + __Pyx_INCREF(__pyx_v_typ); + __pyx_t_3 = __pyx_v_typ; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC), __pyx_n_s_PatchConstructType); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_PYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_6) { + } else { + __pyx_t_2 = __pyx_t_6; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC), __pyx_n_s_PatchConstructType); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(47, 875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_6; + __pyx_L8_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = (__pyx_t_2 != 0); + if (__pyx_t_6) { + } else { + __pyx_t_1 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_operator == Py_None); + __pyx_t_2 = (__pyx_t_6 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L6_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/PC.pyx":876 + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") # <<<<<<<<<<<<<< + * if operator is not None: + * context = (operator, args, kargs) + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(47, 876, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":875 + * if kargs is None: kargs = {} + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + */ + } + + /* "petsc4py/PETSc/PC.pyx":877 + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * else: + */ + __pyx_t_1 = (__pyx_v_operator != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PC.pyx":878 + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + * context = (operator, args, kargs) # <<<<<<<<<<<<<< + * else: + * context = None + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operator); + __Pyx_GIVEREF(__pyx_v_operator); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":877 + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * else: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/PC.pyx":880 + * context = (operator, args, kargs) + * else: + * context = None # <<<<<<<<<<<<<< + * self.set_attr("__patch_construction_operator__", context) + * CHKERR( PCPatchSetConstructType(self.pc, typ, PCPatch_UserConstructOperator, context) ) + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __pyx_v_context = ((PyObject*)Py_None); + } + __pyx_L10:; + + /* "petsc4py/PETSc/PC.pyx":881 + * else: + * context = None + * self.set_attr("__patch_construction_operator__", context) # <<<<<<<<<<<<<< + * CHKERR( PCPatchSetConstructType(self.pc, typ, PCPatch_UserConstructOperator, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_PC *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_construction_operator__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(47, 881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PC.pyx":882 + * context = None + * self.set_attr("__patch_construction_operator__", context) + * CHKERR( PCPatchSetConstructType(self.pc, typ, PCPatch_UserConstructOperator, context) ) # <<<<<<<<<<<<<< + * + * # --- HPDDM --- + */ + __pyx_t_7 = ((PCPatchConstructType)__Pyx_PyInt_As_PCPatchConstructType(__pyx_v_typ)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 882, __pyx_L1_error) + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCPatchSetConstructType(__pyx_v_self->pc, __pyx_t_7, __pyx_f_8petsc4py_5PETSc_PCPatch_UserConstructOperator, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 882, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":871 + * CHKERR( PCPatchSetComputeFunction(self.pc, PCPatch_ComputeFunctionInteriorFacets, context) ) + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.PC.setPatchConstructType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":886 + * # --- HPDDM --- + * + * def setHPDDMAuxiliaryMat(self, IS uis, Mat uaux): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetAuxiliaryMat(self.pc, uis.iset, uaux.mat, NULL, NULL) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_227setHPDDMAuxiliaryMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_226setHPDDMAuxiliaryMat[] = "PC.setHPDDMAuxiliaryMat(self, IS uis, Mat uaux)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_227setHPDDMAuxiliaryMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_uis = 0; + struct PyPetscMatObject *__pyx_v_uaux = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHPDDMAuxiliaryMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_uis,&__pyx_n_s_uaux,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uis)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uaux)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setHPDDMAuxiliaryMat", 1, 2, 2, 1); __PYX_ERR(47, 886, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHPDDMAuxiliaryMat") < 0)) __PYX_ERR(47, 886, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_uis = ((struct PyPetscISObject *)values[0]); + __pyx_v_uaux = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHPDDMAuxiliaryMat", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 886, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMAuxiliaryMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uis), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "uis", 0))) __PYX_ERR(47, 886, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uaux), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "uaux", 0))) __PYX_ERR(47, 886, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_226setHPDDMAuxiliaryMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_uis, __pyx_v_uaux); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_226setHPDDMAuxiliaryMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_uis, struct PyPetscMatObject *__pyx_v_uaux) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHPDDMAuxiliaryMat", 0); + + /* "petsc4py/PETSc/PC.pyx":887 + * + * def setHPDDMAuxiliaryMat(self, IS uis, Mat uaux): + * CHKERR( PCHPDDMSetAuxiliaryMat(self.pc, uis.iset, uaux.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setHPDDMRHSMat(self, Mat B): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMSetAuxiliaryMat(__pyx_v_self->pc, __pyx_v_uis->iset, __pyx_v_uaux->mat, NULL, ((void *)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 887, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":886 + * # --- HPDDM --- + * + * def setHPDDMAuxiliaryMat(self, IS uis, Mat uaux): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetAuxiliaryMat(self.pc, uis.iset, uaux.mat, NULL, NULL) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMAuxiliaryMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":889 + * CHKERR( PCHPDDMSetAuxiliaryMat(self.pc, uis.iset, uaux.mat, NULL, NULL) ) + * + * def setHPDDMRHSMat(self, Mat B): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetRHSMat(self.pc, B.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_229setHPDDMRHSMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_228setHPDDMRHSMat[] = "PC.setHPDDMRHSMat(self, Mat B)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_229setHPDDMRHSMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_B = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHPDDMRHSMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_B,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHPDDMRHSMat") < 0)) __PYX_ERR(47, 889, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_B = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHPDDMRHSMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 889, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMRHSMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_B), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "B", 0))) __PYX_ERR(47, 889, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_228setHPDDMRHSMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_B); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_228setHPDDMRHSMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHPDDMRHSMat", 0); + + /* "petsc4py/PETSc/PC.pyx":890 + * + * def setHPDDMRHSMat(self, Mat B): + * CHKERR( PCHPDDMSetRHSMat(self.pc, B.mat) ) # <<<<<<<<<<<<<< + * + * def setHPDDMHasNeumannMat(self, has): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMSetRHSMat(__pyx_v_self->pc, __pyx_v_B->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 890, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":889 + * CHKERR( PCHPDDMSetAuxiliaryMat(self.pc, uis.iset, uaux.mat, NULL, NULL) ) + * + * def setHPDDMRHSMat(self, Mat B): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetRHSMat(self.pc, B.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMRHSMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":892 + * CHKERR( PCHPDDMSetRHSMat(self.pc, B.mat) ) + * + * def setHPDDMHasNeumannMat(self, has): # <<<<<<<<<<<<<< + * cdef PetscBool phas = has + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_231setHPDDMHasNeumannMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_230setHPDDMHasNeumannMat[] = "PC.setHPDDMHasNeumannMat(self, has)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_231setHPDDMHasNeumannMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_has = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHPDDMHasNeumannMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_has,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_has)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHPDDMHasNeumannMat") < 0)) __PYX_ERR(47, 892, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_has = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHPDDMHasNeumannMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 892, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMHasNeumannMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_230setHPDDMHasNeumannMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_has); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_230setHPDDMHasNeumannMat(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_has) { + PetscBool __pyx_v_phas; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHPDDMHasNeumannMat", 0); + + /* "petsc4py/PETSc/PC.pyx":893 + * + * def setHPDDMHasNeumannMat(self, has): + * cdef PetscBool phas = has # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_has)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 893, __pyx_L1_error) + __pyx_v_phas = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":894 + * def setHPDDMHasNeumannMat(self, has): + * cdef PetscBool phas = has + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) # <<<<<<<<<<<<<< + * + * def setHPDDMCoarseCorrectionType(self, correction_type): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMHasNeumannMat(__pyx_v_self->pc, __pyx_v_phas)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 894, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":892 + * CHKERR( PCHPDDMSetRHSMat(self.pc, B.mat) ) + * + * def setHPDDMHasNeumannMat(self, has): # <<<<<<<<<<<<<< + * cdef PetscBool phas = has + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMHasNeumannMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":896 + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) + * + * def setHPDDMCoarseCorrectionType(self, correction_type): # <<<<<<<<<<<<<< + * cdef PetscPCHPDDMCoarseCorrectionType ctype = correction_type + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_233setHPDDMCoarseCorrectionType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_232setHPDDMCoarseCorrectionType[] = "PC.setHPDDMCoarseCorrectionType(self, correction_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_233setHPDDMCoarseCorrectionType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_correction_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHPDDMCoarseCorrectionType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_correction_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_correction_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHPDDMCoarseCorrectionType") < 0)) __PYX_ERR(47, 896, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_correction_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHPDDMCoarseCorrectionType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 896, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMCoarseCorrectionType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_232setHPDDMCoarseCorrectionType(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_correction_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_232setHPDDMCoarseCorrectionType(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_correction_type) { + PCHPDDMCoarseCorrectionType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCHPDDMCoarseCorrectionType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHPDDMCoarseCorrectionType", 0); + + /* "petsc4py/PETSc/PC.pyx":897 + * + * def setHPDDMCoarseCorrectionType(self, correction_type): + * cdef PetscPCHPDDMCoarseCorrectionType ctype = correction_type # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) + * + */ + __pyx_t_1 = ((PCHPDDMCoarseCorrectionType)__Pyx_PyInt_As_PCHPDDMCoarseCorrectionType(__pyx_v_correction_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 897, __pyx_L1_error) + __pyx_v_ctype = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":898 + * def setHPDDMCoarseCorrectionType(self, correction_type): + * cdef PetscPCHPDDMCoarseCorrectionType ctype = correction_type + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) # <<<<<<<<<<<<<< + * + * def getHPDDMCoarseCorrectionType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMSetCoarseCorrectionType(__pyx_v_self->pc, __pyx_v_ctype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 898, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":896 + * CHKERR( PCHPDDMHasNeumannMat(self.pc, phas) ) + * + * def setHPDDMCoarseCorrectionType(self, correction_type): # <<<<<<<<<<<<<< + * cdef PetscPCHPDDMCoarseCorrectionType ctype = correction_type + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMCoarseCorrectionType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":900 + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) + * + * def getHPDDMCoarseCorrectionType(self): # <<<<<<<<<<<<<< + * cdef PetscPCHPDDMCoarseCorrectionType cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * CHKERR( PCHPDDMGetCoarseCorrectionType(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_235getHPDDMCoarseCorrectionType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_234getHPDDMCoarseCorrectionType[] = "PC.getHPDDMCoarseCorrectionType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_235getHPDDMCoarseCorrectionType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHPDDMCoarseCorrectionType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getHPDDMCoarseCorrectionType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getHPDDMCoarseCorrectionType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_234getHPDDMCoarseCorrectionType(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_234getHPDDMCoarseCorrectionType(struct PyPetscPCObject *__pyx_v_self) { + PCHPDDMCoarseCorrectionType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHPDDMCoarseCorrectionType", 0); + + /* "petsc4py/PETSc/PC.pyx":901 + * + * def getHPDDMCoarseCorrectionType(self): + * cdef PetscPCHPDDMCoarseCorrectionType cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMGetCoarseCorrectionType(self.pc, &cval) ) + * return cval + */ + __pyx_v_cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED; + + /* "petsc4py/PETSc/PC.pyx":902 + * def getHPDDMCoarseCorrectionType(self): + * cdef PetscPCHPDDMCoarseCorrectionType cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * CHKERR( PCHPDDMGetCoarseCorrectionType(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return cval + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMGetCoarseCorrectionType(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 902, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":903 + * cdef PetscPCHPDDMCoarseCorrectionType cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * CHKERR( PCHPDDMGetCoarseCorrectionType(self.pc, &cval) ) + * return cval # <<<<<<<<<<<<<< + * + * def getHPDDMSTShareSubKSP(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":900 + * CHKERR( PCHPDDMSetCoarseCorrectionType(self.pc, ctype) ) + * + * def getHPDDMCoarseCorrectionType(self): # <<<<<<<<<<<<<< + * cdef PetscPCHPDDMCoarseCorrectionType cval = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * CHKERR( PCHPDDMGetCoarseCorrectionType(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getHPDDMCoarseCorrectionType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":905 + * return cval + * + * def getHPDDMSTShareSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscBool cval = PETSC_FALSE + * CHKERR( PCHPDDMGetSTShareSubKSP(self.pc, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_237getHPDDMSTShareSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_236getHPDDMSTShareSubKSP[] = "PC.getHPDDMSTShareSubKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_237getHPDDMSTShareSubKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHPDDMSTShareSubKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getHPDDMSTShareSubKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getHPDDMSTShareSubKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_236getHPDDMSTShareSubKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_236getHPDDMSTShareSubKSP(struct PyPetscPCObject *__pyx_v_self) { + PetscBool __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHPDDMSTShareSubKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":906 + * + * def getHPDDMSTShareSubKSP(self): + * cdef PetscBool cval = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMGetSTShareSubKSP(self.pc, &cval) ) + * return toBool(cval) + */ + __pyx_v_cval = PETSC_FALSE; + + /* "petsc4py/PETSc/PC.pyx":907 + * def getHPDDMSTShareSubKSP(self): + * cdef PetscBool cval = PETSC_FALSE + * CHKERR( PCHPDDMGetSTShareSubKSP(self.pc, &cval) ) # <<<<<<<<<<<<<< + * return toBool(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMGetSTShareSubKSP(__pyx_v_self->pc, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 907, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":908 + * cdef PetscBool cval = PETSC_FALSE + * CHKERR( PCHPDDMGetSTShareSubKSP(self.pc, &cval) ) + * return toBool(cval) # <<<<<<<<<<<<<< + * + * def setHPDDMDeflationMat(self, IS uis, Mat U): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(47, 908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":905 + * return cval + * + * def getHPDDMSTShareSubKSP(self): # <<<<<<<<<<<<<< + * cdef PetscBool cval = PETSC_FALSE + * CHKERR( PCHPDDMGetSTShareSubKSP(self.pc, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getHPDDMSTShareSubKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":910 + * return toBool(cval) + * + * def setHPDDMDeflationMat(self, IS uis, Mat U): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetDeflationMat(self.pc, uis.iset, U.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_239setHPDDMDeflationMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_238setHPDDMDeflationMat[] = "PC.setHPDDMDeflationMat(self, IS uis, Mat U)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_239setHPDDMDeflationMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_uis = 0; + struct PyPetscMatObject *__pyx_v_U = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHPDDMDeflationMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_uis,&__pyx_n_s_U,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uis)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_U)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setHPDDMDeflationMat", 1, 2, 2, 1); __PYX_ERR(47, 910, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHPDDMDeflationMat") < 0)) __PYX_ERR(47, 910, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_uis = ((struct PyPetscISObject *)values[0]); + __pyx_v_U = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHPDDMDeflationMat", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 910, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMDeflationMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_uis), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "uis", 0))) __PYX_ERR(47, 910, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_U), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "U", 0))) __PYX_ERR(47, 910, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_238setHPDDMDeflationMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_uis, __pyx_v_U); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_238setHPDDMDeflationMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_uis, struct PyPetscMatObject *__pyx_v_U) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHPDDMDeflationMat", 0); + + /* "petsc4py/PETSc/PC.pyx":911 + * + * def setHPDDMDeflationMat(self, IS uis, Mat U): + * CHKERR( PCHPDDMSetDeflationMat(self.pc, uis.iset, U.mat) ) # <<<<<<<<<<<<<< + * + * # --- SPAI --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCHPDDMSetDeflationMat(__pyx_v_self->pc, __pyx_v_uis->iset, __pyx_v_U->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 911, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":910 + * return toBool(cval) + * + * def setHPDDMDeflationMat(self, IS uis, Mat U): # <<<<<<<<<<<<<< + * CHKERR( PCHPDDMSetDeflationMat(self.pc, uis.iset, U.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setHPDDMDeflationMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":915 + * # --- SPAI --- + * + * def setSPAIEpsilon(self, val): # <<<<<<<<<<<<<< + * cdef PetscReal cval = asReal(val) + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_241setSPAIEpsilon(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_240setSPAIEpsilon[] = "PC.setSPAIEpsilon(self, val)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_241setSPAIEpsilon(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_val = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAIEpsilon (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_val,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_val)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAIEpsilon") < 0)) __PYX_ERR(47, 915, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_val = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAIEpsilon", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 915, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIEpsilon", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_240setSPAIEpsilon(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_val); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_240setSPAIEpsilon(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_val) { + PetscReal __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAIEpsilon", 0); + + /* "petsc4py/PETSc/PC.pyx":916 + * + * def setSPAIEpsilon(self, val): + * cdef PetscReal cval = asReal(val) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_val); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(47, 916, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":917 + * def setSPAIEpsilon(self, val): + * cdef PetscReal cval = asReal(val) + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAINBSteps(self, nbsteps): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetEpsilon(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 917, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":915 + * # --- SPAI --- + * + * def setSPAIEpsilon(self, val): # <<<<<<<<<<<<<< + * cdef PetscReal cval = asReal(val) + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIEpsilon", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":919 + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) + * + * def setSPAINBSteps(self, nbsteps): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(nbsteps) + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_243setSPAINBSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_242setSPAINBSteps[] = "PC.setSPAINBSteps(self, nbsteps)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_243setSPAINBSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nbsteps = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAINBSteps (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nbsteps,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nbsteps)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAINBSteps") < 0)) __PYX_ERR(47, 919, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nbsteps = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAINBSteps", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 919, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAINBSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_242setSPAINBSteps(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_nbsteps); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_242setSPAINBSteps(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_nbsteps) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAINBSteps", 0); + + /* "petsc4py/PETSc/PC.pyx":920 + * + * def setSPAINBSteps(self, nbsteps): + * cdef PetscInt cval = asInt(nbsteps) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nbsteps); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 920, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":921 + * def setSPAINBSteps(self, nbsteps): + * cdef PetscInt cval = asInt(nbsteps) + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAIMax(self, maxval): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetNBSteps(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 921, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":919 + * CHKERR( PCSPAISetEpsilon(self.pc, cval) ) + * + * def setSPAINBSteps(self, nbsteps): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(nbsteps) + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAINBSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":923 + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) + * + * def setSPAIMax(self, maxval): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMax(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_245setSPAIMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_244setSPAIMax[] = "PC.setSPAIMax(self, maxval)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_245setSPAIMax(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_maxval = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAIMax (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_maxval,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxval)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAIMax") < 0)) __PYX_ERR(47, 923, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_maxval = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAIMax", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 923, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_244setSPAIMax(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_maxval); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_244setSPAIMax(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_maxval) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAIMax", 0); + + /* "petsc4py/PETSc/PC.pyx":924 + * + * def setSPAIMax(self, maxval): + * cdef PetscInt cval = asInt(maxval) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetMax(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_maxval); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 924, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":925 + * def setSPAIMax(self, maxval): + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMax(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAIMaxNew(self, maxval): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetMax(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 925, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":923 + * CHKERR( PCSPAISetNBSteps(self.pc, cval) ) + * + * def setSPAIMax(self, maxval): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMax(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIMax", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":927 + * CHKERR( PCSPAISetMax(self.pc, cval) ) + * + * def setSPAIMaxNew(self, maxval): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_247setSPAIMaxNew(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_246setSPAIMaxNew[] = "PC.setSPAIMaxNew(self, maxval)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_247setSPAIMaxNew(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_maxval = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAIMaxNew (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_maxval,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxval)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAIMaxNew") < 0)) __PYX_ERR(47, 927, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_maxval = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAIMaxNew", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 927, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIMaxNew", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_246setSPAIMaxNew(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_maxval); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_246setSPAIMaxNew(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_maxval) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAIMaxNew", 0); + + /* "petsc4py/PETSc/PC.pyx":928 + * + * def setSPAIMaxNew(self, maxval): + * cdef PetscInt cval = asInt(maxval) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_maxval); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 928, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":929 + * def setSPAIMaxNew(self, maxval): + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAIBlockSize(self, n): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetMaxNew(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 929, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":927 + * CHKERR( PCSPAISetMax(self.pc, cval) ) + * + * def setSPAIMaxNew(self, maxval): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(maxval) + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIMaxNew", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":931 + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) + * + * def setSPAIBlockSize(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(n) + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_249setSPAIBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_248setSPAIBlockSize[] = "PC.setSPAIBlockSize(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_249setSPAIBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAIBlockSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAIBlockSize") < 0)) __PYX_ERR(47, 931, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAIBlockSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 931, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_248setSPAIBlockSize(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_248setSPAIBlockSize(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAIBlockSize", 0); + + /* "petsc4py/PETSc/PC.pyx":932 + * + * def setSPAIBlockSize(self, n): + * cdef PetscInt cval = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 932, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":933 + * def setSPAIBlockSize(self, n): + * cdef PetscInt cval = asInt(n) + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAICacheSize(self, size): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetBlockSize(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 933, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":931 + * CHKERR( PCSPAISetMaxNew(self.pc, cval) ) + * + * def setSPAIBlockSize(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(n) + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":935 + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) + * + * def setSPAICacheSize(self, size): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(size) + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_251setSPAICacheSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_250setSPAICacheSize[] = "PC.setSPAICacheSize(self, size)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_251setSPAICacheSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAICacheSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_size,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAICacheSize") < 0)) __PYX_ERR(47, 935, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_size = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAICacheSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 935, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAICacheSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_250setSPAICacheSize(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_250setSPAICacheSize(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_size) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAICacheSize", 0); + + /* "petsc4py/PETSc/PC.pyx":936 + * + * def setSPAICacheSize(self, size): + * cdef PetscInt cval = asInt(size) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_size); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 936, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":937 + * def setSPAICacheSize(self, size): + * cdef PetscInt cval = asInt(size) + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAIVerbose(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetCacheSize(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 937, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":935 + * CHKERR( PCSPAISetBlockSize(self.pc, cval) ) + * + * def setSPAICacheSize(self, size): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(size) + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAICacheSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":939 + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) + * + * def setSPAIVerbose(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(level) + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_253setSPAIVerbose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_252setSPAIVerbose[] = "PC.setSPAIVerbose(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_253setSPAIVerbose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAIVerbose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAIVerbose") < 0)) __PYX_ERR(47, 939, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAIVerbose", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 939, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIVerbose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_252setSPAIVerbose(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_252setSPAIVerbose(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAIVerbose", 0); + + /* "petsc4py/PETSc/PC.pyx":940 + * + * def setSPAIVerbose(self, level): + * cdef PetscInt cval = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 940, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":941 + * def setSPAIVerbose(self, level): + * cdef PetscInt cval = asInt(level) + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * def setSPAISp(self, sym): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetVerbose(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 941, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":939 + * CHKERR( PCSPAISetCacheSize(self.pc, cval) ) + * + * def setSPAIVerbose(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(level) + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAIVerbose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":943 + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) + * + * def setSPAISp(self, sym): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(sym) + * CHKERR( PCSPAISetSp(self.pc, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_255setSPAISp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_254setSPAISp[] = "PC.setSPAISp(self, sym)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_255setSPAISp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sym = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSPAISp (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sym,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sym)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSPAISp") < 0)) __PYX_ERR(47, 943, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sym = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSPAISp", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 943, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAISp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_254setSPAISp(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_sym); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_254setSPAISp(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_sym) { + PetscInt __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSPAISp", 0); + + /* "petsc4py/PETSc/PC.pyx":944 + * + * def setSPAISp(self, sym): + * cdef PetscInt cval = asInt(sym) # <<<<<<<<<<<<<< + * CHKERR( PCSPAISetSp(self.pc, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_sym); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 944, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":945 + * def setSPAISp(self, sym): + * cdef PetscInt cval = asInt(sym) + * CHKERR( PCSPAISetSp(self.pc, cval) ) # <<<<<<<<<<<<<< + * + * # --- DEFLATION --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCSPAISetSp(__pyx_v_self->pc, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 945, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":943 + * CHKERR( PCSPAISetVerbose(self.pc, cval) ) + * + * def setSPAISp(self, sym): # <<<<<<<<<<<<<< + * cdef PetscInt cval = asInt(sym) + * CHKERR( PCSPAISetSp(self.pc, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setSPAISp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":949 + * # --- DEFLATION --- + * + * def setDeflationInitOnly(self, flg): # <<<<<<<<<<<<<< + * cdef PetscBool cflg = asBool(flg) + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_257setDeflationInitOnly(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_256setDeflationInitOnly[] = "PC.setDeflationInitOnly(self, flg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_257setDeflationInitOnly(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationInitOnly (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationInitOnly") < 0)) __PYX_ERR(47, 949, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flg = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationInitOnly", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 949, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationInitOnly", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_256setDeflationInitOnly(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_flg); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_256setDeflationInitOnly(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_flg) { + PetscBool __pyx_v_cflg; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationInitOnly", 0); + + /* "petsc4py/PETSc/PC.pyx":950 + * + * def setDeflationInitOnly(self, flg): + * cdef PetscBool cflg = asBool(flg) # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flg); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(47, 950, __pyx_L1_error) + __pyx_v_cflg = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":951 + * def setDeflationInitOnly(self, flg): + * cdef PetscBool cflg = asBool(flg) + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) # <<<<<<<<<<<<<< + * + * def setDeflationLevels(self, levels): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetInitOnly(__pyx_v_self->pc, __pyx_v_cflg)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 951, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":949 + * # --- DEFLATION --- + * + * def setDeflationInitOnly(self, flg): # <<<<<<<<<<<<<< + * cdef PetscBool cflg = asBool(flg) + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationInitOnly", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":953 + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) + * + * def setDeflationLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_259setDeflationLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_258setDeflationLevels[] = "PC.setDeflationLevels(self, levels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_259setDeflationLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationLevels") < 0)) __PYX_ERR(47, 953, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_levels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationLevels", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 953, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_258setDeflationLevels(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_levels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_258setDeflationLevels(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_levels) { + PetscInt __pyx_v_clevels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationLevels", 0); + + /* "petsc4py/PETSc/PC.pyx":954 + * + * def setDeflationLevels(self, levels): + * cdef PetscInt clevels = asInt(levels) # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 954, __pyx_L1_error) + __pyx_v_clevels = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":955 + * def setDeflationLevels(self, levels): + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) # <<<<<<<<<<<<<< + * + * def setDeflationReductionFactor(self, red): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetLevels(__pyx_v_self->pc, __pyx_v_clevels)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 955, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":953 + * CHKERR( PCDeflationSetInitOnly(self.pc, cflg) ) + * + * def setDeflationLevels(self, levels): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":957 + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) + * + * def setDeflationReductionFactor(self, red): # <<<<<<<<<<<<<< + * cdef PetscInt cred = asInt(red) + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_261setDeflationReductionFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_260setDeflationReductionFactor[] = "PC.setDeflationReductionFactor(self, red)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_261setDeflationReductionFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_red = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationReductionFactor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_red,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_red)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationReductionFactor") < 0)) __PYX_ERR(47, 957, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_red = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationReductionFactor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 957, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationReductionFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_260setDeflationReductionFactor(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_red); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_260setDeflationReductionFactor(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_red) { + PetscInt __pyx_v_cred; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationReductionFactor", 0); + + /* "petsc4py/PETSc/PC.pyx":958 + * + * def setDeflationReductionFactor(self, red): + * cdef PetscInt cred = asInt(red) # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_red); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 958, __pyx_L1_error) + __pyx_v_cred = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":959 + * def setDeflationReductionFactor(self, red): + * cdef PetscInt cred = asInt(red) + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) # <<<<<<<<<<<<<< + * + * def setDeflationCorrectionFactor(self, fact): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetReductionFactor(__pyx_v_self->pc, __pyx_v_cred)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 959, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":957 + * CHKERR( PCDeflationSetLevels(self.pc, clevels) ) + * + * def setDeflationReductionFactor(self, red): # <<<<<<<<<<<<<< + * cdef PetscInt cred = asInt(red) + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationReductionFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":961 + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) + * + * def setDeflationCorrectionFactor(self, fact): # <<<<<<<<<<<<<< + * cdef PetscScalar cfact = asScalar(fact) + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_263setDeflationCorrectionFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_262setDeflationCorrectionFactor[] = "PC.setDeflationCorrectionFactor(self, fact)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_263setDeflationCorrectionFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fact = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationCorrectionFactor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fact,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fact)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationCorrectionFactor") < 0)) __PYX_ERR(47, 961, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fact = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationCorrectionFactor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 961, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationCorrectionFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_262setDeflationCorrectionFactor(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_fact); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_262setDeflationCorrectionFactor(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_fact) { + CYTHON_UNUSED PetscScalar __pyx_v_cfact; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscScalar __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationCorrectionFactor", 0); + + /* "petsc4py/PETSc/PC.pyx":962 + * + * def setDeflationCorrectionFactor(self, fact): + * cdef PetscScalar cfact = asScalar(fact) # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asScalar(__pyx_v_fact); if (unlikely(__pyx_t_1 == ((PetscScalar)((PetscScalar)(-1.0))) && PyErr_Occurred())) __PYX_ERR(47, 962, __pyx_L1_error) + __pyx_v_cfact = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":963 + * def setDeflationCorrectionFactor(self, fact): + * cdef PetscScalar cfact = asScalar(fact) + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) # <<<<<<<<<<<<<< + * + * def setDeflationSpaceToCompute(self, space_type, size): + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_fact); if (unlikely((__pyx_t_1 == ((PetscScalar)-1)) && PyErr_Occurred())) __PYX_ERR(47, 963, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetCorrectionFactor(__pyx_v_self->pc, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 963, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":961 + * CHKERR( PCDeflationSetReductionFactor(self.pc, cred) ) + * + * def setDeflationCorrectionFactor(self, fact): # <<<<<<<<<<<<<< + * cdef PetscScalar cfact = asScalar(fact) + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationCorrectionFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":965 + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) + * + * def setDeflationSpaceToCompute(self, space_type, size): # <<<<<<<<<<<<<< + * cdef PetscInt csize = asInt(size) + * cdef PetscPCDeflationSpaceType ctype = space_type + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_265setDeflationSpaceToCompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_264setDeflationSpaceToCompute[] = "PC.setDeflationSpaceToCompute(self, space_type, size)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_265setDeflationSpaceToCompute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_space_type = 0; + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationSpaceToCompute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_space_type,&__pyx_n_s_size,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_space_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setDeflationSpaceToCompute", 1, 2, 2, 1); __PYX_ERR(47, 965, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationSpaceToCompute") < 0)) __PYX_ERR(47, 965, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_space_type = values[0]; + __pyx_v_size = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationSpaceToCompute", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 965, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationSpaceToCompute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_264setDeflationSpaceToCompute(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_space_type, __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_264setDeflationSpaceToCompute(struct PyPetscPCObject *__pyx_v_self, PyObject *__pyx_v_space_type, PyObject *__pyx_v_size) { + PetscInt __pyx_v_csize; + CYTHON_UNUSED PCDeflationSpaceType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PCDeflationSpaceType __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationSpaceToCompute", 0); + + /* "petsc4py/PETSc/PC.pyx":966 + * + * def setDeflationSpaceToCompute(self, space_type, size): + * cdef PetscInt csize = asInt(size) # <<<<<<<<<<<<<< + * cdef PetscPCDeflationSpaceType ctype = space_type + * CHKERR( PCDeflationSetSpaceToCompute(self.pc, space_type, csize) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_size); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(47, 966, __pyx_L1_error) + __pyx_v_csize = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":967 + * def setDeflationSpaceToCompute(self, space_type, size): + * cdef PetscInt csize = asInt(size) + * cdef PetscPCDeflationSpaceType ctype = space_type # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetSpaceToCompute(self.pc, space_type, csize) ) + * + */ + __pyx_t_2 = ((PCDeflationSpaceType)__Pyx_PyInt_As_PCDeflationSpaceType(__pyx_v_space_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 967, __pyx_L1_error) + __pyx_v_ctype = __pyx_t_2; + + /* "petsc4py/PETSc/PC.pyx":968 + * cdef PetscInt csize = asInt(size) + * cdef PetscPCDeflationSpaceType ctype = space_type + * CHKERR( PCDeflationSetSpaceToCompute(self.pc, space_type, csize) ) # <<<<<<<<<<<<<< + * + * def setDeflationSpace(self, Mat W, transpose): + */ + __pyx_t_2 = ((PCDeflationSpaceType)__Pyx_PyInt_As_PCDeflationSpaceType(__pyx_v_space_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(47, 968, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetSpaceToCompute(__pyx_v_self->pc, __pyx_t_2, __pyx_v_csize)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 968, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":965 + * CHKERR( PCDeflationSetCorrectionFactor(self.pc, fact) ) + * + * def setDeflationSpaceToCompute(self, space_type, size): # <<<<<<<<<<<<<< + * cdef PetscInt csize = asInt(size) + * cdef PetscPCDeflationSpaceType ctype = space_type + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationSpaceToCompute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":970 + * CHKERR( PCDeflationSetSpaceToCompute(self.pc, space_type, csize) ) + * + * def setDeflationSpace(self, Mat W, transpose): # <<<<<<<<<<<<<< + * cdef PetscBool ctranspose = asBool(transpose) + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_267setDeflationSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_266setDeflationSpace[] = "PC.setDeflationSpace(self, Mat W, transpose)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_267setDeflationSpace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_W = 0; + PyObject *__pyx_v_transpose = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationSpace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_W,&__pyx_n_s_transpose,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_W)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_transpose)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setDeflationSpace", 1, 2, 2, 1); __PYX_ERR(47, 970, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationSpace") < 0)) __PYX_ERR(47, 970, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_W = ((struct PyPetscMatObject *)values[0]); + __pyx_v_transpose = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationSpace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 970, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_W), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "W", 0))) __PYX_ERR(47, 970, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_266setDeflationSpace(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_W, __pyx_v_transpose); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_266setDeflationSpace(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_W, PyObject *__pyx_v_transpose) { + PetscBool __pyx_v_ctranspose; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationSpace", 0); + + /* "petsc4py/PETSc/PC.pyx":971 + * + * def setDeflationSpace(self, Mat W, transpose): + * cdef PetscBool ctranspose = asBool(transpose) # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_transpose); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(47, 971, __pyx_L1_error) + __pyx_v_ctranspose = __pyx_t_1; + + /* "petsc4py/PETSc/PC.pyx":972 + * def setDeflationSpace(self, Mat W, transpose): + * cdef PetscBool ctranspose = asBool(transpose) + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) # <<<<<<<<<<<<<< + * + * def setDeflationProjectionNullSpaceMat(self, Mat mat): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetSpace(__pyx_v_self->pc, __pyx_v_W->mat, __pyx_v_ctranspose)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 972, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":970 + * CHKERR( PCDeflationSetSpaceToCompute(self.pc, space_type, csize) ) + * + * def setDeflationSpace(self, Mat W, transpose): # <<<<<<<<<<<<<< + * cdef PetscBool ctranspose = asBool(transpose) + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationSpace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":974 + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) + * + * def setDeflationProjectionNullSpaceMat(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetProjectionNullSpaceMat(self.pc, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_269setDeflationProjectionNullSpaceMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_268setDeflationProjectionNullSpaceMat[] = "PC.setDeflationProjectionNullSpaceMat(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_269setDeflationProjectionNullSpaceMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationProjectionNullSpaceMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationProjectionNullSpaceMat") < 0)) __PYX_ERR(47, 974, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationProjectionNullSpaceMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 974, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationProjectionNullSpaceMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 974, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_268setDeflationProjectionNullSpaceMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_268setDeflationProjectionNullSpaceMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationProjectionNullSpaceMat", 0); + + /* "petsc4py/PETSc/PC.pyx":975 + * + * def setDeflationProjectionNullSpaceMat(self, Mat mat): + * CHKERR( PCDeflationSetProjectionNullSpaceMat(self.pc, mat.mat) ) # <<<<<<<<<<<<<< + * + * def setDeflationCoarseMat(self, Mat mat): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetProjectionNullSpaceMat(__pyx_v_self->pc, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 975, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":974 + * CHKERR( PCDeflationSetSpace(self.pc, W.mat, ctranspose) ) + * + * def setDeflationProjectionNullSpaceMat(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetProjectionNullSpaceMat(self.pc, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationProjectionNullSpaceMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":977 + * CHKERR( PCDeflationSetProjectionNullSpaceMat(self.pc, mat.mat) ) + * + * def setDeflationCoarseMat(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetCoarseMat(self.pc, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_271setDeflationCoarseMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_270setDeflationCoarseMat[] = "PC.setDeflationCoarseMat(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_271setDeflationCoarseMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDeflationCoarseMat (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDeflationCoarseMat") < 0)) __PYX_ERR(47, 977, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDeflationCoarseMat", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(47, 977, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationCoarseMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(47, 977, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_270setDeflationCoarseMat(((struct PyPetscPCObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_270setDeflationCoarseMat(struct PyPetscPCObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDeflationCoarseMat", 0); + + /* "petsc4py/PETSc/PC.pyx":978 + * + * def setDeflationCoarseMat(self, Mat mat): + * CHKERR( PCDeflationSetCoarseMat(self.pc, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getDeflationCoarseKSP(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationSetCoarseMat(__pyx_v_self->pc, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 978, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":977 + * CHKERR( PCDeflationSetProjectionNullSpaceMat(self.pc, mat.mat) ) + * + * def setDeflationCoarseMat(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( PCDeflationSetCoarseMat(self.pc, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PC.setDeflationCoarseMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":980 + * CHKERR( PCDeflationSetCoarseMat(self.pc, mat.mat) ) + * + * def getDeflationCoarseKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_273getDeflationCoarseKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_272getDeflationCoarseKSP[] = "PC.getDeflationCoarseKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_273getDeflationCoarseKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDeflationCoarseKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDeflationCoarseKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDeflationCoarseKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_272getDeflationCoarseKSP(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_272getDeflationCoarseKSP(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDeflationCoarseKSP", 0); + + /* "petsc4py/PETSc/PC.pyx":981 + * + * def getDeflationCoarseKSP(self): + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":982 + * def getDeflationCoarseKSP(self): + * cdef KSP ksp = KSP() + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationGetCoarseKSP(__pyx_v_self->pc, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 982, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":983 + * cdef KSP ksp = KSP() + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":984 + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def getDeflationPC(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":980 + * CHKERR( PCDeflationSetCoarseMat(self.pc, mat.mat) ) + * + * def getDeflationCoarseKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( PCDeflationGetCoarseKSP(self.pc, &ksp.ksp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getDeflationCoarseKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PC.pyx":986 + * return ksp + * + * def getDeflationPC(self): # <<<<<<<<<<<<<< + * cdef PC apc = PC() + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_275getDeflationPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2PC_274getDeflationPC[] = "PC.getDeflationPC(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2PC_275getDeflationPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDeflationPC (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDeflationPC", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDeflationPC", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2PC_274getDeflationPC(((struct PyPetscPCObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2PC_274getDeflationPC(struct PyPetscPCObject *__pyx_v_self) { + struct PyPetscPCObject *__pyx_v_apc = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDeflationPC", 0); + + /* "petsc4py/PETSc/PC.pyx":987 + * + * def getDeflationPC(self): + * cdef PC apc = PC() # <<<<<<<<<<<<<< + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) + * PetscINCREF(apc.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(47, 987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_apc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PC.pyx":988 + * def getDeflationPC(self): + * cdef PC apc = PC() + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) # <<<<<<<<<<<<<< + * PetscINCREF(apc.obj) + * return apc + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCDeflationGetPC(__pyx_v_self->pc, (&__pyx_v_apc->pc))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(47, 988, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":989 + * cdef PC apc = PC() + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) + * PetscINCREF(apc.obj) # <<<<<<<<<<<<<< + * return apc + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_apc->__pyx_base.obj)); + + /* "petsc4py/PETSc/PC.pyx":990 + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) + * PetscINCREF(apc.obj) + * return apc # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_apc)); + __pyx_r = ((PyObject *)__pyx_v_apc); + goto __pyx_L0; + + /* "petsc4py/PETSc/PC.pyx":986 + * return ksp + * + * def getDeflationPC(self): # <<<<<<<<<<<<<< + * cdef PC apc = PC() + * CHKERR( PCDeflationGetPC(self.pc, &apc.pc) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC.getDeflationPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_apc); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":102 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ksp + * self.ksp = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP___cinit__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP___cinit__(struct PyPetscKSPObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/KSP.pyx":103 + * + * def __cinit__(self): + * self.obj = &self.ksp # <<<<<<<<<<<<<< + * self.ksp = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->ksp)); + + /* "petsc4py/PETSc/KSP.pyx":104 + * def __cinit__(self): + * self.obj = &self.ksp + * self.ksp = NULL # <<<<<<<<<<<<<< + * + * def __call__(self, b, x=None): + */ + __pyx_v_self->ksp = NULL; + + /* "petsc4py/PETSc/KSP.pyx":102 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ksp + * self.ksp = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":106 + * self.ksp = NULL + * + * def __call__(self, b, x=None): # <<<<<<<<<<<<<< + * if x is None: # XXX do this better + * x = self.getOperators()[0].createVecLeft() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_3__call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_b = 0; + PyObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__call__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__call__") < 0)) __PYX_ERR(48, 106, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_b = values[0]; + __pyx_v_x = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 106, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_2__call__(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2__call__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_b, PyObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__call__", 0); + __Pyx_INCREF(__pyx_v_x); + + /* "petsc4py/PETSc/KSP.pyx":107 + * + * def __call__(self, b, x=None): + * if x is None: # XXX do this better # <<<<<<<<<<<<<< + * x = self.getOperators()[0].createVecLeft() + * self.solve(b, x) + */ + __pyx_t_1 = (__pyx_v_x == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/KSP.pyx":108 + * def __call__(self, b, x=None): + * if x is None: # XXX do this better + * x = self.getOperators()[0].createVecLeft() # <<<<<<<<<<<<<< + * self.solve(b, x) + * return x + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOperators); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_createVecLeft); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_x, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":107 + * + * def __call__(self, b, x=None): + * if x is None: # XXX do this better # <<<<<<<<<<<<<< + * x = self.getOperators()[0].createVecLeft() + * self.solve(b, x) + */ + } + + /* "petsc4py/PETSc/KSP.pyx":109 + * if x is None: # XXX do this better + * x = self.getOperators()[0].createVecLeft() + * self.solve(b, x) # <<<<<<<<<<<<<< + * return x + * + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_solve); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_b, __pyx_v_x}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 109, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_b, __pyx_v_x}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 109, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_3); + } else + #endif + { + __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_INCREF(__pyx_v_b); + __Pyx_GIVEREF(__pyx_v_b); + PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_b); + __Pyx_INCREF(__pyx_v_x); + __Pyx_GIVEREF(__pyx_v_x); + PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_v_x); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":110 + * x = self.getOperators()[0].createVecLeft() + * self.solve(b, x) + * return x # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_x); + __pyx_r = __pyx_v_x; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":106 + * self.ksp = NULL + * + * def __call__(self, b, x=None): # <<<<<<<<<<<<<< + * if x is None: # XXX do this better + * x = self.getOperators()[0].createVecLeft() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_x); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":114 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_4view[] = "KSP.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(48, 114, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 114, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(48, 114, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4view(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4view(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/KSP.pyx":115 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( KSPView(self.ksp, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/KSP.pyx":116 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( KSPView(self.ksp, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":117 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( KSPView(self.ksp, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPView(__pyx_v_self->ksp, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 117, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":114 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":119 + * CHKERR( KSPView(self.ksp, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( KSPDestroy(&self.ksp) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_6destroy[] = "KSP.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6destroy(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6destroy(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/KSP.pyx":120 + * + * def destroy(self): + * CHKERR( KSPDestroy(&self.ksp) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPDestroy((&__pyx_v_self->ksp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":121 + * def destroy(self): + * CHKERR( KSPDestroy(&self.ksp) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":119 + * CHKERR( KSPView(self.ksp, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( KSPDestroy(&self.ksp) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":123 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_8create[] = "KSP.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(48, 123, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_8create(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_8create(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + KSP __pyx_v_newksp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/KSP.pyx":124 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(48, 124, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":125 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp + */ + __pyx_v_newksp = NULL; + + /* "petsc4py/PETSc/KSP.pyx":126 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ksp = newksp + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPCreate(__pyx_v_ccomm, (&__pyx_v_newksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 126, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":127 + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ksp = __pyx_v_newksp; + + /* "petsc4py/PETSc/KSP.pyx":128 + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp + * return self # <<<<<<<<<<<<<< + * + * def setType(self, ksp_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":123 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":130 + * return self + * + * def setType(self, ksp_type): # <<<<<<<<<<<<<< + * cdef PetscKSPType cval = NULL + * ksp_type = str2bytes(ksp_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_10setType[] = "KSP.setType(self, ksp_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_11setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ksp_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ksp_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ksp_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(48, 130, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ksp_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 130, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_10setType(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_ksp_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_10setType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_ksp_type) { + KSPType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_ksp_type); + + /* "petsc4py/PETSc/KSP.pyx":131 + * + * def setType(self, ksp_type): + * cdef PetscKSPType cval = NULL # <<<<<<<<<<<<<< + * ksp_type = str2bytes(ksp_type, &cval) + * CHKERR( KSPSetType(self.ksp, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":132 + * def setType(self, ksp_type): + * cdef PetscKSPType cval = NULL + * ksp_type = str2bytes(ksp_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( KSPSetType(self.ksp, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ksp_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ksp_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":133 + * cdef PetscKSPType cval = NULL + * ksp_type = str2bytes(ksp_type, &cval) + * CHKERR( KSPSetType(self.ksp, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetType(__pyx_v_self->ksp, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":130 + * return self + * + * def setType(self, ksp_type): # <<<<<<<<<<<<<< + * cdef PetscKSPType cval = NULL + * ksp_type = str2bytes(ksp_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ksp_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":135 + * CHKERR( KSPSetType(self.ksp, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscKSPType cval = NULL + * CHKERR( KSPGetType(self.ksp, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_12getType[] = "KSP.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_12getType(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_12getType(struct PyPetscKSPObject *__pyx_v_self) { + KSPType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/KSP.pyx":136 + * + * def getType(self): + * cdef PetscKSPType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPGetType(self.ksp, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":137 + * def getType(self): + * cdef PetscKSPType cval = NULL + * CHKERR( KSPGetType(self.ksp, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetType(__pyx_v_self->ksp, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":138 + * cdef PetscKSPType cval = NULL + * CHKERR( KSPGetType(self.ksp, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":135 + * CHKERR( KSPSetType(self.ksp, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscKSPType cval = NULL + * CHKERR( KSPGetType(self.ksp, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":140 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_15setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_14setOptionsPrefix[] = "KSP.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_15setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(48, 140, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 140, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_14setOptionsPrefix(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_14setOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/KSP.pyx":141 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( KSPSetOptionsPrefix(self.ksp, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":142 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( KSPSetOptionsPrefix(self.ksp, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":143 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( KSPSetOptionsPrefix(self.ksp, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetOptionsPrefix(__pyx_v_self->ksp, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":140 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":145 + * CHKERR( KSPSetOptionsPrefix(self.ksp, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( KSPGetOptionsPrefix(self.ksp, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_16getOptionsPrefix[] = "KSP.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_16getOptionsPrefix(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_16getOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/KSP.pyx":146 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPGetOptionsPrefix(self.ksp, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":147 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( KSPGetOptionsPrefix(self.ksp, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetOptionsPrefix(__pyx_v_self->ksp, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 147, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":148 + * cdef const char *cval = NULL + * CHKERR( KSPGetOptionsPrefix(self.ksp, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":145 + * CHKERR( KSPSetOptionsPrefix(self.ksp, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( KSPGetOptionsPrefix(self.ksp, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":150 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_19appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_18appendOptionsPrefix[] = "KSP.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_19appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(48, 150, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 150, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_18appendOptionsPrefix(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_18appendOptionsPrefix(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/KSP.pyx":151 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( KSPAppendOptionsPrefix(self.ksp, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":152 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( KSPAppendOptionsPrefix(self.ksp, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":153 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( KSPAppendOptionsPrefix(self.ksp, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPAppendOptionsPrefix(__pyx_v_self->ksp, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":150 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":155 + * CHKERR( KSPAppendOptionsPrefix(self.ksp, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetFromOptions(self.ksp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_21setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_20setFromOptions[] = "KSP.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_21setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_20setFromOptions(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_20setFromOptions(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/KSP.pyx":156 + * + * def setFromOptions(self): + * CHKERR( KSPSetFromOptions(self.ksp) ) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetFromOptions(__pyx_v_self->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 156, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":155 + * CHKERR( KSPAppendOptionsPrefix(self.ksp, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetFromOptions(self.ksp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":160 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_23setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_22setAppCtx[] = "KSP.setAppCtx(self, appctx)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_23setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_appctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAppCtx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_appctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_appctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAppCtx") < 0)) __PYX_ERR(48, 160, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_appctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAppCtx", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 160, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_22setAppCtx(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_appctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_22setAppCtx(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_appctx) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAppCtx", 0); + + /* "petsc4py/PETSc/KSP.pyx":161 + * + * def setAppCtx(self, appctx): + * self.set_attr('__appctx__', appctx) # <<<<<<<<<<<<<< + * + * def getAppCtx(self): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__"), __pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":160 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":163 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_25getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_24getAppCtx[] = "KSP.getAppCtx(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_25getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAppCtx (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAppCtx", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAppCtx", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_24getAppCtx(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_24getAppCtx(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAppCtx", 0); + + /* "petsc4py/PETSc/KSP.pyx":164 + * + * def getAppCtx(self): + * return self.get_attr('__appctx__') # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":163 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":168 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( KSPGetDM(self.ksp, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_27getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_26getDM[] = "KSP.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_27getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_26getDM(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_26getDM(struct PyPetscKSPObject *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/KSP.pyx":169 + * + * def getDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPGetDM(self.ksp, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/KSP.pyx":170 + * def getDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( KSPGetDM(self.ksp, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetDM(__pyx_v_self->ksp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":171 + * cdef PetscDM newdm = NULL + * CHKERR( KSPGetDM(self.ksp, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(48, 171, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":172 + * CHKERR( KSPGetDM(self.ksp, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/KSP.pyx":173 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":174 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":168 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( KSPGetDM(self.ksp, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":176 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( KSPSetDM(self.ksp, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_29setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_28setDM[] = "KSP.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_29setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(48, 176, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 176, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(48, 176, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_28setDM(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_28setDM(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/KSP.pyx":177 + * + * def setDM(self, DM dm): + * CHKERR( KSPSetDM(self.ksp, dm.dm) ) # <<<<<<<<<<<<<< + * + * def setDMActive(self, bint flag): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetDM(__pyx_v_self->ksp, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":176 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( KSPSetDM(self.ksp, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":179 + * CHKERR( KSPSetDM(self.ksp, dm.dm) ) + * + * def setDMActive(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: cflag = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_31setDMActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_30setDMActive[] = "KSP.setDMActive(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_31setDMActive(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDMActive (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDMActive") < 0)) __PYX_ERR(48, 179, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 179, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDMActive", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 179, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setDMActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_30setDMActive(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_30setDMActive(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_cflag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDMActive", 0); + + /* "petsc4py/PETSc/KSP.pyx":180 + * + * def setDMActive(self, bint flag): + * cdef PetscBool cflag = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: cflag = PETSC_TRUE + * CHKERR( KSPSetDMActive(self.ksp, cflag) ) + */ + __pyx_v_cflag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":181 + * def setDMActive(self, bint flag): + * cdef PetscBool cflag = PETSC_FALSE + * if flag: cflag = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetDMActive(self.ksp, cflag) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_cflag = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":182 + * cdef PetscBool cflag = PETSC_FALSE + * if flag: cflag = PETSC_TRUE + * CHKERR( KSPSetDMActive(self.ksp, cflag) ) # <<<<<<<<<<<<<< + * + * # --- operators and preconditioner --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetDMActive(__pyx_v_self->ksp, __pyx_v_cflag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 182, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":179 + * CHKERR( KSPSetDM(self.ksp, dm.dm) ) + * + * def setDMActive(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool cflag = PETSC_FALSE + * if flag: cflag = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setDMActive", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":186 + * # --- operators and preconditioner --- + * + * def setComputeRHS(self, rhs, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_33setComputeRHS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_32setComputeRHS[] = "KSP.setComputeRHS(self, rhs, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_33setComputeRHS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rhs = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setComputeRHS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rhs,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComputeRHS") < 0)) __PYX_ERR(48, 186, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rhs = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setComputeRHS", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 186, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeRHS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_32setComputeRHS(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_rhs, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_32setComputeRHS(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rhs, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setComputeRHS", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/KSP.pyx":187 + * + * def setComputeRHS(self, rhs, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (rhs, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/KSP.pyx":188 + * def setComputeRHS(self, rhs, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (rhs, args, kargs) + * self.set_attr('__rhs__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":189 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (rhs, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__rhs__', context) + * CHKERR( KSPSetComputeRHS(self.ksp, KSP_ComputeRHS, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_rhs); + __Pyx_GIVEREF(__pyx_v_rhs); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rhs); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":190 + * if kargs is None: kargs = {} + * context = (rhs, args, kargs) + * self.set_attr('__rhs__', context) # <<<<<<<<<<<<<< + * CHKERR( KSPSetComputeRHS(self.ksp, KSP_ComputeRHS, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhs__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":191 + * context = (rhs, args, kargs) + * self.set_attr('__rhs__', context) + * CHKERR( KSPSetComputeRHS(self.ksp, KSP_ComputeRHS, context) ) # <<<<<<<<<<<<<< + * + * def setComputeOperators(self, operators, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetComputeRHS(__pyx_v_self->ksp, __pyx_f_8petsc4py_5PETSc_KSP_ComputeRHS, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 191, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":186 + * # --- operators and preconditioner --- + * + * def setComputeRHS(self, rhs, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeRHS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":193 + * CHKERR( KSPSetComputeRHS(self.ksp, KSP_ComputeRHS, context) ) + * + * def setComputeOperators(self, operators, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_35setComputeOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_34setComputeOperators[] = "KSP.setComputeOperators(self, operators, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_35setComputeOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_operators = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setComputeOperators (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operators,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operators)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComputeOperators") < 0)) __PYX_ERR(48, 193, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_operators = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setComputeOperators", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 193, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_34setComputeOperators(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_operators, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_34setComputeOperators(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_operators, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setComputeOperators", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/KSP.pyx":194 + * + * def setComputeOperators(self, operators, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (operators, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/KSP.pyx":195 + * def setComputeOperators(self, operators, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":196 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (operators, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__operators__', context) + * CHKERR( KSPSetComputeOperators(self.ksp, KSP_ComputeOps, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operators); + __Pyx_GIVEREF(__pyx_v_operators); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operators); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":197 + * if kargs is None: kargs = {} + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) # <<<<<<<<<<<<<< + * CHKERR( KSPSetComputeOperators(self.ksp, KSP_ComputeOps, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__operators__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":198 + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) + * CHKERR( KSPSetComputeOperators(self.ksp, KSP_ComputeOps, context) ) # <<<<<<<<<<<<<< + * + * def setOperators(self, Mat A=None, Mat P=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetComputeOperators(__pyx_v_self->ksp, __pyx_f_8petsc4py_5PETSc_KSP_ComputeOps, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 198, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":193 + * CHKERR( KSPSetComputeRHS(self.ksp, KSP_ComputeRHS, context) ) + * + * def setComputeOperators(self, operators, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":200 + * CHKERR( KSPSetComputeOperators(self.ksp, KSP_ComputeOps, context) ) + * + * def setOperators(self, Mat A=None, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_37setOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_36setOperators[] = "KSP.setOperators(self, Mat A=None, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_37setOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOperators (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_A,&__pyx_n_s_P,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOperators") < 0)) __PYX_ERR(48, 200, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_A = ((struct PyPetscMatObject *)values[0]); + __pyx_v_P = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOperators", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 200, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "A", 0))) __PYX_ERR(48, 200, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(48, 200, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_36setOperators(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_A, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_36setOperators(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_A, struct PyPetscMatObject *__pyx_v_P) { + Mat __pyx_v_amat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOperators", 0); + + /* "petsc4py/PETSc/KSP.pyx":201 + * + * def setOperators(self, Mat A=None, Mat P=None): + * cdef PetscMat amat=NULL # <<<<<<<<<<<<<< + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat + */ + __pyx_v_amat = NULL; + + /* "petsc4py/PETSc/KSP.pyx":202 + * def setOperators(self, Mat A=None, Mat P=None): + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat # <<<<<<<<<<<<<< + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_A) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_A->mat; + __pyx_v_amat = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":203 + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( KSPSetOperators(self.ksp, amat, pmat) ) + */ + __pyx_v_pmat = __pyx_v_amat; + + /* "petsc4py/PETSc/KSP.pyx":204 + * if A is not None: amat = A.mat + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( KSPSetOperators(self.ksp, amat, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":205 + * cdef PetscMat pmat=amat + * if P is not None: pmat = P.mat + * CHKERR( KSPSetOperators(self.ksp, amat, pmat) ) # <<<<<<<<<<<<<< + * + * def getOperators(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetOperators(__pyx_v_self->ksp, __pyx_v_amat, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 205, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":200 + * CHKERR( KSPSetComputeOperators(self.ksp, KSP_ComputeOps, context) ) + * + * def setOperators(self, Mat A=None, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat amat=NULL + * if A is not None: amat = A.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":207 + * CHKERR( KSPSetOperators(self.ksp, amat, pmat) ) + * + * def getOperators(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat(), P = Mat() + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_39getOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_38getOperators[] = "KSP.getOperators(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_39getOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOperators (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOperators", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOperators", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_38getOperators(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_38getOperators(struct PyPetscKSPObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOperators", 0); + + /* "petsc4py/PETSc/KSP.pyx":208 + * + * def getOperators(self): + * cdef Mat A = Mat(), P = Mat() # <<<<<<<<<<<<<< + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_A = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":209 + * def getOperators(self): + * cdef Mat A = Mat(), P = Mat() + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetOperators(__pyx_v_self->ksp, (&__pyx_v_A->mat), (&__pyx_v_P->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 209, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":210 + * cdef Mat A = Mat(), P = Mat() + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) # <<<<<<<<<<<<<< + * PetscINCREF(P.obj) + * return (A, P) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_A->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":211 + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * return (A, P) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":212 + * PetscINCREF(A.obj) + * PetscINCREF(P.obj) + * return (A, P) # <<<<<<<<<<<<<< + * + * def setPC(self, PC pc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_A)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_A)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_A)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":207 + * CHKERR( KSPSetOperators(self.ksp, amat, pmat) ) + * + * def getOperators(self): # <<<<<<<<<<<<<< + * cdef Mat A = Mat(), P = Mat() + * CHKERR( KSPGetOperators(self.ksp, &A.mat, &P.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_A); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":214 + * return (A, P) + * + * def setPC(self, PC pc): # <<<<<<<<<<<<<< + * CHKERR( KSPSetPC(self.ksp, pc.pc) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_41setPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_40setPC[] = "KSP.setPC(self, PC pc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_41setPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscPCObject *__pyx_v_pc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPC") < 0)) __PYX_ERR(48, 214, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_pc = ((struct PyPetscPCObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPC", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 214, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_pc), __pyx_ptype_8petsc4py_5PETSc_PC, 0, "pc", 0))) __PYX_ERR(48, 214, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_40setPC(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_pc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_40setPC(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscPCObject *__pyx_v_pc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPC", 0); + + /* "petsc4py/PETSc/KSP.pyx":215 + * + * def setPC(self, PC pc): + * CHKERR( KSPSetPC(self.ksp, pc.pc) ) # <<<<<<<<<<<<<< + * + * def getPC(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetPC(__pyx_v_self->ksp, __pyx_v_pc->pc)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 215, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":214 + * return (A, P) + * + * def setPC(self, PC pc): # <<<<<<<<<<<<<< + * CHKERR( KSPSetPC(self.ksp, pc.pc) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":217 + * CHKERR( KSPSetPC(self.ksp, pc.pc) ) + * + * def getPC(self): # <<<<<<<<<<<<<< + * cdef PC pc = PC() + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_43getPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_42getPC[] = "KSP.getPC(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_43getPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPC (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPC", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPC", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_42getPC(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_42getPC(struct PyPetscKSPObject *__pyx_v_self) { + struct PyPetscPCObject *__pyx_v_pc = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPC", 0); + + /* "petsc4py/PETSc/KSP.pyx":218 + * + * def getPC(self): + * cdef PC pc = PC() # <<<<<<<<<<<<<< + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) + * PetscINCREF(pc.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_pc = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":219 + * def getPC(self): + * cdef PC pc = PC() + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) # <<<<<<<<<<<<<< + * PetscINCREF(pc.obj) + * return pc + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetPC(__pyx_v_self->ksp, (&__pyx_v_pc->pc))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 219, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":220 + * cdef PC pc = PC() + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) + * PetscINCREF(pc.obj) # <<<<<<<<<<<<<< + * return pc + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_pc->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":221 + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) + * PetscINCREF(pc.obj) + * return pc # <<<<<<<<<<<<<< + * + * # --- tolerances and convergence --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_pc)); + __pyx_r = ((PyObject *)__pyx_v_pc); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":217 + * CHKERR( KSPSetPC(self.ksp, pc.pc) ) + * + * def getPC(self): # <<<<<<<<<<<<<< + * cdef PC pc = PC() + * CHKERR( KSPGetPC(self.ksp, &pc.pc) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_pc); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":225 + * # --- tolerances and convergence --- + * + * def setTolerances(self, rtol=None, atol=None, divtol=None, max_it=None): # <<<<<<<<<<<<<< + * cdef PetscReal crtol, catol, cdivtol + * crtol = catol = cdivtol = PETSC_DEFAULT; + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_45setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_44setTolerances[] = "KSP.setTolerances(self, rtol=None, atol=None, divtol=None, max_it=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_45setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rtol = 0; + PyObject *__pyx_v_atol = 0; + PyObject *__pyx_v_divtol = 0; + PyObject *__pyx_v_max_it = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtol,&__pyx_n_s_atol,&__pyx_n_s_divtol,&__pyx_n_s_max_it,0}; + PyObject* values[4] = {0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_atol); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_divtol); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_it); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTolerances") < 0)) __PYX_ERR(48, 225, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rtol = values[0]; + __pyx_v_atol = values[1]; + __pyx_v_divtol = values[2]; + __pyx_v_max_it = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTolerances", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 225, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_44setTolerances(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_rtol, __pyx_v_atol, __pyx_v_divtol, __pyx_v_max_it); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_44setTolerances(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol, PyObject *__pyx_v_divtol, PyObject *__pyx_v_max_it) { + PetscReal __pyx_v_crtol; + PetscReal __pyx_v_catol; + PetscReal __pyx_v_cdivtol; + PetscInt __pyx_v_cmaxits; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTolerances", 0); + + /* "petsc4py/PETSc/KSP.pyx":227 + * def setTolerances(self, rtol=None, atol=None, divtol=None, max_it=None): + * cdef PetscReal crtol, catol, cdivtol + * crtol = catol = cdivtol = PETSC_DEFAULT; # <<<<<<<<<<<<<< + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) + */ + __pyx_v_crtol = PETSC_DEFAULT; + __pyx_v_catol = PETSC_DEFAULT; + __pyx_v_cdivtol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/KSP.pyx":228 + * cdef PetscReal crtol, catol, cdivtol + * crtol = catol = cdivtol = PETSC_DEFAULT; + * if rtol is not None: crtol = asReal(rtol) # <<<<<<<<<<<<<< + * if atol is not None: catol = asReal(atol) + * if divtol is not None: cdivtol = asReal(divtol) + */ + __pyx_t_1 = (__pyx_v_rtol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 228, __pyx_L1_error) + __pyx_v_crtol = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":229 + * crtol = catol = cdivtol = PETSC_DEFAULT; + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) # <<<<<<<<<<<<<< + * if divtol is not None: cdivtol = asReal(divtol) + * cdef PetscInt cmaxits = PETSC_DEFAULT + */ + __pyx_t_2 = (__pyx_v_atol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_atol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 229, __pyx_L1_error) + __pyx_v_catol = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":230 + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) + * if divtol is not None: cdivtol = asReal(divtol) # <<<<<<<<<<<<<< + * cdef PetscInt cmaxits = PETSC_DEFAULT + * if max_it is not None: cmaxits = asInt(max_it) + */ + __pyx_t_1 = (__pyx_v_divtol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_divtol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 230, __pyx_L1_error) + __pyx_v_cdivtol = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":231 + * if atol is not None: catol = asReal(atol) + * if divtol is not None: cdivtol = asReal(divtol) + * cdef PetscInt cmaxits = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if max_it is not None: cmaxits = asInt(max_it) + * CHKERR( KSPSetTolerances(self.ksp, crtol, catol, cdivtol, cmaxits) ) + */ + __pyx_v_cmaxits = PETSC_DEFAULT; + + /* "petsc4py/PETSc/KSP.pyx":232 + * if divtol is not None: cdivtol = asReal(divtol) + * cdef PetscInt cmaxits = PETSC_DEFAULT + * if max_it is not None: cmaxits = asInt(max_it) # <<<<<<<<<<<<<< + * CHKERR( KSPSetTolerances(self.ksp, crtol, catol, cdivtol, cmaxits) ) + * + */ + __pyx_t_2 = (__pyx_v_max_it != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_it); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 232, __pyx_L1_error) + __pyx_v_cmaxits = __pyx_t_4; + } + + /* "petsc4py/PETSc/KSP.pyx":233 + * cdef PetscInt cmaxits = PETSC_DEFAULT + * if max_it is not None: cmaxits = asInt(max_it) + * CHKERR( KSPSetTolerances(self.ksp, crtol, catol, cdivtol, cmaxits) ) # <<<<<<<<<<<<<< + * + * def getTolerances(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetTolerances(__pyx_v_self->ksp, __pyx_v_crtol, __pyx_v_catol, __pyx_v_cdivtol, __pyx_v_cmaxits)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":225 + * # --- tolerances and convergence --- + * + * def setTolerances(self, rtol=None, atol=None, divtol=None, max_it=None): # <<<<<<<<<<<<<< + * cdef PetscReal crtol, catol, cdivtol + * crtol = catol = cdivtol = PETSC_DEFAULT; + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":235 + * CHKERR( KSPSetTolerances(self.ksp, crtol, catol, cdivtol, cmaxits) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal crtol=0, catol=0, cdivtol=0 + * cdef PetscInt cmaxits=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_47getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_46getTolerances[] = "KSP.getTolerances(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_47getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTolerances (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTolerances", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTolerances", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_46getTolerances(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_46getTolerances(struct PyPetscKSPObject *__pyx_v_self) { + PetscReal __pyx_v_crtol; + PetscReal __pyx_v_catol; + PetscReal __pyx_v_cdivtol; + PetscInt __pyx_v_cmaxits; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTolerances", 0); + + /* "petsc4py/PETSc/KSP.pyx":236 + * + * def getTolerances(self): + * cdef PetscReal crtol=0, catol=0, cdivtol=0 # <<<<<<<<<<<<<< + * cdef PetscInt cmaxits=0 + * CHKERR( KSPGetTolerances(self.ksp, &crtol, &catol, &cdivtol, &cmaxits) ) + */ + __pyx_v_crtol = 0.0; + __pyx_v_catol = 0.0; + __pyx_v_cdivtol = 0.0; + + /* "petsc4py/PETSc/KSP.pyx":237 + * def getTolerances(self): + * cdef PetscReal crtol=0, catol=0, cdivtol=0 + * cdef PetscInt cmaxits=0 # <<<<<<<<<<<<<< + * CHKERR( KSPGetTolerances(self.ksp, &crtol, &catol, &cdivtol, &cmaxits) ) + * return (toReal(crtol), toReal(catol), toReal(cdivtol), toInt(cmaxits)) + */ + __pyx_v_cmaxits = 0; + + /* "petsc4py/PETSc/KSP.pyx":238 + * cdef PetscReal crtol=0, catol=0, cdivtol=0 + * cdef PetscInt cmaxits=0 + * CHKERR( KSPGetTolerances(self.ksp, &crtol, &catol, &cdivtol, &cmaxits) ) # <<<<<<<<<<<<<< + * return (toReal(crtol), toReal(catol), toReal(cdivtol), toInt(cmaxits)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetTolerances(__pyx_v_self->ksp, (&__pyx_v_crtol), (&__pyx_v_catol), (&__pyx_v_cdivtol), (&__pyx_v_cmaxits))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 238, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":239 + * cdef PetscInt cmaxits=0 + * CHKERR( KSPGetTolerances(self.ksp, &crtol, &catol, &cdivtol, &cmaxits) ) + * return (toReal(crtol), toReal(catol), toReal(cdivtol), toInt(cmaxits)) # <<<<<<<<<<<<<< + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_crtol); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_catol); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_cdivtol); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cmaxits); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":235 + * CHKERR( KSPSetTolerances(self.ksp, crtol, catol, cdivtol, cmaxits) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal crtol=0, catol=0, cdivtol=0 + * cdef PetscInt cmaxits=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":241 + * return (toReal(crtol), toReal(catol), toReal(cdivtol), toInt(cmaxits)) + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * cdef void* cctx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_49setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_48setConvergenceTest[] = "KSP.setConvergenceTest(self, converged, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_49setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_converged = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergenceTest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_converged,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_converged)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergenceTest") < 0)) __PYX_ERR(48, 241, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_converged = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergenceTest", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 241, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_48setConvergenceTest(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_converged, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_48setConvergenceTest(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + KSPNormType __pyx_v_normtype; + void *__pyx_v_cctx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergenceTest", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/KSP.pyx":242 + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + * cdef PetscKSPNormType normtype = KSP_NORM_NONE # <<<<<<<<<<<<<< + * cdef void* cctx = NULL + * if converged is not None: + */ + __pyx_v_normtype = KSP_NORM_NONE; + + /* "petsc4py/PETSc/KSP.pyx":243 + * def setConvergenceTest(self, converged, args=None, kargs=None): + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * cdef void* cctx = NULL # <<<<<<<<<<<<<< + * if converged is not None: + * CHKERR( KSPSetConvergenceTest( + */ + __pyx_v_cctx = NULL; + + /* "petsc4py/PETSc/KSP.pyx":244 + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * cdef void* cctx = NULL + * if converged is not None: # <<<<<<<<<<<<<< + * CHKERR( KSPSetConvergenceTest( + * self.ksp, KSP_Converged, NULL, NULL) ) + */ + __pyx_t_1 = (__pyx_v_converged != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/KSP.pyx":245 + * cdef void* cctx = NULL + * if converged is not None: + * CHKERR( KSPSetConvergenceTest( # <<<<<<<<<<<<<< + * self.ksp, KSP_Converged, NULL, NULL) ) + * if args is None: args = () + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetConvergenceTest(__pyx_v_self->ksp, __pyx_f_8petsc4py_5PETSc_KSP_Converged, NULL, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 245, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":247 + * CHKERR( KSPSetConvergenceTest( + * self.ksp, KSP_Converged, NULL, NULL) ) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * self.set_attr('__converged__', (converged, args, kargs)) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/KSP.pyx":248 + * self.ksp, KSP_Converged, NULL, NULL) ) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * self.set_attr('__converged__', (converged, args, kargs)) + * else: + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":249 + * if args is None: args = () + * if kargs is None: kargs = {} + * self.set_attr('__converged__', (converged, args, kargs)) # <<<<<<<<<<<<<< + * else: + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_converged); + __Pyx_GIVEREF(__pyx_v_converged); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_converged); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":244 + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * cdef void* cctx = NULL + * if converged is not None: # <<<<<<<<<<<<<< + * CHKERR( KSPSetConvergenceTest( + * self.ksp, KSP_Converged, NULL, NULL) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/KSP.pyx":251 + * self.set_attr('__converged__', (converged, args, kargs)) + * else: + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) # <<<<<<<<<<<<<< + * if normtype != KSP_NORM_NONE: + * CHKERR( KSPConvergedDefaultCreate(&cctx) ) + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetNormType(__pyx_v_self->ksp, (&__pyx_v_normtype))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 251, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":252 + * else: + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + * if normtype != KSP_NORM_NONE: # <<<<<<<<<<<<<< + * CHKERR( KSPConvergedDefaultCreate(&cctx) ) + * CHKERR( KSPSetConvergenceTest( + */ + __pyx_t_2 = ((__pyx_v_normtype != KSP_NORM_NONE) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/KSP.pyx":253 + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + * if normtype != KSP_NORM_NONE: + * CHKERR( KSPConvergedDefaultCreate(&cctx) ) # <<<<<<<<<<<<<< + * CHKERR( KSPSetConvergenceTest( + * self.ksp, KSPConvergedDefault, + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPConvergedDefaultCreate((&__pyx_v_cctx))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 253, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":254 + * if normtype != KSP_NORM_NONE: + * CHKERR( KSPConvergedDefaultCreate(&cctx) ) + * CHKERR( KSPSetConvergenceTest( # <<<<<<<<<<<<<< + * self.ksp, KSPConvergedDefault, + * cctx, KSPConvergedDefaultDestroy) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetConvergenceTest(__pyx_v_self->ksp, KSPConvergedDefault, __pyx_v_cctx, KSPConvergedDefaultDestroy)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 254, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":252 + * else: + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + * if normtype != KSP_NORM_NONE: # <<<<<<<<<<<<<< + * CHKERR( KSPConvergedDefaultCreate(&cctx) ) + * CHKERR( KSPSetConvergenceTest( + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/KSP.pyx":258 + * cctx, KSPConvergedDefaultDestroy) ) + * else: + * CHKERR( KSPSetConvergenceTest( # <<<<<<<<<<<<<< + * self.ksp, KSPConvergedSkip, + * NULL, NULL) ) + */ + /*else*/ { + + /* "petsc4py/PETSc/KSP.pyx":260 + * CHKERR( KSPSetConvergenceTest( + * self.ksp, KSPConvergedSkip, + * NULL, NULL) ) # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetConvergenceTest(__pyx_v_self->ksp, KSPConvergedSkip, NULL, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 258, __pyx_L1_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/KSP.pyx":261 + * self.ksp, KSPConvergedSkip, + * NULL, NULL) ) + * self.set_attr('__converged__', None) # <<<<<<<<<<<<<< + * + * def getConvergenceTest(self): + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), Py_None); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/KSP.pyx":241 + * return (toReal(crtol), toReal(catol), toReal(cdivtol), toInt(cmaxits)) + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * cdef void* cctx = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":263 + * self.set_attr('__converged__', None) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * return self.get_attr('__converged__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_51getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_50getConvergenceTest[] = "KSP.getConvergenceTest(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_51getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergenceTest (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergenceTest", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergenceTest", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_50getConvergenceTest(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_50getConvergenceTest(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergenceTest", 0); + + /* "petsc4py/PETSc/KSP.pyx":264 + * + * def getConvergenceTest(self): + * return self.get_attr('__converged__') # <<<<<<<<<<<<<< + * + * def callConvergenceTest(self, its, rnorm): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":263 + * self.set_attr('__converged__', None) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * return self.get_attr('__converged__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":266 + * return self.get_attr('__converged__') + * + * def callConvergenceTest(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_53callConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_52callConvergenceTest[] = "KSP.callConvergenceTest(self, its, rnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_53callConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_rnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("callConvergenceTest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,&__pyx_n_s_rnorm,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 2, 2, 1); __PYX_ERR(48, 266, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "callConvergenceTest") < 0)) __PYX_ERR(48, 266, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_its = values[0]; + __pyx_v_rnorm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 266, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.callConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_52callConvergenceTest(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_its, __pyx_v_rnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_52callConvergenceTest(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + KSPConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("callConvergenceTest", 0); + + /* "petsc4py/PETSc/KSP.pyx":267 + * + * def callConvergenceTest(self, its, rnorm): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 267, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":268 + * def callConvergenceTest(self, its, rnorm): + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) # <<<<<<<<<<<<<< + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPConvergenceTestCall(self.ksp, ival, rval, &reason) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rnorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 268, __pyx_L1_error) + __pyx_v_rval = __pyx_t_2; + + /* "petsc4py/PETSc/KSP.pyx":269 + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * CHKERR( KSPConvergenceTestCall(self.ksp, ival, rval, &reason) ) + * return reason + */ + __pyx_v_reason = KSP_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/KSP.pyx":270 + * cdef PetscReal rval = asReal(rnorm) + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPConvergenceTestCall(self.ksp, ival, rval, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPConvergenceTestCall(__pyx_v_self->ksp, __pyx_v_ival, __pyx_v_rval, (&__pyx_v_reason))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 270, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":271 + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPConvergenceTestCall(self.ksp, ival, rval, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def setConvergenceHistory(self, length=None, reset=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyInt_From_KSPConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":266 + * return self.get_attr('__converged__') + * + * def callConvergenceTest(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.callConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":273 + * return reason + * + * def setConvergenceHistory(self, length=None, reset=False): # <<<<<<<<<<<<<< + * cdef PetscReal *data = NULL + * cdef PetscInt size = 10000 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_55setConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_54setConvergenceHistory[] = "KSP.setConvergenceHistory(self, length=None, reset=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_55setConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_length = 0; + PyObject *__pyx_v_reset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergenceHistory (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_length,&__pyx_n_s_reset,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reset); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergenceHistory") < 0)) __PYX_ERR(48, 273, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_length = values[0]; + __pyx_v_reset = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergenceHistory", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 273, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_54setConvergenceHistory(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_length, __pyx_v_reset); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_54setConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_length, PyObject *__pyx_v_reset) { + PetscReal *__pyx_v_data; + PetscInt __pyx_v_size; + PetscBool __pyx_v_flag; + PyObject *__pyx_v_hist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergenceHistory", 0); + + /* "petsc4py/PETSc/KSP.pyx":274 + * + * def setConvergenceHistory(self, length=None, reset=False): + * cdef PetscReal *data = NULL # <<<<<<<<<<<<<< + * cdef PetscInt size = 10000 + * cdef PetscBool flag = PETSC_FALSE + */ + __pyx_v_data = NULL; + + /* "petsc4py/PETSc/KSP.pyx":275 + * def setConvergenceHistory(self, length=None, reset=False): + * cdef PetscReal *data = NULL + * cdef PetscInt size = 10000 # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass + */ + __pyx_v_size = 0x2710; + + /* "petsc4py/PETSc/KSP.pyx":276 + * cdef PetscReal *data = NULL + * cdef PetscInt size = 10000 + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * if length is True: pass + * elif length is not None: size = asInt(length) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":277 + * cdef PetscInt size = 10000 + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass # <<<<<<<<<<<<<< + * elif length is not None: size = asInt(length) + * if size < 0: size = 10000 + */ + __pyx_t_1 = (__pyx_v_length == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + goto __pyx_L3; + } + + /* "petsc4py/PETSc/KSP.pyx":278 + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass + * elif length is not None: size = asInt(length) # <<<<<<<<<<<<<< + * if size < 0: size = 10000 + * if reset: flag = PETSC_TRUE + */ + __pyx_t_2 = (__pyx_v_length != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_length); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 278, __pyx_L1_error) + __pyx_v_size = __pyx_t_3; + } + __pyx_L3:; + + /* "petsc4py/PETSc/KSP.pyx":279 + * if length is True: pass + * elif length is not None: size = asInt(length) + * if size < 0: size = 10000 # <<<<<<<<<<<<<< + * if reset: flag = PETSC_TRUE + * cdef object hist = oarray_r(empty_r(size), NULL, &data) + */ + __pyx_t_1 = ((__pyx_v_size < 0) != 0); + if (__pyx_t_1) { + __pyx_v_size = 0x2710; + } + + /* "petsc4py/PETSc/KSP.pyx":280 + * elif length is not None: size = asInt(length) + * if size < 0: size = 10000 + * if reset: flag = PETSC_TRUE # <<<<<<<<<<<<<< + * cdef object hist = oarray_r(empty_r(size), NULL, &data) + * self.set_attr('__history__', hist) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_reset); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(48, 280, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_flag = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":281 + * if size < 0: size = 10000 + * if reset: flag = PETSC_TRUE + * cdef object hist = oarray_r(empty_r(size), NULL, &data) # <<<<<<<<<<<<<< + * self.set_attr('__history__', hist) + * CHKERR( KSPSetResidualHistory(self.ksp, data, size, flag) ) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_r(__pyx_v_size)); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_r(__pyx_t_4, NULL, (&__pyx_v_data))); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_hist = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":282 + * if reset: flag = PETSC_TRUE + * cdef object hist = oarray_r(empty_r(size), NULL, &data) + * self.set_attr('__history__', hist) # <<<<<<<<<<<<<< + * CHKERR( KSPSetResidualHistory(self.ksp, data, size, flag) ) + * + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__history__"), __pyx_v_hist); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":283 + * cdef object hist = oarray_r(empty_r(size), NULL, &data) + * self.set_attr('__history__', hist) + * CHKERR( KSPSetResidualHistory(self.ksp, data, size, flag) ) # <<<<<<<<<<<<<< + * + * def getConvergenceHistory(self): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetResidualHistory(__pyx_v_self->ksp, __pyx_v_data, __pyx_v_size, __pyx_v_flag)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 283, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":273 + * return reason + * + * def setConvergenceHistory(self, length=None, reset=False): # <<<<<<<<<<<<<< + * cdef PetscReal *data = NULL + * cdef PetscInt size = 10000 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_hist); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":285 + * CHKERR( KSPSetResidualHistory(self.ksp, data, size, flag) ) + * + * def getConvergenceHistory(self): # <<<<<<<<<<<<<< + * cdef const PetscReal *data = NULL + * cdef PetscInt size = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_57getConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_56getConvergenceHistory[] = "KSP.getConvergenceHistory(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_57getConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergenceHistory (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergenceHistory", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergenceHistory", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_56getConvergenceHistory(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_56getConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self) { + PetscReal const *__pyx_v_data; + PetscInt __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergenceHistory", 0); + + /* "petsc4py/PETSc/KSP.pyx":286 + * + * def getConvergenceHistory(self): + * cdef const PetscReal *data = NULL # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( KSPGetResidualHistory(self.ksp, &data, &size) ) + */ + __pyx_v_data = NULL; + + /* "petsc4py/PETSc/KSP.pyx":287 + * def getConvergenceHistory(self): + * cdef const PetscReal *data = NULL + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * CHKERR( KSPGetResidualHistory(self.ksp, &data, &size) ) + * return array_r(size, data) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/KSP.pyx":288 + * cdef const PetscReal *data = NULL + * cdef PetscInt size = 0 + * CHKERR( KSPGetResidualHistory(self.ksp, &data, &size) ) # <<<<<<<<<<<<<< + * return array_r(size, data) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetResidualHistory(__pyx_v_self->ksp, (&__pyx_v_data), (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 288, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":289 + * cdef PetscInt size = 0 + * CHKERR( KSPGetResidualHistory(self.ksp, &data, &size) ) + * return array_r(size, data) # <<<<<<<<<<<<<< + * + * def logConvergenceHistory(self, rnorm): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r(__pyx_v_size, __pyx_v_data)); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":285 + * CHKERR( KSPSetResidualHistory(self.ksp, data, size, flag) ) + * + * def getConvergenceHistory(self): # <<<<<<<<<<<<<< + * cdef const PetscReal *data = NULL + * cdef PetscInt size = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":291 + * return array_r(size, data) + * + * def logConvergenceHistory(self, rnorm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPLogResidualHistory(self.ksp, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_59logConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_58logConvergenceHistory[] = "KSP.logConvergenceHistory(self, rnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_59logConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("logConvergenceHistory (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rnorm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnorm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "logConvergenceHistory") < 0)) __PYX_ERR(48, 291, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_rnorm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("logConvergenceHistory", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 291, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.logConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_58logConvergenceHistory(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_rnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_58logConvergenceHistory(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rnorm) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("logConvergenceHistory", 0); + + /* "petsc4py/PETSc/KSP.pyx":292 + * + * def logConvergenceHistory(self, rnorm): + * cdef PetscReal rval = asReal(rnorm) # <<<<<<<<<<<<<< + * CHKERR( KSPLogResidualHistory(self.ksp, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rnorm); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 292, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":293 + * def logConvergenceHistory(self, rnorm): + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPLogResidualHistory(self.ksp, rval) ) # <<<<<<<<<<<<<< + * + * # --- monitoring --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPLogResidualHistory(__pyx_v_self->ksp, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 293, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":291 + * return array_r(size, data) + * + * def logConvergenceHistory(self, rnorm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPLogResidualHistory(self.ksp, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.logConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":297 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_61setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_60setMonitor[] = "KSP.setMonitor(self, monitor, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_61setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_monitor = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMonitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_monitor,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_monitor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMonitor") < 0)) __PYX_ERR(48, 297, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_monitor = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMonitor", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 297, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_60setMonitor(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_monitor, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_60setMonitor(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMonitor", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/KSP.pyx":298 + * + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return # <<<<<<<<<<<<<< + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + */ + __pyx_t_1 = (__pyx_v_monitor == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":299 + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: + * monitorlist = [] + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_monitorlist = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":300 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/KSP.pyx":301 + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + * monitorlist = [] # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', monitorlist) + * CHKERR( KSPMonitorSet(self.ksp, KSP_Monitor, NULL, NULL) ) + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_monitorlist, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":302 + * if monitorlist is None: + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) # <<<<<<<<<<<<<< + * CHKERR( KSPMonitorSet(self.ksp, KSP_Monitor, NULL, NULL) ) + * if args is None: args = () + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), __pyx_v_monitorlist); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":303 + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + * CHKERR( KSPMonitorSet(self.ksp, KSP_Monitor, NULL, NULL) ) # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMonitorSet(__pyx_v_self->ksp, __pyx_f_8petsc4py_5PETSc_KSP_Monitor, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 303, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":300 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + } + + /* "petsc4py/PETSc/KSP.pyx":304 + * self.set_attr('__monitor__', monitorlist) + * CHKERR( KSPMonitorSet(self.ksp, KSP_Monitor, NULL, NULL) ) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * monitorlist.append((monitor, args, kargs)) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/KSP.pyx":305 + * CHKERR( KSPMonitorSet(self.ksp, KSP_Monitor, NULL, NULL) ) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * monitorlist.append((monitor, args, kargs)) + * + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":306 + * if args is None: args = () + * if kargs is None: kargs = {} + * monitorlist.append((monitor, args, kargs)) # <<<<<<<<<<<<<< + * + * def getMonitor(self): + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_monitor); + __Pyx_GIVEREF(__pyx_v_monitor); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_monitor); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_monitorlist, __pyx_t_3); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(48, 306, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":297 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":308 + * monitorlist.append((monitor, args, kargs)) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_63getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_62getMonitor[] = "KSP.getMonitor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_63getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMonitor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMonitor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMonitor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_62getMonitor(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_62getMonitor(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMonitor", 0); + + /* "petsc4py/PETSc/KSP.pyx":309 + * + * def getMonitor(self): + * return self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * + * def monitorCancel(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":308 + * monitorlist.append((monitor, args, kargs)) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":311 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * CHKERR( KSPMonitorCancel(self.ksp) ) + * self.set_attr('__monitor__', None) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_65monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_64monitorCancel[] = "KSP.monitorCancel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_65monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitorCancel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("monitorCancel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "monitorCancel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_64monitorCancel(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_64monitorCancel(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitorCancel", 0); + + /* "petsc4py/PETSc/KSP.pyx":312 + * + * def monitorCancel(self): + * CHKERR( KSPMonitorCancel(self.ksp) ) # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', None) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMonitorCancel(__pyx_v_self->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 312, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":313 + * def monitorCancel(self): + * CHKERR( KSPMonitorCancel(self.ksp) ) + * self.set_attr('__monitor__', None) # <<<<<<<<<<<<<< + * + * cancelMonitor = monitorCancel + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/KSP.pyx":311 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * CHKERR( KSPMonitorCancel(self.ksp) ) + * self.set_attr('__monitor__', None) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.monitorCancel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":317 + * cancelMonitor = monitorCancel + * + * def monitor(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_67monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_66monitor[] = "KSP.monitor(self, its, rnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_67monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_rnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,&__pyx_n_s_rnorm,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("monitor", 1, 2, 2, 1); __PYX_ERR(48, 317, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor") < 0)) __PYX_ERR(48, 317, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_its = values[0]; + __pyx_v_rnorm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("monitor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 317, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_66monitor(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_its, __pyx_v_rnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_66monitor(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitor", 0); + + /* "petsc4py/PETSc/KSP.pyx":318 + * + * def monitor(self, its, rnorm): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPMonitor(self.ksp, ival, rval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 318, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":319 + * def monitor(self, its, rnorm): + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) # <<<<<<<<<<<<<< + * CHKERR( KSPMonitor(self.ksp, ival, rval) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rnorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 319, __pyx_L1_error) + __pyx_v_rval = __pyx_t_2; + + /* "petsc4py/PETSc/KSP.pyx":320 + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPMonitor(self.ksp, ival, rval) ) # <<<<<<<<<<<<<< + * + * # --- customization --- + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMonitor(__pyx_v_self->ksp, __pyx_v_ival, __pyx_v_rval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":317 + * cancelMonitor = monitorCancel + * + * def monitor(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":324 + * # --- customization --- + * + * def setPCSide(self, side): # <<<<<<<<<<<<<< + * CHKERR( KSPSetPCSide(self.ksp, side) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_69setPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_68setPCSide[] = "KSP.setPCSide(self, side)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_69setPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_side = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPCSide (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_side,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_side)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPCSide") < 0)) __PYX_ERR(48, 324, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_side = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPCSide", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 324, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_68setPCSide(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_side); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_68setPCSide(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_side) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCSide __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPCSide", 0); + + /* "petsc4py/PETSc/KSP.pyx":325 + * + * def setPCSide(self, side): + * CHKERR( KSPSetPCSide(self.ksp, side) ) # <<<<<<<<<<<<<< + * + * def getPCSide(self): + */ + __pyx_t_1 = ((PCSide)__Pyx_PyInt_As_PCSide(__pyx_v_side)); if (unlikely(PyErr_Occurred())) __PYX_ERR(48, 325, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetPCSide(__pyx_v_self->ksp, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 325, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":324 + * # --- customization --- + * + * def setPCSide(self, side): # <<<<<<<<<<<<<< + * CHKERR( KSPSetPCSide(self.ksp, side) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":327 + * CHKERR( KSPSetPCSide(self.ksp, side) ) + * + * def getPCSide(self): # <<<<<<<<<<<<<< + * cdef PetscPCSide side = PC_LEFT + * CHKERR( KSPGetPCSide(self.ksp, &side) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_71getPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_70getPCSide[] = "KSP.getPCSide(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_71getPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPCSide (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPCSide", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPCSide", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_70getPCSide(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_70getPCSide(struct PyPetscKSPObject *__pyx_v_self) { + PCSide __pyx_v_side; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPCSide", 0); + + /* "petsc4py/PETSc/KSP.pyx":328 + * + * def getPCSide(self): + * cdef PetscPCSide side = PC_LEFT # <<<<<<<<<<<<<< + * CHKERR( KSPGetPCSide(self.ksp, &side) ) + * return side + */ + __pyx_v_side = PC_LEFT; + + /* "petsc4py/PETSc/KSP.pyx":329 + * def getPCSide(self): + * cdef PetscPCSide side = PC_LEFT + * CHKERR( KSPGetPCSide(self.ksp, &side) ) # <<<<<<<<<<<<<< + * return side + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetPCSide(__pyx_v_self->ksp, (&__pyx_v_side))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 329, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":330 + * cdef PetscPCSide side = PC_LEFT + * CHKERR( KSPGetPCSide(self.ksp, &side) ) + * return side # <<<<<<<<<<<<<< + * + * def setNormType(self, normtype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCSide(__pyx_v_side); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":327 + * CHKERR( KSPSetPCSide(self.ksp, side) ) + * + * def getPCSide(self): # <<<<<<<<<<<<<< + * cdef PetscPCSide side = PC_LEFT + * CHKERR( KSPGetPCSide(self.ksp, &side) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":332 + * return side + * + * def setNormType(self, normtype): # <<<<<<<<<<<<<< + * CHKERR( KSPSetNormType(self.ksp, normtype) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_73setNormType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_72setNormType[] = "KSP.setNormType(self, normtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_73setNormType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_normtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNormType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_normtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_normtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNormType") < 0)) __PYX_ERR(48, 332, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_normtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNormType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 332, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setNormType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_72setNormType(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_normtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_72setNormType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_normtype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + KSPNormType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNormType", 0); + + /* "petsc4py/PETSc/KSP.pyx":333 + * + * def setNormType(self, normtype): + * CHKERR( KSPSetNormType(self.ksp, normtype) ) # <<<<<<<<<<<<<< + * + * def getNormType(self): + */ + __pyx_t_1 = ((KSPNormType)__Pyx_PyInt_As_KSPNormType(__pyx_v_normtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(48, 333, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetNormType(__pyx_v_self->ksp, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 333, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":332 + * return side + * + * def setNormType(self, normtype): # <<<<<<<<<<<<<< + * CHKERR( KSPSetNormType(self.ksp, normtype) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setNormType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":335 + * CHKERR( KSPSetNormType(self.ksp, normtype) ) + * + * def getNormType(self): # <<<<<<<<<<<<<< + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_75getNormType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_74getNormType[] = "KSP.getNormType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_75getNormType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNormType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNormType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNormType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_74getNormType(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_74getNormType(struct PyPetscKSPObject *__pyx_v_self) { + KSPNormType __pyx_v_normtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNormType", 0); + + /* "petsc4py/PETSc/KSP.pyx":336 + * + * def getNormType(self): + * cdef PetscKSPNormType normtype = KSP_NORM_NONE # <<<<<<<<<<<<<< + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + * return normtype + */ + __pyx_v_normtype = KSP_NORM_NONE; + + /* "petsc4py/PETSc/KSP.pyx":337 + * def getNormType(self): + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) # <<<<<<<<<<<<<< + * return normtype + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetNormType(__pyx_v_self->ksp, (&__pyx_v_normtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 337, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":338 + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + * return normtype # <<<<<<<<<<<<<< + * + * def setComputeEigenvalues(self, bint flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_KSPNormType(__pyx_v_normtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":335 + * CHKERR( KSPSetNormType(self.ksp, normtype) ) + * + * def getNormType(self): # <<<<<<<<<<<<<< + * cdef PetscKSPNormType normtype = KSP_NORM_NONE + * CHKERR( KSPGetNormType(self.ksp, &normtype) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getNormType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":340 + * return normtype + * + * def setComputeEigenvalues(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_77setComputeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_76setComputeEigenvalues[] = "KSP.setComputeEigenvalues(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_77setComputeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setComputeEigenvalues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComputeEigenvalues") < 0)) __PYX_ERR(48, 340, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 340, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setComputeEigenvalues", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 340, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeEigenvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_76setComputeEigenvalues(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_76setComputeEigenvalues(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_compute; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setComputeEigenvalues", 0); + + /* "petsc4py/PETSc/KSP.pyx":341 + * + * def setComputeEigenvalues(self, bint flag): + * cdef PetscBool compute = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: compute = PETSC_TRUE + * CHKERR( KSPSetComputeEigenvalues(self.ksp, compute) ) + */ + __pyx_v_compute = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":342 + * def setComputeEigenvalues(self, bint flag): + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetComputeEigenvalues(self.ksp, compute) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_compute = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":343 + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + * CHKERR( KSPSetComputeEigenvalues(self.ksp, compute) ) # <<<<<<<<<<<<<< + * + * def getComputeEigenvalues(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetComputeEigenvalues(__pyx_v_self->ksp, __pyx_v_compute)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 343, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":340 + * return normtype + * + * def setComputeEigenvalues(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeEigenvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":345 + * CHKERR( KSPSetComputeEigenvalues(self.ksp, compute) ) + * + * def getComputeEigenvalues(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeEigenvalues(self.ksp, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_79getComputeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_78getComputeEigenvalues[] = "KSP.getComputeEigenvalues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_79getComputeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getComputeEigenvalues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getComputeEigenvalues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getComputeEigenvalues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_78getComputeEigenvalues(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_78getComputeEigenvalues(struct PyPetscKSPObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getComputeEigenvalues", 0); + + /* "petsc4py/PETSc/KSP.pyx":346 + * + * def getComputeEigenvalues(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( KSPGetComputeEigenvalues(self.ksp, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":347 + * def getComputeEigenvalues(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeEigenvalues(self.ksp, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetComputeEigenvalues(__pyx_v_self->ksp, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 347, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":348 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeEigenvalues(self.ksp, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setComputeSingularValues(self, bint flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 348, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":345 + * CHKERR( KSPSetComputeEigenvalues(self.ksp, compute) ) + * + * def getComputeEigenvalues(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeEigenvalues(self.ksp, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getComputeEigenvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":350 + * return toBool(flag) + * + * def setComputeSingularValues(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_81setComputeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_80setComputeSingularValues[] = "KSP.setComputeSingularValues(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_81setComputeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setComputeSingularValues (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setComputeSingularValues") < 0)) __PYX_ERR(48, 350, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 350, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setComputeSingularValues", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 350, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeSingularValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_80setComputeSingularValues(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_80setComputeSingularValues(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_compute; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setComputeSingularValues", 0); + + /* "petsc4py/PETSc/KSP.pyx":351 + * + * def setComputeSingularValues(self, bint flag): + * cdef PetscBool compute = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: compute = PETSC_TRUE + * CHKERR( KSPSetComputeSingularValues(self.ksp, compute) ) + */ + __pyx_v_compute = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":352 + * def setComputeSingularValues(self, bint flag): + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetComputeSingularValues(self.ksp, compute) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_compute = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":353 + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + * CHKERR( KSPSetComputeSingularValues(self.ksp, compute) ) # <<<<<<<<<<<<<< + * + * def getComputeSingularValues(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetComputeSingularValues(__pyx_v_self->ksp, __pyx_v_compute)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 353, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":350 + * return toBool(flag) + * + * def setComputeSingularValues(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool compute = PETSC_FALSE + * if flag: compute = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setComputeSingularValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":355 + * CHKERR( KSPSetComputeSingularValues(self.ksp, compute) ) + * + * def getComputeSingularValues(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeSingularValues(self.ksp, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_83getComputeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_82getComputeSingularValues[] = "KSP.getComputeSingularValues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_83getComputeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getComputeSingularValues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getComputeSingularValues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getComputeSingularValues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_82getComputeSingularValues(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_82getComputeSingularValues(struct PyPetscKSPObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getComputeSingularValues", 0); + + /* "petsc4py/PETSc/KSP.pyx":356 + * + * def getComputeSingularValues(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( KSPGetComputeSingularValues(self.ksp, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":357 + * def getComputeSingularValues(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeSingularValues(self.ksp, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetComputeSingularValues(__pyx_v_self->ksp, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 357, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":358 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeSingularValues(self.ksp, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * # --- initial guess --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":355 + * CHKERR( KSPSetComputeSingularValues(self.ksp, compute) ) + * + * def getComputeSingularValues(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetComputeSingularValues(self.ksp, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getComputeSingularValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":362 + * # --- initial guess --- + * + * def setInitialGuessNonzero(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool guess_nonzero = PETSC_FALSE + * if flag: guess_nonzero = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_85setInitialGuessNonzero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_84setInitialGuessNonzero[] = "KSP.setInitialGuessNonzero(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_85setInitialGuessNonzero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInitialGuessNonzero (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInitialGuessNonzero") < 0)) __PYX_ERR(48, 362, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 362, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInitialGuessNonzero", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 362, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setInitialGuessNonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_84setInitialGuessNonzero(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_84setInitialGuessNonzero(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_guess_nonzero; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInitialGuessNonzero", 0); + + /* "petsc4py/PETSc/KSP.pyx":363 + * + * def setInitialGuessNonzero(self, bint flag): + * cdef PetscBool guess_nonzero = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: guess_nonzero = PETSC_TRUE + * CHKERR( KSPSetInitialGuessNonzero(self.ksp, guess_nonzero) ) + */ + __pyx_v_guess_nonzero = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":364 + * def setInitialGuessNonzero(self, bint flag): + * cdef PetscBool guess_nonzero = PETSC_FALSE + * if flag: guess_nonzero = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetInitialGuessNonzero(self.ksp, guess_nonzero) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_guess_nonzero = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":365 + * cdef PetscBool guess_nonzero = PETSC_FALSE + * if flag: guess_nonzero = PETSC_TRUE + * CHKERR( KSPSetInitialGuessNonzero(self.ksp, guess_nonzero) ) # <<<<<<<<<<<<<< + * + * def getInitialGuessNonzero(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetInitialGuessNonzero(__pyx_v_self->ksp, __pyx_v_guess_nonzero)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 365, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":362 + * # --- initial guess --- + * + * def setInitialGuessNonzero(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool guess_nonzero = PETSC_FALSE + * if flag: guess_nonzero = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setInitialGuessNonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":367 + * CHKERR( KSPSetInitialGuessNonzero(self.ksp, guess_nonzero) ) + * + * def getInitialGuessNonzero(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessNonzero(self.ksp, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_87getInitialGuessNonzero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_86getInitialGuessNonzero[] = "KSP.getInitialGuessNonzero(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_87getInitialGuessNonzero(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInitialGuessNonzero (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInitialGuessNonzero", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInitialGuessNonzero", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_86getInitialGuessNonzero(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_86getInitialGuessNonzero(struct PyPetscKSPObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInitialGuessNonzero", 0); + + /* "petsc4py/PETSc/KSP.pyx":368 + * + * def getInitialGuessNonzero(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( KSPGetInitialGuessNonzero(self.ksp, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":369 + * def getInitialGuessNonzero(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessNonzero(self.ksp, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetInitialGuessNonzero(__pyx_v_self->ksp, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 369, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":370 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessNonzero(self.ksp, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setInitialGuessKnoll(self, bint flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":367 + * CHKERR( KSPSetInitialGuessNonzero(self.ksp, guess_nonzero) ) + * + * def getInitialGuessNonzero(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessNonzero(self.ksp, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getInitialGuessNonzero", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":372 + * return toBool(flag) + * + * def setInitialGuessKnoll(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool guess_knoll = PETSC_FALSE + * if flag: guess_knoll = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_89setInitialGuessKnoll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_88setInitialGuessKnoll[] = "KSP.setInitialGuessKnoll(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_89setInitialGuessKnoll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInitialGuessKnoll (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInitialGuessKnoll") < 0)) __PYX_ERR(48, 372, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 372, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInitialGuessKnoll", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 372, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setInitialGuessKnoll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_88setInitialGuessKnoll(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_88setInitialGuessKnoll(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_guess_knoll; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInitialGuessKnoll", 0); + + /* "petsc4py/PETSc/KSP.pyx":373 + * + * def setInitialGuessKnoll(self, bint flag): + * cdef PetscBool guess_knoll = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: guess_knoll = PETSC_TRUE + * CHKERR( KSPSetInitialGuessKnoll(self.ksp, guess_knoll) ) + */ + __pyx_v_guess_knoll = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":374 + * def setInitialGuessKnoll(self, bint flag): + * cdef PetscBool guess_knoll = PETSC_FALSE + * if flag: guess_knoll = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetInitialGuessKnoll(self.ksp, guess_knoll) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_guess_knoll = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":375 + * cdef PetscBool guess_knoll = PETSC_FALSE + * if flag: guess_knoll = PETSC_TRUE + * CHKERR( KSPSetInitialGuessKnoll(self.ksp, guess_knoll) ) # <<<<<<<<<<<<<< + * + * def getInitialGuessKnoll(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetInitialGuessKnoll(__pyx_v_self->ksp, __pyx_v_guess_knoll)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":372 + * return toBool(flag) + * + * def setInitialGuessKnoll(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool guess_knoll = PETSC_FALSE + * if flag: guess_knoll = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setInitialGuessKnoll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":377 + * CHKERR( KSPSetInitialGuessKnoll(self.ksp, guess_knoll) ) + * + * def getInitialGuessKnoll(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessKnoll(self.ksp, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_91getInitialGuessKnoll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_90getInitialGuessKnoll[] = "KSP.getInitialGuessKnoll(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_91getInitialGuessKnoll(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInitialGuessKnoll (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInitialGuessKnoll", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInitialGuessKnoll", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_90getInitialGuessKnoll(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_90getInitialGuessKnoll(struct PyPetscKSPObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInitialGuessKnoll", 0); + + /* "petsc4py/PETSc/KSP.pyx":378 + * + * def getInitialGuessKnoll(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( KSPGetInitialGuessKnoll(self.ksp, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":379 + * def getInitialGuessKnoll(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessKnoll(self.ksp, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetInitialGuessKnoll(__pyx_v_self->ksp, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 379, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":380 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessKnoll(self.ksp, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setUseFischerGuess(self, model, size): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":377 + * CHKERR( KSPSetInitialGuessKnoll(self.ksp, guess_knoll) ) + * + * def getInitialGuessKnoll(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetInitialGuessKnoll(self.ksp, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getInitialGuessKnoll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":382 + * return toBool(flag) + * + * def setUseFischerGuess(self, model, size): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(model) + * cdef PetscInt ival2 = asInt(size) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_93setUseFischerGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_92setUseFischerGuess[] = "KSP.setUseFischerGuess(self, model, size)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_93setUseFischerGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_model = 0; + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUseFischerGuess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_model,&__pyx_n_s_size,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setUseFischerGuess", 1, 2, 2, 1); __PYX_ERR(48, 382, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUseFischerGuess") < 0)) __PYX_ERR(48, 382, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_model = values[0]; + __pyx_v_size = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUseFischerGuess", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 382, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setUseFischerGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_92setUseFischerGuess(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_model, __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_92setUseFischerGuess(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_model, PyObject *__pyx_v_size) { + PetscInt __pyx_v_ival1; + PetscInt __pyx_v_ival2; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUseFischerGuess", 0); + + /* "petsc4py/PETSc/KSP.pyx":383 + * + * def setUseFischerGuess(self, model, size): + * cdef PetscInt ival1 = asInt(model) # <<<<<<<<<<<<<< + * cdef PetscInt ival2 = asInt(size) + * CHKERR( KSPSetUseFischerGuess(self.ksp, ival1, ival2) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_model); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 383, __pyx_L1_error) + __pyx_v_ival1 = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":384 + * def setUseFischerGuess(self, model, size): + * cdef PetscInt ival1 = asInt(model) + * cdef PetscInt ival2 = asInt(size) # <<<<<<<<<<<<<< + * CHKERR( KSPSetUseFischerGuess(self.ksp, ival1, ival2) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_size); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 384, __pyx_L1_error) + __pyx_v_ival2 = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":385 + * cdef PetscInt ival1 = asInt(model) + * cdef PetscInt ival2 = asInt(size) + * CHKERR( KSPSetUseFischerGuess(self.ksp, ival1, ival2) ) # <<<<<<<<<<<<<< + * + * # --- solving --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetUseFischerGuess(__pyx_v_self->ksp, __pyx_v_ival1, __pyx_v_ival2)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 385, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":382 + * return toBool(flag) + * + * def setUseFischerGuess(self, model, size): # <<<<<<<<<<<<<< + * cdef PetscInt ival1 = asInt(model) + * cdef PetscInt ival2 = asInt(size) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setUseFischerGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":389 + * # --- solving --- + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetUp(self.ksp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_95setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_94setUp[] = "KSP.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_95setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_94setUp(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_94setUp(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/KSP.pyx":390 + * + * def setUp(self): + * CHKERR( KSPSetUp(self.ksp) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetUp(__pyx_v_self->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 390, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":389 + * # --- solving --- + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetUp(self.ksp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":392 + * CHKERR( KSPSetUp(self.ksp) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( KSPReset(self.ksp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_97reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_96reset[] = "KSP.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_97reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_96reset(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_96reset(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/KSP.pyx":393 + * + * def reset(self): + * CHKERR( KSPReset(self.ksp) ) # <<<<<<<<<<<<<< + * + * def setUpOnBlocks(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPReset(__pyx_v_self->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 393, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":392 + * CHKERR( KSPSetUp(self.ksp) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( KSPReset(self.ksp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":395 + * CHKERR( KSPReset(self.ksp) ) + * + * def setUpOnBlocks(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetUpOnBlocks(self.ksp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_99setUpOnBlocks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_98setUpOnBlocks[] = "KSP.setUpOnBlocks(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_99setUpOnBlocks(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUpOnBlocks (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUpOnBlocks", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUpOnBlocks", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_98setUpOnBlocks(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_98setUpOnBlocks(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUpOnBlocks", 0); + + /* "petsc4py/PETSc/KSP.pyx":396 + * + * def setUpOnBlocks(self): + * CHKERR( KSPSetUpOnBlocks(self.ksp) ) # <<<<<<<<<<<<<< + * + * def solve(self, Vec b or None, Vec x or None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetUpOnBlocks(__pyx_v_self->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 396, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":395 + * CHKERR( KSPReset(self.ksp) ) + * + * def setUpOnBlocks(self): # <<<<<<<<<<<<<< + * CHKERR( KSPSetUpOnBlocks(self.ksp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setUpOnBlocks", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":398 + * CHKERR( KSPSetUpOnBlocks(self.ksp) ) + * + * def solve(self, Vec b or None, Vec x or None): # <<<<<<<<<<<<<< + * cdef PetscVec b_vec = NULL + * cdef PetscVec x_vec = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_101solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_100solve[] = "KSP.solve(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_101solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solve", 1, 2, 2, 1); __PYX_ERR(48, 398, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solve") < 0)) __PYX_ERR(48, 398, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 398, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(48, 398, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(48, 398, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_100solve(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_100solve(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + Vec __pyx_v_b_vec; + Vec __pyx_v_x_vec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solve", 0); + + /* "petsc4py/PETSc/KSP.pyx":399 + * + * def solve(self, Vec b or None, Vec x or None): + * cdef PetscVec b_vec = NULL # <<<<<<<<<<<<<< + * cdef PetscVec x_vec = NULL + * if b is not None: b_vec = b.vec + */ + __pyx_v_b_vec = NULL; + + /* "petsc4py/PETSc/KSP.pyx":400 + * def solve(self, Vec b or None, Vec x or None): + * cdef PetscVec b_vec = NULL + * cdef PetscVec x_vec = NULL # <<<<<<<<<<<<<< + * if b is not None: b_vec = b.vec + * if x is not None: x_vec = x.vec + */ + __pyx_v_x_vec = NULL; + + /* "petsc4py/PETSc/KSP.pyx":401 + * cdef PetscVec b_vec = NULL + * cdef PetscVec x_vec = NULL + * if b is not None: b_vec = b.vec # <<<<<<<<<<<<<< + * if x is not None: x_vec = x.vec + * CHKERR( KSPSolve(self.ksp, b_vec, x_vec) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_b->vec; + __pyx_v_b_vec = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":402 + * cdef PetscVec x_vec = NULL + * if b is not None: b_vec = b.vec + * if x is not None: x_vec = x.vec # <<<<<<<<<<<<<< + * CHKERR( KSPSolve(self.ksp, b_vec, x_vec) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_x->vec; + __pyx_v_x_vec = __pyx_t_3; + } + + /* "petsc4py/PETSc/KSP.pyx":403 + * if b is not None: b_vec = b.vec + * if x is not None: x_vec = x.vec + * CHKERR( KSPSolve(self.ksp, b_vec, x_vec) ) # <<<<<<<<<<<<<< + * + * def solveTranspose(self, Vec b, Vec x): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSolve(__pyx_v_self->ksp, __pyx_v_b_vec, __pyx_v_x_vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 403, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":398 + * CHKERR( KSPSetUpOnBlocks(self.ksp) ) + * + * def solve(self, Vec b or None, Vec x or None): # <<<<<<<<<<<<<< + * cdef PetscVec b_vec = NULL + * cdef PetscVec x_vec = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":405 + * CHKERR( KSPSolve(self.ksp, b_vec, x_vec) ) + * + * def solveTranspose(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( KSPSolveTranspose(self.ksp, b.vec, x.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_103solveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_102solveTranspose[] = "KSP.solveTranspose(self, Vec b, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_103solveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solveTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("solveTranspose", 1, 2, 2, 1); __PYX_ERR(48, 405, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solveTranspose") < 0)) __PYX_ERR(48, 405, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solveTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 405, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.solveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "b", 0))) __PYX_ERR(48, 405, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(48, 405, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_102solveTranspose(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_102solveTranspose(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solveTranspose", 0); + + /* "petsc4py/PETSc/KSP.pyx":406 + * + * def solveTranspose(self, Vec b, Vec x): + * CHKERR( KSPSolveTranspose(self.ksp, b.vec, x.vec) ) # <<<<<<<<<<<<<< + * + * def matSolve(self, Mat B, Mat X): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSolveTranspose(__pyx_v_self->ksp, __pyx_v_b->vec, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 406, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":405 + * CHKERR( KSPSolve(self.ksp, b_vec, x_vec) ) + * + * def solveTranspose(self, Vec b, Vec x): # <<<<<<<<<<<<<< + * CHKERR( KSPSolveTranspose(self.ksp, b.vec, x.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.solveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":408 + * CHKERR( KSPSolveTranspose(self.ksp, b.vec, x.vec) ) + * + * def matSolve(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( KSPMatSolve(self.ksp, B.mat, X.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_105matSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_104matSolve[] = "KSP.matSolve(self, Mat B, Mat X)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_105matSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_B = 0; + struct PyPetscMatObject *__pyx_v_X = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matSolve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_B,&__pyx_n_s_X,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_X)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("matSolve", 1, 2, 2, 1); __PYX_ERR(48, 408, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matSolve") < 0)) __PYX_ERR(48, 408, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_B = ((struct PyPetscMatObject *)values[0]); + __pyx_v_X = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matSolve", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 408, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.matSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_B), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "B", 0))) __PYX_ERR(48, 408, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "X", 0))) __PYX_ERR(48, 408, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_104matSolve(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_B, __pyx_v_X); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_104matSolve(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matSolve", 0); + + /* "petsc4py/PETSc/KSP.pyx":409 + * + * def matSolve(self, Mat B, Mat X): + * CHKERR( KSPMatSolve(self.ksp, B.mat, X.mat) ) # <<<<<<<<<<<<<< + * + * def matSolveTranspose(self, Mat B, Mat X): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMatSolve(__pyx_v_self->ksp, __pyx_v_B->mat, __pyx_v_X->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 409, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":408 + * CHKERR( KSPSolveTranspose(self.ksp, b.vec, x.vec) ) + * + * def matSolve(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( KSPMatSolve(self.ksp, B.mat, X.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.matSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":411 + * CHKERR( KSPMatSolve(self.ksp, B.mat, X.mat) ) + * + * def matSolveTranspose(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( KSPMatSolveTranspose(self.ksp, B.mat, X.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_107matSolveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_106matSolveTranspose[] = "KSP.matSolveTranspose(self, Mat B, Mat X)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_107matSolveTranspose(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_B = 0; + struct PyPetscMatObject *__pyx_v_X = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("matSolveTranspose (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_B,&__pyx_n_s_X,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_B)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_X)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("matSolveTranspose", 1, 2, 2, 1); __PYX_ERR(48, 411, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "matSolveTranspose") < 0)) __PYX_ERR(48, 411, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_B = ((struct PyPetscMatObject *)values[0]); + __pyx_v_X = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("matSolveTranspose", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 411, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.matSolveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_B), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "B", 0))) __PYX_ERR(48, 411, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_X), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "X", 0))) __PYX_ERR(48, 411, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_106matSolveTranspose(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_B, __pyx_v_X); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_106matSolveTranspose(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_B, struct PyPetscMatObject *__pyx_v_X) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("matSolveTranspose", 0); + + /* "petsc4py/PETSc/KSP.pyx":412 + * + * def matSolveTranspose(self, Mat B, Mat X): + * CHKERR( KSPMatSolveTranspose(self.ksp, B.mat, X.mat) ) # <<<<<<<<<<<<<< + * + * def setIterationNumber(self, its): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMatSolveTranspose(__pyx_v_self->ksp, __pyx_v_B->mat, __pyx_v_X->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 412, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":411 + * CHKERR( KSPMatSolve(self.ksp, B.mat, X.mat) ) + * + * def matSolveTranspose(self, Mat B, Mat X): # <<<<<<<<<<<<<< + * CHKERR( KSPMatSolveTranspose(self.ksp, B.mat, X.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.matSolveTranspose", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":414 + * CHKERR( KSPMatSolveTranspose(self.ksp, B.mat, X.mat) ) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_109setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_108setIterationNumber[] = "KSP.setIterationNumber(self, its)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_109setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIterationNumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIterationNumber") < 0)) __PYX_ERR(48, 414, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_its = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIterationNumber", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 414, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_108setIterationNumber(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_its); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_108setIterationNumber(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_its) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIterationNumber", 0); + + /* "petsc4py/PETSc/KSP.pyx":415 + * + * def setIterationNumber(self, its): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 415, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":416 + * def setIterationNumber(self, its): + * cdef PetscInt ival = asInt(its) + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) # <<<<<<<<<<<<<< + * + * def getIterationNumber(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetIterationNumber(__pyx_v_self->ksp, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 416, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":414 + * CHKERR( KSPMatSolveTranspose(self.ksp, B.mat, X.mat) ) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":418 + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( KSPGetIterationNumber(self.ksp, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_111getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_110getIterationNumber[] = "KSP.getIterationNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_111getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIterationNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIterationNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIterationNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_110getIterationNumber(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_110getIterationNumber(struct PyPetscKSPObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIterationNumber", 0); + + /* "petsc4py/PETSc/KSP.pyx":419 + * + * def getIterationNumber(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( KSPGetIterationNumber(self.ksp, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/KSP.pyx":420 + * def getIterationNumber(self): + * cdef PetscInt ival = 0 + * CHKERR( KSPGetIterationNumber(self.ksp, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetIterationNumber(__pyx_v_self->ksp, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 420, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":421 + * cdef PetscInt ival = 0 + * CHKERR( KSPGetIterationNumber(self.ksp, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setResidualNorm(self, rnorm): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":418 + * CHKERR( KSPSetIterationNumber(self.ksp, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( KSPGetIterationNumber(self.ksp, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":423 + * return toInt(ival) + * + * def setResidualNorm(self, rnorm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_113setResidualNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_112setResidualNorm[] = "KSP.setResidualNorm(self, rnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_113setResidualNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setResidualNorm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rnorm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnorm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setResidualNorm") < 0)) __PYX_ERR(48, 423, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_rnorm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setResidualNorm", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 423, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setResidualNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_112setResidualNorm(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_rnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_112setResidualNorm(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_rnorm) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setResidualNorm", 0); + + /* "petsc4py/PETSc/KSP.pyx":424 + * + * def setResidualNorm(self, rnorm): + * cdef PetscReal rval = asReal(rnorm) # <<<<<<<<<<<<<< + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rnorm); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(48, 424, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":425 + * def setResidualNorm(self, rnorm): + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) # <<<<<<<<<<<<<< + * + * def getResidualNorm(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetResidualNorm(__pyx_v_self->ksp, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 425, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":423 + * return toInt(ival) + * + * def setResidualNorm(self, rnorm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setResidualNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":427 + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) + * + * def getResidualNorm(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( KSPGetResidualNorm(self.ksp, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_115getResidualNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_114getResidualNorm[] = "KSP.getResidualNorm(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_115getResidualNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getResidualNorm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getResidualNorm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getResidualNorm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_114getResidualNorm(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_114getResidualNorm(struct PyPetscKSPObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getResidualNorm", 0); + + /* "petsc4py/PETSc/KSP.pyx":428 + * + * def getResidualNorm(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( KSPGetResidualNorm(self.ksp, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/KSP.pyx":429 + * def getResidualNorm(self): + * cdef PetscReal rval = 0 + * CHKERR( KSPGetResidualNorm(self.ksp, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetResidualNorm(__pyx_v_self->ksp, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 429, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":430 + * cdef PetscReal rval = 0 + * CHKERR( KSPGetResidualNorm(self.ksp, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def setConvergedReason(self, reason): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":427 + * CHKERR( KSPSetResidualNorm(self.ksp, rval) ) + * + * def getResidualNorm(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( KSPGetResidualNorm(self.ksp, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getResidualNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":432 + * return toReal(rval) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscKSPConvergedReason val = reason + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_117setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_116setConvergedReason[] = "KSP.setConvergedReason(self, reason)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_117setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reason = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergedReason (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reason,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergedReason") < 0)) __PYX_ERR(48, 432, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_reason = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergedReason", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 432, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_116setConvergedReason(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_reason); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_116setConvergedReason(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_reason) { + KSPConvergedReason __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + KSPConvergedReason __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergedReason", 0); + + /* "petsc4py/PETSc/KSP.pyx":433 + * + * def setConvergedReason(self, reason): + * cdef PetscKSPConvergedReason val = reason # <<<<<<<<<<<<<< + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) + * + */ + __pyx_t_1 = ((KSPConvergedReason)__Pyx_PyInt_As_KSPConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(48, 433, __pyx_L1_error) + __pyx_v_val = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":434 + * def setConvergedReason(self, reason): + * cdef PetscKSPConvergedReason val = reason + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) # <<<<<<<<<<<<<< + * + * def getConvergedReason(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetConvergedReason(__pyx_v_self->ksp, __pyx_v_val)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 434, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":432 + * return toReal(rval) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscKSPConvergedReason val = reason + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":436 + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPGetConvergedReason(self.ksp, &reason) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_119getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_118getConvergedReason[] = "KSP.getConvergedReason(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_119getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_118getConvergedReason(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_118getConvergedReason(struct PyPetscKSPObject *__pyx_v_self) { + KSPConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergedReason", 0); + + /* "petsc4py/PETSc/KSP.pyx":437 + * + * def getConvergedReason(self): + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * CHKERR( KSPGetConvergedReason(self.ksp, &reason) ) + * return reason + */ + __pyx_v_reason = KSP_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/KSP.pyx":438 + * def getConvergedReason(self): + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPGetConvergedReason(self.ksp, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetConvergedReason(__pyx_v_self->ksp, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 438, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":439 + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPGetConvergedReason(self.ksp, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def setErrorIfNotConverged(self, bint flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_KSPConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":436 + * CHKERR( KSPSetConvergedReason(self.ksp, val) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscKSPConvergedReason reason = KSP_CONVERGED_ITERATING + * CHKERR( KSPGetConvergedReason(self.ksp, &reason) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":441 + * return reason + * + * def setErrorIfNotConverged(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_121setErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_120setErrorIfNotConverged[] = "KSP.setErrorIfNotConverged(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_121setErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setErrorIfNotConverged (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setErrorIfNotConverged") < 0)) __PYX_ERR(48, 441, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(48, 441, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setErrorIfNotConverged", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 441, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_120setErrorIfNotConverged(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_120setErrorIfNotConverged(struct PyPetscKSPObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_ernc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setErrorIfNotConverged", 0); + + /* "petsc4py/PETSc/KSP.pyx":442 + * + * def setErrorIfNotConverged(self, bint flag): + * cdef PetscBool ernc = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: ernc = PETSC_TRUE + * CHKERR( KSPSetErrorIfNotConverged(self.ksp, ernc) ) + */ + __pyx_v_ernc = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":443 + * def setErrorIfNotConverged(self, bint flag): + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( KSPSetErrorIfNotConverged(self.ksp, ernc) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_ernc = PETSC_TRUE; + } + + /* "petsc4py/PETSc/KSP.pyx":444 + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + * CHKERR( KSPSetErrorIfNotConverged(self.ksp, ernc) ) # <<<<<<<<<<<<<< + * + * def getErrorIfNotConverged(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetErrorIfNotConverged(__pyx_v_self->ksp, __pyx_v_ernc)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 444, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":441 + * return reason + * + * def setErrorIfNotConverged(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":446 + * CHKERR( KSPSetErrorIfNotConverged(self.ksp, ernc) ) + * + * def getErrorIfNotConverged(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetErrorIfNotConverged(self.ksp, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_123getErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_122getErrorIfNotConverged[] = "KSP.getErrorIfNotConverged(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_123getErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getErrorIfNotConverged (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getErrorIfNotConverged", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getErrorIfNotConverged", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_122getErrorIfNotConverged(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_122getErrorIfNotConverged(struct PyPetscKSPObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getErrorIfNotConverged", 0); + + /* "petsc4py/PETSc/KSP.pyx":447 + * + * def getErrorIfNotConverged(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( KSPGetErrorIfNotConverged(self.ksp, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/KSP.pyx":448 + * def getErrorIfNotConverged(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetErrorIfNotConverged(self.ksp, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetErrorIfNotConverged(__pyx_v_self->ksp, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 448, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":449 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetErrorIfNotConverged(self.ksp, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def getRhs(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":446 + * CHKERR( KSPSetErrorIfNotConverged(self.ksp, ernc) ) + * + * def getErrorIfNotConverged(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( KSPGetErrorIfNotConverged(self.ksp, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":451 + * return toBool(flag) + * + * def getRhs(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_125getRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_124getRhs[] = "KSP.getRhs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_125getRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRhs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRhs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRhs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_124getRhs(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_124getRhs(struct PyPetscKSPObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRhs", 0); + + /* "petsc4py/PETSc/KSP.pyx":452 + * + * def getRhs(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 452, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":453 + * def getRhs(self): + * cdef Vec vec = Vec() + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetRhs(__pyx_v_self->ksp, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 453, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":454 + * cdef Vec vec = Vec() + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":455 + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * def getSolution(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":451 + * return toBool(flag) + * + * def getRhs(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( KSPGetRhs(self.ksp, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getRhs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":457 + * return vec + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_127getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_126getSolution[] = "KSP.getSolution(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_127getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolution (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolution", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolution", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_126getSolution(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_126getSolution(struct PyPetscKSPObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolution", 0); + + /* "petsc4py/PETSc/KSP.pyx":458 + * + * def getSolution(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":459 + * def getSolution(self): + * cdef Vec vec = Vec() + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetSolution(__pyx_v_self->ksp, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 459, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":460 + * cdef Vec vec = Vec() + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/KSP.pyx":461 + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * def getWorkVecs(self, right=None, left=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":457 + * return vec + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( KSPGetSolution(self.ksp, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":463 + * return vec + * + * def getWorkVecs(self, right=None, left=None): # <<<<<<<<<<<<<< + * cdef bint R = right is not None + * cdef bint L = left is not None + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_129getWorkVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_128getWorkVecs[] = "KSP.getWorkVecs(self, right=None, left=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_129getWorkVecs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_right = 0; + PyObject *__pyx_v_left = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getWorkVecs (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_right,&__pyx_n_s_left,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getWorkVecs") < 0)) __PYX_ERR(48, 463, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_right = values[0]; + __pyx_v_left = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getWorkVecs", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 463, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getWorkVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_128getWorkVecs(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_right, __pyx_v_left); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_128getWorkVecs(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_right, PyObject *__pyx_v_left) { + int __pyx_v_R; + int __pyx_v_L; + PetscInt __pyx_v_i; + PetscInt __pyx_v_nr; + PetscInt __pyx_v_nl; + Vec *__pyx_v_vr; + Vec *__pyx_v_vl; + PyObject *__pyx_v_vecsr = 0; + PyObject *__pyx_v_vecsl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscInt __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + char const *__pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getWorkVecs", 0); + + /* "petsc4py/PETSc/KSP.pyx":464 + * + * def getWorkVecs(self, right=None, left=None): + * cdef bint R = right is not None # <<<<<<<<<<<<<< + * cdef bint L = left is not None + * cdef PetscInt i=0, nr=0, nl=0 + */ + __pyx_t_1 = (__pyx_v_right != Py_None); + __pyx_v_R = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":465 + * def getWorkVecs(self, right=None, left=None): + * cdef bint R = right is not None + * cdef bint L = left is not None # <<<<<<<<<<<<<< + * cdef PetscInt i=0, nr=0, nl=0 + * cdef PetscVec *vr=NULL, *vl=NULL + */ + __pyx_t_1 = (__pyx_v_left != Py_None); + __pyx_v_L = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":466 + * cdef bint R = right is not None + * cdef bint L = left is not None + * cdef PetscInt i=0, nr=0, nl=0 # <<<<<<<<<<<<<< + * cdef PetscVec *vr=NULL, *vl=NULL + * if R: nr = asInt(right) + */ + __pyx_v_i = 0; + __pyx_v_nr = 0; + __pyx_v_nl = 0; + + /* "petsc4py/PETSc/KSP.pyx":467 + * cdef bint L = left is not None + * cdef PetscInt i=0, nr=0, nl=0 + * cdef PetscVec *vr=NULL, *vl=NULL # <<<<<<<<<<<<<< + * if R: nr = asInt(right) + * if L: nl = asInt(left) + */ + __pyx_v_vr = NULL; + __pyx_v_vl = NULL; + + /* "petsc4py/PETSc/KSP.pyx":468 + * cdef PetscInt i=0, nr=0, nl=0 + * cdef PetscVec *vr=NULL, *vl=NULL + * if R: nr = asInt(right) # <<<<<<<<<<<<<< + * if L: nl = asInt(left) + * cdef object vecsr = [] if R else None + */ + __pyx_t_1 = (__pyx_v_R != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_right); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 468, __pyx_L1_error) + __pyx_v_nr = __pyx_t_2; + } + + /* "petsc4py/PETSc/KSP.pyx":469 + * cdef PetscVec *vr=NULL, *vl=NULL + * if R: nr = asInt(right) + * if L: nl = asInt(left) # <<<<<<<<<<<<<< + * cdef object vecsr = [] if R else None + * cdef object vecsl = [] if L else None + */ + __pyx_t_1 = (__pyx_v_L != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_left); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 469, __pyx_L1_error) + __pyx_v_nl = __pyx_t_2; + } + + /* "petsc4py/PETSc/KSP.pyx":470 + * if R: nr = asInt(right) + * if L: nl = asInt(left) + * cdef object vecsr = [] if R else None # <<<<<<<<<<<<<< + * cdef object vecsl = [] if L else None + * CHKERR( KSPCreateVecs(self.ksp, nr, &vr, nl, &vr) ) + */ + if ((__pyx_v_R != 0)) { + __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_3 = Py_None; + } + __pyx_v_vecsr = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":471 + * if L: nl = asInt(left) + * cdef object vecsr = [] if R else None + * cdef object vecsl = [] if L else None # <<<<<<<<<<<<<< + * CHKERR( KSPCreateVecs(self.ksp, nr, &vr, nl, &vr) ) + * try: + */ + if ((__pyx_v_L != 0)) { + __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_3 = Py_None; + } + __pyx_v_vecsl = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":472 + * cdef object vecsr = [] if R else None + * cdef object vecsl = [] if L else None + * CHKERR( KSPCreateVecs(self.ksp, nr, &vr, nl, &vr) ) # <<<<<<<<<<<<<< + * try: + * for i from 0 <= i < nr: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPCreateVecs(__pyx_v_self->ksp, __pyx_v_nr, (&__pyx_v_vr), __pyx_v_nl, (&__pyx_v_vr))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 472, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":473 + * cdef object vecsl = [] if L else None + * CHKERR( KSPCreateVecs(self.ksp, nr, &vr, nl, &vr) ) + * try: # <<<<<<<<<<<<<< + * for i from 0 <= i < nr: + * vecsr.append(ref_Vec(vr[i])) + */ + /*try:*/ { + + /* "petsc4py/PETSc/KSP.pyx":474 + * CHKERR( KSPCreateVecs(self.ksp, nr, &vr, nl, &vr) ) + * try: + * for i from 0 <= i < nr: # <<<<<<<<<<<<<< + * vecsr.append(ref_Vec(vr[i])) + * for i from 0 <= i < nl: + */ + __pyx_t_2 = __pyx_v_nr; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + + /* "petsc4py/PETSc/KSP.pyx":475 + * try: + * for i from 0 <= i < nr: + * vecsr.append(ref_Vec(vr[i])) # <<<<<<<<<<<<<< + * for i from 0 <= i < nl: + * vecsl.append(ref_Vec(vl[i])) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_vr[__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 475, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_vecsr, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(48, 475, __pyx_L6_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":476 + * for i from 0 <= i < nr: + * vecsr.append(ref_Vec(vr[i])) + * for i from 0 <= i < nl: # <<<<<<<<<<<<<< + * vecsl.append(ref_Vec(vl[i])) + * finally: + */ + __pyx_t_2 = __pyx_v_nl; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + + /* "petsc4py/PETSc/KSP.pyx":477 + * vecsr.append(ref_Vec(vr[i])) + * for i from 0 <= i < nl: + * vecsl.append(ref_Vec(vl[i])) # <<<<<<<<<<<<<< + * finally: + * if nr > 0 and vr != NULL: + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_vl[__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 477, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_vecsl, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(48, 477, __pyx_L6_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + } + + /* "petsc4py/PETSc/KSP.pyx":479 + * vecsl.append(ref_Vec(vl[i])) + * finally: + * if nr > 0 and vr != NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_7 = ((__pyx_v_nr > 0) != 0); + if (__pyx_t_7) { + } else { + __pyx_t_1 = __pyx_t_7; + goto __pyx_L13_bool_binop_done; + } + __pyx_t_7 = ((__pyx_v_vr != NULL) != 0); + __pyx_t_1 = __pyx_t_7; + __pyx_L13_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/KSP.pyx":480 + * finally: + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? # <<<<<<<<<<<<<< + * if nl > 0 and vl !=NULL: + * VecDestroyVecs(nl, &vl) # XXX errors? + */ + (void)(VecDestroyVecs(__pyx_v_nr, (&__pyx_v_vr))); + + /* "petsc4py/PETSc/KSP.pyx":479 + * vecsl.append(ref_Vec(vl[i])) + * finally: + * if nr > 0 and vr != NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + */ + } + + /* "petsc4py/PETSc/KSP.pyx":481 + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nl, &vl) # XXX errors? + * # + */ + __pyx_t_7 = ((__pyx_v_nl > 0) != 0); + if (__pyx_t_7) { + } else { + __pyx_t_1 = __pyx_t_7; + goto __pyx_L16_bool_binop_done; + } + __pyx_t_7 = ((__pyx_v_vl != NULL) != 0); + __pyx_t_1 = __pyx_t_7; + __pyx_L16_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/KSP.pyx":482 + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + * VecDestroyVecs(nl, &vl) # XXX errors? # <<<<<<<<<<<<<< + * # + * if R and L: return (vecsr, vecsl) + */ + (void)(VecDestroyVecs(__pyx_v_nl, (&__pyx_v_vl))); + + /* "petsc4py/PETSc/KSP.pyx":481 + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nl, &vl) # XXX errors? + * # + */ + } + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; + { + + /* "petsc4py/PETSc/KSP.pyx":479 + * vecsl.append(ref_Vec(vl[i])) + * finally: + * if nr > 0 and vr != NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + */ + __pyx_t_7 = ((__pyx_v_nr > 0) != 0); + if (__pyx_t_7) { + } else { + __pyx_t_1 = __pyx_t_7; + goto __pyx_L21_bool_binop_done; + } + __pyx_t_7 = ((__pyx_v_vr != NULL) != 0); + __pyx_t_1 = __pyx_t_7; + __pyx_L21_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/KSP.pyx":480 + * finally: + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? # <<<<<<<<<<<<<< + * if nl > 0 and vl !=NULL: + * VecDestroyVecs(nl, &vl) # XXX errors? + */ + (void)(VecDestroyVecs(__pyx_v_nr, (&__pyx_v_vr))); + + /* "petsc4py/PETSc/KSP.pyx":479 + * vecsl.append(ref_Vec(vl[i])) + * finally: + * if nr > 0 and vr != NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + */ + } + + /* "petsc4py/PETSc/KSP.pyx":481 + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nl, &vl) # XXX errors? + * # + */ + __pyx_t_7 = ((__pyx_v_nl > 0) != 0); + if (__pyx_t_7) { + } else { + __pyx_t_1 = __pyx_t_7; + goto __pyx_L24_bool_binop_done; + } + __pyx_t_7 = ((__pyx_v_vl != NULL) != 0); + __pyx_t_1 = __pyx_t_7; + __pyx_L24_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/KSP.pyx":482 + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: + * VecDestroyVecs(nl, &vl) # XXX errors? # <<<<<<<<<<<<<< + * # + * if R and L: return (vecsr, vecsl) + */ + (void)(VecDestroyVecs(__pyx_v_nl, (&__pyx_v_vl))); + + /* "petsc4py/PETSc/KSP.pyx":481 + * if nr > 0 and vr != NULL: + * VecDestroyVecs(nr, &vr) # XXX errors? + * if nl > 0 and vl !=NULL: # <<<<<<<<<<<<<< + * VecDestroyVecs(nl, &vl) # XXX errors? + * # + */ + } + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + } + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "petsc4py/PETSc/KSP.pyx":484 + * VecDestroyVecs(nl, &vl) # XXX errors? + * # + * if R and L: return (vecsr, vecsl) # <<<<<<<<<<<<<< + * elif R: return vecsr + * elif L: return vecsl + */ + __pyx_t_7 = (__pyx_v_R != 0); + if (__pyx_t_7) { + } else { + __pyx_t_1 = __pyx_t_7; + goto __pyx_L27_bool_binop_done; + } + __pyx_t_7 = (__pyx_v_L != 0); + __pyx_t_1 = __pyx_t_7; + __pyx_L27_bool_binop_done:; + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_vecsr); + __Pyx_GIVEREF(__pyx_v_vecsr); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_vecsr); + __Pyx_INCREF(__pyx_v_vecsl); + __Pyx_GIVEREF(__pyx_v_vecsl); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_vecsl); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":485 + * # + * if R and L: return (vecsr, vecsl) + * elif R: return vecsr # <<<<<<<<<<<<<< + * elif L: return vecsl + * else: return None + */ + __pyx_t_1 = (__pyx_v_R != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_vecsr); + __pyx_r = __pyx_v_vecsr; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":486 + * if R and L: return (vecsr, vecsl) + * elif R: return vecsr + * elif L: return vecsl # <<<<<<<<<<<<<< + * else: return None + * + */ + __pyx_t_1 = (__pyx_v_L != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_vecsl); + __pyx_r = __pyx_v_vecsl; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":487 + * elif R: return vecsr + * elif L: return vecsl + * else: return None # <<<<<<<<<<<<<< + * + * def buildSolution(self, Vec x=None): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":463 + * return vec + * + * def getWorkVecs(self, right=None, left=None): # <<<<<<<<<<<<<< + * cdef bint R = right is not None + * cdef bint L = left is not None + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getWorkVecs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vecsr); + __Pyx_XDECREF(__pyx_v_vecsl); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":489 + * else: return None + * + * def buildSolution(self, Vec x=None): # <<<<<<<<<<<<<< + * if x is None: x = Vec() + * if x.vec == NULL: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_131buildSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_130buildSolution[] = "KSP.buildSolution(self, Vec x=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_131buildSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("buildSolution (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildSolution") < 0)) __PYX_ERR(48, 489, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("buildSolution", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 489, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.buildSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(48, 489, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_130buildSolution(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_130buildSolution(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("buildSolution", 0); + __Pyx_INCREF((PyObject *)__pyx_v_x); + + /* "petsc4py/PETSc/KSP.pyx":490 + * + * def buildSolution(self, Vec x=None): + * if x is None: x = Vec() # <<<<<<<<<<<<<< + * if x.vec == NULL: + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_x) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_x, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":491 + * def buildSolution(self, Vec x=None): + * if x is None: x = Vec() + * if x.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) + * CHKERR( VecDuplicate(x.vec, &x.vec) ) + */ + __pyx_t_2 = ((__pyx_v_x->vec == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/KSP.pyx":492 + * if x is None: x = Vec() + * if x.vec == NULL: + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(x.vec, &x.vec) ) + * CHKERR( KSPBuildSolution(self.ksp, x.vec, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetSolution(__pyx_v_self->ksp, (&__pyx_v_x->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 492, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":493 + * if x.vec == NULL: + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) + * CHKERR( VecDuplicate(x.vec, &x.vec) ) # <<<<<<<<<<<<<< + * CHKERR( KSPBuildSolution(self.ksp, x.vec, NULL) ) + * return x + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_x->vec, (&__pyx_v_x->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 493, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":491 + * def buildSolution(self, Vec x=None): + * if x is None: x = Vec() + * if x.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) + * CHKERR( VecDuplicate(x.vec, &x.vec) ) + */ + } + + /* "petsc4py/PETSc/KSP.pyx":494 + * CHKERR( KSPGetSolution(self.ksp, &x.vec) ) + * CHKERR( VecDuplicate(x.vec, &x.vec) ) + * CHKERR( KSPBuildSolution(self.ksp, x.vec, NULL) ) # <<<<<<<<<<<<<< + * return x + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildSolution(__pyx_v_self->ksp, __pyx_v_x->vec, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 494, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":495 + * CHKERR( VecDuplicate(x.vec, &x.vec) ) + * CHKERR( KSPBuildSolution(self.ksp, x.vec, NULL) ) + * return x # <<<<<<<<<<<<<< + * + * def buildResidual(self, Vec r=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_x)); + __pyx_r = ((PyObject *)__pyx_v_x); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":489 + * else: return None + * + * def buildSolution(self, Vec x=None): # <<<<<<<<<<<<<< + * if x is None: x = Vec() + * if x.vec == NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.buildSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_x); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":497 + * return x + * + * def buildResidual(self, Vec r=None): # <<<<<<<<<<<<<< + * if r is None: r = Vec() + * if r.vec == NULL: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_133buildResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_132buildResidual[] = "KSP.buildResidual(self, Vec r=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_133buildResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_r = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("buildResidual (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_r,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_r); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "buildResidual") < 0)) __PYX_ERR(48, 497, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_r = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("buildResidual", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 497, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.buildResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_r), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "r", 0))) __PYX_ERR(48, 497, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_132buildResidual(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_r); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_132buildResidual(struct PyPetscKSPObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_r) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("buildResidual", 0); + __Pyx_INCREF((PyObject *)__pyx_v_r); + + /* "petsc4py/PETSc/KSP.pyx":498 + * + * def buildResidual(self, Vec r=None): + * if r is None: r = Vec() # <<<<<<<<<<<<<< + * if r.vec == NULL: + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_r) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_r, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/KSP.pyx":499 + * def buildResidual(self, Vec r=None): + * if r is None: r = Vec() + * if r.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) + * CHKERR( VecDuplicate(r.vec, &r.vec) ) + */ + __pyx_t_2 = ((__pyx_v_r->vec == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/KSP.pyx":500 + * if r is None: r = Vec() + * if r.vec == NULL: + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(r.vec, &r.vec) ) + * CHKERR( KSPBuildResidual(self.ksp , NULL, r.vec, &r.vec) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetRhs(__pyx_v_self->ksp, (&__pyx_v_r->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 500, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":501 + * if r.vec == NULL: + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) + * CHKERR( VecDuplicate(r.vec, &r.vec) ) # <<<<<<<<<<<<<< + * CHKERR( KSPBuildResidual(self.ksp , NULL, r.vec, &r.vec) ) + * return r + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_r->vec, (&__pyx_v_r->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 501, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":499 + * def buildResidual(self, Vec r=None): + * if r is None: r = Vec() + * if r.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) + * CHKERR( VecDuplicate(r.vec, &r.vec) ) + */ + } + + /* "petsc4py/PETSc/KSP.pyx":502 + * CHKERR( KSPGetRhs(self.ksp, &r.vec) ) + * CHKERR( VecDuplicate(r.vec, &r.vec) ) + * CHKERR( KSPBuildResidual(self.ksp , NULL, r.vec, &r.vec) ) # <<<<<<<<<<<<<< + * return r + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildResidual(__pyx_v_self->ksp, NULL, __pyx_v_r->vec, (&__pyx_v_r->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 502, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":503 + * CHKERR( VecDuplicate(r.vec, &r.vec) ) + * CHKERR( KSPBuildResidual(self.ksp , NULL, r.vec, &r.vec) ) + * return r # <<<<<<<<<<<<<< + * + * def computeEigenvalues(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_r)); + __pyx_r = ((PyObject *)__pyx_v_r); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":497 + * return x + * + * def buildResidual(self, Vec r=None): # <<<<<<<<<<<<<< + * if r is None: r = Vec() + * if r.vec == NULL: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.buildResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":505 + * return r + * + * def computeEigenvalues(self): # <<<<<<<<<<<<<< + * cdef PetscInt its = 0 + * cdef PetscInt neig = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_135computeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_134computeEigenvalues[] = "KSP.computeEigenvalues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_135computeEigenvalues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeEigenvalues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("computeEigenvalues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "computeEigenvalues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_134computeEigenvalues(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_134computeEigenvalues(struct PyPetscKSPObject *__pyx_v_self) { + PetscInt __pyx_v_its; + PetscInt __pyx_v_neig; + PetscReal *__pyx_v_rdata; + PetscReal *__pyx_v_idata; + PyArrayObject *__pyx_v_r = 0; + PyArrayObject *__pyx_v_i = 0; + PyArrayObject *__pyx_v_eigen = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeEigenvalues", 0); + + /* "petsc4py/PETSc/KSP.pyx":506 + * + * def computeEigenvalues(self): + * cdef PetscInt its = 0 # <<<<<<<<<<<<<< + * cdef PetscInt neig = 0 + * cdef PetscReal *rdata = NULL + */ + __pyx_v_its = 0; + + /* "petsc4py/PETSc/KSP.pyx":507 + * def computeEigenvalues(self): + * cdef PetscInt its = 0 + * cdef PetscInt neig = 0 # <<<<<<<<<<<<<< + * cdef PetscReal *rdata = NULL + * cdef PetscReal *idata = NULL + */ + __pyx_v_neig = 0; + + /* "petsc4py/PETSc/KSP.pyx":508 + * cdef PetscInt its = 0 + * cdef PetscInt neig = 0 + * cdef PetscReal *rdata = NULL # <<<<<<<<<<<<<< + * cdef PetscReal *idata = NULL + * CHKERR( KSPGetIterationNumber(self.ksp, &its) ) + */ + __pyx_v_rdata = NULL; + + /* "petsc4py/PETSc/KSP.pyx":509 + * cdef PetscInt neig = 0 + * cdef PetscReal *rdata = NULL + * cdef PetscReal *idata = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPGetIterationNumber(self.ksp, &its) ) + * cdef ndarray r = oarray_r(empty_r(its), NULL, &rdata) + */ + __pyx_v_idata = NULL; + + /* "petsc4py/PETSc/KSP.pyx":510 + * cdef PetscReal *rdata = NULL + * cdef PetscReal *idata = NULL + * CHKERR( KSPGetIterationNumber(self.ksp, &its) ) # <<<<<<<<<<<<<< + * cdef ndarray r = oarray_r(empty_r(its), NULL, &rdata) + * cdef ndarray i = oarray_r(empty_r(its), NULL, &idata) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetIterationNumber(__pyx_v_self->ksp, (&__pyx_v_its))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 510, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":511 + * cdef PetscReal *idata = NULL + * CHKERR( KSPGetIterationNumber(self.ksp, &its) ) + * cdef ndarray r = oarray_r(empty_r(its), NULL, &rdata) # <<<<<<<<<<<<<< + * cdef ndarray i = oarray_r(empty_r(its), NULL, &idata) + * CHKERR( KSPComputeEigenvalues(self.ksp, its, rdata, idata, &neig) ) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_r(__pyx_v_its)); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_r(__pyx_t_2, NULL, (&__pyx_v_rdata))); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_r = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":512 + * CHKERR( KSPGetIterationNumber(self.ksp, &its) ) + * cdef ndarray r = oarray_r(empty_r(its), NULL, &rdata) + * cdef ndarray i = oarray_r(empty_r(its), NULL, &idata) # <<<<<<<<<<<<<< + * CHKERR( KSPComputeEigenvalues(self.ksp, its, rdata, idata, &neig) ) + * eigen = empty_c(neig) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_r(__pyx_v_its)); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_r(__pyx_t_3, NULL, (&__pyx_v_idata))); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_i = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/KSP.pyx":513 + * cdef ndarray r = oarray_r(empty_r(its), NULL, &rdata) + * cdef ndarray i = oarray_r(empty_r(its), NULL, &idata) + * CHKERR( KSPComputeEigenvalues(self.ksp, its, rdata, idata, &neig) ) # <<<<<<<<<<<<<< + * eigen = empty_c(neig) + * eigen.real = r[:neig] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPComputeEigenvalues(__pyx_v_self->ksp, __pyx_v_its, __pyx_v_rdata, __pyx_v_idata, (&__pyx_v_neig))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 513, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":514 + * cdef ndarray i = oarray_r(empty_r(its), NULL, &idata) + * CHKERR( KSPComputeEigenvalues(self.ksp, its, rdata, idata, &neig) ) + * eigen = empty_c(neig) # <<<<<<<<<<<<<< + * eigen.real = r[:neig] + * eigen.imag = i[:neig] + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_c(__pyx_v_neig)); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_eigen = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/KSP.pyx":515 + * CHKERR( KSPComputeEigenvalues(self.ksp, its, rdata, idata, &neig) ) + * eigen = empty_c(neig) + * eigen.real = r[:neig] # <<<<<<<<<<<<<< + * eigen.imag = i[:neig] + * return eigen + */ + __pyx_t_2 = __Pyx_PyObject_GetSlice(((PyObject *)__pyx_v_r), 0, __pyx_v_neig, NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_eigen), __pyx_n_s_real, __pyx_t_2) < 0) __PYX_ERR(48, 515, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/KSP.pyx":516 + * eigen = empty_c(neig) + * eigen.real = r[:neig] + * eigen.imag = i[:neig] # <<<<<<<<<<<<<< + * return eigen + * + */ + __pyx_t_2 = __Pyx_PyObject_GetSlice(((PyObject *)__pyx_v_i), 0, __pyx_v_neig, NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 516, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_eigen), __pyx_n_s_imag, __pyx_t_2) < 0) __PYX_ERR(48, 516, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/KSP.pyx":517 + * eigen.real = r[:neig] + * eigen.imag = i[:neig] + * return eigen # <<<<<<<<<<<<<< + * + * def computeExtremeSingularValues(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_eigen)); + __pyx_r = ((PyObject *)__pyx_v_eigen); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":505 + * return r + * + * def computeEigenvalues(self): # <<<<<<<<<<<<<< + * cdef PetscInt its = 0 + * cdef PetscInt neig = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.computeEigenvalues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_r); + __Pyx_XDECREF((PyObject *)__pyx_v_i); + __Pyx_XDECREF((PyObject *)__pyx_v_eigen); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":519 + * return eigen + * + * def computeExtremeSingularValues(self): # <<<<<<<<<<<<<< + * cdef PetscReal smax = 0 + * cdef PetscReal smin = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_137computeExtremeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_136computeExtremeSingularValues[] = "KSP.computeExtremeSingularValues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_137computeExtremeSingularValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeExtremeSingularValues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("computeExtremeSingularValues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "computeExtremeSingularValues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_136computeExtremeSingularValues(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_136computeExtremeSingularValues(struct PyPetscKSPObject *__pyx_v_self) { + PetscReal __pyx_v_smax; + PetscReal __pyx_v_smin; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeExtremeSingularValues", 0); + + /* "petsc4py/PETSc/KSP.pyx":520 + * + * def computeExtremeSingularValues(self): + * cdef PetscReal smax = 0 # <<<<<<<<<<<<<< + * cdef PetscReal smin = 0 + * CHKERR( KSPComputeExtremeSingularValues(self.ksp, &smax, &smin) ) + */ + __pyx_v_smax = 0.0; + + /* "petsc4py/PETSc/KSP.pyx":521 + * def computeExtremeSingularValues(self): + * cdef PetscReal smax = 0 + * cdef PetscReal smin = 0 # <<<<<<<<<<<<<< + * CHKERR( KSPComputeExtremeSingularValues(self.ksp, &smax, &smin) ) + * return smax, smin + */ + __pyx_v_smin = 0.0; + + /* "petsc4py/PETSc/KSP.pyx":522 + * cdef PetscReal smax = 0 + * cdef PetscReal smin = 0 + * CHKERR( KSPComputeExtremeSingularValues(self.ksp, &smax, &smin) ) # <<<<<<<<<<<<<< + * return smax, smin + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPComputeExtremeSingularValues(__pyx_v_self->ksp, (&__pyx_v_smax), (&__pyx_v_smin))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 522, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":523 + * cdef PetscReal smin = 0 + * CHKERR( KSPComputeExtremeSingularValues(self.ksp, &smax, &smin) ) + * return smax, smin # <<<<<<<<<<<<<< + * + * # --- GMRES --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_smax); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_smin); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(48, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":519 + * return eigen + * + * def computeExtremeSingularValues(self): # <<<<<<<<<<<<<< + * cdef PetscReal smax = 0 + * cdef PetscReal smin = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.computeExtremeSingularValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":527 + * # --- GMRES --- + * + * def setGMRESRestart(self, restart): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(restart) + * CHKERR( KSPGMRESSetRestart(self.ksp, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_139setGMRESRestart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_138setGMRESRestart[] = "KSP.setGMRESRestart(self, restart)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_139setGMRESRestart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_restart = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGMRESRestart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_restart,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restart)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGMRESRestart") < 0)) __PYX_ERR(48, 527, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_restart = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGMRESRestart", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 527, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setGMRESRestart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_138setGMRESRestart(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_restart); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_138setGMRESRestart(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_restart) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGMRESRestart", 0); + + /* "petsc4py/PETSc/KSP.pyx":528 + * + * def setGMRESRestart(self, restart): + * cdef PetscInt ival = asInt(restart) # <<<<<<<<<<<<<< + * CHKERR( KSPGMRESSetRestart(self.ksp, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_restart); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(48, 528, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":529 + * def setGMRESRestart(self, restart): + * cdef PetscInt ival = asInt(restart) + * CHKERR( KSPGMRESSetRestart(self.ksp, ival) ) # <<<<<<<<<<<<<< + * + * # --- Python --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGMRESSetRestart(__pyx_v_self->ksp, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 529, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":527 + * # --- GMRES --- + * + * def setGMRESRestart(self, restart): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(restart) + * CHKERR( KSPGMRESSetRestart(self.ksp, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setGMRESRestart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":533 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_141createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_140createPython[] = "KSP.createPython(self, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_141createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(48, 533, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_context = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 533, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_140createPython(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_140createPython(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + KSP __pyx_v_newksp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/KSP.pyx":534 + * + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(48, 534, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/KSP.pyx":535 + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp + */ + __pyx_v_newksp = NULL; + + /* "petsc4py/PETSc/KSP.pyx":536 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ksp = newksp + * CHKERR( KSPSetType(self.ksp, KSPPYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPCreate(__pyx_v_ccomm, (&__pyx_v_newksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 536, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":537 + * cdef PetscKSP newksp = NULL + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp # <<<<<<<<<<<<<< + * CHKERR( KSPSetType(self.ksp, KSPPYTHON) ) + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ksp = __pyx_v_newksp; + + /* "petsc4py/PETSc/KSP.pyx":538 + * CHKERR( KSPCreate(ccomm, &newksp) ) + * PetscCLEAR(self.obj); self.ksp = newksp + * CHKERR( KSPSetType(self.ksp, KSPPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetType(__pyx_v_self->ksp, KSPPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 538, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":539 + * PetscCLEAR(self.obj); self.ksp = newksp + * CHKERR( KSPSetType(self.ksp, KSPPYTHON) ) + * CHKERR( KSPPythonSetContext(self.ksp, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = KSPPythonSetContext(__pyx_v_self->ksp, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 539, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 539, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":540 + * CHKERR( KSPSetType(self.ksp, KSPPYTHON) ) + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":533 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscKSP newksp = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":542 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_143setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_142setPythonContext[] = "KSP.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_143setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(48, 542, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 542, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_142setPythonContext(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_142setPythonContext(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/KSP.pyx":543 + * + * def setPythonContext(self, context): + * CHKERR( KSPPythonSetContext(self.ksp, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = KSPPythonSetContext(__pyx_v_self->ksp, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 543, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 543, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":542 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":545 + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_145getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_144getPythonContext[] = "KSP.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_145getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_144getPythonContext(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_144getPythonContext(struct PyPetscKSPObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/KSP.pyx":546 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/KSP.pyx":547 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = KSPPythonGetContext(__pyx_v_self->ksp, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 547, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 547, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":548 + * cdef void *context = NULL + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":549 + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/KSP.pyx":545 + * CHKERR( KSPPythonSetContext(self.ksp, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( KSPPythonGetContext(self.ksp, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":551 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_147setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_146setPythonType[] = "KSP.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_147setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(48, 551, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(48, 551, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_146setPythonType(((struct PyPetscKSPObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_146setPythonType(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/KSP.pyx":552 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( KSPPythonSetType(self.ksp, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":553 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetType(self.ksp, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":554 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( KSPPythonSetType(self.ksp, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPPythonSetType(__pyx_v_self->ksp, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 554, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":551 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":556 + * CHKERR( KSPPythonSetType(self.ksp, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( KSPPythonGetType(self.ksp, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_149getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3KSP_148getPythonType[] = "KSP.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_149getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_148getPythonType(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_148getPythonType(struct PyPetscKSPObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/KSP.pyx":557 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPPythonGetType(self.ksp, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/KSP.pyx":558 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( KSPPythonGetType(self.ksp, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPPythonGetType(__pyx_v_self->ksp, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(48, 558, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":559 + * cdef const char *cval = NULL + * CHKERR( KSPPythonGetType(self.ksp, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":556 + * CHKERR( KSPPythonSetType(self.ksp, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( KSPPythonGetType(self.ksp, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":564 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6appctx___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6appctx___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":565 + * property appctx: + * def __get__(self): + * return self.getAppCtx() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setAppCtx(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":564 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.appctx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":566 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6appctx_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6appctx_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":567 + * return self.getAppCtx() + * def __set__(self, value): + * self.setAppCtx(value) # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 567, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":566 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.appctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":572 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_2dm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_2dm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_2dm___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2dm___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":573 + * property dm: + * def __get__(self): + * return self.getDM() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setDM(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":572 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.dm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":574 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_2dm_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_2dm_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":575 + * return self.getDM() + * def __set__(self, value): + * self.setDM(value) # <<<<<<<<<<<<<< + * + * # --- vectors --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":574 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.dm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":580 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7vec_sol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7vec_sol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_7vec_sol___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7vec_sol___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":581 + * property vec_sol: + * def __get__(self): + * return self.getSolution() # <<<<<<<<<<<<<< + * + * property vec_rhs: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolution); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":580 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.vec_sol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":584 + * + * property vec_rhs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRhs() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7vec_rhs_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7vec_rhs_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_7vec_rhs___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7vec_rhs___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":585 + * property vec_rhs: + * def __get__(self): + * return self.getRhs() # <<<<<<<<<<<<<< + * + * # --- operators --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRhs); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":584 + * + * property vec_rhs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRhs() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.vec_rhs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":590 + * + * property mat_op: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOperators()[0] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6mat_op_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6mat_op_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6mat_op___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6mat_op___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":591 + * property mat_op: + * def __get__(self): + * return self.getOperators()[0] # <<<<<<<<<<<<<< + * + * property mat_pc: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOperators); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":590 + * + * property mat_op: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOperators()[0] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.mat_op.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":594 + * + * property mat_pc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOperators()[1] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6mat_pc_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6mat_pc_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6mat_pc___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6mat_pc___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":595 + * property mat_pc: + * def __get__(self): + * return self.getOperators()[1] # <<<<<<<<<<<<<< + * + * # --- initial guess --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getOperators); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":594 + * + * property mat_pc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getOperators()[1] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.mat_pc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":600 + * + * property guess_nonzero: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInitialGuessNonzero() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":601 + * property guess_nonzero: + * def __get__(self): + * return self.getInitialGuessNonzero() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setInitialGuessNonzero(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getInitialGuessNonzero); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":600 + * + * property guess_nonzero: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInitialGuessNonzero() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.guess_nonzero.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":602 + * def __get__(self): + * return self.getInitialGuessNonzero() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInitialGuessNonzero(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_13guess_nonzero_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":603 + * return self.getInitialGuessNonzero() + * def __set__(self, value): + * self.setInitialGuessNonzero(value) # <<<<<<<<<<<<<< + * + * property guess_knoll: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setInitialGuessNonzero); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":602 + * def __get__(self): + * return self.getInitialGuessNonzero() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInitialGuessNonzero(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.guess_nonzero.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":606 + * + * property guess_knoll: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInitialGuessKnoll() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":607 + * property guess_knoll: + * def __get__(self): + * return self.getInitialGuessKnoll() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setInitialGuessKnoll(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getInitialGuessKnoll); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":606 + * + * property guess_knoll: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getInitialGuessKnoll() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.guess_knoll.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":608 + * def __get__(self): + * return self.getInitialGuessKnoll() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInitialGuessKnoll(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_11guess_knoll_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":609 + * return self.getInitialGuessKnoll() + * def __set__(self, value): + * self.setInitialGuessKnoll(value) # <<<<<<<<<<<<<< + * + * # --- preconditioner --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setInitialGuessKnoll); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":608 + * def __get__(self): + * return self.getInitialGuessKnoll() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setInitialGuessKnoll(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.guess_knoll.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":614 + * + * property pc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getPC() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_2pc_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_2pc_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_2pc___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_2pc___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":615 + * property pc: + * def __get__(self): + * return self.getPC() # <<<<<<<<<<<<<< + * + * property pc_side: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getPC); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":614 + * + * property pc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getPC() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.pc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":618 + * + * property pc_side: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getPCSide() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":619 + * property pc_side: + * def __get__(self): + * return self.getPCSide() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setPCSide(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getPCSide); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":618 + * + * property pc_side: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getPCSide() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.pc_side.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":620 + * def __get__(self): + * return self.getPCSide() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setPCSide(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_7pc_side_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":621 + * return self.getPCSide() + * def __set__(self, value): + * self.setPCSide(value) # <<<<<<<<<<<<<< + * + * property norm_type: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setPCSide); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":620 + * def __get__(self): + * return self.getPCSide() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setPCSide(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.pc_side.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":624 + * + * property norm_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getNormType() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":625 + * property norm_type: + * def __get__(self): + * return self.getNormType() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setNormType(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getNormType); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":624 + * + * property norm_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getNormType() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.norm_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":626 + * def __get__(self): + * return self.getNormType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setNormType(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_9norm_type_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":627 + * return self.getNormType() + * def __set__(self, value): + * self.setNormType(value) # <<<<<<<<<<<<<< + * + * # --- tolerances --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setNormType); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":626 + * def __get__(self): + * return self.getNormType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setNormType(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.norm_type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":632 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4rtol___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4rtol___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":633 + * property rtol: + * def __get__(self): + * return self.getTolerances()[0] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(rtol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":632 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.rtol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":634 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4rtol_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4rtol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":635 + * return self.getTolerances()[0] + * def __set__(self, value): + * self.setTolerances(rtol=value) # <<<<<<<<<<<<<< + * + * property atol: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rtol, __pyx_v_value) < 0) __PYX_ERR(48, 635, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":634 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.rtol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":638 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4atol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4atol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4atol___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4atol___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":639 + * property atol: + * def __get__(self): + * return self.getTolerances()[1] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(atol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":638 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.atol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":640 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4atol_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4atol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":641 + * return self.getTolerances()[1] + * def __set__(self, value): + * self.setTolerances(atol=value) # <<<<<<<<<<<<<< + * + * property divtol: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_atol, __pyx_v_value) < 0) __PYX_ERR(48, 641, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":640 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.atol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":644 + * + * property divtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[2] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6divtol___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6divtol___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":645 + * property divtol: + * def __get__(self): + * return self.getTolerances()[2] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(divtol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":644 + * + * property divtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[2] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.divtol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":646 + * def __get__(self): + * return self.getTolerances()[2] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(divtol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6divtol_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6divtol_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":647 + * return self.getTolerances()[2] + * def __set__(self, value): + * self.setTolerances(divtol=value) # <<<<<<<<<<<<<< + * + * property max_it: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_divtol, __pyx_v_value) < 0) __PYX_ERR(48, 647, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":646 + * def __get__(self): + * return self.getTolerances()[2] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(divtol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.divtol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":650 + * + * property max_it: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[3] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6max_it___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6max_it___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":651 + * property max_it: + * def __get__(self): + * return self.getTolerances()[3] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(max_it=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":650 + * + * property max_it: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[3] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.max_it.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":652 + * def __get__(self): + * return self.getTolerances()[3] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(max_it=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6max_it_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6max_it_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":653 + * return self.getTolerances()[3] + * def __set__(self, value): + * self.setTolerances(max_it=value) # <<<<<<<<<<<<<< + * + * # --- iteration --- + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_max_it, __pyx_v_value) < 0) __PYX_ERR(48, 653, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(48, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/KSP.pyx":652 + * def __get__(self): + * return self.getTolerances()[3] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(max_it=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.max_it.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":658 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_3its_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_3its_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_3its___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_3its___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":659 + * property its: + * def __get__(self): + * return self.getIterationNumber() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setIterationNumber(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getIterationNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":658 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.its.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":660 + * def __get__(self): + * return self.getIterationNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setIterationNumber(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_3its_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_3its_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_3its_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_3its_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":661 + * return self.getIterationNumber() + * def __set__(self, value): + * self.setIterationNumber(value) # <<<<<<<<<<<<<< + * + * property norm: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setIterationNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":660 + * def __get__(self): + * return self.getIterationNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setIterationNumber(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.its.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":664 + * + * property norm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getResidualNorm() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_4norm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4norm___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_4norm___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":665 + * property norm: + * def __get__(self): + * return self.getResidualNorm() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setResidualNorm(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getResidualNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":664 + * + * property norm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getResidualNorm() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":666 + * def __get__(self): + * return self.getResidualNorm() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setResidualNorm(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_4norm_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_4norm_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":667 + * return self.getResidualNorm() + * def __set__(self, value): + * self.setResidualNorm(value) # <<<<<<<<<<<<<< + * + * property history: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setResidualNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":666 + * def __get__(self): + * return self.getResidualNorm() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setResidualNorm(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":670 + * + * property history: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergenceHistory() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7history_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_7history_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_7history___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_7history___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":671 + * property history: + * def __get__(self): + * return self.getConvergenceHistory() # <<<<<<<<<<<<<< + * + * # --- convergence --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergenceHistory); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":670 + * + * property history: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergenceHistory() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.history.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":676 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6reason_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_6reason_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6reason___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_6reason___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":677 + * property reason: + * def __get__(self): + * return self.getConvergedReason() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setConvergedReason(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":676 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.reason.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":678 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3KSP_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_6reason_2__set__(((struct PyPetscKSPObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3KSP_6reason_2__set__(struct PyPetscKSPObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/KSP.pyx":679 + * return self.getConvergedReason() + * def __set__(self, value): + * self.setConvergedReason(value) # <<<<<<<<<<<<<< + * + * property iterating: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/KSP.pyx":678 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.reason.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":682 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9iterating_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9iterating_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_9iterating___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9iterating___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":683 + * property iterating: + * def __get__(self): + * return self.reason == 0 # <<<<<<<<<<<<<< + * + * property converged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":682 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.iterating.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":686 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9converged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_9converged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_9converged___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_9converged___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":687 + * property converged: + * def __get__(self): + * return self.reason > 0 # <<<<<<<<<<<<<< + * + * property diverged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 687, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":686 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.converged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/KSP.pyx":690 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_8diverged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3KSP_8diverged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3KSP_8diverged___get__(((struct PyPetscKSPObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3KSP_8diverged___get__(struct PyPetscKSPObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/KSP.pyx":691 + * property diverged: + * def __get__(self): + * return self.reason < 0 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(48, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(48, 691, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/KSP.pyx":690 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSP.diverged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":73 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.snes + * self.snes = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES___cinit__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES___cinit__(struct PyPetscSNESObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/SNES.pyx":74 + * + * def __cinit__(self): + * self.obj = &self.snes # <<<<<<<<<<<<<< + * self.snes = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->snes)); + + /* "petsc4py/PETSc/SNES.pyx":75 + * def __cinit__(self): + * self.obj = &self.snes + * self.snes = NULL # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_v_self->snes = NULL; + + /* "petsc4py/PETSc/SNES.pyx":73 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.snes + * self.snes = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":79 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_2view[] = "SNES.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(49, 79, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 79, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(49, 79, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_2view(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_2view(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_cviewer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/SNES.pyx":80 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL # <<<<<<<<<<<<<< + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( SNESView(self.snes, cviewer) ) + */ + __pyx_v_cviewer = NULL; + + /* "petsc4py/PETSc/SNES.pyx":81 + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( SNESView(self.snes, cviewer) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_cviewer = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":82 + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( SNESView(self.snes, cviewer) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESView(__pyx_v_self->snes, __pyx_v_cviewer)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 82, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":79 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":84 + * CHKERR( SNESView(self.snes, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( SNESDestroy(&self.snes) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_4destroy[] = "SNES.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4destroy(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4destroy(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/SNES.pyx":85 + * + * def destroy(self): + * CHKERR( SNESDestroy(&self.snes) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESDestroy((&__pyx_v_self->snes))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 85, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":86 + * def destroy(self): + * CHKERR( SNESDestroy(&self.snes) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":84 + * CHKERR( SNESView(self.snes, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( SNESDestroy(&self.snes) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":88 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_6create[] = "SNES.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(49, 88, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 88, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6create(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6create(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + SNES __pyx_v_newsnes; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/SNES.pyx":89 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 89, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":90 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes + */ + __pyx_v_newsnes = NULL; + + /* "petsc4py/PETSc/SNES.pyx":91 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.snes = newsnes + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESCreate(__pyx_v_ccomm, (&__pyx_v_newsnes))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 91, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":92 + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->snes = __pyx_v_newsnes; + + /* "petsc4py/PETSc/SNES.pyx":93 + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes + * return self # <<<<<<<<<<<<<< + * + * def setType(self, snes_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":88 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":95 + * return self + * + * def setType(self, snes_type): # <<<<<<<<<<<<<< + * cdef PetscSNESType cval = NULL + * snes_type = str2bytes(snes_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_8setType[] = "SNES.setType(self, snes_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_snes_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_snes_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_snes_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(49, 95, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_snes_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 95, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_8setType(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_snes_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_8setType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_snes_type) { + SNESType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_snes_type); + + /* "petsc4py/PETSc/SNES.pyx":96 + * + * def setType(self, snes_type): + * cdef PetscSNESType cval = NULL # <<<<<<<<<<<<<< + * snes_type = str2bytes(snes_type, &cval) + * CHKERR( SNESSetType(self.snes, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":97 + * def setType(self, snes_type): + * cdef PetscSNESType cval = NULL + * snes_type = str2bytes(snes_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( SNESSetType(self.snes, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_snes_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_snes_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":98 + * cdef PetscSNESType cval = NULL + * snes_type = str2bytes(snes_type, &cval) + * CHKERR( SNESSetType(self.snes, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetType(__pyx_v_self->snes, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":95 + * return self + * + * def setType(self, snes_type): # <<<<<<<<<<<<<< + * cdef PetscSNESType cval = NULL + * snes_type = str2bytes(snes_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_snes_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":100 + * CHKERR( SNESSetType(self.snes, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSNESType cval = NULL + * CHKERR( SNESGetType(self.snes, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_10getType[] = "SNES.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_10getType(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_10getType(struct PyPetscSNESObject *__pyx_v_self) { + SNESType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/SNES.pyx":101 + * + * def getType(self): + * cdef PetscSNESType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESGetType(self.snes, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":102 + * def getType(self): + * cdef PetscSNESType cval = NULL + * CHKERR( SNESGetType(self.snes, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetType(__pyx_v_self->snes, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 102, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":103 + * cdef PetscSNESType cval = NULL + * CHKERR( SNESGetType(self.snes, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":100 + * CHKERR( SNESSetType(self.snes, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSNESType cval = NULL + * CHKERR( SNESGetType(self.snes, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":105 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_13setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_12setOptionsPrefix[] = "SNES.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_13setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(49, 105, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 105, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_12setOptionsPrefix(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_12setOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/SNES.pyx":106 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( SNESSetOptionsPrefix(self.snes, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":107 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( SNESSetOptionsPrefix(self.snes, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":108 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( SNESSetOptionsPrefix(self.snes, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetOptionsPrefix(__pyx_v_self->snes, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 108, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":105 + * return bytes2str(cval) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":110 + * CHKERR( SNESSetOptionsPrefix(self.snes, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( SNESGetOptionsPrefix(self.snes, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_15getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_14getOptionsPrefix[] = "SNES.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_15getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_14getOptionsPrefix(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_14getOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/SNES.pyx":111 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESGetOptionsPrefix(self.snes, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":112 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( SNESGetOptionsPrefix(self.snes, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetOptionsPrefix(__pyx_v_self->snes, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":113 + * cdef const char *cval = NULL + * CHKERR( SNESGetOptionsPrefix(self.snes, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":110 + * CHKERR( SNESSetOptionsPrefix(self.snes, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( SNESGetOptionsPrefix(self.snes, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":115 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_17appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_16appendOptionsPrefix[] = "SNES.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_17appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(49, 115, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 115, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_16appendOptionsPrefix(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_16appendOptionsPrefix(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/SNES.pyx":116 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( SNESAppendOptionsPrefix(self.snes, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":117 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( SNESAppendOptionsPrefix(self.snes, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":118 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( SNESAppendOptionsPrefix(self.snes, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESAppendOptionsPrefix(__pyx_v_self->snes, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":115 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":120 + * CHKERR( SNESAppendOptionsPrefix(self.snes, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( SNESSetFromOptions(self.snes) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_19setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_18setFromOptions[] = "SNES.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_19setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_18setFromOptions(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_18setFromOptions(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/SNES.pyx":121 + * + * def setFromOptions(self): + * CHKERR( SNESSetFromOptions(self.snes) ) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetFromOptions(__pyx_v_self->snes)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":120 + * CHKERR( SNESAppendOptionsPrefix(self.snes, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( SNESSetFromOptions(self.snes) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":125 + * # --- application context --- + * + * def setApplicationContext(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * if appctx is not None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_21setApplicationContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_20setApplicationContext[] = "SNES.setApplicationContext(self, appctx)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_21setApplicationContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_appctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setApplicationContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_appctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_appctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setApplicationContext") < 0)) __PYX_ERR(49, 125, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_appctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setApplicationContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 125, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setApplicationContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_20setApplicationContext(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_appctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_20setApplicationContext(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_appctx) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setApplicationContext", 0); + + /* "petsc4py/PETSc/SNES.pyx":126 + * + * def setApplicationContext(self, appctx): + * self.set_attr('__appctx__', appctx) # <<<<<<<<<<<<<< + * if appctx is not None: + * registerAppCtx(appctx) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__"), __pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":127 + * def setApplicationContext(self, appctx): + * self.set_attr('__appctx__', appctx) + * if appctx is not None: # <<<<<<<<<<<<<< + * registerAppCtx(appctx) + * CHKERR( SNESSetApplicationContext(self.snes, appctx) ) + */ + __pyx_t_2 = (__pyx_v_appctx != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SNES.pyx":128 + * self.set_attr('__appctx__', appctx) + * if appctx is not None: + * registerAppCtx(appctx) # <<<<<<<<<<<<<< + * CHKERR( SNESSetApplicationContext(self.snes, appctx) ) + * else: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_registerAppCtx(((void *)__pyx_v_appctx)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":129 + * if appctx is not None: + * registerAppCtx(appctx) + * CHKERR( SNESSetApplicationContext(self.snes, appctx) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( SNESSetApplicationContext(self.snes, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetApplicationContext(__pyx_v_self->snes, ((void *)__pyx_v_appctx))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 129, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":127 + * def setApplicationContext(self, appctx): + * self.set_attr('__appctx__', appctx) + * if appctx is not None: # <<<<<<<<<<<<<< + * registerAppCtx(appctx) + * CHKERR( SNESSetApplicationContext(self.snes, appctx) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":131 + * CHKERR( SNESSetApplicationContext(self.snes, appctx) ) + * else: + * CHKERR( SNESSetApplicationContext(self.snes, NULL) ) # <<<<<<<<<<<<<< + * + * def getApplicationContext(self): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetApplicationContext(__pyx_v_self->snes, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 131, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":125 + * # --- application context --- + * + * def setApplicationContext(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * if appctx is not None: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setApplicationContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":133 + * CHKERR( SNESSetApplicationContext(self.snes, NULL) ) + * + * def getApplicationContext(self): # <<<<<<<<<<<<<< + * cdef void *ctx + * appctx = self.get_attr('__appctx__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_23getApplicationContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_22getApplicationContext[] = "SNES.getApplicationContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_23getApplicationContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getApplicationContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getApplicationContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getApplicationContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_22getApplicationContext(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_22getApplicationContext(struct PyPetscSNESObject *__pyx_v_self) { + void *__pyx_v_ctx; + PyObject *__pyx_v_appctx = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getApplicationContext", 0); + + /* "petsc4py/PETSc/SNES.pyx":135 + * def getApplicationContext(self): + * cdef void *ctx + * appctx = self.get_attr('__appctx__') # <<<<<<<<<<<<<< + * if appctx is None: + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_appctx = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":136 + * cdef void *ctx + * appctx = self.get_attr('__appctx__') + * if appctx is None: # <<<<<<<<<<<<<< + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) + * appctx = toAppCtx(ctx) + */ + __pyx_t_2 = (__pyx_v_appctx == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SNES.pyx":137 + * appctx = self.get_attr('__appctx__') + * if appctx is None: + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) # <<<<<<<<<<<<<< + * appctx = toAppCtx(ctx) + * return appctx + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetApplicationContext(__pyx_v_self->snes, (&__pyx_v_ctx))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":138 + * if appctx is None: + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) + * appctx = toAppCtx(ctx) # <<<<<<<<<<<<<< + * return appctx + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toAppCtx(__pyx_v_ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_appctx, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":136 + * cdef void *ctx + * appctx = self.get_attr('__appctx__') + * if appctx is None: # <<<<<<<<<<<<<< + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) + * appctx = toAppCtx(ctx) + */ + } + + /* "petsc4py/PETSc/SNES.pyx":139 + * CHKERR( SNESGetApplicationContext(self.snes, &ctx) ) + * appctx = toAppCtx(ctx) + * return appctx # <<<<<<<<<<<<<< + * + * # backward compatibility + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_appctx); + __pyx_r = __pyx_v_appctx; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":133 + * CHKERR( SNESSetApplicationContext(self.snes, NULL) ) + * + * def getApplicationContext(self): # <<<<<<<<<<<<<< + * cdef void *ctx + * appctx = self.get_attr('__appctx__') + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getApplicationContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_appctx); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":147 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( SNESGetDM(self.snes, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_25getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_24getDM[] = "SNES.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_25getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_24getDM(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_24getDM(struct PyPetscSNESObject *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/SNES.pyx":148 + * + * def getDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESGetDM(self.snes, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/SNES.pyx":149 + * def getDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( SNESGetDM(self.snes, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetDM(__pyx_v_self->snes, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":150 + * cdef PetscDM newdm = NULL + * CHKERR( SNESGetDM(self.snes, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(49, 150, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":151 + * CHKERR( SNESGetDM(self.snes, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/SNES.pyx":152 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":153 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":147 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( SNESGetDM(self.snes, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":155 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( SNESSetDM(self.snes, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_27setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_26setDM[] = "SNES.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_27setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(49, 155, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 155, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(49, 155, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_26setDM(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_26setDM(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/SNES.pyx":156 + * + * def setDM(self, DM dm): + * CHKERR( SNESSetDM(self.snes, dm.dm) ) # <<<<<<<<<<<<<< + * + * # --- FAS --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetDM(__pyx_v_self->snes, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 156, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":155 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( SNESSetDM(self.snes, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":160 + * # --- FAS --- + * + * def setFASInterpolation(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_29setFASInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_28setFASInterpolation[] = "SNES.setFASInterpolation(self, level, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_29setFASInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFASInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_mat,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFASInterpolation", 1, 2, 2, 1); __PYX_ERR(49, 160, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFASInterpolation") < 0)) __PYX_ERR(49, 160, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_mat = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFASInterpolation", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 160, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(49, 160, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_28setFASInterpolation(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level, __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_28setFASInterpolation(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFASInterpolation", 0); + + /* "petsc4py/PETSc/SNES.pyx":161 + * + * def setFASInterpolation(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 161, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":162 + * def setFASInterpolation(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getFASInterpolation(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetInterpolation(__pyx_v_self->snes, __pyx_v_clevel, __pyx_v_mat->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 162, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":160 + * # --- FAS --- + * + * def setFASInterpolation(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":164 + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) + * + * def getFASInterpolation(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_31getFASInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_30getFASInterpolation[] = "SNES.getFASInterpolation(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_31getFASInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASInterpolation") < 0)) __PYX_ERR(49, 164, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASInterpolation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 164, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_30getFASInterpolation(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_30getFASInterpolation(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASInterpolation", 0); + + /* "petsc4py/PETSc/SNES.pyx":165 + * + * def getFASInterpolation(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInterpolation(self.snes, clevel, &mat.mat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 165, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":166 + * def getFASInterpolation(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetInterpolation(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":167 + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInterpolation(self.snes, clevel, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetInterpolation(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":168 + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInterpolation(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":169 + * CHKERR( SNESFASGetInterpolation(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def setFASRestriction(self, level, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":164 + * CHKERR( SNESFASSetInterpolation(self.snes, clevel, mat.mat) ) + * + * def getFASInterpolation(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":171 + * return mat + * + * def setFASRestriction(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_33setFASRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_32setFASRestriction[] = "SNES.setFASRestriction(self, level, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_33setFASRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFASRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_mat,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFASRestriction", 1, 2, 2, 1); __PYX_ERR(49, 171, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFASRestriction") < 0)) __PYX_ERR(49, 171, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_mat = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFASRestriction", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 171, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(49, 171, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_32setFASRestriction(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level, __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_32setFASRestriction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFASRestriction", 0); + + /* "petsc4py/PETSc/SNES.pyx":172 + * + * def setFASRestriction(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 172, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":173 + * def setFASRestriction(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getFASRestriction(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetRestriction(__pyx_v_self->snes, __pyx_v_clevel, __pyx_v_mat->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 173, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":171 + * return mat + * + * def setFASRestriction(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":175 + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) + * + * def getFASRestriction(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_35getFASRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_34getFASRestriction[] = "SNES.getFASRestriction(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_35getFASRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASRestriction") < 0)) __PYX_ERR(49, 175, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASRestriction", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 175, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_34getFASRestriction(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_34getFASRestriction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASRestriction", 0); + + /* "petsc4py/PETSc/SNES.pyx":176 + * + * def getFASRestriction(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetRestriction(self.snes, clevel, &mat.mat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 176, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":177 + * def getFASRestriction(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetRestriction(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":178 + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetRestriction(self.snes, clevel, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetRestriction(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 178, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":179 + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetRestriction(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":180 + * CHKERR( SNESFASGetRestriction(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def setFASInjection(self, level, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":175 + * CHKERR( SNESFASSetRestriction(self.snes, clevel, mat.mat) ) + * + * def getFASRestriction(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":182 + * return mat + * + * def setFASInjection(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_37setFASInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_36setFASInjection[] = "SNES.setFASInjection(self, level, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_37setFASInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFASInjection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_mat,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFASInjection", 1, 2, 2, 1); __PYX_ERR(49, 182, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFASInjection") < 0)) __PYX_ERR(49, 182, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_mat = ((struct PyPetscMatObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFASInjection", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 182, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(49, 182, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_36setFASInjection(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level, __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_36setFASInjection(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscMatObject *__pyx_v_mat) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFASInjection", 0); + + /* "petsc4py/PETSc/SNES.pyx":183 + * + * def setFASInjection(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 183, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":184 + * def setFASInjection(self, level, Mat mat): + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getFASInjection(self, level): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetInjection(__pyx_v_self->snes, __pyx_v_clevel, __pyx_v_mat->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":182 + * return mat + * + * def setFASInjection(self, level, Mat mat): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":186 + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) + * + * def getFASInjection(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_39getFASInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_38getFASInjection[] = "SNES.getFASInjection(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_39getFASInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASInjection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASInjection") < 0)) __PYX_ERR(49, 186, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASInjection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 186, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_38getFASInjection(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_38getFASInjection(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASInjection", 0); + + /* "petsc4py/PETSc/SNES.pyx":187 + * + * def getFASInjection(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInjection(self.snes, clevel, &mat.mat) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 187, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":188 + * def getFASInjection(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetInjection(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":189 + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInjection(self.snes, clevel, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetInjection(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 189, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":190 + * cdef Mat mat = Mat() + * CHKERR( SNESFASGetInjection(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":191 + * CHKERR( SNESFASGetInjection(self.snes, clevel, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def setFASRScale(self, level, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":186 + * CHKERR( SNESFASSetInjection(self.snes, clevel, mat.mat) ) + * + * def getFASInjection(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef Mat mat = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":193 + * return mat + * + * def setFASRScale(self, level, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_41setFASRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_40setFASRScale[] = "SNES.setFASRScale(self, level, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_41setFASRScale(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFASRScale (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,&__pyx_n_s_vec,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFASRScale", 1, 2, 2, 1); __PYX_ERR(49, 193, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFASRScale") < 0)) __PYX_ERR(49, 193, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_level = values[0]; + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFASRScale", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 193, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(49, 193, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_40setFASRScale(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level, __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_40setFASRScale(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level, struct PyPetscVecObject *__pyx_v_vec) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFASRScale", 0); + + /* "petsc4py/PETSc/SNES.pyx":194 + * + * def setFASRScale(self, level, Vec vec): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 194, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":195 + * def setFASRScale(self, level, Vec vec): + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) # <<<<<<<<<<<<<< + * + * def setFASLevels(self, levels, comms=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetRScale(__pyx_v_self->snes, __pyx_v_clevel, __pyx_v_vec->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 195, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":193 + * return mat + * + * def setFASRScale(self, level, Vec vec): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASRScale", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":197 + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) + * + * def setFASLevels(self, levels, comms=None): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * cdef MPI_Comm *ccomms = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_43setFASLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_42setFASLevels[] = "SNES.setFASLevels(self, levels, comms=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_43setFASLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_levels = 0; + PyObject *__pyx_v_comms = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFASLevels (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_levels,&__pyx_n_s_comms,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_levels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comms); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFASLevels") < 0)) __PYX_ERR(49, 197, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_levels = values[0]; + __pyx_v_comms = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFASLevels", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 197, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_42setFASLevels(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_levels, __pyx_v_comms); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_42setFASLevels(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_levels, PyObject *__pyx_v_comms) { + PetscInt __pyx_v_clevels; + MPI_Comm *__pyx_v_ccomms; + Py_ssize_t __pyx_v_i; + PyObject *__pyx_v_comm = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + MPI_Comm __pyx_t_10; + int __pyx_t_11; + int __pyx_t_12; + char const *__pyx_t_13; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFASLevels", 0); + + /* "petsc4py/PETSc/SNES.pyx":198 + * + * def setFASLevels(self, levels, comms=None): + * cdef PetscInt clevels = asInt(levels) # <<<<<<<<<<<<<< + * cdef MPI_Comm *ccomms = NULL + * cdef Py_ssize_t i = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_levels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 198, __pyx_L1_error) + __pyx_v_clevels = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":199 + * def setFASLevels(self, levels, comms=None): + * cdef PetscInt clevels = asInt(levels) + * cdef MPI_Comm *ccomms = NULL # <<<<<<<<<<<<<< + * cdef Py_ssize_t i = 0 + * if comms is not None: + */ + __pyx_v_ccomms = NULL; + + /* "petsc4py/PETSc/SNES.pyx":200 + * cdef PetscInt clevels = asInt(levels) + * cdef MPI_Comm *ccomms = NULL + * cdef Py_ssize_t i = 0 # <<<<<<<<<<<<<< + * if comms is not None: + * if clevels != len(comms): + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/SNES.pyx":201 + * cdef MPI_Comm *ccomms = NULL + * cdef Py_ssize_t i = 0 + * if comms is not None: # <<<<<<<<<<<<<< + * if clevels != len(comms): + * raise ValueError("Must provide as many communicators as levels") + */ + __pyx_t_2 = (__pyx_v_comms != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SNES.pyx":202 + * cdef Py_ssize_t i = 0 + * if comms is not None: + * if clevels != len(comms): # <<<<<<<<<<<<<< + * raise ValueError("Must provide as many communicators as levels") + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + */ + __pyx_t_4 = PyObject_Length(__pyx_v_comms); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(49, 202, __pyx_L1_error) + __pyx_t_3 = ((__pyx_v_clevels != ((PetscInt)__pyx_t_4)) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/SNES.pyx":203 + * if comms is not None: + * if clevels != len(comms): + * raise ValueError("Must provide as many communicators as levels") # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + * try: + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__46, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(49, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":202 + * cdef Py_ssize_t i = 0 + * if comms is not None: + * if clevels != len(comms): # <<<<<<<<<<<<<< + * raise ValueError("Must provide as many communicators as levels") + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + */ + } + + /* "petsc4py/PETSc/SNES.pyx":204 + * if clevels != len(comms): + * raise ValueError("Must provide as many communicators as levels") + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) # <<<<<<<<<<<<<< + * try: + * for i, comm in enumerate(comms): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc(((sizeof(MPI_Comm)) * ((size_t)__pyx_v_clevels)), (&__pyx_v_ccomms))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 204, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":205 + * raise ValueError("Must provide as many communicators as levels") + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + * try: # <<<<<<<<<<<<<< + * for i, comm in enumerate(comms): + * ccomms[i] = def_Comm(comm, MPI_COMM_NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/SNES.pyx":206 + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + * try: + * for i, comm in enumerate(comms): # <<<<<<<<<<<<<< + * ccomms[i] = def_Comm(comm, MPI_COMM_NULL) + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + */ + __pyx_t_4 = 0; + if (likely(PyList_CheckExact(__pyx_v_comms)) || PyTuple_CheckExact(__pyx_v_comms)) { + __pyx_t_5 = __pyx_v_comms; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_comms); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 206, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 206, __pyx_L6_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(49, 206, __pyx_L6_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(49, 206, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(49, 206, __pyx_L6_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(49, 206, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } + } else { + __pyx_t_9 = __pyx_t_8(__pyx_t_5); + if (unlikely(!__pyx_t_9)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(49, 206, __pyx_L6_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_9); + } + __Pyx_XDECREF_SET(__pyx_v_comm, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_v_i = __pyx_t_4; + __pyx_t_4 = (__pyx_t_4 + 1); + + /* "petsc4py/PETSc/SNES.pyx":207 + * try: + * for i, comm in enumerate(comms): + * ccomms[i] = def_Comm(comm, MPI_COMM_NULL) # <<<<<<<<<<<<<< + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + * finally: + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, MPI_COMM_NULL); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 207, __pyx_L6_error) + (__pyx_v_ccomms[__pyx_v_i]) = __pyx_t_10; + + /* "petsc4py/PETSc/SNES.pyx":206 + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + * try: + * for i, comm in enumerate(comms): # <<<<<<<<<<<<<< + * ccomms[i] = def_Comm(comm, MPI_COMM_NULL) + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + */ + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":208 + * for i, comm in enumerate(comms): + * ccomms[i] = def_Comm(comm, MPI_COMM_NULL) + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) # <<<<<<<<<<<<<< + * finally: + * CHKERR( PetscFree(ccomms) ) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetLevels(__pyx_v_self->snes, __pyx_v_clevels, __pyx_v_ccomms)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 208, __pyx_L6_error) + } + + /* "petsc4py/PETSc/SNES.pyx":210 + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + * finally: + * CHKERR( PetscFree(ccomms) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_ccomms)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 210, __pyx_L1_error) + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_17, &__pyx_t_18, &__pyx_t_19); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0)) __Pyx_ErrFetch(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __Pyx_XGOTREF(__pyx_t_17); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_19); + __pyx_t_11 = __pyx_lineno; __pyx_t_12 = __pyx_clineno; __pyx_t_13 = __pyx_filename; + { + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_ccomms)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 210, __pyx_L11_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); + } + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ErrRestore(__pyx_t_14, __pyx_t_15, __pyx_t_16); + __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; + __pyx_lineno = __pyx_t_11; __pyx_clineno = __pyx_t_12; __pyx_filename = __pyx_t_13; + goto __pyx_L1_error; + __pyx_L11_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_17); + __Pyx_XGIVEREF(__pyx_t_18); + __Pyx_XGIVEREF(__pyx_t_19); + __Pyx_ExceptionReset(__pyx_t_17, __pyx_t_18, __pyx_t_19); + } + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __pyx_t_17 = 0; __pyx_t_18 = 0; __pyx_t_19 = 0; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "petsc4py/PETSc/SNES.pyx":201 + * cdef MPI_Comm *ccomms = NULL + * cdef Py_ssize_t i = 0 + * if comms is not None: # <<<<<<<<<<<<<< + * if clevels != len(comms): + * raise ValueError("Must provide as many communicators as levels") + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":212 + * CHKERR( PetscFree(ccomms) ) + * else: + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) # <<<<<<<<<<<<<< + * + * def getFASLevels(self): + */ + /*else*/ { + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASSetLevels(__pyx_v_self->snes, __pyx_v_clevels, __pyx_v_ccomms)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 212, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":197 + * CHKERR( SNESFASSetRScale(self.snes, clevel, vec.vec) ) + * + * def setFASLevels(self, levels, comms=None): # <<<<<<<<<<<<<< + * cdef PetscInt clevels = asInt(levels) + * cdef MPI_Comm *ccomms = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFASLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_comm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":214 + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + * + * def getFASLevels(self): # <<<<<<<<<<<<<< + * cdef PetscInt levels = 0 + * CHKERR( SNESFASGetLevels(self.snes, &levels) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_45getFASLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_44getFASLevels[] = "SNES.getFASLevels(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_45getFASLevels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASLevels (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFASLevels", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFASLevels", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_44getFASLevels(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_44getFASLevels(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_levels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASLevels", 0); + + /* "petsc4py/PETSc/SNES.pyx":215 + * + * def getFASLevels(self): + * cdef PetscInt levels = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetLevels(self.snes, &levels) ) + * return toInt(levels) + */ + __pyx_v_levels = 0; + + /* "petsc4py/PETSc/SNES.pyx":216 + * def getFASLevels(self): + * cdef PetscInt levels = 0 + * CHKERR( SNESFASGetLevels(self.snes, &levels) ) # <<<<<<<<<<<<<< + * return toInt(levels) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetLevels(__pyx_v_self->snes, (&__pyx_v_levels))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":217 + * cdef PetscInt levels = 0 + * CHKERR( SNESFASGetLevels(self.snes, &levels) ) + * return toInt(levels) # <<<<<<<<<<<<<< + * + * def getFASCycleSNES(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_levels); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":214 + * CHKERR( SNESFASSetLevels(self.snes, clevels, ccomms) ) + * + * def getFASLevels(self): # <<<<<<<<<<<<<< + * cdef PetscInt levels = 0 + * CHKERR( SNESFASGetLevels(self.snes, &levels) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASLevels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":219 + * return toInt(levels) + * + * def getFASCycleSNES(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES lsnes = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_47getFASCycleSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_46getFASCycleSNES[] = "SNES.getFASCycleSNES(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_47getFASCycleSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASCycleSNES (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASCycleSNES") < 0)) __PYX_ERR(49, 219, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASCycleSNES", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 219, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASCycleSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_46getFASCycleSNES(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_46getFASCycleSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscSNESObject *__pyx_v_lsnes = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASCycleSNES", 0); + + /* "petsc4py/PETSc/SNES.pyx":220 + * + * def getFASCycleSNES(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef SNES lsnes = SNES() + * CHKERR( SNESFASGetCycleSNES(self.snes, clevel, &lsnes.snes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 220, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":221 + * def getFASCycleSNES(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef SNES lsnes = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetCycleSNES(self.snes, clevel, &lsnes.snes) ) + * PetscINCREF(lsnes.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_lsnes = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":222 + * cdef PetscInt clevel = asInt(level) + * cdef SNES lsnes = SNES() + * CHKERR( SNESFASGetCycleSNES(self.snes, clevel, &lsnes.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(lsnes.obj) + * return lsnes + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetCycleSNES(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_lsnes->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 222, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":223 + * cdef SNES lsnes = SNES() + * CHKERR( SNESFASGetCycleSNES(self.snes, clevel, &lsnes.snes) ) + * PetscINCREF(lsnes.obj) # <<<<<<<<<<<<<< + * return lsnes + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_lsnes->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":224 + * CHKERR( SNESFASGetCycleSNES(self.snes, clevel, &lsnes.snes) ) + * PetscINCREF(lsnes.obj) + * return lsnes # <<<<<<<<<<<<<< + * + * def getFASCoarseSolve(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_lsnes)); + __pyx_r = ((PyObject *)__pyx_v_lsnes); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":219 + * return toInt(levels) + * + * def getFASCycleSNES(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES lsnes = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASCycleSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_lsnes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":226 + * return lsnes + * + * def getFASCoarseSolve(self): # <<<<<<<<<<<<<< + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_49getFASCoarseSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_48getFASCoarseSolve[] = "SNES.getFASCoarseSolve(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_49getFASCoarseSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASCoarseSolve (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFASCoarseSolve", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFASCoarseSolve", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_48getFASCoarseSolve(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_48getFASCoarseSolve(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscSNESObject *__pyx_v_smooth = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASCoarseSolve", 0); + + /* "petsc4py/PETSc/SNES.pyx":227 + * + * def getFASCoarseSolve(self): + * cdef SNES smooth = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) + * PetscINCREF(smooth.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_smooth = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":228 + * def getFASCoarseSolve(self): + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(smooth.obj) + * return smooth + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetCoarseSolve(__pyx_v_self->snes, (&__pyx_v_smooth->snes))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":229 + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) + * PetscINCREF(smooth.obj) # <<<<<<<<<<<<<< + * return smooth + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_smooth->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":230 + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) + * PetscINCREF(smooth.obj) + * return smooth # <<<<<<<<<<<<<< + * + * def getFASSmoother(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_smooth)); + __pyx_r = ((PyObject *)__pyx_v_smooth); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":226 + * return lsnes + * + * def getFASCoarseSolve(self): # <<<<<<<<<<<<<< + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetCoarseSolve(self.snes, &smooth.snes) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASCoarseSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_smooth); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":232 + * return smooth + * + * def getFASSmoother(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_51getFASSmoother(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_50getFASSmoother[] = "SNES.getFASSmoother(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_51getFASSmoother(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASSmoother (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASSmoother") < 0)) __PYX_ERR(49, 232, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASSmoother", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 232, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmoother", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_50getFASSmoother(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_50getFASSmoother(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscSNESObject *__pyx_v_smooth = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASSmoother", 0); + + /* "petsc4py/PETSc/SNES.pyx":233 + * + * def getFASSmoother(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmoother(self.snes, clevel, &smooth.snes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 233, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":234 + * def getFASSmoother(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetSmoother(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_smooth = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":235 + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmoother(self.snes, clevel, &smooth.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(smooth.obj) + * return smooth + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetSmoother(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_smooth->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 235, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":236 + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmoother(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) # <<<<<<<<<<<<<< + * return smooth + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_smooth->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":237 + * CHKERR( SNESFASGetSmoother(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + * return smooth # <<<<<<<<<<<<<< + * + * def getFASSmootherDown(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_smooth)); + __pyx_r = ((PyObject *)__pyx_v_smooth); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":232 + * return smooth + * + * def getFASSmoother(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmoother", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_smooth); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":239 + * return smooth + * + * def getFASSmootherDown(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_53getFASSmootherDown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_52getFASSmootherDown[] = "SNES.getFASSmootherDown(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_53getFASSmootherDown(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASSmootherDown (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASSmootherDown") < 0)) __PYX_ERR(49, 239, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASSmootherDown", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 239, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmootherDown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_52getFASSmootherDown(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_52getFASSmootherDown(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscSNESObject *__pyx_v_smooth = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASSmootherDown", 0); + + /* "petsc4py/PETSc/SNES.pyx":240 + * + * def getFASSmootherDown(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherDown(self.snes, clevel, &smooth.snes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 240, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":241 + * def getFASSmootherDown(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetSmootherDown(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_smooth = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":242 + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherDown(self.snes, clevel, &smooth.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(smooth.obj) + * return smooth + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetSmootherDown(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_smooth->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 242, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":243 + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherDown(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) # <<<<<<<<<<<<<< + * return smooth + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_smooth->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":244 + * CHKERR( SNESFASGetSmootherDown(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + * return smooth # <<<<<<<<<<<<<< + * + * def getFASSmootherUp(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_smooth)); + __pyx_r = ((PyObject *)__pyx_v_smooth); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":239 + * return smooth + * + * def getFASSmootherDown(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmootherDown", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_smooth); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":246 + * return smooth + * + * def getFASSmootherUp(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_55getFASSmootherUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_54getFASSmootherUp[] = "SNES.getFASSmootherUp(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_55getFASSmootherUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFASSmootherUp (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFASSmootherUp") < 0)) __PYX_ERR(49, 246, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFASSmootherUp", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 246, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmootherUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_54getFASSmootherUp(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_54getFASSmootherUp(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + struct PyPetscSNESObject *__pyx_v_smooth = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFASSmootherUp", 0); + + /* "petsc4py/PETSc/SNES.pyx":247 + * + * def getFASSmootherUp(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherUp(self.snes, clevel, &smooth.snes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 247, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":248 + * def getFASSmootherUp(self, level): + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESFASGetSmootherUp(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_smooth = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":249 + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherUp(self.snes, clevel, &smooth.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(smooth.obj) + * return smooth + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESFASGetSmootherUp(__pyx_v_self->snes, __pyx_v_clevel, (&__pyx_v_smooth->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 249, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":250 + * cdef SNES smooth = SNES() + * CHKERR( SNESFASGetSmootherUp(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) # <<<<<<<<<<<<<< + * return smooth + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_smooth->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":251 + * CHKERR( SNESFASGetSmootherUp(self.snes, clevel, &smooth.snes) ) + * PetscINCREF(smooth.obj) + * return smooth # <<<<<<<<<<<<<< + * + * # --- nonlinear preconditioner --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_smooth)); + __pyx_r = ((PyObject *)__pyx_v_smooth); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":246 + * return smooth + * + * def getFASSmootherUp(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * cdef SNES smooth = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFASSmootherUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_smooth); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":255 + * # --- nonlinear preconditioner --- + * + * def getNPC(self): # <<<<<<<<<<<<<< + * cdef SNES snes = SNES() + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_57getNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_56getNPC[] = "SNES.getNPC(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_57getNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNPC (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNPC", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNPC", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_56getNPC(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_56getNPC(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscSNESObject *__pyx_v_snes = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNPC", 0); + + /* "petsc4py/PETSc/SNES.pyx":256 + * + * def getNPC(self): + * cdef SNES snes = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) + * PetscINCREF(snes.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":257 + * def getNPC(self): + * cdef SNES snes = SNES() + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(snes.obj) + * return snes + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNPC(__pyx_v_self->snes, (&__pyx_v_snes->snes))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 257, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":258 + * cdef SNES snes = SNES() + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) + * PetscINCREF(snes.obj) # <<<<<<<<<<<<<< + * return snes + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_snes->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":259 + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) + * PetscINCREF(snes.obj) + * return snes # <<<<<<<<<<<<<< + * + * def hasNPC(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_snes)); + __pyx_r = ((PyObject *)__pyx_v_snes); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":255 + * # --- nonlinear preconditioner --- + * + * def getNPC(self): # <<<<<<<<<<<<<< + * cdef SNES snes = SNES() + * CHKERR( SNESGetNPC(self.snes, &snes.snes) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_snes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":261 + * return snes + * + * def hasNPC(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESHasNPC(self.snes, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_59hasNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_58hasNPC[] = "SNES.hasNPC(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_59hasNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasNPC (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("hasNPC", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "hasNPC", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_58hasNPC(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_58hasNPC(struct PyPetscSNESObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasNPC", 0); + + /* "petsc4py/PETSc/SNES.pyx":262 + * + * def hasNPC(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( SNESHasNPC(self.snes, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":263 + * def hasNPC(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESHasNPC(self.snes, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESHasNPC(__pyx_v_self->snes, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 263, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":264 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESHasNPC(self.snes, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setNPC(self, SNES snes): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":261 + * return snes + * + * def hasNPC(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESHasNPC(self.snes, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.hasNPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":266 + * return toBool(flag) + * + * def setNPC(self, SNES snes): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNPC(self.snes, snes.snes) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_61setNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_60setNPC[] = "SNES.setNPC(self, SNES snes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_61setNPC(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSNESObject *__pyx_v_snes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNPC (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_snes,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_snes)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNPC") < 0)) __PYX_ERR(49, 266, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_snes = ((struct PyPetscSNESObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNPC", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 266, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_snes), __pyx_ptype_8petsc4py_5PETSc_SNES, 0, "snes", 0))) __PYX_ERR(49, 266, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_60setNPC(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_snes); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_60setNPC(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscSNESObject *__pyx_v_snes) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNPC", 0); + + /* "petsc4py/PETSc/SNES.pyx":267 + * + * def setNPC(self, SNES snes): + * CHKERR( SNESSetNPC(self.snes, snes.snes) ) # <<<<<<<<<<<<<< + * + * def setNPCSide(self, side): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetNPC(__pyx_v_self->snes, __pyx_v_snes->snes)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 267, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":266 + * return toBool(flag) + * + * def setNPC(self, SNES snes): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNPC(self.snes, snes.snes) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":269 + * CHKERR( SNESSetNPC(self.snes, snes.snes) ) + * + * def setNPCSide(self, side): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNPCSide(self.snes, side) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_63setNPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_62setNPCSide[] = "SNES.setNPCSide(self, side)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_63setNPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_side = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNPCSide (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_side,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_side)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNPCSide") < 0)) __PYX_ERR(49, 269, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_side = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNPCSide", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 269, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_62setNPCSide(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_side); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_62setNPCSide(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_side) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PCSide __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNPCSide", 0); + + /* "petsc4py/PETSc/SNES.pyx":270 + * + * def setNPCSide(self, side): + * CHKERR( SNESSetNPCSide(self.snes, side) ) # <<<<<<<<<<<<<< + * + * def getNPCSide(self): + */ + __pyx_t_1 = ((PCSide)__Pyx_PyInt_As_PCSide(__pyx_v_side)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 270, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetNPCSide(__pyx_v_self->snes, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 270, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":269 + * CHKERR( SNESSetNPC(self.snes, snes.snes) ) + * + * def setNPCSide(self, side): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNPCSide(self.snes, side) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":272 + * CHKERR( SNESSetNPCSide(self.snes, side) ) + * + * def getNPCSide(self): # <<<<<<<<<<<<<< + * cdef PetscPCSide side = PC_RIGHT + * CHKERR( SNESGetNPCSide(self.snes, &side) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_65getNPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_64getNPCSide[] = "SNES.getNPCSide(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_65getNPCSide(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNPCSide (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNPCSide", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNPCSide", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_64getNPCSide(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_64getNPCSide(struct PyPetscSNESObject *__pyx_v_self) { + PCSide __pyx_v_side; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNPCSide", 0); + + /* "petsc4py/PETSc/SNES.pyx":273 + * + * def getNPCSide(self): + * cdef PetscPCSide side = PC_RIGHT # <<<<<<<<<<<<<< + * CHKERR( SNESGetNPCSide(self.snes, &side) ) + * return side + */ + __pyx_v_side = PC_RIGHT; + + /* "petsc4py/PETSc/SNES.pyx":274 + * def getNPCSide(self): + * cdef PetscPCSide side = PC_RIGHT + * CHKERR( SNESGetNPCSide(self.snes, &side) ) # <<<<<<<<<<<<<< + * return side + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNPCSide(__pyx_v_self->snes, (&__pyx_v_side))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 274, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":275 + * cdef PetscPCSide side = PC_RIGHT + * CHKERR( SNESGetNPCSide(self.snes, &side) ) + * return side # <<<<<<<<<<<<<< + * + * # --- user Function/Jacobian routines --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PCSide(__pyx_v_side); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":272 + * CHKERR( SNESSetNPCSide(self.snes, side) ) + * + * def getNPCSide(self): # <<<<<<<<<<<<<< + * cdef PetscPCSide side = PC_RIGHT + * CHKERR( SNESGetNPCSide(self.snes, &side) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNPCSide", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":279 + * # --- user Function/Jacobian routines --- + * + * def setLineSearchPreCheck(self, precheck, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscSNESLineSearch snesls = NULL + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_67setLineSearchPreCheck(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_66setLineSearchPreCheck[] = "SNES.setLineSearchPreCheck(self, precheck, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_67setLineSearchPreCheck(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_precheck = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLineSearchPreCheck (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_precheck,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_precheck)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLineSearchPreCheck") < 0)) __PYX_ERR(49, 279, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_precheck = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLineSearchPreCheck", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 279, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setLineSearchPreCheck", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_66setLineSearchPreCheck(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_precheck, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_66setLineSearchPreCheck(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_precheck, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + SNESLineSearch __pyx_v_snesls; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLineSearchPreCheck", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":280 + * + * def setLineSearchPreCheck(self, precheck, args=None, kargs=None): + * cdef PetscSNESLineSearch snesls = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + * if precheck is not None: + */ + __pyx_v_snesls = NULL; + + /* "petsc4py/PETSc/SNES.pyx":281 + * def setLineSearchPreCheck(self, precheck, args=None, kargs=None): + * cdef PetscSNESLineSearch snesls = NULL + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) # <<<<<<<<<<<<<< + * if precheck is not None: + * if args is None: args = () + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLineSearch(__pyx_v_self->snes, (&__pyx_v_snesls))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 281, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":282 + * cdef PetscSNESLineSearch snesls = NULL + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + * if precheck is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_precheck != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SNES.pyx":283 + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + * if precheck is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (precheck, args, kargs) + */ + __pyx_t_3 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":284 + * if precheck is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (precheck, args, kargs) + * self.set_attr('__precheck__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":285 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (precheck, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__precheck__', context) + * CHKERR( SNESLineSearchSetPreCheck(snesls, SNES_PreCheck, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_precheck); + __Pyx_GIVEREF(__pyx_v_precheck); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_precheck); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":286 + * if kargs is None: kargs = {} + * context = (precheck, args, kargs) + * self.set_attr('__precheck__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESLineSearchSetPreCheck(snesls, SNES_PreCheck, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__precheck__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":287 + * context = (precheck, args, kargs) + * self.set_attr('__precheck__', context) + * CHKERR( SNESLineSearchSetPreCheck(snesls, SNES_PreCheck, context) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__precheck__', None) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLineSearchSetPreCheck(__pyx_v_snesls, __pyx_f_8petsc4py_5PETSc_SNES_PreCheck, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 287, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":282 + * cdef PetscSNESLineSearch snesls = NULL + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + * if precheck is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":289 + * CHKERR( SNESLineSearchSetPreCheck(snesls, SNES_PreCheck, context) ) + * else: + * self.set_attr('__precheck__', None) # <<<<<<<<<<<<<< + * CHKERR( SNESLineSearchSetPreCheck(snesls, NULL, NULL) ) + * + */ + /*else*/ { + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__precheck__"), Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":290 + * else: + * self.set_attr('__precheck__', None) + * CHKERR( SNESLineSearchSetPreCheck(snesls, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setInitialGuess(self, initialguess, args=None, kargs=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLineSearchSetPreCheck(__pyx_v_snesls, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 290, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":279 + * # --- user Function/Jacobian routines --- + * + * def setLineSearchPreCheck(self, precheck, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscSNESLineSearch snesls = NULL + * CHKERR( SNESGetLineSearch(self.snes, &snesls) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setLineSearchPreCheck", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":292 + * CHKERR( SNESLineSearchSetPreCheck(snesls, NULL, NULL) ) + * + * def setInitialGuess(self, initialguess, args=None, kargs=None): # <<<<<<<<<<<<<< + * if initialguess is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_69setInitialGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_68setInitialGuess[] = "SNES.setInitialGuess(self, initialguess, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_69setInitialGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_initialguess = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInitialGuess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_initialguess,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_initialguess)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInitialGuess") < 0)) __PYX_ERR(49, 292, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_initialguess = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInitialGuess", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 292, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setInitialGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_68setInitialGuess(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_initialguess, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_68setInitialGuess(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_initialguess, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInitialGuess", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":293 + * + * def setInitialGuess(self, initialguess, args=None, kargs=None): + * if initialguess is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_initialguess != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SNES.pyx":294 + * def setInitialGuess(self, initialguess, args=None, kargs=None): + * if initialguess is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (initialguess, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":295 + * if initialguess is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (initialguess, args, kargs) + * self.set_attr('__initialguess__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":296 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (initialguess, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__initialguess__', context) + * CHKERR( SNESSetInitialGuess(self.snes, SNES_InitialGuess, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 296, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_initialguess); + __Pyx_GIVEREF(__pyx_v_initialguess); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_initialguess); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":297 + * if kargs is None: kargs = {} + * context = (initialguess, args, kargs) + * self.set_attr('__initialguess__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetInitialGuess(self.snes, SNES_InitialGuess, context) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__initialguess__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":298 + * context = (initialguess, args, kargs) + * self.set_attr('__initialguess__', context) + * CHKERR( SNESSetInitialGuess(self.snes, SNES_InitialGuess, context) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__initialguess__', None) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetComputeInitialGuess(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_InitialGuess, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 298, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":293 + * + * def setInitialGuess(self, initialguess, args=None, kargs=None): + * if initialguess is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":300 + * CHKERR( SNESSetInitialGuess(self.snes, SNES_InitialGuess, context) ) + * else: + * self.set_attr('__initialguess__', None) # <<<<<<<<<<<<<< + * CHKERR( SNESSetInitialGuess(self.snes, NULL, NULL) ) + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__initialguess__"), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":301 + * else: + * self.set_attr('__initialguess__', None) + * CHKERR( SNESSetInitialGuess(self.snes, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def getInitialGuess(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetComputeInitialGuess(__pyx_v_self->snes, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 301, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":292 + * CHKERR( SNESLineSearchSetPreCheck(snesls, NULL, NULL) ) + * + * def setInitialGuess(self, initialguess, args=None, kargs=None): # <<<<<<<<<<<<<< + * if initialguess is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setInitialGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":303 + * CHKERR( SNESSetInitialGuess(self.snes, NULL, NULL) ) + * + * def getInitialGuess(self): # <<<<<<<<<<<<<< + * return self.get_attr('__initialguess__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_71getInitialGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_70getInitialGuess[] = "SNES.getInitialGuess(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_71getInitialGuess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInitialGuess (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInitialGuess", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInitialGuess", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_70getInitialGuess(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_70getInitialGuess(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInitialGuess", 0); + + /* "petsc4py/PETSc/SNES.pyx":304 + * + * def getInitialGuess(self): + * return self.get_attr('__initialguess__') # <<<<<<<<<<<<<< + * + * def setFunction(self, function, Vec f or None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__initialguess__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":303 + * CHKERR( SNESSetInitialGuess(self.snes, NULL, NULL) ) + * + * def getInitialGuess(self): # <<<<<<<<<<<<<< + * return self.get_attr('__initialguess__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getInitialGuess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":306 + * return self.get_attr('__initialguess__') + * + * def setFunction(self, function, Vec f or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_73setFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_72setFunction[] = "SNES.setFunction(self, function, Vec f, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_73setFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_f,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFunction", 0, 2, 4, 1); __PYX_ERR(49, 306, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFunction") < 0)) __PYX_ERR(49, 306, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFunction", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 306, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "f", 0))) __PYX_ERR(49, 306, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_72setFunction(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_function, __pyx_v_f, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_72setFunction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_fvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":307 + * + * def setFunction(self, function, Vec f or None, args=None, kargs=None): + * cdef PetscVec fvec=NULL # <<<<<<<<<<<<<< + * if f is not None: fvec = f.vec + * if function is not None: + */ + __pyx_v_fvec = NULL; + + /* "petsc4py/PETSc/SNES.pyx":308 + * def setFunction(self, function, Vec f or None, args=None, kargs=None): + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_f) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_f->vec; + __pyx_v_fvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":309 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_function != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/SNES.pyx":310 + * if f is not None: fvec = f.vec + * if function is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":311 + * if function is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr('__function__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":312 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__function__', context) + * CHKERR( SNESSetFunction(self.snes, fvec, SNES_Function, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":313 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr('__function__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetFunction(self.snes, fvec, SNES_Function, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 313, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":314 + * context = (function, args, kargs) + * self.set_attr('__function__', context) + * CHKERR( SNESSetFunction(self.snes, fvec, SNES_Function, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( SNESSetFunction(self.snes, fvec, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetFunction(__pyx_v_self->snes, __pyx_v_fvec, __pyx_f_8petsc4py_5PETSc_SNES_Function, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 314, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":309 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/SNES.pyx":316 + * CHKERR( SNESSetFunction(self.snes, fvec, SNES_Function, context) ) + * else: + * CHKERR( SNESSetFunction(self.snes, fvec, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def getFunction(self): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetFunction(__pyx_v_self->snes, __pyx_v_fvec, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 316, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/SNES.pyx":306 + * return self.get_attr('__initialguess__') + * + * def setFunction(self, function, Vec f or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":318 + * CHKERR( SNESSetFunction(self.snes, fvec, NULL, NULL) ) + * + * def getFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * cdef void* ctx + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_75getFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_74getFunction[] = "SNES.getFunction(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_75getFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFunction (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFunction", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFunction", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_74getFunction(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_74getFunction(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_f = 0; + void *__pyx_v_ctx; + PetscErrorCode (*__pyx_v_fun)(SNES, Vec, Vec, void *); + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_context = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFunction", 0); + + /* "petsc4py/PETSc/SNES.pyx":319 + * + * def getFunction(self): + * cdef Vec f = Vec() # <<<<<<<<<<<<<< + * cdef void* ctx + * cdef PetscErrorCode (*fun)(PetscSNES,PetscVec,PetscVec,void*) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_f = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":322 + * cdef void* ctx + * cdef PetscErrorCode (*fun)(PetscSNES,PetscVec,PetscVec,void*) + * CHKERR( SNESGetFunction(self.snes, &f.vec, &fun, &ctx) ) # <<<<<<<<<<<<<< + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__function__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetFunction(__pyx_v_self->snes, (&__pyx_v_f->vec), (&__pyx_v_fun), (&__pyx_v_ctx))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 322, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":323 + * cdef PetscErrorCode (*fun)(PetscSNES,PetscVec,PetscVec,void*) + * CHKERR( SNESGetFunction(self.snes, &f.vec, &fun, &ctx) ) + * PetscINCREF(f.obj) # <<<<<<<<<<<<<< + * cdef object function = self.get_attr('__function__') + * cdef object context + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_f->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":324 + * CHKERR( SNESGetFunction(self.snes, &f.vec, &fun, &ctx) ) + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__function__') # <<<<<<<<<<<<<< + * cdef object context + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":327 + * cdef object context + * + * if function is not None: # <<<<<<<<<<<<<< + * return (f, function) + * + */ + __pyx_t_3 = (__pyx_v_function != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/SNES.pyx":328 + * + * if function is not None: + * return (f, function) # <<<<<<<<<<<<<< + * + * if ctx != NULL and SNES_Function == fun: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_function); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":327 + * cdef object context + * + * if function is not None: # <<<<<<<<<<<<<< + * return (f, function) + * + */ + } + + /* "petsc4py/PETSc/SNES.pyx":330 + * return (f, function) + * + * if ctx != NULL and SNES_Function == fun: # <<<<<<<<<<<<<< + * context = ctx + * if context is not None: + */ + __pyx_t_3 = ((__pyx_v_ctx != NULL) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_4 = __pyx_t_3; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_3 = ((((void *)__pyx_f_8petsc4py_5PETSc_SNES_Function) == ((void *)__pyx_v_fun)) != 0); + __pyx_t_4 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/SNES.pyx":331 + * + * if ctx != NULL and SNES_Function == fun: + * context = ctx # <<<<<<<<<<<<<< + * if context is not None: + * assert type(context) is tuple + */ + __pyx_t_1 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_1); + __pyx_v_context = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":332 + * if ctx != NULL and SNES_Function == fun: + * context = ctx + * if context is not None: # <<<<<<<<<<<<<< + * assert type(context) is tuple + * return (f, context) + */ + __pyx_t_4 = (__pyx_v_context != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/SNES.pyx":333 + * context = ctx + * if context is not None: + * assert type(context) is tuple # <<<<<<<<<<<<<< + * return (f, context) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = (((PyObject *)Py_TYPE(__pyx_v_context)) == ((PyObject *)(&PyTuple_Type))); + if (unlikely(!(__pyx_t_3 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(49, 333, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/SNES.pyx":334 + * if context is not None: + * assert type(context) is tuple + * return (f, context) # <<<<<<<<<<<<<< + * + * return (f, None) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(__pyx_v_context); + __Pyx_GIVEREF(__pyx_v_context); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_context); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":332 + * if ctx != NULL and SNES_Function == fun: + * context = ctx + * if context is not None: # <<<<<<<<<<<<<< + * assert type(context) is tuple + * return (f, context) + */ + } + + /* "petsc4py/PETSc/SNES.pyx":330 + * return (f, function) + * + * if ctx != NULL and SNES_Function == fun: # <<<<<<<<<<<<<< + * context = ctx + * if context is not None: + */ + } + + /* "petsc4py/PETSc/SNES.pyx":336 + * return (f, context) + * + * return (f, None) # <<<<<<<<<<<<<< + * + * def setUpdate(self, update, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":318 + * CHKERR( SNESSetFunction(self.snes, fvec, NULL, NULL) ) + * + * def getFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * cdef void* ctx + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_f); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":338 + * return (f, None) + * + * def setUpdate(self, update, args=None, kargs=None): # <<<<<<<<<<<<<< + * if update is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_77setUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_76setUpdate[] = "SNES.setUpdate(self, update, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_77setUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_update = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUpdate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_update,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_update)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUpdate") < 0)) __PYX_ERR(49, 338, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_update = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUpdate", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 338, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_76setUpdate(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_update, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_76setUpdate(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_update, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUpdate", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":339 + * + * def setUpdate(self, update, args=None, kargs=None): + * if update is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_update != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SNES.pyx":340 + * def setUpdate(self, update, args=None, kargs=None): + * if update is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (update, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":341 + * if update is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (update, args, kargs) + * self.set_attr('__update__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":342 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (update, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__update__', context) + * CHKERR( SNESSetUpdate(self.snes, SNES_Update) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_update); + __Pyx_GIVEREF(__pyx_v_update); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_update); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":343 + * if kargs is None: kargs = {} + * context = (update, args, kargs) + * self.set_attr('__update__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetUpdate(self.snes, SNES_Update) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":344 + * context = (update, args, kargs) + * self.set_attr('__update__', context) + * CHKERR( SNESSetUpdate(self.snes, SNES_Update) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__update__', None) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetUpdate(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_Update)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 344, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":339 + * + * def setUpdate(self, update, args=None, kargs=None): + * if update is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":346 + * CHKERR( SNESSetUpdate(self.snes, SNES_Update) ) + * else: + * self.set_attr('__update__', None) # <<<<<<<<<<<<<< + * CHKERR( SNESSetUpdate(self.snes, NULL) ) + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__"), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":347 + * else: + * self.set_attr('__update__', None) + * CHKERR( SNESSetUpdate(self.snes, NULL) ) # <<<<<<<<<<<<<< + * + * def getUpdate(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetUpdate(__pyx_v_self->snes, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 347, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":338 + * return (f, None) + * + * def setUpdate(self, update, args=None, kargs=None): # <<<<<<<<<<<<<< + * if update is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":349 + * CHKERR( SNESSetUpdate(self.snes, NULL) ) + * + * def getUpdate(self): # <<<<<<<<<<<<<< + * return self.get_attr('__update__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_79getUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_78getUpdate[] = "SNES.getUpdate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_79getUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUpdate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUpdate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUpdate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_78getUpdate(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_78getUpdate(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUpdate", 0); + + /* "petsc4py/PETSc/SNES.pyx":350 + * + * def getUpdate(self): + * return self.get_attr('__update__') # <<<<<<<<<<<<<< + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":349 + * CHKERR( SNESSetUpdate(self.snes, NULL) ) + * + * def getUpdate(self): # <<<<<<<<<<<<<< + * return self.get_attr('__update__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":352 + * return self.get_attr('__update__') + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_81setJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_80setJacobian[] = "SNES.setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_81setJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobian") < 0)) __PYX_ERR(49, 352, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 352, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(49, 352, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(49, 352, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_80setJacobian(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_80setJacobian(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":353 + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/SNES.pyx":354 + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":355 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if jacobian is not None: + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/SNES.pyx":356 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":357 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_jacobian != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SNES.pyx":358 + * if P is not None: Pmat = P.mat + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":359 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":360 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__jacobian__', context) + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, SNES_Jacobian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":361 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, SNES_Jacobian, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":362 + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, SNES_Jacobian, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetJacobian(__pyx_v_self->snes, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_SNES_Jacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 362, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":357 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/SNES.pyx":364 + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, SNES_Jacobian, context) ) + * else: + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def getJacobian(self): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetJacobian(__pyx_v_self->snes, __pyx_v_Jmat, __pyx_v_Pmat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 364, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/SNES.pyx":352 + * return self.get_attr('__update__') + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":366 + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, NULL, NULL) ) + * + * def getJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat() + * cdef Mat P = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_83getJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_82getJacobian[] = "SNES.getJacobian(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_83getJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getJacobian (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getJacobian", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getJacobian", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_82getJacobian(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_82getJacobian(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_jacobian = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getJacobian", 0); + + /* "petsc4py/PETSc/SNES.pyx":367 + * + * def getJacobian(self): + * cdef Mat J = Mat() # <<<<<<<<<<<<<< + * cdef Mat P = Mat() + * CHKERR( SNESGetJacobian(self.snes, &J.mat, &P.mat, NULL, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":368 + * def getJacobian(self): + * cdef Mat J = Mat() + * cdef Mat P = Mat() # <<<<<<<<<<<<<< + * CHKERR( SNESGetJacobian(self.snes, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":369 + * cdef Mat J = Mat() + * cdef Mat P = Mat() + * CHKERR( SNESGetJacobian(self.snes, &J.mat, &P.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetJacobian(__pyx_v_self->snes, (&__pyx_v_J->mat), (&__pyx_v_P->mat), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 369, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":370 + * cdef Mat P = Mat() + * CHKERR( SNESGetJacobian(self.snes, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) # <<<<<<<<<<<<<< + * PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__jacobian__') + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_J->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":371 + * CHKERR( SNESGetJacobian(self.snes, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * cdef object jacobian = self.get_attr('__jacobian__') + * return (J, P, jacobian) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":372 + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__jacobian__') # <<<<<<<<<<<<<< + * return (J, P, jacobian) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":373 + * PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__jacobian__') + * return (J, P, jacobian) # <<<<<<<<<<<<<< + * + * def setObjective(self, objective, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_jacobian); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":366 + * CHKERR( SNESSetJacobian(self.snes, Jmat, Pmat, NULL, NULL) ) + * + * def getJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat() + * cdef Mat P = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":375 + * return (J, P, jacobian) + * + * def setObjective(self, objective, args=None, kargs=None): # <<<<<<<<<<<<<< + * if objective is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_85setObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_84setObjective[] = "SNES.setObjective(self, objective, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_85setObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objective = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setObjective (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_objective,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setObjective") < 0)) __PYX_ERR(49, 375, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_objective = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setObjective", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 375, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_84setObjective(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_objective, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_84setObjective(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_objective, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setObjective", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":376 + * + * def setObjective(self, objective, args=None, kargs=None): + * if objective is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_objective != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SNES.pyx":377 + * def setObjective(self, objective, args=None, kargs=None): + * if objective is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (objective, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":378 + * if objective is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (objective, args, kargs) + * self.set_attr('__objective__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":379 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (objective, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__objective__', context) + * CHKERR( SNESSetObjective(self.snes, SNES_Objective, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_objective); + __Pyx_GIVEREF(__pyx_v_objective); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_objective); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":380 + * if kargs is None: kargs = {} + * context = (objective, args, kargs) + * self.set_attr('__objective__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetObjective(self.snes, SNES_Objective, context) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__objective__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 380, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":381 + * context = (objective, args, kargs) + * self.set_attr('__objective__', context) + * CHKERR( SNESSetObjective(self.snes, SNES_Objective, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( SNESSetObjective(self.snes, NULL, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetObjective(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_Objective, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 381, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":376 + * + * def setObjective(self, objective, args=None, kargs=None): + * if objective is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":383 + * CHKERR( SNESSetObjective(self.snes, SNES_Objective, context) ) + * else: + * CHKERR( SNESSetObjective(self.snes, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def getObjective(self): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetObjective(__pyx_v_self->snes, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 383, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":375 + * return (J, P, jacobian) + * + * def setObjective(self, objective, args=None, kargs=None): # <<<<<<<<<<<<<< + * if objective is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":385 + * CHKERR( SNESSetObjective(self.snes, NULL, NULL) ) + * + * def getObjective(self): # <<<<<<<<<<<<<< + * CHKERR( SNESGetObjective(self.snes, NULL, NULL) ) + * cdef object objective = self.get_attr('__objective__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_87getObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_86getObjective[] = "SNES.getObjective(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_87getObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getObjective (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getObjective", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getObjective", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_86getObjective(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_86getObjective(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_v_objective = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getObjective", 0); + + /* "petsc4py/PETSc/SNES.pyx":386 + * + * def getObjective(self): + * CHKERR( SNESGetObjective(self.snes, NULL, NULL) ) # <<<<<<<<<<<<<< + * cdef object objective = self.get_attr('__objective__') + * return objective + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetObjective(__pyx_v_self->snes, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 386, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":387 + * def getObjective(self): + * CHKERR( SNESGetObjective(self.snes, NULL, NULL) ) + * cdef object objective = self.get_attr('__objective__') # <<<<<<<<<<<<<< + * return objective + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__objective__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_objective = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":388 + * CHKERR( SNESGetObjective(self.snes, NULL, NULL) ) + * cdef object objective = self.get_attr('__objective__') + * return objective # <<<<<<<<<<<<<< + * + * def computeFunction(self, Vec x, Vec f): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_objective); + __pyx_r = __pyx_v_objective; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":385 + * CHKERR( SNESSetObjective(self.snes, NULL, NULL) ) + * + * def getObjective(self): # <<<<<<<<<<<<<< + * CHKERR( SNESGetObjective(self.snes, NULL, NULL) ) + * cdef object objective = self.get_attr('__objective__') + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_objective); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":390 + * return objective + * + * def computeFunction(self, Vec x, Vec f): # <<<<<<<<<<<<<< + * CHKERR( SNESComputeFunction(self.snes, x.vec, f.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_89computeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_88computeFunction[] = "SNES.computeFunction(self, Vec x, Vec f)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_89computeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_f,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeFunction", 1, 2, 2, 1); __PYX_ERR(49, 390, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeFunction") < 0)) __PYX_ERR(49, 390, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeFunction", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 390, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(49, 390, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(49, 390, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_88computeFunction(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_x, __pyx_v_f); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_88computeFunction(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeFunction", 0); + + /* "petsc4py/PETSc/SNES.pyx":391 + * + * def computeFunction(self, Vec x, Vec f): + * CHKERR( SNESComputeFunction(self.snes, x.vec, f.vec) ) # <<<<<<<<<<<<<< + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeFunction(__pyx_v_self->snes, __pyx_v_x->vec, __pyx_v_f->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 391, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":390 + * return objective + * + * def computeFunction(self, Vec x, Vec f): # <<<<<<<<<<<<<< + * CHKERR( SNESComputeFunction(self.snes, x.vec, f.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":393 + * CHKERR( SNESComputeFunction(self.snes, x.vec, f.vec) ) + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_91computeJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_90computeJacobian[] = "SNES.computeJacobian(self, Vec x, Mat J, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_91computeJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_J,&__pyx_n_s_P,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeJacobian", 0, 2, 3, 1); __PYX_ERR(49, 393, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeJacobian") < 0)) __PYX_ERR(49, 393, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeJacobian", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 393, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(49, 393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(49, 393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(49, 393, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_90computeJacobian(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_x, __pyx_v_J, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_90computeJacobian(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P) { + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Mat __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeJacobian", 0); + + /* "petsc4py/PETSc/SNES.pyx":394 + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( SNESComputeJacobian(self.snes, x.vec, jmat, pmat) ) + */ + __pyx_t_1 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_1; + __pyx_t_1 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":395 + * def computeJacobian(self, Vec x, Mat J, Mat P=None): + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( SNESComputeJacobian(self.snes, x.vec, jmat, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_1; + } + + /* "petsc4py/PETSc/SNES.pyx":396 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( SNESComputeJacobian(self.snes, x.vec, jmat, pmat) ) # <<<<<<<<<<<<<< + * + * def computeObjective(self, Vec x): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeJacobian(__pyx_v_self->snes, __pyx_v_x->vec, __pyx_v_jmat, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 396, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":393 + * CHKERR( SNESComputeFunction(self.snes, x.vec, f.vec) ) + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":398 + * CHKERR( SNESComputeJacobian(self.snes, x.vec, jmat, pmat) ) + * + * def computeObjective(self, Vec x): # <<<<<<<<<<<<<< + * cdef PetscReal o = 0 + * CHKERR( SNESComputeObjective(self.snes, x.vec, &o) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_93computeObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_92computeObjective[] = "SNES.computeObjective(self, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_93computeObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeObjective (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeObjective") < 0)) __PYX_ERR(49, 398, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeObjective", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 398, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(49, 398, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_92computeObjective(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_92computeObjective(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x) { + PetscReal __pyx_v_o; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeObjective", 0); + + /* "petsc4py/PETSc/SNES.pyx":399 + * + * def computeObjective(self, Vec x): + * cdef PetscReal o = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESComputeObjective(self.snes, x.vec, &o) ) + * return toReal(o) + */ + __pyx_v_o = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":400 + * def computeObjective(self, Vec x): + * cdef PetscReal o = 0 + * CHKERR( SNESComputeObjective(self.snes, x.vec, &o) ) # <<<<<<<<<<<<<< + * return toReal(o) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeObjective(__pyx_v_self->snes, __pyx_v_x->vec, (&__pyx_v_o))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 400, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":401 + * cdef PetscReal o = 0 + * CHKERR( SNESComputeObjective(self.snes, x.vec, &o) ) + * return toReal(o) # <<<<<<<<<<<<<< + * + * def setNGS(self, ngs, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_o); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":398 + * CHKERR( SNESComputeJacobian(self.snes, x.vec, jmat, pmat) ) + * + * def computeObjective(self, Vec x): # <<<<<<<<<<<<<< + * cdef PetscReal o = 0 + * CHKERR( SNESComputeObjective(self.snes, x.vec, &o) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":403 + * return toReal(o) + * + * def setNGS(self, ngs, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_95setNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_94setNGS[] = "SNES.setNGS(self, ngs, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_95setNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ngs = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNGS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ngs,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ngs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNGS") < 0)) __PYX_ERR(49, 403, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_ngs = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNGS", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 403, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_94setNGS(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_ngs, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_94setNGS(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_ngs, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNGS", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":404 + * + * def setNGS(self, ngs, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (ngs, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":405 + * def setNGS(self, ngs, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (ngs, args, kargs) + * self.set_attr('__ngs__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":406 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (ngs, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__ngs__', context) + * CHKERR( SNESSetNGS(self.snes, SNES_NGS, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_ngs); + __Pyx_GIVEREF(__pyx_v_ngs); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ngs); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":407 + * if kargs is None: kargs = {} + * context = (ngs, args, kargs) + * self.set_attr('__ngs__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetNGS(self.snes, SNES_NGS, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ngs__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 407, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":408 + * context = (ngs, args, kargs) + * self.set_attr('__ngs__', context) + * CHKERR( SNESSetNGS(self.snes, SNES_NGS, context) ) # <<<<<<<<<<<<<< + * + * def getNGS(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetNGS(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_NGS, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 408, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":403 + * return toReal(o) + * + * def setNGS(self, ngs, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":410 + * CHKERR( SNESSetNGS(self.snes, SNES_NGS, context) ) + * + * def getNGS(self): # <<<<<<<<<<<<<< + * CHKERR( SNESGetNGS(self.snes, NULL, NULL) ) + * cdef object ngs = self.get_attr('__ngs__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_97getNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_96getNGS[] = "SNES.getNGS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_97getNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNGS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNGS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNGS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_96getNGS(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_96getNGS(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_v_ngs = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNGS", 0); + + /* "petsc4py/PETSc/SNES.pyx":411 + * + * def getNGS(self): + * CHKERR( SNESGetNGS(self.snes, NULL, NULL) ) # <<<<<<<<<<<<<< + * cdef object ngs = self.get_attr('__ngs__') + * return ngs + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNGS(__pyx_v_self->snes, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 411, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":412 + * def getNGS(self): + * CHKERR( SNESGetNGS(self.snes, NULL, NULL) ) + * cdef object ngs = self.get_attr('__ngs__') # <<<<<<<<<<<<<< + * return ngs + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ngs__")); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ngs = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":413 + * CHKERR( SNESGetNGS(self.snes, NULL, NULL) ) + * cdef object ngs = self.get_attr('__ngs__') + * return ngs # <<<<<<<<<<<<<< + * + * def computeNGS(self, Vec x, Vec b=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_ngs); + __pyx_r = __pyx_v_ngs; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":410 + * CHKERR( SNESSetNGS(self.snes, SNES_NGS, context) ) + * + * def getNGS(self): # <<<<<<<<<<<<<< + * CHKERR( SNESGetNGS(self.snes, NULL, NULL) ) + * cdef object ngs = self.get_attr('__ngs__') + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ngs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":415 + * return ngs + * + * def computeNGS(self, Vec x, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscVec bvec = NULL + * if b is not None: bvec = b.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_99computeNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_98computeNGS[] = "SNES.computeNGS(self, Vec x, Vec b=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_99computeNGS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_b = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeNGS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_b,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeNGS") < 0)) __PYX_ERR(49, 415, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_b = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeNGS", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 415, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeNGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(49, 415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(49, 415, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_98computeNGS(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_x, __pyx_v_b); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_98computeNGS(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_b) { + Vec __pyx_v_bvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeNGS", 0); + + /* "petsc4py/PETSc/SNES.pyx":416 + * + * def computeNGS(self, Vec x, Vec b=None): + * cdef PetscVec bvec = NULL # <<<<<<<<<<<<<< + * if b is not None: bvec = b.vec + * CHKERR( SNESComputeNGS(self.snes, bvec, x.vec) ) + */ + __pyx_v_bvec = NULL; + + /* "petsc4py/PETSc/SNES.pyx":417 + * def computeNGS(self, Vec x, Vec b=None): + * cdef PetscVec bvec = NULL + * if b is not None: bvec = b.vec # <<<<<<<<<<<<<< + * CHKERR( SNESComputeNGS(self.snes, bvec, x.vec) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_b->vec; + __pyx_v_bvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":418 + * cdef PetscVec bvec = NULL + * if b is not None: bvec = b.vec + * CHKERR( SNESComputeNGS(self.snes, bvec, x.vec) ) # <<<<<<<<<<<<<< + * + * # --- tolerances and convergence --- + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeNGS(__pyx_v_self->snes, __pyx_v_bvec, __pyx_v_x->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 418, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":415 + * return ngs + * + * def computeNGS(self, Vec x, Vec b=None): # <<<<<<<<<<<<<< + * cdef PetscVec bvec = NULL + * if b is not None: bvec = b.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.computeNGS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":422 + * # --- tolerances and convergence --- + * + * def setTolerances(self, rtol=None, atol=None, stol=None, max_it=None): # <<<<<<<<<<<<<< + * cdef PetscReal crtol, catol, cstol + * crtol = catol = cstol = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_101setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_100setTolerances[] = "SNES.setTolerances(self, rtol=None, atol=None, stol=None, max_it=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_101setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rtol = 0; + PyObject *__pyx_v_atol = 0; + PyObject *__pyx_v_stol = 0; + PyObject *__pyx_v_max_it = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtol,&__pyx_n_s_atol,&__pyx_n_s_stol,&__pyx_n_s_max_it,0}; + PyObject* values[4] = {0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_atol); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stol); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_it); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTolerances") < 0)) __PYX_ERR(49, 422, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rtol = values[0]; + __pyx_v_atol = values[1]; + __pyx_v_stol = values[2]; + __pyx_v_max_it = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTolerances", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 422, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_100setTolerances(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_rtol, __pyx_v_atol, __pyx_v_stol, __pyx_v_max_it); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_100setTolerances(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol, PyObject *__pyx_v_stol, PyObject *__pyx_v_max_it) { + PetscReal __pyx_v_crtol; + PetscReal __pyx_v_catol; + PetscReal __pyx_v_cstol; + PetscInt __pyx_v_cmaxit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTolerances", 0); + + /* "petsc4py/PETSc/SNES.pyx":424 + * def setTolerances(self, rtol=None, atol=None, stol=None, max_it=None): + * cdef PetscReal crtol, catol, cstol + * crtol = catol = cstol = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscInt cmaxit = PETSC_DEFAULT + * if rtol is not None: crtol = asReal(rtol) + */ + __pyx_v_crtol = PETSC_DEFAULT; + __pyx_v_catol = PETSC_DEFAULT; + __pyx_v_cstol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":425 + * cdef PetscReal crtol, catol, cstol + * crtol = catol = cstol = PETSC_DEFAULT + * cdef PetscInt cmaxit = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) + */ + __pyx_v_cmaxit = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":426 + * crtol = catol = cstol = PETSC_DEFAULT + * cdef PetscInt cmaxit = PETSC_DEFAULT + * if rtol is not None: crtol = asReal(rtol) # <<<<<<<<<<<<<< + * if atol is not None: catol = asReal(atol) + * if stol is not None: cstol = asReal(stol) + */ + __pyx_t_1 = (__pyx_v_rtol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 426, __pyx_L1_error) + __pyx_v_crtol = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":427 + * cdef PetscInt cmaxit = PETSC_DEFAULT + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) # <<<<<<<<<<<<<< + * if stol is not None: cstol = asReal(stol) + * if max_it is not None: cmaxit = asInt(max_it) + */ + __pyx_t_2 = (__pyx_v_atol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_atol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 427, __pyx_L1_error) + __pyx_v_catol = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":428 + * if rtol is not None: crtol = asReal(rtol) + * if atol is not None: catol = asReal(atol) + * if stol is not None: cstol = asReal(stol) # <<<<<<<<<<<<<< + * if max_it is not None: cmaxit = asInt(max_it) + * CHKERR( SNESSetTolerances(self.snes, catol, crtol, cstol, + */ + __pyx_t_1 = (__pyx_v_stol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_stol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 428, __pyx_L1_error) + __pyx_v_cstol = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":429 + * if atol is not None: catol = asReal(atol) + * if stol is not None: cstol = asReal(stol) + * if max_it is not None: cmaxit = asInt(max_it) # <<<<<<<<<<<<<< + * CHKERR( SNESSetTolerances(self.snes, catol, crtol, cstol, + * cmaxit, PETSC_DEFAULT) ) + */ + __pyx_t_2 = (__pyx_v_max_it != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_it); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 429, __pyx_L1_error) + __pyx_v_cmaxit = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":430 + * if stol is not None: cstol = asReal(stol) + * if max_it is not None: cmaxit = asInt(max_it) + * CHKERR( SNESSetTolerances(self.snes, catol, crtol, cstol, # <<<<<<<<<<<<<< + * cmaxit, PETSC_DEFAULT) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetTolerances(__pyx_v_self->snes, __pyx_v_catol, __pyx_v_crtol, __pyx_v_cstol, __pyx_v_cmaxit, PETSC_DEFAULT)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 430, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":422 + * # --- tolerances and convergence --- + * + * def setTolerances(self, rtol=None, atol=None, stol=None, max_it=None): # <<<<<<<<<<<<<< + * cdef PetscReal crtol, catol, cstol + * crtol = catol = cstol = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":433 + * cmaxit, PETSC_DEFAULT) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal crtol=0, catol=0, cstol=0 + * cdef PetscInt cmaxit=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_103getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_102getTolerances[] = "SNES.getTolerances(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_103getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTolerances (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTolerances", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTolerances", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_102getTolerances(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_102getTolerances(struct PyPetscSNESObject *__pyx_v_self) { + PetscReal __pyx_v_crtol; + PetscReal __pyx_v_catol; + PetscReal __pyx_v_cstol; + PetscInt __pyx_v_cmaxit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTolerances", 0); + + /* "petsc4py/PETSc/SNES.pyx":434 + * + * def getTolerances(self): + * cdef PetscReal crtol=0, catol=0, cstol=0 # <<<<<<<<<<<<<< + * cdef PetscInt cmaxit=0 + * CHKERR( SNESGetTolerances(self.snes, &catol, &crtol, &cstol, + */ + __pyx_v_crtol = 0.0; + __pyx_v_catol = 0.0; + __pyx_v_cstol = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":435 + * def getTolerances(self): + * cdef PetscReal crtol=0, catol=0, cstol=0 + * cdef PetscInt cmaxit=0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetTolerances(self.snes, &catol, &crtol, &cstol, + * &cmaxit, NULL) ) + */ + __pyx_v_cmaxit = 0; + + /* "petsc4py/PETSc/SNES.pyx":436 + * cdef PetscReal crtol=0, catol=0, cstol=0 + * cdef PetscInt cmaxit=0 + * CHKERR( SNESGetTolerances(self.snes, &catol, &crtol, &cstol, # <<<<<<<<<<<<<< + * &cmaxit, NULL) ) + * return (toReal(crtol), toReal(catol), toReal(cstol), toInt(cmaxit)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetTolerances(__pyx_v_self->snes, (&__pyx_v_catol), (&__pyx_v_crtol), (&__pyx_v_cstol), (&__pyx_v_cmaxit), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 436, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":438 + * CHKERR( SNESGetTolerances(self.snes, &catol, &crtol, &cstol, + * &cmaxit, NULL) ) + * return (toReal(crtol), toReal(catol), toReal(cstol), toInt(cmaxit)) # <<<<<<<<<<<<<< + * + * def setNormSchedule(self, normsched): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_crtol); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_catol); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_cstol); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cmaxit); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":433 + * cmaxit, PETSC_DEFAULT) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal crtol=0, catol=0, cstol=0 + * cdef PetscInt cmaxit=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":440 + * return (toReal(crtol), toReal(catol), toReal(cstol), toInt(cmaxit)) + * + * def setNormSchedule(self, normsched): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNormSchedule(self.snes, normsched) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_105setNormSchedule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_104setNormSchedule[] = "SNES.setNormSchedule(self, normsched)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_105setNormSchedule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_normsched = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNormSchedule (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_normsched,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_normsched)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNormSchedule") < 0)) __PYX_ERR(49, 440, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_normsched = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNormSchedule", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 440, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNormSchedule", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_104setNormSchedule(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_normsched); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_104setNormSchedule(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_normsched) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + SNESNormSchedule __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNormSchedule", 0); + + /* "petsc4py/PETSc/SNES.pyx":441 + * + * def setNormSchedule(self, normsched): + * CHKERR( SNESSetNormSchedule(self.snes, normsched) ) # <<<<<<<<<<<<<< + * + * def getNormSchedule(self): + */ + __pyx_t_1 = ((SNESNormSchedule)__Pyx_PyInt_As_SNESNormSchedule(__pyx_v_normsched)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 441, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetNormSchedule(__pyx_v_self->snes, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 441, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":440 + * return (toReal(crtol), toReal(catol), toReal(cstol), toInt(cmaxit)) + * + * def setNormSchedule(self, normsched): # <<<<<<<<<<<<<< + * CHKERR( SNESSetNormSchedule(self.snes, normsched) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setNormSchedule", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":443 + * CHKERR( SNESSetNormSchedule(self.snes, normsched) ) + * + * def getNormSchedule(self): # <<<<<<<<<<<<<< + * cdef PetscSNESNormSchedule normsched = SNES_NORM_NONE + * CHKERR( SNESGetNormSchedule(self.snes, &normsched) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_107getNormSchedule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_106getNormSchedule[] = "SNES.getNormSchedule(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_107getNormSchedule(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNormSchedule (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNormSchedule", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNormSchedule", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_106getNormSchedule(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_106getNormSchedule(struct PyPetscSNESObject *__pyx_v_self) { + SNESNormSchedule __pyx_v_normsched; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNormSchedule", 0); + + /* "petsc4py/PETSc/SNES.pyx":444 + * + * def getNormSchedule(self): + * cdef PetscSNESNormSchedule normsched = SNES_NORM_NONE # <<<<<<<<<<<<<< + * CHKERR( SNESGetNormSchedule(self.snes, &normsched) ) + * return normsched + */ + __pyx_v_normsched = SNES_NORM_NONE; + + /* "petsc4py/PETSc/SNES.pyx":445 + * def getNormSchedule(self): + * cdef PetscSNESNormSchedule normsched = SNES_NORM_NONE + * CHKERR( SNESGetNormSchedule(self.snes, &normsched) ) # <<<<<<<<<<<<<< + * return normsched + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNormSchedule(__pyx_v_self->snes, (&__pyx_v_normsched))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 445, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":446 + * cdef PetscSNESNormSchedule normsched = SNES_NORM_NONE + * CHKERR( SNESGetNormSchedule(self.snes, &normsched) ) + * return normsched # <<<<<<<<<<<<<< + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_SNESNormSchedule(__pyx_v_normsched); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":443 + * CHKERR( SNESSetNormSchedule(self.snes, normsched) ) + * + * def getNormSchedule(self): # <<<<<<<<<<<<<< + * cdef PetscSNESNormSchedule normsched = SNES_NORM_NONE + * CHKERR( SNESGetNormSchedule(self.snes, &normsched) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNormSchedule", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":448 + * return normsched + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * if converged == "skip": + * self.set_attr('__converged__', None) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_109setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_108setConvergenceTest[] = "SNES.setConvergenceTest(self, converged, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_109setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_converged = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergenceTest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_converged,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_converged)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergenceTest") < 0)) __PYX_ERR(49, 448, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_converged = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergenceTest", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 448, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_108setConvergenceTest(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_converged, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_108setConvergenceTest(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergenceTest", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":449 + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + * if converged == "skip": # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + */ + __pyx_t_1 = (__Pyx_PyString_Equals(__pyx_v_converged, __pyx_n_s_skip, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(49, 449, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/SNES.pyx":450 + * def setConvergenceTest(self, converged, args=None, kargs=None): + * if converged == "skip": + * self.set_attr('__converged__', None) # <<<<<<<<<<<<<< + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + * elif converged is None or converged == "default": + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":451 + * if converged == "skip": + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) # <<<<<<<<<<<<<< + * elif converged is None or converged == "default": + * self.set_attr('__converged__', None) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetConvergenceTest(__pyx_v_self->snes, SNESConvergedSkip, NULL, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 451, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":449 + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + * if converged == "skip": # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":452 + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + * elif converged is None or converged == "default": # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedDefault, NULL, NULL) ) + */ + __pyx_t_4 = (__pyx_v_converged == Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_1 = __pyx_t_5; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = (__Pyx_PyString_Equals(__pyx_v_converged, __pyx_n_s_default, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(49, 452, __pyx_L1_error) + __pyx_t_1 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/SNES.pyx":453 + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + * elif converged is None or converged == "default": + * self.set_attr('__converged__', None) # <<<<<<<<<<<<<< + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedDefault, NULL, NULL) ) + * else: + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":454 + * elif converged is None or converged == "default": + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedDefault, NULL, NULL) ) # <<<<<<<<<<<<<< + * else: + * assert callable(converged) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetConvergenceTest(__pyx_v_self->snes, SNESConvergedDefault, NULL, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 454, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":452 + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedSkip, NULL, NULL) ) + * elif converged is None or converged == "default": # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedDefault, NULL, NULL) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":456 + * CHKERR( SNESSetConvergenceTest(self.snes, SNESConvergedDefault, NULL, NULL) ) + * else: + * assert callable(converged) # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + /*else*/ { + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_converged); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(49, 456, __pyx_L1_error) + if (unlikely(!(__pyx_t_1 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(49, 456, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/SNES.pyx":457 + * else: + * assert callable(converged) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (converged, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_5 = (__pyx_t_1 != 0); + if (__pyx_t_5) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":458 + * assert callable(converged) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (converged, args, kargs) + * self.set_attr('__converged__', context) + */ + __pyx_t_5 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_5 != 0); + if (__pyx_t_1) { + __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 458, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_2); + __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":459 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (converged, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__converged__', context) + * CHKERR( SNESSetConvergenceTest(self.snes, SNES_Converged, context, NULL) ) + */ + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 459, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_converged); + __Pyx_GIVEREF(__pyx_v_converged); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_converged); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":460 + * if kargs is None: kargs = {} + * context = (converged, args, kargs) + * self.set_attr('__converged__', context) # <<<<<<<<<<<<<< + * CHKERR( SNESSetConvergenceTest(self.snes, SNES_Converged, context, NULL) ) + * + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), __pyx_v_context); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":461 + * context = (converged, args, kargs) + * self.set_attr('__converged__', context) + * CHKERR( SNESSetConvergenceTest(self.snes, SNES_Converged, context, NULL) ) # <<<<<<<<<<<<<< + * + * def getConvergenceTest(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetConvergenceTest(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_Converged, ((void *)__pyx_v_context), NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 461, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":448 + * return normsched + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * if converged == "skip": + * self.set_attr('__converged__', None) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":463 + * CHKERR( SNESSetConvergenceTest(self.snes, SNES_Converged, context, NULL) ) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * return self.get_attr('__converged__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_111getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_110getConvergenceTest[] = "SNES.getConvergenceTest(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_111getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergenceTest (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergenceTest", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergenceTest", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_110getConvergenceTest(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_110getConvergenceTest(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergenceTest", 0); + + /* "petsc4py/PETSc/SNES.pyx":464 + * + * def getConvergenceTest(self): + * return self.get_attr('__converged__') # <<<<<<<<<<<<<< + * + * def callConvergenceTest(self, its, xnorm, ynorm, fnorm): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":463 + * CHKERR( SNESSetConvergenceTest(self.snes, SNES_Converged, context, NULL) ) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * return self.get_attr('__converged__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":466 + * return self.get_attr('__converged__') + * + * def callConvergenceTest(self, its, xnorm, ynorm, fnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval1 = asReal(xnorm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_113callConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_112callConvergenceTest[] = "SNES.callConvergenceTest(self, its, xnorm, ynorm, fnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_113callConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_xnorm = 0; + PyObject *__pyx_v_ynorm = 0; + PyObject *__pyx_v_fnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("callConvergenceTest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,&__pyx_n_s_xnorm,&__pyx_n_s_ynorm,&__pyx_n_s_fnorm,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xnorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 4, 4, 1); __PYX_ERR(49, 466, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ynorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 4, 4, 2); __PYX_ERR(49, 466, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fnorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 4, 4, 3); __PYX_ERR(49, 466, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "callConvergenceTest") < 0)) __PYX_ERR(49, 466, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_its = values[0]; + __pyx_v_xnorm = values[1]; + __pyx_v_ynorm = values[2]; + __pyx_v_fnorm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("callConvergenceTest", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 466, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.callConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_112callConvergenceTest(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_its, __pyx_v_xnorm, __pyx_v_ynorm, __pyx_v_fnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_112callConvergenceTest(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_xnorm, PyObject *__pyx_v_ynorm, PyObject *__pyx_v_fnorm) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscReal __pyx_v_rval3; + SNESConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("callConvergenceTest", 0); + + /* "petsc4py/PETSc/SNES.pyx":467 + * + * def callConvergenceTest(self, its, xnorm, ynorm, fnorm): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = asReal(xnorm) + * cdef PetscReal rval2 = asReal(ynorm) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 467, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":468 + * def callConvergenceTest(self, its, xnorm, ynorm, fnorm): + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval1 = asReal(xnorm) # <<<<<<<<<<<<<< + * cdef PetscReal rval2 = asReal(ynorm) + * cdef PetscReal rval3 = asReal(fnorm) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xnorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 468, __pyx_L1_error) + __pyx_v_rval1 = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":469 + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval1 = asReal(xnorm) + * cdef PetscReal rval2 = asReal(ynorm) # <<<<<<<<<<<<<< + * cdef PetscReal rval3 = asReal(fnorm) + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ynorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 469, __pyx_L1_error) + __pyx_v_rval2 = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":470 + * cdef PetscReal rval1 = asReal(xnorm) + * cdef PetscReal rval2 = asReal(ynorm) + * cdef PetscReal rval3 = asReal(fnorm) # <<<<<<<<<<<<<< + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESConvergenceTestCall(self.snes, ival, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_fnorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 470, __pyx_L1_error) + __pyx_v_rval3 = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":471 + * cdef PetscReal rval2 = asReal(ynorm) + * cdef PetscReal rval3 = asReal(fnorm) + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * CHKERR( SNESConvergenceTestCall(self.snes, ival, + * rval1, rval2, rval3, &reason) ) + */ + __pyx_v_reason = SNES_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/SNES.pyx":472 + * cdef PetscReal rval3 = asReal(fnorm) + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESConvergenceTestCall(self.snes, ival, # <<<<<<<<<<<<<< + * rval1, rval2, rval3, &reason) ) + * return reason + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESConvergenceTestCall(__pyx_v_self->snes, __pyx_v_ival, __pyx_v_rval1, __pyx_v_rval2, __pyx_v_rval3, (&__pyx_v_reason))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 472, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":474 + * CHKERR( SNESConvergenceTestCall(self.snes, ival, + * rval1, rval2, rval3, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def setConvergenceHistory(self, length=None, reset=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __Pyx_PyInt_From_SNESConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 474, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":466 + * return self.get_attr('__converged__') + * + * def callConvergenceTest(self, its, xnorm, ynorm, fnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval1 = asReal(xnorm) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.callConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":476 + * return reason + * + * def setConvergenceHistory(self, length=None, reset=False): # <<<<<<<<<<<<<< + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_115setConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_114setConvergenceHistory[] = "SNES.setConvergenceHistory(self, length=None, reset=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_115setConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_length = 0; + PyObject *__pyx_v_reset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergenceHistory (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_length,&__pyx_n_s_reset,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_length); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reset); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergenceHistory") < 0)) __PYX_ERR(49, 476, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_length = values[0]; + __pyx_v_reset = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergenceHistory", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 476, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_114setConvergenceHistory(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_length, __pyx_v_reset); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_114setConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_length, PyObject *__pyx_v_reset) { + PetscReal *__pyx_v_rdata; + PetscInt *__pyx_v_idata; + PetscInt __pyx_v_size; + PetscBool __pyx_v_flag; + PyObject *__pyx_v_rhist = 0; + PyObject *__pyx_v_ihist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergenceHistory", 0); + + /* "petsc4py/PETSc/SNES.pyx":477 + * + * def setConvergenceHistory(self, length=None, reset=False): + * cdef PetscReal *rdata = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 1000 + */ + __pyx_v_rdata = NULL; + + /* "petsc4py/PETSc/SNES.pyx":478 + * def setConvergenceHistory(self, length=None, reset=False): + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL # <<<<<<<<<<<<<< + * cdef PetscInt size = 1000 + * cdef PetscBool flag = PETSC_FALSE + */ + __pyx_v_idata = NULL; + + /* "petsc4py/PETSc/SNES.pyx":479 + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 1000 # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass + */ + __pyx_v_size = 0x3E8; + + /* "petsc4py/PETSc/SNES.pyx":480 + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 1000 + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * if length is True: pass + * elif length is not None: size = asInt(length) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":481 + * cdef PetscInt size = 1000 + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass # <<<<<<<<<<<<<< + * elif length is not None: size = asInt(length) + * if size < 0: size = 1000 + */ + __pyx_t_1 = (__pyx_v_length == Py_True); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + goto __pyx_L3; + } + + /* "petsc4py/PETSc/SNES.pyx":482 + * cdef PetscBool flag = PETSC_FALSE + * if length is True: pass + * elif length is not None: size = asInt(length) # <<<<<<<<<<<<<< + * if size < 0: size = 1000 + * if reset: flag = PETSC_TRUE + */ + __pyx_t_2 = (__pyx_v_length != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_length); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 482, __pyx_L1_error) + __pyx_v_size = __pyx_t_3; + } + __pyx_L3:; + + /* "petsc4py/PETSc/SNES.pyx":483 + * if length is True: pass + * elif length is not None: size = asInt(length) + * if size < 0: size = 1000 # <<<<<<<<<<<<<< + * if reset: flag = PETSC_TRUE + * cdef object rhist = oarray_r(empty_r(size), NULL, &rdata) + */ + __pyx_t_1 = ((__pyx_v_size < 0) != 0); + if (__pyx_t_1) { + __pyx_v_size = 0x3E8; + } + + /* "petsc4py/PETSc/SNES.pyx":484 + * elif length is not None: size = asInt(length) + * if size < 0: size = 1000 + * if reset: flag = PETSC_TRUE # <<<<<<<<<<<<<< + * cdef object rhist = oarray_r(empty_r(size), NULL, &rdata) + * cdef object ihist = oarray_i(empty_i(size), NULL, &idata) + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_reset); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(49, 484, __pyx_L1_error) + if (__pyx_t_1) { + __pyx_v_flag = PETSC_TRUE; + } + + /* "petsc4py/PETSc/SNES.pyx":485 + * if size < 0: size = 1000 + * if reset: flag = PETSC_TRUE + * cdef object rhist = oarray_r(empty_r(size), NULL, &rdata) # <<<<<<<<<<<<<< + * cdef object ihist = oarray_i(empty_i(size), NULL, &idata) + * self.set_attr('__history__', (rhist, ihist)) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_r(__pyx_v_size)); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_r(__pyx_t_4, NULL, (&__pyx_v_rdata))); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_rhist = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":486 + * if reset: flag = PETSC_TRUE + * cdef object rhist = oarray_r(empty_r(size), NULL, &rdata) + * cdef object ihist = oarray_i(empty_i(size), NULL, &idata) # <<<<<<<<<<<<<< + * self.set_attr('__history__', (rhist, ihist)) + * CHKERR( SNESSetConvergenceHistory(self.snes, rdata, idata, size, flag) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_i(__pyx_v_size)); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_t_5, NULL, (&__pyx_v_idata))); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_ihist = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/SNES.pyx":487 + * cdef object rhist = oarray_r(empty_r(size), NULL, &rdata) + * cdef object ihist = oarray_i(empty_i(size), NULL, &idata) + * self.set_attr('__history__', (rhist, ihist)) # <<<<<<<<<<<<<< + * CHKERR( SNESSetConvergenceHistory(self.snes, rdata, idata, size, flag) ) + * + */ + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_rhist); + __Pyx_GIVEREF(__pyx_v_rhist); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_rhist); + __Pyx_INCREF(__pyx_v_ihist); + __Pyx_GIVEREF(__pyx_v_ihist); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_ihist); + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__history__"), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":488 + * cdef object ihist = oarray_i(empty_i(size), NULL, &idata) + * self.set_attr('__history__', (rhist, ihist)) + * CHKERR( SNESSetConvergenceHistory(self.snes, rdata, idata, size, flag) ) # <<<<<<<<<<<<<< + * + * def getConvergenceHistory(self): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetConvergenceHistory(__pyx_v_self->snes, __pyx_v_rdata, __pyx_v_idata, __pyx_v_size, __pyx_v_flag)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 488, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":476 + * return reason + * + * def setConvergenceHistory(self, length=None, reset=False): # <<<<<<<<<<<<<< + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rhist); + __Pyx_XDECREF(__pyx_v_ihist); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":490 + * CHKERR( SNESSetConvergenceHistory(self.snes, rdata, idata, size, flag) ) + * + * def getConvergenceHistory(self): # <<<<<<<<<<<<<< + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_117getConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_116getConvergenceHistory[] = "SNES.getConvergenceHistory(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_117getConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergenceHistory (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergenceHistory", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergenceHistory", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_116getConvergenceHistory(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_116getConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self) { + PetscReal *__pyx_v_rdata; + PetscInt *__pyx_v_idata; + PetscInt __pyx_v_size; + PyObject *__pyx_v_rhist = 0; + PyObject *__pyx_v_ihist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergenceHistory", 0); + + /* "petsc4py/PETSc/SNES.pyx":491 + * + * def getConvergenceHistory(self): + * cdef PetscReal *rdata = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 0 + */ + __pyx_v_rdata = NULL; + + /* "petsc4py/PETSc/SNES.pyx":492 + * def getConvergenceHistory(self): + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * CHKERR( SNESGetConvergenceHistory(self.snes, &rdata, &idata, &size) ) + */ + __pyx_v_idata = NULL; + + /* "petsc4py/PETSc/SNES.pyx":493 + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetConvergenceHistory(self.snes, &rdata, &idata, &size) ) + * cdef object rhist = array_r(size, rdata) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/SNES.pyx":494 + * cdef PetscInt *idata = NULL + * cdef PetscInt size = 0 + * CHKERR( SNESGetConvergenceHistory(self.snes, &rdata, &idata, &size) ) # <<<<<<<<<<<<<< + * cdef object rhist = array_r(size, rdata) + * cdef object ihist = array_i(size, idata) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetConvergenceHistory(__pyx_v_self->snes, (&__pyx_v_rdata), (&__pyx_v_idata), (&__pyx_v_size))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 494, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":495 + * cdef PetscInt size = 0 + * CHKERR( SNESGetConvergenceHistory(self.snes, &rdata, &idata, &size) ) + * cdef object rhist = array_r(size, rdata) # <<<<<<<<<<<<<< + * cdef object ihist = array_i(size, idata) + * return (rhist, ihist) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r(__pyx_v_size, __pyx_v_rdata)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_rhist = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":496 + * CHKERR( SNESGetConvergenceHistory(self.snes, &rdata, &idata, &size) ) + * cdef object rhist = array_r(size, rdata) + * cdef object ihist = array_i(size, idata) # <<<<<<<<<<<<<< + * return (rhist, ihist) + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_size, __pyx_v_idata)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ihist = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":497 + * cdef object rhist = array_r(size, rdata) + * cdef object ihist = array_i(size, idata) + * return (rhist, ihist) # <<<<<<<<<<<<<< + * + * def logConvergenceHistory(self, norm, linear_its=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_rhist); + __Pyx_GIVEREF(__pyx_v_rhist); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_rhist); + __Pyx_INCREF(__pyx_v_ihist); + __Pyx_GIVEREF(__pyx_v_ihist); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_ihist); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":490 + * CHKERR( SNESSetConvergenceHistory(self.snes, rdata, idata, size, flag) ) + * + * def getConvergenceHistory(self): # <<<<<<<<<<<<<< + * cdef PetscReal *rdata = NULL + * cdef PetscInt *idata = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rhist); + __Pyx_XDECREF(__pyx_v_ihist); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":499 + * return (rhist, ihist) + * + * def logConvergenceHistory(self, norm, linear_its=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(norm) + * cdef PetscInt ival = asInt(linear_its) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_119logConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_118logConvergenceHistory[] = "SNES.logConvergenceHistory(self, norm, linear_its=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_119logConvergenceHistory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm = 0; + PyObject *__pyx_v_linear_its = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("logConvergenceHistory (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm,&__pyx_n_s_linear_its,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_linear_its); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "logConvergenceHistory") < 0)) __PYX_ERR(49, 499, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_norm = values[0]; + __pyx_v_linear_its = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("logConvergenceHistory", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 499, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.logConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_118logConvergenceHistory(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_norm, __pyx_v_linear_its); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_118logConvergenceHistory(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_norm, PyObject *__pyx_v_linear_its) { + PetscReal __pyx_v_rval; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("logConvergenceHistory", 0); + + /* "petsc4py/PETSc/SNES.pyx":500 + * + * def logConvergenceHistory(self, norm, linear_its=0): + * cdef PetscReal rval = asReal(norm) # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(linear_its) + * CHKERR( SNESLogConvergenceHistory(self.snes, rval, ival) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_norm); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 500, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":501 + * def logConvergenceHistory(self, norm, linear_its=0): + * cdef PetscReal rval = asReal(norm) + * cdef PetscInt ival = asInt(linear_its) # <<<<<<<<<<<<<< + * CHKERR( SNESLogConvergenceHistory(self.snes, rval, ival) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_linear_its); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 501, __pyx_L1_error) + __pyx_v_ival = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":502 + * cdef PetscReal rval = asReal(norm) + * cdef PetscInt ival = asInt(linear_its) + * CHKERR( SNESLogConvergenceHistory(self.snes, rval, ival) ) # <<<<<<<<<<<<<< + * + * def setResetCounters(self, reset=True): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLogConvergenceHistory(__pyx_v_self->snes, __pyx_v_rval, __pyx_v_ival)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 502, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":499 + * return (rhist, ihist) + * + * def logConvergenceHistory(self, norm, linear_its=0): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(norm) + * cdef PetscInt ival = asInt(linear_its) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.logConvergenceHistory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":504 + * CHKERR( SNESLogConvergenceHistory(self.snes, rval, ival) ) + * + * def setResetCounters(self, reset=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = reset + * CHKERR( SNESSetCountersReset(self.snes, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_121setResetCounters(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_120setResetCounters[] = "SNES.setResetCounters(self, reset=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_121setResetCounters(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setResetCounters (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reset,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reset); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setResetCounters") < 0)) __PYX_ERR(49, 504, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_reset = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setResetCounters", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 504, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setResetCounters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_120setResetCounters(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_reset); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_120setResetCounters(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_reset) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setResetCounters", 0); + + /* "petsc4py/PETSc/SNES.pyx":505 + * + * def setResetCounters(self, reset=True): + * cdef PetscBool flag = reset # <<<<<<<<<<<<<< + * CHKERR( SNESSetCountersReset(self.snes, flag) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_reset)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 505, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":506 + * def setResetCounters(self, reset=True): + * cdef PetscBool flag = reset + * CHKERR( SNESSetCountersReset(self.snes, flag) ) # <<<<<<<<<<<<<< + * + * # --- monitoring --- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetCountersReset(__pyx_v_self->snes, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 506, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":504 + * CHKERR( SNESLogConvergenceHistory(self.snes, rval, ival) ) + * + * def setResetCounters(self, reset=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = reset + * CHKERR( SNESSetCountersReset(self.snes, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setResetCounters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":510 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_123setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_122setMonitor[] = "SNES.setMonitor(self, monitor, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_123setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_monitor = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMonitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_monitor,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_monitor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMonitor") < 0)) __PYX_ERR(49, 510, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_monitor = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMonitor", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 510, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_122setMonitor(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_monitor, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_122setMonitor(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMonitor", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":511 + * + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return # <<<<<<<<<<<<<< + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + */ + __pyx_t_1 = (__pyx_v_monitor == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/SNES.pyx":512 + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: + * monitorlist = [] + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_monitorlist = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":513 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/SNES.pyx":514 + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + * monitorlist = [] # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', monitorlist) + * CHKERR( SNESMonitorSet(self.snes, SNES_Monitor, NULL, NULL) ) + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_monitorlist, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":515 + * if monitorlist is None: + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) # <<<<<<<<<<<<<< + * CHKERR( SNESMonitorSet(self.snes, SNES_Monitor, NULL, NULL) ) + * if args is None: args = () + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), __pyx_v_monitorlist); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":516 + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + * CHKERR( SNESMonitorSet(self.snes, SNES_Monitor, NULL, NULL) ) # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESMonitorSet(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_SNES_Monitor, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 516, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":513 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + } + + /* "petsc4py/PETSc/SNES.pyx":517 + * self.set_attr('__monitor__', monitorlist) + * CHKERR( SNESMonitorSet(self.snes, SNES_Monitor, NULL, NULL) ) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":518 + * CHKERR( SNESMonitorSet(self.snes, SNES_Monitor, NULL, NULL) ) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (monitor, args, kargs) + * monitorlist.append(context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":519 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) # <<<<<<<<<<<<<< + * monitorlist.append(context) + * + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_monitor); + __Pyx_GIVEREF(__pyx_v_monitor); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_monitor); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":520 + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) + * monitorlist.append(context) # <<<<<<<<<<<<<< + * + * def getMonitor(self): + */ + __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_monitorlist, __pyx_v_context); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(49, 520, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":510 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":522 + * monitorlist.append(context) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_125getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_124getMonitor[] = "SNES.getMonitor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_125getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMonitor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMonitor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMonitor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_124getMonitor(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_124getMonitor(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMonitor", 0); + + /* "petsc4py/PETSc/SNES.pyx":523 + * + * def getMonitor(self): + * return self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * + * def monitorCancel(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":522 + * monitorlist.append(context) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":525 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * CHKERR( SNESMonitorCancel(self.snes) ) + * self.set_attr('__monitor__', None) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_127monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_126monitorCancel[] = "SNES.monitorCancel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_127monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitorCancel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("monitorCancel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "monitorCancel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_126monitorCancel(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_126monitorCancel(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitorCancel", 0); + + /* "petsc4py/PETSc/SNES.pyx":526 + * + * def monitorCancel(self): + * CHKERR( SNESMonitorCancel(self.snes) ) # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', None) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESMonitorCancel(__pyx_v_self->snes)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 526, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":527 + * def monitorCancel(self): + * CHKERR( SNESMonitorCancel(self.snes) ) + * self.set_attr('__monitor__', None) # <<<<<<<<<<<<<< + * + * cancelMonitor = monitorCancel + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":525 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * CHKERR( SNESMonitorCancel(self.snes) ) + * self.set_attr('__monitor__', None) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.monitorCancel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":531 + * cancelMonitor = monitorCancel + * + * def monitor(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_129monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_128monitor[] = "SNES.monitor(self, its, rnorm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_129monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_rnorm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,&__pyx_n_s_rnorm,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rnorm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("monitor", 1, 2, 2, 1); __PYX_ERR(49, 531, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor") < 0)) __PYX_ERR(49, 531, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_its = values[0]; + __pyx_v_rnorm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("monitor", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 531, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_128monitor(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_its, __pyx_v_rnorm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_128monitor(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_rnorm) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitor", 0); + + /* "petsc4py/PETSc/SNES.pyx":532 + * + * def monitor(self, its, rnorm): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( SNESMonitor(self.snes, ival, rval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 532, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":533 + * def monitor(self, its, rnorm): + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) # <<<<<<<<<<<<<< + * CHKERR( SNESMonitor(self.snes, ival, rval) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rnorm); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 533, __pyx_L1_error) + __pyx_v_rval = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":534 + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + * CHKERR( SNESMonitor(self.snes, ival, rval) ) # <<<<<<<<<<<<<< + * + * # --- more tolerances --- + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESMonitor(__pyx_v_self->snes, __pyx_v_ival, __pyx_v_rval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 534, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":531 + * cancelMonitor = monitorCancel + * + * def monitor(self, its, rnorm): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * cdef PetscReal rval = asReal(rnorm) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":538 + * # --- more tolerances --- + * + * def setMaxFunctionEvaluations(self, max_funcs): # <<<<<<<<<<<<<< + * cdef PetscReal r = PETSC_DEFAULT + * cdef PetscInt i = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_131setMaxFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_130setMaxFunctionEvaluations[] = "SNES.setMaxFunctionEvaluations(self, max_funcs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_131setMaxFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_max_funcs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxFunctionEvaluations (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_max_funcs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_funcs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxFunctionEvaluations") < 0)) __PYX_ERR(49, 538, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_max_funcs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxFunctionEvaluations", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 538, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_130setMaxFunctionEvaluations(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_max_funcs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_130setMaxFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_funcs) { + PetscReal __pyx_v_r; + PetscInt __pyx_v_i; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxFunctionEvaluations", 0); + + /* "petsc4py/PETSc/SNES.pyx":539 + * + * def setMaxFunctionEvaluations(self, max_funcs): + * cdef PetscReal r = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscInt i = PETSC_DEFAULT + * cdef PetscInt ival = asInt(max_funcs) + */ + __pyx_v_r = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":540 + * def setMaxFunctionEvaluations(self, max_funcs): + * cdef PetscReal r = PETSC_DEFAULT + * cdef PetscInt i = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_funcs) + * CHKERR( SNESSetTolerances(self.snes, r, r, r, i, ival) ) + */ + __pyx_v_i = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":541 + * cdef PetscReal r = PETSC_DEFAULT + * cdef PetscInt i = PETSC_DEFAULT + * cdef PetscInt ival = asInt(max_funcs) # <<<<<<<<<<<<<< + * CHKERR( SNESSetTolerances(self.snes, r, r, r, i, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_funcs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 541, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":542 + * cdef PetscInt i = PETSC_DEFAULT + * cdef PetscInt ival = asInt(max_funcs) + * CHKERR( SNESSetTolerances(self.snes, r, r, r, i, ival) ) # <<<<<<<<<<<<<< + * + * def getMaxFunctionEvaluations(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetTolerances(__pyx_v_self->snes, __pyx_v_r, __pyx_v_r, __pyx_v_r, __pyx_v_i, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 542, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":538 + * # --- more tolerances --- + * + * def setMaxFunctionEvaluations(self, max_funcs): # <<<<<<<<<<<<<< + * cdef PetscReal r = PETSC_DEFAULT + * cdef PetscInt i = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":544 + * CHKERR( SNESSetTolerances(self.snes, r, r, r, i, ival) ) + * + * def getMaxFunctionEvaluations(self): # <<<<<<<<<<<<<< + * cdef PetscReal *r = NULL + * cdef PetscInt *i = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_133getMaxFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_132getMaxFunctionEvaluations[] = "SNES.getMaxFunctionEvaluations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_133getMaxFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxFunctionEvaluations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxFunctionEvaluations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxFunctionEvaluations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_132getMaxFunctionEvaluations(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_132getMaxFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self) { + PetscReal *__pyx_v_r; + PetscInt *__pyx_v_i; + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxFunctionEvaluations", 0); + + /* "petsc4py/PETSc/SNES.pyx":545 + * + * def getMaxFunctionEvaluations(self): + * cdef PetscReal *r = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *i = NULL + * cdef PetscInt ival = 0 + */ + __pyx_v_r = NULL; + + /* "petsc4py/PETSc/SNES.pyx":546 + * def getMaxFunctionEvaluations(self): + * cdef PetscReal *r = NULL + * cdef PetscInt *i = NULL # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetTolerances(self.snes, r, r, r, i, &ival) ) + */ + __pyx_v_i = NULL; + + /* "petsc4py/PETSc/SNES.pyx":547 + * cdef PetscReal *r = NULL + * cdef PetscInt *i = NULL + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetTolerances(self.snes, r, r, r, i, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":548 + * cdef PetscInt *i = NULL + * cdef PetscInt ival = 0 + * CHKERR( SNESGetTolerances(self.snes, r, r, r, i, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetTolerances(__pyx_v_self->snes, __pyx_v_r, __pyx_v_r, __pyx_v_r, __pyx_v_i, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 548, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":549 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetTolerances(self.snes, r, r, r, i, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getFunctionEvaluations(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":544 + * CHKERR( SNESSetTolerances(self.snes, r, r, r, i, ival) ) + * + * def getMaxFunctionEvaluations(self): # <<<<<<<<<<<<<< + * cdef PetscReal *r = NULL + * cdef PetscInt *i = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getMaxFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":551 + * return toInt(ival) + * + * def getFunctionEvaluations(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNumberFunctionEvals(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_135getFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_134getFunctionEvaluations[] = "SNES.getFunctionEvaluations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_135getFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFunctionEvaluations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFunctionEvaluations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFunctionEvaluations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_134getFunctionEvaluations(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_134getFunctionEvaluations(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFunctionEvaluations", 0); + + /* "petsc4py/PETSc/SNES.pyx":552 + * + * def getFunctionEvaluations(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetNumberFunctionEvals(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":553 + * def getFunctionEvaluations(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNumberFunctionEvals(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNumberFunctionEvals(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 553, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":554 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNumberFunctionEvals(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setMaxStepFailures(self, max_fails): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":551 + * return toInt(ival) + * + * def getFunctionEvaluations(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNumberFunctionEvals(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":556 + * return toInt(ival) + * + * def setMaxStepFailures(self, max_fails): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_137setMaxStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_136setMaxStepFailures[] = "SNES.setMaxStepFailures(self, max_fails)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_137setMaxStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_max_fails = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxStepFailures (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_max_fails,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_fails)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxStepFailures") < 0)) __PYX_ERR(49, 556, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_max_fails = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxStepFailures", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 556, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxStepFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_136setMaxStepFailures(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_max_fails); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_136setMaxStepFailures(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_fails) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxStepFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":557 + * + * def setMaxStepFailures(self, max_fails): + * cdef PetscInt ival = asInt(max_fails) # <<<<<<<<<<<<<< + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_fails); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 557, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":558 + * def setMaxStepFailures(self, max_fails): + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) # <<<<<<<<<<<<<< + * + * def getMaxStepFailures(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetMaxNonlinearStepFailures(__pyx_v_self->snes, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 558, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":556 + * return toInt(ival) + * + * def setMaxStepFailures(self, max_fails): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxStepFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":560 + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) + * + * def getMaxStepFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxNonlinearStepFailures(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_139getMaxStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_138getMaxStepFailures[] = "SNES.getMaxStepFailures(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_139getMaxStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxStepFailures (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxStepFailures", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxStepFailures", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_138getMaxStepFailures(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_138getMaxStepFailures(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxStepFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":561 + * + * def getMaxStepFailures(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetMaxNonlinearStepFailures(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":562 + * def getMaxStepFailures(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxNonlinearStepFailures(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetMaxNonlinearStepFailures(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 562, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":563 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxNonlinearStepFailures(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getStepFailures(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":560 + * CHKERR( SNESSetMaxNonlinearStepFailures(self.snes, ival) ) + * + * def getMaxStepFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxNonlinearStepFailures(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getMaxStepFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":565 + * return toInt(ival) + * + * def getStepFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNonlinearStepFailures(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_141getStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_140getStepFailures[] = "SNES.getStepFailures(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_141getStepFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStepFailures (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStepFailures", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStepFailures", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_140getStepFailures(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_140getStepFailures(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStepFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":566 + * + * def getStepFailures(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetNonlinearStepFailures(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":567 + * def getStepFailures(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNonlinearStepFailures(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetNonlinearStepFailures(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 567, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":568 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNonlinearStepFailures(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setMaxKSPFailures(self, max_fails): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":565 + * return toInt(ival) + * + * def getStepFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetNonlinearStepFailures(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getStepFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":570 + * return toInt(ival) + * + * def setMaxKSPFailures(self, max_fails): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_143setMaxKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_142setMaxKSPFailures[] = "SNES.setMaxKSPFailures(self, max_fails)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_143setMaxKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_max_fails = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxKSPFailures (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_max_fails,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_fails)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxKSPFailures") < 0)) __PYX_ERR(49, 570, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_max_fails = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxKSPFailures", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 570, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxKSPFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_142setMaxKSPFailures(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_max_fails); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_142setMaxKSPFailures(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_max_fails) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxKSPFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":571 + * + * def setMaxKSPFailures(self, max_fails): + * cdef PetscInt ival = asInt(max_fails) # <<<<<<<<<<<<<< + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_fails); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 571, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":572 + * def setMaxKSPFailures(self, max_fails): + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) # <<<<<<<<<<<<<< + * + * def getMaxKSPFailures(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetMaxLinearSolveFailures(__pyx_v_self->snes, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 572, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":570 + * return toInt(ival) + * + * def setMaxKSPFailures(self, max_fails): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_fails) + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setMaxKSPFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":574 + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) + * + * def getMaxKSPFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxLinearSolveFailures(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_145getMaxKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_144getMaxKSPFailures[] = "SNES.getMaxKSPFailures(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_145getMaxKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxKSPFailures (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxKSPFailures", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxKSPFailures", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_144getMaxKSPFailures(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_144getMaxKSPFailures(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxKSPFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":575 + * + * def getMaxKSPFailures(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetMaxLinearSolveFailures(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":576 + * def getMaxKSPFailures(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxLinearSolveFailures(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetMaxLinearSolveFailures(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 576, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":577 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxLinearSolveFailures(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getKSPFailures(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":574 + * CHKERR( SNESSetMaxLinearSolveFailures(self.snes, ival) ) + * + * def getMaxKSPFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetMaxLinearSolveFailures(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getMaxKSPFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":579 + * return toInt(ival) + * + * def getKSPFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveFailures(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_147getKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_146getKSPFailures[] = "SNES.getKSPFailures(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_147getKSPFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSPFailures (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSPFailures", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSPFailures", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_146getKSPFailures(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_146getKSPFailures(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSPFailures", 0); + + /* "petsc4py/PETSc/SNES.pyx":580 + * + * def getKSPFailures(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetLinearSolveFailures(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":581 + * def getKSPFailures(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveFailures(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLinearSolveFailures(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 581, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":582 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveFailures(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * setMaxNonlinearStepFailures = setMaxStepFailures + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":579 + * return toInt(ival) + * + * def getKSPFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveFailures(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getKSPFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":593 + * # --- solving --- + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( SNESSetUp(self.snes) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_149setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_148setUp[] = "SNES.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_149setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_148setUp(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_148setUp(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/SNES.pyx":594 + * + * def setUp(self): + * CHKERR( SNESSetUp(self.snes) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetUp(__pyx_v_self->snes)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 594, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":593 + * # --- solving --- + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( SNESSetUp(self.snes) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":596 + * CHKERR( SNESSetUp(self.snes) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( SNESReset(self.snes) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_151reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_150reset[] = "SNES.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_151reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_150reset(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_150reset(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/SNES.pyx":597 + * + * def reset(self): + * CHKERR( SNESReset(self.snes) ) # <<<<<<<<<<<<<< + * + * def solve(self, Vec b = None, Vec x = None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESReset(__pyx_v_self->snes)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 597, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":596 + * CHKERR( SNESSetUp(self.snes) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( SNESReset(self.snes) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":599 + * CHKERR( SNESReset(self.snes) ) + * + * def solve(self, Vec b = None, Vec x = None): # <<<<<<<<<<<<<< + * cdef PetscVec rhs = NULL + * cdef PetscVec sol = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_153solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_152solve[] = "SNES.solve(self, Vec b=None, Vec x=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_153solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_b = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_b,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_b); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solve") < 0)) __PYX_ERR(49, 599, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_b = ((struct PyPetscVecObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solve", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 599, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "b", 0))) __PYX_ERR(49, 599, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(49, 599, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_152solve(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_b, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_152solve(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_b, struct PyPetscVecObject *__pyx_v_x) { + Vec __pyx_v_rhs; + Vec __pyx_v_sol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solve", 0); + + /* "petsc4py/PETSc/SNES.pyx":600 + * + * def solve(self, Vec b = None, Vec x = None): + * cdef PetscVec rhs = NULL # <<<<<<<<<<<<<< + * cdef PetscVec sol = NULL + * if b is not None: rhs = b.vec + */ + __pyx_v_rhs = NULL; + + /* "petsc4py/PETSc/SNES.pyx":601 + * def solve(self, Vec b = None, Vec x = None): + * cdef PetscVec rhs = NULL + * cdef PetscVec sol = NULL # <<<<<<<<<<<<<< + * if b is not None: rhs = b.vec + * if x is not None: sol = x.vec + */ + __pyx_v_sol = NULL; + + /* "petsc4py/PETSc/SNES.pyx":602 + * cdef PetscVec rhs = NULL + * cdef PetscVec sol = NULL + * if b is not None: rhs = b.vec # <<<<<<<<<<<<<< + * if x is not None: sol = x.vec + * CHKERR( SNESSolve(self.snes, rhs, sol) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_b) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_b->vec; + __pyx_v_rhs = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":603 + * cdef PetscVec sol = NULL + * if b is not None: rhs = b.vec + * if x is not None: sol = x.vec # <<<<<<<<<<<<<< + * CHKERR( SNESSolve(self.snes, rhs, sol) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_x->vec; + __pyx_v_sol = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":604 + * if b is not None: rhs = b.vec + * if x is not None: sol = x.vec + * CHKERR( SNESSolve(self.snes, rhs, sol) ) # <<<<<<<<<<<<<< + * + * def setConvergedReason(self, reason): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSolve(__pyx_v_self->snes, __pyx_v_rhs, __pyx_v_sol)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 604, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":599 + * CHKERR( SNESReset(self.snes) ) + * + * def solve(self, Vec b = None, Vec x = None): # <<<<<<<<<<<<<< + * cdef PetscVec rhs = NULL + * cdef PetscVec sol = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":606 + * CHKERR( SNESSolve(self.snes, rhs, sol) ) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscSNESConvergedReason eval = reason + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_155setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_154setConvergedReason[] = "SNES.setConvergedReason(self, reason)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_155setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reason = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergedReason (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reason,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergedReason") < 0)) __PYX_ERR(49, 606, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_reason = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergedReason", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 606, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_154setConvergedReason(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_reason); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_154setConvergedReason(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_reason) { + SNESConvergedReason __pyx_v_eval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + SNESConvergedReason __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergedReason", 0); + + /* "petsc4py/PETSc/SNES.pyx":607 + * + * def setConvergedReason(self, reason): + * cdef PetscSNESConvergedReason eval = reason # <<<<<<<<<<<<<< + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) + * + */ + __pyx_t_1 = ((SNESConvergedReason)__Pyx_PyInt_As_SNESConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 607, __pyx_L1_error) + __pyx_v_eval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":608 + * def setConvergedReason(self, reason): + * cdef PetscSNESConvergedReason eval = reason + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) # <<<<<<<<<<<<<< + * + * def getConvergedReason(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetConvergedReason(__pyx_v_self->snes, __pyx_v_eval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 608, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":606 + * CHKERR( SNESSolve(self.snes, rhs, sol) ) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscSNESConvergedReason eval = reason + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":610 + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESGetConvergedReason(self.snes, &reason) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_157getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_156getConvergedReason[] = "SNES.getConvergedReason(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_157getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_156getConvergedReason(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_156getConvergedReason(struct PyPetscSNESObject *__pyx_v_self) { + SNESConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergedReason", 0); + + /* "petsc4py/PETSc/SNES.pyx":611 + * + * def getConvergedReason(self): + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * CHKERR( SNESGetConvergedReason(self.snes, &reason) ) + * return reason + */ + __pyx_v_reason = SNES_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/SNES.pyx":612 + * def getConvergedReason(self): + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESGetConvergedReason(self.snes, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetConvergedReason(__pyx_v_self->snes, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 612, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":613 + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESGetConvergedReason(self.snes, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def setErrorIfNotConverged(self, bint flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_SNESConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":610 + * CHKERR( SNESSetConvergedReason(self.snes, eval) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscSNESConvergedReason reason = SNES_CONVERGED_ITERATING + * CHKERR( SNESGetConvergedReason(self.snes, &reason) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":615 + * return reason + * + * def setErrorIfNotConverged(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_159setErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_158setErrorIfNotConverged[] = "SNES.setErrorIfNotConverged(self, bool flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_159setErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_v_flag; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setErrorIfNotConverged (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setErrorIfNotConverged") < 0)) __PYX_ERR(49, 615, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_flag == (int)-1) && PyErr_Occurred())) __PYX_ERR(49, 615, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setErrorIfNotConverged", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 615, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_158setErrorIfNotConverged(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_158setErrorIfNotConverged(struct PyPetscSNESObject *__pyx_v_self, int __pyx_v_flag) { + PetscBool __pyx_v_ernc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setErrorIfNotConverged", 0); + + /* "petsc4py/PETSc/SNES.pyx":616 + * + * def setErrorIfNotConverged(self, bint flag): + * cdef PetscBool ernc = PETSC_FALSE # <<<<<<<<<<<<<< + * if flag: ernc = PETSC_TRUE + * CHKERR( SNESSetErrorIfNotConverged(self.snes, ernc) ) + */ + __pyx_v_ernc = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":617 + * def setErrorIfNotConverged(self, bint flag): + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE # <<<<<<<<<<<<<< + * CHKERR( SNESSetErrorIfNotConverged(self.snes, ernc) ) + * + */ + __pyx_t_1 = (__pyx_v_flag != 0); + if (__pyx_t_1) { + __pyx_v_ernc = PETSC_TRUE; + } + + /* "petsc4py/PETSc/SNES.pyx":618 + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + * CHKERR( SNESSetErrorIfNotConverged(self.snes, ernc) ) # <<<<<<<<<<<<<< + * + * def getErrorIfNotConverged(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetErrorIfNotConverged(__pyx_v_self->snes, __pyx_v_ernc)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 618, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":615 + * return reason + * + * def setErrorIfNotConverged(self, bint flag): # <<<<<<<<<<<<<< + * cdef PetscBool ernc = PETSC_FALSE + * if flag: ernc = PETSC_TRUE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":620 + * CHKERR( SNESSetErrorIfNotConverged(self.snes, ernc) ) + * + * def getErrorIfNotConverged(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetErrorIfNotConverged(self.snes, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_161getErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_160getErrorIfNotConverged[] = "SNES.getErrorIfNotConverged(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_161getErrorIfNotConverged(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getErrorIfNotConverged (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getErrorIfNotConverged", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getErrorIfNotConverged", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_160getErrorIfNotConverged(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_160getErrorIfNotConverged(struct PyPetscSNESObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getErrorIfNotConverged", 0); + + /* "petsc4py/PETSc/SNES.pyx":621 + * + * def getErrorIfNotConverged(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( SNESGetErrorIfNotConverged(self.snes, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":622 + * def getErrorIfNotConverged(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetErrorIfNotConverged(self.snes, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetErrorIfNotConverged(__pyx_v_self->snes, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 622, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":623 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetErrorIfNotConverged(self.snes, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setIterationNumber(self, its): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":620 + * CHKERR( SNESSetErrorIfNotConverged(self.snes, ernc) ) + * + * def getErrorIfNotConverged(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetErrorIfNotConverged(self.snes, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getErrorIfNotConverged", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":625 + * return toBool(flag) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_163setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_162setIterationNumber[] = "SNES.setIterationNumber(self, its)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_163setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIterationNumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIterationNumber") < 0)) __PYX_ERR(49, 625, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_its = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIterationNumber", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 625, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_162setIterationNumber(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_its); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_162setIterationNumber(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_its) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIterationNumber", 0); + + /* "petsc4py/PETSc/SNES.pyx":626 + * + * def setIterationNumber(self, its): + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 626, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":627 + * def setIterationNumber(self, its): + * cdef PetscInt ival = asInt(its) + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) # <<<<<<<<<<<<<< + * + * def getIterationNumber(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetIterationNumber(__pyx_v_self->snes, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 627, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":625 + * return toBool(flag) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(its) + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":629 + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetIterationNumber(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_165getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_164getIterationNumber[] = "SNES.getIterationNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_165getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIterationNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIterationNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIterationNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_164getIterationNumber(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_164getIterationNumber(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIterationNumber", 0); + + /* "petsc4py/PETSc/SNES.pyx":630 + * + * def getIterationNumber(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetIterationNumber(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":631 + * def getIterationNumber(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetIterationNumber(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetIterationNumber(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 631, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":632 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetIterationNumber(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setForceIteration(self, force): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":629 + * CHKERR( SNESSetIterationNumber(self.snes, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetIterationNumber(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":634 + * return toInt(ival) + * + * def setForceIteration(self, force): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(force) + * CHKERR( SNESSetForceIteration(self.snes, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_167setForceIteration(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_166setForceIteration[] = "SNES.setForceIteration(self, force)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_167setForceIteration(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_force = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setForceIteration (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_force,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_force)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setForceIteration") < 0)) __PYX_ERR(49, 634, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_force = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setForceIteration", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 634, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setForceIteration", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_166setForceIteration(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_force); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_166setForceIteration(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_force) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setForceIteration", 0); + + /* "petsc4py/PETSc/SNES.pyx":635 + * + * def setForceIteration(self, force): + * cdef PetscBool bval = asBool(force) # <<<<<<<<<<<<<< + * CHKERR( SNESSetForceIteration(self.snes, bval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_force); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(49, 635, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":636 + * def setForceIteration(self, force): + * cdef PetscBool bval = asBool(force) + * CHKERR( SNESSetForceIteration(self.snes, bval) ) # <<<<<<<<<<<<<< + * + * def setFunctionNorm(self, norm): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetForceIteration(__pyx_v_self->snes, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 636, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":634 + * return toInt(ival) + * + * def setForceIteration(self, force): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(force) + * CHKERR( SNESSetForceIteration(self.snes, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setForceIteration", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":638 + * CHKERR( SNESSetForceIteration(self.snes, bval) ) + * + * def setFunctionNorm(self, norm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(norm) + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_169setFunctionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_168setFunctionNorm[] = "SNES.setFunctionNorm(self, norm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_169setFunctionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_norm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFunctionNorm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_norm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_norm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFunctionNorm") < 0)) __PYX_ERR(49, 638, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_norm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFunctionNorm", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 638, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFunctionNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_168setFunctionNorm(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_norm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_168setFunctionNorm(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_norm) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFunctionNorm", 0); + + /* "petsc4py/PETSc/SNES.pyx":639 + * + * def setFunctionNorm(self, norm): + * cdef PetscReal rval = asReal(norm) # <<<<<<<<<<<<<< + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_norm); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 639, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":640 + * def setFunctionNorm(self, norm): + * cdef PetscReal rval = asReal(norm) + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) # <<<<<<<<<<<<<< + * + * def getFunctionNorm(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetFunctionNorm(__pyx_v_self->snes, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 640, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":638 + * CHKERR( SNESSetForceIteration(self.snes, bval) ) + * + * def setFunctionNorm(self, norm): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(norm) + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setFunctionNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":642 + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) + * + * def getFunctionNorm(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( SNESGetFunctionNorm(self.snes, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_171getFunctionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_170getFunctionNorm[] = "SNES.getFunctionNorm(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_171getFunctionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFunctionNorm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getFunctionNorm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getFunctionNorm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_170getFunctionNorm(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_170getFunctionNorm(struct PyPetscSNESObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFunctionNorm", 0); + + /* "petsc4py/PETSc/SNES.pyx":643 + * + * def getFunctionNorm(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetFunctionNorm(self.snes, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":644 + * def getFunctionNorm(self): + * cdef PetscReal rval = 0 + * CHKERR( SNESGetFunctionNorm(self.snes, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetFunctionNorm(__pyx_v_self->snes, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 644, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":645 + * cdef PetscReal rval = 0 + * CHKERR( SNESGetFunctionNorm(self.snes, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getLinearSolveIterations(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 645, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":642 + * CHKERR( SNESSetFunctionNorm(self.snes, rval) ) + * + * def getFunctionNorm(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( SNESGetFunctionNorm(self.snes, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getFunctionNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":647 + * return toReal(rval) + * + * def getLinearSolveIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveIterations(self.snes, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_173getLinearSolveIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_172getLinearSolveIterations[] = "SNES.getLinearSolveIterations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_173getLinearSolveIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLinearSolveIterations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLinearSolveIterations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLinearSolveIterations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_172getLinearSolveIterations(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_172getLinearSolveIterations(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLinearSolveIterations", 0); + + /* "petsc4py/PETSc/SNES.pyx":648 + * + * def getLinearSolveIterations(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetLinearSolveIterations(self.snes, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/SNES.pyx":649 + * def getLinearSolveIterations(self): + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveIterations(self.snes, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLinearSolveIterations(__pyx_v_self->snes, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 649, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":650 + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveIterations(self.snes, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getRhs(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":647 + * return toReal(rval) + * + * def getLinearSolveIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( SNESGetLinearSolveIterations(self.snes, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getLinearSolveIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":652 + * return toInt(ival) + * + * def getRhs(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_175getRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_174getRhs[] = "SNES.getRhs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_175getRhs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRhs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRhs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRhs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_174getRhs(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_174getRhs(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRhs", 0); + + /* "petsc4py/PETSc/SNES.pyx":653 + * + * def getRhs(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":654 + * def getRhs(self): + * cdef Vec vec = Vec() + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetRhs(__pyx_v_self->snes, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 654, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":655 + * cdef Vec vec = Vec() + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":656 + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * def getSolution(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":652 + * return toInt(ival) + * + * def getRhs(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetRhs(self.snes, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getRhs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":658 + * return vec + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_177getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_176getSolution[] = "SNES.getSolution(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_177getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolution (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolution", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolution", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_176getSolution(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_176getSolution(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolution", 0); + + /* "petsc4py/PETSc/SNES.pyx":659 + * + * def getSolution(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":660 + * def getSolution(self): + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetSolution(__pyx_v_self->snes, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 660, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":661 + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":662 + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * def setSolution(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":658 + * return vec + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolution(self.snes, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":664 + * return vec + * + * def setSolution(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( SNESSetSolution(self.snes, vec.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_179setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_178setSolution[] = "SNES.setSolution(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_179setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSolution (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSolution") < 0)) __PYX_ERR(49, 664, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSolution", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 664, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(49, 664, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_178setSolution(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_178setSolution(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSolution", 0); + + /* "petsc4py/PETSc/SNES.pyx":665 + * + * def setSolution(self, Vec vec): + * CHKERR( SNESSetSolution(self.snes, vec.vec) ) # <<<<<<<<<<<<<< + * + * def getSolutionUpdate(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetSolution(__pyx_v_self->snes, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 665, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":664 + * return vec + * + * def setSolution(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( SNESSetSolution(self.snes, vec.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":667 + * CHKERR( SNESSetSolution(self.snes, vec.vec) ) + * + * def getSolutionUpdate(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_181getSolutionUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_180getSolutionUpdate[] = "SNES.getSolutionUpdate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_181getSolutionUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolutionUpdate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolutionUpdate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolutionUpdate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_180getSolutionUpdate(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_180getSolutionUpdate(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolutionUpdate", 0); + + /* "petsc4py/PETSc/SNES.pyx":668 + * + * def getSolutionUpdate(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 668, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":669 + * def getSolutionUpdate(self): + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetSolutionUpdate(__pyx_v_self->snes, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 669, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":670 + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":671 + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * # --- linear solver --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":667 + * CHKERR( SNESSetSolution(self.snes, vec.vec) ) + * + * def getSolutionUpdate(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( SNESGetSolutionUpdate(self.snes, &vec.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getSolutionUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":675 + * # --- linear solver --- + * + * def setKSP(self, KSP ksp): # <<<<<<<<<<<<<< + * CHKERR( SNESSetKSP(self.snes, ksp.ksp) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_183setKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_182setKSP[] = "SNES.setKSP(self, KSP ksp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_183setKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setKSP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ksp,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ksp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setKSP") < 0)) __PYX_ERR(49, 675, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ksp = ((struct PyPetscKSPObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setKSP", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 675, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ksp), __pyx_ptype_8petsc4py_5PETSc_KSP, 0, "ksp", 0))) __PYX_ERR(49, 675, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_182setKSP(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_ksp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_182setKSP(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscKSPObject *__pyx_v_ksp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setKSP", 0); + + /* "petsc4py/PETSc/SNES.pyx":676 + * + * def setKSP(self, KSP ksp): + * CHKERR( SNESSetKSP(self.snes, ksp.ksp) ) # <<<<<<<<<<<<<< + * + * def getKSP(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetKSP(__pyx_v_self->snes, __pyx_v_ksp->ksp)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 676, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":675 + * # --- linear solver --- + * + * def setKSP(self, KSP ksp): # <<<<<<<<<<<<<< + * CHKERR( SNESSetKSP(self.snes, ksp.ksp) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":678 + * CHKERR( SNESSetKSP(self.snes, ksp.ksp) ) + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_185getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_184getKSP[] = "SNES.getKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_185getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_184getKSP(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_184getKSP(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSP", 0); + + /* "petsc4py/PETSc/SNES.pyx":679 + * + * def getKSP(self): + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":680 + * def getKSP(self): + * cdef KSP ksp = KSP() + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetKSP(__pyx_v_self->snes, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 680, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":681 + * cdef KSP ksp = KSP() + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":682 + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def setUseEW(self, flag=True, *targs, **kargs): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":678 + * CHKERR( SNESSetKSP(self.snes, ksp.ksp) ) + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( SNESGetKSP(self.snes, &ksp.ksp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":684 + * return ksp + * + * def setUseEW(self, flag=True, *targs, **kargs): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESKSPSetUseEW(self.snes, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_187setUseEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_186setUseEW[] = "SNES.setUseEW(self, flag=True, *targs, **kargs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_187setUseEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + PyObject *__pyx_v_targs = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUseEW (wrapper)", 0); + __pyx_v_kargs = PyDict_New(); if (unlikely(!__pyx_v_kargs)) return NULL; + __Pyx_GOTREF(__pyx_v_kargs); + if (PyTuple_GET_SIZE(__pyx_args) > 1) { + __pyx_v_targs = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); + if (unlikely(!__pyx_v_targs)) { + __Pyx_DECREF(__pyx_v_kargs); __pyx_v_kargs = 0; + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_targs); + } else { + __pyx_v_targs = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); + } + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + default: + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kargs, values, used_pos_args, "setUseEW") < 0)) __PYX_ERR(49, 684, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + default: + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + } + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_targs); __pyx_v_targs = 0; + __Pyx_DECREF(__pyx_v_kargs); __pyx_v_kargs = 0; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_186setUseEW(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_flag, __pyx_v_targs, __pyx_v_kargs); + + /* function exit code */ + __Pyx_XDECREF(__pyx_v_targs); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_186setUseEW(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag, PyObject *__pyx_v_targs, PyObject *__pyx_v_kargs) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUseEW", 0); + + /* "petsc4py/PETSc/SNES.pyx":685 + * + * def setUseEW(self, flag=True, *targs, **kargs): + * cdef PetscBool bval = flag # <<<<<<<<<<<<<< + * CHKERR( SNESKSPSetUseEW(self.snes, bval) ) + * if targs or kargs: self.setParamsEW(*targs, **kargs) + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 685, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":686 + * def setUseEW(self, flag=True, *targs, **kargs): + * cdef PetscBool bval = flag + * CHKERR( SNESKSPSetUseEW(self.snes, bval) ) # <<<<<<<<<<<<<< + * if targs or kargs: self.setParamsEW(*targs, **kargs) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESKSPSetUseEW(__pyx_v_self->snes, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 686, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":687 + * cdef PetscBool bval = flag + * CHKERR( SNESKSPSetUseEW(self.snes, bval) ) + * if targs or kargs: self.setParamsEW(*targs, **kargs) # <<<<<<<<<<<<<< + * + * def getUseEW(self): + */ + __pyx_t_4 = (PyTuple_GET_SIZE(__pyx_v_targs) != 0); + if (!__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(49, 687, __pyx_L1_error) + __pyx_t_3 = __pyx_t_4; + __pyx_L4_bool_binop_done:; + if (__pyx_t_3) { + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setParamsEW); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyDict_Copy(__pyx_v_kargs); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_v_targs, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(49, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":684 + * return ksp + * + * def setUseEW(self, flag=True, *targs, **kargs): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESKSPSetUseEW(self.snes, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":689 + * if targs or kargs: self.setParamsEW(*targs, **kargs) + * + * def getUseEW(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESKSPGetUseEW(self.snes, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_189getUseEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_188getUseEW[] = "SNES.getUseEW(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_189getUseEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUseEW (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUseEW", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUseEW", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_188getUseEW(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_188getUseEW(struct PyPetscSNESObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUseEW", 0); + + /* "petsc4py/PETSc/SNES.pyx":690 + * + * def getUseEW(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( SNESKSPGetUseEW(self.snes, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":691 + * def getUseEW(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESKSPGetUseEW(self.snes, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESKSPGetUseEW(__pyx_v_self->snes, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 691, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":692 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESKSPGetUseEW(self.snes, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setParamsEW(self, version=None, + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":689 + * if targs or kargs: self.setParamsEW(*targs, **kargs) + * + * def getUseEW(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESKSPGetUseEW(self.snes, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getUseEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":694 + * return toBool(flag) + * + * def setParamsEW(self, version=None, # <<<<<<<<<<<<<< + * rtol_0=None, rtol_max=None, + * gamma=None, alpha=None, alpha2=None, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_191setParamsEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_190setParamsEW[] = "SNES.setParamsEW(self, version=None, rtol_0=None, rtol_max=None, gamma=None, alpha=None, alpha2=None, threshold=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_191setParamsEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_version = 0; + PyObject *__pyx_v_rtol_0 = 0; + PyObject *__pyx_v_rtol_max = 0; + PyObject *__pyx_v_gamma = 0; + PyObject *__pyx_v_alpha = 0; + PyObject *__pyx_v_alpha2 = 0; + PyObject *__pyx_v_threshold = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setParamsEW (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_version,&__pyx_n_s_rtol_0,&__pyx_n_s_rtol_max,&__pyx_n_s_gamma,&__pyx_n_s_alpha,&__pyx_n_s_alpha2,&__pyx_n_s_threshold,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/SNES.pyx":695 + * + * def setParamsEW(self, version=None, + * rtol_0=None, rtol_max=None, # <<<<<<<<<<<<<< + * gamma=None, alpha=None, alpha2=None, + * threshold=None): + */ + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/SNES.pyx":696 + * def setParamsEW(self, version=None, + * rtol_0=None, rtol_max=None, + * gamma=None, alpha=None, alpha2=None, # <<<<<<<<<<<<<< + * threshold=None): + * cdef PetscInt cversion = PETSC_DEFAULT + */ + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/SNES.pyx":697 + * rtol_0=None, rtol_max=None, + * gamma=None, alpha=None, alpha2=None, + * threshold=None): # <<<<<<<<<<<<<< + * cdef PetscInt cversion = PETSC_DEFAULT + * cdef PetscReal crtol_0 = PETSC_DEFAULT + */ + values[6] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_version); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol_0); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol_max); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gamma); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha2); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_threshold); + if (value) { values[6] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setParamsEW") < 0)) __PYX_ERR(49, 694, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_version = values[0]; + __pyx_v_rtol_0 = values[1]; + __pyx_v_rtol_max = values[2]; + __pyx_v_gamma = values[3]; + __pyx_v_alpha = values[4]; + __pyx_v_alpha2 = values[5]; + __pyx_v_threshold = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setParamsEW", 0, 0, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 694, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setParamsEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_190setParamsEW(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_version, __pyx_v_rtol_0, __pyx_v_rtol_max, __pyx_v_gamma, __pyx_v_alpha, __pyx_v_alpha2, __pyx_v_threshold); + + /* "petsc4py/PETSc/SNES.pyx":694 + * return toBool(flag) + * + * def setParamsEW(self, version=None, # <<<<<<<<<<<<<< + * rtol_0=None, rtol_max=None, + * gamma=None, alpha=None, alpha2=None, + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_190setParamsEW(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_version, PyObject *__pyx_v_rtol_0, PyObject *__pyx_v_rtol_max, PyObject *__pyx_v_gamma, PyObject *__pyx_v_alpha, PyObject *__pyx_v_alpha2, PyObject *__pyx_v_threshold) { + PetscInt __pyx_v_cversion; + PetscReal __pyx_v_crtol_0; + PetscReal __pyx_v_crtol_max; + PetscReal __pyx_v_cgamma; + PetscReal __pyx_v_calpha; + PetscReal __pyx_v_calpha2; + PetscReal __pyx_v_cthreshold; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setParamsEW", 0); + + /* "petsc4py/PETSc/SNES.pyx":698 + * gamma=None, alpha=None, alpha2=None, + * threshold=None): + * cdef PetscInt cversion = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal crtol_0 = PETSC_DEFAULT + * cdef PetscReal crtol_max = PETSC_DEFAULT + */ + __pyx_v_cversion = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":699 + * threshold=None): + * cdef PetscInt cversion = PETSC_DEFAULT + * cdef PetscReal crtol_0 = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal crtol_max = PETSC_DEFAULT + * cdef PetscReal cgamma = PETSC_DEFAULT + */ + __pyx_v_crtol_0 = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":700 + * cdef PetscInt cversion = PETSC_DEFAULT + * cdef PetscReal crtol_0 = PETSC_DEFAULT + * cdef PetscReal crtol_max = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal cgamma = PETSC_DEFAULT + * cdef PetscReal calpha = PETSC_DEFAULT + */ + __pyx_v_crtol_max = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":701 + * cdef PetscReal crtol_0 = PETSC_DEFAULT + * cdef PetscReal crtol_max = PETSC_DEFAULT + * cdef PetscReal cgamma = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal calpha = PETSC_DEFAULT + * cdef PetscReal calpha2 = PETSC_DEFAULT + */ + __pyx_v_cgamma = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":702 + * cdef PetscReal crtol_max = PETSC_DEFAULT + * cdef PetscReal cgamma = PETSC_DEFAULT + * cdef PetscReal calpha = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal calpha2 = PETSC_DEFAULT + * cdef PetscReal cthreshold = PETSC_DEFAULT + */ + __pyx_v_calpha = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":703 + * cdef PetscReal cgamma = PETSC_DEFAULT + * cdef PetscReal calpha = PETSC_DEFAULT + * cdef PetscReal calpha2 = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal cthreshold = PETSC_DEFAULT + * if version is not None: cversion = asInt(version) + */ + __pyx_v_calpha2 = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":704 + * cdef PetscReal calpha = PETSC_DEFAULT + * cdef PetscReal calpha2 = PETSC_DEFAULT + * cdef PetscReal cthreshold = PETSC_DEFAULT # <<<<<<<<<<<<<< + * if version is not None: cversion = asInt(version) + * if rtol_0 is not None: crtol_0 = asReal(rtol_0) + */ + __pyx_v_cthreshold = PETSC_DEFAULT; + + /* "petsc4py/PETSc/SNES.pyx":705 + * cdef PetscReal calpha2 = PETSC_DEFAULT + * cdef PetscReal cthreshold = PETSC_DEFAULT + * if version is not None: cversion = asInt(version) # <<<<<<<<<<<<<< + * if rtol_0 is not None: crtol_0 = asReal(rtol_0) + * if rtol_max is not None: crtol_max = asReal(rtol_max) + */ + __pyx_t_1 = (__pyx_v_version != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_version); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 705, __pyx_L1_error) + __pyx_v_cversion = __pyx_t_3; + } + + /* "petsc4py/PETSc/SNES.pyx":706 + * cdef PetscReal cthreshold = PETSC_DEFAULT + * if version is not None: cversion = asInt(version) + * if rtol_0 is not None: crtol_0 = asReal(rtol_0) # <<<<<<<<<<<<<< + * if rtol_max is not None: crtol_max = asReal(rtol_max) + * if gamma is not None: cgamma = asReal(gamma) + */ + __pyx_t_2 = (__pyx_v_rtol_0 != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol_0); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 706, __pyx_L1_error) + __pyx_v_crtol_0 = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":707 + * if version is not None: cversion = asInt(version) + * if rtol_0 is not None: crtol_0 = asReal(rtol_0) + * if rtol_max is not None: crtol_max = asReal(rtol_max) # <<<<<<<<<<<<<< + * if gamma is not None: cgamma = asReal(gamma) + * if alpha is not None: calpha = asReal(alpha) + */ + __pyx_t_1 = (__pyx_v_rtol_max != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol_max); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 707, __pyx_L1_error) + __pyx_v_crtol_max = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":708 + * if rtol_0 is not None: crtol_0 = asReal(rtol_0) + * if rtol_max is not None: crtol_max = asReal(rtol_max) + * if gamma is not None: cgamma = asReal(gamma) # <<<<<<<<<<<<<< + * if alpha is not None: calpha = asReal(alpha) + * if alpha2 is not None: calpha2 = asReal(alpha2) + */ + __pyx_t_2 = (__pyx_v_gamma != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_gamma); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 708, __pyx_L1_error) + __pyx_v_cgamma = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":709 + * if rtol_max is not None: crtol_max = asReal(rtol_max) + * if gamma is not None: cgamma = asReal(gamma) + * if alpha is not None: calpha = asReal(alpha) # <<<<<<<<<<<<<< + * if alpha2 is not None: calpha2 = asReal(alpha2) + * if threshold is not None: cthreshold = asReal(threshold) + */ + __pyx_t_1 = (__pyx_v_alpha != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_alpha); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 709, __pyx_L1_error) + __pyx_v_calpha = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":710 + * if gamma is not None: cgamma = asReal(gamma) + * if alpha is not None: calpha = asReal(alpha) + * if alpha2 is not None: calpha2 = asReal(alpha2) # <<<<<<<<<<<<<< + * if threshold is not None: cthreshold = asReal(threshold) + * CHKERR( SNESKSPSetParametersEW( + */ + __pyx_t_2 = (__pyx_v_alpha2 != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_alpha2); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 710, __pyx_L1_error) + __pyx_v_calpha2 = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":711 + * if alpha is not None: calpha = asReal(alpha) + * if alpha2 is not None: calpha2 = asReal(alpha2) + * if threshold is not None: cthreshold = asReal(threshold) # <<<<<<<<<<<<<< + * CHKERR( SNESKSPSetParametersEW( + * self.snes, cversion, crtol_0, crtol_max, + */ + __pyx_t_1 = (__pyx_v_threshold != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_threshold); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(49, 711, __pyx_L1_error) + __pyx_v_cthreshold = __pyx_t_4; + } + + /* "petsc4py/PETSc/SNES.pyx":712 + * if alpha2 is not None: calpha2 = asReal(alpha2) + * if threshold is not None: cthreshold = asReal(threshold) + * CHKERR( SNESKSPSetParametersEW( # <<<<<<<<<<<<<< + * self.snes, cversion, crtol_0, crtol_max, + * cgamma, calpha, calpha2, cthreshold) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESKSPSetParametersEW(__pyx_v_self->snes, __pyx_v_cversion, __pyx_v_crtol_0, __pyx_v_crtol_max, __pyx_v_cgamma, __pyx_v_calpha, __pyx_v_calpha2, __pyx_v_cthreshold)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 712, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":694 + * return toBool(flag) + * + * def setParamsEW(self, version=None, # <<<<<<<<<<<<<< + * rtol_0=None, rtol_max=None, + * gamma=None, alpha=None, alpha2=None, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setParamsEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":716 + * cgamma, calpha, calpha2, cthreshold) ) + * + * def getParamsEW(self): # <<<<<<<<<<<<<< + * cdef PetscInt version=0 + * cdef PetscReal rtol_0=0, rtol_max=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_193getParamsEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_192getParamsEW[] = "SNES.getParamsEW(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_193getParamsEW(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getParamsEW (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getParamsEW", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getParamsEW", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_192getParamsEW(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_192getParamsEW(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_version; + PetscReal __pyx_v_rtol_0; + PetscReal __pyx_v_rtol_max; + PetscReal __pyx_v_gamma; + PetscReal __pyx_v_alpha; + PetscReal __pyx_v_alpha2; + PetscReal __pyx_v_threshold; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getParamsEW", 0); + + /* "petsc4py/PETSc/SNES.pyx":717 + * + * def getParamsEW(self): + * cdef PetscInt version=0 # <<<<<<<<<<<<<< + * cdef PetscReal rtol_0=0, rtol_max=0 + * cdef PetscReal gamma=0, alpha=0, alpha2=0 + */ + __pyx_v_version = 0; + + /* "petsc4py/PETSc/SNES.pyx":718 + * def getParamsEW(self): + * cdef PetscInt version=0 + * cdef PetscReal rtol_0=0, rtol_max=0 # <<<<<<<<<<<<<< + * cdef PetscReal gamma=0, alpha=0, alpha2=0 + * cdef PetscReal threshold=0 + */ + __pyx_v_rtol_0 = 0.0; + __pyx_v_rtol_max = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":719 + * cdef PetscInt version=0 + * cdef PetscReal rtol_0=0, rtol_max=0 + * cdef PetscReal gamma=0, alpha=0, alpha2=0 # <<<<<<<<<<<<<< + * cdef PetscReal threshold=0 + * CHKERR( SNESKSPGetParametersEW( + */ + __pyx_v_gamma = 0.0; + __pyx_v_alpha = 0.0; + __pyx_v_alpha2 = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":720 + * cdef PetscReal rtol_0=0, rtol_max=0 + * cdef PetscReal gamma=0, alpha=0, alpha2=0 + * cdef PetscReal threshold=0 # <<<<<<<<<<<<<< + * CHKERR( SNESKSPGetParametersEW( + * self.snes, &version, &rtol_0, &rtol_max, + */ + __pyx_v_threshold = 0.0; + + /* "petsc4py/PETSc/SNES.pyx":721 + * cdef PetscReal gamma=0, alpha=0, alpha2=0 + * cdef PetscReal threshold=0 + * CHKERR( SNESKSPGetParametersEW( # <<<<<<<<<<<<<< + * self.snes, &version, &rtol_0, &rtol_max, + * &gamma, &alpha, &alpha2, &threshold) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESKSPGetParametersEW(__pyx_v_self->snes, (&__pyx_v_version), (&__pyx_v_rtol_0), (&__pyx_v_rtol_max), (&__pyx_v_gamma), (&__pyx_v_alpha), (&__pyx_v_alpha2), (&__pyx_v_threshold))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 721, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":724 + * self.snes, &version, &rtol_0, &rtol_max, + * &gamma, &alpha, &alpha2, &threshold) ) + * return {'version' : toInt(version), # <<<<<<<<<<<<<< + * 'rtol_0' : toReal(rtol_0), + * 'rtol_max' : toReal(rtol_max), + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_version); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_version, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":725 + * &gamma, &alpha, &alpha2, &threshold) ) + * return {'version' : toInt(version), + * 'rtol_0' : toReal(rtol_0), # <<<<<<<<<<<<<< + * 'rtol_max' : toReal(rtol_max), + * 'gamma' : toReal(gamma), + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rtol_0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rtol_0, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":726 + * return {'version' : toInt(version), + * 'rtol_0' : toReal(rtol_0), + * 'rtol_max' : toReal(rtol_max), # <<<<<<<<<<<<<< + * 'gamma' : toReal(gamma), + * 'alpha' : toReal(alpha), + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rtol_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rtol_max, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":727 + * 'rtol_0' : toReal(rtol_0), + * 'rtol_max' : toReal(rtol_max), + * 'gamma' : toReal(gamma), # <<<<<<<<<<<<<< + * 'alpha' : toReal(alpha), + * 'alpha2' : toReal(alpha2), + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_gamma); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_gamma, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":728 + * 'rtol_max' : toReal(rtol_max), + * 'gamma' : toReal(gamma), + * 'alpha' : toReal(alpha), # <<<<<<<<<<<<<< + * 'alpha2' : toReal(alpha2), + * 'threshold' : toReal(threshold),} + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_alpha); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_alpha, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":729 + * 'gamma' : toReal(gamma), + * 'alpha' : toReal(alpha), + * 'alpha2' : toReal(alpha2), # <<<<<<<<<<<<<< + * 'threshold' : toReal(threshold),} + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_alpha2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_alpha2, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":730 + * 'alpha' : toReal(alpha), + * 'alpha2' : toReal(alpha2), + * 'threshold' : toReal(threshold),} # <<<<<<<<<<<<<< + * + * # --- matrix free / finite differences --- + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_threshold); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_threshold, __pyx_t_3) < 0) __PYX_ERR(49, 724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":716 + * cgamma, calpha, calpha2, cthreshold) ) + * + * def getParamsEW(self): # <<<<<<<<<<<<<< + * cdef PetscInt version=0 + * cdef PetscReal rtol_0=0, rtol_max=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getParamsEW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":734 + * # --- matrix free / finite differences --- + * + * def setUseMF(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_195setUseMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_194setUseMF[] = "SNES.setUseMF(self, flag=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_195setUseMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUseMF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUseMF") < 0)) __PYX_ERR(49, 734, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUseMF", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 734, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_194setUseMF(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_194setUseMF(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUseMF", 0); + + /* "petsc4py/PETSc/SNES.pyx":735 + * + * def setUseMF(self, flag=True): + * cdef PetscBool bval = flag # <<<<<<<<<<<<<< + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 735, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":736 + * def setUseMF(self, flag=True): + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) # <<<<<<<<<<<<<< + * + * def getUseMF(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetUseMFFD(__pyx_v_self->snes, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 736, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":734 + * # --- matrix free / finite differences --- + * + * def setUseMF(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":738 + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) + * + * def getUseMF(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseMFFD(self.snes, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_197getUseMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_196getUseMF[] = "SNES.getUseMF(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_197getUseMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUseMF (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUseMF", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUseMF", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_196getUseMF(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_196getUseMF(struct PyPetscSNESObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUseMF", 0); + + /* "petsc4py/PETSc/SNES.pyx":739 + * + * def getUseMF(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( SNESGetUseMFFD(self.snes, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":740 + * def getUseMF(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseMFFD(self.snes, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetUseMFFD(__pyx_v_self->snes, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 740, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":741 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseMFFD(self.snes, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setUseFD(self, flag=True): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":738 + * CHKERR( SNESSetUseMFFD(self.snes, bval) ) + * + * def getUseMF(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseMFFD(self.snes, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getUseMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":743 + * return toBool(flag) + * + * def setUseFD(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_199setUseFD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_198setUseFD[] = "SNES.setUseFD(self, flag=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_199setUseFD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUseFD (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUseFD") < 0)) __PYX_ERR(49, 743, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUseFD", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 743, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseFD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_198setUseFD(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_198setUseFD(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUseFD", 0); + + /* "petsc4py/PETSc/SNES.pyx":744 + * + * def setUseFD(self, flag=True): + * cdef PetscBool bval = flag # <<<<<<<<<<<<<< + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 744, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":745 + * def setUseFD(self, flag=True): + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) # <<<<<<<<<<<<<< + * + * def getUseFD(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetUseFDColoring(__pyx_v_self->snes, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 745, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":743 + * return toBool(flag) + * + * def setUseFD(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setUseFD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":747 + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) + * + * def getUseFD(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseFDColoring(self.snes, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_201getUseFD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_200getUseFD[] = "SNES.getUseFD(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_201getUseFD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUseFD (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUseFD", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUseFD", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_200getUseFD(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_200getUseFD(struct PyPetscSNESObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUseFD", 0); + + /* "petsc4py/PETSc/SNES.pyx":748 + * + * def getUseFD(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( SNESGetUseFDColoring(self.snes, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/SNES.pyx":749 + * def getUseFD(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseFDColoring(self.snes, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetUseFDColoring(__pyx_v_self->snes, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 749, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":750 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseFDColoring(self.snes, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * # --- VI --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":747 + * CHKERR( SNESSetUseFDColoring(self.snes, bval) ) + * + * def getUseFD(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( SNESGetUseFDColoring(self.snes, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getUseFD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":754 + * # --- VI --- + * + * def setVariableBounds(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * CHKERR( SNESVISetVariableBounds(self.snes, xl.vec, xu.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_203setVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_202setVariableBounds[] = "SNES.setVariableBounds(self, Vec xl, Vec xu)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_203setVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVariableBounds (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xl,&__pyx_n_s_xu,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xu)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setVariableBounds", 1, 2, 2, 1); __PYX_ERR(49, 754, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableBounds") < 0)) __PYX_ERR(49, 754, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_xl = ((struct PyPetscVecObject *)values[0]); + __pyx_v_xu = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVariableBounds", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 754, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xl", 0))) __PYX_ERR(49, 754, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xu), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xu", 0))) __PYX_ERR(49, 754, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_202setVariableBounds(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_xl, __pyx_v_xu); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_202setVariableBounds(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVariableBounds", 0); + + /* "petsc4py/PETSc/SNES.pyx":755 + * + * def setVariableBounds(self, Vec xl, Vec xu): + * CHKERR( SNESVISetVariableBounds(self.snes, xl.vec, xu.vec) ) # <<<<<<<<<<<<<< + * + * def getVIInactiveSet(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESVISetVariableBounds(__pyx_v_self->snes, __pyx_v_xl->vec, __pyx_v_xu->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 755, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":754 + * # --- VI --- + * + * def setVariableBounds(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * CHKERR( SNESVISetVariableBounds(self.snes, xl.vec, xu.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":757 + * CHKERR( SNESVISetVariableBounds(self.snes, xl.vec, xu.vec) ) + * + * def getVIInactiveSet(self): # <<<<<<<<<<<<<< + * cdef IS inact = IS() + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_205getVIInactiveSet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_204getVIInactiveSet[] = "SNES.getVIInactiveSet(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_205getVIInactiveSet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVIInactiveSet (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVIInactiveSet", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVIInactiveSet", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_204getVIInactiveSet(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_204getVIInactiveSet(struct PyPetscSNESObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_inact = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVIInactiveSet", 0); + + /* "petsc4py/PETSc/SNES.pyx":758 + * + * def getVIInactiveSet(self): + * cdef IS inact = IS() # <<<<<<<<<<<<<< + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) + * PetscINCREF(inact.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 758, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_inact = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":759 + * def getVIInactiveSet(self): + * cdef IS inact = IS() + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) # <<<<<<<<<<<<<< + * PetscINCREF(inact.obj) + * return inact + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESVIGetInactiveSet(__pyx_v_self->snes, (&__pyx_v_inact->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 759, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":760 + * cdef IS inact = IS() + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) + * PetscINCREF(inact.obj) # <<<<<<<<<<<<<< + * return inact + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_inact->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":761 + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) + * PetscINCREF(inact.obj) + * return inact # <<<<<<<<<<<<<< + * + * # --- Python --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_inact)); + __pyx_r = ((PyObject *)__pyx_v_inact); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":757 + * CHKERR( SNESVISetVariableBounds(self.snes, xl.vec, xu.vec) ) + * + * def getVIInactiveSet(self): # <<<<<<<<<<<<<< + * cdef IS inact = IS() + * CHKERR( SNESVIGetInactiveSet(self.snes, &inact.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getVIInactiveSet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_inact); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":765 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_207createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_206createPython[] = "SNES.createPython(self, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_207createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(49, 765, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_context = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 765, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_206createPython(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_206createPython(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + SNES __pyx_v_newsnes; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/SNES.pyx":766 + * + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 766, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":767 + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes + */ + __pyx_v_newsnes = NULL; + + /* "petsc4py/PETSc/SNES.pyx":768 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.snes = newsnes + * CHKERR( SNESSetType(self.snes, SNESPYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESCreate(__pyx_v_ccomm, (&__pyx_v_newsnes))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 768, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":769 + * cdef PetscSNES newsnes = NULL + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes # <<<<<<<<<<<<<< + * CHKERR( SNESSetType(self.snes, SNESPYTHON) ) + * CHKERR( SNESPythonSetContext(self.snes, context) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->snes = __pyx_v_newsnes; + + /* "petsc4py/PETSc/SNES.pyx":770 + * CHKERR( SNESCreate(ccomm, &newsnes) ) + * PetscCLEAR(self.obj); self.snes = newsnes + * CHKERR( SNESSetType(self.snes, SNESPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetType(__pyx_v_self->snes, SNESPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 770, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":771 + * PetscCLEAR(self.obj); self.snes = newsnes + * CHKERR( SNESSetType(self.snes, SNESPYTHON) ) + * CHKERR( SNESPythonSetContext(self.snes, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = SNESPythonSetContext(__pyx_v_self->snes, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 771, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 771, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":772 + * CHKERR( SNESSetType(self.snes, SNESPYTHON) ) + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":765 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSNES newsnes = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":774 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_209setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_208setPythonContext[] = "SNES.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_209setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(49, 774, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 774, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_208setPythonContext(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_208setPythonContext(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/SNES.pyx":775 + * + * def setPythonContext(self, context): + * CHKERR( SNESPythonSetContext(self.snes, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = SNESPythonSetContext(__pyx_v_self->snes, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 775, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 775, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":774 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":777 + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( SNESPythonGetContext(self.snes, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_211getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_210getPythonContext[] = "SNES.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_211getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_210getPythonContext(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_210getPythonContext(struct PyPetscSNESObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/SNES.pyx":778 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESPythonGetContext(self.snes, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/SNES.pyx":779 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( SNESPythonGetContext(self.snes, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = SNESPythonGetContext(__pyx_v_self->snes, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 779, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 779, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":780 + * cdef void *context = NULL + * CHKERR( SNESPythonGetContext(self.snes, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/SNES.pyx":781 + * CHKERR( SNESPythonGetContext(self.snes, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/SNES.pyx":777 + * CHKERR( SNESPythonSetContext(self.snes, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( SNESPythonGetContext(self.snes, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":783 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_213setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_212setPythonType[] = "SNES.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_213setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(49, 783, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 783, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_212setPythonType(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_212setPythonType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/SNES.pyx":784 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( SNESPythonSetType(self.snes, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":785 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetType(self.snes, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":786 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( SNESPythonSetType(self.snes, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPythonSetType(__pyx_v_self->snes, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 786, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":783 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":788 + * CHKERR( SNESPythonSetType(self.snes, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( SNESPythonGetType(self.snes, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_215getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_214getPythonType[] = "SNES.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_215getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_214getPythonType(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_214getPythonType(struct PyPetscSNESObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/SNES.pyx":789 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESPythonGetType(self.snes, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/SNES.pyx":790 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( SNESPythonGetType(self.snes, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPythonGetType(__pyx_v_self->snes, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 790, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":791 + * cdef const char *cval = NULL + * CHKERR( SNESPythonGetType(self.snes, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- Composite --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":788 + * CHKERR( SNESPythonSetType(self.snes, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( SNESPythonGetType(self.snes, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":795 + * # --- Composite --- + * + * def getCompositeSNES(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn + * cdef SNES snes = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_217getCompositeSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_216getCompositeSNES[] = "SNES.getCompositeSNES(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_217getCompositeSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCompositeSNES (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCompositeSNES") < 0)) __PYX_ERR(49, 795, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCompositeSNES", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 795, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getCompositeSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_216getCompositeSNES(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_216getCompositeSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_cn; + struct PyPetscSNESObject *__pyx_v_snes = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCompositeSNES", 0); + + /* "petsc4py/PETSc/SNES.pyx":797 + * def getCompositeSNES(self, n): + * cdef PetscInt cn + * cdef SNES snes = SNES() # <<<<<<<<<<<<<< + * cn = asInt(n) + * CHKERR( SNESCompositeGetSNES(self.snes, cn, &snes.snes) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":798 + * cdef PetscInt cn + * cdef SNES snes = SNES() + * cn = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( SNESCompositeGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 798, __pyx_L1_error) + __pyx_v_cn = __pyx_t_2; + + /* "petsc4py/PETSc/SNES.pyx":799 + * cdef SNES snes = SNES() + * cn = asInt(n) + * CHKERR( SNESCompositeGetSNES(self.snes, cn, &snes.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(snes.obj) + * return snes + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESCompositeGetSNES(__pyx_v_self->snes, __pyx_v_cn, (&__pyx_v_snes->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 799, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":800 + * cn = asInt(n) + * CHKERR( SNESCompositeGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) # <<<<<<<<<<<<<< + * return snes + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_snes->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":801 + * CHKERR( SNESCompositeGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) + * return snes # <<<<<<<<<<<<<< + * + * def getCompositeNumber(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_snes)); + __pyx_r = ((PyObject *)__pyx_v_snes); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":795 + * # --- Composite --- + * + * def getCompositeSNES(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn + * cdef SNES snes = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getCompositeSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_snes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":803 + * return snes + * + * def getCompositeNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt cn = 0 + * CHKERR( SNESCompositeGetNumber(self.snes, &cn) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_219getCompositeNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_218getCompositeNumber[] = "SNES.getCompositeNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_219getCompositeNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCompositeNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCompositeNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCompositeNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_218getCompositeNumber(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_218getCompositeNumber(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_cn; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCompositeNumber", 0); + + /* "petsc4py/PETSc/SNES.pyx":804 + * + * def getCompositeNumber(self): + * cdef PetscInt cn = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESCompositeGetNumber(self.snes, &cn) ) + * return toInt(cn) + */ + __pyx_v_cn = 0; + + /* "petsc4py/PETSc/SNES.pyx":805 + * def getCompositeNumber(self): + * cdef PetscInt cn = 0 + * CHKERR( SNESCompositeGetNumber(self.snes, &cn) ) # <<<<<<<<<<<<<< + * return toInt(cn) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESCompositeGetNumber(__pyx_v_self->snes, (&__pyx_v_cn))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 805, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":806 + * cdef PetscInt cn = 0 + * CHKERR( SNESCompositeGetNumber(self.snes, &cn) ) + * return toInt(cn) # <<<<<<<<<<<<<< + * + * # --- NASM --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cn); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":803 + * return snes + * + * def getCompositeNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt cn = 0 + * CHKERR( SNESCompositeGetNumber(self.snes, &cn) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getCompositeNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":810 + * # --- NASM --- + * + * def getNASMSNES(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn = asInt(n) + * cdef SNES snes = SNES() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_221getNASMSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_220getNASMSNES[] = "SNES.getNASMSNES(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_221getNASMSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNASMSNES (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getNASMSNES") < 0)) __PYX_ERR(49, 810, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getNASMSNES", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 810, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNASMSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_220getNASMSNES(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_220getNASMSNES(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_cn; + struct PyPetscSNESObject *__pyx_v_snes = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNASMSNES", 0); + + /* "petsc4py/PETSc/SNES.pyx":811 + * + * def getNASMSNES(self, n): + * cdef PetscInt cn = asInt(n) # <<<<<<<<<<<<<< + * cdef SNES snes = SNES() + * CHKERR( SNESNASMGetSNES(self.snes, cn, &snes.snes) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 811, __pyx_L1_error) + __pyx_v_cn = __pyx_t_1; + + /* "petsc4py/PETSc/SNES.pyx":812 + * def getNASMSNES(self, n): + * cdef PetscInt cn = asInt(n) + * cdef SNES snes = SNES() # <<<<<<<<<<<<<< + * CHKERR( SNESNASMGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_snes = ((struct PyPetscSNESObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/SNES.pyx":813 + * cdef PetscInt cn = asInt(n) + * cdef SNES snes = SNES() + * CHKERR( SNESNASMGetSNES(self.snes, cn, &snes.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(snes.obj) + * return snes + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESNASMGetSNES(__pyx_v_self->snes, __pyx_v_cn, (&__pyx_v_snes->snes))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 813, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":814 + * cdef SNES snes = SNES() + * CHKERR( SNESNASMGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) # <<<<<<<<<<<<<< + * return snes + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_snes->__pyx_base.obj)); + + /* "petsc4py/PETSc/SNES.pyx":815 + * CHKERR( SNESNASMGetSNES(self.snes, cn, &snes.snes) ) + * PetscINCREF(snes.obj) + * return snes # <<<<<<<<<<<<<< + * + * def getNASMNumber(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_snes)); + __pyx_r = ((PyObject *)__pyx_v_snes); + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":810 + * # --- NASM --- + * + * def getNASMSNES(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn = asInt(n) + * cdef SNES snes = SNES() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNASMSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_snes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":817 + * return snes + * + * def getNASMNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt cn = 0 + * CHKERR( SNESNASMGetNumber(self.snes, &cn) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_223getNASMNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_222getNASMNumber[] = "SNES.getNASMNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_223getNASMNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNASMNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNASMNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNASMNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_222getNASMNumber(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_222getNASMNumber(struct PyPetscSNESObject *__pyx_v_self) { + PetscInt __pyx_v_cn; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNASMNumber", 0); + + /* "petsc4py/PETSc/SNES.pyx":818 + * + * def getNASMNumber(self): + * cdef PetscInt cn = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESNASMGetNumber(self.snes, &cn) ) + * return toInt(cn) + */ + __pyx_v_cn = 0; + + /* "petsc4py/PETSc/SNES.pyx":819 + * def getNASMNumber(self): + * cdef PetscInt cn = 0 + * CHKERR( SNESNASMGetNumber(self.snes, &cn) ) # <<<<<<<<<<<<<< + * return toInt(cn) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESNASMGetNumber(__pyx_v_self->snes, (&__pyx_v_cn))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 819, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":820 + * cdef PetscInt cn = 0 + * CHKERR( SNESNASMGetNumber(self.snes, &cn) ) + * return toInt(cn) # <<<<<<<<<<<<<< + * + * # --- Patch --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cn); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":817 + * return snes + * + * def getNASMNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt cn = 0 + * CHKERR( SNESNASMGetNumber(self.snes, &cn) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.getNASMNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":824 + * # --- Patch --- + * + * def setPatchCellNumbering(self, Section sec not None): # <<<<<<<<<<<<<< + * CHKERR( SNESPatchSetCellNumbering(self.snes, sec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_225setPatchCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_224setPatchCellNumbering[] = "SNES.setPatchCellNumbering(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_225setPatchCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchCellNumbering (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchCellNumbering") < 0)) __PYX_ERR(49, 824, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchCellNumbering", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 824, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchCellNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(49, 824, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_224setPatchCellNumbering(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_224setPatchCellNumbering(struct PyPetscSNESObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchCellNumbering", 0); + + /* "petsc4py/PETSc/SNES.pyx":825 + * + * def setPatchCellNumbering(self, Section sec not None): + * CHKERR( SNESPatchSetCellNumbering(self.snes, sec.sec) ) # <<<<<<<<<<<<<< + * + * def setPatchDiscretisationInfo(self, dms, bs, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPatchSetCellNumbering(__pyx_v_self->snes, __pyx_v_sec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 825, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":824 + * # --- Patch --- + * + * def setPatchCellNumbering(self, Section sec not None): # <<<<<<<<<<<<<< + * CHKERR( SNESPatchSetCellNumbering(self.snes, sec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchCellNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":827 + * CHKERR( SNESPatchSetCellNumbering(self.snes, sec.sec) ) + * + * def setPatchDiscretisationInfo(self, dms, bs, # <<<<<<<<<<<<<< + * cellNodeMaps, + * subspaceOffsets, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_227setPatchDiscretisationInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_226setPatchDiscretisationInfo[] = "SNES.setPatchDiscretisationInfo(self, dms, bs, cellNodeMaps, subspaceOffsets, ghostBcNodes, globalBcNodes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_227setPatchDiscretisationInfo(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dms = 0; + PyObject *__pyx_v_bs = 0; + PyObject *__pyx_v_cellNodeMaps = 0; + PyObject *__pyx_v_subspaceOffsets = 0; + PyObject *__pyx_v_ghostBcNodes = 0; + PyObject *__pyx_v_globalBcNodes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchDiscretisationInfo (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dms,&__pyx_n_s_bs,&__pyx_n_s_cellNodeMaps,&__pyx_n_s_subspaceOffsets,&__pyx_n_s_ghostBcNodes,&__pyx_n_s_globalBcNodes,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dms)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 1); __PYX_ERR(49, 827, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cellNodeMaps)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 2); __PYX_ERR(49, 827, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subspaceOffsets)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 3); __PYX_ERR(49, 827, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ghostBcNodes)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 4); __PYX_ERR(49, 827, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_globalBcNodes)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, 5); __PYX_ERR(49, 827, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchDiscretisationInfo") < 0)) __PYX_ERR(49, 827, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + } + __pyx_v_dms = values[0]; + __pyx_v_bs = values[1]; + __pyx_v_cellNodeMaps = values[2]; + __pyx_v_subspaceOffsets = values[3]; + __pyx_v_ghostBcNodes = values[4]; + __pyx_v_globalBcNodes = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchDiscretisationInfo", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 827, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchDiscretisationInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_226setPatchDiscretisationInfo(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_dms, __pyx_v_bs, __pyx_v_cellNodeMaps, __pyx_v_subspaceOffsets, __pyx_v_ghostBcNodes, __pyx_v_globalBcNodes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_226setPatchDiscretisationInfo(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_dms, PyObject *__pyx_v_bs, PyObject *__pyx_v_cellNodeMaps, PyObject *__pyx_v_subspaceOffsets, PyObject *__pyx_v_ghostBcNodes, PyObject *__pyx_v_globalBcNodes) { + PetscInt __pyx_v_numSubSpaces; + PetscInt __pyx_v_numGhostBcs; + PetscInt __pyx_v_numGlobalBcs; + PetscInt *__pyx_v_nodesPerCell; + PetscInt const **__pyx_v_ccellNodeMaps; + DM *__pyx_v_cdms; + PetscInt *__pyx_v_cbs; + PetscInt *__pyx_v_csubspaceOffsets; + PetscInt *__pyx_v_cghostBcNodes; + PetscInt *__pyx_v_cglobalBcNodes; + PetscInt __pyx_v_i; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PyObject *__pyx_v_nodes = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PetscInt __pyx_t_3; + PetscInt __pyx_t_4; + PetscInt __pyx_t_5; + DM __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *(*__pyx_t_10)(PyObject *); + PetscInt __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchDiscretisationInfo", 0); + __Pyx_INCREF(__pyx_v_bs); + __Pyx_INCREF(__pyx_v_subspaceOffsets); + __Pyx_INCREF(__pyx_v_ghostBcNodes); + __Pyx_INCREF(__pyx_v_globalBcNodes); + + /* "petsc4py/PETSc/SNES.pyx":832 + * ghostBcNodes, + * globalBcNodes): + * cdef PetscInt numSubSpaces = 0 # <<<<<<<<<<<<<< + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL + */ + __pyx_v_numSubSpaces = 0; + + /* "petsc4py/PETSc/SNES.pyx":833 + * globalBcNodes): + * cdef PetscInt numSubSpaces = 0 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL + */ + __pyx_v_numGhostBcs = 0; + __pyx_v_numGlobalBcs = 0; + + /* "petsc4py/PETSc/SNES.pyx":834 + * cdef PetscInt numSubSpaces = 0 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL # <<<<<<<<<<<<<< + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL + */ + __pyx_v_nodesPerCell = NULL; + + /* "petsc4py/PETSc/SNES.pyx":835 + * cdef PetscInt numGhostBcs = 0, numGlobalBcs = 0 + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL # <<<<<<<<<<<<<< + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL + */ + __pyx_v_ccellNodeMaps = NULL; + + /* "petsc4py/PETSc/SNES.pyx":836 + * cdef PetscInt *nodesPerCell = NULL + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL + */ + __pyx_v_cdms = NULL; + + /* "petsc4py/PETSc/SNES.pyx":837 + * cdef const PetscInt **ccellNodeMaps = NULL + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL + */ + __pyx_v_cbs = NULL; + + /* "petsc4py/PETSc/SNES.pyx":838 + * cdef PetscDM *cdms = NULL + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL + */ + __pyx_v_csubspaceOffsets = NULL; + + /* "petsc4py/PETSc/SNES.pyx":839 + * cdef PetscInt *cbs = NULL + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cglobalBcNodes = NULL + * cdef PetscInt i = 0 + */ + __pyx_v_cghostBcNodes = NULL; + + /* "petsc4py/PETSc/SNES.pyx":840 + * cdef PetscInt *csubspaceOffsets = NULL + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL # <<<<<<<<<<<<<< + * cdef PetscInt i = 0 + * + */ + __pyx_v_cglobalBcNodes = NULL; + + /* "petsc4py/PETSc/SNES.pyx":841 + * cdef PetscInt *cghostBcNodes = NULL + * cdef PetscInt *cglobalBcNodes = NULL + * cdef PetscInt i = 0 # <<<<<<<<<<<<<< + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/SNES.pyx":843 + * cdef PetscInt i = 0 + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) # <<<<<<<<<<<<<< + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_bs, (&__pyx_v_numSubSpaces), (&__pyx_v_cbs))); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_bs, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":844 + * + * bs = iarray_i(bs, &numSubSpaces, &cbs) + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) # <<<<<<<<<<<<<< + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_ghostBcNodes, (&__pyx_v_numGhostBcs), (&__pyx_v_cghostBcNodes))); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ghostBcNodes, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":845 + * bs = iarray_i(bs, &numSubSpaces, &cbs) + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) # <<<<<<<<<<<<<< + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_globalBcNodes, (&__pyx_v_numGlobalBcs), (&__pyx_v_cglobalBcNodes))); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_globalBcNodes, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":846 + * ghostBcNodes = iarray_i(ghostBcNodes, &numGhostBcs, &cghostBcNodes) + * globalBcNodes = iarray_i(globalBcNodes, &numGlobalBcs, &cglobalBcNodes) + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) # <<<<<<<<<<<<<< + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_subspaceOffsets, NULL, (&__pyx_v_csubspaceOffsets))); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_subspaceOffsets, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":848 + * subspaceOffsets = iarray_i(subspaceOffsets, NULL, &csubspaceOffsets) + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(PetscInt))), (&__pyx_v_nodesPerCell))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 848, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":849 + * + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(DM))), (&__pyx_v_cdms))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 849, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":850 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt), &nodesPerCell) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) # <<<<<<<<<<<<<< + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscMalloc((((size_t)__pyx_v_numSubSpaces) * (sizeof(PetscInt *))), (&__pyx_v_ccellNodeMaps))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 850, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":851 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscDM), &cdms) ) + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): # <<<<<<<<<<<<<< + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape + */ + __pyx_t_3 = __pyx_v_numSubSpaces; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "petsc4py/PETSc/SNES.pyx":852 + * CHKERR( PetscMalloc(numSubSpaces*sizeof(PetscInt*), &ccellNodeMaps) ) + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm # <<<<<<<<<<<<<< + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_dms, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 852, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(49, 852, __pyx_L1_error) + __pyx_t_6 = ((struct PyPetscDMObject *)__pyx_t_1)->dm; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_cdms[__pyx_v_i]) = __pyx_t_6; + + /* "petsc4py/PETSc/SNES.pyx":853 + * for i in range(numSubSpaces): + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape # <<<<<<<<<<<<<< + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + * nodesPerCell[i] = asInt(nodes) + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_asarray(__pyx_t_1)); if (unlikely(!__pyx_t_7)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_shape); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) { + PyObject* sequence = __pyx_t_1; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(49, 853, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_7 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(49, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext; + index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_7); + index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) __PYX_ERR(49, 853, __pyx_L1_error) + __pyx_t_10 = NULL; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(49, 853, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __Pyx_XDECREF_SET(__pyx_v__, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_XDECREF_SET(__pyx_v_nodes, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/SNES.pyx":854 + * cdms[i] = (dms[i]).dm + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) # <<<<<<<<<<<<<< + * nodesPerCell[i] = asInt(nodes) + * + */ + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_t_1, NULL, ((PetscInt **)(&(__pyx_v_ccellNodeMaps[__pyx_v_i]))))); if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_cellNodeMaps, __pyx_v_i, __pyx_t_8, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1) < 0)) __PYX_ERR(49, 854, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/SNES.pyx":855 + * _, nodes = asarray(cellNodeMaps[i]).shape + * cellNodeMaps[i] = iarray_i(cellNodeMaps[i], NULL, &(ccellNodeMaps[i])) + * nodesPerCell[i] = asInt(nodes) # <<<<<<<<<<<<<< + * + * # TODO: refactor on the PETSc side to take ISes? + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nodes); if (unlikely(__pyx_t_11 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(49, 855, __pyx_L1_error) + (__pyx_v_nodesPerCell[__pyx_v_i]) = __pyx_t_11; + } + + /* "petsc4py/PETSc/SNES.pyx":858 + * + * # TODO: refactor on the PETSc side to take ISes? + * CHKERR( SNESPatchSetDiscretisationInfo(self.snes, numSubSpaces, # <<<<<<<<<<<<<< + * cdms, cbs, nodesPerCell, + * ccellNodeMaps, csubspaceOffsets, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPatchSetDiscretisationInfo(__pyx_v_self->snes, __pyx_v_numSubSpaces, __pyx_v_cdms, __pyx_v_cbs, __pyx_v_nodesPerCell, __pyx_v_ccellNodeMaps, __pyx_v_csubspaceOffsets, __pyx_v_numGhostBcs, __pyx_v_cghostBcNodes, __pyx_v_numGlobalBcs, __pyx_v_cglobalBcNodes)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 858, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":863 + * numGhostBcs, cghostBcNodes, + * numGlobalBcs, cglobalBcNodes) ) + * CHKERR( PetscFree(nodesPerCell) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cdms) ) + * CHKERR( PetscFree(ccellNodeMaps) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_nodesPerCell)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 863, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":864 + * numGlobalBcs, cglobalBcNodes) ) + * CHKERR( PetscFree(nodesPerCell) ) + * CHKERR( PetscFree(cdms) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(ccellNodeMaps) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cdms)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 864, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":865 + * CHKERR( PetscFree(nodesPerCell) ) + * CHKERR( PetscFree(cdms) ) + * CHKERR( PetscFree(ccellNodeMaps) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_ccellNodeMaps)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 865, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":827 + * CHKERR( SNESPatchSetCellNumbering(self.snes, sec.sec) ) + * + * def setPatchDiscretisationInfo(self, dms, bs, # <<<<<<<<<<<<<< + * cellNodeMaps, + * subspaceOffsets, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchDiscretisationInfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XDECREF(__pyx_v_nodes); + __Pyx_XDECREF(__pyx_v_bs); + __Pyx_XDECREF(__pyx_v_subspaceOffsets); + __Pyx_XDECREF(__pyx_v_ghostBcNodes); + __Pyx_XDECREF(__pyx_v_globalBcNodes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":867 + * CHKERR( PetscFree(ccellNodeMaps) ) + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_229setPatchComputeOperator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_228setPatchComputeOperator[] = "SNES.setPatchComputeOperator(self, operator, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_229setPatchComputeOperator(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_operator = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeOperator (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operator,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operator)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeOperator") < 0)) __PYX_ERR(49, 867, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_operator = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeOperator", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 867, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchComputeOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_228setPatchComputeOperator(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_operator, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_228setPatchComputeOperator(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeOperator", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":868 + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":869 + * def setPatchComputeOperator(self, operator, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":870 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (operator, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_operator__", context) + * CHKERR( SNESPatchSetComputeOperator(self.snes, PCPatch_ComputeOperator, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operator); + __Pyx_GIVEREF(__pyx_v_operator); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":871 + * if kargs is None: kargs = {} + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) # <<<<<<<<<<<<<< + * CHKERR( SNESPatchSetComputeOperator(self.snes, PCPatch_ComputeOperator, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_operator__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":872 + * context = (operator, args, kargs) + * self.set_attr("__patch_compute_operator__", context) + * CHKERR( SNESPatchSetComputeOperator(self.snes, PCPatch_ComputeOperator, context) ) # <<<<<<<<<<<<<< + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPatchSetComputeOperator(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeOperator, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 872, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":867 + * CHKERR( PetscFree(ccellNodeMaps) ) + * + * def setPatchComputeOperator(self, operator, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchComputeOperator", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":874 + * CHKERR( SNESPatchSetComputeOperator(self.snes, PCPatch_ComputeOperator, context) ) + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_231setPatchComputeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_230setPatchComputeFunction[] = "SNES.setPatchComputeFunction(self, function, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_231setPatchComputeFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchComputeFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchComputeFunction") < 0)) __PYX_ERR(49, 874, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchComputeFunction", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 874, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchComputeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_230setPatchComputeFunction(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_function, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_230setPatchComputeFunction(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchComputeFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":875 + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":876 + * def setPatchComputeFunction(self, function, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":877 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__patch_compute_function__", context) + * CHKERR( SNESPatchSetComputeFunction(self.snes, PCPatch_ComputeFunction, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":878 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) # <<<<<<<<<<<<<< + * CHKERR( SNESPatchSetComputeFunction(self.snes, PCPatch_ComputeFunction, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_compute_function__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":879 + * context = (function, args, kargs) + * self.set_attr("__patch_compute_function__", context) + * CHKERR( SNESPatchSetComputeFunction(self.snes, PCPatch_ComputeFunction, context) ) # <<<<<<<<<<<<<< + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPatchSetComputeFunction(__pyx_v_self->snes, __pyx_f_8petsc4py_5PETSc_PCPatch_ComputeFunction, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 879, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":874 + * CHKERR( SNESPatchSetComputeOperator(self.snes, PCPatch_ComputeOperator, context) ) + * + * def setPatchComputeFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchComputeFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":881 + * CHKERR( SNESPatchSetComputeFunction(self.snes, PCPatch_ComputeFunction, context) ) + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_233setPatchConstructType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4SNES_232setPatchConstructType[] = "SNES.setPatchConstructType(self, typ, operator=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_233setPatchConstructType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_typ = 0; + PyObject *__pyx_v_operator = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPatchConstructType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_typ,&__pyx_n_s_operator,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_typ)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operator); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPatchConstructType") < 0)) __PYX_ERR(49, 881, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_typ = values[0]; + __pyx_v_operator = values[1]; + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPatchConstructType", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(49, 881, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchConstructType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_232setPatchConstructType(((struct PyPetscSNESObject *)__pyx_v_self), __pyx_v_typ, __pyx_v_operator, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_232setPatchConstructType(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_typ, PyObject *__pyx_v_operator, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PCPatchConstructType __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPatchConstructType", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/SNES.pyx":882 + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/SNES.pyx":883 + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/SNES.pyx":885 + * if kargs is None: kargs = {} + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + */ + __Pyx_INCREF(__pyx_v_typ); + __pyx_t_3 = __pyx_v_typ; + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC), __pyx_n_s_PatchConstructType); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_PYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!__pyx_t_6) { + } else { + __pyx_t_2 = __pyx_t_6; + goto __pyx_L8_bool_binop_done; + } + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC), __pyx_n_s_PatchConstructType); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(49, 885, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_2 = __pyx_t_6; + __pyx_L8_bool_binop_done:; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = (__pyx_t_2 != 0); + if (__pyx_t_6) { + } else { + __pyx_t_1 = __pyx_t_6; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_6 = (__pyx_v_operator == Py_None); + __pyx_t_2 = (__pyx_t_6 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L6_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "petsc4py/PETSc/SNES.pyx":886 + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") # <<<<<<<<<<<<<< + * if operator is not None: + * context = (operator, args, kargs) + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__45, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 886, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(49, 886, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":885 + * if kargs is None: kargs = {} + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + */ + } + + /* "petsc4py/PETSc/SNES.pyx":887 + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * else: + */ + __pyx_t_1 = (__pyx_v_operator != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/SNES.pyx":888 + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: + * context = (operator, args, kargs) # <<<<<<<<<<<<<< + * else: + * context = None + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operator); + __Pyx_GIVEREF(__pyx_v_operator); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operator); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":887 + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") + * if operator is not None: # <<<<<<<<<<<<<< + * context = (operator, args, kargs) + * else: + */ + goto __pyx_L10; + } + + /* "petsc4py/PETSc/SNES.pyx":890 + * context = (operator, args, kargs) + * else: + * context = None # <<<<<<<<<<<<<< + * self.set_attr("__patch_construction_operator__", context) + * CHKERR( SNESPatchSetConstructType(self.snes, typ, PCPatch_UserConstructOperator, context) ) + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __pyx_v_context = ((PyObject*)Py_None); + } + __pyx_L10:; + + /* "petsc4py/PETSc/SNES.pyx":891 + * else: + * context = None + * self.set_attr("__patch_construction_operator__", context) # <<<<<<<<<<<<<< + * CHKERR( SNESPatchSetConstructType(self.snes, typ, PCPatch_UserConstructOperator, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__patch_construction_operator__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":892 + * context = None + * self.set_attr("__patch_construction_operator__", context) + * CHKERR( SNESPatchSetConstructType(self.snes, typ, PCPatch_UserConstructOperator, context) ) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __pyx_t_7 = ((PCPatchConstructType)__Pyx_PyInt_As_PCPatchConstructType(__pyx_v_typ)); if (unlikely(PyErr_Occurred())) __PYX_ERR(49, 892, __pyx_L1_error) + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESPatchSetConstructType(__pyx_v_self->snes, __pyx_t_7, __pyx_f_8petsc4py_5PETSc_PCPatch_UserConstructOperator, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(49, 892, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":881 + * CHKERR( SNESPatchSetComputeFunction(self.snes, PCPatch_ComputeFunction, context) ) + * + * def setPatchConstructType(self, typ, operator=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.setPatchConstructType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":897 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6appctx___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6appctx___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":898 + * property appctx: + * def __get__(self): + * return self.getAppCtx() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setAppCtx(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":897 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.appctx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":899 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6appctx_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6appctx_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":900 + * return self.getAppCtx() + * def __set__(self, value): + * self.setAppCtx(value) # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":899 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.appctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":905 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_2dm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_2dm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_2dm___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_2dm___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":906 + * property dm: + * def __get__(self): + * return self.getDM() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setDM(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":905 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.dm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":907 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_2dm_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_2dm_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":908 + * return self.getDM() + * def __set__(self, value): + * self.setDM(value) # <<<<<<<<<<<<<< + * + * # --- nonlinear preconditioner --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":907 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.dm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":913 + * + * property npc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getNPC() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3npc_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3npc_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3npc___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3npc___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":914 + * property npc: + * def __get__(self): + * return self.getNPC() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setNPC(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getNPC); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":913 + * + * property npc: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getNPC() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.npc.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":915 + * def __get__(self): + * return self.getNPC() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setNPC(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3npc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3npc_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3npc_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3npc_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":916 + * return self.getNPC() + * def __set__(self, value): + * self.setNPC(value) # <<<<<<<<<<<<<< + * + * # --- vectors --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setNPC); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":915 + * def __get__(self): + * return self.getNPC() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setNPC(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.npc.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":921 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_sol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_sol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_7vec_sol___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_sol___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":922 + * property vec_sol: + * def __get__(self): + * return self.getSolution() # <<<<<<<<<<<<<< + * + * property vec_upd: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolution); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":921 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.vec_sol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":925 + * + * property vec_upd: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionUpdate() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_upd_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_upd_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_7vec_upd___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_upd___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":926 + * property vec_upd: + * def __get__(self): + * return self.getSolutionUpdate() # <<<<<<<<<<<<<< + * + * property vec_rhs: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolutionUpdate); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":925 + * + * property vec_upd: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionUpdate() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.vec_upd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":929 + * + * property vec_rhs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRhs() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_rhs_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7vec_rhs_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_7vec_rhs___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7vec_rhs___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":930 + * property vec_rhs: + * def __get__(self): + * return self.getRhs() # <<<<<<<<<<<<<< + * + * # --- linear solver --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRhs); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":929 + * + * property vec_rhs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRhs() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.vec_rhs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":935 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3ksp___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3ksp___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":936 + * property ksp: + * def __get__(self): + * return self.getKSP() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setKSP(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getKSP); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":935 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.ksp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":937 + * def __get__(self): + * return self.getKSP() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setKSP(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3ksp_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3ksp_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":938 + * return self.getKSP() + * def __set__(self, value): + * self.setKSP(value) # <<<<<<<<<<<<<< + * + * property use_ew: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setKSP); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":937 + * def __get__(self): + * return self.getKSP() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setKSP(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.ksp.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":941 + * + * property use_ew: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseEW() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":942 + * property use_ew: + * def __get__(self): + * return self.getUseEW() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setUseEW(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getUseEW); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":941 + * + * property use_ew: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseEW() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_ew.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":943 + * def __get__(self): + * return self.getUseEW() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseEW(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_ew_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":944 + * return self.getUseEW() + * def __set__(self, value): + * self.setUseEW(value) # <<<<<<<<<<<<<< + * + * # --- tolerances --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setUseEW); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":943 + * def __get__(self): + * return self.getUseEW() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseEW(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_ew.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":949 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4rtol___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4rtol___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":950 + * property rtol: + * def __get__(self): + * return self.getTolerances()[0] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(rtol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":949 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.rtol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":951 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4rtol_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4rtol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":952 + * return self.getTolerances()[0] + * def __set__(self, value): + * self.setTolerances(rtol=value) # <<<<<<<<<<<<<< + * + * property atol: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rtol, __pyx_v_value) < 0) __PYX_ERR(49, 952, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":951 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.rtol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":955 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4atol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4atol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4atol___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4atol___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":956 + * property atol: + * def __get__(self): + * return self.getTolerances()[1] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(atol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":955 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.atol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":957 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4atol_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4atol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":958 + * return self.getTolerances()[1] + * def __set__(self, value): + * self.setTolerances(atol=value) # <<<<<<<<<<<<<< + * + * property stol: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_atol, __pyx_v_value) < 0) __PYX_ERR(49, 958, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 958, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":957 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.atol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":961 + * + * property stol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[2] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4stol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4stol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4stol___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4stol___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":962 + * property stol: + * def __get__(self): + * return self.getTolerances()[2] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(stol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":961 + * + * property stol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[2] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.stol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":963 + * def __get__(self): + * return self.getTolerances()[2] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(stol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4stol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4stol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4stol_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4stol_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":964 + * return self.getTolerances()[2] + * def __set__(self, value): + * self.setTolerances(stol=value) # <<<<<<<<<<<<<< + * + * property max_it: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_stol, __pyx_v_value) < 0) __PYX_ERR(49, 964, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":963 + * def __get__(self): + * return self.getTolerances()[2] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(stol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.stol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":967 + * + * property max_it: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[3] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6max_it___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6max_it___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":968 + * property max_it: + * def __get__(self): + * return self.getTolerances()[3] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(max_it=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":967 + * + * property max_it: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[3] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.max_it.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":969 + * def __get__(self): + * return self.getTolerances()[3] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(max_it=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6max_it_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6max_it_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":970 + * return self.getTolerances()[3] + * def __set__(self, value): + * self.setTolerances(max_it=value) # <<<<<<<<<<<<<< + * + * # --- more tolerances --- + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_max_it, __pyx_v_value) < 0) __PYX_ERR(49, 970, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(49, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/SNES.pyx":969 + * def __get__(self): + * return self.getTolerances()[3] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(max_it=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.max_it.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":975 + * + * property max_funcs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxFunctionEvaluations() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":976 + * property max_funcs: + * def __get__(self): + * return self.getMaxFunctionEvaluations() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setMaxFunctionEvaluations(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getMaxFunctionEvaluations); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":975 + * + * property max_funcs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxFunctionEvaluations() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.max_funcs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":977 + * def __get__(self): + * return self.getMaxFunctionEvaluations() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxFunctionEvaluations(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_9max_funcs_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":978 + * return self.getMaxFunctionEvaluations() + * def __set__(self, value): + * self.setMaxFunctionEvaluations(value) # <<<<<<<<<<<<<< + * + * # --- iteration --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setMaxFunctionEvaluations); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":977 + * def __get__(self): + * return self.getMaxFunctionEvaluations() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxFunctionEvaluations(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.max_funcs.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":983 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3its_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_3its_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3its___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_3its___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":984 + * property its: + * def __get__(self): + * return self.getIterationNumber() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setIterationNumber(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getIterationNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":983 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.its.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":985 + * def __get__(self): + * return self.getIterationNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setIterationNumber(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3its_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_3its_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_3its_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_3its_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":986 + * return self.getIterationNumber() + * def __set__(self, value): + * self.setIterationNumber(value) # <<<<<<<<<<<<<< + * + * property norm: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setIterationNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":985 + * def __get__(self): + * return self.getIterationNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setIterationNumber(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.its.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":989 + * + * property norm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionNorm() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4norm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_4norm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4norm___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_4norm___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":990 + * property norm: + * def __get__(self): + * return self.getFunctionNorm() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setFunctionNorm(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getFunctionNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":989 + * + * property norm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionNorm() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.norm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":991 + * def __get__(self): + * return self.getFunctionNorm() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setFunctionNorm(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_4norm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_4norm_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_4norm_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":992 + * return self.getFunctionNorm() + * def __set__(self, value): + * self.setFunctionNorm(value) # <<<<<<<<<<<<<< + * + * property history: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setFunctionNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":991 + * def __get__(self): + * return self.getFunctionNorm() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setFunctionNorm(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.norm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":995 + * + * property history: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergenceHistory() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7history_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_7history_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_7history___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_7history___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":996 + * property history: + * def __get__(self): + * return self.getConvergenceHistory() # <<<<<<<<<<<<<< + * + * # --- convergence --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergenceHistory); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":995 + * + * property history: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergenceHistory() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.history.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1001 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6reason_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6reason_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6reason___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6reason___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1002 + * property reason: + * def __get__(self): + * return self.getConvergedReason() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setConvergedReason(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1001 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.reason.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1003 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6reason_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6reason_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1004 + * return self.getConvergedReason() + * def __set__(self, value): + * self.setConvergedReason(value) # <<<<<<<<<<<<<< + * + * property iterating: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":1003 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.reason.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1007 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9iterating_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9iterating_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_9iterating___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9iterating___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1008 + * property iterating: + * def __get__(self): + * return self.reason == 0 # <<<<<<<<<<<<<< + * + * property converged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1007 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.iterating.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1011 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9converged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_9converged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_9converged___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_9converged___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1012 + * property converged: + * def __get__(self): + * return self.reason > 0 # <<<<<<<<<<<<<< + * + * property diverged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1012, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1011 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.converged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1015 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_8diverged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_8diverged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_8diverged___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_8diverged___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1016 + * property diverged: + * def __get__(self): + * return self.reason < 0 # <<<<<<<<<<<<<< + * + * # --- matrix free / finite differences --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1016, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1015 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.diverged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1021 + * + * property use_mf: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseMF() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1022 + * property use_mf: + * def __get__(self): + * return self.getUseMF() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setUseMF(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getUseMF); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1021 + * + * property use_mf: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseMF() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_mf.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1023 + * def __get__(self): + * return self.getUseMF() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseMF(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_mf_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1024 + * return self.getUseMF() + * def __set__(self, value): + * self.setUseMF(value) # <<<<<<<<<<<<<< + * + * property use_fd: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setUseMF); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":1023 + * def __get__(self): + * return self.getUseMF() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseMF(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_mf.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1027 + * + * property use_fd: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseFD() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd___get__(((struct PyPetscSNESObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd___get__(struct PyPetscSNESObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1028 + * property use_fd: + * def __get__(self): + * return self.getUseFD() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setUseFD(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getUseFD); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/SNES.pyx":1027 + * + * property use_fd: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getUseFD() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_fd.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/SNES.pyx":1029 + * def __get__(self): + * return self.getUseFD() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseFD(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd_2__set__(((struct PyPetscSNESObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_4SNES_6use_fd_2__set__(struct PyPetscSNESObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/SNES.pyx":1030 + * return self.getUseFD() + * def __set__(self, value): + * self.setUseFD(value) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setUseFD); if (unlikely(!__pyx_t_2)) __PYX_ERR(49, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(49, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/SNES.pyx":1029 + * def __get__(self): + * return self.getUseFD() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setUseFD(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNES.use_fd.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":116 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ts + * self.ts = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS___cinit__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS___cinit__(struct PyPetscTSObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/TS.pyx":117 + * + * def __cinit__(self): + * self.obj = &self.ts # <<<<<<<<<<<<<< + * self.ts = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->ts)); + + /* "petsc4py/PETSc/TS.pyx":118 + * def __cinit__(self): + * self.obj = &self.ts + * self.ts = NULL # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_v_self->ts = NULL; + + /* "petsc4py/PETSc/TS.pyx":116 + * # --- xxx --- + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ts + * self.ts = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":122 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_2view[] = "TS.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(50, 122, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 122, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(50, 122, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_2view(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_2view(struct PyPetscTSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_cviewer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/TS.pyx":123 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL # <<<<<<<<<<<<<< + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( TSView(self.ts, cviewer) ) + */ + __pyx_v_cviewer = NULL; + + /* "petsc4py/PETSc/TS.pyx":124 + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( TSView(self.ts, cviewer) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_cviewer = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":125 + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( TSView(self.ts, cviewer) ) # <<<<<<<<<<<<<< + * + * def load(self, Viewer viewer): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSView(__pyx_v_self->ts, __pyx_v_cviewer)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 125, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":122 + * # --- xxx --- + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":127 + * CHKERR( TSView(self.ts, cviewer) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( TSLoad(self.ts, viewer.vwr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_5load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_4load[] = "TS.load(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_5load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("load (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "load") < 0)) __PYX_ERR(50, 127, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("load", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 127, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(50, 127, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4load(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4load(struct PyPetscTSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load", 0); + + /* "petsc4py/PETSc/TS.pyx":128 + * + * def load(self, Viewer viewer): + * CHKERR( TSLoad(self.ts, viewer.vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSLoad(__pyx_v_self->ts, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":127 + * CHKERR( TSView(self.ts, cviewer) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( TSLoad(self.ts, viewer.vwr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":130 + * CHKERR( TSLoad(self.ts, viewer.vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( TSDestroy(&self.ts) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_6destroy[] = "TS.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_6destroy(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6destroy(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/TS.pyx":131 + * + * def destroy(self): + * CHKERR( TSDestroy(&self.ts) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSDestroy((&__pyx_v_self->ts))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 131, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":132 + * def destroy(self): + * CHKERR( TSDestroy(&self.ts) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":130 + * CHKERR( TSLoad(self.ts, viewer.vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( TSDestroy(&self.ts) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":134 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_8create[] = "TS.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(50, 134, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 134, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_8create(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8create(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + TS __pyx_v_newts; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/TS.pyx":135 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 135, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":136 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL # <<<<<<<<<<<<<< + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts + */ + __pyx_v_newts = NULL; + + /* "petsc4py/PETSc/TS.pyx":137 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ts = newts + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSCreate(__pyx_v_ccomm, (&__pyx_v_newts))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":138 + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ts = __pyx_v_newts; + + /* "petsc4py/PETSc/TS.pyx":139 + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts + * return self # <<<<<<<<<<<<<< + * + * def clone(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":134 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":141 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef TS ts = TS() + * CHKERR( TSClone(self.ts, &ts.ts) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_10clone[] = "TS.clone(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clone (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clone", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clone", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_10clone(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_10clone(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscTSObject *__pyx_v_ts = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clone", 0); + + /* "petsc4py/PETSc/TS.pyx":142 + * + * def clone(self): + * cdef TS ts = TS() # <<<<<<<<<<<<<< + * CHKERR( TSClone(self.ts, &ts.ts) ) + * return ts + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":143 + * def clone(self): + * cdef TS ts = TS() + * CHKERR( TSClone(self.ts, &ts.ts) ) # <<<<<<<<<<<<<< + * return ts + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSClone(__pyx_v_self->ts, (&__pyx_v_ts->ts))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":144 + * cdef TS ts = TS() + * CHKERR( TSClone(self.ts, &ts.ts) ) + * return ts # <<<<<<<<<<<<<< + * + * def setType(self, ts_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ts)); + __pyx_r = ((PyObject *)__pyx_v_ts); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":141 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef TS ts = TS() + * CHKERR( TSClone(self.ts, &ts.ts) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":146 + * return ts + * + * def setType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_12setType[] = "TS.setType(self, ts_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ts_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(50, 146, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ts_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 146, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_12setType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_ts_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_12setType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type) { + TSType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_ts_type); + + /* "petsc4py/PETSc/TS.pyx":147 + * + * def setType(self, ts_type): + * cdef PetscTSType cval = NULL # <<<<<<<<<<<<<< + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSSetType(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":148 + * def setType(self, ts_type): + * cdef PetscTSType cval = NULL + * ts_type = str2bytes(ts_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSSetType(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ts_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ts_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":149 + * cdef PetscTSType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSSetType(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def setRKType(self, ts_type): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetType(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":146 + * return ts + * + * def setType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ts_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":151 + * CHKERR( TSSetType(self.ts, cval) ) + * + * def setRKType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSRKType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_15setRKType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_14setRKType[] = "TS.setRKType(self, ts_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_15setRKType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ts_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRKType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRKType") < 0)) __PYX_ERR(50, 151, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ts_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRKType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 151, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRKType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_14setRKType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_ts_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_14setRKType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type) { + TSRKType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRKType", 0); + __Pyx_INCREF(__pyx_v_ts_type); + + /* "petsc4py/PETSc/TS.pyx":152 + * + * def setRKType(self, ts_type): + * cdef PetscTSRKType cval = NULL # <<<<<<<<<<<<<< + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSRKSetType(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":153 + * def setRKType(self, ts_type): + * cdef PetscTSRKType cval = NULL + * ts_type = str2bytes(ts_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSRKSetType(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ts_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ts_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":154 + * cdef PetscTSRKType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSRKSetType(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def setARKIMEXType(self, ts_type): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRKSetType(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 154, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":151 + * CHKERR( TSSetType(self.ts, cval) ) + * + * def setRKType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSRKType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRKType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ts_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":156 + * CHKERR( TSRKSetType(self.ts, cval) ) + * + * def setARKIMEXType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSARKIMEXType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_17setARKIMEXType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_16setARKIMEXType[] = "TS.setARKIMEXType(self, ts_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_17setARKIMEXType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ts_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setARKIMEXType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ts_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ts_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setARKIMEXType") < 0)) __PYX_ERR(50, 156, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ts_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setARKIMEXType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 156, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setARKIMEXType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_16setARKIMEXType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_ts_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_16setARKIMEXType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ts_type) { + TSARKIMEXType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setARKIMEXType", 0); + __Pyx_INCREF(__pyx_v_ts_type); + + /* "petsc4py/PETSc/TS.pyx":157 + * + * def setARKIMEXType(self, ts_type): + * cdef PetscTSARKIMEXType cval = NULL # <<<<<<<<<<<<<< + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSARKIMEXSetType(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":158 + * def setARKIMEXType(self, ts_type): + * cdef PetscTSARKIMEXType cval = NULL + * ts_type = str2bytes(ts_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSARKIMEXSetType(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ts_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ts_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":159 + * cdef PetscTSARKIMEXType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + * CHKERR( TSARKIMEXSetType(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def setARKIMEXFullyImplicit(self, flag): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSARKIMEXSetType(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":156 + * CHKERR( TSRKSetType(self.ts, cval) ) + * + * def setARKIMEXType(self, ts_type): # <<<<<<<<<<<<<< + * cdef PetscTSARKIMEXType cval = NULL + * ts_type = str2bytes(ts_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setARKIMEXType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ts_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":161 + * CHKERR( TSARKIMEXSetType(self.ts, cval) ) + * + * def setARKIMEXFullyImplicit(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(flag) + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_19setARKIMEXFullyImplicit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_18setARKIMEXFullyImplicit[] = "TS.setARKIMEXFullyImplicit(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_19setARKIMEXFullyImplicit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setARKIMEXFullyImplicit (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setARKIMEXFullyImplicit") < 0)) __PYX_ERR(50, 161, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setARKIMEXFullyImplicit", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setARKIMEXFullyImplicit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_18setARKIMEXFullyImplicit(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_18setARKIMEXFullyImplicit(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setARKIMEXFullyImplicit", 0); + + /* "petsc4py/PETSc/TS.pyx":162 + * + * def setARKIMEXFullyImplicit(self, flag): + * cdef PetscBool bval = asBool(flag) # <<<<<<<<<<<<<< + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flag); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(50, 162, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":163 + * def setARKIMEXFullyImplicit(self, flag): + * cdef PetscBool bval = asBool(flag) + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSARKIMEXSetFullyImplicit(__pyx_v_self->ts, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":161 + * CHKERR( TSARKIMEXSetType(self.ts, cval) ) + * + * def setARKIMEXFullyImplicit(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(flag) + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setARKIMEXFullyImplicit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":165 + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscTSType cval = NULL + * CHKERR( TSGetType(self.ts, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_21getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_20getType[] = "TS.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_21getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_20getType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_20getType(struct PyPetscTSObject *__pyx_v_self) { + TSType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/TS.pyx":166 + * + * def getType(self): + * cdef PetscTSType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetType(self.ts, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":167 + * def getType(self): + * cdef PetscTSType cval = NULL + * CHKERR( TSGetType(self.ts, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetType(__pyx_v_self->ts, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":168 + * cdef PetscTSType cval = NULL + * CHKERR( TSGetType(self.ts, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getRKType(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":165 + * CHKERR( TSARKIMEXSetFullyImplicit(self.ts, bval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscTSType cval = NULL + * CHKERR( TSGetType(self.ts, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":170 + * return bytes2str(cval) + * + * def getRKType(self): # <<<<<<<<<<<<<< + * cdef PetscTSRKType cval = NULL + * CHKERR( TSRKGetType(self.ts, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_23getRKType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_22getRKType[] = "TS.getRKType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_23getRKType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRKType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRKType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRKType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_22getRKType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_22getRKType(struct PyPetscTSObject *__pyx_v_self) { + TSRKType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRKType", 0); + + /* "petsc4py/PETSc/TS.pyx":171 + * + * def getRKType(self): + * cdef PetscTSRKType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TSRKGetType(self.ts, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":172 + * def getRKType(self): + * cdef PetscTSRKType cval = NULL + * CHKERR( TSRKGetType(self.ts, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRKGetType(__pyx_v_self->ts, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":173 + * cdef PetscTSRKType cval = NULL + * CHKERR( TSRKGetType(self.ts, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getARKIMEXType(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":170 + * return bytes2str(cval) + * + * def getRKType(self): # <<<<<<<<<<<<<< + * cdef PetscTSRKType cval = NULL + * CHKERR( TSRKGetType(self.ts, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getRKType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":175 + * return bytes2str(cval) + * + * def getARKIMEXType(self): # <<<<<<<<<<<<<< + * cdef PetscTSARKIMEXType cval = NULL + * CHKERR( TSARKIMEXGetType(self.ts, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_25getARKIMEXType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_24getARKIMEXType[] = "TS.getARKIMEXType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_25getARKIMEXType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getARKIMEXType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getARKIMEXType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getARKIMEXType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_24getARKIMEXType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_24getARKIMEXType(struct PyPetscTSObject *__pyx_v_self) { + TSARKIMEXType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getARKIMEXType", 0); + + /* "petsc4py/PETSc/TS.pyx":176 + * + * def getARKIMEXType(self): + * cdef PetscTSARKIMEXType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TSARKIMEXGetType(self.ts, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":177 + * def getARKIMEXType(self): + * cdef PetscTSARKIMEXType cval = NULL + * CHKERR( TSARKIMEXGetType(self.ts, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSARKIMEXGetType(__pyx_v_self->ts, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":178 + * cdef PetscTSARKIMEXType cval = NULL + * CHKERR( TSARKIMEXGetType(self.ts, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setProblemType(self, ptype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":175 + * return bytes2str(cval) + * + * def getARKIMEXType(self): # <<<<<<<<<<<<<< + * cdef PetscTSARKIMEXType cval = NULL + * CHKERR( TSARKIMEXGetType(self.ts, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getARKIMEXType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":180 + * return bytes2str(cval) + * + * def setProblemType(self, ptype): # <<<<<<<<<<<<<< + * CHKERR( TSSetProblemType(self.ts, ptype) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_27setProblemType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_26setProblemType[] = "TS.setProblemType(self, ptype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_27setProblemType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ptype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setProblemType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ptype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ptype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setProblemType") < 0)) __PYX_ERR(50, 180, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ptype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setProblemType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 180, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setProblemType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_26setProblemType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_ptype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_26setProblemType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_ptype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TSProblemType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setProblemType", 0); + + /* "petsc4py/PETSc/TS.pyx":181 + * + * def setProblemType(self, ptype): + * CHKERR( TSSetProblemType(self.ts, ptype) ) # <<<<<<<<<<<<<< + * + * def getProblemType(self): + */ + __pyx_t_1 = ((TSProblemType)__Pyx_PyInt_As_TSProblemType(__pyx_v_ptype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 181, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetProblemType(__pyx_v_self->ts, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 181, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":180 + * return bytes2str(cval) + * + * def setProblemType(self, ptype): # <<<<<<<<<<<<<< + * CHKERR( TSSetProblemType(self.ts, ptype) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setProblemType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":183 + * CHKERR( TSSetProblemType(self.ts, ptype) ) + * + * def getProblemType(self): # <<<<<<<<<<<<<< + * cdef PetscTSProblemType ptype = TS_NONLINEAR + * CHKERR( TSGetProblemType(self.ts, &ptype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_29getProblemType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_28getProblemType[] = "TS.getProblemType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_29getProblemType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getProblemType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getProblemType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getProblemType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_28getProblemType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_28getProblemType(struct PyPetscTSObject *__pyx_v_self) { + TSProblemType __pyx_v_ptype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getProblemType", 0); + + /* "petsc4py/PETSc/TS.pyx":184 + * + * def getProblemType(self): + * cdef PetscTSProblemType ptype = TS_NONLINEAR # <<<<<<<<<<<<<< + * CHKERR( TSGetProblemType(self.ts, &ptype) ) + * return ptype + */ + __pyx_v_ptype = TS_NONLINEAR; + + /* "petsc4py/PETSc/TS.pyx":185 + * def getProblemType(self): + * cdef PetscTSProblemType ptype = TS_NONLINEAR + * CHKERR( TSGetProblemType(self.ts, &ptype) ) # <<<<<<<<<<<<<< + * return ptype + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetProblemType(__pyx_v_self->ts, (&__pyx_v_ptype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":186 + * cdef PetscTSProblemType ptype = TS_NONLINEAR + * CHKERR( TSGetProblemType(self.ts, &ptype) ) + * return ptype # <<<<<<<<<<<<<< + * + * def setEquationType(self, eqtype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_TSProblemType(__pyx_v_ptype); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":183 + * CHKERR( TSSetProblemType(self.ts, ptype) ) + * + * def getProblemType(self): # <<<<<<<<<<<<<< + * cdef PetscTSProblemType ptype = TS_NONLINEAR + * CHKERR( TSGetProblemType(self.ts, &ptype) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getProblemType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":188 + * return ptype + * + * def setEquationType(self, eqtype): # <<<<<<<<<<<<<< + * CHKERR( TSSetEquationType(self.ts, eqtype) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_31setEquationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_30setEquationType[] = "TS.setEquationType(self, eqtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_31setEquationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_eqtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setEquationType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_eqtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eqtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setEquationType") < 0)) __PYX_ERR(50, 188, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_eqtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setEquationType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 188, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEquationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_30setEquationType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_eqtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_30setEquationType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_eqtype) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TSEquationType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setEquationType", 0); + + /* "petsc4py/PETSc/TS.pyx":189 + * + * def setEquationType(self, eqtype): + * CHKERR( TSSetEquationType(self.ts, eqtype) ) # <<<<<<<<<<<<<< + * + * def getEquationType(self): + */ + __pyx_t_1 = ((TSEquationType)__Pyx_PyInt_As_TSEquationType(__pyx_v_eqtype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 189, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetEquationType(__pyx_v_self->ts, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 189, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":188 + * return ptype + * + * def setEquationType(self, eqtype): # <<<<<<<<<<<<<< + * CHKERR( TSSetEquationType(self.ts, eqtype) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEquationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":191 + * CHKERR( TSSetEquationType(self.ts, eqtype) ) + * + * def getEquationType(self): # <<<<<<<<<<<<<< + * cdef PetscTSEquationType eqtype = TS_EQ_UNSPECIFIED + * CHKERR( TSGetEquationType(self.ts, &eqtype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_33getEquationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_32getEquationType[] = "TS.getEquationType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_33getEquationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getEquationType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getEquationType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getEquationType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_32getEquationType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_32getEquationType(struct PyPetscTSObject *__pyx_v_self) { + TSEquationType __pyx_v_eqtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getEquationType", 0); + + /* "petsc4py/PETSc/TS.pyx":192 + * + * def getEquationType(self): + * cdef PetscTSEquationType eqtype = TS_EQ_UNSPECIFIED # <<<<<<<<<<<<<< + * CHKERR( TSGetEquationType(self.ts, &eqtype) ) + * return eqtype + */ + __pyx_v_eqtype = TS_EQ_UNSPECIFIED; + + /* "petsc4py/PETSc/TS.pyx":193 + * def getEquationType(self): + * cdef PetscTSEquationType eqtype = TS_EQ_UNSPECIFIED + * CHKERR( TSGetEquationType(self.ts, &eqtype) ) # <<<<<<<<<<<<<< + * return eqtype + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetEquationType(__pyx_v_self->ts, (&__pyx_v_eqtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 193, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":194 + * cdef PetscTSEquationType eqtype = TS_EQ_UNSPECIFIED + * CHKERR( TSGetEquationType(self.ts, &eqtype) ) + * return eqtype # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_TSEquationType(__pyx_v_eqtype); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":191 + * CHKERR( TSSetEquationType(self.ts, eqtype) ) + * + * def getEquationType(self): # <<<<<<<<<<<<<< + * cdef PetscTSEquationType eqtype = TS_EQ_UNSPECIFIED + * CHKERR( TSGetEquationType(self.ts, &eqtype) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getEquationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":196 + * return eqtype + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_35setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_34setOptionsPrefix[] = "TS.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_35setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(50, 196, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 196, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_34setOptionsPrefix(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_34setOptionsPrefix(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/TS.pyx":197 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( TSSetOptionsPrefix(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":198 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSSetOptionsPrefix(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":199 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( TSSetOptionsPrefix(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetOptionsPrefix(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 199, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":196 + * return eqtype + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":201 + * CHKERR( TSSetOptionsPrefix(self.ts, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TSGetOptionsPrefix(self.ts, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_37getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_36getOptionsPrefix[] = "TS.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_37getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_36getOptionsPrefix(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_36getOptionsPrefix(struct PyPetscTSObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/TS.pyx":202 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetOptionsPrefix(self.ts, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":203 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( TSGetOptionsPrefix(self.ts, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetOptionsPrefix(__pyx_v_self->ts, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":204 + * cdef const char *cval = NULL + * CHKERR( TSGetOptionsPrefix(self.ts, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":201 + * CHKERR( TSSetOptionsPrefix(self.ts, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TSGetOptionsPrefix(self.ts, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":206 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_39appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_38appendOptionsPrefix[] = "TS.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_39appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(50, 206, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 206, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_38appendOptionsPrefix(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_38appendOptionsPrefix(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/TS.pyx":207 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( TSAppendOptionsPrefix(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":208 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSAppendOptionsPrefix(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":209 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( TSAppendOptionsPrefix(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAppendOptionsPrefix(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 209, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":206 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":211 + * CHKERR( TSAppendOptionsPrefix(self.ts, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( TSSetFromOptions(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_41setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_40setFromOptions[] = "TS.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_41setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_40setFromOptions(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_40setFromOptions(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/TS.pyx":212 + * + * def setFromOptions(self): + * CHKERR( TSSetFromOptions(self.ts) ) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetFromOptions(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 212, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":211 + * CHKERR( TSAppendOptionsPrefix(self.ts, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( TSSetFromOptions(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":216 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_43setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_42setAppCtx[] = "TS.setAppCtx(self, appctx)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_43setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_appctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAppCtx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_appctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_appctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAppCtx") < 0)) __PYX_ERR(50, 216, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_appctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAppCtx", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 216, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_42setAppCtx(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_appctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_42setAppCtx(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_appctx) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAppCtx", 0); + + /* "petsc4py/PETSc/TS.pyx":217 + * + * def setAppCtx(self, appctx): + * self.set_attr('__appctx__', appctx) # <<<<<<<<<<<<<< + * + * def getAppCtx(self): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__"), __pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":216 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":219 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_45getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_44getAppCtx[] = "TS.getAppCtx(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_45getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAppCtx (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAppCtx", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAppCtx", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_44getAppCtx(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_44getAppCtx(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAppCtx", 0); + + /* "petsc4py/PETSc/TS.pyx":220 + * + * def getAppCtx(self): + * return self.get_attr('__appctx__') # <<<<<<<<<<<<<< + * + * # --- user RHS Function/Jacobian routines --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":219 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":224 + * # --- user RHS Function/Jacobian routines --- + * + * def setRHSFunction(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_47setRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_46setRHSFunction[] = "TS.setRHSFunction(self, function, Vec f=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_47setRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRHSFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_f,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRHSFunction") < 0)) __PYX_ERR(50, 224, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRHSFunction", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 224, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "f", 0))) __PYX_ERR(50, 224, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_46setRHSFunction(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_function, __pyx_v_f, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_46setRHSFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_fvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRHSFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":225 + * + * def setRHSFunction(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL # <<<<<<<<<<<<<< + * if f is not None: fvec = f.vec + * if function is not None: + */ + __pyx_v_fvec = NULL; + + /* "petsc4py/PETSc/TS.pyx":226 + * def setRHSFunction(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_f) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_f->vec; + __pyx_v_fvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":227 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_function != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":228 + * if f is not None: fvec = f.vec + * if function is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":229 + * if function is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr('__rhsfunction__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":230 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__rhsfunction__', context) + * CHKERR( TSSetRHSFunction(self.ts, fvec, TS_RHSFunction, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":231 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr('__rhsfunction__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetRHSFunction(self.ts, fvec, TS_RHSFunction, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsfunction__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":232 + * context = (function, args, kargs) + * self.set_attr('__rhsfunction__', context) + * CHKERR( TSSetRHSFunction(self.ts, fvec, TS_RHSFunction, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetRHSFunction(self.ts, fvec, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSFunction(__pyx_v_self->ts, __pyx_v_fvec, __pyx_f_8petsc4py_5PETSc_TS_RHSFunction, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 232, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":227 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":234 + * CHKERR( TSSetRHSFunction(self.ts, fvec, TS_RHSFunction, context) ) + * else: + * CHKERR( TSSetRHSFunction(self.ts, fvec, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSFunction(__pyx_v_self->ts, __pyx_v_fvec, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 234, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":224 + * # --- user RHS Function/Jacobian routines --- + * + * def setRHSFunction(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":236 + * CHKERR( TSSetRHSFunction(self.ts, fvec, NULL, NULL) ) + * + * def setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_49setRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_48setRHSJacobian[] = "TS.setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_49setRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRHSJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRHSJacobian") < 0)) __PYX_ERR(50, 236, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRHSJacobian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 236, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(50, 236, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 236, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_48setRHSJacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_48setRHSJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRHSJacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":237 + * + * def setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TS.pyx":238 + * def setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":239 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if jacobian is not None: + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TS.pyx":240 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":241 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_jacobian != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":242 + * if P is not None: Pmat = P.mat + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":243 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__rhsjacobian__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":244 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__rhsjacobian__', context) + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, TS_RHSJacobian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":245 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__rhsjacobian__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, TS_RHSJacobian, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsjacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":246 + * context = (jacobian, args, kargs) + * self.set_attr('__rhsjacobian__', context) + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, TS_RHSJacobian, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TS_RHSJacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 246, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":241 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/TS.pyx":248 + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, TS_RHSJacobian, context) ) + * else: + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def computeRHSFunction(self, t, Vec x, Vec f): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 248, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/TS.pyx":236 + * CHKERR( TSSetRHSFunction(self.ts, fvec, NULL, NULL) ) + * + * def setRHSJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":250 + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def computeRHSFunction(self, t, Vec x, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_51computeRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_50computeRHSFunction[] = "TS.computeRHSFunction(self, t, Vec x, Vec f)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_51computeRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeRHSFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_f,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSFunction", 1, 3, 3, 1); __PYX_ERR(50, 250, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSFunction", 1, 3, 3, 2); __PYX_ERR(50, 250, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeRHSFunction") < 0)) __PYX_ERR(50, 250, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_f = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeRHSFunction", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 250, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 250, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(50, 250, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_50computeRHSFunction(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_f); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_50computeRHSFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f) { + PetscReal __pyx_v_time; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeRHSFunction", 0); + + /* "petsc4py/PETSc/TS.pyx":251 + * + * def computeRHSFunction(self, t, Vec x, Vec f): + * cdef PetscReal time = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 251, __pyx_L1_error) + __pyx_v_time = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":252 + * def computeRHSFunction(self, t, Vec x, Vec f): + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) # <<<<<<<<<<<<<< + * + * def computeRHSFunctionLinear(self, t, Vec x, Vec f): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeRHSFunction(__pyx_v_self->ts, __pyx_v_time, __pyx_v_x->vec, __pyx_v_f->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 252, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":250 + * CHKERR( TSSetRHSJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def computeRHSFunction(self, t, Vec x, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":254 + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) + * + * def computeRHSFunctionLinear(self, t, Vec x, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_53computeRHSFunctionLinear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_52computeRHSFunctionLinear[] = "TS.computeRHSFunctionLinear(self, t, Vec x, Vec f)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_53computeRHSFunctionLinear(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeRHSFunctionLinear (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_f,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSFunctionLinear", 1, 3, 3, 1); __PYX_ERR(50, 254, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSFunctionLinear", 1, 3, 3, 2); __PYX_ERR(50, 254, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeRHSFunctionLinear") < 0)) __PYX_ERR(50, 254, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_f = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeRHSFunctionLinear", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 254, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSFunctionLinear", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 254, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(50, 254, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_52computeRHSFunctionLinear(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_f); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_52computeRHSFunctionLinear(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f) { + PetscReal __pyx_v_time; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeRHSFunctionLinear", 0); + + /* "petsc4py/PETSc/TS.pyx":255 + * + * def computeRHSFunctionLinear(self, t, Vec x, Vec f): + * cdef PetscReal time = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 255, __pyx_L1_error) + __pyx_v_time = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":256 + * def computeRHSFunctionLinear(self, t, Vec x, Vec f): + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) # <<<<<<<<<<<<<< + * + * def computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeRHSFunctionLinear(__pyx_v_self->ts, __pyx_v_time, __pyx_v_x->vec, __pyx_v_f->vec, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":254 + * CHKERR( TSComputeRHSFunction(self.ts, time, x.vec, f.vec) ) + * + * def computeRHSFunctionLinear(self, t, Vec x, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSFunctionLinear", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":258 + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) + * + * def computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_55computeRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_54computeRHSJacobian[] = "TS.computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_55computeRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeRHSJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_J,&__pyx_n_s_P,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobian", 0, 3, 4, 1); __PYX_ERR(50, 258, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobian", 0, 3, 4, 2); __PYX_ERR(50, 258, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeRHSJacobian") < 0)) __PYX_ERR(50, 258, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_J = ((struct PyPetscMatObject *)values[2]); + __pyx_v_P = ((struct PyPetscMatObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeRHSJacobian", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 258, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 258, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 258, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 258, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_54computeRHSJacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_J, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_54computeRHSJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P) { + PetscReal __pyx_v_time; + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + Mat __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeRHSJacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":259 + * + * def computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None): + * cdef PetscReal time = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 259, __pyx_L1_error) + __pyx_v_time = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":260 + * def computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None): + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TSComputeRHSJacobian(self.ts, time, x.vec, jmat, pmat) ) + */ + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_2; + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":261 + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TSComputeRHSJacobian(self.ts, time, x.vec, jmat, pmat) ) + * + */ + __pyx_t_3 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_t_2 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_2; + } + + /* "petsc4py/PETSc/TS.pyx":262 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( TSComputeRHSJacobian(self.ts, time, x.vec, jmat, pmat) ) # <<<<<<<<<<<<<< + * + * def computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeRHSJacobian(__pyx_v_self->ts, __pyx_v_time, __pyx_v_x->vec, __pyx_v_jmat, __pyx_v_pmat)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 262, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":258 + * CHKERR( TSComputeRHSFunctionLinear(self.ts, time, x.vec, f.vec, NULL) ) + * + * def computeRHSJacobian(self, t, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":264 + * CHKERR( TSComputeRHSJacobian(self.ts, time, x.vec, jmat, pmat) ) + * + * def computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_57computeRHSJacobianConstant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_56computeRHSJacobianConstant[] = "TS.computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_57computeRHSJacobianConstant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeRHSJacobianConstant (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_J,&__pyx_n_s_P,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianConstant", 0, 3, 4, 1); __PYX_ERR(50, 264, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianConstant", 0, 3, 4, 2); __PYX_ERR(50, 264, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeRHSJacobianConstant") < 0)) __PYX_ERR(50, 264, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_J = ((struct PyPetscMatObject *)values[2]); + __pyx_v_P = ((struct PyPetscMatObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianConstant", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 264, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobianConstant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 264, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 264, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 264, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_56computeRHSJacobianConstant(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_J, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_56computeRHSJacobianConstant(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P) { + PetscReal __pyx_v_time; + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + Mat __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeRHSJacobianConstant", 0); + + /* "petsc4py/PETSc/TS.pyx":265 + * + * def computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None): + * cdef PetscReal time = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 265, __pyx_L1_error) + __pyx_v_time = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":266 + * def computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None): + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TSComputeRHSJacobianConstant(self.ts, time, x.vec, jmat, pmat, NULL) ) + */ + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_2; + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":267 + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TSComputeRHSJacobianConstant(self.ts, time, x.vec, jmat, pmat, NULL) ) + * + */ + __pyx_t_3 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_t_2 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_2; + } + + /* "petsc4py/PETSc/TS.pyx":268 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( TSComputeRHSJacobianConstant(self.ts, time, x.vec, jmat, pmat, NULL) ) # <<<<<<<<<<<<<< + * + * def getRHSFunction(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeRHSJacobianConstant(__pyx_v_self->ts, __pyx_v_time, __pyx_v_x->vec, __pyx_v_jmat, __pyx_v_pmat, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 268, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":264 + * CHKERR( TSComputeRHSJacobian(self.ts, time, x.vec, jmat, pmat) ) + * + * def computeRHSJacobianConstant(self, t, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal time = asReal(t) + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobianConstant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":270 + * CHKERR( TSComputeRHSJacobianConstant(self.ts, time, x.vec, jmat, pmat, NULL) ) + * + * def getRHSFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_59getRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_58getRHSFunction[] = "TS.getRHSFunction(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_59getRHSFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRHSFunction (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRHSFunction", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRHSFunction", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_58getRHSFunction(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_58getRHSFunction(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRHSFunction", 0); + + /* "petsc4py/PETSc/TS.pyx":271 + * + * def getRHSFunction(self): + * cdef Vec f = Vec() # <<<<<<<<<<<<<< + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_f = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":272 + * def getRHSFunction(self): + * cdef Vec f = Vec() + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__rhsfunction__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetRHSFunction(__pyx_v_self->ts, (&__pyx_v_f->vec), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 272, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":273 + * cdef Vec f = Vec() + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) # <<<<<<<<<<<<<< + * cdef object function = self.get_attr('__rhsfunction__') + * return (f, function) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_f->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":274 + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__rhsfunction__') # <<<<<<<<<<<<<< + * return (f, function) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsfunction__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":275 + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__rhsfunction__') + * return (f, function) # <<<<<<<<<<<<<< + * + * def getRHSJacobian(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_function); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":270 + * CHKERR( TSComputeRHSJacobianConstant(self.ts, time, x.vec, jmat, pmat, NULL) ) + * + * def getRHSFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetRHSFunction(self.ts, &f.vec, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getRHSFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_f); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":277 + * return (f, function) + * + * def getRHSJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_61getRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_60getRHSJacobian[] = "TS.getRHSJacobian(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_61getRHSJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRHSJacobian (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRHSJacobian", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRHSJacobian", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_60getRHSJacobian(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_60getRHSJacobian(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_jacobian = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRHSJacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":278 + * + * def getRHSJacobian(self): + * cdef Mat J = Mat(), P = Mat() # <<<<<<<<<<<<<< + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":279 + * def getRHSJacobian(self): + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__rhsjacobian__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetRHSJacobian(__pyx_v_self->ts, (&__pyx_v_J->mat), (&__pyx_v_P->mat), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 279, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":280 + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * cdef object jacobian = self.get_attr('__rhsjacobian__') + * return (J, P, jacobian) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_J->__pyx_base.obj)); + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":281 + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__rhsjacobian__') # <<<<<<<<<<<<<< + * return (J, P, jacobian) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsjacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":282 + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__rhsjacobian__') + * return (J, P, jacobian) # <<<<<<<<<<<<<< + * + * # --- user Implicit Function/Jacobian routines --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_jacobian); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":277 + * return (f, function) + * + * def getRHSJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetRHSJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getRHSJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":286 + * # --- user Implicit Function/Jacobian routines --- + * + * def setIFunction(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_63setIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_62setIFunction[] = "TS.setIFunction(self, function, Vec f=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_63setIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_f,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIFunction") < 0)) __PYX_ERR(50, 286, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIFunction", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 286, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "f", 0))) __PYX_ERR(50, 286, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_62setIFunction(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_function, __pyx_v_f, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_62setIFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_fvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":287 + * + * def setIFunction(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL # <<<<<<<<<<<<<< + * if f is not None: fvec = f.vec + * if function is not None: + */ + __pyx_v_fvec = NULL; + + /* "petsc4py/PETSc/TS.pyx":288 + * def setIFunction(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_f) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_f->vec; + __pyx_v_fvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":289 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_function != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":290 + * if f is not None: fvec = f.vec + * if function is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":291 + * if function is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr('__ifunction__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":292 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__ifunction__', context) + * CHKERR( TSSetIFunction(self.ts, fvec, TS_IFunction, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":293 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr('__ifunction__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetIFunction(self.ts, fvec, TS_IFunction, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ifunction__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":294 + * context = (function, args, kargs) + * self.set_attr('__ifunction__', context) + * CHKERR( TSSetIFunction(self.ts, fvec, TS_IFunction, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetIFunction(self.ts, fvec, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIFunction(__pyx_v_self->ts, __pyx_v_fvec, __pyx_f_8petsc4py_5PETSc_TS_IFunction, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 294, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":289 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":296 + * CHKERR( TSSetIFunction(self.ts, fvec, TS_IFunction, context) ) + * else: + * CHKERR( TSSetIFunction(self.ts, fvec, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIFunction(__pyx_v_self->ts, __pyx_v_fvec, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 296, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":286 + * # --- user Implicit Function/Jacobian routines --- + * + * def setIFunction(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":298 + * CHKERR( TSSetIFunction(self.ts, fvec, NULL, NULL) ) + * + * def setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_65setIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_64setIJacobian[] = "TS.setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_65setIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIJacobian") < 0)) __PYX_ERR(50, 298, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIJacobian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 298, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(50, 298, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 298, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_64setIJacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_64setIJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIJacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":299 + * + * def setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TS.pyx":300 + * def setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":301 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if jacobian is not None: + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TS.pyx":302 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":303 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_jacobian != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":304 + * if P is not None: Pmat = P.mat + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":305 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobian__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":306 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__ijacobian__', context) + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, TS_IJacobian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":307 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobian__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, TS_IJacobian, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ijacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":308 + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobian__', context) + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, TS_IJacobian, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIJacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TS_IJacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 308, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":303 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/TS.pyx":310 + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, TS_IJacobian, context) ) + * else: + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIJacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 310, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/TS.pyx":298 + * CHKERR( TSSetIFunction(self.ts, fvec, NULL, NULL) ) + * + * def setIJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":312 + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_67setIJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_66setIJacobianP[] = "TS.setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_67setIJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIJacobianP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIJacobianP") < 0)) __PYX_ERR(50, 312, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIJacobianP", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 312, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(50, 312, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_66setIJacobianP(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_66setIJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIJacobianP", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":313 + * + * def setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * if jacobian is not None: + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TS.pyx":314 + * def setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":315 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_jacobian != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":316 + * if J is not None: Jmat = J.mat + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":317 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobianp__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":318 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__ijacobianp__', context) + * CHKERR( TSSetIJacobianP(self.ts, Jmat, TS_IJacobianP, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":319 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobianp__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetIJacobianP(self.ts, Jmat, TS_IJacobianP, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ijacobianp__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":320 + * context = (jacobian, args, kargs) + * self.set_attr('__ijacobianp__', context) + * CHKERR( TSSetIJacobianP(self.ts, Jmat, TS_IJacobianP, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetIJacobianP(self.ts, Jmat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIJacobianP(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_f_8petsc4py_5PETSc_TS_IJacobianP, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":315 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":322 + * CHKERR( TSSetIJacobianP(self.ts, Jmat, TS_IJacobianP, context) ) + * else: + * CHKERR( TSSetIJacobianP(self.ts, Jmat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def computeIFunction(self, + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetIJacobianP(__pyx_v_self->ts, __pyx_v_Jmat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 322, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":312 + * CHKERR( TSSetIJacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def setIJacobianP(self, jacobian, Mat J=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setIJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":324 + * CHKERR( TSSetIJacobianP(self.ts, Jmat, NULL, NULL) ) + * + * def computeIFunction(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, + * Vec f, imex=False): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_69computeIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_68computeIFunction[] = "TS.computeIFunction(self, t, Vec x, Vec xdot, Vec f, imex=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_69computeIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_xdot = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_imex = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeIFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_xdot,&__pyx_n_s_f,&__pyx_n_s_imex,0}; + PyObject* values[5] = {0,0,0,0,0}; + + /* "petsc4py/PETSc/TS.pyx":326 + * def computeIFunction(self, + * t, Vec x, Vec xdot, + * Vec f, imex=False): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * cdef PetscBool bval = imex + */ + values[4] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIFunction", 0, 4, 5, 1); __PYX_ERR(50, 324, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIFunction", 0, 4, 5, 2); __PYX_ERR(50, 324, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIFunction", 0, 4, 5, 3); __PYX_ERR(50, 324, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_imex); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeIFunction") < 0)) __PYX_ERR(50, 324, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_xdot = ((struct PyPetscVecObject *)values[2]); + __pyx_v_f = ((struct PyPetscVecObject *)values[3]); + __pyx_v_imex = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeIFunction", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 324, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 325, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdot", 0))) __PYX_ERR(50, 325, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(50, 326, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_68computeIFunction(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_xdot, __pyx_v_f, __pyx_v_imex); + + /* "petsc4py/PETSc/TS.pyx":324 + * CHKERR( TSSetIJacobianP(self.ts, Jmat, NULL, NULL) ) + * + * def computeIFunction(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, + * Vec f, imex=False): + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_68computeIFunction(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_imex) { + PetscReal __pyx_v_rval; + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeIFunction", 0); + + /* "petsc4py/PETSc/TS.pyx":327 + * t, Vec x, Vec xdot, + * Vec f, imex=False): + * cdef PetscReal rval = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscBool bval = imex + * CHKERR( TSComputeIFunction(self.ts, rval, x.vec, xdot.vec, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 327, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":328 + * Vec f, imex=False): + * cdef PetscReal rval = asReal(t) + * cdef PetscBool bval = imex # <<<<<<<<<<<<<< + * CHKERR( TSComputeIFunction(self.ts, rval, x.vec, xdot.vec, + * f.vec, bval) ) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_imex)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 328, __pyx_L1_error) + __pyx_v_bval = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":329 + * cdef PetscReal rval = asReal(t) + * cdef PetscBool bval = imex + * CHKERR( TSComputeIFunction(self.ts, rval, x.vec, xdot.vec, # <<<<<<<<<<<<<< + * f.vec, bval) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeIFunction(__pyx_v_self->ts, __pyx_v_rval, __pyx_v_x->vec, __pyx_v_xdot->vec, __pyx_v_f->vec, __pyx_v_bval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 329, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":324 + * CHKERR( TSSetIJacobianP(self.ts, Jmat, NULL, NULL) ) + * + * def computeIFunction(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, + * Vec f, imex=False): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":332 + * f.vec, bval) ) + * + * def computeIJacobian(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, Mat P=None, imex=False): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_71computeIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_70computeIJacobian[] = "TS.computeIJacobian(self, t, Vec x, Vec xdot, a, Mat J, Mat P=None, imex=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_71computeIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_xdot = 0; + PyObject *__pyx_v_a = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_imex = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeIJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_xdot,&__pyx_n_s_a,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_imex,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + + /* "petsc4py/PETSc/TS.pyx":334 + * def computeIJacobian(self, + * t, Vec x, Vec xdot, a, + * Mat J, Mat P=None, imex=False): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) + */ + values[5] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[6] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobian", 0, 5, 7, 1); __PYX_ERR(50, 332, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobian", 0, 5, 7, 2); __PYX_ERR(50, 332, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobian", 0, 5, 7, 3); __PYX_ERR(50, 332, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobian", 0, 5, 7, 4); __PYX_ERR(50, 332, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_imex); + if (value) { values[6] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeIJacobian") < 0)) __PYX_ERR(50, 332, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_xdot = ((struct PyPetscVecObject *)values[2]); + __pyx_v_a = values[3]; + __pyx_v_J = ((struct PyPetscMatObject *)values[4]); + __pyx_v_P = ((struct PyPetscMatObject *)values[5]); + __pyx_v_imex = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeIJacobian", 0, 5, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 332, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 333, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdot", 0))) __PYX_ERR(50, 333, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 334, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 334, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_70computeIJacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_xdot, __pyx_v_a, __pyx_v_J, __pyx_v_P, __pyx_v_imex); + + /* "petsc4py/PETSc/TS.pyx":332 + * f.vec, bval) ) + * + * def computeIJacobian(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, Mat P=None, imex=False): + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_70computeIJacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_imex) { + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscBool __pyx_v_bval; + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscBool __pyx_t_2; + Mat __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeIJacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":335 + * t, Vec x, Vec xdot, a, + * Mat J, Mat P=None, imex=False): + * cdef PetscReal rval1 = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = imex + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 335, __pyx_L1_error) + __pyx_v_rval1 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":336 + * Mat J, Mat P=None, imex=False): + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) # <<<<<<<<<<<<<< + * cdef PetscBool bval = imex + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_a); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 336, __pyx_L1_error) + __pyx_v_rval2 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":337 + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = imex # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_imex)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 337, __pyx_L1_error) + __pyx_v_bval = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":338 + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = imex + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TSComputeIJacobian(self.ts, rval1, x.vec, xdot.vec, rval2, + */ + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_3; + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_3; + + /* "petsc4py/PETSc/TS.pyx":339 + * cdef PetscBool bval = imex + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TSComputeIJacobian(self.ts, rval1, x.vec, xdot.vec, rval2, + * jmat, pmat, bval) ) + */ + __pyx_t_4 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":340 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( TSComputeIJacobian(self.ts, rval1, x.vec, xdot.vec, rval2, # <<<<<<<<<<<<<< + * jmat, pmat, bval) ) + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeIJacobian(__pyx_v_self->ts, __pyx_v_rval1, __pyx_v_x->vec, __pyx_v_xdot->vec, __pyx_v_rval2, __pyx_v_jmat, __pyx_v_pmat, __pyx_v_bval)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 340, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":332 + * f.vec, bval) ) + * + * def computeIJacobian(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, Mat P=None, imex=False): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":343 + * jmat, pmat, bval) ) + * + * def computeIJacobianP(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, imex=False): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_73computeIJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_72computeIJacobianP[] = "TS.computeIJacobianP(self, t, Vec x, Vec xdot, a, Mat J, imex=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_73computeIJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_xdot = 0; + PyObject *__pyx_v_a = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + PyObject *__pyx_v_imex = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeIJacobianP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_xdot,&__pyx_n_s_a,&__pyx_n_s_J,&__pyx_n_s_imex,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + + /* "petsc4py/PETSc/TS.pyx":345 + * def computeIJacobianP(self, + * t, Vec x, Vec xdot, a, + * Mat J, imex=False): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) + */ + values[5] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobianP", 0, 5, 6, 1); __PYX_ERR(50, 343, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobianP", 0, 5, 6, 2); __PYX_ERR(50, 343, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobianP", 0, 5, 6, 3); __PYX_ERR(50, 343, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeIJacobianP", 0, 5, 6, 4); __PYX_ERR(50, 343, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_imex); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeIJacobianP") < 0)) __PYX_ERR(50, 343, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_xdot = ((struct PyPetscVecObject *)values[2]); + __pyx_v_a = values[3]; + __pyx_v_J = ((struct PyPetscMatObject *)values[4]); + __pyx_v_imex = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeIJacobianP", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 343, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 344, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdot", 0))) __PYX_ERR(50, 344, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 345, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_72computeIJacobianP(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_xdot, __pyx_v_a, __pyx_v_J, __pyx_v_imex); + + /* "petsc4py/PETSc/TS.pyx":343 + * jmat, pmat, bval) ) + * + * def computeIJacobianP(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, imex=False): + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_72computeIJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_imex) { + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscBool __pyx_v_bval; + Mat __pyx_v_jmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscBool __pyx_t_2; + Mat __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeIJacobianP", 0); + + /* "petsc4py/PETSc/TS.pyx":346 + * t, Vec x, Vec xdot, a, + * Mat J, imex=False): + * cdef PetscReal rval1 = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = asBool(imex) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 346, __pyx_L1_error) + __pyx_v_rval1 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":347 + * Mat J, imex=False): + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) # <<<<<<<<<<<<<< + * cdef PetscBool bval = asBool(imex) + * cdef PetscMat jmat = J.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_a); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 347, __pyx_L1_error) + __pyx_v_rval2 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":348 + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = asBool(imex) # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat + * CHKERR( TSComputeIJacobianP(self.ts, rval1, x.vec, xdot.vec, rval2, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_imex); if (unlikely(__pyx_t_2 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(50, 348, __pyx_L1_error) + __pyx_v_bval = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":349 + * cdef PetscReal rval2 = asReal(a) + * cdef PetscBool bval = asBool(imex) + * cdef PetscMat jmat = J.mat # <<<<<<<<<<<<<< + * CHKERR( TSComputeIJacobianP(self.ts, rval1, x.vec, xdot.vec, rval2, + * jmat, bval) ) + */ + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_3; + + /* "petsc4py/PETSc/TS.pyx":350 + * cdef PetscBool bval = asBool(imex) + * cdef PetscMat jmat = J.mat + * CHKERR( TSComputeIJacobianP(self.ts, rval1, x.vec, xdot.vec, rval2, # <<<<<<<<<<<<<< + * jmat, bval) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeIJacobianP(__pyx_v_self->ts, __pyx_v_rval1, __pyx_v_x->vec, __pyx_v_xdot->vec, __pyx_v_rval2, __pyx_v_jmat, __pyx_v_bval)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 350, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":343 + * jmat, pmat, bval) ) + * + * def computeIJacobianP(self, # <<<<<<<<<<<<<< + * t, Vec x, Vec xdot, a, + * Mat J, imex=False): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeIJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":353 + * jmat, bval) ) + * + * def getIFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_75getIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_74getIFunction[] = "TS.getIFunction(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_75getIFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIFunction (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIFunction", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIFunction", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_74getIFunction(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_74getIFunction(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIFunction", 0); + + /* "petsc4py/PETSc/TS.pyx":354 + * + * def getIFunction(self): + * cdef Vec f = Vec() # <<<<<<<<<<<<<< + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_f = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":355 + * def getIFunction(self): + * cdef Vec f = Vec() + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__ifunction__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetIFunction(__pyx_v_self->ts, (&__pyx_v_f->vec), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 355, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":356 + * cdef Vec f = Vec() + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) # <<<<<<<<<<<<<< + * cdef object function = self.get_attr('__ifunction__') + * return (f, function) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_f->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":357 + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__ifunction__') # <<<<<<<<<<<<<< + * return (f, function) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ifunction__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":358 + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__ifunction__') + * return (f, function) # <<<<<<<<<<<<<< + * + * def getIJacobian(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_function); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":353 + * jmat, bval) ) + * + * def getIFunction(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetIFunction(self.ts, &f.vec, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getIFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_f); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":360 + * return (f, function) + * + * def getIJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_77getIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_76getIJacobian[] = "TS.getIJacobian(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_77getIJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIJacobian (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIJacobian", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIJacobian", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_76getIJacobian(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_76getIJacobian(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_jacobian = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIJacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":361 + * + * def getIJacobian(self): + * cdef Mat J = Mat(), P = Mat() # <<<<<<<<<<<<<< + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":362 + * def getIJacobian(self): + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__ijacobian__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetIJacobian(__pyx_v_self->ts, (&__pyx_v_J->mat), (&__pyx_v_P->mat), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 362, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":363 + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * cdef object jacobian = self.get_attr('__ijacobian__') + * return (J, P, jacobian) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_J->__pyx_base.obj)); + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":364 + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__ijacobian__') # <<<<<<<<<<<<<< + * return (J, P, jacobian) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__ijacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":365 + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__ijacobian__') + * return (J, P, jacobian) # <<<<<<<<<<<<<< + * + * def setI2Function(self, function, Vec f=None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_jacobian); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":360 + * return (f, function) + * + * def getIJacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetIJacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getIJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":367 + * return (J, P, jacobian) + * + * def setI2Function(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_79setI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_78setI2Function[] = "TS.setI2Function(self, function, Vec f=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_79setI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setI2Function (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_f,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setI2Function") < 0)) __PYX_ERR(50, 367, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setI2Function", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 367, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setI2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "f", 0))) __PYX_ERR(50, 367, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_78setI2Function(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_function, __pyx_v_f, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_78setI2Function(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_function, struct PyPetscVecObject *__pyx_v_f, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_fvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setI2Function", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":368 + * + * def setI2Function(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL # <<<<<<<<<<<<<< + * if f is not None: fvec = f.vec + * if function is not None: + */ + __pyx_v_fvec = NULL; + + /* "petsc4py/PETSc/TS.pyx":369 + * def setI2Function(self, function, Vec f=None, args=None, kargs=None): + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_f) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_f->vec; + __pyx_v_fvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":370 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_function != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":371 + * if f is not None: fvec = f.vec + * if function is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":372 + * if function is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr('__i2function__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":373 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__i2function__', context) + * CHKERR( TSSetI2Function(self.ts, fvec, TS_I2Function, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":374 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr('__i2function__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetI2Function(self.ts, fvec, TS_I2Function, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__i2function__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":375 + * context = (function, args, kargs) + * self.set_attr('__i2function__', context) + * CHKERR( TSSetI2Function(self.ts, fvec, TS_I2Function, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetI2Function(self.ts, fvec, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetI2Function(__pyx_v_self->ts, __pyx_v_fvec, __pyx_f_8petsc4py_5PETSc_TS_I2Function, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":370 + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":377 + * CHKERR( TSSetI2Function(self.ts, fvec, TS_I2Function, context) ) + * else: + * CHKERR( TSSetI2Function(self.ts, fvec, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetI2Function(__pyx_v_self->ts, __pyx_v_fvec, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 377, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":367 + * return (J, P, jacobian) + * + * def setI2Function(self, function, Vec f=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscVec fvec=NULL + * if f is not None: fvec = f.vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setI2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":379 + * CHKERR( TSSetI2Function(self.ts, fvec, NULL, NULL) ) + * + * def setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_81setI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_80setI2Jacobian[] = "TS.setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_81setI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setI2Jacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setI2Jacobian") < 0)) __PYX_ERR(50, 379, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setI2Jacobian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 379, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setI2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(50, 379, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 379, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_80setI2Jacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_80setI2Jacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setI2Jacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":380 + * + * def setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TS.pyx":381 + * def setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":382 + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if jacobian is not None: + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TS.pyx":383 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":384 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_jacobian != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":385 + * if P is not None: Pmat = P.mat + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":386 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__i2jacobian__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":387 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__i2jacobian__', context) + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, TS_I2Jacobian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":388 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__i2jacobian__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, TS_I2Jacobian, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__i2jacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":389 + * context = (jacobian, args, kargs) + * self.set_attr('__i2jacobian__', context) + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, TS_I2Jacobian, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetI2Jacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TS_I2Jacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 389, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":384 + * cdef PetscMat Pmat=Jmat + * if P is not None: Pmat = P.mat + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/TS.pyx":391 + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, TS_I2Jacobian, context) ) + * else: + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetI2Jacobian(__pyx_v_self->ts, __pyx_v_Jmat, __pyx_v_Pmat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 391, __pyx_L1_error) + } + __pyx_L5:; + + /* "petsc4py/PETSc/TS.pyx":379 + * CHKERR( TSSetI2Function(self.ts, fvec, NULL, NULL) ) + * + * def setI2Jacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Jmat=NULL + * if J is not None: Jmat = J.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setI2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":393 + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeI2Function(self.ts, rval, x.vec, xdot.vec, xdotdot.vec, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_83computeI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_82computeI2Function[] = "TS.computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_83computeI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_xdot = 0; + struct PyPetscVecObject *__pyx_v_xdotdot = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeI2Function (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_xdot,&__pyx_n_s_xdotdot,&__pyx_n_s_f,0}; + PyObject* values[5] = {0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Function", 1, 5, 5, 1); __PYX_ERR(50, 393, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Function", 1, 5, 5, 2); __PYX_ERR(50, 393, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdotdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Function", 1, 5, 5, 3); __PYX_ERR(50, 393, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Function", 1, 5, 5, 4); __PYX_ERR(50, 393, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeI2Function") < 0)) __PYX_ERR(50, 393, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_xdot = ((struct PyPetscVecObject *)values[2]); + __pyx_v_xdotdot = ((struct PyPetscVecObject *)values[3]); + __pyx_v_f = ((struct PyPetscVecObject *)values[4]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeI2Function", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 393, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeI2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdot", 0))) __PYX_ERR(50, 393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdotdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdotdot", 0))) __PYX_ERR(50, 393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(50, 393, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_82computeI2Function(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_xdot, __pyx_v_xdotdot, __pyx_v_f); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_82computeI2Function(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_xdotdot, struct PyPetscVecObject *__pyx_v_f) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeI2Function", 0); + + /* "petsc4py/PETSc/TS.pyx":394 + * + * def computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f): + * cdef PetscReal rval = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSComputeI2Function(self.ts, rval, x.vec, xdot.vec, xdotdot.vec, + * f.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 394, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":395 + * def computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f): + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeI2Function(self.ts, rval, x.vec, xdot.vec, xdotdot.vec, # <<<<<<<<<<<<<< + * f.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeI2Function(__pyx_v_self->ts, __pyx_v_rval, __pyx_v_x->vec, __pyx_v_xdot->vec, __pyx_v_xdotdot->vec, __pyx_v_f->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 395, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":393 + * CHKERR( TSSetI2Jacobian(self.ts, Jmat, Pmat, NULL, NULL) ) + * + * def computeI2Function(self, t, Vec x, Vec xdot, Vec xdotdot, Vec f): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeI2Function(self.ts, rval, x.vec, xdot.vec, xdotdot.vec, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeI2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":398 + * f.vec) ) + * + * def computeI2Jacobian(self, t, Vec x, Vec xdot, Vec xdotdot, v, a, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(v) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_85computeI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_84computeI2Jacobian[] = "TS.computeI2Jacobian(self, t, Vec x, Vec xdot, Vec xdotdot, v, a, Mat J, Mat P=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_85computeI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_xdot = 0; + struct PyPetscVecObject *__pyx_v_xdotdot = 0; + PyObject *__pyx_v_v = 0; + PyObject *__pyx_v_a = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeI2Jacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_xdot,&__pyx_n_s_xdotdot,&__pyx_n_s_v,&__pyx_n_s_a,&__pyx_n_s_J,&__pyx_n_s_P,0}; + PyObject* values[8] = {0,0,0,0,0,0,0,0}; + values[7] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 1); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 2); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xdotdot)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 3); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 4); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 5); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, 6); __PYX_ERR(50, 398, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[7] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeI2Jacobian") < 0)) __PYX_ERR(50, 398, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_xdot = ((struct PyPetscVecObject *)values[2]); + __pyx_v_xdotdot = ((struct PyPetscVecObject *)values[3]); + __pyx_v_v = values[4]; + __pyx_v_a = values[5]; + __pyx_v_J = ((struct PyPetscMatObject *)values[6]); + __pyx_v_P = ((struct PyPetscMatObject *)values[7]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeI2Jacobian", 0, 7, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 398, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeI2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 398, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdot", 0))) __PYX_ERR(50, 398, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xdotdot), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xdotdot", 0))) __PYX_ERR(50, 398, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 398, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(50, 398, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_84computeI2Jacobian(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_xdot, __pyx_v_xdotdot, __pyx_v_v, __pyx_v_a, __pyx_v_J, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_84computeI2Jacobian(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_xdot, struct PyPetscVecObject *__pyx_v_xdotdot, PyObject *__pyx_v_v, PyObject *__pyx_v_a, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P) { + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscReal __pyx_v_rval3; + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + Mat __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeI2Jacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":399 + * + * def computeI2Jacobian(self, t, Vec x, Vec xdot, Vec xdotdot, v, a, Mat J, Mat P=None): + * cdef PetscReal rval1 = asReal(t) # <<<<<<<<<<<<<< + * cdef PetscReal rval2 = asReal(v) + * cdef PetscReal rval3 = asReal(a) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 399, __pyx_L1_error) + __pyx_v_rval1 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":400 + * def computeI2Jacobian(self, t, Vec x, Vec xdot, Vec xdotdot, v, a, Mat J, Mat P=None): + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(v) # <<<<<<<<<<<<<< + * cdef PetscReal rval3 = asReal(a) + * cdef PetscMat jmat = J.mat, pmat = J.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_v); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 400, __pyx_L1_error) + __pyx_v_rval2 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":401 + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(v) + * cdef PetscReal rval3 = asReal(a) # <<<<<<<<<<<<<< + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_a); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 401, __pyx_L1_error) + __pyx_v_rval3 = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":402 + * cdef PetscReal rval2 = asReal(v) + * cdef PetscReal rval3 = asReal(a) + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TSComputeI2Jacobian(self.ts, rval1, x.vec, xdot.vec, xdotdot.vec, rval2, rval3, + */ + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_2; + __pyx_t_2 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":403 + * cdef PetscReal rval3 = asReal(a) + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TSComputeI2Jacobian(self.ts, rval1, x.vec, xdot.vec, xdotdot.vec, rval2, rval3, + * jmat, pmat) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_t_2 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_2; + } + + /* "petsc4py/PETSc/TS.pyx":404 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( TSComputeI2Jacobian(self.ts, rval1, x.vec, xdot.vec, xdotdot.vec, rval2, rval3, # <<<<<<<<<<<<<< + * jmat, pmat) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeI2Jacobian(__pyx_v_self->ts, __pyx_v_rval1, __pyx_v_x->vec, __pyx_v_xdot->vec, __pyx_v_xdotdot->vec, __pyx_v_rval2, __pyx_v_rval3, __pyx_v_jmat, __pyx_v_pmat)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 404, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":398 + * f.vec) ) + * + * def computeI2Jacobian(self, t, Vec x, Vec xdot, Vec xdotdot, v, a, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = asReal(t) + * cdef PetscReal rval2 = asReal(v) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeI2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":407 + * jmat, pmat) ) + * + * def getI2Function(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_87getI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_86getI2Function[] = "TS.getI2Function(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_87getI2Function(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getI2Function (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getI2Function", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getI2Function", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_86getI2Function(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_86getI2Function(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_f = 0; + PyObject *__pyx_v_function = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getI2Function", 0); + + /* "petsc4py/PETSc/TS.pyx":408 + * + * def getI2Function(self): + * cdef Vec f = Vec() # <<<<<<<<<<<<<< + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_f = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":409 + * def getI2Function(self): + * cdef Vec f = Vec() + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__i2function__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetI2Function(__pyx_v_self->ts, (&__pyx_v_f->vec), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 409, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":410 + * cdef Vec f = Vec() + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) # <<<<<<<<<<<<<< + * cdef object function = self.get_attr('__i2function__') + * return (f, function) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_f->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":411 + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__i2function__') # <<<<<<<<<<<<<< + * return (f, function) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__i2function__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_function = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":412 + * PetscINCREF(f.obj) + * cdef object function = self.get_attr('__i2function__') + * return (f, function) # <<<<<<<<<<<<<< + * + * def getI2Jacobian(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_f)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_f)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_f)); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_function); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":407 + * jmat, pmat) ) + * + * def getI2Function(self): # <<<<<<<<<<<<<< + * cdef Vec f = Vec() + * CHKERR( TSGetI2Function(self.ts, &f.vec, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getI2Function", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_f); + __Pyx_XDECREF(__pyx_v_function); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":414 + * return (f, function) + * + * def getI2Jacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_89getI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_88getI2Jacobian[] = "TS.getI2Jacobian(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_89getI2Jacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getI2Jacobian (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getI2Jacobian", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getI2Jacobian", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_88getI2Jacobian(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_88getI2Jacobian(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_jacobian = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getI2Jacobian", 0); + + /* "petsc4py/PETSc/TS.pyx":415 + * + * def getI2Jacobian(self): + * cdef Mat J = Mat(), P = Mat() # <<<<<<<<<<<<<< + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":416 + * def getI2Jacobian(self): + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__i2jacobian__') + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetI2Jacobian(__pyx_v_self->ts, (&__pyx_v_J->mat), (&__pyx_v_P->mat), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 416, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":417 + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * cdef object jacobian = self.get_attr('__i2jacobian__') + * return (J, P, jacobian) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_J->__pyx_base.obj)); + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":418 + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__i2jacobian__') # <<<<<<<<<<<<<< + * return (J, P, jacobian) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__i2jacobian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_jacobian = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":419 + * PetscINCREF(J.obj); PetscINCREF(P.obj) + * cdef object jacobian = self.get_attr('__i2jacobian__') + * return (J, P, jacobian) # <<<<<<<<<<<<<< + * + * # --- solution vector --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_jacobian); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":414 + * return (f, function) + * + * def getI2Jacobian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat(), P = Mat() + * CHKERR( TSGetI2Jacobian(self.ts, &J.mat, &P.mat, NULL, NULL) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getI2Jacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_jacobian); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":423 + * # --- solution vector --- + * + * def setSolution(self, Vec u): # <<<<<<<<<<<<<< + * CHKERR( TSSetSolution(self.ts, u.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_91setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_90setSolution[] = "TS.setSolution(self, Vec u)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_91setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_u = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSolution (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_u,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSolution") < 0)) __PYX_ERR(50, 423, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_u = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSolution", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 423, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "u", 0))) __PYX_ERR(50, 423, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_90setSolution(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_u); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_90setSolution(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSolution", 0); + + /* "petsc4py/PETSc/TS.pyx":424 + * + * def setSolution(self, Vec u): + * CHKERR( TSSetSolution(self.ts, u.vec) ) # <<<<<<<<<<<<<< + * + * def getSolution(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetSolution(__pyx_v_self->ts, __pyx_v_u->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 424, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":423 + * # --- solution vector --- + * + * def setSolution(self, Vec u): # <<<<<<<<<<<<<< + * CHKERR( TSSetSolution(self.ts, u.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":426 + * CHKERR( TSSetSolution(self.ts, u.vec) ) + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec u = Vec() + * CHKERR( TSGetSolution(self.ts, &u.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_93getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_92getSolution[] = "TS.getSolution(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_93getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolution (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolution", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolution", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_92getSolution(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_92getSolution(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_u = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolution", 0); + + /* "petsc4py/PETSc/TS.pyx":427 + * + * def getSolution(self): + * cdef Vec u = Vec() # <<<<<<<<<<<<<< + * CHKERR( TSGetSolution(self.ts, &u.vec) ) + * PetscINCREF(u.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_u = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":428 + * def getSolution(self): + * cdef Vec u = Vec() + * CHKERR( TSGetSolution(self.ts, &u.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(u.obj) + * return u + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSolution(__pyx_v_self->ts, (&__pyx_v_u->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 428, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":429 + * cdef Vec u = Vec() + * CHKERR( TSGetSolution(self.ts, &u.vec) ) + * PetscINCREF(u.obj) # <<<<<<<<<<<<<< + * return u + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_u->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":430 + * CHKERR( TSGetSolution(self.ts, &u.vec) ) + * PetscINCREF(u.obj) + * return u # <<<<<<<<<<<<<< + * + * def setSolution2(self, Vec u, Vec v): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_u)); + __pyx_r = ((PyObject *)__pyx_v_u); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":426 + * CHKERR( TSSetSolution(self.ts, u.vec) ) + * + * def getSolution(self): # <<<<<<<<<<<<<< + * cdef Vec u = Vec() + * CHKERR( TSGetSolution(self.ts, &u.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_u); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":432 + * return u + * + * def setSolution2(self, Vec u, Vec v): # <<<<<<<<<<<<<< + * CHKERR( TS2SetSolution(self.ts, u.vec, v.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_95setSolution2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_94setSolution2[] = "TS.setSolution2(self, Vec u, Vec v)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_95setSolution2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_u = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSolution2 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_u,&__pyx_n_s_v,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_v)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setSolution2", 1, 2, 2, 1); __PYX_ERR(50, 432, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSolution2") < 0)) __PYX_ERR(50, 432, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_u = ((struct PyPetscVecObject *)values[0]); + __pyx_v_v = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSolution2", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 432, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setSolution2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "u", 0))) __PYX_ERR(50, 432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_v), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "v", 0))) __PYX_ERR(50, 432, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_94setSolution2(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_u, __pyx_v_v); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_94setSolution2(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u, struct PyPetscVecObject *__pyx_v_v) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSolution2", 0); + + /* "petsc4py/PETSc/TS.pyx":433 + * + * def setSolution2(self, Vec u, Vec v): + * CHKERR( TS2SetSolution(self.ts, u.vec, v.vec) ) # <<<<<<<<<<<<<< + * + * def getSolution2(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TS2SetSolution(__pyx_v_self->ts, __pyx_v_u->vec, __pyx_v_v->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 433, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":432 + * return u + * + * def setSolution2(self, Vec u, Vec v): # <<<<<<<<<<<<<< + * CHKERR( TS2SetSolution(self.ts, u.vec, v.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setSolution2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":435 + * CHKERR( TS2SetSolution(self.ts, u.vec, v.vec) ) + * + * def getSolution2(self): # <<<<<<<<<<<<<< + * cdef Vec u = Vec() + * cdef Vec v = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_97getSolution2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_96getSolution2[] = "TS.getSolution2(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_97getSolution2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolution2 (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolution2", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolution2", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_96getSolution2(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_96getSolution2(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_u = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolution2", 0); + + /* "petsc4py/PETSc/TS.pyx":436 + * + * def getSolution2(self): + * cdef Vec u = Vec() # <<<<<<<<<<<<<< + * cdef Vec v = Vec() + * CHKERR( TS2GetSolution(self.ts, &u.vec, &v.vec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 436, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_u = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":437 + * def getSolution2(self): + * cdef Vec u = Vec() + * cdef Vec v = Vec() # <<<<<<<<<<<<<< + * CHKERR( TS2GetSolution(self.ts, &u.vec, &v.vec) ) + * PetscINCREF(u.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_v = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":438 + * cdef Vec u = Vec() + * cdef Vec v = Vec() + * CHKERR( TS2GetSolution(self.ts, &u.vec, &v.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(u.obj) + * PetscINCREF(v.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TS2GetSolution(__pyx_v_self->ts, (&__pyx_v_u->vec), (&__pyx_v_v->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 438, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":439 + * cdef Vec v = Vec() + * CHKERR( TS2GetSolution(self.ts, &u.vec, &v.vec) ) + * PetscINCREF(u.obj) # <<<<<<<<<<<<<< + * PetscINCREF(v.obj) + * return (u, v) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_u->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":440 + * CHKERR( TS2GetSolution(self.ts, &u.vec, &v.vec) ) + * PetscINCREF(u.obj) + * PetscINCREF(v.obj) # <<<<<<<<<<<<<< + * return (u, v) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_v->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":441 + * PetscINCREF(u.obj) + * PetscINCREF(v.obj) + * return (u, v) # <<<<<<<<<<<<<< + * + * # --- time span --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_u)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_u)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_u)); + __Pyx_INCREF(((PyObject *)__pyx_v_v)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_v)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_v)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":435 + * CHKERR( TS2SetSolution(self.ts, u.vec, v.vec) ) + * + * def getSolution2(self): # <<<<<<<<<<<<<< + * cdef Vec u = Vec() + * cdef Vec v = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSolution2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_u); + __Pyx_XDECREF((PyObject *)__pyx_v_v); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":445 + * # --- time span --- + * + * def setTimeSpan(self, tspan): # <<<<<<<<<<<<<< + * cdef PetscInt nt = 0 + * cdef PetscReal *rtspan = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_99setTimeSpan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_98setTimeSpan[] = "TS.setTimeSpan(self, tspan)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_99setTimeSpan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tspan = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTimeSpan (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tspan,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tspan)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTimeSpan") < 0)) __PYX_ERR(50, 445, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tspan = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTimeSpan", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 445, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTimeSpan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_98setTimeSpan(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_tspan); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_98setTimeSpan(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_tspan) { + PetscInt __pyx_v_nt; + PetscReal *__pyx_v_rtspan; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTimeSpan", 0); + + /* "petsc4py/PETSc/TS.pyx":446 + * + * def setTimeSpan(self, tspan): + * cdef PetscInt nt = 0 # <<<<<<<<<<<<<< + * cdef PetscReal *rtspan = NULL + * cdef object tmp = oarray_r(tspan, &nt, &rtspan) + */ + __pyx_v_nt = 0; + + /* "petsc4py/PETSc/TS.pyx":447 + * def setTimeSpan(self, tspan): + * cdef PetscInt nt = 0 + * cdef PetscReal *rtspan = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_r(tspan, &nt, &rtspan) + * CHKERR( TSSetTimeSpan(self.ts, nt, rtspan) ) + */ + __pyx_v_rtspan = NULL; + + /* "petsc4py/PETSc/TS.pyx":448 + * cdef PetscInt nt = 0 + * cdef PetscReal *rtspan = NULL + * cdef object tmp = oarray_r(tspan, &nt, &rtspan) # <<<<<<<<<<<<<< + * CHKERR( TSSetTimeSpan(self.ts, nt, rtspan) ) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_r(__pyx_v_tspan, (&__pyx_v_nt), (&__pyx_v_rtspan))); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_tmp = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":449 + * cdef PetscReal *rtspan = NULL + * cdef object tmp = oarray_r(tspan, &nt, &rtspan) + * CHKERR( TSSetTimeSpan(self.ts, nt, rtspan) ) # <<<<<<<<<<<<<< + * + * def getTimeSpan(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetTimeSpan(__pyx_v_self->ts, __pyx_v_nt, __pyx_v_rtspan)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 449, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":445 + * # --- time span --- + * + * def setTimeSpan(self, tspan): # <<<<<<<<<<<<<< + * cdef PetscInt nt = 0 + * cdef PetscReal *rtspan = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTimeSpan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":451 + * CHKERR( TSSetTimeSpan(self.ts, nt, rtspan) ) + * + * def getTimeSpan(self): # <<<<<<<<<<<<<< + * cdef const PetscReal *rtspan = NULL + * cdef PetscInt nt = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_101getTimeSpan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_100getTimeSpan[] = "TS.getTimeSpan(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_101getTimeSpan(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTimeSpan (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTimeSpan", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTimeSpan", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_100getTimeSpan(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_100getTimeSpan(struct PyPetscTSObject *__pyx_v_self) { + PetscReal const *__pyx_v_rtspan; + PetscInt __pyx_v_nt; + PyObject *__pyx_v_tspan = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTimeSpan", 0); + + /* "petsc4py/PETSc/TS.pyx":452 + * + * def getTimeSpan(self): + * cdef const PetscReal *rtspan = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nt = 0 + * CHKERR( TSGetTimeSpan(self.ts, &nt, &rtspan) ) + */ + __pyx_v_rtspan = NULL; + + /* "petsc4py/PETSc/TS.pyx":453 + * def getTimeSpan(self): + * cdef const PetscReal *rtspan = NULL + * cdef PetscInt nt = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetTimeSpan(self.ts, &nt, &rtspan) ) + * cdef object tspan = array_r(nt, rtspan) + */ + __pyx_v_nt = 0; + + /* "petsc4py/PETSc/TS.pyx":454 + * cdef const PetscReal *rtspan = NULL + * cdef PetscInt nt = 0 + * CHKERR( TSGetTimeSpan(self.ts, &nt, &rtspan) ) # <<<<<<<<<<<<<< + * cdef object tspan = array_r(nt, rtspan) + * return tspan + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetTimeSpan(__pyx_v_self->ts, (&__pyx_v_nt), (&__pyx_v_rtspan))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 454, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":455 + * cdef PetscInt nt = 0 + * CHKERR( TSGetTimeSpan(self.ts, &nt, &rtspan) ) + * cdef object tspan = array_r(nt, rtspan) # <<<<<<<<<<<<<< + * return tspan + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r(__pyx_v_nt, __pyx_v_rtspan)); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_tspan = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/TS.pyx":456 + * CHKERR( TSGetTimeSpan(self.ts, &nt, &rtspan) ) + * cdef object tspan = array_r(nt, rtspan) + * return tspan # <<<<<<<<<<<<<< + * + * def getTimeSpanSolutions(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_tspan); + __pyx_r = __pyx_v_tspan; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":451 + * CHKERR( TSSetTimeSpan(self.ts, nt, rtspan) ) + * + * def getTimeSpan(self): # <<<<<<<<<<<<<< + * cdef const PetscReal *rtspan = NULL + * cdef PetscInt nt = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTimeSpan", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tspan); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":458 + * return tspan + * + * def getTimeSpanSolutions(self): # <<<<<<<<<<<<<< + * cdef PetscInt nt = 0 + * cdef PetscVec *sols = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_103getTimeSpanSolutions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_102getTimeSpanSolutions[] = "TS.getTimeSpanSolutions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_103getTimeSpanSolutions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTimeSpanSolutions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTimeSpanSolutions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTimeSpanSolutions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_102getTimeSpanSolutions(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_102getTimeSpanSolutions(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_nt; + Vec *__pyx_v_sols; + PyObject *__pyx_v_sollist = 0; + long __pyx_9genexpr11__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTimeSpanSolutions", 0); + + /* "petsc4py/PETSc/TS.pyx":459 + * + * def getTimeSpanSolutions(self): + * cdef PetscInt nt = 0 # <<<<<<<<<<<<<< + * cdef PetscVec *sols = NULL + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) + */ + __pyx_v_nt = 0; + + /* "petsc4py/PETSc/TS.pyx":460 + * def getTimeSpanSolutions(self): + * cdef PetscInt nt = 0 + * cdef PetscVec *sols = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) + * cdef object sollist = None + */ + __pyx_v_sols = NULL; + + /* "petsc4py/PETSc/TS.pyx":461 + * cdef PetscInt nt = 0 + * cdef PetscVec *sols = NULL + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) # <<<<<<<<<<<<<< + * cdef object sollist = None + * if sols != NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetTimeSpanSolutions(__pyx_v_self->ts, (&__pyx_v_nt), (&__pyx_v_sols))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 461, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":462 + * cdef PetscVec *sols = NULL + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) + * cdef object sollist = None # <<<<<<<<<<<<<< + * if sols != NULL: + * sollist = [ref_Vec(sols[i]) for i from 0 <= i < nt] + */ + __Pyx_INCREF(Py_None); + __pyx_v_sollist = Py_None; + + /* "petsc4py/PETSc/TS.pyx":463 + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) + * cdef object sollist = None + * if sols != NULL: # <<<<<<<<<<<<<< + * sollist = [ref_Vec(sols[i]) for i from 0 <= i < nt] + * return sollist + */ + __pyx_t_2 = ((__pyx_v_sols != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":464 + * cdef object sollist = None + * if sols != NULL: + * sollist = [ref_Vec(sols[i]) for i from 0 <= i < nt] # <<<<<<<<<<<<<< + * return sollist + * + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_nt; + for (__pyx_9genexpr11__pyx_v_i = 0; __pyx_9genexpr11__pyx_v_i < __pyx_t_4; __pyx_9genexpr11__pyx_v_i++) { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_sols[__pyx_9genexpr11__pyx_v_i]))); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(50, 464, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_sollist, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":463 + * CHKERR( TSGetTimeSpanSolutions(self.ts, &nt, &sols) ) + * cdef object sollist = None + * if sols != NULL: # <<<<<<<<<<<<<< + * sollist = [ref_Vec(sols[i]) for i from 0 <= i < nt] + * return sollist + */ + } + + /* "petsc4py/PETSc/TS.pyx":465 + * if sols != NULL: + * sollist = [ref_Vec(sols[i]) for i from 0 <= i < nt] + * return sollist # <<<<<<<<<<<<<< + * + * # --- inner solver --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_sollist); + __pyx_r = __pyx_v_sollist; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":458 + * return tspan + * + * def getTimeSpanSolutions(self): # <<<<<<<<<<<<<< + * cdef PetscInt nt = 0 + * cdef PetscVec *sols = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTimeSpanSolutions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_sollist); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":469 + * # --- inner solver --- + * + * def getSNES(self): # <<<<<<<<<<<<<< + * cdef SNES snes = SNES() + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_105getSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_104getSNES[] = "TS.getSNES(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_105getSNES(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSNES (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSNES", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSNES", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_104getSNES(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_104getSNES(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscSNESObject *__pyx_v_snes = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSNES", 0); + + /* "petsc4py/PETSc/TS.pyx":470 + * + * def getSNES(self): + * cdef SNES snes = SNES() # <<<<<<<<<<<<<< + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) + * PetscINCREF(snes.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_snes = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":471 + * def getSNES(self): + * cdef SNES snes = SNES() + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) # <<<<<<<<<<<<<< + * PetscINCREF(snes.obj) + * return snes + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSNES(__pyx_v_self->ts, (&__pyx_v_snes->snes))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 471, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":472 + * cdef SNES snes = SNES() + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) + * PetscINCREF(snes.obj) # <<<<<<<<<<<<<< + * return snes + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_snes->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":473 + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) + * PetscINCREF(snes.obj) + * return snes # <<<<<<<<<<<<<< + * + * def getKSP(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_snes)); + __pyx_r = ((PyObject *)__pyx_v_snes); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":469 + * # --- inner solver --- + * + * def getSNES(self): # <<<<<<<<<<<<<< + * cdef SNES snes = SNES() + * CHKERR( TSGetSNES(self.ts, &snes.snes) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_snes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":475 + * return snes + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_107getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_106getKSP[] = "TS.getKSP(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_107getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_106getKSP(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_106getKSP(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSP", 0); + + /* "petsc4py/PETSc/TS.pyx":476 + * + * def getKSP(self): + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":477 + * def getKSP(self): + * cdef KSP ksp = KSP() + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetKSP(__pyx_v_self->ts, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 477, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":478 + * cdef KSP ksp = KSP() + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":479 + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":475 + * return snes + * + * def getKSP(self): # <<<<<<<<<<<<<< + * cdef KSP ksp = KSP() + * CHKERR( TSGetKSP(self.ts, &ksp.ksp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":483 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( TSGetDM(self.ts, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_109getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_108getDM[] = "TS.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_109getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_108getDM(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_108getDM(struct PyPetscTSObject *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/TS.pyx":484 + * + * def getDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetDM(self.ts, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/TS.pyx":485 + * def getDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( TSGetDM(self.ts, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetDM(__pyx_v_self->ts, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 485, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":486 + * cdef PetscDM newdm = NULL + * CHKERR( TSGetDM(self.ts, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(50, 486, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":487 + * CHKERR( TSGetDM(self.ts, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/TS.pyx":488 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":489 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":483 + * # --- discretization space --- + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( TSGetDM(self.ts, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":491 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( TSSetDM(self.ts, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_111setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_110setDM[] = "TS.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_111setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(50, 491, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 491, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(50, 491, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_110setDM(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_110setDM(struct PyPetscTSObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/TS.pyx":492 + * + * def setDM(self, DM dm): + * CHKERR( TSSetDM(self.ts, dm.dm) ) # <<<<<<<<<<<<<< + * + * # --- customization --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetDM(__pyx_v_self->ts, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 492, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":491 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( TSSetDM(self.ts, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":496 + * # --- customization --- + * + * def setTime(self, t): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSSetTime(self.ts, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_113setTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_112setTime[] = "TS.setTime(self, t)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_113setTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTime (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTime") < 0)) __PYX_ERR(50, 496, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_t = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTime", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 496, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_112setTime(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_112setTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTime", 0); + + /* "petsc4py/PETSc/TS.pyx":497 + * + * def setTime(self, t): + * cdef PetscReal rval = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSSetTime(self.ts, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 497, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":498 + * def setTime(self, t): + * cdef PetscReal rval = asReal(t) + * CHKERR( TSSetTime(self.ts, rval) ) # <<<<<<<<<<<<<< + * + * def getTime(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetTime(__pyx_v_self->ts, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 498, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":496 + * # --- customization --- + * + * def setTime(self, t): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSSetTime(self.ts, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":500 + * CHKERR( TSSetTime(self.ts, rval) ) + * + * def getTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetTime(self.ts, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_115getTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_114getTime[] = "TS.getTime(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_115getTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_114getTime(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_114getTime(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTime", 0); + + /* "petsc4py/PETSc/TS.pyx":501 + * + * def getTime(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetTime(self.ts, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/TS.pyx":502 + * def getTime(self): + * cdef PetscReal rval = 0 + * CHKERR( TSGetTime(self.ts, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetTime(__pyx_v_self->ts, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 502, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":503 + * cdef PetscReal rval = 0 + * CHKERR( TSGetTime(self.ts, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getPrevTime(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":500 + * CHKERR( TSSetTime(self.ts, rval) ) + * + * def getTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetTime(self.ts, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":505 + * return toReal(rval) + * + * def getPrevTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetPrevTime(self.ts, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_117getPrevTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_116getPrevTime[] = "TS.getPrevTime(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_117getPrevTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPrevTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPrevTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPrevTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_116getPrevTime(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_116getPrevTime(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPrevTime", 0); + + /* "petsc4py/PETSc/TS.pyx":506 + * + * def getPrevTime(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetPrevTime(self.ts, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/TS.pyx":507 + * def getPrevTime(self): + * cdef PetscReal rval = 0 + * CHKERR( TSGetPrevTime(self.ts, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetPrevTime(__pyx_v_self->ts, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 507, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":508 + * cdef PetscReal rval = 0 + * CHKERR( TSGetPrevTime(self.ts, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getSolveTime(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":505 + * return toReal(rval) + * + * def getPrevTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetPrevTime(self.ts, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getPrevTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":510 + * return toReal(rval) + * + * def getSolveTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetSolveTime(self.ts, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_119getSolveTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_118getSolveTime[] = "TS.getSolveTime(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_119getSolveTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolveTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolveTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolveTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_118getSolveTime(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_118getSolveTime(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolveTime", 0); + + /* "petsc4py/PETSc/TS.pyx":511 + * + * def getSolveTime(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetSolveTime(self.ts, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/TS.pyx":512 + * def getSolveTime(self): + * cdef PetscReal rval = 0 + * CHKERR( TSGetSolveTime(self.ts, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSolveTime(__pyx_v_self->ts, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 512, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":513 + * cdef PetscReal rval = 0 + * CHKERR( TSGetSolveTime(self.ts, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def setTimeStep(self, time_step): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":510 + * return toReal(rval) + * + * def getSolveTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetSolveTime(self.ts, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSolveTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":515 + * return toReal(rval) + * + * def setTimeStep(self, time_step): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(time_step) + * CHKERR( TSSetTimeStep(self.ts, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_121setTimeStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_120setTimeStep[] = "TS.setTimeStep(self, time_step)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_121setTimeStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_time_step = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTimeStep (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_time_step,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_time_step)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTimeStep") < 0)) __PYX_ERR(50, 515, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_time_step = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTimeStep", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 515, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTimeStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_120setTimeStep(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_time_step); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_120setTimeStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_time_step) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTimeStep", 0); + + /* "petsc4py/PETSc/TS.pyx":516 + * + * def setTimeStep(self, time_step): + * cdef PetscReal rval = asReal(time_step) # <<<<<<<<<<<<<< + * CHKERR( TSSetTimeStep(self.ts, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_time_step); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 516, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":517 + * def setTimeStep(self, time_step): + * cdef PetscReal rval = asReal(time_step) + * CHKERR( TSSetTimeStep(self.ts, rval) ) # <<<<<<<<<<<<<< + * + * def getTimeStep(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetTimeStep(__pyx_v_self->ts, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 517, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":515 + * return toReal(rval) + * + * def setTimeStep(self, time_step): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(time_step) + * CHKERR( TSSetTimeStep(self.ts, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTimeStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":519 + * CHKERR( TSSetTimeStep(self.ts, rval) ) + * + * def getTimeStep(self): # <<<<<<<<<<<<<< + * cdef PetscReal tstep = 0 + * CHKERR( TSGetTimeStep(self.ts, &tstep) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_123getTimeStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_122getTimeStep[] = "TS.getTimeStep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_123getTimeStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTimeStep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTimeStep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTimeStep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_122getTimeStep(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_122getTimeStep(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_tstep; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTimeStep", 0); + + /* "petsc4py/PETSc/TS.pyx":520 + * + * def getTimeStep(self): + * cdef PetscReal tstep = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetTimeStep(self.ts, &tstep) ) + * return toReal(tstep) + */ + __pyx_v_tstep = 0.0; + + /* "petsc4py/PETSc/TS.pyx":521 + * def getTimeStep(self): + * cdef PetscReal tstep = 0 + * CHKERR( TSGetTimeStep(self.ts, &tstep) ) # <<<<<<<<<<<<<< + * return toReal(tstep) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetTimeStep(__pyx_v_self->ts, (&__pyx_v_tstep))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 521, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":522 + * cdef PetscReal tstep = 0 + * CHKERR( TSGetTimeStep(self.ts, &tstep) ) + * return toReal(tstep) # <<<<<<<<<<<<<< + * + * def setStepNumber(self, step_number): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_tstep); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":519 + * CHKERR( TSSetTimeStep(self.ts, rval) ) + * + * def getTimeStep(self): # <<<<<<<<<<<<<< + * cdef PetscReal tstep = 0 + * CHKERR( TSGetTimeStep(self.ts, &tstep) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTimeStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":524 + * return toReal(tstep) + * + * def setStepNumber(self, step_number): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(step_number) + * CHKERR( TSSetStepNumber(self.ts, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_125setStepNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_124setStepNumber[] = "TS.setStepNumber(self, step_number)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_125setStepNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_step_number = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStepNumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_step_number,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_step_number)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStepNumber") < 0)) __PYX_ERR(50, 524, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_step_number = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStepNumber", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 524, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setStepNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_124setStepNumber(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_step_number); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_124setStepNumber(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_step_number) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStepNumber", 0); + + /* "petsc4py/PETSc/TS.pyx":525 + * + * def setStepNumber(self, step_number): + * cdef PetscInt ival = asInt(step_number) # <<<<<<<<<<<<<< + * CHKERR( TSSetStepNumber(self.ts, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_step_number); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 525, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":526 + * def setStepNumber(self, step_number): + * cdef PetscInt ival = asInt(step_number) + * CHKERR( TSSetStepNumber(self.ts, ival) ) # <<<<<<<<<<<<<< + * + * def getStepNumber(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetStepNumber(__pyx_v_self->ts, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 526, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":524 + * return toReal(tstep) + * + * def setStepNumber(self, step_number): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(step_number) + * CHKERR( TSSetStepNumber(self.ts, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setStepNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":528 + * CHKERR( TSSetStepNumber(self.ts, ival) ) + * + * def getStepNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( TSGetStepNumber(self.ts, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_127getStepNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_126getStepNumber[] = "TS.getStepNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_127getStepNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStepNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStepNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStepNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_126getStepNumber(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_126getStepNumber(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStepNumber", 0); + + /* "petsc4py/PETSc/TS.pyx":529 + * + * def getStepNumber(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetStepNumber(self.ts, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/TS.pyx":530 + * def getStepNumber(self): + * cdef PetscInt ival = 0 + * CHKERR( TSGetStepNumber(self.ts, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetStepNumber(__pyx_v_self->ts, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 530, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":531 + * cdef PetscInt ival = 0 + * CHKERR( TSGetStepNumber(self.ts, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def setMaxTime(self, max_time): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":528 + * CHKERR( TSSetStepNumber(self.ts, ival) ) + * + * def getStepNumber(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( TSGetStepNumber(self.ts, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getStepNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":533 + * return toInt(ival) + * + * def setMaxTime(self, max_time): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(max_time) + * CHKERR( TSSetMaxTime(self.ts, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_129setMaxTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_128setMaxTime[] = "TS.setMaxTime(self, max_time)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_129setMaxTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_max_time = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxTime (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_max_time,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_time)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxTime") < 0)) __PYX_ERR(50, 533, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_max_time = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxTime", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 533, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_128setMaxTime(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_max_time); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_128setMaxTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_max_time) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxTime", 0); + + /* "petsc4py/PETSc/TS.pyx":534 + * + * def setMaxTime(self, max_time): + * cdef PetscReal rval = asReal(max_time) # <<<<<<<<<<<<<< + * CHKERR( TSSetMaxTime(self.ts, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_max_time); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 534, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":535 + * def setMaxTime(self, max_time): + * cdef PetscReal rval = asReal(max_time) + * CHKERR( TSSetMaxTime(self.ts, rval) ) # <<<<<<<<<<<<<< + * + * def getMaxTime(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetMaxTime(__pyx_v_self->ts, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 535, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":533 + * return toInt(ival) + * + * def setMaxTime(self, max_time): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(max_time) + * CHKERR( TSSetMaxTime(self.ts, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":537 + * CHKERR( TSSetMaxTime(self.ts, rval) ) + * + * def getMaxTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetMaxTime(self.ts, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_131getMaxTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_130getMaxTime[] = "TS.getMaxTime(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_131getMaxTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxTime (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxTime", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxTime", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_130getMaxTime(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_130getMaxTime(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxTime", 0); + + /* "petsc4py/PETSc/TS.pyx":538 + * + * def getMaxTime(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetMaxTime(self.ts, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/TS.pyx":539 + * def getMaxTime(self): + * cdef PetscReal rval = 0 + * CHKERR( TSGetMaxTime(self.ts, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetMaxTime(__pyx_v_self->ts, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 539, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":540 + * cdef PetscReal rval = 0 + * CHKERR( TSGetMaxTime(self.ts, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def setMaxSteps(self, max_steps): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":537 + * CHKERR( TSSetMaxTime(self.ts, rval) ) + * + * def getMaxTime(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSGetMaxTime(self.ts, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getMaxTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":542 + * return toReal(rval) + * + * def setMaxSteps(self, max_steps): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_steps) + * CHKERR( TSSetMaxSteps(self.ts, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_133setMaxSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_132setMaxSteps[] = "TS.setMaxSteps(self, max_steps)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_133setMaxSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_max_steps = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxSteps (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_max_steps,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_steps)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxSteps") < 0)) __PYX_ERR(50, 542, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_max_steps = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxSteps", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 542, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_132setMaxSteps(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_max_steps); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_132setMaxSteps(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_max_steps) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxSteps", 0); + + /* "petsc4py/PETSc/TS.pyx":543 + * + * def setMaxSteps(self, max_steps): + * cdef PetscInt ival = asInt(max_steps) # <<<<<<<<<<<<<< + * CHKERR( TSSetMaxSteps(self.ts, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_max_steps); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 543, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":544 + * def setMaxSteps(self, max_steps): + * cdef PetscInt ival = asInt(max_steps) + * CHKERR( TSSetMaxSteps(self.ts, ival) ) # <<<<<<<<<<<<<< + * + * def getMaxSteps(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetMaxSteps(__pyx_v_self->ts, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 544, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":542 + * return toReal(rval) + * + * def setMaxSteps(self, max_steps): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(max_steps) + * CHKERR( TSSetMaxSteps(self.ts, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":546 + * CHKERR( TSSetMaxSteps(self.ts, ival) ) + * + * def getMaxSteps(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( TSGetMaxSteps(self.ts, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_135getMaxSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_134getMaxSteps[] = "TS.getMaxSteps(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_135getMaxSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxSteps (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxSteps", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxSteps", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_134getMaxSteps(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_134getMaxSteps(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxSteps", 0); + + /* "petsc4py/PETSc/TS.pyx":547 + * + * def getMaxSteps(self): + * cdef PetscInt ival = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetMaxSteps(self.ts, &ival) ) + * return toInt(ival) + */ + __pyx_v_ival = 0; + + /* "petsc4py/PETSc/TS.pyx":548 + * def getMaxSteps(self): + * cdef PetscInt ival = 0 + * CHKERR( TSGetMaxSteps(self.ts, &ival) ) # <<<<<<<<<<<<<< + * return toInt(ival) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetMaxSteps(__pyx_v_self->ts, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 548, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":549 + * cdef PetscInt ival = 0 + * CHKERR( TSGetMaxSteps(self.ts, &ival) ) + * return toInt(ival) # <<<<<<<<<<<<<< + * + * def getSNESIterations(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ival); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":546 + * CHKERR( TSSetMaxSteps(self.ts, ival) ) + * + * def getMaxSteps(self): # <<<<<<<<<<<<<< + * cdef PetscInt ival = 0 + * CHKERR( TSGetMaxSteps(self.ts, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getMaxSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":551 + * return toInt(ival) + * + * def getSNESIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESIterations(self.ts, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_137getSNESIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_136getSNESIterations[] = "TS.getSNESIterations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_137getSNESIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSNESIterations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSNESIterations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSNESIterations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_136getSNESIterations(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_136getSNESIterations(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSNESIterations", 0); + + /* "petsc4py/PETSc/TS.pyx":552 + * + * def getSNESIterations(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetSNESIterations(self.ts, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":553 + * def getSNESIterations(self): + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESIterations(self.ts, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSNESIterations(__pyx_v_self->ts, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 553, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":554 + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESIterations(self.ts, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def getKSPIterations(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":551 + * return toInt(ival) + * + * def getSNESIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESIterations(self.ts, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSNESIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":556 + * return toInt(n) + * + * def getKSPIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetKSPIterations(self.ts, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_139getKSPIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_138getKSPIterations[] = "TS.getKSPIterations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_139getKSPIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSPIterations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSPIterations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSPIterations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_138getKSPIterations(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_138getKSPIterations(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSPIterations", 0); + + /* "petsc4py/PETSc/TS.pyx":557 + * + * def getKSPIterations(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetKSPIterations(self.ts, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":558 + * def getKSPIterations(self): + * cdef PetscInt n = 0 + * CHKERR( TSGetKSPIterations(self.ts, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetKSPIterations(__pyx_v_self->ts, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 558, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":559 + * cdef PetscInt n = 0 + * CHKERR( TSGetKSPIterations(self.ts, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def setMaxStepRejections(self, n): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":556 + * return toInt(n) + * + * def getKSPIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetKSPIterations(self.ts, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getKSPIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":561 + * return toInt(n) + * + * def setMaxStepRejections(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt rej = asInt(n) + * CHKERR( TSSetMaxStepRejections(self.ts, rej)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_141setMaxStepRejections(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_140setMaxStepRejections[] = "TS.setMaxStepRejections(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_141setMaxStepRejections(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxStepRejections (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxStepRejections") < 0)) __PYX_ERR(50, 561, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxStepRejections", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 561, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxStepRejections", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_140setMaxStepRejections(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_140setMaxStepRejections(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_rej; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxStepRejections", 0); + + /* "petsc4py/PETSc/TS.pyx":562 + * + * def setMaxStepRejections(self, n): + * cdef PetscInt rej = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( TSSetMaxStepRejections(self.ts, rej)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 562, __pyx_L1_error) + __pyx_v_rej = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":563 + * def setMaxStepRejections(self, n): + * cdef PetscInt rej = asInt(n) + * CHKERR( TSSetMaxStepRejections(self.ts, rej)) # <<<<<<<<<<<<<< + * + * #def getMaxStepRejections(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetMaxStepRejections(__pyx_v_self->ts, __pyx_v_rej)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 563, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":561 + * return toInt(n) + * + * def setMaxStepRejections(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt rej = asInt(n) + * CHKERR( TSSetMaxStepRejections(self.ts, rej)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxStepRejections", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":570 + * # return toInt(n) + * + * def getStepRejections(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetStepRejections(self.ts, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_143getStepRejections(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_142getStepRejections[] = "TS.getStepRejections(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_143getStepRejections(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStepRejections (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStepRejections", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStepRejections", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_142getStepRejections(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_142getStepRejections(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStepRejections", 0); + + /* "petsc4py/PETSc/TS.pyx":571 + * + * def getStepRejections(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetStepRejections(self.ts, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":572 + * def getStepRejections(self): + * cdef PetscInt n = 0 + * CHKERR( TSGetStepRejections(self.ts, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetStepRejections(__pyx_v_self->ts, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 572, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":573 + * cdef PetscInt n = 0 + * CHKERR( TSGetStepRejections(self.ts, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def setMaxSNESFailures(self, n): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":570 + * # return toInt(n) + * + * def getStepRejections(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetStepRejections(self.ts, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getStepRejections", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":575 + * return toInt(n) + * + * def setMaxSNESFailures(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt fails = asInt(n) + * CHKERR( TSSetMaxSNESFailures(self.ts, fails)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_145setMaxSNESFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_144setMaxSNESFailures[] = "TS.setMaxSNESFailures(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_145setMaxSNESFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaxSNESFailures (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaxSNESFailures") < 0)) __PYX_ERR(50, 575, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaxSNESFailures", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 575, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxSNESFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_144setMaxSNESFailures(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_144setMaxSNESFailures(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_fails; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaxSNESFailures", 0); + + /* "petsc4py/PETSc/TS.pyx":576 + * + * def setMaxSNESFailures(self, n): + * cdef PetscInt fails = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( TSSetMaxSNESFailures(self.ts, fails)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 576, __pyx_L1_error) + __pyx_v_fails = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":577 + * def setMaxSNESFailures(self, n): + * cdef PetscInt fails = asInt(n) + * CHKERR( TSSetMaxSNESFailures(self.ts, fails)) # <<<<<<<<<<<<<< + * + * #def getMaxSNESFailures(self, n): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetMaxSNESFailures(__pyx_v_self->ts, __pyx_v_fails)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 577, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":575 + * return toInt(n) + * + * def setMaxSNESFailures(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt fails = asInt(n) + * CHKERR( TSSetMaxSNESFailures(self.ts, fails)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMaxSNESFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":584 + * # return toInt(n) + * + * def getSNESFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESFailures(self.ts, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_147getSNESFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_146getSNESFailures[] = "TS.getSNESFailures(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_147getSNESFailures(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSNESFailures (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSNESFailures", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSNESFailures", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_146getSNESFailures(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_146getSNESFailures(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSNESFailures", 0); + + /* "petsc4py/PETSc/TS.pyx":585 + * + * def getSNESFailures(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetSNESFailures(self.ts, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":586 + * def getSNESFailures(self): + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESFailures(self.ts, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSNESFailures(__pyx_v_self->ts, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 586, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":587 + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESFailures(self.ts, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def setErrorIfStepFails(self, flag=True): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":584 + * # return toInt(n) + * + * def getSNESFailures(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( TSGetSNESFailures(self.ts, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getSNESFailures", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":589 + * return toInt(n) + * + * def setErrorIfStepFails(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_149setErrorIfStepFails(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_148setErrorIfStepFails[] = "TS.setErrorIfStepFails(self, flag=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_149setErrorIfStepFails(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setErrorIfStepFails (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setErrorIfStepFails") < 0)) __PYX_ERR(50, 589, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setErrorIfStepFails", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 589, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setErrorIfStepFails", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_148setErrorIfStepFails(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_148setErrorIfStepFails(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setErrorIfStepFails", 0); + + /* "petsc4py/PETSc/TS.pyx":590 + * + * def setErrorIfStepFails(self, flag=True): + * cdef PetscBool bval = flag # <<<<<<<<<<<<<< + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 590, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":591 + * def setErrorIfStepFails(self, flag=True): + * cdef PetscBool bval = flag + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) # <<<<<<<<<<<<<< + * + * def setTolerances(self, rtol=None, atol=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetErrorIfStepFails(__pyx_v_self->ts, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 591, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":589 + * return toInt(n) + * + * def setErrorIfStepFails(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setErrorIfStepFails", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":593 + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) + * + * def setTolerances(self, rtol=None, atol=None): # <<<<<<<<<<<<<< + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_151setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_150setTolerances[] = "TS.setTolerances(self, rtol=None, atol=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_151setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rtol = 0; + PyObject *__pyx_v_atol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rtol,&__pyx_n_s_atol,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rtol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_atol); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTolerances") < 0)) __PYX_ERR(50, 593, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rtol = values[0]; + __pyx_v_atol = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTolerances", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 593, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_150setTolerances(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_rtol, __pyx_v_atol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_150setTolerances(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_rtol, PyObject *__pyx_v_atol) { + PetscReal __pyx_v_rrtol; + PetscReal __pyx_v_ratol; + Vec __pyx_v_vrtol; + Vec __pyx_v_vatol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PetscReal __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTolerances", 0); + + /* "petsc4py/PETSc/TS.pyx":594 + * + * def setTolerances(self, rtol=None, atol=None): + * cdef PetscReal rrtol = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL + */ + __pyx_v_rrtol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TS.pyx":595 + * def setTolerances(self, rtol=None, atol=None): + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL + */ + __pyx_v_ratol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TS.pyx":596 + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL # <<<<<<<<<<<<<< + * cdef PetscVec vatol = NULL + * if rtol is None: + */ + __pyx_v_vrtol = NULL; + + /* "petsc4py/PETSc/TS.pyx":597 + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL # <<<<<<<<<<<<<< + * if rtol is None: + * pass + */ + __pyx_v_vatol = NULL; + + /* "petsc4py/PETSc/TS.pyx":598 + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL + * if rtol is None: # <<<<<<<<<<<<<< + * pass + * elif isinstance(rtol, Vec): + */ + __pyx_t_1 = (__pyx_v_rtol == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":600 + * if rtol is None: + * pass + * elif isinstance(rtol, Vec): # <<<<<<<<<<<<<< + * vrtol = (rtol).vec + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_rtol, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":601 + * pass + * elif isinstance(rtol, Vec): + * vrtol = (rtol).vec # <<<<<<<<<<<<<< + * else: + * rrtol = asReal(rtol) + */ + __pyx_t_3 = ((struct PyPetscVecObject *)__pyx_v_rtol)->vec; + __pyx_v_vrtol = __pyx_t_3; + + /* "petsc4py/PETSc/TS.pyx":600 + * if rtol is None: + * pass + * elif isinstance(rtol, Vec): # <<<<<<<<<<<<<< + * vrtol = (rtol).vec + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":603 + * vrtol = (rtol).vec + * else: + * rrtol = asReal(rtol) # <<<<<<<<<<<<<< + * if atol is None: + * pass + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_rtol); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 603, __pyx_L1_error) + __pyx_v_rrtol = __pyx_t_4; + } + __pyx_L3:; + + /* "petsc4py/PETSc/TS.pyx":604 + * else: + * rrtol = asReal(rtol) + * if atol is None: # <<<<<<<<<<<<<< + * pass + * elif isinstance(atol, Vec): + */ + __pyx_t_1 = (__pyx_v_atol == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":606 + * if atol is None: + * pass + * elif isinstance(atol, Vec): # <<<<<<<<<<<<<< + * vatol = (atol).vec + * else: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_atol, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":607 + * pass + * elif isinstance(atol, Vec): + * vatol = (atol).vec # <<<<<<<<<<<<<< + * else: + * ratol = asReal(atol) + */ + __pyx_t_3 = ((struct PyPetscVecObject *)__pyx_v_atol)->vec; + __pyx_v_vatol = __pyx_t_3; + + /* "petsc4py/PETSc/TS.pyx":606 + * if atol is None: + * pass + * elif isinstance(atol, Vec): # <<<<<<<<<<<<<< + * vatol = (atol).vec + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":609 + * vatol = (atol).vec + * else: + * ratol = asReal(atol) # <<<<<<<<<<<<<< + * CHKERR( TSSetTolerances(self.ts, ratol, vatol, rrtol, vrtol) ) + * + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_atol); if (unlikely(__pyx_t_4 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 609, __pyx_L1_error) + __pyx_v_ratol = __pyx_t_4; + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":610 + * else: + * ratol = asReal(atol) + * CHKERR( TSSetTolerances(self.ts, ratol, vatol, rrtol, vrtol) ) # <<<<<<<<<<<<<< + * + * def getTolerances(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetTolerances(__pyx_v_self->ts, __pyx_v_ratol, __pyx_v_vatol, __pyx_v_rrtol, __pyx_v_vrtol)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 610, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":593 + * CHKERR( TSSetErrorIfStepFails(self.ts, bval)) + * + * def setTolerances(self, rtol=None, atol=None): # <<<<<<<<<<<<<< + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":612 + * CHKERR( TSSetTolerances(self.ts, ratol, vatol, rrtol, vrtol) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_153getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_152getTolerances[] = "TS.getTolerances(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_153getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTolerances (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTolerances", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTolerances", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_152getTolerances(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_152getTolerances(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rrtol; + PetscReal __pyx_v_ratol; + Vec __pyx_v_vrtol; + Vec __pyx_v_vatol; + PyObject *__pyx_v_rtol = 0; + PyObject *__pyx_v_atol = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTolerances", 0); + + /* "petsc4py/PETSc/TS.pyx":613 + * + * def getTolerances(self): + * cdef PetscReal rrtol = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL + */ + __pyx_v_rrtol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TS.pyx":614 + * def getTolerances(self): + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL + */ + __pyx_v_ratol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TS.pyx":615 + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL # <<<<<<<<<<<<<< + * cdef PetscVec vatol = NULL + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) + */ + __pyx_v_vrtol = NULL; + + /* "petsc4py/PETSc/TS.pyx":616 + * cdef PetscReal ratol = PETSC_DEFAULT + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) + * cdef object rtol = None + */ + __pyx_v_vatol = NULL; + + /* "petsc4py/PETSc/TS.pyx":617 + * cdef PetscVec vrtol = NULL + * cdef PetscVec vatol = NULL + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) # <<<<<<<<<<<<<< + * cdef object rtol = None + * if vrtol != NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetTolerances(__pyx_v_self->ts, (&__pyx_v_ratol), (&__pyx_v_vatol), (&__pyx_v_rrtol), (&__pyx_v_vrtol))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 617, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":618 + * cdef PetscVec vatol = NULL + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) + * cdef object rtol = None # <<<<<<<<<<<<<< + * if vrtol != NULL: + * rtol = ref_Vec(vrtol) + */ + __Pyx_INCREF(Py_None); + __pyx_v_rtol = Py_None; + + /* "petsc4py/PETSc/TS.pyx":619 + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) + * cdef object rtol = None + * if vrtol != NULL: # <<<<<<<<<<<<<< + * rtol = ref_Vec(vrtol) + * else: + */ + __pyx_t_2 = ((__pyx_v_vrtol != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":620 + * cdef object rtol = None + * if vrtol != NULL: + * rtol = ref_Vec(vrtol) # <<<<<<<<<<<<<< + * else: + * rtol = toReal(rrtol) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vrtol)); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_rtol, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":619 + * CHKERR( TSGetTolerances(self.ts, &ratol, &vatol, &rrtol, &vrtol) ) + * cdef object rtol = None + * if vrtol != NULL: # <<<<<<<<<<<<<< + * rtol = ref_Vec(vrtol) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":622 + * rtol = ref_Vec(vrtol) + * else: + * rtol = toReal(rrtol) # <<<<<<<<<<<<<< + * cdef object atol = None + * if vatol != NULL: + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rrtol); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_rtol, __pyx_t_3); + __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/TS.pyx":623 + * else: + * rtol = toReal(rrtol) + * cdef object atol = None # <<<<<<<<<<<<<< + * if vatol != NULL: + * atol = ref_Vec(vatol) + */ + __Pyx_INCREF(Py_None); + __pyx_v_atol = Py_None; + + /* "petsc4py/PETSc/TS.pyx":624 + * rtol = toReal(rrtol) + * cdef object atol = None + * if vatol != NULL: # <<<<<<<<<<<<<< + * atol = ref_Vec(vatol) + * else: + */ + __pyx_t_2 = ((__pyx_v_vatol != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":625 + * cdef object atol = None + * if vatol != NULL: + * atol = ref_Vec(vatol) # <<<<<<<<<<<<<< + * else: + * atol = toReal(ratol) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec(__pyx_v_vatol)); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_atol, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":624 + * rtol = toReal(rrtol) + * cdef object atol = None + * if vatol != NULL: # <<<<<<<<<<<<<< + * atol = ref_Vec(vatol) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":627 + * atol = ref_Vec(vatol) + * else: + * atol = toReal(ratol) # <<<<<<<<<<<<<< + * return (rtol, atol) + * + */ + /*else*/ { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_ratol); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_atol, __pyx_t_3); + __pyx_t_3 = 0; + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":628 + * else: + * atol = toReal(ratol) + * return (rtol, atol) # <<<<<<<<<<<<<< + * + * def setExactFinalTime(self, option): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_rtol); + __Pyx_GIVEREF(__pyx_v_rtol); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_rtol); + __Pyx_INCREF(__pyx_v_atol); + __Pyx_GIVEREF(__pyx_v_atol); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_atol); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":612 + * CHKERR( TSSetTolerances(self.ts, ratol, vatol, rrtol, vrtol) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * cdef PetscReal rrtol = PETSC_DEFAULT + * cdef PetscReal ratol = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rtol); + __Pyx_XDECREF(__pyx_v_atol); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":630 + * return (rtol, atol) + * + * def setExactFinalTime(self, option): # <<<<<<<<<<<<<< + * cdef PetscTSExactFinalTimeOption oval = option + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_155setExactFinalTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_154setExactFinalTime[] = "TS.setExactFinalTime(self, option)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_155setExactFinalTime(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_option = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setExactFinalTime (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_option,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_option)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setExactFinalTime") < 0)) __PYX_ERR(50, 630, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_option = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setExactFinalTime", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 630, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setExactFinalTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_154setExactFinalTime(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_option); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_154setExactFinalTime(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_option) { + TSExactFinalTimeOption __pyx_v_oval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TSExactFinalTimeOption __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setExactFinalTime", 0); + + /* "petsc4py/PETSc/TS.pyx":631 + * + * def setExactFinalTime(self, option): + * cdef PetscTSExactFinalTimeOption oval = option # <<<<<<<<<<<<<< + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) + * + */ + __pyx_t_1 = ((TSExactFinalTimeOption)__Pyx_PyInt_As_TSExactFinalTimeOption(__pyx_v_option)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 631, __pyx_L1_error) + __pyx_v_oval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":632 + * def setExactFinalTime(self, option): + * cdef PetscTSExactFinalTimeOption oval = option + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) # <<<<<<<<<<<<<< + * + * def setConvergedReason(self, reason): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetExactFinalTime(__pyx_v_self->ts, __pyx_v_oval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 632, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":630 + * return (rtol, atol) + * + * def setExactFinalTime(self, option): # <<<<<<<<<<<<<< + * cdef PetscTSExactFinalTimeOption oval = option + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setExactFinalTime", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":634 + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscTSConvergedReason cval = reason + * CHKERR( TSSetConvergedReason(self.ts, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_157setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_156setConvergedReason[] = "TS.setConvergedReason(self, reason)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_157setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reason = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergedReason (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reason,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergedReason") < 0)) __PYX_ERR(50, 634, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_reason = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergedReason", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 634, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_156setConvergedReason(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_reason); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_156setConvergedReason(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_reason) { + TSConvergedReason __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TSConvergedReason __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergedReason", 0); + + /* "petsc4py/PETSc/TS.pyx":635 + * + * def setConvergedReason(self, reason): + * cdef PetscTSConvergedReason cval = reason # <<<<<<<<<<<<<< + * CHKERR( TSSetConvergedReason(self.ts, cval) ) + * + */ + __pyx_t_1 = ((TSConvergedReason)__Pyx_PyInt_As_TSConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 635, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":636 + * def setConvergedReason(self, reason): + * cdef PetscTSConvergedReason cval = reason + * CHKERR( TSSetConvergedReason(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def getConvergedReason(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetConvergedReason(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 636, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":634 + * CHKERR( TSSetExactFinalTime(self.ts, oval) ) + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * cdef PetscTSConvergedReason cval = reason + * CHKERR( TSSetConvergedReason(self.ts, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":638 + * CHKERR( TSSetConvergedReason(self.ts, cval) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscTSConvergedReason reason = TS_CONVERGED_ITERATING + * CHKERR( TSGetConvergedReason(self.ts, &reason) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_159getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_158getConvergedReason[] = "TS.getConvergedReason(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_159getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_158getConvergedReason(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_158getConvergedReason(struct PyPetscTSObject *__pyx_v_self) { + TSConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergedReason", 0); + + /* "petsc4py/PETSc/TS.pyx":639 + * + * def getConvergedReason(self): + * cdef PetscTSConvergedReason reason = TS_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * CHKERR( TSGetConvergedReason(self.ts, &reason) ) + * return reason + */ + __pyx_v_reason = TS_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/TS.pyx":640 + * def getConvergedReason(self): + * cdef PetscTSConvergedReason reason = TS_CONVERGED_ITERATING + * CHKERR( TSGetConvergedReason(self.ts, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetConvergedReason(__pyx_v_self->ts, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 640, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":641 + * cdef PetscTSConvergedReason reason = TS_CONVERGED_ITERATING + * CHKERR( TSGetConvergedReason(self.ts, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * # --- monitoring --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_TSConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":638 + * CHKERR( TSSetConvergedReason(self.ts, cval) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * cdef PetscTSConvergedReason reason = TS_CONVERGED_ITERATING + * CHKERR( TSGetConvergedReason(self.ts, &reason) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":645 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_161setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_160setMonitor[] = "TS.setMonitor(self, monitor, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_161setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_monitor = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMonitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_monitor,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_monitor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMonitor") < 0)) __PYX_ERR(50, 645, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_monitor = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMonitor", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 645, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_160setMonitor(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_monitor, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_160setMonitor(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMonitor", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":646 + * + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return # <<<<<<<<<<<<<< + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + */ + __pyx_t_1 = (__pyx_v_monitor == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TS.pyx":647 + * def setMonitor(self, monitor, args=None, kargs=None): + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if monitorlist is None: + * monitorlist = [] + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_monitorlist = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":648 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":649 + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: + * monitorlist = [] # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', monitorlist) + * CHKERR( TSMonitorSet(self.ts, TS_Monitor, NULL, NULL) ) + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_monitorlist, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":650 + * if monitorlist is None: + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) # <<<<<<<<<<<<<< + * CHKERR( TSMonitorSet(self.ts, TS_Monitor, NULL, NULL) ) + * if args is None: args = () + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), __pyx_v_monitorlist); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":651 + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + * CHKERR( TSMonitorSet(self.ts, TS_Monitor, NULL, NULL) ) # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSMonitorSet(__pyx_v_self->ts, __pyx_f_8petsc4py_5PETSc_TS_Monitor, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 651, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":648 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if monitorlist is None: # <<<<<<<<<<<<<< + * monitorlist = [] + * self.set_attr('__monitor__', monitorlist) + */ + } + + /* "petsc4py/PETSc/TS.pyx":652 + * self.set_attr('__monitor__', monitorlist) + * CHKERR( TSMonitorSet(self.ts, TS_Monitor, NULL, NULL) ) + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":653 + * CHKERR( TSMonitorSet(self.ts, TS_Monitor, NULL, NULL) ) + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (monitor, args, kargs) + * monitorlist.append(context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":654 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) # <<<<<<<<<<<<<< + * monitorlist.append(context) + * + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_monitor); + __Pyx_GIVEREF(__pyx_v_monitor); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_monitor); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":655 + * if kargs is None: kargs = {} + * context = (monitor, args, kargs) + * monitorlist.append(context) # <<<<<<<<<<<<<< + * + * def getMonitor(self): + */ + __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_monitorlist, __pyx_v_context); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(50, 655, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":645 + * # --- monitoring --- + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":657 + * monitorlist.append(context) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_163getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_162getMonitor[] = "TS.getMonitor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_163getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMonitor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMonitor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMonitor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_162getMonitor(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_162getMonitor(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMonitor", 0); + + /* "petsc4py/PETSc/TS.pyx":658 + * + * def getMonitor(self): + * return self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * + * def monitorCancel(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 658, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":657 + * monitorlist.append(context) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * return self.get_attr('__monitor__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":660 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', None) + * CHKERR( TSMonitorCancel(self.ts) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_165monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_164monitorCancel[] = "TS.monitorCancel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_165monitorCancel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitorCancel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("monitorCancel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "monitorCancel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_164monitorCancel(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_164monitorCancel(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitorCancel", 0); + + /* "petsc4py/PETSc/TS.pyx":661 + * + * def monitorCancel(self): + * self.set_attr('__monitor__', None) # <<<<<<<<<<<<<< + * CHKERR( TSMonitorCancel(self.ts) ) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":662 + * def monitorCancel(self): + * self.set_attr('__monitor__', None) + * CHKERR( TSMonitorCancel(self.ts) ) # <<<<<<<<<<<<<< + * + * cancelMonitor = monitorCancel + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSMonitorCancel(__pyx_v_self->ts)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 662, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":660 + * return self.get_attr('__monitor__') + * + * def monitorCancel(self): # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', None) + * CHKERR( TSMonitorCancel(self.ts) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.monitorCancel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":666 + * cancelMonitor = monitorCancel + * + * def monitor(self, step, time, Vec u=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(step) + * cdef PetscReal rval = asReal(time) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_167monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_166monitor[] = "TS.monitor(self, step, time, Vec u=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_167monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_step = 0; + PyObject *__pyx_v_time = 0; + struct PyPetscVecObject *__pyx_v_u = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_step,&__pyx_n_s_time,&__pyx_n_s_u,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_step)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_time)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("monitor", 0, 2, 3, 1); __PYX_ERR(50, 666, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor") < 0)) __PYX_ERR(50, 666, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_step = values[0]; + __pyx_v_time = values[1]; + __pyx_v_u = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("monitor", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 666, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "u", 0))) __PYX_ERR(50, 666, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_166monitor(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_step, __pyx_v_time, __pyx_v_u); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_166monitor(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_step, PyObject *__pyx_v_time, struct PyPetscVecObject *__pyx_v_u) { + PetscInt __pyx_v_ival; + PetscReal __pyx_v_rval; + Vec __pyx_v_uvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscReal __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Vec __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitor", 0); + + /* "petsc4py/PETSc/TS.pyx":667 + * + * def monitor(self, step, time, Vec u=None): + * cdef PetscInt ival = asInt(step) # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(time) + * cdef PetscVec uvec = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_step); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 667, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":668 + * def monitor(self, step, time, Vec u=None): + * cdef PetscInt ival = asInt(step) + * cdef PetscReal rval = asReal(time) # <<<<<<<<<<<<<< + * cdef PetscVec uvec = NULL + * if u is not None: uvec = u.vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_time); if (unlikely(__pyx_t_2 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 668, __pyx_L1_error) + __pyx_v_rval = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":669 + * cdef PetscInt ival = asInt(step) + * cdef PetscReal rval = asReal(time) + * cdef PetscVec uvec = NULL # <<<<<<<<<<<<<< + * if u is not None: uvec = u.vec + * if uvec == NULL: + */ + __pyx_v_uvec = NULL; + + /* "petsc4py/PETSc/TS.pyx":670 + * cdef PetscReal rval = asReal(time) + * cdef PetscVec uvec = NULL + * if u is not None: uvec = u.vec # <<<<<<<<<<<<<< + * if uvec == NULL: + * CHKERR( TSGetSolution(self.ts, &uvec) ) + */ + __pyx_t_3 = (((PyObject *)__pyx_v_u) != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_t_5 = __pyx_v_u->vec; + __pyx_v_uvec = __pyx_t_5; + } + + /* "petsc4py/PETSc/TS.pyx":671 + * cdef PetscVec uvec = NULL + * if u is not None: uvec = u.vec + * if uvec == NULL: # <<<<<<<<<<<<<< + * CHKERR( TSGetSolution(self.ts, &uvec) ) + * CHKERR( TSMonitor(self.ts, ival, rval, uvec) ) + */ + __pyx_t_4 = ((__pyx_v_uvec == NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/TS.pyx":672 + * if u is not None: uvec = u.vec + * if uvec == NULL: + * CHKERR( TSGetSolution(self.ts, &uvec) ) # <<<<<<<<<<<<<< + * CHKERR( TSMonitor(self.ts, ival, rval, uvec) ) + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetSolution(__pyx_v_self->ts, (&__pyx_v_uvec))); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 672, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":671 + * cdef PetscVec uvec = NULL + * if u is not None: uvec = u.vec + * if uvec == NULL: # <<<<<<<<<<<<<< + * CHKERR( TSGetSolution(self.ts, &uvec) ) + * CHKERR( TSMonitor(self.ts, ival, rval, uvec) ) + */ + } + + /* "petsc4py/PETSc/TS.pyx":673 + * if uvec == NULL: + * CHKERR( TSGetSolution(self.ts, &uvec) ) + * CHKERR( TSMonitor(self.ts, ival, rval, uvec) ) # <<<<<<<<<<<<<< + * + * # --- event handling --- + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSMonitor(__pyx_v_self->ts, __pyx_v_ival, __pyx_v_rval, __pyx_v_uvec)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 673, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":666 + * cancelMonitor = monitorCancel + * + * def monitor(self, step, time, Vec u=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(step) + * cdef PetscReal rval = asReal(time) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":677 + * # --- event handling --- + * + * def setEventHandler(self, direction, terminate, eventhandler, postevent=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscInt ndirs = 0 + * cdef PetscInt *idirs = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_169setEventHandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_168setEventHandler[] = "TS.setEventHandler(self, direction, terminate, eventhandler, postevent=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_169setEventHandler(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_direction = 0; + PyObject *__pyx_v_terminate = 0; + PyObject *__pyx_v_eventhandler = 0; + PyObject *__pyx_v_postevent = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setEventHandler (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_direction,&__pyx_n_s_terminate,&__pyx_n_s_eventhandler,&__pyx_n_s_postevent,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_direction)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_terminate)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setEventHandler", 0, 3, 6, 1); __PYX_ERR(50, 677, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eventhandler)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setEventHandler", 0, 3, 6, 2); __PYX_ERR(50, 677, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_postevent); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setEventHandler") < 0)) __PYX_ERR(50, 677, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_direction = values[0]; + __pyx_v_terminate = values[1]; + __pyx_v_eventhandler = values[2]; + __pyx_v_postevent = values[3]; + __pyx_v_args = values[4]; + __pyx_v_kargs = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setEventHandler", 0, 3, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 677, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEventHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_168setEventHandler(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_direction, __pyx_v_terminate, __pyx_v_eventhandler, __pyx_v_postevent, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_168setEventHandler(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_direction, PyObject *__pyx_v_terminate, PyObject *__pyx_v_eventhandler, PyObject *__pyx_v_postevent, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PetscInt __pyx_v_ndirs; + PetscInt *__pyx_v_idirs; + PetscInt __pyx_v_nterm; + PetscBool *__pyx_v_iterm; + PetscInt __pyx_v_nevents; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setEventHandler", 0); + __Pyx_INCREF(__pyx_v_direction); + __Pyx_INCREF(__pyx_v_terminate); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":678 + * + * def setEventHandler(self, direction, terminate, eventhandler, postevent=None, args=None, kargs=None): + * cdef PetscInt ndirs = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *idirs = NULL + * direction = iarray_i(direction, &ndirs, &idirs) + */ + __pyx_v_ndirs = 0; + + /* "petsc4py/PETSc/TS.pyx":679 + * def setEventHandler(self, direction, terminate, eventhandler, postevent=None, args=None, kargs=None): + * cdef PetscInt ndirs = 0 + * cdef PetscInt *idirs = NULL # <<<<<<<<<<<<<< + * direction = iarray_i(direction, &ndirs, &idirs) + * + */ + __pyx_v_idirs = NULL; + + /* "petsc4py/PETSc/TS.pyx":680 + * cdef PetscInt ndirs = 0 + * cdef PetscInt *idirs = NULL + * direction = iarray_i(direction, &ndirs, &idirs) # <<<<<<<<<<<<<< + * + * cdef PetscInt nterm = 0 + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_direction, (&__pyx_v_ndirs), (&__pyx_v_idirs))); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 680, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_direction, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":682 + * direction = iarray_i(direction, &ndirs, &idirs) + * + * cdef PetscInt nterm = 0 # <<<<<<<<<<<<<< + * cdef PetscBool *iterm = NULL + * terminate = iarray_b(terminate, &nterm, &iterm) + */ + __pyx_v_nterm = 0; + + /* "petsc4py/PETSc/TS.pyx":683 + * + * cdef PetscInt nterm = 0 + * cdef PetscBool *iterm = NULL # <<<<<<<<<<<<<< + * terminate = iarray_b(terminate, &nterm, &iterm) + * assert nterm == ndirs + */ + __pyx_v_iterm = NULL; + + /* "petsc4py/PETSc/TS.pyx":684 + * cdef PetscInt nterm = 0 + * cdef PetscBool *iterm = NULL + * terminate = iarray_b(terminate, &nterm, &iterm) # <<<<<<<<<<<<<< + * assert nterm == ndirs + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_b(__pyx_v_terminate, (&__pyx_v_nterm), (&__pyx_v_iterm))); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_terminate, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":685 + * cdef PetscBool *iterm = NULL + * terminate = iarray_b(terminate, &nterm, &iterm) + * assert nterm == ndirs # <<<<<<<<<<<<<< + * + * cdef PetscInt nevents = ndirs + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_nterm == __pyx_v_ndirs) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(50, 685, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/TS.pyx":687 + * assert nterm == ndirs + * + * cdef PetscInt nevents = ndirs # <<<<<<<<<<<<<< + * if eventhandler is not None: + * if args is None: args = () + */ + __pyx_v_nevents = __pyx_v_ndirs; + + /* "petsc4py/PETSc/TS.pyx":688 + * + * cdef PetscInt nevents = ndirs + * if eventhandler is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_eventhandler != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/TS.pyx":689 + * cdef PetscInt nevents = ndirs + * if eventhandler is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) + */ + __pyx_t_3 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":690 + * if eventhandler is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) + * if postevent is not None: + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 690, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_1); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":691 + * if args is None: args = () + * if kargs is None: kargs = {} + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) # <<<<<<<<<<<<<< + * if postevent is not None: + * self.set_attr('__postevent__', (postevent, args, kargs)) + */ + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_eventhandler); + __Pyx_GIVEREF(__pyx_v_eventhandler); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_eventhandler); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_kargs); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__eventhandler__"), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":692 + * if kargs is None: kargs = {} + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) + * if postevent is not None: # <<<<<<<<<<<<<< + * self.set_attr('__postevent__', (postevent, args, kargs)) + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, TS_PostEvent, NULL) ) + */ + __pyx_t_3 = (__pyx_v_postevent != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":693 + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) + * if postevent is not None: + * self.set_attr('__postevent__', (postevent, args, kargs)) # <<<<<<<<<<<<<< + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, TS_PostEvent, NULL) ) + * else: + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_postevent); + __Pyx_GIVEREF(__pyx_v_postevent); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_postevent); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__postevent__"), __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":694 + * if postevent is not None: + * self.set_attr('__postevent__', (postevent, args, kargs)) + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, TS_PostEvent, NULL) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__postevent__', None) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetEventHandler(__pyx_v_self->ts, __pyx_v_nevents, __pyx_v_idirs, __pyx_v_iterm, __pyx_f_8petsc4py_5PETSc_TS_EventHandler, __pyx_f_8petsc4py_5PETSc_TS_PostEvent, ((void *)NULL))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 694, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":692 + * if kargs is None: kargs = {} + * self.set_attr('__eventhandler__', (eventhandler, args, kargs)) + * if postevent is not None: # <<<<<<<<<<<<<< + * self.set_attr('__postevent__', (postevent, args, kargs)) + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, TS_PostEvent, NULL) ) + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/TS.pyx":696 + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, TS_PostEvent, NULL) ) + * else: + * self.set_attr('__postevent__', None) # <<<<<<<<<<<<<< + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, NULL, NULL) ) + * else: + */ + /*else*/ { + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__postevent__"), Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":697 + * else: + * self.set_attr('__postevent__', None) + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, NULL, NULL) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, NULL, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetEventHandler(__pyx_v_self->ts, __pyx_v_nevents, __pyx_v_idirs, __pyx_v_iterm, __pyx_f_8petsc4py_5PETSc_TS_EventHandler, NULL, ((void *)NULL))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 697, __pyx_L1_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/TS.pyx":688 + * + * cdef PetscInt nevents = ndirs + * if eventhandler is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":699 + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, TS_EventHandler, NULL, NULL) ) + * else: + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, NULL, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setEventTolerances(self, tol=None, vtol=None): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetEventHandler(__pyx_v_self->ts, __pyx_v_nevents, __pyx_v_idirs, __pyx_v_iterm, NULL, NULL, ((void *)NULL))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 699, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TS.pyx":677 + * # --- event handling --- + * + * def setEventHandler(self, direction, terminate, eventhandler, postevent=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscInt ndirs = 0 + * cdef PetscInt *idirs = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEventHandler", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_direction); + __Pyx_XDECREF(__pyx_v_terminate); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":701 + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, NULL, NULL, NULL) ) + * + * def setEventTolerances(self, tol=None, vtol=None): # <<<<<<<<<<<<<< + * cdef PetscInt nevents = 0 + * cdef PetscReal tolr = PETSC_DEFAULT + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_171setEventTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_170setEventTolerances[] = "TS.setEventTolerances(self, tol=None, vtol=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_171setEventTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tol = 0; + PyObject *__pyx_v_vtol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setEventTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tol,&__pyx_n_s_vtol,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vtol); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setEventTolerances") < 0)) __PYX_ERR(50, 701, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_tol = values[0]; + __pyx_v_vtol = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setEventTolerances", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 701, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEventTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_170setEventTolerances(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_tol, __pyx_v_vtol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_170setEventTolerances(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_tol, PyObject *__pyx_v_vtol) { + PetscInt __pyx_v_nevents; + PetscReal __pyx_v_tolr; + PetscInt __pyx_v_ntolr; + PetscReal *__pyx_v_vtolr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setEventTolerances", 0); + __Pyx_INCREF(__pyx_v_vtol); + + /* "petsc4py/PETSc/TS.pyx":702 + * + * def setEventTolerances(self, tol=None, vtol=None): + * cdef PetscInt nevents = 0 # <<<<<<<<<<<<<< + * cdef PetscReal tolr = PETSC_DEFAULT + * cdef PetscInt ntolr = 0 + */ + __pyx_v_nevents = 0; + + /* "petsc4py/PETSc/TS.pyx":703 + * def setEventTolerances(self, tol=None, vtol=None): + * cdef PetscInt nevents = 0 + * cdef PetscReal tolr = PETSC_DEFAULT # <<<<<<<<<<<<<< + * cdef PetscInt ntolr = 0 + * cdef PetscReal *vtolr = NULL + */ + __pyx_v_tolr = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TS.pyx":704 + * cdef PetscInt nevents = 0 + * cdef PetscReal tolr = PETSC_DEFAULT + * cdef PetscInt ntolr = 0 # <<<<<<<<<<<<<< + * cdef PetscReal *vtolr = NULL + * if tol is not None: + */ + __pyx_v_ntolr = 0; + + /* "petsc4py/PETSc/TS.pyx":705 + * cdef PetscReal tolr = PETSC_DEFAULT + * cdef PetscInt ntolr = 0 + * cdef PetscReal *vtolr = NULL # <<<<<<<<<<<<<< + * if tol is not None: + * tolr = asReal(tol) + */ + __pyx_v_vtolr = NULL; + + /* "petsc4py/PETSc/TS.pyx":706 + * cdef PetscInt ntolr = 0 + * cdef PetscReal *vtolr = NULL + * if tol is not None: # <<<<<<<<<<<<<< + * tolr = asReal(tol) + * if vtol is not None: + */ + __pyx_t_1 = (__pyx_v_tol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":707 + * cdef PetscReal *vtolr = NULL + * if tol is not None: + * tolr = asReal(tol) # <<<<<<<<<<<<<< + * if vtol is not None: + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_tol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 707, __pyx_L1_error) + __pyx_v_tolr = __pyx_t_3; + + /* "petsc4py/PETSc/TS.pyx":706 + * cdef PetscInt ntolr = 0 + * cdef PetscReal *vtolr = NULL + * if tol is not None: # <<<<<<<<<<<<<< + * tolr = asReal(tol) + * if vtol is not None: + */ + } + + /* "petsc4py/PETSc/TS.pyx":708 + * if tol is not None: + * tolr = asReal(tol) + * if vtol is not None: # <<<<<<<<<<<<<< + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * vtol = iarray_r(vtol, &ntolr, &vtolr) + */ + __pyx_t_2 = (__pyx_v_vtol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":709 + * tolr = asReal(tol) + * if vtol is not None: + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) # <<<<<<<<<<<<<< + * vtol = iarray_r(vtol, &ntolr, &vtolr) + * assert ntolr == nevents + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetNumEvents(__pyx_v_self->ts, (&__pyx_v_nevents))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 709, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":710 + * if vtol is not None: + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * vtol = iarray_r(vtol, &ntolr, &vtolr) # <<<<<<<<<<<<<< + * assert ntolr == nevents + * CHKERR( TSSetEventTolerances(self.ts, tolr, vtolr) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_r(__pyx_v_vtol, (&__pyx_v_ntolr), (&__pyx_v_vtolr))); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_vtol, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":711 + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * vtol = iarray_r(vtol, &ntolr, &vtolr) + * assert ntolr == nevents # <<<<<<<<<<<<<< + * CHKERR( TSSetEventTolerances(self.ts, tolr, vtolr) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_ntolr == __pyx_v_nevents) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(50, 711, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/TS.pyx":708 + * if tol is not None: + * tolr = asReal(tol) + * if vtol is not None: # <<<<<<<<<<<<<< + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * vtol = iarray_r(vtol, &ntolr, &vtolr) + */ + } + + /* "petsc4py/PETSc/TS.pyx":712 + * vtol = iarray_r(vtol, &ntolr, &vtolr) + * assert ntolr == nevents + * CHKERR( TSSetEventTolerances(self.ts, tolr, vtolr) ) # <<<<<<<<<<<<<< + * + * def getNumEvents(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetEventTolerances(__pyx_v_self->ts, __pyx_v_tolr, __pyx_v_vtolr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 712, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":701 + * CHKERR( TSSetEventHandler(self.ts, nevents, idirs, iterm, NULL, NULL, NULL) ) + * + * def setEventTolerances(self, tol=None, vtol=None): # <<<<<<<<<<<<<< + * cdef PetscInt nevents = 0 + * cdef PetscReal tolr = PETSC_DEFAULT + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setEventTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vtol); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":714 + * CHKERR( TSSetEventTolerances(self.ts, tolr, vtolr) ) + * + * def getNumEvents(self): # <<<<<<<<<<<<<< + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_173getNumEvents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_172getNumEvents[] = "TS.getNumEvents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_173getNumEvents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumEvents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumEvents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumEvents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_172getNumEvents(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_172getNumEvents(struct PyPetscTSObject *__pyx_v_self) { + PetscInt __pyx_v_nevents; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumEvents", 0); + + /* "petsc4py/PETSc/TS.pyx":715 + * + * def getNumEvents(self): + * cdef PetscInt nevents = 0 # <<<<<<<<<<<<<< + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * return toInt(nevents) + */ + __pyx_v_nevents = 0; + + /* "petsc4py/PETSc/TS.pyx":716 + * def getNumEvents(self): + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) # <<<<<<<<<<<<<< + * return toInt(nevents) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetNumEvents(__pyx_v_self->ts, (&__pyx_v_nevents))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 716, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":717 + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + * return toInt(nevents) # <<<<<<<<<<<<<< + * + * # --- solving --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nevents); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 717, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":714 + * CHKERR( TSSetEventTolerances(self.ts, tolr, vtolr) ) + * + * def getNumEvents(self): # <<<<<<<<<<<<<< + * cdef PetscInt nevents = 0 + * CHKERR( TSGetNumEvents(self.ts, &nevents) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getNumEvents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":721 + * # --- solving --- + * + * def setPreStep(self, prestep, args=None, kargs=None): # <<<<<<<<<<<<<< + * if prestep is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_175setPreStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_174setPreStep[] = "TS.setPreStep(self, prestep, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_175setPreStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prestep = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPreStep (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prestep,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prestep)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPreStep") < 0)) __PYX_ERR(50, 721, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_prestep = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPreStep", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 721, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPreStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_174setPreStep(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_prestep, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_174setPreStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_prestep, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPreStep", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":722 + * + * def setPreStep(self, prestep, args=None, kargs=None): + * if prestep is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_prestep != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":723 + * def setPreStep(self, prestep, args=None, kargs=None): + * if prestep is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (prestep, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":724 + * if prestep is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (prestep, args, kargs) + * self.set_attr('__prestep__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":725 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (prestep, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__prestep__', context) + * CHKERR( TSSetPreStep(self.ts, TS_PreStep) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_prestep); + __Pyx_GIVEREF(__pyx_v_prestep); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_prestep); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":726 + * if kargs is None: kargs = {} + * context = (prestep, args, kargs) + * self.set_attr('__prestep__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetPreStep(self.ts, TS_PreStep) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__prestep__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":727 + * context = (prestep, args, kargs) + * self.set_attr('__prestep__', context) + * CHKERR( TSSetPreStep(self.ts, TS_PreStep) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__prestep__', None) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetPreStep(__pyx_v_self->ts, __pyx_f_8petsc4py_5PETSc_TS_PreStep)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 727, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":722 + * + * def setPreStep(self, prestep, args=None, kargs=None): + * if prestep is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":729 + * CHKERR( TSSetPreStep(self.ts, TS_PreStep) ) + * else: + * self.set_attr('__prestep__', None) # <<<<<<<<<<<<<< + * CHKERR( TSSetPreStep(self.ts, NULL) ) + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__prestep__"), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":730 + * else: + * self.set_attr('__prestep__', None) + * CHKERR( TSSetPreStep(self.ts, NULL) ) # <<<<<<<<<<<<<< + * + * def getPreStep(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetPreStep(__pyx_v_self->ts, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 730, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TS.pyx":721 + * # --- solving --- + * + * def setPreStep(self, prestep, args=None, kargs=None): # <<<<<<<<<<<<<< + * if prestep is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPreStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":732 + * CHKERR( TSSetPreStep(self.ts, NULL) ) + * + * def getPreStep(self): # <<<<<<<<<<<<<< + * return self.get_attr('__prestep__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_177getPreStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_176getPreStep[] = "TS.getPreStep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_177getPreStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPreStep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPreStep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPreStep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_176getPreStep(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_176getPreStep(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPreStep", 0); + + /* "petsc4py/PETSc/TS.pyx":733 + * + * def getPreStep(self): + * return self.get_attr('__prestep__') # <<<<<<<<<<<<<< + * + * def setPostStep(self, poststep, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__prestep__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":732 + * CHKERR( TSSetPreStep(self.ts, NULL) ) + * + * def getPreStep(self): # <<<<<<<<<<<<<< + * return self.get_attr('__prestep__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getPreStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":735 + * return self.get_attr('__prestep__') + * + * def setPostStep(self, poststep, args=None, kargs=None): # <<<<<<<<<<<<<< + * if poststep is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_179setPostStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_178setPostStep[] = "TS.setPostStep(self, poststep, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_179setPostStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_poststep = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPostStep (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_poststep,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_poststep)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPostStep") < 0)) __PYX_ERR(50, 735, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_poststep = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPostStep", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 735, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPostStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_178setPostStep(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_poststep, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_178setPostStep(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_poststep, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPostStep", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":736 + * + * def setPostStep(self, poststep, args=None, kargs=None): + * if poststep is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_poststep != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":737 + * def setPostStep(self, poststep, args=None, kargs=None): + * if poststep is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (poststep, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":738 + * if poststep is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (poststep, args, kargs) + * self.set_attr('__poststep__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":739 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (poststep, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__poststep__', context) + * CHKERR( TSSetPostStep(self.ts, TS_PostStep) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_poststep); + __Pyx_GIVEREF(__pyx_v_poststep); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_poststep); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":740 + * if kargs is None: kargs = {} + * context = (poststep, args, kargs) + * self.set_attr('__poststep__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetPostStep(self.ts, TS_PostStep) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__poststep__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":741 + * context = (poststep, args, kargs) + * self.set_attr('__poststep__', context) + * CHKERR( TSSetPostStep(self.ts, TS_PostStep) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__poststep__', None) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetPostStep(__pyx_v_self->ts, __pyx_f_8petsc4py_5PETSc_TS_PostStep)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 741, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":736 + * + * def setPostStep(self, poststep, args=None, kargs=None): + * if poststep is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TS.pyx":743 + * CHKERR( TSSetPostStep(self.ts, TS_PostStep) ) + * else: + * self.set_attr('__poststep__', None) # <<<<<<<<<<<<<< + * CHKERR( TSSetPostStep(self.ts, NULL) ) + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__poststep__"), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":744 + * else: + * self.set_attr('__poststep__', None) + * CHKERR( TSSetPostStep(self.ts, NULL) ) # <<<<<<<<<<<<<< + * + * def getPostStep(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetPostStep(__pyx_v_self->ts, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 744, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TS.pyx":735 + * return self.get_attr('__prestep__') + * + * def setPostStep(self, poststep, args=None, kargs=None): # <<<<<<<<<<<<<< + * if poststep is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPostStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":746 + * CHKERR( TSSetPostStep(self.ts, NULL) ) + * + * def getPostStep(self): # <<<<<<<<<<<<<< + * return self.get_attr('__poststep__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_181getPostStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_180getPostStep[] = "TS.getPostStep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_181getPostStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPostStep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPostStep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPostStep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_180getPostStep(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_180getPostStep(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPostStep", 0); + + /* "petsc4py/PETSc/TS.pyx":747 + * + * def getPostStep(self): + * return self.get_attr('__poststep__') # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__poststep__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":746 + * CHKERR( TSSetPostStep(self.ts, NULL) ) + * + * def getPostStep(self): # <<<<<<<<<<<<<< + * return self.get_attr('__poststep__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getPostStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":749 + * return self.get_attr('__poststep__') + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( TSSetUp(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_183setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_182setUp[] = "TS.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_183setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_182setUp(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_182setUp(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/TS.pyx":750 + * + * def setUp(self): + * CHKERR( TSSetUp(self.ts) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetUp(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 750, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":749 + * return self.get_attr('__poststep__') + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( TSSetUp(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":752 + * CHKERR( TSSetUp(self.ts) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( TSReset(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_185reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_184reset[] = "TS.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_185reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_184reset(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_184reset(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/TS.pyx":753 + * + * def reset(self): + * CHKERR( TSReset(self.ts) ) # <<<<<<<<<<<<<< + * + * def step(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSReset(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 753, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":752 + * CHKERR( TSSetUp(self.ts) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( TSReset(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":755 + * CHKERR( TSReset(self.ts) ) + * + * def step(self): # <<<<<<<<<<<<<< + * CHKERR( TSStep(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_187step(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_186step[] = "TS.step(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_187step(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("step (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("step", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "step", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_186step(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_186step(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("step", 0); + + /* "petsc4py/PETSc/TS.pyx":756 + * + * def step(self): + * CHKERR( TSStep(self.ts) ) # <<<<<<<<<<<<<< + * + * def restartStep(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSStep(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 756, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":755 + * CHKERR( TSReset(self.ts) ) + * + * def step(self): # <<<<<<<<<<<<<< + * CHKERR( TSStep(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.step", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":758 + * CHKERR( TSStep(self.ts) ) + * + * def restartStep(self): # <<<<<<<<<<<<<< + * CHKERR( TSRestartStep(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_189restartStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_188restartStep[] = "TS.restartStep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_189restartStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restartStep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("restartStep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "restartStep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_188restartStep(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_188restartStep(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restartStep", 0); + + /* "petsc4py/PETSc/TS.pyx":759 + * + * def restartStep(self): + * CHKERR( TSRestartStep(self.ts) ) # <<<<<<<<<<<<<< + * + * def rollBack(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRestartStep(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 759, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":758 + * CHKERR( TSStep(self.ts) ) + * + * def restartStep(self): # <<<<<<<<<<<<<< + * CHKERR( TSRestartStep(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.restartStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":761 + * CHKERR( TSRestartStep(self.ts) ) + * + * def rollBack(self): # <<<<<<<<<<<<<< + * CHKERR( TSRollBack(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_191rollBack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_190rollBack[] = "TS.rollBack(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_191rollBack(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("rollBack (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("rollBack", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "rollBack", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_190rollBack(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_190rollBack(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("rollBack", 0); + + /* "petsc4py/PETSc/TS.pyx":762 + * + * def rollBack(self): + * CHKERR( TSRollBack(self.ts) ) # <<<<<<<<<<<<<< + * + * def solve(self, Vec u): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRollBack(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 762, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":761 + * CHKERR( TSRestartStep(self.ts) ) + * + * def rollBack(self): # <<<<<<<<<<<<<< + * CHKERR( TSRollBack(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.rollBack", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":764 + * CHKERR( TSRollBack(self.ts) ) + * + * def solve(self, Vec u): # <<<<<<<<<<<<<< + * CHKERR( TSSolve(self.ts, u.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_193solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_192solve[] = "TS.solve(self, Vec u)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_193solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_u = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_u,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solve") < 0)) __PYX_ERR(50, 764, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_u = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solve", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 764, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "u", 0))) __PYX_ERR(50, 764, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_192solve(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_u); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_192solve(struct PyPetscTSObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_u) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solve", 0); + + /* "petsc4py/PETSc/TS.pyx":765 + * + * def solve(self, Vec u): + * CHKERR( TSSolve(self.ts, u.vec) ) # <<<<<<<<<<<<<< + * + * def interpolate(self, t, Vec u): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSolve(__pyx_v_self->ts, __pyx_v_u->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 765, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":764 + * CHKERR( TSRollBack(self.ts) ) + * + * def solve(self, Vec u): # <<<<<<<<<<<<<< + * CHKERR( TSSolve(self.ts, u.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":767 + * CHKERR( TSSolve(self.ts, u.vec) ) + * + * def interpolate(self, t, Vec u): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_195interpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_194interpolate[] = "TS.interpolate(self, t, Vec u)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_195interpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_u = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("interpolate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_u,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_u)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("interpolate", 1, 2, 2, 1); __PYX_ERR(50, 767, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "interpolate") < 0)) __PYX_ERR(50, 767, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_t = values[0]; + __pyx_v_u = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("interpolate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 767, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.interpolate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "u", 0))) __PYX_ERR(50, 767, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_194interpolate(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_u); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_194interpolate(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_u) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("interpolate", 0); + + /* "petsc4py/PETSc/TS.pyx":768 + * + * def interpolate(self, t, Vec u): + * cdef PetscReal rval = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 768, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":769 + * def interpolate(self, t, Vec u): + * cdef PetscReal rval = asReal(t) + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) # <<<<<<<<<<<<<< + * + * def setStepLimits(self, hmin, hmax): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSInterpolate(__pyx_v_self->ts, __pyx_v_rval, __pyx_v_u->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 769, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":767 + * CHKERR( TSSolve(self.ts, u.vec) ) + * + * def interpolate(self, t, Vec u): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.interpolate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":771 + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) + * + * def setStepLimits(self, hmin, hmax): # <<<<<<<<<<<<<< + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = toReal(hmin) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_197setStepLimits(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_196setStepLimits[] = "TS.setStepLimits(self, hmin, hmax)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_197setStepLimits(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_hmin = 0; + PyObject *__pyx_v_hmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStepLimits (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hmin,&__pyx_n_s_hmax,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmin)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hmax)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setStepLimits", 1, 2, 2, 1); __PYX_ERR(50, 771, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStepLimits") < 0)) __PYX_ERR(50, 771, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_hmin = values[0]; + __pyx_v_hmax = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStepLimits", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 771, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setStepLimits", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_196setStepLimits(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_hmin, __pyx_v_hmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_196setStepLimits(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_hmin, PyObject *__pyx_v_hmax) { + TSAdapt __pyx_v_tsadapt; + PetscReal __pyx_v_hminr; + PetscReal __pyx_v_hmaxr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStepLimits", 0); + + /* "petsc4py/PETSc/TS.pyx":772 + * + * def setStepLimits(self, hmin, hmax): + * cdef PetscTSAdapt tsadapt = NULL # <<<<<<<<<<<<<< + * cdef PetscReal hminr = toReal(hmin) + * cdef PetscReal hmaxr = toReal(hmax) + */ + __pyx_v_tsadapt = NULL; + + /* "petsc4py/PETSc/TS.pyx":773 + * def setStepLimits(self, hmin, hmax): + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = toReal(hmin) # <<<<<<<<<<<<<< + * cdef PetscReal hmaxr = toReal(hmax) + * TSGetAdapt(self.ts, &tsadapt) + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_hmin); if (unlikely((__pyx_t_1 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(50, 773, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_1 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(50, 773, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_hminr = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":774 + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = toReal(hmin) + * cdef PetscReal hmaxr = toReal(hmax) # <<<<<<<<<<<<<< + * TSGetAdapt(self.ts, &tsadapt) + * CHKERR( TSAdaptSetStepLimits(tsadapt, hminr, hmaxr) ) + */ + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_hmax); if (unlikely((__pyx_t_1 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(50, 774, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 774, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_1 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(50, 774, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_hmaxr = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":775 + * cdef PetscReal hminr = toReal(hmin) + * cdef PetscReal hmaxr = toReal(hmax) + * TSGetAdapt(self.ts, &tsadapt) # <<<<<<<<<<<<<< + * CHKERR( TSAdaptSetStepLimits(tsadapt, hminr, hmaxr) ) + * + */ + (void)(TSGetAdapt(__pyx_v_self->ts, (&__pyx_v_tsadapt))); + + /* "petsc4py/PETSc/TS.pyx":776 + * cdef PetscReal hmaxr = toReal(hmax) + * TSGetAdapt(self.ts, &tsadapt) + * CHKERR( TSAdaptSetStepLimits(tsadapt, hminr, hmaxr) ) # <<<<<<<<<<<<<< + * + * def getStepLimits(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdaptSetStepLimits(__pyx_v_tsadapt, __pyx_v_hminr, __pyx_v_hmaxr)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 776, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":771 + * CHKERR( TSInterpolate(self.ts, rval, u.vec) ) + * + * def setStepLimits(self, hmin, hmax): # <<<<<<<<<<<<<< + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = toReal(hmin) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setStepLimits", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":778 + * CHKERR( TSAdaptSetStepLimits(tsadapt, hminr, hmaxr) ) + * + * def getStepLimits(self): # <<<<<<<<<<<<<< + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = 0. + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_199getStepLimits(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_198getStepLimits[] = "TS.getStepLimits(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_199getStepLimits(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStepLimits (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStepLimits", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStepLimits", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_198getStepLimits(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_198getStepLimits(struct PyPetscTSObject *__pyx_v_self) { + TSAdapt __pyx_v_tsadapt; + PetscReal __pyx_v_hminr; + PetscReal __pyx_v_hmaxr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscReal __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStepLimits", 0); + + /* "petsc4py/PETSc/TS.pyx":779 + * + * def getStepLimits(self): + * cdef PetscTSAdapt tsadapt = NULL # <<<<<<<<<<<<<< + * cdef PetscReal hminr = 0. + * cdef PetscReal hmaxr = 0. + */ + __pyx_v_tsadapt = NULL; + + /* "petsc4py/PETSc/TS.pyx":780 + * def getStepLimits(self): + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = 0. # <<<<<<<<<<<<<< + * cdef PetscReal hmaxr = 0. + * TSGetAdapt(self.ts, &tsadapt) + */ + __pyx_v_hminr = 0.; + + /* "petsc4py/PETSc/TS.pyx":781 + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = 0. + * cdef PetscReal hmaxr = 0. # <<<<<<<<<<<<<< + * TSGetAdapt(self.ts, &tsadapt) + * CHKERR( TSAdaptGetStepLimits(tsadapt, &hminr, &hmaxr) ) + */ + __pyx_v_hmaxr = 0.; + + /* "petsc4py/PETSc/TS.pyx":782 + * cdef PetscReal hminr = 0. + * cdef PetscReal hmaxr = 0. + * TSGetAdapt(self.ts, &tsadapt) # <<<<<<<<<<<<<< + * CHKERR( TSAdaptGetStepLimits(tsadapt, &hminr, &hmaxr) ) + * return (asReal(hminr), asReal(hmaxr)) + */ + (void)(TSGetAdapt(__pyx_v_self->ts, (&__pyx_v_tsadapt))); + + /* "petsc4py/PETSc/TS.pyx":783 + * cdef PetscReal hmaxr = 0. + * TSGetAdapt(self.ts, &tsadapt) + * CHKERR( TSAdaptGetStepLimits(tsadapt, &hminr, &hmaxr) ) # <<<<<<<<<<<<<< + * return (asReal(hminr), asReal(hmaxr)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdaptGetStepLimits(__pyx_v_tsadapt, (&__pyx_v_hminr), (&__pyx_v_hmaxr))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 783, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":784 + * TSGetAdapt(self.ts, &tsadapt) + * CHKERR( TSAdaptGetStepLimits(tsadapt, &hminr, &hmaxr) ) + * return (asReal(hminr), asReal(hmaxr)) # <<<<<<<<<<<<<< + * + * # --- Adjoint methods --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_hminr); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyFloat_FromDouble(__pyx_v_hmaxr); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":778 + * CHKERR( TSAdaptSetStepLimits(tsadapt, hminr, hmaxr) ) + * + * def getStepLimits(self): # <<<<<<<<<<<<<< + * cdef PetscTSAdapt tsadapt = NULL + * cdef PetscReal hminr = 0. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getStepLimits", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":788 + * # --- Adjoint methods --- + * + * def setSaveTrajectory(self): # <<<<<<<<<<<<<< + * CHKERR(TSSetSaveTrajectory(self.ts)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_201setSaveTrajectory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_200setSaveTrajectory[] = "TS.setSaveTrajectory(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_201setSaveTrajectory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSaveTrajectory (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setSaveTrajectory", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setSaveTrajectory", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_200setSaveTrajectory(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_200setSaveTrajectory(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSaveTrajectory", 0); + + /* "petsc4py/PETSc/TS.pyx":789 + * + * def setSaveTrajectory(self): + * CHKERR(TSSetSaveTrajectory(self.ts)) # <<<<<<<<<<<<<< + * + * def removeTrajectory(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetSaveTrajectory(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 789, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":788 + * # --- Adjoint methods --- + * + * def setSaveTrajectory(self): # <<<<<<<<<<<<<< + * CHKERR(TSSetSaveTrajectory(self.ts)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setSaveTrajectory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":791 + * CHKERR(TSSetSaveTrajectory(self.ts)) + * + * def removeTrajectory(self): # <<<<<<<<<<<<<< + * CHKERR(TSRemoveTrajectory(self.ts)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_203removeTrajectory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_202removeTrajectory[] = "TS.removeTrajectory(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_203removeTrajectory(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("removeTrajectory (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("removeTrajectory", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "removeTrajectory", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_202removeTrajectory(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_202removeTrajectory(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("removeTrajectory", 0); + + /* "petsc4py/PETSc/TS.pyx":792 + * + * def removeTrajectory(self): + * CHKERR(TSRemoveTrajectory(self.ts)) # <<<<<<<<<<<<<< + * + * def getCostIntegral(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRemoveTrajectory(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 792, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":791 + * CHKERR(TSSetSaveTrajectory(self.ts)) + * + * def removeTrajectory(self): # <<<<<<<<<<<<<< + * CHKERR(TSRemoveTrajectory(self.ts)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.removeTrajectory", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":794 + * CHKERR(TSRemoveTrajectory(self.ts)) + * + * def getCostIntegral(self): # <<<<<<<<<<<<<< + * cdef Vec cost = Vec() + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_205getCostIntegral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_204getCostIntegral[] = "TS.getCostIntegral(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_205getCostIntegral(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCostIntegral (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCostIntegral", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCostIntegral", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_204getCostIntegral(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_204getCostIntegral(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_cost = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCostIntegral", 0); + + /* "petsc4py/PETSc/TS.pyx":795 + * + * def getCostIntegral(self): + * cdef Vec cost = Vec() # <<<<<<<<<<<<<< + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) + * PetscINCREF(cost.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_cost = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":796 + * def getCostIntegral(self): + * cdef Vec cost = Vec() + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(cost.obj) + * return cost + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetCostIntegral(__pyx_v_self->ts, (&__pyx_v_cost->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 796, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":797 + * cdef Vec cost = Vec() + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) + * PetscINCREF(cost.obj) # <<<<<<<<<<<<<< + * return cost + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_cost->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":798 + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) + * PetscINCREF(cost.obj) + * return cost # <<<<<<<<<<<<<< + * + * def setCostGradients(self, vl, vm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_cost)); + __pyx_r = ((PyObject *)__pyx_v_cost); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":794 + * CHKERR(TSRemoveTrajectory(self.ts)) + * + * def getCostIntegral(self): # <<<<<<<<<<<<<< + * cdef Vec cost = Vec() + * CHKERR( TSGetCostIntegral(self.ts, &cost.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getCostIntegral", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_cost); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":800 + * return cost + * + * def setCostGradients(self, vl, vm=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0; + * cdef PetscVec *vecl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_207setCostGradients(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_206setCostGradients[] = "TS.setCostGradients(self, vl, vm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_207setCostGradients(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vl = 0; + PyObject *__pyx_v_vm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCostGradients (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vl,&__pyx_n_s_vm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCostGradients") < 0)) __PYX_ERR(50, 800, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vl = values[0]; + __pyx_v_vm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCostGradients", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 800, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setCostGradients", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_206setCostGradients(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_vl, __pyx_v_vm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_206setCostGradients(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_vl, PyObject *__pyx_v_vm) { + PetscInt __pyx_v_n; + Vec *__pyx_v_vecl; + Vec *__pyx_v_vecm; + PyObject *__pyx_v_mem1 = 0; + PyObject *__pyx_v_mem2 = 0; + long __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PetscInt __pyx_t_6; + Vec __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCostGradients", 0); + __Pyx_INCREF(__pyx_v_vl); + __Pyx_INCREF(__pyx_v_vm); + + /* "petsc4py/PETSc/TS.pyx":801 + * + * def setCostGradients(self, vl, vm=None): + * cdef PetscInt n = 0; # <<<<<<<<<<<<<< + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":802 + * def setCostGradients(self, vl, vm=None): + * cdef PetscInt n = 0; + * cdef PetscVec *vecl = NULL # <<<<<<<<<<<<<< + * cdef PetscVec *vecm = NULL + * cdef mem1 = None, mem2 = None + */ + __pyx_v_vecl = NULL; + + /* "petsc4py/PETSc/TS.pyx":803 + * cdef PetscInt n = 0; + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL # <<<<<<<<<<<<<< + * cdef mem1 = None, mem2 = None + * if isinstance(vl, Vec): vl = [vl] + */ + __pyx_v_vecm = NULL; + + /* "petsc4py/PETSc/TS.pyx":804 + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL + * cdef mem1 = None, mem2 = None # <<<<<<<<<<<<<< + * if isinstance(vl, Vec): vl = [vl] + * if isinstance(vm, Vec): vm = [vm] + */ + __Pyx_INCREF(Py_None); + __pyx_v_mem1 = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_mem2 = Py_None; + + /* "petsc4py/PETSc/TS.pyx":805 + * cdef PetscVec *vecm = NULL + * cdef mem1 = None, mem2 = None + * if isinstance(vl, Vec): vl = [vl] # <<<<<<<<<<<<<< + * if isinstance(vm, Vec): vm = [vm] + * if vl is not None: + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_vl, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_vl); + __Pyx_GIVEREF(__pyx_v_vl); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_vl); + __Pyx_DECREF_SET(__pyx_v_vl, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":806 + * cdef mem1 = None, mem2 = None + * if isinstance(vl, Vec): vl = [vl] + * if isinstance(vm, Vec): vm = [vm] # <<<<<<<<<<<<<< + * if vl is not None: + * n = len(vl) + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_vm, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_vm); + __Pyx_GIVEREF(__pyx_v_vm); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_vm); + __Pyx_DECREF_SET(__pyx_v_vm, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":807 + * if isinstance(vl, Vec): vl = [vl] + * if isinstance(vm, Vec): vm = [vm] + * if vl is not None: # <<<<<<<<<<<<<< + * n = len(vl) + * elif vm is not None: + */ + __pyx_t_1 = (__pyx_v_vl != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":808 + * if isinstance(vm, Vec): vm = [vm] + * if vl is not None: + * n = len(vl) # <<<<<<<<<<<<<< + * elif vm is not None: + * n = len(vm) + */ + __pyx_t_4 = PyObject_Length(__pyx_v_vl); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(50, 808, __pyx_L1_error) + __pyx_v_n = ((PetscInt)__pyx_t_4); + + /* "petsc4py/PETSc/TS.pyx":807 + * if isinstance(vl, Vec): vl = [vl] + * if isinstance(vm, Vec): vm = [vm] + * if vl is not None: # <<<<<<<<<<<<<< + * n = len(vl) + * elif vm is not None: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/TS.pyx":809 + * if vl is not None: + * n = len(vl) + * elif vm is not None: # <<<<<<<<<<<<<< + * n = len(vm) + * if vl is not None: + */ + __pyx_t_2 = (__pyx_v_vm != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":810 + * n = len(vl) + * elif vm is not None: + * n = len(vm) # <<<<<<<<<<<<<< + * if vl is not None: + * assert len(vl) == n + */ + __pyx_t_4 = PyObject_Length(__pyx_v_vm); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(50, 810, __pyx_L1_error) + __pyx_v_n = ((PetscInt)__pyx_t_4); + + /* "petsc4py/PETSc/TS.pyx":809 + * if vl is not None: + * n = len(vl) + * elif vm is not None: # <<<<<<<<<<<<<< + * n = len(vm) + * if vl is not None: + */ + } + __pyx_L5:; + + /* "petsc4py/PETSc/TS.pyx":811 + * elif vm is not None: + * n = len(vm) + * if vl is not None: # <<<<<<<<<<<<<< + * assert len(vl) == n + * mem1 = oarray_p(empty_p(n), NULL, &vecl) + */ + __pyx_t_1 = (__pyx_v_vl != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":812 + * n = len(vm) + * if vl is not None: + * assert len(vl) == n # <<<<<<<<<<<<<< + * mem1 = oarray_p(empty_p(n), NULL, &vecl) + * for i from 0 <= i < n: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_vl); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(50, 812, __pyx_L1_error) + if (unlikely(!((__pyx_t_4 == ((Py_ssize_t)__pyx_v_n)) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(50, 812, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/TS.pyx":813 + * if vl is not None: + * assert len(vl) == n + * mem1 = oarray_p(empty_p(n), NULL, &vecl) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * vecl[i] = (vl[i]).vec + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_vecl)))); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_mem1, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":814 + * assert len(vl) == n + * mem1 = oarray_p(empty_p(n), NULL, &vecl) + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * vecl[i] = (vl[i]).vec + * if vm is not None: + */ + __pyx_t_6 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { + + /* "petsc4py/PETSc/TS.pyx":815 + * mem1 = oarray_p(empty_p(n), NULL, &vecl) + * for i from 0 <= i < n: + * vecl[i] = (vl[i]).vec # <<<<<<<<<<<<<< + * if vm is not None: + * assert len(vm) == n + */ + __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_vl, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (!(likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(50, 815, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscVecObject *)__pyx_t_5)->vec; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + (__pyx_v_vecl[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/TS.pyx":811 + * elif vm is not None: + * n = len(vm) + * if vl is not None: # <<<<<<<<<<<<<< + * assert len(vl) == n + * mem1 = oarray_p(empty_p(n), NULL, &vecl) + */ + } + + /* "petsc4py/PETSc/TS.pyx":816 + * for i from 0 <= i < n: + * vecl[i] = (vl[i]).vec + * if vm is not None: # <<<<<<<<<<<<<< + * assert len(vm) == n + * mem2 = oarray_p(empty_p(n), NULL, &vecm) + */ + __pyx_t_2 = (__pyx_v_vm != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":817 + * vecl[i] = (vl[i]).vec + * if vm is not None: + * assert len(vm) == n # <<<<<<<<<<<<<< + * mem2 = oarray_p(empty_p(n), NULL, &vecm) + * for i from 0 <= i < n: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = PyObject_Length(__pyx_v_vm); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(50, 817, __pyx_L1_error) + if (unlikely(!((__pyx_t_4 == ((Py_ssize_t)__pyx_v_n)) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(50, 817, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/TS.pyx":818 + * if vm is not None: + * assert len(vm) == n + * mem2 = oarray_p(empty_p(n), NULL, &vecm) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * vecm[i] = (vm[i]).vec + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_5, NULL, ((void **)(&__pyx_v_vecm)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_mem2, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":819 + * assert len(vm) == n + * mem2 = oarray_p(empty_p(n), NULL, &vecm) + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * vecm[i] = (vm[i]).vec + * self.set_attr('__costgradients_memory', (mem1, mem2)) + */ + __pyx_t_6 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { + + /* "petsc4py/PETSc/TS.pyx":820 + * mem2 = oarray_p(empty_p(n), NULL, &vecm) + * for i from 0 <= i < n: + * vecm[i] = (vm[i]).vec # <<<<<<<<<<<<<< + * self.set_attr('__costgradients_memory', (mem1, mem2)) + * CHKERR( TSSetCostGradients(self.ts, n, vecl, vecm) ) + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_vm, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 820, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(50, 820, __pyx_L1_error) + __pyx_t_7 = ((struct PyPetscVecObject *)__pyx_t_3)->vec; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_vecm[__pyx_v_i]) = __pyx_t_7; + } + + /* "petsc4py/PETSc/TS.pyx":816 + * for i from 0 <= i < n: + * vecl[i] = (vl[i]).vec + * if vm is not None: # <<<<<<<<<<<<<< + * assert len(vm) == n + * mem2 = oarray_p(empty_p(n), NULL, &vecm) + */ + } + + /* "petsc4py/PETSc/TS.pyx":821 + * for i from 0 <= i < n: + * vecm[i] = (vm[i]).vec + * self.set_attr('__costgradients_memory', (mem1, mem2)) # <<<<<<<<<<<<<< + * CHKERR( TSSetCostGradients(self.ts, n, vecl, vecm) ) + * + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_mem1); + __Pyx_GIVEREF(__pyx_v_mem1); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_mem1); + __Pyx_INCREF(__pyx_v_mem2); + __Pyx_GIVEREF(__pyx_v_mem2); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_mem2); + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__costgradients_memory"), __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":822 + * vecm[i] = (vm[i]).vec + * self.set_attr('__costgradients_memory', (mem1, mem2)) + * CHKERR( TSSetCostGradients(self.ts, n, vecl, vecm) ) # <<<<<<<<<<<<<< + * + * def getCostGradients(self): + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetCostGradients(__pyx_v_self->ts, __pyx_v_n, __pyx_v_vecl, __pyx_v_vecm)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 822, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":800 + * return cost + * + * def setCostGradients(self, vl, vm=None): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0; + * cdef PetscVec *vecl = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setCostGradients", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mem1); + __Pyx_XDECREF(__pyx_v_mem2); + __Pyx_XDECREF(__pyx_v_vl); + __Pyx_XDECREF(__pyx_v_vm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":824 + * CHKERR( TSSetCostGradients(self.ts, n, vecl, vecm) ) + * + * def getCostGradients(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscVec *vecl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_209getCostGradients(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_208getCostGradients[] = "TS.getCostGradients(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_209getCostGradients(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCostGradients (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCostGradients", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCostGradients", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_208getCostGradients(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_208getCostGradients(struct PyPetscTSObject *__pyx_v_self) { + CYTHON_UNUSED PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + Vec *__pyx_v_vecl; + Vec *__pyx_v_vecm; + PyObject *__pyx_v_vl = 0; + PyObject *__pyx_v_vm = 0; + PetscInt __pyx_9genexpr12__pyx_v_i; + PetscInt __pyx_9genexpr13__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCostGradients", 0); + + /* "petsc4py/PETSc/TS.pyx":825 + * + * def getCostGradients(self): + * cdef PetscInt i = 0, n = 0 # <<<<<<<<<<<<<< + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL + */ + __pyx_v_i = 0; + __pyx_v_n = 0; + + /* "petsc4py/PETSc/TS.pyx":826 + * def getCostGradients(self): + * cdef PetscInt i = 0, n = 0 + * cdef PetscVec *vecl = NULL # <<<<<<<<<<<<<< + * cdef PetscVec *vecm = NULL + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) + */ + __pyx_v_vecl = NULL; + + /* "petsc4py/PETSc/TS.pyx":827 + * cdef PetscInt i = 0, n = 0 + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL # <<<<<<<<<<<<<< + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) + * cdef object vl = None, vm = None + */ + __pyx_v_vecm = NULL; + + /* "petsc4py/PETSc/TS.pyx":828 + * cdef PetscVec *vecl = NULL + * cdef PetscVec *vecm = NULL + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) # <<<<<<<<<<<<<< + * cdef object vl = None, vm = None + * if vecl != NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetCostGradients(__pyx_v_self->ts, (&__pyx_v_n), (&__pyx_v_vecl), (&__pyx_v_vecm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 828, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":829 + * cdef PetscVec *vecm = NULL + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) + * cdef object vl = None, vm = None # <<<<<<<<<<<<<< + * if vecl != NULL: + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + */ + __Pyx_INCREF(Py_None); + __pyx_v_vl = Py_None; + __Pyx_INCREF(Py_None); + __pyx_v_vm = Py_None; + + /* "petsc4py/PETSc/TS.pyx":830 + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) + * cdef object vl = None, vm = None + * if vecl != NULL: # <<<<<<<<<<<<<< + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + * if vecm != NULL: + */ + __pyx_t_2 = ((__pyx_v_vecl != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":831 + * cdef object vl = None, vm = None + * if vecl != NULL: + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * if vecm != NULL: + * vm = [ref_Vec(vecm[i]) for i from 0 <= i < n] + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_n; + for (__pyx_9genexpr12__pyx_v_i = 0; __pyx_9genexpr12__pyx_v_i < __pyx_t_4; __pyx_9genexpr12__pyx_v_i++) { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_vecl[__pyx_9genexpr12__pyx_v_i]))); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(50, 831, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_vl, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":830 + * CHKERR( TSGetCostGradients(self.ts, &n, &vecl, &vecm) ) + * cdef object vl = None, vm = None + * if vecl != NULL: # <<<<<<<<<<<<<< + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + * if vecm != NULL: + */ + } + + /* "petsc4py/PETSc/TS.pyx":832 + * if vecl != NULL: + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + * if vecm != NULL: # <<<<<<<<<<<<<< + * vm = [ref_Vec(vecm[i]) for i from 0 <= i < n] + * return (vl, vm) + */ + __pyx_t_2 = ((__pyx_v_vecm != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TS.pyx":833 + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + * if vecm != NULL: + * vm = [ref_Vec(vecm[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * return (vl, vm) + * + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_v_n; + for (__pyx_9genexpr13__pyx_v_i = 0; __pyx_9genexpr13__pyx_v_i < __pyx_t_4; __pyx_9genexpr13__pyx_v_i++) { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_Vec((__pyx_v_vecm[__pyx_9genexpr13__pyx_v_i]))); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_5))) __PYX_ERR(50, 833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_vm, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":832 + * if vecl != NULL: + * vl = [ref_Vec(vecl[i]) for i from 0 <= i < n] + * if vecm != NULL: # <<<<<<<<<<<<<< + * vm = [ref_Vec(vecm[i]) for i from 0 <= i < n] + * return (vl, vm) + */ + } + + /* "petsc4py/PETSc/TS.pyx":834 + * if vecm != NULL: + * vm = [ref_Vec(vecm[i]) for i from 0 <= i < n] + * return (vl, vm) # <<<<<<<<<<<<<< + * + * def setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 834, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_vl); + __Pyx_GIVEREF(__pyx_v_vl); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_vl); + __Pyx_INCREF(__pyx_v_vm); + __Pyx_GIVEREF(__pyx_v_vm); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_vm); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":824 + * CHKERR( TSSetCostGradients(self.ts, n, vecl, vecm) ) + * + * def getCostGradients(self): # <<<<<<<<<<<<<< + * cdef PetscInt i = 0, n = 0 + * cdef PetscVec *vecl = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getCostGradients", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vl); + __Pyx_XDECREF(__pyx_v_vm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":836 + * return (vl, vm) + * + * def setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_211setRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_210setRHSJacobianP[] = "TS.setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_211setRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobianp = 0; + struct PyPetscMatObject *__pyx_v_A = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRHSJacobianP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobianp,&__pyx_n_s_A,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobianp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRHSJacobianP") < 0)) __PYX_ERR(50, 836, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobianp = values[0]; + __pyx_v_A = ((struct PyPetscMatObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRHSJacobianP", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 836, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "A", 0))) __PYX_ERR(50, 836, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_210setRHSJacobianP(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_jacobianp, __pyx_v_A, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_210setRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_jacobianp, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Amat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRHSJacobianP", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":837 + * + * def setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None): + * cdef PetscMat Amat=NULL # <<<<<<<<<<<<<< + * if A is not None: Amat = A.mat + * if jacobianp is not None: + */ + __pyx_v_Amat = NULL; + + /* "petsc4py/PETSc/TS.pyx":838 + * def setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None): + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat # <<<<<<<<<<<<<< + * if jacobianp is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_A) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_A->mat; + __pyx_v_Amat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":839 + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + * if jacobianp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_jacobianp != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":840 + * if A is not None: Amat = A.mat + * if jacobianp is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobianp, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":841 + * if jacobianp is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":842 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobianp, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__rhsjacobianp__', context) + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobianp); + __Pyx_GIVEREF(__pyx_v_jacobianp); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobianp); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":843 + * if kargs is None: kargs = {} + * context = (jacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsjacobianp__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":844 + * context = (jacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobianP(__pyx_v_self->ts, __pyx_v_Amat, __pyx_f_8petsc4py_5PETSc_TS_RHSJacobianP, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 844, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":839 + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + * if jacobianp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":846 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + * else: + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def createQuadratureTS(self, forward=True): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobianP(__pyx_v_self->ts, __pyx_v_Amat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 846, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":836 + * return (vl, vm) + * + * def setRHSJacobianP(self, jacobianp, Mat A=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":848 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + * + * def createQuadratureTS(self, forward=True): # <<<<<<<<<<<<<< + * cdef TS qts = TS() + * cdef PetscBool fwd = forward + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_213createQuadratureTS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_212createQuadratureTS[] = "TS.createQuadratureTS(self, forward=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_213createQuadratureTS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_forward = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createQuadratureTS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_forward,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_forward); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createQuadratureTS") < 0)) __PYX_ERR(50, 848, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_forward = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createQuadratureTS", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 848, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.createQuadratureTS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_212createQuadratureTS(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_forward); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_212createQuadratureTS(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_forward) { + struct PyPetscTSObject *__pyx_v_qts = 0; + PetscBool __pyx_v_fwd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createQuadratureTS", 0); + + /* "petsc4py/PETSc/TS.pyx":849 + * + * def createQuadratureTS(self, forward=True): + * cdef TS qts = TS() # <<<<<<<<<<<<<< + * cdef PetscBool fwd = forward + * CHKERR( TSCreateQuadratureTS(self.ts, fwd, &qts.ts) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_qts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":850 + * def createQuadratureTS(self, forward=True): + * cdef TS qts = TS() + * cdef PetscBool fwd = forward # <<<<<<<<<<<<<< + * CHKERR( TSCreateQuadratureTS(self.ts, fwd, &qts.ts) ) + * PetscINCREF(qts.obj) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_forward)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 850, __pyx_L1_error) + __pyx_v_fwd = __pyx_t_2; + + /* "petsc4py/PETSc/TS.pyx":851 + * cdef TS qts = TS() + * cdef PetscBool fwd = forward + * CHKERR( TSCreateQuadratureTS(self.ts, fwd, &qts.ts) ) # <<<<<<<<<<<<<< + * PetscINCREF(qts.obj) + * return qts + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSCreateQuadratureTS(__pyx_v_self->ts, __pyx_v_fwd, (&__pyx_v_qts->ts))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 851, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":852 + * cdef PetscBool fwd = forward + * CHKERR( TSCreateQuadratureTS(self.ts, fwd, &qts.ts) ) + * PetscINCREF(qts.obj) # <<<<<<<<<<<<<< + * return qts + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_qts->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":853 + * CHKERR( TSCreateQuadratureTS(self.ts, fwd, &qts.ts) ) + * PetscINCREF(qts.obj) + * return qts # <<<<<<<<<<<<<< + * + * def getQuadratureTS(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_qts)); + __pyx_r = ((PyObject *)__pyx_v_qts); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":848 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + * + * def createQuadratureTS(self, forward=True): # <<<<<<<<<<<<<< + * cdef TS qts = TS() + * cdef PetscBool fwd = forward + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.createQuadratureTS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_qts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":855 + * return qts + * + * def getQuadratureTS(self): # <<<<<<<<<<<<<< + * cdef TS qts = TS() + * cdef PetscBool fwd = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_215getQuadratureTS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_214getQuadratureTS[] = "TS.getQuadratureTS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_215getQuadratureTS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getQuadratureTS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getQuadratureTS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getQuadratureTS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_214getQuadratureTS(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_214getQuadratureTS(struct PyPetscTSObject *__pyx_v_self) { + struct PyPetscTSObject *__pyx_v_qts = 0; + PetscBool __pyx_v_fwd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getQuadratureTS", 0); + + /* "petsc4py/PETSc/TS.pyx":856 + * + * def getQuadratureTS(self): + * cdef TS qts = TS() # <<<<<<<<<<<<<< + * cdef PetscBool fwd = PETSC_FALSE + * CHKERR( TSGetQuadratureTS(self.ts, &fwd, &qts.ts) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_qts = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":857 + * def getQuadratureTS(self): + * cdef TS qts = TS() + * cdef PetscBool fwd = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( TSGetQuadratureTS(self.ts, &fwd, &qts.ts) ) + * PetscINCREF(qts.obj) + */ + __pyx_v_fwd = PETSC_FALSE; + + /* "petsc4py/PETSc/TS.pyx":858 + * cdef TS qts = TS() + * cdef PetscBool fwd = PETSC_FALSE + * CHKERR( TSGetQuadratureTS(self.ts, &fwd, &qts.ts) ) # <<<<<<<<<<<<<< + * PetscINCREF(qts.obj) + * return (toBool(fwd), qts) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSGetQuadratureTS(__pyx_v_self->ts, (&__pyx_v_fwd), (&__pyx_v_qts->ts))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 858, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":859 + * cdef PetscBool fwd = PETSC_FALSE + * CHKERR( TSGetQuadratureTS(self.ts, &fwd, &qts.ts) ) + * PetscINCREF(qts.obj) # <<<<<<<<<<<<<< + * return (toBool(fwd), qts) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_qts->__pyx_base.obj)); + + /* "petsc4py/PETSc/TS.pyx":860 + * CHKERR( TSGetQuadratureTS(self.ts, &fwd, &qts.ts) ) + * PetscINCREF(qts.obj) + * return (toBool(fwd), qts) # <<<<<<<<<<<<<< + * + * def setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_fwd); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 860, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_qts)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_qts)); + PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_qts)); + __pyx_t_1 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":855 + * return qts + * + * def getQuadratureTS(self): # <<<<<<<<<<<<<< + * cdef TS qts = TS() + * cdef PetscBool fwd = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getQuadratureTS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_qts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":862 + * return (toBool(fwd), qts) + * + * def setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_217setRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_216setRHSJacobianP[] = "TS.setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_217setRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_rhsjacobianp = 0; + struct PyPetscMatObject *__pyx_v_A = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRHSJacobianP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_rhsjacobianp,&__pyx_n_s_A,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rhsjacobianp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_A); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRHSJacobianP") < 0)) __PYX_ERR(50, 862, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_rhsjacobianp = values[0]; + __pyx_v_A = ((struct PyPetscMatObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRHSJacobianP", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 862, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_A), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "A", 0))) __PYX_ERR(50, 862, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_216setRHSJacobianP(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_rhsjacobianp, __pyx_v_A, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_216setRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_rhsjacobianp, struct PyPetscMatObject *__pyx_v_A, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Amat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRHSJacobianP", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TS.pyx":863 + * + * def setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None): + * cdef PetscMat Amat=NULL # <<<<<<<<<<<<<< + * if A is not None: Amat = A.mat + * if rhsjacobianp is not None: + */ + __pyx_v_Amat = NULL; + + /* "petsc4py/PETSc/TS.pyx":864 + * def setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None): + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat # <<<<<<<<<<<<<< + * if rhsjacobianp is not None: + * if args is None: args = () + */ + __pyx_t_1 = (((PyObject *)__pyx_v_A) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_A->mat; + __pyx_v_Amat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TS.pyx":865 + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + * if rhsjacobianp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (__pyx_v_rhsjacobianp != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TS.pyx":866 + * if A is not None: Amat = A.mat + * if rhsjacobianp is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (rhsjacobianp, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TS.pyx":867 + * if rhsjacobianp is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (rhsjacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TS.pyx":868 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (rhsjacobianp, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__rhsjacobianp__', context) + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_rhsjacobianp); + __Pyx_GIVEREF(__pyx_v_rhsjacobianp); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_rhsjacobianp); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":869 + * if kargs is None: kargs = {} + * context = (rhsjacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) # <<<<<<<<<<<<<< + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + * else: + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TS *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__rhsjacobianp__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TS.pyx":870 + * context = (rhsjacobianp, args, kargs) + * self.set_attr('__rhsjacobianp__', context) + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobianP(__pyx_v_self->ts, __pyx_v_Amat, __pyx_f_8petsc4py_5PETSc_TS_RHSJacobianP, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 870, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":865 + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + * if rhsjacobianp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TS.pyx":872 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, TS_RHSJacobianP, context) ) + * else: + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def computeRHSJacobianP(self, t, Vec x, Mat J): + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetRHSJacobianP(__pyx_v_self->ts, __pyx_v_Amat, NULL, NULL)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 872, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TS.pyx":862 + * return (toBool(fwd), qts) + * + * def setRHSJacobianP(self, rhsjacobianp, Mat A=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Amat=NULL + * if A is not None: Amat = A.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":874 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + * + * def computeRHSJacobianP(self, t, Vec x, Mat J): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_219computeRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_218computeRHSJacobianP[] = "TS.computeRHSJacobianP(self, t, Vec x, Mat J)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_219computeRHSJacobianP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_t = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeRHSJacobianP (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_t,&__pyx_n_s_x,&__pyx_n_s_J,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianP", 1, 3, 3, 1); __PYX_ERR(50, 874, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianP", 1, 3, 3, 2); __PYX_ERR(50, 874, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeRHSJacobianP") < 0)) __PYX_ERR(50, 874, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_t = values[0]; + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + __pyx_v_J = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeRHSJacobianP", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 874, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(50, 874, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(50, 874, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_218computeRHSJacobianP(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_t, __pyx_v_x, __pyx_v_J); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_218computeRHSJacobianP(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_t, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeRHSJacobianP", 0); + + /* "petsc4py/PETSc/TS.pyx":875 + * + * def computeRHSJacobianP(self, t, Vec x, Mat J): + * cdef PetscReal rval = asReal(t) # <<<<<<<<<<<<<< + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_t); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 875, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":876 + * def computeRHSJacobianP(self, t, Vec x, Mat J): + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) # <<<<<<<<<<<<<< + * + * def adjointSetSteps(self, adjoint_steps): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeRHSJacobianP(__pyx_v_self->ts, __pyx_v_rval, __pyx_v_x->vec, __pyx_v_J->mat)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 876, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":874 + * CHKERR( TSSetRHSJacobianP(self.ts, Amat, NULL, NULL) ) + * + * def computeRHSJacobianP(self, t, Vec x, Mat J): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(t) + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.computeRHSJacobianP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":878 + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) + * + * def adjointSetSteps(self, adjoint_steps): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(adjoint_steps) + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_221adjointSetSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_220adjointSetSteps[] = "TS.adjointSetSteps(self, adjoint_steps)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_221adjointSetSteps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_adjoint_steps = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adjointSetSteps (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_adjoint_steps,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_adjoint_steps)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adjointSetSteps") < 0)) __PYX_ERR(50, 878, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_adjoint_steps = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("adjointSetSteps", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 878, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointSetSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_220adjointSetSteps(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_adjoint_steps); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_220adjointSetSteps(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_adjoint_steps) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjointSetSteps", 0); + + /* "petsc4py/PETSc/TS.pyx":879 + * + * def adjointSetSteps(self, adjoint_steps): + * cdef PetscInt ival = asInt(adjoint_steps) # <<<<<<<<<<<<<< + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_adjoint_steps); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(50, 879, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":880 + * def adjointSetSteps(self, adjoint_steps): + * cdef PetscInt ival = asInt(adjoint_steps) + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) # <<<<<<<<<<<<<< + * + * def adjointSetUp(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdjointSetSteps(__pyx_v_self->ts, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 880, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":878 + * CHKERR( TSComputeRHSJacobianP(self.ts, rval, x.vec, J.mat) ) + * + * def adjointSetSteps(self, adjoint_steps): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(adjoint_steps) + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointSetSteps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":882 + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) + * + * def adjointSetUp(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointSetUp(self.ts)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_223adjointSetUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_222adjointSetUp[] = "TS.adjointSetUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_223adjointSetUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adjointSetUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("adjointSetUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "adjointSetUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_222adjointSetUp(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_222adjointSetUp(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjointSetUp", 0); + + /* "petsc4py/PETSc/TS.pyx":883 + * + * def adjointSetUp(self): + * CHKERR(TSAdjointSetUp(self.ts)) # <<<<<<<<<<<<<< + * + * def adjointSolve(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdjointSetUp(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 883, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":882 + * CHKERR( TSAdjointSetSteps(self.ts, ival) ) + * + * def adjointSetUp(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointSetUp(self.ts)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointSetUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":885 + * CHKERR(TSAdjointSetUp(self.ts)) + * + * def adjointSolve(self): # <<<<<<<<<<<<<< + * CHKERR( TSAdjointSolve(self.ts) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_225adjointSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_224adjointSolve[] = "TS.adjointSolve(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_225adjointSolve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adjointSolve (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("adjointSolve", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "adjointSolve", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_224adjointSolve(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_224adjointSolve(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjointSolve", 0); + + /* "petsc4py/PETSc/TS.pyx":886 + * + * def adjointSolve(self): + * CHKERR( TSAdjointSolve(self.ts) ) # <<<<<<<<<<<<<< + * + * def adjointStep(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdjointSolve(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 886, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":885 + * CHKERR(TSAdjointSetUp(self.ts)) + * + * def adjointSolve(self): # <<<<<<<<<<<<<< + * CHKERR( TSAdjointSolve(self.ts) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointSolve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":888 + * CHKERR( TSAdjointSolve(self.ts) ) + * + * def adjointStep(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointStep(self.ts)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_227adjointStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_226adjointStep[] = "TS.adjointStep(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_227adjointStep(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adjointStep (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("adjointStep", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "adjointStep", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_226adjointStep(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_226adjointStep(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjointStep", 0); + + /* "petsc4py/PETSc/TS.pyx":889 + * + * def adjointStep(self): + * CHKERR(TSAdjointStep(self.ts)) # <<<<<<<<<<<<<< + * + * def adjointReset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdjointStep(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 889, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":888 + * CHKERR( TSAdjointSolve(self.ts) ) + * + * def adjointStep(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointStep(self.ts)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointStep", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":891 + * CHKERR(TSAdjointStep(self.ts)) + * + * def adjointReset(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointReset(self.ts)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_229adjointReset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_228adjointReset[] = "TS.adjointReset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_229adjointReset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adjointReset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("adjointReset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "adjointReset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_228adjointReset(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_228adjointReset(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adjointReset", 0); + + /* "petsc4py/PETSc/TS.pyx":892 + * + * def adjointReset(self): + * CHKERR(TSAdjointReset(self.ts)) # <<<<<<<<<<<<<< + * + * # --- Python --- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdjointReset(__pyx_v_self->ts)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 892, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":891 + * CHKERR(TSAdjointStep(self.ts)) + * + * def adjointReset(self): # <<<<<<<<<<<<<< + * CHKERR(TSAdjointReset(self.ts)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.adjointReset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":896 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_231createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_230createPython[] = "TS.createPython(self, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_231createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(50, 896, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_context = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 896, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_230createPython(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_230createPython(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + TS __pyx_v_newts; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/TS.pyx":897 + * + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 897, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":898 + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL # <<<<<<<<<<<<<< + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts + */ + __pyx_v_newts = NULL; + + /* "petsc4py/PETSc/TS.pyx":899 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ts = newts + * CHKERR( TSSetType(self.ts, TSPYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSCreate(__pyx_v_ccomm, (&__pyx_v_newts))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 899, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":900 + * cdef PetscTS newts = NULL + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts # <<<<<<<<<<<<<< + * CHKERR( TSSetType(self.ts, TSPYTHON) ) + * CHKERR( TSPythonSetContext(self.ts, context) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ts = __pyx_v_newts; + + /* "petsc4py/PETSc/TS.pyx":901 + * CHKERR( TSCreate(ccomm, &newts) ) + * PetscCLEAR(self.obj); self.ts = newts + * CHKERR( TSSetType(self.ts, TSPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetContext(self.ts, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSSetType(__pyx_v_self->ts, TSPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 901, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":902 + * PetscCLEAR(self.obj); self.ts = newts + * CHKERR( TSSetType(self.ts, TSPYTHON) ) + * CHKERR( TSPythonSetContext(self.ts, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = TSPythonSetContext(__pyx_v_self->ts, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 902, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 902, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":903 + * CHKERR( TSSetType(self.ts, TSPYTHON) ) + * CHKERR( TSPythonSetContext(self.ts, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":896 + * # --- Python --- + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTS newts = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":905 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetContext(self.ts, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_233setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_232setPythonContext[] = "TS.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_233setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(50, 905, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 905, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_232setPythonContext(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_232setPythonContext(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/TS.pyx":906 + * + * def setPythonContext(self, context): + * CHKERR( TSPythonSetContext(self.ts, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = TSPythonSetContext(__pyx_v_self->ts, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 906, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 906, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":905 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetContext(self.ts, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":908 + * CHKERR( TSPythonSetContext(self.ts, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( TSPythonGetContext(self.ts, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_235getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_234getPythonContext[] = "TS.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_235getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_234getPythonContext(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_234getPythonContext(struct PyPetscTSObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/TS.pyx":909 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( TSPythonGetContext(self.ts, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/TS.pyx":910 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( TSPythonGetContext(self.ts, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = TSPythonGetContext(__pyx_v_self->ts, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 910, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 910, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":911 + * cdef void *context = NULL + * CHKERR( TSPythonGetContext(self.ts, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TS.pyx":912 + * CHKERR( TSPythonGetContext(self.ts, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TS.pyx":908 + * CHKERR( TSPythonSetContext(self.ts, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( TSPythonGetContext(self.ts, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":914 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_237setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_236setPythonType[] = "TS.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_237setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(50, 914, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 914, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_236setPythonType(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_236setPythonType(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/TS.pyx":915 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( TSPythonSetType(self.ts, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":916 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetType(self.ts, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 916, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":917 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( TSPythonSetType(self.ts, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSPythonSetType(__pyx_v_self->ts, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 917, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":914 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":919 + * CHKERR( TSPythonSetType(self.ts, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TSPythonGetType(self.ts, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_239getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_238getPythonType[] = "TS.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_239getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_238getPythonType(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_238getPythonType(struct PyPetscTSObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/TS.pyx":920 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TSPythonGetType(self.ts, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TS.pyx":921 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( TSPythonGetType(self.ts, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSPythonGetType(__pyx_v_self->ts, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 921, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":922 + * cdef const char *cval = NULL + * CHKERR( TSPythonGetType(self.ts, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- Theta --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":919 + * CHKERR( TSPythonSetType(self.ts, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TSPythonGetType(self.ts, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":926 + * # --- Theta --- + * + * def setTheta(self, theta): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(theta) + * CHKERR( TSThetaSetTheta(self.ts, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_241setTheta(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_240setTheta[] = "TS.setTheta(self, theta)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_241setTheta(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_theta = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTheta (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_theta,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_theta)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTheta") < 0)) __PYX_ERR(50, 926, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_theta = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTheta", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 926, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTheta", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_240setTheta(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_theta); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_240setTheta(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_theta) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTheta", 0); + + /* "petsc4py/PETSc/TS.pyx":927 + * + * def setTheta(self, theta): + * cdef PetscReal rval = asReal(theta) # <<<<<<<<<<<<<< + * CHKERR( TSThetaSetTheta(self.ts, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_theta); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 927, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":928 + * def setTheta(self, theta): + * cdef PetscReal rval = asReal(theta) + * CHKERR( TSThetaSetTheta(self.ts, rval) ) # <<<<<<<<<<<<<< + * + * def getTheta(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSThetaSetTheta(__pyx_v_self->ts, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 928, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":926 + * # --- Theta --- + * + * def setTheta(self, theta): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(theta) + * CHKERR( TSThetaSetTheta(self.ts, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setTheta", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":930 + * CHKERR( TSThetaSetTheta(self.ts, rval) ) + * + * def getTheta(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSThetaGetTheta(self.ts, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_243getTheta(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_242getTheta[] = "TS.getTheta(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_243getTheta(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTheta (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTheta", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTheta", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_242getTheta(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_242getTheta(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTheta", 0); + + /* "petsc4py/PETSc/TS.pyx":931 + * + * def getTheta(self): + * cdef PetscReal rval = 0 # <<<<<<<<<<<<<< + * CHKERR( TSThetaGetTheta(self.ts, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/TS.pyx":932 + * def getTheta(self): + * cdef PetscReal rval = 0 + * CHKERR( TSThetaGetTheta(self.ts, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSThetaGetTheta(__pyx_v_self->ts, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 932, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":933 + * cdef PetscReal rval = 0 + * CHKERR( TSThetaGetTheta(self.ts, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def setThetaEndpoint(self, flag=True): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":930 + * CHKERR( TSThetaSetTheta(self.ts, rval) ) + * + * def getTheta(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0 + * CHKERR( TSThetaGetTheta(self.ts, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getTheta", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":935 + * return toReal(rval) + * + * def setThetaEndpoint(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_245setThetaEndpoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_244setThetaEndpoint[] = "TS.setThetaEndpoint(self, flag=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_245setThetaEndpoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setThetaEndpoint (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setThetaEndpoint") < 0)) __PYX_ERR(50, 935, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setThetaEndpoint", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 935, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setThetaEndpoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_244setThetaEndpoint(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_244setThetaEndpoint(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_bval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setThetaEndpoint", 0); + + /* "petsc4py/PETSc/TS.pyx":936 + * + * def setThetaEndpoint(self, flag=True): + * cdef PetscBool bval = flag # <<<<<<<<<<<<<< + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(50, 936, __pyx_L1_error) + __pyx_v_bval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":937 + * def setThetaEndpoint(self, flag=True): + * cdef PetscBool bval = flag + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) # <<<<<<<<<<<<<< + * + * def getThetaEndpoint(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSThetaSetEndpoint(__pyx_v_self->ts, __pyx_v_bval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 937, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":935 + * return toReal(rval) + * + * def setThetaEndpoint(self, flag=True): # <<<<<<<<<<<<<< + * cdef PetscBool bval = flag + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setThetaEndpoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":939 + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) + * + * def getThetaEndpoint(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( TSThetaGetEndpoint(self.ts, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_247getThetaEndpoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_246getThetaEndpoint[] = "TS.getThetaEndpoint(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_247getThetaEndpoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getThetaEndpoint (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getThetaEndpoint", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getThetaEndpoint", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_246getThetaEndpoint(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_246getThetaEndpoint(struct PyPetscTSObject *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getThetaEndpoint", 0); + + /* "petsc4py/PETSc/TS.pyx":940 + * + * def getThetaEndpoint(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( TSThetaGetEndpoint(self.ts, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/TS.pyx":941 + * def getThetaEndpoint(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( TSThetaGetEndpoint(self.ts, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSThetaGetEndpoint(__pyx_v_self->ts, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 941, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":942 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( TSThetaGetEndpoint(self.ts, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * # --- Alpha --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 942, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":939 + * CHKERR( TSThetaSetEndpoint(self.ts, bval) ) + * + * def getThetaEndpoint(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( TSThetaGetEndpoint(self.ts, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getThetaEndpoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":946 + * # --- Alpha --- + * + * def setAlphaRadius(self, radius): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(radius) + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_249setAlphaRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_248setAlphaRadius[] = "TS.setAlphaRadius(self, radius)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_249setAlphaRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_radius = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAlphaRadius (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_radius,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAlphaRadius") < 0)) __PYX_ERR(50, 946, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_radius = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAlphaRadius", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 946, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAlphaRadius", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_248setAlphaRadius(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_radius); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_248setAlphaRadius(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_radius) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAlphaRadius", 0); + + /* "petsc4py/PETSc/TS.pyx":947 + * + * def setAlphaRadius(self, radius): + * cdef PetscReal rval = asReal(radius) # <<<<<<<<<<<<<< + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_radius); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 947, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/TS.pyx":948 + * def setAlphaRadius(self, radius): + * cdef PetscReal rval = asReal(radius) + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) # <<<<<<<<<<<<<< + * + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAlphaSetRadius(__pyx_v_self->ts, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 948, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":946 + * # --- Alpha --- + * + * def setAlphaRadius(self, radius): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(radius) + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAlphaRadius", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":950 + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) + * + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_251setAlphaParams(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_250setAlphaParams[] = "TS.setAlphaParams(self, alpha_m=None, alpha_f=None, gamma=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_251setAlphaParams(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_alpha_m = 0; + PyObject *__pyx_v_alpha_f = 0; + PyObject *__pyx_v_gamma = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAlphaParams (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha_m,&__pyx_n_s_alpha_f,&__pyx_n_s_gamma,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha_m); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha_f); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gamma); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAlphaParams") < 0)) __PYX_ERR(50, 950, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_alpha_m = values[0]; + __pyx_v_alpha_f = values[1]; + __pyx_v_gamma = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAlphaParams", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(50, 950, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAlphaParams", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_250setAlphaParams(((struct PyPetscTSObject *)__pyx_v_self), __pyx_v_alpha_m, __pyx_v_alpha_f, __pyx_v_gamma); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_250setAlphaParams(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_alpha_m, PyObject *__pyx_v_alpha_f, PyObject *__pyx_v_gamma) { + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscReal __pyx_v_rval3; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + PetscReal __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAlphaParams", 0); + + /* "petsc4py/PETSc/TS.pyx":951 + * + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 # <<<<<<<<<<<<<< + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + * except PetscError: pass + */ + __pyx_v_rval1 = 0.0; + __pyx_v_rval2 = 0.0; + __pyx_v_rval3 = 0.0; + + /* "petsc4py/PETSc/TS.pyx":952 + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) # <<<<<<<<<<<<<< + * except PetscError: pass + * if alpha_m is not None: rval1 = asReal(alpha_m) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAlphaGetParams(__pyx_v_self->ts, (&__pyx_v_rval1), (&__pyx_v_rval2), (&__pyx_v_rval3))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 952, __pyx_L3_error) + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + + /* "petsc4py/PETSc/TS.pyx":953 + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + * except PetscError: pass # <<<<<<<<<<<<<< + * if alpha_m is not None: rval1 = asReal(alpha_m) + * if alpha_f is not None: rval2 = asReal(alpha_f) + */ + __pyx_t_5 = __Pyx_PyErr_ExceptionMatches(__pyx_v_8petsc4py_5PETSc_PetscError); + if (__pyx_t_5) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L4_exception_handled; + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/TS.pyx":952 + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) # <<<<<<<<<<<<<< + * except PetscError: pass + * if alpha_m is not None: rval1 = asReal(alpha_m) + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L4_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __pyx_L8_try_end:; + } + + /* "petsc4py/PETSc/TS.pyx":954 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + * except PetscError: pass + * if alpha_m is not None: rval1 = asReal(alpha_m) # <<<<<<<<<<<<<< + * if alpha_f is not None: rval2 = asReal(alpha_f) + * if gamma is not None: rval3 = asReal(gamma) + */ + __pyx_t_6 = (__pyx_v_alpha_m != Py_None); + __pyx_t_7 = (__pyx_t_6 != 0); + if (__pyx_t_7) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_alpha_m); if (unlikely(__pyx_t_8 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 954, __pyx_L1_error) + __pyx_v_rval1 = __pyx_t_8; + } + + /* "petsc4py/PETSc/TS.pyx":955 + * except PetscError: pass + * if alpha_m is not None: rval1 = asReal(alpha_m) + * if alpha_f is not None: rval2 = asReal(alpha_f) # <<<<<<<<<<<<<< + * if gamma is not None: rval3 = asReal(gamma) + * CHKERR( TSAlphaSetParams(self.ts, rval1, rval2, rval3) ) + */ + __pyx_t_7 = (__pyx_v_alpha_f != Py_None); + __pyx_t_6 = (__pyx_t_7 != 0); + if (__pyx_t_6) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_alpha_f); if (unlikely(__pyx_t_8 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 955, __pyx_L1_error) + __pyx_v_rval2 = __pyx_t_8; + } + + /* "petsc4py/PETSc/TS.pyx":956 + * if alpha_m is not None: rval1 = asReal(alpha_m) + * if alpha_f is not None: rval2 = asReal(alpha_f) + * if gamma is not None: rval3 = asReal(gamma) # <<<<<<<<<<<<<< + * CHKERR( TSAlphaSetParams(self.ts, rval1, rval2, rval3) ) + * + */ + __pyx_t_6 = (__pyx_v_gamma != Py_None); + __pyx_t_7 = (__pyx_t_6 != 0); + if (__pyx_t_7) { + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_gamma); if (unlikely(__pyx_t_8 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(50, 956, __pyx_L1_error) + __pyx_v_rval3 = __pyx_t_8; + } + + /* "petsc4py/PETSc/TS.pyx":957 + * if alpha_f is not None: rval2 = asReal(alpha_f) + * if gamma is not None: rval3 = asReal(gamma) + * CHKERR( TSAlphaSetParams(self.ts, rval1, rval2, rval3) ) # <<<<<<<<<<<<<< + * + * def getAlphaParams(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAlphaSetParams(__pyx_v_self->ts, __pyx_v_rval1, __pyx_v_rval2, __pyx_v_rval3)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 957, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":950 + * CHKERR( TSAlphaSetRadius(self.ts, rval) ) + * + * def setAlphaParams(self, alpha_m=None,alpha_f=None, gamma=None): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * try: CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TS.setAlphaParams", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":959 + * CHKERR( TSAlphaSetParams(self.ts, rval1, rval2, rval3) ) + * + * def getAlphaParams(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_253getAlphaParams(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2TS_252getAlphaParams[] = "TS.getAlphaParams(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_253getAlphaParams(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAlphaParams (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAlphaParams", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAlphaParams", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_252getAlphaParams(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_252getAlphaParams(struct PyPetscTSObject *__pyx_v_self) { + PetscReal __pyx_v_rval1; + PetscReal __pyx_v_rval2; + PetscReal __pyx_v_rval3; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAlphaParams", 0); + + /* "petsc4py/PETSc/TS.pyx":960 + * + * def getAlphaParams(self): + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 # <<<<<<<<<<<<<< + * CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + * return (toReal(rval1), toReal(rval2), toReal(rval3)) + */ + __pyx_v_rval1 = 0.0; + __pyx_v_rval2 = 0.0; + __pyx_v_rval3 = 0.0; + + /* "petsc4py/PETSc/TS.pyx":961 + * def getAlphaParams(self): + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) # <<<<<<<<<<<<<< + * return (toReal(rval1), toReal(rval2), toReal(rval3)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAlphaGetParams(__pyx_v_self->ts, (&__pyx_v_rval1), (&__pyx_v_rval2), (&__pyx_v_rval3))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(50, 961, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":962 + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + * return (toReal(rval1), toReal(rval2), toReal(rval3)) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval3); if (unlikely(!__pyx_t_4)) __PYX_ERR(50, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":959 + * CHKERR( TSAlphaSetParams(self.ts, rval1, rval2, rval3) ) + * + * def getAlphaParams(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval1 = 0, rval2 = 0, rval3 = 0 + * CHKERR( TSAlphaGetParams(self.ts, &rval1, &rval2, &rval3) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TS.getAlphaParams", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":967 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_6appctx_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_6appctx_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_6appctx___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6appctx___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":968 + * property appctx: + * def __get__(self): + * return self.getAppCtx() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setAppCtx(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":967 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.appctx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":969 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_6appctx_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_6appctx_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":970 + * return self.getAppCtx() + * def __set__(self, value): + * self.setAppCtx(value) # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":969 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.appctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":975 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_2dm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_2dm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_2dm___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_2dm___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":976 + * property dm: + * def __get__(self): + * return self.getDM() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setDM(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":975 + * + * property dm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDM() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.dm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":977 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_2dm_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_2dm_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_2dm_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":978 + * return self.getDM() + * def __set__(self, value): + * self.setDM(value) # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDM); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":977 + * def __get__(self): + * return self.getDM() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDM(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.dm.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":983 + * + * property problem_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProblemType() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_12problem_type___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_12problem_type___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":984 + * property problem_type: + * def __get__(self): + * return self.getProblemType() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setProblemType(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getProblemType); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":983 + * + * property problem_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProblemType() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.problem_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":985 + * def __get__(self): + * return self.getProblemType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setProblemType(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_12problem_type_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_12problem_type_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":986 + * return self.getProblemType() + * def __set__(self, value): + * self.setProblemType(value) # <<<<<<<<<<<<<< + * + * property equation_type: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setProblemType); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":985 + * def __get__(self): + * return self.getProblemType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setProblemType(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.problem_type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":989 + * + * property equation_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getEquationType() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_13equation_type___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_13equation_type___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":990 + * property equation_type: + * def __get__(self): + * return self.getEquationType() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setEquationType(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getEquationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":989 + * + * property equation_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getEquationType() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.equation_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":991 + * def __get__(self): + * return self.getEquationType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setEquationType(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_13equation_type_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_13equation_type_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":992 + * return self.getEquationType() + * def __set__(self, value): + * self.setEquationType(value) # <<<<<<<<<<<<<< + * + * property snes: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setEquationType); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":991 + * def __get__(self): + * return self.getEquationType() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setEquationType(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.equation_type.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":995 + * + * property snes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSNES() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4snes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4snes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4snes___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4snes___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":996 + * property snes: + * def __get__(self): + * return self.getSNES() # <<<<<<<<<<<<<< + * + * property ksp: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSNES); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":995 + * + * property snes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSNES() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.snes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":999 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_3ksp_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_3ksp_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_3ksp___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_3ksp___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1000 + * property ksp: + * def __get__(self): + * return self.getKSP() # <<<<<<<<<<<<<< + * + * property vec_sol: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getKSP); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":999 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.ksp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1003 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_7vec_sol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_7vec_sol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_7vec_sol___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_7vec_sol___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1004 + * property vec_sol: + * def __get__(self): + * return self.getSolution() # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolution); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1003 + * + * property vec_sol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.vec_sol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1009 + * + * property time: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTime() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4time_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4time_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4time___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4time___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1010 + * property time: + * def __get__(self): + * return self.getTime() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTime(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTime); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1010, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1009 + * + * property time: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTime() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.time.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1011 + * def __get__(self): + * return self.getTime() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTime(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4time_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_4time_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1012 + * return self.getTime() + * def __set__(self, value): + * self.setTime(value) # <<<<<<<<<<<<<< + * + * property time_step: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTime); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1012, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1011 + * def __get__(self): + * return self.getTime() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTime(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.time.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1015 + * + * property time_step: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTimeStep() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9time_step_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9time_step_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9time_step___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9time_step___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1016 + * property time_step: + * def __get__(self): + * return self.getTimeStep() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTimeStep(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTimeStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1015 + * + * property time_step: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTimeStep() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.time_step.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1017 + * def __get__(self): + * return self.getTimeStep() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTimeStep(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_9time_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_9time_step_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9time_step_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_9time_step_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1018 + * return self.getTimeStep() + * def __set__(self, value): + * self.setTimeStep(value) # <<<<<<<<<<<<<< + * + * property step_number: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTimeStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1017 + * def __get__(self): + * return self.getTimeStep() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTimeStep(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.time_step.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1021 + * + * property step_number: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStepNumber() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_11step_number_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_11step_number_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_11step_number___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_11step_number___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1022 + * property step_number: + * def __get__(self): + * return self.getStepNumber() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setStepNumber(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStepNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1021 + * + * property step_number: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStepNumber() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.step_number.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1023 + * def __get__(self): + * return self.getStepNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setStepNumber(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_11step_number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_11step_number_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_11step_number_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_11step_number_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1024 + * return self.getStepNumber() + * def __set__(self, value): + * self.setStepNumber(value) # <<<<<<<<<<<<<< + * + * property max_time: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setStepNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1024, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1023 + * def __get__(self): + * return self.getStepNumber() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setStepNumber(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.step_number.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1027 + * + * property max_time: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxTime() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_8max_time_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_8max_time_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_8max_time___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8max_time___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1028 + * property max_time: + * def __get__(self): + * return self.getMaxTime() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setMaxTime(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getMaxTime); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1027 + * + * property max_time: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxTime() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.max_time.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1029 + * def __get__(self): + * return self.getMaxTime() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxTime(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_8max_time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_8max_time_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_8max_time_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_8max_time_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1030 + * return self.getMaxTime() + * def __set__(self, value): + * self.setMaxTime(value) # <<<<<<<<<<<<<< + * + * property max_steps: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setMaxTime); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1029 + * def __get__(self): + * return self.getMaxTime() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxTime(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.max_time.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1033 + * + * property max_steps: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxSteps() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9max_steps___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9max_steps___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1034 + * property max_steps: + * def __get__(self): + * return self.getMaxSteps() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setMaxSteps(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getMaxSteps); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1034, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1033 + * + * property max_steps: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getMaxSteps() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.max_steps.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1035 + * def __get__(self): + * return self.getMaxSteps() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxSteps(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9max_steps_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_9max_steps_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1036 + * return self.getMaxSteps() + * def __set__(self, value): + * self.setMaxSteps(value) # <<<<<<<<<<<<<< + * + * # --- convergence --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setMaxSteps); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1036, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1035 + * def __get__(self): + * return self.getMaxSteps() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setMaxSteps(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.max_steps.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1041 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4rtol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4rtol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4rtol___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4rtol___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1042 + * property rtol: + * def __get__(self): + * return self.getTolerances()[0] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(rtol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1042, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1041 + * + * property rtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[0] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.rtol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1043 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4rtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4rtol_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_4rtol_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1044 + * return self.getTolerances()[0] + * def __set__(self, value): + * self.setTolerances(rtol=value) # <<<<<<<<<<<<<< + * + * property atol: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_rtol, __pyx_v_value) < 0) __PYX_ERR(50, 1044, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":1043 + * def __get__(self): + * return self.getTolerances()[0] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(rtol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.rtol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1047 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4atol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_4atol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4atol___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_4atol___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1048 + * property atol: + * def __get__(self): + * return self.getTolerances()[1] # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setTolerances(atol=value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1048, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1047 + * + * property atol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getTolerances()[1] + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.atol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1049 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_4atol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_4atol_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_4atol_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1050 + * return self.getTolerances()[1] + * def __set__(self, value): + * self.setTolerances(atol=value) # <<<<<<<<<<<<<< + * + * property reason: + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setTolerances); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_atol, __pyx_v_value) < 0) __PYX_ERR(50, 1050, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(50, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TS.pyx":1049 + * def __get__(self): + * return self.getTolerances()[1] + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setTolerances(atol=value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.atol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1053 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_6reason_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_6reason_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_6reason___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_6reason___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1054 + * property reason: + * def __get__(self): + * return self.getConvergedReason() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setConvergedReason(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1053 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.reason.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1055 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2TS_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2TS_6reason_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_6reason_2__set__(((struct PyPetscTSObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2TS_6reason_2__set__(struct PyPetscTSObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TS.pyx":1056 + * return self.getConvergedReason() + * def __set__(self, value): + * self.setConvergedReason(value) # <<<<<<<<<<<<<< + * + * property iterating: + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TS.pyx":1055 + * def __get__(self): + * return self.getConvergedReason() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setConvergedReason(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TS.reason.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1059 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9iterating_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9iterating_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9iterating___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9iterating___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1060 + * property iterating: + * def __get__(self): + * return self.reason == 0 # <<<<<<<<<<<<<< + * + * property converged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1059 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.iterating.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1063 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9converged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_9converged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_9converged___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_9converged___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1064 + * property converged: + * def __get__(self): + * return self.reason > 0 # <<<<<<<<<<<<<< + * + * property diverged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1064, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1064, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1063 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.converged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TS.pyx":1067 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_8diverged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2TS_8diverged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2TS_8diverged___get__(((struct PyPetscTSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2TS_8diverged___get__(struct PyPetscTSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TS.pyx":1068 + * property diverged: + * def __get__(self): + * return self.reason < 0 # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(50, 1068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(50, 1068, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TS.pyx":1067 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TS.diverged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":75 + * Reason = TAOConvergedReason + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.tao + * self.tao = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO___cinit__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3TAO___cinit__(struct PyPetscTAOObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/TAO.pyx":76 + * + * def __cinit__(self): + * self.obj = &self.tao # <<<<<<<<<<<<<< + * self.tao = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->tao)); + + /* "petsc4py/PETSc/TAO.pyx":77 + * def __cinit__(self): + * self.obj = &self.tao + * self.tao = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->tao = NULL; + + /* "petsc4py/PETSc/TAO.pyx":75 + * Reason = TAOConvergedReason + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.tao + * self.tao = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":79 + * self.tao = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_2view[] = "TAO.view(self, Viewer viewer=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(51, 79, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 79, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(51, 79, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_2view(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_2view(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/TAO.pyx":82 + * """ + * """ + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( TaoView(self.tao, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/TAO.pyx":83 + * """ + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( TaoView(self.tao, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":84 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( TaoView(self.tao, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoView(__pyx_v_self->tao, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 84, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":79 + * self.tao = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":86 + * CHKERR( TaoView(self.tao, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_4destroy[] = "TAO.destroy(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4destroy(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4destroy(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/TAO.pyx":89 + * """ + * """ + * CHKERR( TaoDestroy(&self.tao) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoDestroy((&__pyx_v_self->tao))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 89, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":90 + * """ + * CHKERR( TaoDestroy(&self.tao) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":86 + * CHKERR( TaoView(self.tao, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":92 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_6create[] = "TAO.create(self, comm=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(51, 92, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 92, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_6create(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6create(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Tao __pyx_v_newtao; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/TAO.pyx":95 + * """ + * """ + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscTAO newtao = NULL + * CHKERR( TaoCreate(ccomm, &newtao) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(51, 95, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":96 + * """ + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO newtao = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoCreate(ccomm, &newtao) ) + * PetscCLEAR(self.obj); self.tao = newtao + */ + __pyx_v_newtao = NULL; + + /* "petsc4py/PETSc/TAO.pyx":97 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO newtao = NULL + * CHKERR( TaoCreate(ccomm, &newtao) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.tao = newtao + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCreate(__pyx_v_ccomm, (&__pyx_v_newtao))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":98 + * cdef PetscTAO newtao = NULL + * CHKERR( TaoCreate(ccomm, &newtao) ) + * PetscCLEAR(self.obj); self.tao = newtao # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->tao = __pyx_v_newtao; + + /* "petsc4py/PETSc/TAO.pyx":99 + * CHKERR( TaoCreate(ccomm, &newtao) ) + * PetscCLEAR(self.obj); self.tao = newtao + * return self # <<<<<<<<<<<<<< + * + * def setType(self, tao_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":92 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":101 + * return self + * + * def setType(self, tao_type): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_8setType[] = "TAO.setType(self, tao_type)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tao_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tao_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tao_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(51, 101, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tao_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 101, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_8setType(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_tao_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8setType(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_tao_type) { + TaoType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_tao_type); + + /* "petsc4py/PETSc/TAO.pyx":104 + * """ + * """ + * cdef PetscTAOType ctype = NULL # <<<<<<<<<<<<<< + * tao_type = str2bytes(tao_type, &ctype) + * CHKERR( TaoSetType(self.tao, ctype) ) + */ + __pyx_v_ctype = NULL; + + /* "petsc4py/PETSc/TAO.pyx":105 + * """ + * cdef PetscTAOType ctype = NULL + * tao_type = str2bytes(tao_type, &ctype) # <<<<<<<<<<<<<< + * CHKERR( TaoSetType(self.tao, ctype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_tao_type, (&__pyx_v_ctype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_tao_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":106 + * cdef PetscTAOType ctype = NULL + * tao_type = str2bytes(tao_type, &ctype) + * CHKERR( TaoSetType(self.tao, ctype) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetType(__pyx_v_self->tao, __pyx_v_ctype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 106, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":101 + * return self + * + * def setType(self, tao_type): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tao_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":108 + * CHKERR( TaoSetType(self.tao, ctype) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_10getType[] = "TAO.getType(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_10getType(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_10getType(struct PyPetscTAOObject *__pyx_v_self) { + TaoType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/TAO.pyx":111 + * """ + * """ + * cdef PetscTAOType ctype = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoGetType(self.tao, &ctype) ) + * return bytes2str(ctype) + */ + __pyx_v_ctype = NULL; + + /* "petsc4py/PETSc/TAO.pyx":112 + * """ + * cdef PetscTAOType ctype = NULL + * CHKERR( TaoGetType(self.tao, &ctype) ) # <<<<<<<<<<<<<< + * return bytes2str(ctype) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetType(__pyx_v_self->tao, (&__pyx_v_ctype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 112, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":113 + * cdef PetscTAOType ctype = NULL + * CHKERR( TaoGetType(self.tao, &ctype) ) + * return bytes2str(ctype) # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_ctype); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":108 + * CHKERR( TaoSetType(self.tao, ctype) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":115 + * return bytes2str(ctype) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_13setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_12setOptionsPrefix[] = "TAO.setOptionsPrefix(self, prefix)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_13setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(51, 115, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 115, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_12setOptionsPrefix(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_12setOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cprefix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/TAO.pyx":118 + * """ + * """ + * cdef const char *cprefix = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( TaoSetOptionsPrefix(self.tao, cprefix) ) + */ + __pyx_v_cprefix = NULL; + + /* "petsc4py/PETSc/TAO.pyx":119 + * """ + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) # <<<<<<<<<<<<<< + * CHKERR( TaoSetOptionsPrefix(self.tao, cprefix) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cprefix)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":120 + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( TaoSetOptionsPrefix(self.tao, cprefix) ) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetOptionsPrefix(__pyx_v_self->tao, __pyx_v_cprefix)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 120, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":115 + * return bytes2str(ctype) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":122 + * CHKERR( TaoSetOptionsPrefix(self.tao, cprefix) ) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_15appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_14appendOptionsPrefix[] = "TAO.appendOptionsPrefix(self, prefix)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_15appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(51, 122, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 122, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_14appendOptionsPrefix(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_14appendOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cprefix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/TAO.pyx":125 + * """ + * """ + * cdef const char *cprefix = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( TaoAppendOptionsPrefix(self.tao, cprefix) ) + */ + __pyx_v_cprefix = NULL; + + /* "petsc4py/PETSc/TAO.pyx":126 + * """ + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) # <<<<<<<<<<<<<< + * CHKERR( TaoAppendOptionsPrefix(self.tao, cprefix) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cprefix)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":127 + * cdef const char *cprefix = NULL + * prefix = str2bytes(prefix, &cprefix) + * CHKERR( TaoAppendOptionsPrefix(self.tao, cprefix) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoAppendOptionsPrefix(__pyx_v_self->tao, __pyx_v_cprefix)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":122 + * CHKERR( TaoSetOptionsPrefix(self.tao, cprefix) ) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":129 + * CHKERR( TaoAppendOptionsPrefix(self.tao, cprefix) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_16getOptionsPrefix[] = "TAO.getOptionsPrefix(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_17getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_16getOptionsPrefix(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_16getOptionsPrefix(struct PyPetscTAOObject *__pyx_v_self) { + char const *__pyx_v_prefix; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/TAO.pyx":132 + * """ + * """ + * cdef const char *prefix = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoGetOptionsPrefix(self.tao, &prefix) ) + * return bytes2str(prefix) + */ + __pyx_v_prefix = NULL; + + /* "petsc4py/PETSc/TAO.pyx":133 + * """ + * cdef const char *prefix = NULL + * CHKERR( TaoGetOptionsPrefix(self.tao, &prefix) ) # <<<<<<<<<<<<<< + * return bytes2str(prefix) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetOptionsPrefix(__pyx_v_self->tao, (&__pyx_v_prefix))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":134 + * cdef const char *prefix = NULL + * CHKERR( TaoGetOptionsPrefix(self.tao, &prefix) ) + * return bytes2str(prefix) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_prefix); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":129 + * CHKERR( TaoAppendOptionsPrefix(self.tao, cprefix) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":136 + * return bytes2str(prefix) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_19setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_18setFromOptions[] = "TAO.setFromOptions(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_19setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_18setFromOptions(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_18setFromOptions(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/TAO.pyx":139 + * """ + * """ + * CHKERR( TaoSetFromOptions(self.tao) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetFromOptions(__pyx_v_self->tao)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 139, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":136 + * return bytes2str(prefix) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":141 + * CHKERR( TaoSetFromOptions(self.tao) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_21setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_20setUp[] = "TAO.setUp(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_21setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_20setUp(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_20setUp(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/TAO.pyx":144 + * """ + * """ + * CHKERR( TaoSetUp(self.tao) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetUp(__pyx_v_self->tao)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 144, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":141 + * CHKERR( TaoSetFromOptions(self.tao) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":148 + * # + * + * def setInitialTrustRegionRadius(self, radius): # <<<<<<<<<<<<<< + * cdef PetscReal cradius = asReal(radius) + * CHKERR( TaoSetInitialTrustRegionRadius(self.tao, cradius) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_23setInitialTrustRegionRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_22setInitialTrustRegionRadius[] = "TAO.setInitialTrustRegionRadius(self, radius)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_23setInitialTrustRegionRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_radius = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInitialTrustRegionRadius (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_radius,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInitialTrustRegionRadius") < 0)) __PYX_ERR(51, 148, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_radius = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInitialTrustRegionRadius", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 148, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setInitialTrustRegionRadius", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_22setInitialTrustRegionRadius(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_radius); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_22setInitialTrustRegionRadius(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_radius) { + PetscReal __pyx_v_cradius; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInitialTrustRegionRadius", 0); + + /* "petsc4py/PETSc/TAO.pyx":149 + * + * def setInitialTrustRegionRadius(self, radius): + * cdef PetscReal cradius = asReal(radius) # <<<<<<<<<<<<<< + * CHKERR( TaoSetInitialTrustRegionRadius(self.tao, cradius) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_radius); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 149, __pyx_L1_error) + __pyx_v_cradius = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":150 + * def setInitialTrustRegionRadius(self, radius): + * cdef PetscReal cradius = asReal(radius) + * CHKERR( TaoSetInitialTrustRegionRadius(self.tao, cradius) ) # <<<<<<<<<<<<<< + * + * # -------------- + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetInitialTrustRegionRadius(__pyx_v_self->tao, __pyx_v_cradius)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 150, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":148 + * # + * + * def setInitialTrustRegionRadius(self, radius): # <<<<<<<<<<<<<< + * cdef PetscReal cradius = asReal(radius) + * CHKERR( TaoSetInitialTrustRegionRadius(self.tao, cradius) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setInitialTrustRegionRadius", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":154 + * # -------------- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr("__appctx__", appctx) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_25setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_24setAppCtx[] = "TAO.setAppCtx(self, appctx)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_25setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_appctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAppCtx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_appctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_appctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAppCtx") < 0)) __PYX_ERR(51, 154, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_appctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAppCtx", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 154, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_24setAppCtx(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_appctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_24setAppCtx(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_appctx) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAppCtx", 0); + + /* "petsc4py/PETSc/TAO.pyx":155 + * + * def setAppCtx(self, appctx): + * self.set_attr("__appctx__", appctx) # <<<<<<<<<<<<<< + * + * def getAppCtx(self): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__"), __pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":154 + * # -------------- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr("__appctx__", appctx) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":157 + * self.set_attr("__appctx__", appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr("__appctx__") + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_27getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_26getAppCtx[] = "TAO.getAppCtx(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_27getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAppCtx (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAppCtx", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAppCtx", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_26getAppCtx(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_26getAppCtx(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAppCtx", 0); + + /* "petsc4py/PETSc/TAO.pyx":158 + * + * def getAppCtx(self): + * return self.get_attr("__appctx__") # <<<<<<<<<<<<<< + * + * def setSolution(self, Vec x): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":157 + * self.set_attr("__appctx__", appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr("__appctx__") + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":160 + * return self.get_attr("__appctx__") + * + * def setSolution(self, Vec x): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_29setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_28setSolution[] = "TAO.setSolution(self, Vec x)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_29setSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSolution (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSolution") < 0)) __PYX_ERR(51, 160, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSolution", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 160, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 160, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_28setSolution(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_28setSolution(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSolution", 0); + + /* "petsc4py/PETSc/TAO.pyx":163 + * """ + * """ + * CHKERR( TaoSetSolution(self.tao, x.vec) ) # <<<<<<<<<<<<<< + * + * def setObjective(self, objective, args=None, kargs=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetSolution(__pyx_v_self->tao, __pyx_v_x->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":160 + * return self.get_attr("__appctx__") + * + * def setSolution(self, Vec x): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":165 + * CHKERR( TaoSetSolution(self.tao, x.vec) ) + * + * def setObjective(self, objective, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_31setObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_30setObjective[] = "TAO.setObjective(self, objective, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_31setObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objective = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setObjective (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_objective,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objective)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setObjective") < 0)) __PYX_ERR(51, 165, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_objective = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setObjective", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 165, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_30setObjective(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_objective, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_30setObjective(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objective, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setObjective", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":168 + * """ + * """ + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (objective, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":169 + * """ + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (objective, args, kargs) + * self.set_attr("__objective__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":170 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (objective, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__objective__", context) + * CHKERR( TaoSetObjective(self.tao, TAO_Objective, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_objective); + __Pyx_GIVEREF(__pyx_v_objective); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_objective); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":171 + * if kargs is None: kargs = {} + * context = (objective, args, kargs) + * self.set_attr("__objective__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetObjective(self.tao, TAO_Objective, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__objective__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":172 + * context = (objective, args, kargs) + * self.set_attr("__objective__", context) + * CHKERR( TaoSetObjective(self.tao, TAO_Objective, context) ) # <<<<<<<<<<<<<< + * + * def setResidual(self, residual, Vec R=None, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetObjective(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_Objective, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":165 + * CHKERR( TaoSetSolution(self.tao, x.vec) ) + * + * def setObjective(self, objective, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":174 + * CHKERR( TaoSetObjective(self.tao, TAO_Objective, context) ) + * + * def setResidual(self, residual, Vec R=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_33setResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_32setResidual[] = "TAO.setResidual(self, residual, Vec R=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_33setResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_residual = 0; + struct PyPetscVecObject *__pyx_v_R = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setResidual (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_residual,&__pyx_n_s_R,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_residual)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_R); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setResidual") < 0)) __PYX_ERR(51, 174, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_residual = values[0]; + __pyx_v_R = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setResidual", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 174, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_R), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "R", 0))) __PYX_ERR(51, 174, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_32setResidual(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_residual, __pyx_v_R, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_32setResidual(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_residual, struct PyPetscVecObject *__pyx_v_R, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_Rvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setResidual", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":177 + * """ + * """ + * cdef PetscVec Rvec = NULL # <<<<<<<<<<<<<< + * if R is not None: Rvec = R.vec + * if args is None: args = () + */ + __pyx_v_Rvec = NULL; + + /* "petsc4py/PETSc/TAO.pyx":178 + * """ + * cdef PetscVec Rvec = NULL + * if R is not None: Rvec = R.vec # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_R) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_R->vec; + __pyx_v_Rvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":179 + * cdef PetscVec Rvec = NULL + * if R is not None: Rvec = R.vec + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (residual, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":180 + * if R is not None: Rvec = R.vec + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (residual, args, kargs) + * self.set_attr("__residual__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":181 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (residual, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__residual__", context) + * CHKERR( TaoSetResidualRoutine(self.tao, Rvec, TAO_Residual, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_residual); + __Pyx_GIVEREF(__pyx_v_residual); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_residual); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":182 + * if kargs is None: kargs = {} + * context = (residual, args, kargs) + * self.set_attr("__residual__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetResidualRoutine(self.tao, Rvec, TAO_Residual, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__residual__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":183 + * context = (residual, args, kargs) + * self.set_attr("__residual__", context) + * CHKERR( TaoSetResidualRoutine(self.tao, Rvec, TAO_Residual, context) ) # <<<<<<<<<<<<<< + * + * def setJacobianResidual(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetResidualRoutine(__pyx_v_self->tao, __pyx_v_Rvec, __pyx_f_8petsc4py_5PETSc_TAO_Residual, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 183, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":174 + * CHKERR( TaoSetObjective(self.tao, TAO_Objective, context) ) + * + * def setResidual(self, residual, Vec R=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":185 + * CHKERR( TaoSetResidualRoutine(self.tao, Rvec, TAO_Residual, context) ) + * + * def setJacobianResidual(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_35setJacobianResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_34setJacobianResidual[] = "TAO.setJacobianResidual(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_35setJacobianResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobianResidual (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobianResidual") < 0)) __PYX_ERR(51, 185, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobianResidual", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 185, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(51, 185, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 185, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_34setJacobianResidual(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_34setJacobianResidual(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobianResidual", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":188 + * """ + * """ + * cdef PetscMat Jmat = NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":189 + * """ + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":190 + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if args is None: args = () + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TAO.pyx":191 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":192 + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":193 + * if P is not None: Pmat = P.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian_residual__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":194 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__jacobian_residual__", context) + * CHKERR( TaoSetJacobianResidualRoutine(self.tao, Jmat, Pmat, TAO_JacobianResidual, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":195 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian_residual__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetJacobianResidualRoutine(self.tao, Jmat, Pmat, TAO_JacobianResidual, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian_residual__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":196 + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian_residual__", context) + * CHKERR( TaoSetJacobianResidualRoutine(self.tao, Jmat, Pmat, TAO_JacobianResidual, context) ) # <<<<<<<<<<<<<< + * + * def setGradient(self, gradient, Vec g or None, args=None, kargs=None): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetJacobianResidualRoutine(__pyx_v_self->tao, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TAO_JacobianResidual, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 196, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":185 + * CHKERR( TaoSetResidualRoutine(self.tao, Rvec, TAO_Residual, context) ) + * + * def setJacobianResidual(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":198 + * CHKERR( TaoSetJacobianResidualRoutine(self.tao, Jmat, Pmat, TAO_JacobianResidual, context) ) + * + * def setGradient(self, gradient, Vec g or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_37setGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_36setGradient[] = "TAO.setGradient(self, gradient, Vec g, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_37setGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_gradient = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gradient,&__pyx_n_s_g,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gradient)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setGradient", 0, 2, 4, 1); __PYX_ERR(51, 198, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGradient") < 0)) __PYX_ERR(51, 198, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_gradient = values[0]; + __pyx_v_g = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGradient", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 198, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "g", 0))) __PYX_ERR(51, 198, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_36setGradient(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_gradient, __pyx_v_g, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_36setGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_gradient, struct PyPetscVecObject *__pyx_v_g, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_gvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGradient", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":201 + * """ + * """ + * cdef PetscVec gvec = NULL # <<<<<<<<<<<<<< + * if g is not None: gvec = g.vec + * if args is None: args = () + */ + __pyx_v_gvec = NULL; + + /* "petsc4py/PETSc/TAO.pyx":202 + * """ + * cdef PetscVec gvec = NULL + * if g is not None: gvec = g.vec # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_g) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_g->vec; + __pyx_v_gvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":203 + * cdef PetscVec gvec = NULL + * if g is not None: gvec = g.vec + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (gradient, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":204 + * if g is not None: gvec = g.vec + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (gradient, args, kargs) + * self.set_attr("__gradient__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":205 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (gradient, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__gradient__", context) + * CHKERR( TaoSetGradient(self.tao, gvec, TAO_Gradient, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_gradient); + __Pyx_GIVEREF(__pyx_v_gradient); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_gradient); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":206 + * if kargs is None: kargs = {} + * context = (gradient, args, kargs) + * self.set_attr("__gradient__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetGradient(self.tao, gvec, TAO_Gradient, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__gradient__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 206, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":207 + * context = (gradient, args, kargs) + * self.set_attr("__gradient__", context) + * CHKERR( TaoSetGradient(self.tao, gvec, TAO_Gradient, context) ) # <<<<<<<<<<<<<< + * + * def getGradient(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetGradient(__pyx_v_self->tao, __pyx_v_gvec, __pyx_f_8petsc4py_5PETSc_TAO_Gradient, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 207, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":198 + * CHKERR( TaoSetJacobianResidualRoutine(self.tao, Jmat, Pmat, TAO_JacobianResidual, context) ) + * + * def setGradient(self, gradient, Vec g or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":209 + * CHKERR( TaoSetGradient(self.tao, gvec, TAO_Gradient, context) ) + * + * def getGradient(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_39getGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_38getGradient[] = "TAO.getGradient(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_39getGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGradient (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGradient", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGradient", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_38getGradient(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_38getGradient(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_gradient = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGradient", 0); + + /* "petsc4py/PETSc/TAO.pyx":212 + * """ + * """ + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( TaoGetGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":213 + * """ + * cdef Vec vec = Vec() + * CHKERR( TaoGetGradient(self.tao, &vec.vec, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * cdef object gradient = self.get_attr("__gradient__") + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetGradient(__pyx_v_self->tao, (&__pyx_v_vec->vec), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":214 + * cdef Vec vec = Vec() + * CHKERR( TaoGetGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * cdef object gradient = self.get_attr("__gradient__") + * return (vec, gradient) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":215 + * CHKERR( TaoGetGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) + * cdef object gradient = self.get_attr("__gradient__") # <<<<<<<<<<<<<< + * return (vec, gradient) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__gradient__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gradient = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":216 + * PetscINCREF(vec.obj) + * cdef object gradient = self.get_attr("__gradient__") + * return (vec, gradient) # <<<<<<<<<<<<<< + * + * def setObjectiveGradient(self, objgrad, Vec g or None, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vec)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_vec)); + __Pyx_INCREF(__pyx_v_gradient); + __Pyx_GIVEREF(__pyx_v_gradient); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_gradient); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":209 + * CHKERR( TaoSetGradient(self.tao, gvec, TAO_Gradient, context) ) + * + * def getGradient(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_gradient); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":218 + * return (vec, gradient) + * + * def setObjectiveGradient(self, objgrad, Vec g or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_41setObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_40setObjectiveGradient[] = "TAO.setObjectiveGradient(self, objgrad, Vec g, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_41setObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objgrad = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setObjectiveGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_objgrad,&__pyx_n_s_g,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objgrad)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setObjectiveGradient", 0, 2, 4, 1); __PYX_ERR(51, 218, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setObjectiveGradient") < 0)) __PYX_ERR(51, 218, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_objgrad = values[0]; + __pyx_v_g = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setObjectiveGradient", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 218, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "g", 0))) __PYX_ERR(51, 218, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_40setObjectiveGradient(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_objgrad, __pyx_v_g, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_40setObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objgrad, struct PyPetscVecObject *__pyx_v_g, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_gvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setObjectiveGradient", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":221 + * """ + * """ + * cdef PetscVec gvec = NULL # <<<<<<<<<<<<<< + * if g is not None: gvec = g.vec + * if args is None: args = () + */ + __pyx_v_gvec = NULL; + + /* "petsc4py/PETSc/TAO.pyx":222 + * """ + * cdef PetscVec gvec = NULL + * if g is not None: gvec = g.vec # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_g) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_g->vec; + __pyx_v_gvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":223 + * cdef PetscVec gvec = NULL + * if g is not None: gvec = g.vec + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":224 + * if g is not None: gvec = g.vec + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (objgrad, args, kargs) + * self.set_attr("__objgrad__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":225 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__objgrad__", context) + * CHKERR( TaoSetObjectiveAndGradient(self.tao, gvec, TAO_ObjGrad, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_objgrad); + __Pyx_GIVEREF(__pyx_v_objgrad); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_objgrad); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":226 + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) + * self.set_attr("__objgrad__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetObjectiveAndGradient(self.tao, gvec, TAO_ObjGrad, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__objgrad__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":227 + * context = (objgrad, args, kargs) + * self.set_attr("__objgrad__", context) + * CHKERR( TaoSetObjectiveAndGradient(self.tao, gvec, TAO_ObjGrad, context) ) # <<<<<<<<<<<<<< + * + * def getObjectiveAndGradient(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetObjectiveAndGradient(__pyx_v_self->tao, __pyx_v_gvec, __pyx_f_8petsc4py_5PETSc_TAO_ObjGrad, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 227, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":218 + * return (vec, gradient) + * + * def setObjectiveGradient(self, objgrad, Vec g or None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":229 + * CHKERR( TaoSetObjectiveAndGradient(self.tao, gvec, TAO_ObjGrad, context) ) + * + * def getObjectiveAndGradient(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_43getObjectiveAndGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_42getObjectiveAndGradient[] = "TAO.getObjectiveAndGradient(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_43getObjectiveAndGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getObjectiveAndGradient (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getObjectiveAndGradient", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getObjectiveAndGradient", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_42getObjectiveAndGradient(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_42getObjectiveAndGradient(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_objgrad = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getObjectiveAndGradient", 0); + + /* "petsc4py/PETSc/TAO.pyx":232 + * """ + * """ + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( TaoGetObjectiveAndGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":233 + * """ + * cdef Vec vec = Vec() + * CHKERR( TaoGetObjectiveAndGradient(self.tao, &vec.vec, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * cdef object objgrad = self.get_attr("__objgrad__") + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetObjectiveAndGradient(__pyx_v_self->tao, (&__pyx_v_vec->vec), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":234 + * cdef Vec vec = Vec() + * CHKERR( TaoGetObjectiveAndGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * cdef object objgrad = self.get_attr("__objgrad__") + * return (vec, objgrad) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":235 + * CHKERR( TaoGetObjectiveAndGradient(self.tao, &vec.vec, NULL, NULL) ) + * PetscINCREF(vec.obj) + * cdef object objgrad = self.get_attr("__objgrad__") # <<<<<<<<<<<<<< + * return (vec, objgrad) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__objgrad__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_objgrad = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":236 + * PetscINCREF(vec.obj) + * cdef object objgrad = self.get_attr("__objgrad__") + * return (vec, objgrad) # <<<<<<<<<<<<<< + * + * def setVariableBounds(self, varbounds, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vec)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_vec)); + __Pyx_INCREF(__pyx_v_objgrad); + __Pyx_GIVEREF(__pyx_v_objgrad); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_objgrad); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":229 + * CHKERR( TaoSetObjectiveAndGradient(self.tao, gvec, TAO_ObjGrad, context) ) + * + * def getObjectiveAndGradient(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getObjectiveAndGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XDECREF(__pyx_v_objgrad); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":238 + * return (vec, objgrad) + * + * def setVariableBounds(self, varbounds, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_45setVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_44setVariableBounds[] = "TAO.setVariableBounds(self, varbounds, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_45setVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_varbounds = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVariableBounds (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_varbounds,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_varbounds)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVariableBounds") < 0)) __PYX_ERR(51, 238, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_varbounds = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVariableBounds", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 238, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_44setVariableBounds(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_varbounds, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_44setVariableBounds(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_varbounds, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + PyObject *__pyx_v_ol = NULL; + PyObject *__pyx_v_ou = NULL; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVariableBounds", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":241 + * """ + * """ + * cdef Vec xl = None, xu = None # <<<<<<<<<<<<<< + * if (isinstance(varbounds, list) or isinstance(varbounds, tuple)): + * ol, ou = varbounds + */ + __Pyx_INCREF(Py_None); + __pyx_v_xl = ((struct PyPetscVecObject *)Py_None); + __Pyx_INCREF(Py_None); + __pyx_v_xu = ((struct PyPetscVecObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":242 + * """ + * cdef Vec xl = None, xu = None + * if (isinstance(varbounds, list) or isinstance(varbounds, tuple)): # <<<<<<<<<<<<<< + * ol, ou = varbounds + * xl = ol; xu = ou + */ + __pyx_t_2 = PyList_Check(__pyx_v_varbounds); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = PyTuple_Check(__pyx_v_varbounds); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TAO.pyx":243 + * cdef Vec xl = None, xu = None + * if (isinstance(varbounds, list) or isinstance(varbounds, tuple)): + * ol, ou = varbounds # <<<<<<<<<<<<<< + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + */ + if ((likely(PyTuple_CheckExact(__pyx_v_varbounds))) || (PyList_CheckExact(__pyx_v_varbounds))) { + PyObject* sequence = __pyx_v_varbounds; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(51, 243, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_v_varbounds); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(51, 243, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L7_unpacking_done; + __pyx_L6_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(51, 243, __pyx_L1_error) + __pyx_L7_unpacking_done:; + } + __pyx_v_ol = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_ou = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":244 + * if (isinstance(varbounds, list) or isinstance(varbounds, tuple)): + * ol, ou = varbounds + * xl = ol; xu = ou # <<<<<<<<<<<<<< + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_ol, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(51, 244, __pyx_L1_error) + __pyx_t_5 = __pyx_v_ol; + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_xl, ((struct PyPetscVecObject *)__pyx_t_5)); + __pyx_t_5 = 0; + if (!(likely(__Pyx_TypeTest(__pyx_v_ou, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(51, 244, __pyx_L1_error) + __pyx_t_5 = __pyx_v_ou; + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_xu, ((struct PyPetscVecObject *)__pyx_t_5)); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":245 + * ol, ou = varbounds + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) # <<<<<<<<<<<<<< + * return + * if isinstance(varbounds, Vec): + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetVariableBounds(__pyx_v_self->tao, __pyx_v_xl->vec, __pyx_v_xu->vec)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 245, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":246 + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return # <<<<<<<<<<<<<< + * if isinstance(varbounds, Vec): + * ol = varbounds; ou = args + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":242 + * """ + * cdef Vec xl = None, xu = None + * if (isinstance(varbounds, list) or isinstance(varbounds, tuple)): # <<<<<<<<<<<<<< + * ol, ou = varbounds + * xl = ol; xu = ou + */ + } + + /* "petsc4py/PETSc/TAO.pyx":247 + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return + * if isinstance(varbounds, Vec): # <<<<<<<<<<<<<< + * ol = varbounds; ou = args + * xl = ol; xu = ou + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_varbounds, __pyx_ptype_8petsc4py_5PETSc_Vec); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":248 + * return + * if isinstance(varbounds, Vec): + * ol = varbounds; ou = args # <<<<<<<<<<<<<< + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + */ + __Pyx_INCREF(__pyx_v_varbounds); + __pyx_v_ol = __pyx_v_varbounds; + __Pyx_INCREF(__pyx_v_args); + __pyx_v_ou = __pyx_v_args; + + /* "petsc4py/PETSc/TAO.pyx":249 + * if isinstance(varbounds, Vec): + * ol = varbounds; ou = args + * xl = ol; xu = ou # <<<<<<<<<<<<<< + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_ol, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(51, 249, __pyx_L1_error) + __pyx_t_5 = __pyx_v_ol; + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_xl, ((struct PyPetscVecObject *)__pyx_t_5)); + __pyx_t_5 = 0; + if (!(likely(__Pyx_TypeTest(__pyx_v_ou, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(51, 249, __pyx_L1_error) + __pyx_t_5 = __pyx_v_ou; + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_xu, ((struct PyPetscVecObject *)__pyx_t_5)); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":250 + * ol = varbounds; ou = args + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) # <<<<<<<<<<<<<< + * return + * if args is None: args = () + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetVariableBounds(__pyx_v_self->tao, __pyx_v_xl->vec, __pyx_v_xu->vec)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 250, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":251 + * xl = ol; xu = ou + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":247 + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return + * if isinstance(varbounds, Vec): # <<<<<<<<<<<<<< + * ol = varbounds; ou = args + * xl = ol; xu = ou + */ + } + + /* "petsc4py/PETSc/TAO.pyx":252 + * CHKERR( TaoSetVariableBounds(self.tao, xl.vec, xu.vec) ) + * return + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (varbounds, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":253 + * return + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (varbounds, args, kargs) + * self.set_attr("__varbounds__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_5); + __pyx_t_5 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":254 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (varbounds, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__varbounds__", context) + * CHKERR( TaoSetVariableBoundsRoutine(self.tao, TAO_VarBounds, context) ) + */ + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_varbounds); + __Pyx_GIVEREF(__pyx_v_varbounds); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_varbounds); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":255 + * if kargs is None: kargs = {} + * context = (varbounds, args, kargs) + * self.set_attr("__varbounds__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetVariableBoundsRoutine(self.tao, TAO_VarBounds, context) ) + * + */ + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__varbounds__"), __pyx_v_context); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":256 + * context = (varbounds, args, kargs) + * self.set_attr("__varbounds__", context) + * CHKERR( TaoSetVariableBoundsRoutine(self.tao, TAO_VarBounds, context) ) # <<<<<<<<<<<<<< + * + * def setConstraints(self, constraints, Vec C=None, args=None, kargs=None): + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetVariableBoundsRoutine(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_VarBounds, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":238 + * return (vec, objgrad) + * + * def setVariableBounds(self, varbounds, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xl); + __Pyx_XDECREF((PyObject *)__pyx_v_xu); + __Pyx_XDECREF(__pyx_v_ol); + __Pyx_XDECREF(__pyx_v_ou); + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":258 + * CHKERR( TaoSetVariableBoundsRoutine(self.tao, TAO_VarBounds, context) ) + * + * def setConstraints(self, constraints, Vec C=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_47setConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_46setConstraints[] = "TAO.setConstraints(self, constraints, Vec C=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_47setConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_constraints = 0; + struct PyPetscVecObject *__pyx_v_C = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConstraints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_constraints,&__pyx_n_s_C,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscVecObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_constraints)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_C); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraints") < 0)) __PYX_ERR(51, 258, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_constraints = values[0]; + __pyx_v_C = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConstraints", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 258, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_C), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "C", 0))) __PYX_ERR(51, 258, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_46setConstraints(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_constraints, __pyx_v_C, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_46setConstraints(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_constraints, struct PyPetscVecObject *__pyx_v_C, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Vec __pyx_v_Cvec; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Vec __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConstraints", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":261 + * """ + * """ + * cdef PetscVec Cvec = NULL # <<<<<<<<<<<<<< + * if C is not None: Cvec = C.vec + * if args is None: args = () + */ + __pyx_v_Cvec = NULL; + + /* "petsc4py/PETSc/TAO.pyx":262 + * """ + * cdef PetscVec Cvec = NULL + * if C is not None: Cvec = C.vec # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_C) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_C->vec; + __pyx_v_Cvec = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":263 + * cdef PetscVec Cvec = NULL + * if C is not None: Cvec = C.vec + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (constraints, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":264 + * if C is not None: Cvec = C.vec + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (constraints, args, kargs) + * self.set_attr("__constraints__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":265 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (constraints, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__constraints__", context) + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_constraints); + __Pyx_GIVEREF(__pyx_v_constraints); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_constraints); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":266 + * if kargs is None: kargs = {} + * context = (constraints, args, kargs) + * self.set_attr("__constraints__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__constraints__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":267 + * context = (constraints, args, kargs) + * self.set_attr("__constraints__", context) + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) # <<<<<<<<<<<<<< + * + * def setHessian(self, hessian, Mat H=None, Mat P=None, + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConstraintsRoutine(__pyx_v_self->tao, __pyx_v_Cvec, __pyx_f_8petsc4py_5PETSc_TAO_Constraints, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 267, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":258 + * CHKERR( TaoSetVariableBoundsRoutine(self.tao, TAO_VarBounds, context) ) + * + * def setConstraints(self, constraints, Vec C=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":269 + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) + * + * def setHessian(self, hessian, Mat H=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * cdef PetscMat Hmat = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_49setHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_48setHessian[] = "TAO.setHessian(self, hessian, Mat H=None, Mat P=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_49setHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_hessian = 0; + struct PyPetscMatObject *__pyx_v_H = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setHessian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hessian,&__pyx_n_s_H,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":270 + * + * def setHessian(self, hessian, Mat H=None, Mat P=None, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat + */ + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hessian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setHessian") < 0)) __PYX_ERR(51, 269, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_hessian = values[0]; + __pyx_v_H = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setHessian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 269, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "H", 0))) __PYX_ERR(51, 269, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 269, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_48setHessian(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_hessian, __pyx_v_H, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":269 + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) + * + * def setHessian(self, hessian, Mat H=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * cdef PetscMat Hmat = NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_48setHessian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_hessian, struct PyPetscMatObject *__pyx_v_H, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Hmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setHessian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":271 + * def setHessian(self, hessian, Mat H=None, Mat P=None, + * args=None, kargs=None): + * cdef PetscMat Hmat = NULL # <<<<<<<<<<<<<< + * if H is not None: Hmat = H.mat + * cdef PetscMat Pmat = Hmat + */ + __pyx_v_Hmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":272 + * args=None, kargs=None): + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat = Hmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_H) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_H->mat; + __pyx_v_Hmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":273 + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat + * cdef PetscMat Pmat = Hmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if args is None: args = () + */ + __pyx_v_Pmat = __pyx_v_Hmat; + + /* "petsc4py/PETSc/TAO.pyx":274 + * if H is not None: Hmat = H.mat + * cdef PetscMat Pmat = Hmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":275 + * cdef PetscMat Pmat = Hmat + * if P is not None: Pmat = P.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":276 + * if P is not None: Pmat = P.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (hessian, args, kargs) + * self.set_attr("__hessian__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":277 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__hessian__", context) + * CHKERR( TaoSetHessian(self.tao, Hmat, Pmat, TAO_Hessian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_hessian); + __Pyx_GIVEREF(__pyx_v_hessian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_hessian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":278 + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) + * self.set_attr("__hessian__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetHessian(self.tao, Hmat, Pmat, TAO_Hessian, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__hessian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":279 + * context = (hessian, args, kargs) + * self.set_attr("__hessian__", context) + * CHKERR( TaoSetHessian(self.tao, Hmat, Pmat, TAO_Hessian, context) ) # <<<<<<<<<<<<<< + * + * def getHessian(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetHessian(__pyx_v_self->tao, __pyx_v_Hmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TAO_Hessian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 279, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":269 + * CHKERR( TaoSetConstraintsRoutine(self.tao, Cvec, TAO_Constraints, context) ) + * + * def setHessian(self, hessian, Mat H=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * cdef PetscMat Hmat = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":281 + * CHKERR( TaoSetHessian(self.tao, Hmat, Pmat, TAO_Hessian, context) ) + * + * def getHessian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat() + * cdef Mat P = Mat() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_51getHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_50getHessian[] = "TAO.getHessian(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_51getHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHessian (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getHessian", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getHessian", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_50getHessian(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_50getHessian(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_hessian = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHessian", 0); + + /* "petsc4py/PETSc/TAO.pyx":282 + * + * def getHessian(self): + * cdef Mat J = Mat() # <<<<<<<<<<<<<< + * cdef Mat P = Mat() + * CHKERR( TaoGetHessian(self.tao, &J.mat, &P.mat, NULL, NULL) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_J = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":283 + * def getHessian(self): + * cdef Mat J = Mat() + * cdef Mat P = Mat() # <<<<<<<<<<<<<< + * CHKERR( TaoGetHessian(self.tao, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_P = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":284 + * cdef Mat J = Mat() + * cdef Mat P = Mat() + * CHKERR( TaoGetHessian(self.tao, &J.mat, &P.mat, NULL, NULL) ) # <<<<<<<<<<<<<< + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetHessian(__pyx_v_self->tao, (&__pyx_v_J->mat), (&__pyx_v_P->mat), NULL, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 284, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":285 + * cdef Mat P = Mat() + * CHKERR( TaoGetHessian(self.tao, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) # <<<<<<<<<<<<<< + * PetscINCREF(P.obj) + * cdef object hessian = self.get_attr("__hessian__") + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_J->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":286 + * CHKERR( TaoGetHessian(self.tao, &J.mat, &P.mat, NULL, NULL) ) + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) # <<<<<<<<<<<<<< + * cdef object hessian = self.get_attr("__hessian__") + * return (J, P, hessian) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_P->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":287 + * PetscINCREF(J.obj) + * PetscINCREF(P.obj) + * cdef object hessian = self.get_attr("__hessian__") # <<<<<<<<<<<<<< + * return (J, P, hessian) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__hessian__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_hessian = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":288 + * PetscINCREF(P.obj) + * cdef object hessian = self.get_attr("__hessian__") + * return (J, P, hessian) # <<<<<<<<<<<<<< + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_J)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_J)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_J)); + __Pyx_INCREF(((PyObject *)__pyx_v_P)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_P)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_P)); + __Pyx_INCREF(__pyx_v_hessian); + __Pyx_GIVEREF(__pyx_v_hessian); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_hessian); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":281 + * CHKERR( TaoSetHessian(self.tao, Hmat, Pmat, TAO_Hessian, context) ) + * + * def getHessian(self): # <<<<<<<<<<<<<< + * cdef Mat J = Mat() + * cdef Mat P = Mat() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_J); + __Pyx_XDECREF((PyObject *)__pyx_v_P); + __Pyx_XDECREF(__pyx_v_hessian); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":290 + * return (J, P, hessian) + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_53setJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_52setJacobian[] = "TAO.setJacobian(self, jacobian, Mat J=None, Mat P=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_53setJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":291 + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobian") < 0)) __PYX_ERR(51, 290, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobian", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 290, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(51, 290, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 290, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_52setJacobian(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":290 + * return (J, P, hessian) + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_52setJacobian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":294 + * """ + * """ + * cdef PetscMat Jmat = NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":295 + * """ + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":296 + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if args is None: args = () + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TAO.pyx":297 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":298 + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":299 + * if P is not None: Pmat = P.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":300 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__jacobian__", context) + * CHKERR( TaoSetJacobianRoutine(self.tao, Jmat, Pmat, TAO_Jacobian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":301 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetJacobianRoutine(self.tao, Jmat, Pmat, TAO_Jacobian, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":302 + * context = (jacobian, args, kargs) + * self.set_attr("__jacobian__", context) + * CHKERR( TaoSetJacobianRoutine(self.tao, Jmat, Pmat, TAO_Jacobian, context) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetJacobianRoutine(__pyx_v_self->tao, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TAO_Jacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 302, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":290 + * return (J, P, hessian) + * + * def setJacobian(self, jacobian, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":306 + * # + * + * def setStateDesignIS(self, IS state=None, IS design=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_55setStateDesignIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_54setStateDesignIS[] = "TAO.setStateDesignIS(self, IS state=None, IS design=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_55setStateDesignIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_state = 0; + struct PyPetscISObject *__pyx_v_design = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStateDesignIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_state,&__pyx_n_s_design,0}; + PyObject* values[2] = {0,0}; + values[0] = (PyObject *)((struct PyPetscISObject *)Py_None); + values[1] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_state); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_design); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStateDesignIS") < 0)) __PYX_ERR(51, 306, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_state = ((struct PyPetscISObject *)values[0]); + __pyx_v_design = ((struct PyPetscISObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStateDesignIS", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 306, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setStateDesignIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_state), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "state", 0))) __PYX_ERR(51, 306, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_design), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "design", 0))) __PYX_ERR(51, 306, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_54setStateDesignIS(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_state, __pyx_v_design); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_54setStateDesignIS(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_state, struct PyPetscISObject *__pyx_v_design) { + IS __pyx_v_s_is; + IS __pyx_v_d_is; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStateDesignIS", 0); + + /* "petsc4py/PETSc/TAO.pyx":309 + * """ + * """ + * cdef PetscIS s_is = NULL, d_is = NULL # <<<<<<<<<<<<<< + * if state is not None: s_is = state.iset + * if design is not None: d_is = design.iset + */ + __pyx_v_s_is = NULL; + __pyx_v_d_is = NULL; + + /* "petsc4py/PETSc/TAO.pyx":310 + * """ + * cdef PetscIS s_is = NULL, d_is = NULL + * if state is not None: s_is = state.iset # <<<<<<<<<<<<<< + * if design is not None: d_is = design.iset + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_state) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_state->iset; + __pyx_v_s_is = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":311 + * cdef PetscIS s_is = NULL, d_is = NULL + * if state is not None: s_is = state.iset + * if design is not None: d_is = design.iset # <<<<<<<<<<<<<< + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_design) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_design->iset; + __pyx_v_d_is = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":312 + * if state is not None: s_is = state.iset + * if design is not None: d_is = design.iset + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) # <<<<<<<<<<<<<< + * + * def setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetStateDesignIS(__pyx_v_self->tao, __pyx_v_s_is, __pyx_v_d_is)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 312, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":306 + * # + * + * def setStateDesignIS(self, IS state=None, IS design=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setStateDesignIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":314 + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) + * + * def setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_57setJacobianState(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_56setJacobianState[] = "TAO.setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_57setJacobianState(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian_state = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + struct PyPetscMatObject *__pyx_v_I = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobianState (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian_state,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_I,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[3] = (PyObject *)((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":315 + * + * def setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian_state)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_I); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobianState") < 0)) __PYX_ERR(51, 314, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian_state = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_I = ((struct PyPetscMatObject *)values[3]); + __pyx_v_args = values[4]; + __pyx_v_kargs = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobianState", 0, 1, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 314, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianState", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(51, 314, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 314, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_I), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "I", 0))) __PYX_ERR(51, 314, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_56setJacobianState(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_jacobian_state, __pyx_v_J, __pyx_v_P, __pyx_v_I, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":314 + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) + * + * def setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_56setJacobianState(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_state, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, struct PyPetscMatObject *__pyx_v_I, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + Mat __pyx_v_Imat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobianState", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":318 + * """ + * """ + * cdef PetscMat Jmat = NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":319 + * """ + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":320 + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * cdef PetscMat Imat = NULL + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TAO.pyx":321 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * cdef PetscMat Imat = NULL + * if I is not None: Imat = I.mat + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":322 + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + * cdef PetscMat Imat = NULL # <<<<<<<<<<<<<< + * if I is not None: Imat = I.mat + * if args is None: args = () + */ + __pyx_v_Imat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":323 + * if P is not None: Pmat = P.mat + * cdef PetscMat Imat = NULL + * if I is not None: Imat = I.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_I) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_I->mat; + __pyx_v_Imat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":324 + * cdef PetscMat Imat = NULL + * if I is not None: Imat = I.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian_state, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":325 + * if I is not None: Imat = I.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian_state, args, kargs) + * self.set_attr("__jacobian_state__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":326 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian_state, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__jacobian_state__", context) + * CHKERR( TaoSetJacobianStateRoutine(self.tao, Jmat, Pmat, Imat, + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian_state); + __Pyx_GIVEREF(__pyx_v_jacobian_state); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian_state); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":327 + * if kargs is None: kargs = {} + * context = (jacobian_state, args, kargs) + * self.set_attr("__jacobian_state__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetJacobianStateRoutine(self.tao, Jmat, Pmat, Imat, + * TAO_JacobianState, context) ) + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian_state__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":328 + * context = (jacobian_state, args, kargs) + * self.set_attr("__jacobian_state__", context) + * CHKERR( TaoSetJacobianStateRoutine(self.tao, Jmat, Pmat, Imat, # <<<<<<<<<<<<<< + * TAO_JacobianState, context) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetJacobianStateRoutine(__pyx_v_self->tao, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_v_Imat, __pyx_f_8petsc4py_5PETSc_TAO_JacobianState, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 328, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":314 + * CHKERR( TaoSetStateDesignIS(self.tao, s_is, d_is) ) + * + * def setJacobianState(self, jacobian_state, Mat J=None, Mat P=None, Mat I=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianState", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":331 + * TAO_JacobianState, context) ) + * + * def setJacobianDesign(self, jacobian_design, Mat J=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_59setJacobianDesign(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_58setJacobianDesign[] = "TAO.setJacobianDesign(self, jacobian_design, Mat J=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_59setJacobianDesign(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian_design = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobianDesign (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian_design,&__pyx_n_s_J,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":332 + * + * def setJacobianDesign(self, jacobian_design, Mat J=None, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian_design)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobianDesign") < 0)) __PYX_ERR(51, 331, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian_design = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobianDesign", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 331, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianDesign", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(51, 331, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_58setJacobianDesign(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_jacobian_design, __pyx_v_J, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":331 + * TAO_JacobianState, context) ) + * + * def setJacobianDesign(self, jacobian_design, Mat J=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_58setJacobianDesign(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_design, struct PyPetscMatObject *__pyx_v_J, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobianDesign", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":335 + * """ + * """ + * cdef PetscMat Jmat = NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * if args is None: args = () + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":336 + * """ + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":337 + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian_design, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":338 + * if J is not None: Jmat = J.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian_design, args, kargs) + * self.set_attr("__jacobian_design__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":339 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian_design, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__jacobian_design__", context) + * CHKERR( TaoSetJacobianDesignRoutine(self.tao, Jmat, + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian_design); + __Pyx_GIVEREF(__pyx_v_jacobian_design); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian_design); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":340 + * if kargs is None: kargs = {} + * context = (jacobian_design, args, kargs) + * self.set_attr("__jacobian_design__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetJacobianDesignRoutine(self.tao, Jmat, + * TAO_JacobianDesign, context) ) + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian_design__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":341 + * context = (jacobian_design, args, kargs) + * self.set_attr("__jacobian_design__", context) + * CHKERR( TaoSetJacobianDesignRoutine(self.tao, Jmat, # <<<<<<<<<<<<<< + * TAO_JacobianDesign, context) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetJacobianDesignRoutine(__pyx_v_self->tao, __pyx_v_Jmat, __pyx_f_8petsc4py_5PETSc_TAO_JacobianDesign, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 341, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":331 + * TAO_JacobianState, context) ) + * + * def setJacobianDesign(self, jacobian_design, Mat J=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianDesign", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":345 + * + * + * def setEqualityConstraints(self, equality_constraints, Vec c, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_61setEqualityConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_60setEqualityConstraints[] = "TAO.setEqualityConstraints(self, equality_constraints, Vec c, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_61setEqualityConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_equality_constraints = 0; + struct PyPetscVecObject *__pyx_v_c = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setEqualityConstraints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_equality_constraints,&__pyx_n_s_c,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + + /* "petsc4py/PETSc/TAO.pyx":346 + * + * def setEqualityConstraints(self, equality_constraints, Vec c, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_equality_constraints)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setEqualityConstraints", 0, 2, 4, 1); __PYX_ERR(51, 345, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setEqualityConstraints") < 0)) __PYX_ERR(51, 345, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_equality_constraints = values[0]; + __pyx_v_c = ((struct PyPetscVecObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setEqualityConstraints", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 345, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setEqualityConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "c", 0))) __PYX_ERR(51, 345, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_60setEqualityConstraints(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_equality_constraints, __pyx_v_c, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":345 + * + * + * def setEqualityConstraints(self, equality_constraints, Vec c, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_60setEqualityConstraints(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_equality_constraints, struct PyPetscVecObject *__pyx_v_c, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setEqualityConstraints", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":349 + * """ + * """ + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (equality_constraints, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":350 + * """ + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (equality_constraints, args, kargs) + * self.set_attr("__equality_constraints__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":351 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (equality_constraints, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__equality_constraints__", context) + * CHKERR( TaoSetEqualityConstraintsRoutine(self.tao, c.vec, + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 351, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_equality_constraints); + __Pyx_GIVEREF(__pyx_v_equality_constraints); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_equality_constraints); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":352 + * if kargs is None: kargs = {} + * context = (equality_constraints, args, kargs) + * self.set_attr("__equality_constraints__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetEqualityConstraintsRoutine(self.tao, c.vec, + * TAO_EqualityConstraints, context) ) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__equality_constraints__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":353 + * context = (equality_constraints, args, kargs) + * self.set_attr("__equality_constraints__", context) + * CHKERR( TaoSetEqualityConstraintsRoutine(self.tao, c.vec, # <<<<<<<<<<<<<< + * TAO_EqualityConstraints, context) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetEqualityConstraintsRoutine(__pyx_v_self->tao, __pyx_v_c->vec, __pyx_f_8petsc4py_5PETSc_TAO_EqualityConstraints, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 353, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":345 + * + * + * def setEqualityConstraints(self, equality_constraints, Vec c, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setEqualityConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":357 + * + * + * def setJacobianEquality(self, jacobian_equality, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_63setJacobianEquality(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_62setJacobianEquality[] = "TAO.setJacobianEquality(self, jacobian_equality, Mat J=None, Mat P=None, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_63setJacobianEquality(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian_equality = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setJacobianEquality (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian_equality,&__pyx_n_s_J,&__pyx_n_s_P,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/TAO.pyx":358 + * + * def setJacobianEquality(self, jacobian_equality, Mat J=None, Mat P=None, + * args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian_equality)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setJacobianEquality") < 0)) __PYX_ERR(51, 357, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian_equality = values[0]; + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + __pyx_v_args = values[3]; + __pyx_v_kargs = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setJacobianEquality", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 357, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianEquality", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "J", 0))) __PYX_ERR(51, 357, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 357, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_62setJacobianEquality(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_jacobian_equality, __pyx_v_J, __pyx_v_P, __pyx_v_args, __pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":357 + * + * + * def setJacobianEquality(self, jacobian_equality, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_62setJacobianEquality(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_jacobian_equality, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Jmat; + Mat __pyx_v_Pmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setJacobianEquality", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":361 + * """ + * """ + * cdef PetscMat Jmat = NULL # <<<<<<<<<<<<<< + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + */ + __pyx_v_Jmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":362 + * """ + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat # <<<<<<<<<<<<<< + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + */ + __pyx_t_1 = (((PyObject *)__pyx_v_J) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_J->mat; + __pyx_v_Jmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":363 + * cdef PetscMat Jmat = NULL + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat # <<<<<<<<<<<<<< + * if P is not None: Pmat = P.mat + * if args is None: args = () + */ + __pyx_v_Pmat = __pyx_v_Jmat; + + /* "petsc4py/PETSc/TAO.pyx":364 + * if J is not None: Jmat = J.mat + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_v_P->mat; + __pyx_v_Pmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":365 + * cdef PetscMat Pmat = Jmat + * if P is not None: Pmat = P.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian_equality, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":366 + * if P is not None: Pmat = P.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian_equality, args, kargs) + * self.set_attr("__jacobian_equality__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":367 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian_equality, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__jacobian_equality__", context) + * CHKERR( TaoSetJacobianEqualityRoutine(self.tao, Jmat, Pmat, + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_jacobian_equality); + __Pyx_GIVEREF(__pyx_v_jacobian_equality); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_jacobian_equality); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":368 + * if kargs is None: kargs = {} + * context = (jacobian_equality, args, kargs) + * self.set_attr("__jacobian_equality__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetJacobianEqualityRoutine(self.tao, Jmat, Pmat, + * TAO_JacobianEquality, context) ) + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian_equality__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":369 + * context = (jacobian_equality, args, kargs) + * self.set_attr("__jacobian_equality__", context) + * CHKERR( TaoSetJacobianEqualityRoutine(self.tao, Jmat, Pmat, # <<<<<<<<<<<<<< + * TAO_JacobianEquality, context) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetJacobianEqualityRoutine(__pyx_v_self->tao, __pyx_v_Jmat, __pyx_v_Pmat, __pyx_f_8petsc4py_5PETSc_TAO_JacobianEquality, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 369, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":357 + * + * + * def setJacobianEquality(self, jacobian_equality, Mat J=None, Mat P=None, # <<<<<<<<<<<<<< + * args=None, kargs=None): + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setJacobianEquality", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":372 + * TAO_JacobianEquality, context) ) + * + * def setUpdate(self, update, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_65setUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_64setUpdate[] = "TAO.setUpdate(self, update, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_65setUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_update = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUpdate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_update,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_update)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUpdate") < 0)) __PYX_ERR(51, 372, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_update = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUpdate", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 372, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_64setUpdate(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_update, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_64setUpdate(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_update, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUpdate", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":375 + * """ + * """ + * if update is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_update != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":376 + * """ + * if update is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (update, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":377 + * if update is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (update, args, kargs) + * self.set_attr('__update__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":378 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (update, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__update__', context) + * CHKERR( TaoSetUpdate(self.tao, TAO_Update, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_update); + __Pyx_GIVEREF(__pyx_v_update); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_update); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":379 + * if kargs is None: kargs = {} + * context = (update, args, kargs) + * self.set_attr('__update__', context) # <<<<<<<<<<<<<< + * CHKERR( TaoSetUpdate(self.tao, TAO_Update, context) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":380 + * context = (update, args, kargs) + * self.set_attr('__update__', context) + * CHKERR( TaoSetUpdate(self.tao, TAO_Update, context) ) # <<<<<<<<<<<<<< + * else: + * self.set_attr('__update__', None) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetUpdate(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_Update, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 380, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":375 + * """ + * """ + * if update is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":382 + * CHKERR( TaoSetUpdate(self.tao, TAO_Update, context) ) + * else: + * self.set_attr('__update__', None) # <<<<<<<<<<<<<< + * CHKERR( TaoSetUpdate(self.tao, NULL, NULL) ) + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__"), Py_None); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":383 + * else: + * self.set_attr('__update__', None) + * CHKERR( TaoSetUpdate(self.tao, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def getUpdate(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetUpdate(__pyx_v_self->tao, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 383, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TAO.pyx":372 + * TAO_JacobianEquality, context) ) + * + * def setUpdate(self, update, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":385 + * CHKERR( TaoSetUpdate(self.tao, NULL, NULL) ) + * + * def getUpdate(self): # <<<<<<<<<<<<<< + * return self.get_attr('__update__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_67getUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_66getUpdate[] = "TAO.getUpdate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_67getUpdate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getUpdate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getUpdate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getUpdate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_66getUpdate(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_66getUpdate(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getUpdate", 0); + + /* "petsc4py/PETSc/TAO.pyx":386 + * + * def getUpdate(self): + * return self.get_attr('__update__') # <<<<<<<<<<<<<< + * + * # -------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__update__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 386, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":385 + * CHKERR( TaoSetUpdate(self.tao, NULL, NULL) ) + * + * def getUpdate(self): # <<<<<<<<<<<<<< + * return self.get_attr('__update__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getUpdate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":390 + * # -------------- + * + * def computeObjective(self, Vec x): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_69computeObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_68computeObjective[] = "TAO.computeObjective(self, Vec x)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_69computeObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeObjective (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeObjective") < 0)) __PYX_ERR(51, 390, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeObjective", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 390, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 390, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_68computeObjective(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_68computeObjective(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x) { + PetscReal __pyx_v_f; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeObjective", 0); + + /* "petsc4py/PETSc/TAO.pyx":393 + * """ + * """ + * cdef PetscReal f = 0 # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjective(self.tao, x.vec, &f) ) + * return toReal(f) + */ + __pyx_v_f = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":394 + * """ + * cdef PetscReal f = 0 + * CHKERR( TaoComputeObjective(self.tao, x.vec, &f) ) # <<<<<<<<<<<<<< + * return toReal(f) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjective(__pyx_v_self->tao, __pyx_v_x->vec, (&__pyx_v_f))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 394, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":395 + * cdef PetscReal f = 0 + * CHKERR( TaoComputeObjective(self.tao, x.vec, &f) ) + * return toReal(f) # <<<<<<<<<<<<<< + * + * def computeResidual(self, Vec x, Vec f): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_f); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":390 + * # -------------- + * + * def computeObjective(self, Vec x): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeObjective", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":397 + * return toReal(f) + * + * def computeResidual(self, Vec x, Vec f): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_71computeResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_70computeResidual[] = "TAO.computeResidual(self, Vec x, Vec f)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_71computeResidual(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_f = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeResidual (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_f,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeResidual", 1, 2, 2, 1); __PYX_ERR(51, 397, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeResidual") < 0)) __PYX_ERR(51, 397, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_f = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeResidual", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 397, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 397, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_f), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "f", 0))) __PYX_ERR(51, 397, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_70computeResidual(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_f); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_70computeResidual(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_f) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeResidual", 0); + + /* "petsc4py/PETSc/TAO.pyx":400 + * """ + * """ + * CHKERR( TaoComputeResidual(self.tao, x.vec, f.vec) ) # <<<<<<<<<<<<<< + * + * def computeGradient(self, Vec x, Vec g): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeResidual(__pyx_v_self->tao, __pyx_v_x->vec, __pyx_v_f->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 400, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":397 + * return toReal(f) + * + * def computeResidual(self, Vec x, Vec f): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeResidual", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":402 + * CHKERR( TaoComputeResidual(self.tao, x.vec, f.vec) ) + * + * def computeGradient(self, Vec x, Vec g): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_73computeGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_72computeGradient[] = "TAO.computeGradient(self, Vec x, Vec g)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_73computeGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_g,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeGradient", 1, 2, 2, 1); __PYX_ERR(51, 402, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeGradient") < 0)) __PYX_ERR(51, 402, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_g = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeGradient", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 402, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 402, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "g", 0))) __PYX_ERR(51, 402, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_72computeGradient(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_g); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_72computeGradient(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_g) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeGradient", 0); + + /* "petsc4py/PETSc/TAO.pyx":405 + * """ + * """ + * CHKERR( TaoComputeGradient(self.tao, x.vec, g.vec) ) # <<<<<<<<<<<<<< + * + * def computeObjectiveGradient(self, Vec x, Vec g): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeGradient(__pyx_v_self->tao, __pyx_v_x->vec, __pyx_v_g->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 405, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":402 + * CHKERR( TaoComputeResidual(self.tao, x.vec, f.vec) ) + * + * def computeGradient(self, Vec x, Vec g): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":407 + * CHKERR( TaoComputeGradient(self.tao, x.vec, g.vec) ) + * + * def computeObjectiveGradient(self, Vec x, Vec g): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_75computeObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_74computeObjectiveGradient[] = "TAO.computeObjectiveGradient(self, Vec x, Vec g)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_75computeObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_g = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeObjectiveGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_g,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_g)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeObjectiveGradient", 1, 2, 2, 1); __PYX_ERR(51, 407, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeObjectiveGradient") < 0)) __PYX_ERR(51, 407, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_g = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeObjectiveGradient", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 407, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 407, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_g), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "g", 0))) __PYX_ERR(51, 407, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_74computeObjectiveGradient(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_g); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_74computeObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_g) { + PetscReal __pyx_v_f; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeObjectiveGradient", 0); + + /* "petsc4py/PETSc/TAO.pyx":410 + * """ + * """ + * cdef PetscReal f = 0 # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjectiveAndGradient(self.tao, x.vec, &f, g.vec) ) + * return toReal(f) + */ + __pyx_v_f = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":411 + * """ + * cdef PetscReal f = 0 + * CHKERR( TaoComputeObjectiveAndGradient(self.tao, x.vec, &f, g.vec) ) # <<<<<<<<<<<<<< + * return toReal(f) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjectiveAndGradient(__pyx_v_self->tao, __pyx_v_x->vec, (&__pyx_v_f), __pyx_v_g->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 411, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":412 + * cdef PetscReal f = 0 + * CHKERR( TaoComputeObjectiveAndGradient(self.tao, x.vec, &f, g.vec) ) + * return toReal(f) # <<<<<<<<<<<<<< + * + * def computeDualVariables(self, Vec xl, Vec xu): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_f); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 412, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":407 + * CHKERR( TaoComputeGradient(self.tao, x.vec, g.vec) ) + * + * def computeObjectiveGradient(self, Vec x, Vec g): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":414 + * return toReal(f) + * + * def computeDualVariables(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_77computeDualVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_76computeDualVariables[] = "TAO.computeDualVariables(self, Vec xl, Vec xu)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_77computeDualVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeDualVariables (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xl,&__pyx_n_s_xu,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xu)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeDualVariables", 1, 2, 2, 1); __PYX_ERR(51, 414, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeDualVariables") < 0)) __PYX_ERR(51, 414, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_xl = ((struct PyPetscVecObject *)values[0]); + __pyx_v_xu = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeDualVariables", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 414, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeDualVariables", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xl", 0))) __PYX_ERR(51, 414, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xu), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xu", 0))) __PYX_ERR(51, 414, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_76computeDualVariables(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_xl, __pyx_v_xu); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_76computeDualVariables(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeDualVariables", 0); + + /* "petsc4py/PETSc/TAO.pyx":417 + * """ + * """ + * CHKERR( TaoComputeDualVariables(self.tao, xl.vec, xu.vec) ) # <<<<<<<<<<<<<< + * + * def computeVariableBounds(self, Vec xl, Vec xu): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeDualVariables(__pyx_v_self->tao, __pyx_v_xl->vec, __pyx_v_xu->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 417, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":414 + * return toReal(f) + * + * def computeDualVariables(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeDualVariables", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":419 + * CHKERR( TaoComputeDualVariables(self.tao, xl.vec, xu.vec) ) + * + * def computeVariableBounds(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_79computeVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_78computeVariableBounds[] = "TAO.computeVariableBounds(self, Vec xl, Vec xu)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_79computeVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeVariableBounds (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xl,&__pyx_n_s_xu,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xu)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeVariableBounds", 1, 2, 2, 1); __PYX_ERR(51, 419, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeVariableBounds") < 0)) __PYX_ERR(51, 419, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_xl = ((struct PyPetscVecObject *)values[0]); + __pyx_v_xu = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeVariableBounds", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 419, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xl", 0))) __PYX_ERR(51, 419, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_xu), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "xu", 0))) __PYX_ERR(51, 419, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_78computeVariableBounds(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_xl, __pyx_v_xu); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_78computeVariableBounds(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_xl, struct PyPetscVecObject *__pyx_v_xu) { + Vec __pyx_v_Lvec; + Vec __pyx_v_Uvec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeVariableBounds", 0); + + /* "petsc4py/PETSc/TAO.pyx":422 + * """ + * """ + * CHKERR( TaoComputeVariableBounds(self.tao) ) # <<<<<<<<<<<<<< + * cdef PetscVec Lvec = NULL, Uvec = NULL + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeVariableBounds(__pyx_v_self->tao)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 422, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":423 + * """ + * CHKERR( TaoComputeVariableBounds(self.tao) ) + * cdef PetscVec Lvec = NULL, Uvec = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + * if xl.vec != NULL: + */ + __pyx_v_Lvec = NULL; + __pyx_v_Uvec = NULL; + + /* "petsc4py/PETSc/TAO.pyx":424 + * CHKERR( TaoComputeVariableBounds(self.tao) ) + * cdef PetscVec Lvec = NULL, Uvec = NULL + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) # <<<<<<<<<<<<<< + * if xl.vec != NULL: + * if Lvec != NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetVariableBounds(__pyx_v_self->tao, (&__pyx_v_Lvec), (&__pyx_v_Uvec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 424, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":425 + * cdef PetscVec Lvec = NULL, Uvec = NULL + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + * if xl.vec != NULL: # <<<<<<<<<<<<<< + * if Lvec != NULL: + * CHKERR( VecCopy(Lvec, xl.vec) ) + */ + __pyx_t_2 = ((__pyx_v_xl->vec != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":426 + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + * if xl.vec != NULL: + * if Lvec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecCopy(Lvec, xl.vec) ) + * else: + */ + __pyx_t_2 = ((__pyx_v_Lvec != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":427 + * if xl.vec != NULL: + * if Lvec != NULL: + * CHKERR( VecCopy(Lvec, xl.vec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_Lvec, __pyx_v_xl->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 427, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":426 + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + * if xl.vec != NULL: + * if Lvec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecCopy(Lvec, xl.vec) ) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/TAO.pyx":429 + * CHKERR( VecCopy(Lvec, xl.vec) ) + * else: + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) # <<<<<<<<<<<<<< + * if xu.vec != NULL: + * if Uvec != NULL: + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSet(__pyx_v_xl->vec, ((PetscScalar)PETSC_NINFINITY))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 429, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/TAO.pyx":425 + * cdef PetscVec Lvec = NULL, Uvec = NULL + * CHKERR( TaoGetVariableBounds(self.tao, &Lvec, &Uvec) ) + * if xl.vec != NULL: # <<<<<<<<<<<<<< + * if Lvec != NULL: + * CHKERR( VecCopy(Lvec, xl.vec) ) + */ + } + + /* "petsc4py/PETSc/TAO.pyx":430 + * else: + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) + * if xu.vec != NULL: # <<<<<<<<<<<<<< + * if Uvec != NULL: + * CHKERR( VecCopy(Uvec, xu.vec) ) + */ + __pyx_t_2 = ((__pyx_v_xu->vec != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":431 + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) + * if xu.vec != NULL: + * if Uvec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecCopy(Uvec, xu.vec) ) + * else: + */ + __pyx_t_2 = ((__pyx_v_Uvec != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":432 + * if xu.vec != NULL: + * if Uvec != NULL: + * CHKERR( VecCopy(Uvec, xu.vec) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( VecSet(xu.vec, PETSC_INFINITY) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_Uvec, __pyx_v_xu->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 432, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":431 + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) + * if xu.vec != NULL: + * if Uvec != NULL: # <<<<<<<<<<<<<< + * CHKERR( VecCopy(Uvec, xu.vec) ) + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/TAO.pyx":434 + * CHKERR( VecCopy(Uvec, xu.vec) ) + * else: + * CHKERR( VecSet(xu.vec, PETSC_INFINITY) ) # <<<<<<<<<<<<<< + * + * def computeConstraints(self, Vec x, Vec c): + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSet(__pyx_v_xu->vec, ((PetscScalar)PETSC_INFINITY))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 434, __pyx_L1_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/TAO.pyx":430 + * else: + * CHKERR( VecSet(xl.vec, PETSC_NINFINITY) ) + * if xu.vec != NULL: # <<<<<<<<<<<<<< + * if Uvec != NULL: + * CHKERR( VecCopy(Uvec, xu.vec) ) + */ + } + + /* "petsc4py/PETSc/TAO.pyx":419 + * CHKERR( TaoComputeDualVariables(self.tao, xl.vec, xu.vec) ) + * + * def computeVariableBounds(self, Vec xl, Vec xu): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":436 + * CHKERR( VecSet(xu.vec, PETSC_INFINITY) ) + * + * def computeConstraints(self, Vec x, Vec c): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_81computeConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_80computeConstraints[] = "TAO.computeConstraints(self, Vec x, Vec c)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_81computeConstraints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscVecObject *__pyx_v_c = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeConstraints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_c,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeConstraints", 1, 2, 2, 1); __PYX_ERR(51, 436, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeConstraints") < 0)) __PYX_ERR(51, 436, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_c = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeConstraints", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 436, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 436, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "c", 0))) __PYX_ERR(51, 436, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_80computeConstraints(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_c); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_80computeConstraints(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscVecObject *__pyx_v_c) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeConstraints", 0); + + /* "petsc4py/PETSc/TAO.pyx":439 + * """ + * """ + * CHKERR( TaoComputeConstraints(self.tao, x.vec, c.vec) ) # <<<<<<<<<<<<<< + * + * def computeHessian(self, Vec x, Mat H, Mat P=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeConstraints(__pyx_v_self->tao, __pyx_v_x->vec, __pyx_v_c->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 439, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":436 + * CHKERR( VecSet(xu.vec, PETSC_INFINITY) ) + * + * def computeConstraints(self, Vec x, Vec c): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeConstraints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":441 + * CHKERR( TaoComputeConstraints(self.tao, x.vec, c.vec) ) + * + * def computeHessian(self, Vec x, Mat H, Mat P=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_83computeHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_82computeHessian[] = "TAO.computeHessian(self, Vec x, Mat H, Mat P=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_83computeHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_H = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeHessian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_H,&__pyx_n_s_P,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeHessian", 0, 2, 3, 1); __PYX_ERR(51, 441, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeHessian") < 0)) __PYX_ERR(51, 441, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_H = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeHessian", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 441, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 441, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "H", 0))) __PYX_ERR(51, 441, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 441, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_82computeHessian(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_H, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_82computeHessian(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_H, struct PyPetscMatObject *__pyx_v_P) { + Mat __pyx_v_hmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Mat __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeHessian", 0); + + /* "petsc4py/PETSc/TAO.pyx":444 + * """ + * """ + * cdef PetscMat hmat = H.mat, pmat = H.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TaoComputeHessian(self.tao, x.vec, hmat, pmat) ) + */ + __pyx_t_1 = __pyx_v_H->mat; + __pyx_v_hmat = __pyx_t_1; + __pyx_t_1 = __pyx_v_H->mat; + __pyx_v_pmat = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":445 + * """ + * cdef PetscMat hmat = H.mat, pmat = H.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TaoComputeHessian(self.tao, x.vec, hmat, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_1; + } + + /* "petsc4py/PETSc/TAO.pyx":446 + * cdef PetscMat hmat = H.mat, pmat = H.mat + * if P is not None: pmat = P.mat + * CHKERR( TaoComputeHessian(self.tao, x.vec, hmat, pmat) ) # <<<<<<<<<<<<<< + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeHessian(__pyx_v_self->tao, __pyx_v_x->vec, __pyx_v_hmat, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 446, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":441 + * CHKERR( TaoComputeConstraints(self.tao, x.vec, c.vec) ) + * + * def computeHessian(self, Vec x, Mat H, Mat P=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":448 + * CHKERR( TaoComputeHessian(self.tao, x.vec, hmat, pmat) ) + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_85computeJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_84computeJacobian[] = "TAO.computeJacobian(self, Vec x, Mat J, Mat P=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_85computeJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + struct PyPetscMatObject *__pyx_v_J = 0; + struct PyPetscMatObject *__pyx_v_P = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_J,&__pyx_n_s_P,0}; + PyObject* values[3] = {0,0,0}; + values[2] = (PyObject *)((struct PyPetscMatObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_J)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeJacobian", 0, 2, 3, 1); __PYX_ERR(51, 448, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_P); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeJacobian") < 0)) __PYX_ERR(51, 448, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + __pyx_v_J = ((struct PyPetscMatObject *)values[1]); + __pyx_v_P = ((struct PyPetscMatObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeJacobian", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 448, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(51, 448, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_J), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "J", 0))) __PYX_ERR(51, 448, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_P), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "P", 0))) __PYX_ERR(51, 448, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_84computeJacobian(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x, __pyx_v_J, __pyx_v_P); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_84computeJacobian(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x, struct PyPetscMatObject *__pyx_v_J, struct PyPetscMatObject *__pyx_v_P) { + Mat __pyx_v_jmat; + Mat __pyx_v_pmat; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Mat __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeJacobian", 0); + + /* "petsc4py/PETSc/TAO.pyx":451 + * """ + * """ + * cdef PetscMat jmat = J.mat, pmat = J.mat # <<<<<<<<<<<<<< + * if P is not None: pmat = P.mat + * CHKERR( TaoComputeJacobian(self.tao, x.vec, jmat, pmat) ) + */ + __pyx_t_1 = __pyx_v_J->mat; + __pyx_v_jmat = __pyx_t_1; + __pyx_t_1 = __pyx_v_J->mat; + __pyx_v_pmat = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":452 + * """ + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat # <<<<<<<<<<<<<< + * CHKERR( TaoComputeJacobian(self.tao, x.vec, jmat, pmat) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_P) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_t_1 = __pyx_v_P->mat; + __pyx_v_pmat = __pyx_t_1; + } + + /* "petsc4py/PETSc/TAO.pyx":453 + * cdef PetscMat jmat = J.mat, pmat = J.mat + * if P is not None: pmat = P.mat + * CHKERR( TaoComputeJacobian(self.tao, x.vec, jmat, pmat) ) # <<<<<<<<<<<<<< + * + * # -------------- + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeJacobian(__pyx_v_self->tao, __pyx_v_x->vec, __pyx_v_jmat, __pyx_v_pmat)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 453, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":448 + * CHKERR( TaoComputeHessian(self.tao, x.vec, hmat, pmat) ) + * + * def computeJacobian(self, Vec x, Mat J, Mat P=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.computeJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":459 + * # + * + * def setTolerances(self, gatol=None, grtol=None, gttol=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_87setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_86setTolerances[] = "TAO.setTolerances(self, gatol=None, grtol=None, gttol=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_87setTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_gatol = 0; + PyObject *__pyx_v_grtol = 0; + PyObject *__pyx_v_gttol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gatol,&__pyx_n_s_grtol,&__pyx_n_s_gttol,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gatol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_grtol); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gttol); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTolerances") < 0)) __PYX_ERR(51, 459, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_gatol = values[0]; + __pyx_v_grtol = values[1]; + __pyx_v_gttol = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTolerances", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 459, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_86setTolerances(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_gatol, __pyx_v_grtol, __pyx_v_gttol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_86setTolerances(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_gatol, PyObject *__pyx_v_grtol, PyObject *__pyx_v_gttol) { + PetscReal __pyx_v__gatol; + PetscReal __pyx_v__grtol; + PetscReal __pyx_v__gttol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTolerances", 0); + + /* "petsc4py/PETSc/TAO.pyx":462 + * """ + * """ + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT # <<<<<<<<<<<<<< + * if gatol is not None: _gatol = asReal(gatol) + * if grtol is not None: _grtol = asReal(grtol) + */ + __pyx_v__gatol = PETSC_DEFAULT; + __pyx_v__grtol = PETSC_DEFAULT; + __pyx_v__gttol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":463 + * """ + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT + * if gatol is not None: _gatol = asReal(gatol) # <<<<<<<<<<<<<< + * if grtol is not None: _grtol = asReal(grtol) + * if gttol is not None: _gttol = asReal(gttol) + */ + __pyx_t_1 = (__pyx_v_gatol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_gatol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 463, __pyx_L1_error) + __pyx_v__gatol = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":464 + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT + * if gatol is not None: _gatol = asReal(gatol) + * if grtol is not None: _grtol = asReal(grtol) # <<<<<<<<<<<<<< + * if gttol is not None: _gttol = asReal(gttol) + * CHKERR( TaoSetTolerances(self.tao, _gatol, _grtol, _gttol) ) + */ + __pyx_t_2 = (__pyx_v_grtol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_grtol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 464, __pyx_L1_error) + __pyx_v__grtol = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":465 + * if gatol is not None: _gatol = asReal(gatol) + * if grtol is not None: _grtol = asReal(grtol) + * if gttol is not None: _gttol = asReal(gttol) # <<<<<<<<<<<<<< + * CHKERR( TaoSetTolerances(self.tao, _gatol, _grtol, _gttol) ) + * + */ + __pyx_t_1 = (__pyx_v_gttol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_gttol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 465, __pyx_L1_error) + __pyx_v__gttol = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":466 + * if grtol is not None: _grtol = asReal(grtol) + * if gttol is not None: _gttol = asReal(gttol) + * CHKERR( TaoSetTolerances(self.tao, _gatol, _grtol, _gttol) ) # <<<<<<<<<<<<<< + * + * def getTolerances(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetTolerances(__pyx_v_self->tao, __pyx_v__gatol, __pyx_v__grtol, __pyx_v__gttol)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 466, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":459 + * # + * + * def setTolerances(self, gatol=None, grtol=None, gttol=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":468 + * CHKERR( TaoSetTolerances(self.tao, _gatol, _grtol, _gttol) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_89getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_88getTolerances[] = "TAO.getTolerances(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_89getTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTolerances (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTolerances", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTolerances", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_88getTolerances(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_88getTolerances(struct PyPetscTAOObject *__pyx_v_self) { + PetscReal __pyx_v__gatol; + PetscReal __pyx_v__grtol; + PetscReal __pyx_v__gttol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTolerances", 0); + + /* "petsc4py/PETSc/TAO.pyx":471 + * """ + * """ + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT # <<<<<<<<<<<<<< + * CHKERR( TaoGetTolerances(self.tao, &_gatol, &_grtol, &_gttol) ) + * return (toReal(_gatol), toReal(_grtol), toReal(_gttol)) + */ + __pyx_v__gatol = PETSC_DEFAULT; + __pyx_v__grtol = PETSC_DEFAULT; + __pyx_v__gttol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":472 + * """ + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT + * CHKERR( TaoGetTolerances(self.tao, &_gatol, &_grtol, &_gttol) ) # <<<<<<<<<<<<<< + * return (toReal(_gatol), toReal(_grtol), toReal(_gttol)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetTolerances(__pyx_v_self->tao, (&__pyx_v__gatol), (&__pyx_v__grtol), (&__pyx_v__gttol))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 472, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":473 + * cdef PetscReal _gatol=PETSC_DEFAULT, _grtol=PETSC_DEFAULT, _gttol=PETSC_DEFAULT + * CHKERR( TaoGetTolerances(self.tao, &_gatol, &_grtol, &_gttol) ) + * return (toReal(_gatol), toReal(_grtol), toReal(_gttol)) # <<<<<<<<<<<<<< + * + * def setMaximumIterations(self, mit): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v__gatol); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v__grtol); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v__gttol); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":468 + * CHKERR( TaoSetTolerances(self.tao, _gatol, _grtol, _gttol) ) + * + * def getTolerances(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":475 + * return (toReal(_gatol), toReal(_grtol), toReal(_gttol)) + * + * def setMaximumIterations(self, mit): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_91setMaximumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_90setMaximumIterations[] = "TAO.setMaximumIterations(self, mit)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_91setMaximumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mit = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaximumIterations (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mit,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaximumIterations") < 0)) __PYX_ERR(51, 475, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mit = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaximumIterations", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 475, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMaximumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_90setMaximumIterations(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_mit); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_90setMaximumIterations(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_mit) { + PetscInt __pyx_v__mit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaximumIterations", 0); + + /* "petsc4py/PETSc/TAO.pyx":478 + * """ + * """ + * cdef PetscInt _mit = asInt(mit) # <<<<<<<<<<<<<< + * CHKERR( TaoSetMaximumIterations(self.tao, _mit) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_mit); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(51, 478, __pyx_L1_error) + __pyx_v__mit = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":479 + * """ + * cdef PetscInt _mit = asInt(mit) + * CHKERR( TaoSetMaximumIterations(self.tao, _mit) ) # <<<<<<<<<<<<<< + * + * def getMaximumIterations(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetMaximumIterations(__pyx_v_self->tao, __pyx_v__mit)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 479, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":475 + * return (toReal(_gatol), toReal(_grtol), toReal(_gttol)) + * + * def setMaximumIterations(self, mit): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMaximumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":481 + * CHKERR( TaoSetMaximumIterations(self.tao, _mit) ) + * + * def getMaximumIterations(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_93getMaximumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_92getMaximumIterations[] = "TAO.getMaximumIterations(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_93getMaximumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaximumIterations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaximumIterations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaximumIterations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_92getMaximumIterations(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_92getMaximumIterations(struct PyPetscTAOObject *__pyx_v_self) { + PetscInt __pyx_v__mit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaximumIterations", 0); + + /* "petsc4py/PETSc/TAO.pyx":484 + * """ + * """ + * cdef PetscInt _mit = PETSC_DEFAULT # <<<<<<<<<<<<<< + * CHKERR( TaoGetMaximumIterations(self.tao, &_mit) ) + * return toInt(_mit) + */ + __pyx_v__mit = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":485 + * """ + * cdef PetscInt _mit = PETSC_DEFAULT + * CHKERR( TaoGetMaximumIterations(self.tao, &_mit) ) # <<<<<<<<<<<<<< + * return toInt(_mit) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetMaximumIterations(__pyx_v_self->tao, (&__pyx_v__mit))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 485, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":486 + * cdef PetscInt _mit = PETSC_DEFAULT + * CHKERR( TaoGetMaximumIterations(self.tao, &_mit) ) + * return toInt(_mit) # <<<<<<<<<<<<<< + * + * def setMaximumFunctionEvaluations(self, mit): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v__mit); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":481 + * CHKERR( TaoSetMaximumIterations(self.tao, _mit) ) + * + * def getMaximumIterations(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getMaximumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":488 + * return toInt(_mit) + * + * def setMaximumFunctionEvaluations(self, mit): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_95setMaximumFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_94setMaximumFunctionEvaluations[] = "TAO.setMaximumFunctionEvaluations(self, mit)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_95setMaximumFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mit = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMaximumFunctionEvaluations (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mit,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMaximumFunctionEvaluations") < 0)) __PYX_ERR(51, 488, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mit = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMaximumFunctionEvaluations", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 488, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMaximumFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_94setMaximumFunctionEvaluations(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_mit); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_94setMaximumFunctionEvaluations(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_mit) { + PetscInt __pyx_v__mit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMaximumFunctionEvaluations", 0); + + /* "petsc4py/PETSc/TAO.pyx":491 + * """ + * """ + * cdef PetscInt _mit = asInt(mit) # <<<<<<<<<<<<<< + * CHKERR( TaoSetMaximumFunctionEvaluations(self.tao, _mit) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_mit); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(51, 491, __pyx_L1_error) + __pyx_v__mit = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":492 + * """ + * cdef PetscInt _mit = asInt(mit) + * CHKERR( TaoSetMaximumFunctionEvaluations(self.tao, _mit) ) # <<<<<<<<<<<<<< + * + * def getMaximumFunctionEvaluations(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetMaximumFunctionEvaluations(__pyx_v_self->tao, __pyx_v__mit)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 492, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":488 + * return toInt(_mit) + * + * def setMaximumFunctionEvaluations(self, mit): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMaximumFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":494 + * CHKERR( TaoSetMaximumFunctionEvaluations(self.tao, _mit) ) + * + * def getMaximumFunctionEvaluations(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_97getMaximumFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_96getMaximumFunctionEvaluations[] = "TAO.getMaximumFunctionEvaluations(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_97getMaximumFunctionEvaluations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaximumFunctionEvaluations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaximumFunctionEvaluations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaximumFunctionEvaluations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_96getMaximumFunctionEvaluations(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_96getMaximumFunctionEvaluations(struct PyPetscTAOObject *__pyx_v_self) { + PetscInt __pyx_v__mit; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaximumFunctionEvaluations", 0); + + /* "petsc4py/PETSc/TAO.pyx":497 + * """ + * """ + * cdef PetscInt _mit = PETSC_DEFAULT # <<<<<<<<<<<<<< + * CHKERR( TaoGetMaximumFunctionEvaluations(self.tao, &_mit) ) + * return toInt(_mit) + */ + __pyx_v__mit = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":498 + * """ + * cdef PetscInt _mit = PETSC_DEFAULT + * CHKERR( TaoGetMaximumFunctionEvaluations(self.tao, &_mit) ) # <<<<<<<<<<<<<< + * return toInt(_mit) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetMaximumFunctionEvaluations(__pyx_v_self->tao, (&__pyx_v__mit))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 498, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":499 + * cdef PetscInt _mit = PETSC_DEFAULT + * CHKERR( TaoGetMaximumFunctionEvaluations(self.tao, &_mit) ) + * return toInt(_mit) # <<<<<<<<<<<<<< + * + * def setConstraintTolerances(self, catol=None, crtol=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v__mit); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":494 + * CHKERR( TaoSetMaximumFunctionEvaluations(self.tao, _mit) ) + * + * def getMaximumFunctionEvaluations(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getMaximumFunctionEvaluations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":501 + * return toInt(_mit) + * + * def setConstraintTolerances(self, catol=None, crtol=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_99setConstraintTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_98setConstraintTolerances[] = "TAO.setConstraintTolerances(self, catol=None, crtol=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_99setConstraintTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_catol = 0; + PyObject *__pyx_v_crtol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConstraintTolerances (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_catol,&__pyx_n_s_crtol,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_catol); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_crtol); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConstraintTolerances") < 0)) __PYX_ERR(51, 501, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_catol = values[0]; + __pyx_v_crtol = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConstraintTolerances", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 501, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConstraintTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_98setConstraintTolerances(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_catol, __pyx_v_crtol); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_98setConstraintTolerances(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_catol, PyObject *__pyx_v_crtol) { + PetscReal __pyx_v__catol; + PetscReal __pyx_v__crtol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscReal __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConstraintTolerances", 0); + + /* "petsc4py/PETSc/TAO.pyx":504 + * """ + * """ + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT # <<<<<<<<<<<<<< + * if catol is not None: _catol = asReal(catol) + * if crtol is not None: _crtol = asReal(crtol) + */ + __pyx_v__catol = PETSC_DEFAULT; + __pyx_v__crtol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":505 + * """ + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT + * if catol is not None: _catol = asReal(catol) # <<<<<<<<<<<<<< + * if crtol is not None: _crtol = asReal(crtol) + * CHKERR( TaoSetConstraintTolerances(self.tao, _catol, _crtol) ) + */ + __pyx_t_1 = (__pyx_v_catol != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_catol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 505, __pyx_L1_error) + __pyx_v__catol = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":506 + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT + * if catol is not None: _catol = asReal(catol) + * if crtol is not None: _crtol = asReal(crtol) # <<<<<<<<<<<<<< + * CHKERR( TaoSetConstraintTolerances(self.tao, _catol, _crtol) ) + * + */ + __pyx_t_2 = (__pyx_v_crtol != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_crtol); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 506, __pyx_L1_error) + __pyx_v__crtol = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":507 + * if catol is not None: _catol = asReal(catol) + * if crtol is not None: _crtol = asReal(crtol) + * CHKERR( TaoSetConstraintTolerances(self.tao, _catol, _crtol) ) # <<<<<<<<<<<<<< + * + * def getConstraintTolerances(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConstraintTolerances(__pyx_v_self->tao, __pyx_v__catol, __pyx_v__crtol)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 507, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":501 + * return toInt(_mit) + * + * def setConstraintTolerances(self, catol=None, crtol=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConstraintTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":509 + * CHKERR( TaoSetConstraintTolerances(self.tao, _catol, _crtol) ) + * + * def getConstraintTolerances(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_101getConstraintTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_100getConstraintTolerances[] = "TAO.getConstraintTolerances(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_101getConstraintTolerances(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConstraintTolerances (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConstraintTolerances", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConstraintTolerances", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_100getConstraintTolerances(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_100getConstraintTolerances(struct PyPetscTAOObject *__pyx_v_self) { + PetscReal __pyx_v__catol; + PetscReal __pyx_v__crtol; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConstraintTolerances", 0); + + /* "petsc4py/PETSc/TAO.pyx":512 + * """ + * """ + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT # <<<<<<<<<<<<<< + * CHKERR( TaoGetConstraintTolerances(self.tao, &_catol, &_crtol) ) + * return (toReal(_catol), toReal(_crtol)) + */ + __pyx_v__catol = PETSC_DEFAULT; + __pyx_v__crtol = PETSC_DEFAULT; + + /* "petsc4py/PETSc/TAO.pyx":513 + * """ + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT + * CHKERR( TaoGetConstraintTolerances(self.tao, &_catol, &_crtol) ) # <<<<<<<<<<<<<< + * return (toReal(_catol), toReal(_crtol)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetConstraintTolerances(__pyx_v_self->tao, (&__pyx_v__catol), (&__pyx_v__crtol))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 513, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":514 + * cdef PetscReal _catol=PETSC_DEFAULT, _crtol=PETSC_DEFAULT + * CHKERR( TaoGetConstraintTolerances(self.tao, &_catol, &_crtol) ) + * return (toReal(_catol), toReal(_crtol)) # <<<<<<<<<<<<<< + * + * def setConvergenceTest(self, converged, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v__catol); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v__crtol); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":509 + * CHKERR( TaoSetConstraintTolerances(self.tao, _catol, _crtol) ) + * + * def getConstraintTolerances(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getConstraintTolerances", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":516 + * return (toReal(_catol), toReal(_crtol)) + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_103setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_102setConvergenceTest[] = "TAO.setConvergenceTest(self, converged, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_103setConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_converged = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergenceTest (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_converged,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_converged)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergenceTest") < 0)) __PYX_ERR(51, 516, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_converged = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergenceTest", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 516, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_102setConvergenceTest(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_converged, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_102setConvergenceTest(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_converged, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergenceTest", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":519 + * """ + * """ + * if converged is None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetConvergenceTest(self.tao, TaoDefaultConvergenceTest, NULL) ) + * self.set_attr('__converged__', None) + */ + __pyx_t_1 = (__pyx_v_converged == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":520 + * """ + * if converged is None: + * CHKERR( TaoSetConvergenceTest(self.tao, TaoDefaultConvergenceTest, NULL) ) # <<<<<<<<<<<<<< + * self.set_attr('__converged__', None) + * else: + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConvergenceTest(__pyx_v_self->tao, TaoDefaultConvergenceTest, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 520, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":521 + * if converged is None: + * CHKERR( TaoSetConvergenceTest(self.tao, TaoDefaultConvergenceTest, NULL) ) + * self.set_attr('__converged__', None) # <<<<<<<<<<<<<< + * else: + * if args is None: args = () + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":519 + * """ + * """ + * if converged is None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetConvergenceTest(self.tao, TaoDefaultConvergenceTest, NULL) ) + * self.set_attr('__converged__', None) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":523 + * self.set_attr('__converged__', None) + * else: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * self.set_attr('__converged__', (converged, args, kargs)) + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":524 + * else: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * self.set_attr('__converged__', (converged, args, kargs)) + * CHKERR( TaoSetConvergenceTest(self.tao, TAO_Converged, NULL) ) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 524, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":525 + * if args is None: args = () + * if kargs is None: kargs = {} + * self.set_attr('__converged__', (converged, args, kargs)) # <<<<<<<<<<<<<< + * CHKERR( TaoSetConvergenceTest(self.tao, TAO_Converged, NULL) ) + * + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_converged); + __Pyx_GIVEREF(__pyx_v_converged); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_converged); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_t_5 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__"), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TAO.pyx":526 + * if kargs is None: kargs = {} + * self.set_attr('__converged__', (converged, args, kargs)) + * CHKERR( TaoSetConvergenceTest(self.tao, TAO_Converged, NULL) ) # <<<<<<<<<<<<<< + * + * def getConvergenceTest(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConvergenceTest(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_Converged, NULL)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 526, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TAO.pyx":516 + * return (toReal(_catol), toReal(_crtol)) + * + * def setConvergenceTest(self, converged, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":528 + * CHKERR( TaoSetConvergenceTest(self.tao, TAO_Converged, NULL) ) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_105getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_104getConvergenceTest[] = "TAO.getConvergenceTest(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_105getConvergenceTest(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergenceTest (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergenceTest", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergenceTest", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_104getConvergenceTest(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_104getConvergenceTest(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergenceTest", 0); + + /* "petsc4py/PETSc/TAO.pyx":531 + * """ + * """ + * return self.get_attr('__converged__') # <<<<<<<<<<<<<< + * + * def setConvergedReason(self, reason): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__converged__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 531, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":528 + * CHKERR( TaoSetConvergenceTest(self.tao, TAO_Converged, NULL) ) + * + * def getConvergenceTest(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getConvergenceTest", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":533 + * return self.get_attr('__converged__') + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_107setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_106setConvergedReason[] = "TAO.setConvergedReason(self, reason)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_107setConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_reason = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConvergedReason (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_reason,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reason)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConvergedReason") < 0)) __PYX_ERR(51, 533, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_reason = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConvergedReason", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 533, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_106setConvergedReason(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_reason); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_106setConvergedReason(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_reason) { + TaoConvergedReason __pyx_v_creason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + TaoConvergedReason __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConvergedReason", 0); + + /* "petsc4py/PETSc/TAO.pyx":536 + * """ + * """ + * cdef PetscTAOConvergedReason creason = reason # <<<<<<<<<<<<<< + * CHKERR( TaoSetConvergedReason(self.tao, creason) ) + * + */ + __pyx_t_1 = ((TaoConvergedReason)__Pyx_PyInt_As_TaoConvergedReason(__pyx_v_reason)); if (unlikely(PyErr_Occurred())) __PYX_ERR(51, 536, __pyx_L1_error) + __pyx_v_creason = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":537 + * """ + * cdef PetscTAOConvergedReason creason = reason + * CHKERR( TaoSetConvergedReason(self.tao, creason) ) # <<<<<<<<<<<<<< + * + * def getConvergedReason(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetConvergedReason(__pyx_v_self->tao, __pyx_v_creason)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 537, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":533 + * return self.get_attr('__converged__') + * + * def setConvergedReason(self, reason): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":539 + * CHKERR( TaoSetConvergedReason(self.tao, creason) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_109getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_108getConvergedReason[] = "TAO.getConvergedReason(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_109getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_108getConvergedReason(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_108getConvergedReason(struct PyPetscTAOObject *__pyx_v_self) { + TaoConvergedReason __pyx_v_creason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergedReason", 0); + + /* "petsc4py/PETSc/TAO.pyx":542 + * """ + * """ + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING # <<<<<<<<<<<<<< + * CHKERR( TaoGetConvergedReason(self.tao, &creason) ) + * return creason + */ + __pyx_v_creason = TAO_CONTINUE_ITERATING; + + /* "petsc4py/PETSc/TAO.pyx":543 + * """ + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetConvergedReason(self.tao, &creason) ) # <<<<<<<<<<<<<< + * return creason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetConvergedReason(__pyx_v_self->tao, (&__pyx_v_creason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 543, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":544 + * cdef PetscTAOConvergedReason creason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetConvergedReason(self.tao, &creason) ) + * return creason # <<<<<<<<<<<<<< + * + * def setMonitor(self, monitor, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_TaoConvergedReason(__pyx_v_creason); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":539 + * CHKERR( TaoSetConvergedReason(self.tao, creason) ) + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":546 + * return creason + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_111setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_110setMonitor[] = "TAO.setMonitor(self, monitor, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_111setMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_monitor = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMonitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_monitor,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_monitor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMonitor") < 0)) __PYX_ERR(51, 546, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_monitor = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMonitor", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 546, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_110setMonitor(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_monitor, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_110setMonitor(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_monitor, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_monitorlist = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMonitor", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":549 + * """ + * """ + * if monitor is None: return # <<<<<<<<<<<<<< + * cdef object monitorlist = self.get_attr('__monitor__') + * if args is None: args = () + */ + __pyx_t_1 = (__pyx_v_monitor == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TAO.pyx":550 + * """ + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_monitorlist = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":551 + * if monitor is None: return + * cdef object monitorlist = self.get_attr('__monitor__') + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * if monitorlist is None: + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":552 + * cdef object monitorlist = self.get_attr('__monitor__') + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * if monitorlist is None: + * CHKERR( TaoSetMonitor(self.tao, TAO_Monitor, NULL, NULL) ) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":553 + * if args is None: args = () + * if kargs is None: kargs = {} + * if monitorlist is None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetMonitor(self.tao, TAO_Monitor, NULL, NULL) ) + * self.set_attr('__monitor__', [(monitor, args, kargs)]) + */ + __pyx_t_2 = (__pyx_v_monitorlist == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/TAO.pyx":554 + * if kargs is None: kargs = {} + * if monitorlist is None: + * CHKERR( TaoSetMonitor(self.tao, TAO_Monitor, NULL, NULL) ) # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', [(monitor, args, kargs)]) + * else: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetMonitor(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_Monitor, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 554, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":555 + * if monitorlist is None: + * CHKERR( TaoSetMonitor(self.tao, TAO_Monitor, NULL, NULL) ) + * self.set_attr('__monitor__', [(monitor, args, kargs)]) # <<<<<<<<<<<<<< + * else: + * monitorlist.append((monitor, args, kargs)) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_monitor); + __Pyx_GIVEREF(__pyx_v_monitor); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_monitor); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __pyx_t_3 = 0; + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":553 + * if args is None: args = () + * if kargs is None: kargs = {} + * if monitorlist is None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetMonitor(self.tao, TAO_Monitor, NULL, NULL) ) + * self.set_attr('__monitor__', [(monitor, args, kargs)]) + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/TAO.pyx":557 + * self.set_attr('__monitor__', [(monitor, args, kargs)]) + * else: + * monitorlist.append((monitor, args, kargs)) # <<<<<<<<<<<<<< + * + * def getMonitor(self): + */ + /*else*/ { + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_monitor); + __Pyx_GIVEREF(__pyx_v_monitor); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_monitor); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_t_6 = __Pyx_PyObject_Append(__pyx_v_monitorlist, __pyx_t_3); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(51, 557, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L6:; + + /* "petsc4py/PETSc/TAO.pyx":546 + * return creason + * + * def setMonitor(self, monitor, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_monitorlist); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":559 + * monitorlist.append((monitor, args, kargs)) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_113getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_112getMonitor[] = "TAO.getMonitor(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_113getMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMonitor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMonitor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMonitor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_112getMonitor(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_112getMonitor(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMonitor", 0); + + /* "petsc4py/PETSc/TAO.pyx":562 + * """ + * """ + * return self.get_attr('__monitor__') # <<<<<<<<<<<<<< + * + * def cancelMonitor(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":559 + * monitorlist.append((monitor, args, kargs)) + * + * def getMonitor(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":564 + * return self.get_attr('__monitor__') + * + * def cancelMonitor(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_115cancelMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_114cancelMonitor[] = "TAO.cancelMonitor(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_115cancelMonitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("cancelMonitor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("cancelMonitor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "cancelMonitor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_114cancelMonitor(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_114cancelMonitor(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("cancelMonitor", 0); + + /* "petsc4py/PETSc/TAO.pyx":567 + * """ + * """ + * CHKERR( TaoCancelMonitors(self.tao) ) # <<<<<<<<<<<<<< + * self.set_attr('__monitor__', None) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCancelMonitors(__pyx_v_self->tao)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 567, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":568 + * """ + * CHKERR( TaoCancelMonitors(self.tao) ) + * self.set_attr('__monitor__', None) # <<<<<<<<<<<<<< + * + * # Tao overwrites this statistics. Copy user defined only if present + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__monitor__"), Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/TAO.pyx":564 + * return self.get_attr('__monitor__') + * + * def cancelMonitor(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.cancelMonitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":571 + * + * # Tao overwrites this statistics. Copy user defined only if present + * def monitor(self, its=None, f=None, res=None, cnorm=None, step=None): # <<<<<<<<<<<<<< + * cdef PetscInt cits = 0 + * cdef PetscReal cf = 0.0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_117monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_116monitor[] = "TAO.monitor(self, its=None, f=None, res=None, cnorm=None, step=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_117monitor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_res = 0; + PyObject *__pyx_v_cnorm = 0; + PyObject *__pyx_v_step = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("monitor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,&__pyx_n_s_f,&__pyx_n_s_res,&__pyx_n_s_cnorm,&__pyx_n_s_step,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_res); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cnorm); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_step); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "monitor") < 0)) __PYX_ERR(51, 571, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_its = values[0]; + __pyx_v_f = values[1]; + __pyx_v_res = values[2]; + __pyx_v_cnorm = values[3]; + __pyx_v_step = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("monitor", 0, 0, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 571, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_116monitor(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_its, __pyx_v_f, __pyx_v_res, __pyx_v_cnorm, __pyx_v_step); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_116monitor(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_its, PyObject *__pyx_v_f, PyObject *__pyx_v_res, PyObject *__pyx_v_cnorm, PyObject *__pyx_v_step) { + PetscInt __pyx_v_cits; + PetscReal __pyx_v_cf; + PetscReal __pyx_v_cres; + PetscReal __pyx_v_ccnorm; + PetscReal __pyx_v_cstep; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + PetscReal __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("monitor", 0); + + /* "petsc4py/PETSc/TAO.pyx":572 + * # Tao overwrites this statistics. Copy user defined only if present + * def monitor(self, its=None, f=None, res=None, cnorm=None, step=None): + * cdef PetscInt cits = 0 # <<<<<<<<<<<<<< + * cdef PetscReal cf = 0.0 + * cdef PetscReal cres = 0.0 + */ + __pyx_v_cits = 0; + + /* "petsc4py/PETSc/TAO.pyx":573 + * def monitor(self, its=None, f=None, res=None, cnorm=None, step=None): + * cdef PetscInt cits = 0 + * cdef PetscReal cf = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal cres = 0.0 + * cdef PetscReal ccnorm = 0.0 + */ + __pyx_v_cf = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":574 + * cdef PetscInt cits = 0 + * cdef PetscReal cf = 0.0 + * cdef PetscReal cres = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal ccnorm = 0.0 + * cdef PetscReal cstep = 0.0 + */ + __pyx_v_cres = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":575 + * cdef PetscReal cf = 0.0 + * cdef PetscReal cres = 0.0 + * cdef PetscReal ccnorm = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal cstep = 0.0 + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) + */ + __pyx_v_ccnorm = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":576 + * cdef PetscReal cres = 0.0 + * cdef PetscReal ccnorm = 0.0 + * cdef PetscReal cstep = 0.0 # <<<<<<<<<<<<<< + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) + * if its is not None: + */ + __pyx_v_cstep = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":577 + * cdef PetscReal ccnorm = 0.0 + * cdef PetscReal cstep = 0.0 + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) # <<<<<<<<<<<<<< + * if its is not None: + * cits = asInt(its) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetSolutionStatus(__pyx_v_self->tao, (&__pyx_v_cits), (&__pyx_v_cf), (&__pyx_v_cres), (&__pyx_v_ccnorm), (&__pyx_v_cstep), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 577, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":578 + * cdef PetscReal cstep = 0.0 + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) + * if its is not None: # <<<<<<<<<<<<<< + * cits = asInt(its) + * if f is not None: + */ + __pyx_t_2 = (__pyx_v_its != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/TAO.pyx":579 + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) + * if its is not None: + * cits = asInt(its) # <<<<<<<<<<<<<< + * if f is not None: + * cf = asReal(f) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(51, 579, __pyx_L1_error) + __pyx_v_cits = __pyx_t_4; + + /* "petsc4py/PETSc/TAO.pyx":578 + * cdef PetscReal cstep = 0.0 + * CHKERR( TaoGetSolutionStatus(self.tao, &cits, &cf, &cres, &ccnorm, &cstep, NULL) ) + * if its is not None: # <<<<<<<<<<<<<< + * cits = asInt(its) + * if f is not None: + */ + } + + /* "petsc4py/PETSc/TAO.pyx":580 + * if its is not None: + * cits = asInt(its) + * if f is not None: # <<<<<<<<<<<<<< + * cf = asReal(f) + * if res is not None: + */ + __pyx_t_3 = (__pyx_v_f != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":581 + * cits = asInt(its) + * if f is not None: + * cf = asReal(f) # <<<<<<<<<<<<<< + * if res is not None: + * cres = asReal(res) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_f); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 581, __pyx_L1_error) + __pyx_v_cf = __pyx_t_5; + + /* "petsc4py/PETSc/TAO.pyx":580 + * if its is not None: + * cits = asInt(its) + * if f is not None: # <<<<<<<<<<<<<< + * cf = asReal(f) + * if res is not None: + */ + } + + /* "petsc4py/PETSc/TAO.pyx":582 + * if f is not None: + * cf = asReal(f) + * if res is not None: # <<<<<<<<<<<<<< + * cres = asReal(res) + * if cnorm is not None: + */ + __pyx_t_2 = (__pyx_v_res != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/TAO.pyx":583 + * cf = asReal(f) + * if res is not None: + * cres = asReal(res) # <<<<<<<<<<<<<< + * if cnorm is not None: + * ccnorm = asReal(cnorm) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_res); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 583, __pyx_L1_error) + __pyx_v_cres = __pyx_t_5; + + /* "petsc4py/PETSc/TAO.pyx":582 + * if f is not None: + * cf = asReal(f) + * if res is not None: # <<<<<<<<<<<<<< + * cres = asReal(res) + * if cnorm is not None: + */ + } + + /* "petsc4py/PETSc/TAO.pyx":584 + * if res is not None: + * cres = asReal(res) + * if cnorm is not None: # <<<<<<<<<<<<<< + * ccnorm = asReal(cnorm) + * if step is not None: + */ + __pyx_t_3 = (__pyx_v_cnorm != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":585 + * cres = asReal(res) + * if cnorm is not None: + * ccnorm = asReal(cnorm) # <<<<<<<<<<<<<< + * if step is not None: + * cstep = asReal(step) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_cnorm); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 585, __pyx_L1_error) + __pyx_v_ccnorm = __pyx_t_5; + + /* "petsc4py/PETSc/TAO.pyx":584 + * if res is not None: + * cres = asReal(res) + * if cnorm is not None: # <<<<<<<<<<<<<< + * ccnorm = asReal(cnorm) + * if step is not None: + */ + } + + /* "petsc4py/PETSc/TAO.pyx":586 + * if cnorm is not None: + * ccnorm = asReal(cnorm) + * if step is not None: # <<<<<<<<<<<<<< + * cstep = asReal(step) + * CHKERR( TaoMonitor(self.tao, cits, cf, cres, ccnorm, cstep) ) + */ + __pyx_t_2 = (__pyx_v_step != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/TAO.pyx":587 + * ccnorm = asReal(cnorm) + * if step is not None: + * cstep = asReal(step) # <<<<<<<<<<<<<< + * CHKERR( TaoMonitor(self.tao, cits, cf, cres, ccnorm, cstep) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_step); if (unlikely(__pyx_t_5 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 587, __pyx_L1_error) + __pyx_v_cstep = __pyx_t_5; + + /* "petsc4py/PETSc/TAO.pyx":586 + * if cnorm is not None: + * ccnorm = asReal(cnorm) + * if step is not None: # <<<<<<<<<<<<<< + * cstep = asReal(step) + * CHKERR( TaoMonitor(self.tao, cits, cf, cres, ccnorm, cstep) ) + */ + } + + /* "petsc4py/PETSc/TAO.pyx":588 + * if step is not None: + * cstep = asReal(step) + * CHKERR( TaoMonitor(self.tao, cits, cf, cres, ccnorm, cstep) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoMonitor(__pyx_v_self->tao, __pyx_v_cits, __pyx_v_cf, __pyx_v_cres, __pyx_v_ccnorm, __pyx_v_cstep)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 588, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":571 + * + * # Tao overwrites this statistics. Copy user defined only if present + * def monitor(self, its=None, f=None, res=None, cnorm=None, step=None): # <<<<<<<<<<<<<< + * cdef PetscInt cits = 0 + * cdef PetscReal cf = 0.0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.monitor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":592 + * # + * + * def solve(self, Vec x=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_119solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_118solve[] = "TAO.solve(self, Vec x=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_119solve(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("solve (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "solve") < 0)) __PYX_ERR(51, 592, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_x = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("solve", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 592, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "x", 0))) __PYX_ERR(51, 592, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_118solve(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_118solve(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_x) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("solve", 0); + + /* "petsc4py/PETSc/TAO.pyx":595 + * """ + * """ + * if x is not None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetSolution(self.tao, x.vec) ) + * CHKERR( TaoSolve(self.tao) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_x) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":596 + * """ + * if x is not None: + * CHKERR( TaoSetSolution(self.tao, x.vec) ) # <<<<<<<<<<<<<< + * CHKERR( TaoSolve(self.tao) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetSolution(__pyx_v_self->tao, __pyx_v_x->vec)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 596, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":595 + * """ + * """ + * if x is not None: # <<<<<<<<<<<<<< + * CHKERR( TaoSetSolution(self.tao, x.vec) ) + * CHKERR( TaoSolve(self.tao) ) + */ + } + + /* "petsc4py/PETSc/TAO.pyx":597 + * if x is not None: + * CHKERR( TaoSetSolution(self.tao, x.vec) ) + * CHKERR( TaoSolve(self.tao) ) # <<<<<<<<<<<<<< + * + * def getSolution(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSolve(__pyx_v_self->tao)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 597, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":592 + * # + * + * def solve(self, Vec x=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.solve", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":599 + * CHKERR( TaoSolve(self.tao) ) + * + * def getSolution(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_121getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_120getSolution[] = "TAO.getSolution(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_121getSolution(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolution (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolution", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolution", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_120getSolution(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_120getSolution(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolution", 0); + + /* "petsc4py/PETSc/TAO.pyx":602 + * """ + * """ + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( TaoGetSolution(self.tao, &vec.vec) ) + * PetscINCREF(vec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":603 + * """ + * cdef Vec vec = Vec() + * CHKERR( TaoGetSolution(self.tao, &vec.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vec.obj) + * return vec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetSolution(__pyx_v_self->tao, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 603, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":604 + * cdef Vec vec = Vec() + * CHKERR( TaoGetSolution(self.tao, &vec.vec) ) + * PetscINCREF(vec.obj) # <<<<<<<<<<<<<< + * return vec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vec->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":605 + * CHKERR( TaoGetSolution(self.tao, &vec.vec) ) + * PetscINCREF(vec.obj) + * return vec # <<<<<<<<<<<<<< + * + * def setGradientNorm(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":599 + * CHKERR( TaoSolve(self.tao) ) + * + * def getSolution(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getSolution", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":607 + * return vec + * + * def setGradientNorm(self, Mat mat): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_123setGradientNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_122setGradientNorm[] = "TAO.setGradientNorm(self, Mat mat)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_123setGradientNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGradientNorm (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGradientNorm") < 0)) __PYX_ERR(51, 607, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGradientNorm", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 607, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setGradientNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(51, 607, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_122setGradientNorm(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_122setGradientNorm(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGradientNorm", 0); + + /* "petsc4py/PETSc/TAO.pyx":610 + * """ + * """ + * CHKERR( TaoSetGradientNorm(self.tao, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getGradientNorm(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetGradientNorm(__pyx_v_self->tao, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 610, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":607 + * return vec + * + * def setGradientNorm(self, Mat mat): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setGradientNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":612 + * CHKERR( TaoSetGradientNorm(self.tao, mat.mat) ) + * + * def getGradientNorm(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_125getGradientNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_124getGradientNorm[] = "TAO.getGradientNorm(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_125getGradientNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGradientNorm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGradientNorm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGradientNorm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_124getGradientNorm(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_124getGradientNorm(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGradientNorm", 0); + + /* "petsc4py/PETSc/TAO.pyx":615 + * """ + * """ + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( TaoGetGradientNorm(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":616 + * """ + * cdef Mat mat = Mat() + * CHKERR( TaoGetGradientNorm(self.tao, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetGradientNorm(__pyx_v_self->tao, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 616, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":617 + * cdef Mat mat = Mat() + * CHKERR( TaoGetGradientNorm(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":618 + * CHKERR( TaoGetGradientNorm(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def setLMVMH0(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":612 + * CHKERR( TaoSetGradientNorm(self.tao, mat.mat) ) + * + * def getGradientNorm(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getGradientNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":620 + * return mat + * + * def setLMVMH0(self, Mat mat): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_127setLMVMH0(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_126setLMVMH0[] = "TAO.setLMVMH0(self, Mat mat)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_127setLMVMH0(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLMVMH0 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLMVMH0") < 0)) __PYX_ERR(51, 620, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLMVMH0", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 620, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setLMVMH0", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(51, 620, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_126setLMVMH0(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_126setLMVMH0(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLMVMH0", 0); + + /* "petsc4py/PETSc/TAO.pyx":623 + * """ + * """ + * CHKERR( TaoLMVMSetH0(self.tao, mat.mat) ) # <<<<<<<<<<<<<< + * + * def getLMVMH0(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoLMVMSetH0(__pyx_v_self->tao, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 623, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":620 + * return mat + * + * def setLMVMH0(self, Mat mat): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setLMVMH0", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":625 + * CHKERR( TaoLMVMSetH0(self.tao, mat.mat) ) + * + * def getLMVMH0(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_129getLMVMH0(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_128getLMVMH0[] = "TAO.getLMVMH0(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_129getLMVMH0(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLMVMH0 (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLMVMH0", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLMVMH0", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_128getLMVMH0(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_128getLMVMH0(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLMVMH0", 0); + + /* "petsc4py/PETSc/TAO.pyx":628 + * """ + * """ + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( TaoLMVMGetH0(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":629 + * """ + * cdef Mat mat = Mat() + * CHKERR( TaoLMVMGetH0(self.tao, &mat.mat) ) # <<<<<<<<<<<<<< + * PetscINCREF(mat.obj) + * return mat + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoLMVMGetH0(__pyx_v_self->tao, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 629, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":630 + * cdef Mat mat = Mat() + * CHKERR( TaoLMVMGetH0(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) # <<<<<<<<<<<<<< + * return mat + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_mat->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":631 + * CHKERR( TaoLMVMGetH0(self.tao, &mat.mat) ) + * PetscINCREF(mat.obj) + * return mat # <<<<<<<<<<<<<< + * + * def getLMVMH0KSP(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":625 + * CHKERR( TaoLMVMSetH0(self.tao, mat.mat) ) + * + * def getLMVMH0(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getLMVMH0", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":633 + * return mat + * + * def getLMVMH0KSP(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_131getLMVMH0KSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_130getLMVMH0KSP[] = "TAO.getLMVMH0KSP(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_131getLMVMH0KSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLMVMH0KSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLMVMH0KSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLMVMH0KSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_130getLMVMH0KSP(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_130getLMVMH0KSP(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLMVMH0KSP", 0); + + /* "petsc4py/PETSc/TAO.pyx":636 + * """ + * """ + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( TaoLMVMGetH0KSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":637 + * """ + * cdef KSP ksp = KSP() + * CHKERR( TaoLMVMGetH0KSP(self.tao, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoLMVMGetH0KSP(__pyx_v_self->tao, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 637, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":638 + * cdef KSP ksp = KSP() + * CHKERR( TaoLMVMGetH0KSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":639 + * CHKERR( TaoLMVMGetH0KSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * def getVariableBounds(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":633 + * return mat + * + * def getLMVMH0KSP(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getLMVMH0KSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":641 + * return ksp + * + * def getVariableBounds(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_133getVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_132getVariableBounds[] = "TAO.getVariableBounds(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_133getVariableBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVariableBounds (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVariableBounds", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVariableBounds", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_132getVariableBounds(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_132getVariableBounds(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_xl = 0; + struct PyPetscVecObject *__pyx_v_xu = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVariableBounds", 0); + + /* "petsc4py/PETSc/TAO.pyx":644 + * """ + * """ + * cdef Vec xl = Vec(), xu = Vec() # <<<<<<<<<<<<<< + * CHKERR( TaoGetVariableBounds(self.tao, &xl.vec, &xu.vec) ) + * PetscINCREF(xl.obj); PetscINCREF(xu.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xu = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":645 + * """ + * cdef Vec xl = Vec(), xu = Vec() + * CHKERR( TaoGetVariableBounds(self.tao, &xl.vec, &xu.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(xl.obj); PetscINCREF(xu.obj) + * return (xl, xu) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetVariableBounds(__pyx_v_self->tao, (&__pyx_v_xl->vec), (&__pyx_v_xu->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 645, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":646 + * cdef Vec xl = Vec(), xu = Vec() + * CHKERR( TaoGetVariableBounds(self.tao, &xl.vec, &xu.vec) ) + * PetscINCREF(xl.obj); PetscINCREF(xu.obj) # <<<<<<<<<<<<<< + * return (xl, xu) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_xl->__pyx_base.obj)); + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_xu->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":647 + * CHKERR( TaoGetVariableBounds(self.tao, &xl.vec, &xu.vec) ) + * PetscINCREF(xl.obj); PetscINCREF(xu.obj) + * return (xl, xu) # <<<<<<<<<<<<<< + * + * def setIterationNumber(self, its): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_xl)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_xl)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_xl)); + __Pyx_INCREF(((PyObject *)__pyx_v_xu)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_xu)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_xu)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":641 + * return ksp + * + * def getVariableBounds(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getVariableBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xl); + __Pyx_XDECREF((PyObject *)__pyx_v_xu); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":649 + * return (xl, xu) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_135setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_134setIterationNumber[] = "TAO.setIterationNumber(self, its)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_135setIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_its = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setIterationNumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_its,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_its)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setIterationNumber") < 0)) __PYX_ERR(51, 649, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_its = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setIterationNumber", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 649, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_134setIterationNumber(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_its); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_134setIterationNumber(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_its) { + PetscInt __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setIterationNumber", 0); + + /* "petsc4py/PETSc/TAO.pyx":652 + * """ + * """ + * cdef PetscInt ival = asInt(its) # <<<<<<<<<<<<<< + * CHKERR( TaoSetIterationNumber(self.tao, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_its); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(51, 652, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":653 + * """ + * cdef PetscInt ival = asInt(its) + * CHKERR( TaoSetIterationNumber(self.tao, ival) ) # <<<<<<<<<<<<<< + * + * def getIterationNumber(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetIterationNumber(__pyx_v_self->tao, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 653, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":649 + * return (xl, xu) + * + * def setIterationNumber(self, its): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":655 + * CHKERR( TaoSetIterationNumber(self.tao, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_137getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_136getIterationNumber[] = "TAO.getIterationNumber(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_137getIterationNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIterationNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIterationNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIterationNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_136getIterationNumber(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_136getIterationNumber(struct PyPetscTAOObject *__pyx_v_self) { + PetscInt __pyx_v_its; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIterationNumber", 0); + + /* "petsc4py/PETSc/TAO.pyx":658 + * """ + * """ + * cdef PetscInt its=0 # <<<<<<<<<<<<<< + * CHKERR( TaoGetIterationNumber(self.tao, &its) ) + * return toInt(its) + */ + __pyx_v_its = 0; + + /* "petsc4py/PETSc/TAO.pyx":659 + * """ + * cdef PetscInt its=0 + * CHKERR( TaoGetIterationNumber(self.tao, &its) ) # <<<<<<<<<<<<<< + * return toInt(its) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetIterationNumber(__pyx_v_self->tao, (&__pyx_v_its))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 659, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":660 + * cdef PetscInt its=0 + * CHKERR( TaoGetIterationNumber(self.tao, &its) ) + * return toInt(its) # <<<<<<<<<<<<<< + * + * def getObjectiveValue(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":655 + * CHKERR( TaoSetIterationNumber(self.tao, ival) ) + * + * def getIterationNumber(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getIterationNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":662 + * return toInt(its) + * + * def getObjectiveValue(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_139getObjectiveValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_138getObjectiveValue[] = "TAO.getObjectiveValue(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_139getObjectiveValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getObjectiveValue (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getObjectiveValue", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getObjectiveValue", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_138getObjectiveValue(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_138getObjectiveValue(struct PyPetscTAOObject *__pyx_v_self) { + PetscReal __pyx_v_fval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getObjectiveValue", 0); + + /* "petsc4py/PETSc/TAO.pyx":665 + * """ + * """ + * cdef PetscReal fval=0 # <<<<<<<<<<<<<< + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, NULL, NULL, NULL, NULL) ) + * return toReal(fval) + */ + __pyx_v_fval = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":666 + * """ + * cdef PetscReal fval=0 + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, NULL, NULL, NULL, NULL) ) # <<<<<<<<<<<<<< + * return toReal(fval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetSolutionStatus(__pyx_v_self->tao, NULL, (&__pyx_v_fval), NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 666, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":667 + * cdef PetscReal fval=0 + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, NULL, NULL, NULL, NULL) ) + * return toReal(fval) # <<<<<<<<<<<<<< + * + * getFunctionValue = getObjectiveValue + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_fval); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":662 + * return toInt(its) + * + * def getObjectiveValue(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getObjectiveValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":671 + * getFunctionValue = getObjectiveValue + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_141getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_140getConvergedReason[] = "TAO.getConvergedReason(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_141getConvergedReason(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConvergedReason (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getConvergedReason", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getConvergedReason", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_140getConvergedReason(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_140getConvergedReason(struct PyPetscTAOObject *__pyx_v_self) { + TaoConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConvergedReason", 0); + + /* "petsc4py/PETSc/TAO.pyx":674 + * """ + * """ + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING # <<<<<<<<<<<<<< + * CHKERR( TaoGetConvergedReason(self.tao, &reason) ) + * return reason + */ + __pyx_v_reason = TAO_CONTINUE_ITERATING; + + /* "petsc4py/PETSc/TAO.pyx":675 + * """ + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetConvergedReason(self.tao, &reason) ) # <<<<<<<<<<<<<< + * return reason + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetConvergedReason(__pyx_v_self->tao, (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 675, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":676 + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetConvergedReason(self.tao, &reason) ) + * return reason # <<<<<<<<<<<<<< + * + * def getSolutionNorm(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_TaoConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":671 + * getFunctionValue = getObjectiveValue + * + * def getConvergedReason(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getConvergedReason", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":678 + * return reason + * + * def getSolutionNorm(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_143getSolutionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_142getSolutionNorm[] = "TAO.getSolutionNorm(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_143getSolutionNorm(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolutionNorm (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolutionNorm", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolutionNorm", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_142getSolutionNorm(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_142getSolutionNorm(struct PyPetscTAOObject *__pyx_v_self) { + PetscReal __pyx_v_gnorm; + PetscReal __pyx_v_cnorm; + PetscReal __pyx_v_fval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolutionNorm", 0); + + /* "petsc4py/PETSc/TAO.pyx":681 + * """ + * """ + * cdef PetscReal gnorm=0 # <<<<<<<<<<<<<< + * cdef PetscReal cnorm=0 + * cdef PetscReal fval=0 + */ + __pyx_v_gnorm = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":682 + * """ + * cdef PetscReal gnorm=0 + * cdef PetscReal cnorm=0 # <<<<<<<<<<<<<< + * cdef PetscReal fval=0 + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, &gnorm, &cnorm, NULL, NULL) ) + */ + __pyx_v_cnorm = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":683 + * cdef PetscReal gnorm=0 + * cdef PetscReal cnorm=0 + * cdef PetscReal fval=0 # <<<<<<<<<<<<<< + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, &gnorm, &cnorm, NULL, NULL) ) + * return (toReal(fval), toReal(gnorm), toReal(cnorm)) + */ + __pyx_v_fval = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":684 + * cdef PetscReal cnorm=0 + * cdef PetscReal fval=0 + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, &gnorm, &cnorm, NULL, NULL) ) # <<<<<<<<<<<<<< + * return (toReal(fval), toReal(gnorm), toReal(cnorm)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetSolutionStatus(__pyx_v_self->tao, NULL, (&__pyx_v_fval), (&__pyx_v_gnorm), (&__pyx_v_cnorm), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 684, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":685 + * cdef PetscReal fval=0 + * CHKERR( TaoGetSolutionStatus(self.tao, NULL, &fval, &gnorm, &cnorm, NULL, NULL) ) + * return (toReal(fval), toReal(gnorm), toReal(cnorm)) # <<<<<<<<<<<<<< + * + * def getSolutionStatus(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_fval); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_gnorm); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_cnorm); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":678 + * return reason + * + * def getSolutionNorm(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getSolutionNorm", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":687 + * return (toReal(fval), toReal(gnorm), toReal(cnorm)) + * + * def getSolutionStatus(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_145getSolutionStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_144getSolutionStatus[] = "TAO.getSolutionStatus(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_145getSolutionStatus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSolutionStatus (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSolutionStatus", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSolutionStatus", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_144getSolutionStatus(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_144getSolutionStatus(struct PyPetscTAOObject *__pyx_v_self) { + PetscInt __pyx_v_its; + PetscReal __pyx_v_fval; + PetscReal __pyx_v_gnorm; + PetscReal __pyx_v_cnorm; + PetscReal __pyx_v_xdiff; + TaoConvergedReason __pyx_v_reason; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSolutionStatus", 0); + + /* "petsc4py/PETSc/TAO.pyx":690 + * """ + * """ + * cdef PetscInt its=0 # <<<<<<<<<<<<<< + * cdef PetscReal fval=0, gnorm=0, cnorm=0, xdiff=0 + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING + */ + __pyx_v_its = 0; + + /* "petsc4py/PETSc/TAO.pyx":691 + * """ + * cdef PetscInt its=0 + * cdef PetscReal fval=0, gnorm=0, cnorm=0, xdiff=0 # <<<<<<<<<<<<<< + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetSolutionStatus(self.tao, &its, + */ + __pyx_v_fval = 0.0; + __pyx_v_gnorm = 0.0; + __pyx_v_cnorm = 0.0; + __pyx_v_xdiff = 0.0; + + /* "petsc4py/PETSc/TAO.pyx":692 + * cdef PetscInt its=0 + * cdef PetscReal fval=0, gnorm=0, cnorm=0, xdiff=0 + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING # <<<<<<<<<<<<<< + * CHKERR( TaoGetSolutionStatus(self.tao, &its, + * &fval, &gnorm, &cnorm, &xdiff, + */ + __pyx_v_reason = TAO_CONTINUE_ITERATING; + + /* "petsc4py/PETSc/TAO.pyx":693 + * cdef PetscReal fval=0, gnorm=0, cnorm=0, xdiff=0 + * cdef PetscTAOConvergedReason reason = TAO_CONTINUE_ITERATING + * CHKERR( TaoGetSolutionStatus(self.tao, &its, # <<<<<<<<<<<<<< + * &fval, &gnorm, &cnorm, &xdiff, + * &reason) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetSolutionStatus(__pyx_v_self->tao, (&__pyx_v_its), (&__pyx_v_fval), (&__pyx_v_gnorm), (&__pyx_v_cnorm), (&__pyx_v_xdiff), (&__pyx_v_reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 693, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":696 + * &fval, &gnorm, &cnorm, &xdiff, + * &reason) ) + * return (toInt(its), toReal(fval), # <<<<<<<<<<<<<< + * toReal(gnorm), toReal(cnorm), + * toReal(xdiff), reason) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_its); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_fval); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/TAO.pyx":697 + * &reason) ) + * return (toInt(its), toReal(fval), + * toReal(gnorm), toReal(cnorm), # <<<<<<<<<<<<<< + * toReal(xdiff), reason) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_gnorm); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_cnorm); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 697, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/TAO.pyx":698 + * return (toInt(its), toReal(fval), + * toReal(gnorm), toReal(cnorm), + * toReal(xdiff), reason) # <<<<<<<<<<<<<< + * + * def getKSP(self): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_xdiff); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyInt_From_TaoConvergedReason(__pyx_v_reason); if (unlikely(!__pyx_t_7)) __PYX_ERR(51, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "petsc4py/PETSc/TAO.pyx":696 + * &fval, &gnorm, &cnorm, &xdiff, + * &reason) ) + * return (toInt(its), toReal(fval), # <<<<<<<<<<<<<< + * toReal(gnorm), toReal(cnorm), + * toReal(xdiff), reason) + */ + __pyx_t_8 = PyTuple_New(6); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 5, __pyx_t_7); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_r = __pyx_t_8; + __pyx_t_8 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":687 + * return (toReal(fval), toReal(gnorm), toReal(cnorm)) + * + * def getSolutionStatus(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getSolutionStatus", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":700 + * toReal(xdiff), reason) + * + * def getKSP(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_147getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_146getKSP[] = "TAO.getKSP(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_147getKSP(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getKSP (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getKSP", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getKSP", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_146getKSP(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_146getKSP(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscKSPObject *__pyx_v_ksp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getKSP", 0); + + /* "petsc4py/PETSc/TAO.pyx":703 + * """ + * """ + * cdef KSP ksp = KSP() # <<<<<<<<<<<<<< + * CHKERR( TaoGetKSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ksp = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":704 + * """ + * cdef KSP ksp = KSP() + * CHKERR( TaoGetKSP(self.tao, &ksp.ksp) ) # <<<<<<<<<<<<<< + * PetscINCREF(ksp.obj) + * return ksp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetKSP(__pyx_v_self->tao, (&__pyx_v_ksp->ksp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 704, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":705 + * cdef KSP ksp = KSP() + * CHKERR( TaoGetKSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) # <<<<<<<<<<<<<< + * return ksp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ksp->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":706 + * CHKERR( TaoGetKSP(self.tao, &ksp.ksp) ) + * PetscINCREF(ksp.obj) + * return ksp # <<<<<<<<<<<<<< + * + * # BRGN routines + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ksp)); + __pyx_r = ((PyObject *)__pyx_v_ksp); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":700 + * toReal(xdiff), reason) + * + * def getKSP(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ksp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":710 + * # BRGN routines + * + * def getBRGNSubsolver(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_149getBRGNSubsolver(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_148getBRGNSubsolver[] = "TAO.getBRGNSubsolver(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_149getBRGNSubsolver(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBRGNSubsolver (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBRGNSubsolver", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBRGNSubsolver", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_148getBRGNSubsolver(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_148getBRGNSubsolver(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscTAOObject *__pyx_v_subsolver = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBRGNSubsolver", 0); + + /* "petsc4py/PETSc/TAO.pyx":713 + * """ + * """ + * cdef TAO subsolver = TAO() # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNGetSubsolver(self.tao, &subsolver.tao) ) + * PetscINCREF(subsolver.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_subsolver = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":714 + * """ + * cdef TAO subsolver = TAO() + * CHKERR( TaoBRGNGetSubsolver(self.tao, &subsolver.tao) ) # <<<<<<<<<<<<<< + * PetscINCREF(subsolver.obj) + * return subsolver + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNGetSubsolver(__pyx_v_self->tao, (&__pyx_v_subsolver->tao))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 714, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":715 + * cdef TAO subsolver = TAO() + * CHKERR( TaoBRGNGetSubsolver(self.tao, &subsolver.tao) ) + * PetscINCREF(subsolver.obj) # <<<<<<<<<<<<<< + * return subsolver + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_subsolver->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":716 + * CHKERR( TaoBRGNGetSubsolver(self.tao, &subsolver.tao) ) + * PetscINCREF(subsolver.obj) + * return subsolver # <<<<<<<<<<<<<< + * + * def setBRGNRegularizerObjectiveGradient(self, objgrad, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_subsolver)); + __pyx_r = ((PyObject *)__pyx_v_subsolver); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":710 + * # BRGN routines + * + * def getBRGNSubsolver(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getBRGNSubsolver", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_subsolver); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":718 + * return subsolver + * + * def setBRGNRegularizerObjectiveGradient(self, objgrad, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_151setBRGNRegularizerObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_150setBRGNRegularizerObjectiveGradient[] = "TAO.setBRGNRegularizerObjectiveGradient(self, objgrad, args=None, kargs=None)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_151setBRGNRegularizerObjectiveGradient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_objgrad = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBRGNRegularizerObjectiveGradient (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_objgrad,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_objgrad)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBRGNRegularizerObjectiveGradient") < 0)) __PYX_ERR(51, 718, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_objgrad = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBRGNRegularizerObjectiveGradient", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 718, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_150setBRGNRegularizerObjectiveGradient(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_objgrad, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_150setBRGNRegularizerObjectiveGradient(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_objgrad, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBRGNRegularizerObjectiveGradient", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":721 + * """ + * """ + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":722 + * """ + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (objgrad, args, kargs) + * self.set_attr("__brgnregobjgrad__", context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":723 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__brgnregobjgrad__", context) + * CHKERR( TaoBRGNSetRegularizerObjectiveAndGradientRoutine(self.tao, TAO_BRGNRegObjGrad, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_objgrad); + __Pyx_GIVEREF(__pyx_v_objgrad); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_objgrad); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":724 + * if kargs is None: kargs = {} + * context = (objgrad, args, kargs) + * self.set_attr("__brgnregobjgrad__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNSetRegularizerObjectiveAndGradientRoutine(self.tao, TAO_BRGNRegObjGrad, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__brgnregobjgrad__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(51, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/TAO.pyx":725 + * context = (objgrad, args, kargs) + * self.set_attr("__brgnregobjgrad__", context) + * CHKERR( TaoBRGNSetRegularizerObjectiveAndGradientRoutine(self.tao, TAO_BRGNRegObjGrad, context) ) # <<<<<<<<<<<<<< + * + * def setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNSetRegularizerObjectiveAndGradientRoutine(__pyx_v_self->tao, __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegObjGrad, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 725, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":718 + * return subsolver + * + * def setBRGNRegularizerObjectiveGradient(self, objgrad, args=None, kargs=None): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerObjectiveGradient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":727 + * CHKERR( TaoBRGNSetRegularizerObjectiveAndGradientRoutine(self.tao, TAO_BRGNRegObjGrad, context) ) + * + * def setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_153setBRGNRegularizerHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_152setBRGNRegularizerHessian[] = "TAO.setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_153setBRGNRegularizerHessian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_hessian = 0; + struct PyPetscMatObject *__pyx_v_H = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBRGNRegularizerHessian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hessian,&__pyx_n_s_H,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = (PyObject *)((struct PyPetscMatObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hessian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBRGNRegularizerHessian") < 0)) __PYX_ERR(51, 727, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_hessian = values[0]; + __pyx_v_H = ((struct PyPetscMatObject *)values[1]); + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBRGNRegularizerHessian", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 727, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_H), __pyx_ptype_8petsc4py_5PETSc_Mat, 1, "H", 0))) __PYX_ERR(51, 727, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_152setBRGNRegularizerHessian(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_hessian, __pyx_v_H, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_152setBRGNRegularizerHessian(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_hessian, struct PyPetscMatObject *__pyx_v_H, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + Mat __pyx_v_Hmat; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Mat __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBRGNRegularizerHessian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/TAO.pyx":728 + * + * def setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None): + * cdef PetscMat Hmat = NULL # <<<<<<<<<<<<<< + * if H is not None: Hmat = H.mat + * if args is None: args = () + */ + __pyx_v_Hmat = NULL; + + /* "petsc4py/PETSc/TAO.pyx":729 + * def setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None): + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (((PyObject *)__pyx_v_H) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_H->mat; + __pyx_v_Hmat = __pyx_t_3; + } + + /* "petsc4py/PETSc/TAO.pyx":730 + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/TAO.pyx":731 + * if H is not None: Hmat = H.mat + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (hessian, args, kargs) + * self.set_attr("__brgnreghessian__", context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/TAO.pyx":732 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr("__brgnreghessian__", context) + * CHKERR( TaoBRGNSetRegularizerHessianRoutine(self.tao, Hmat, TAO_BRGNRegHessian, context) ) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_hessian); + __Pyx_GIVEREF(__pyx_v_hessian); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_hessian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":733 + * if kargs is None: kargs = {} + * context = (hessian, args, kargs) + * self.set_attr("__brgnreghessian__", context) # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNSetRegularizerHessianRoutine(self.tao, Hmat, TAO_BRGNRegHessian, context) ) + * + */ + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__brgnreghessian__"), __pyx_v_context); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":734 + * context = (hessian, args, kargs) + * self.set_attr("__brgnreghessian__", context) + * CHKERR( TaoBRGNSetRegularizerHessianRoutine(self.tao, Hmat, TAO_BRGNRegHessian, context) ) # <<<<<<<<<<<<<< + * + * def setBRGNRegularizerWeight(self, weight): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNSetRegularizerHessianRoutine(__pyx_v_self->tao, __pyx_v_Hmat, __pyx_f_8petsc4py_5PETSc_TAO_BRGNRegHessian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 734, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":727 + * CHKERR( TaoBRGNSetRegularizerObjectiveAndGradientRoutine(self.tao, TAO_BRGNRegObjGrad, context) ) + * + * def setBRGNRegularizerHessian(self, hessian, Mat H=None, args=None, kargs=None): # <<<<<<<<<<<<<< + * cdef PetscMat Hmat = NULL + * if H is not None: Hmat = H.mat + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerHessian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":736 + * CHKERR( TaoBRGNSetRegularizerHessianRoutine(self.tao, Hmat, TAO_BRGNRegHessian, context) ) + * + * def setBRGNRegularizerWeight(self, weight): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_155setBRGNRegularizerWeight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_154setBRGNRegularizerWeight[] = "TAO.setBRGNRegularizerWeight(self, weight)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_155setBRGNRegularizerWeight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_weight = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBRGNRegularizerWeight (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_weight,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_weight)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBRGNRegularizerWeight") < 0)) __PYX_ERR(51, 736, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_weight = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBRGNRegularizerWeight", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 736, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerWeight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_154setBRGNRegularizerWeight(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_weight); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_154setBRGNRegularizerWeight(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_weight) { + PetscReal __pyx_v_cweight; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBRGNRegularizerWeight", 0); + + /* "petsc4py/PETSc/TAO.pyx":739 + * """ + * """ + * cdef PetscReal cweight = asReal(weight) # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNSetRegularizerWeight(self.tao, cweight) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_weight); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 739, __pyx_L1_error) + __pyx_v_cweight = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":740 + * """ + * cdef PetscReal cweight = asReal(weight) + * CHKERR( TaoBRGNSetRegularizerWeight(self.tao, cweight) ) # <<<<<<<<<<<<<< + * + * def setBRGNSmoothL1Epsilon(self, epsilon): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNSetRegularizerWeight(__pyx_v_self->tao, __pyx_v_cweight)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 740, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":736 + * CHKERR( TaoBRGNSetRegularizerHessianRoutine(self.tao, Hmat, TAO_BRGNRegHessian, context) ) + * + * def setBRGNRegularizerWeight(self, weight): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNRegularizerWeight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":742 + * CHKERR( TaoBRGNSetRegularizerWeight(self.tao, cweight) ) + * + * def setBRGNSmoothL1Epsilon(self, epsilon): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_157setBRGNSmoothL1Epsilon(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_156setBRGNSmoothL1Epsilon[] = "TAO.setBRGNSmoothL1Epsilon(self, epsilon)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_157setBRGNSmoothL1Epsilon(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_epsilon = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBRGNSmoothL1Epsilon (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_epsilon,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_epsilon)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBRGNSmoothL1Epsilon") < 0)) __PYX_ERR(51, 742, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_epsilon = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBRGNSmoothL1Epsilon", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 742, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNSmoothL1Epsilon", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_156setBRGNSmoothL1Epsilon(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_epsilon); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_156setBRGNSmoothL1Epsilon(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_epsilon) { + PetscReal __pyx_v_ceps; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBRGNSmoothL1Epsilon", 0); + + /* "petsc4py/PETSc/TAO.pyx":745 + * """ + * """ + * cdef PetscReal ceps = asReal(epsilon) # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNSetL1SmoothEpsilon(self.tao, ceps) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_epsilon); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(51, 745, __pyx_L1_error) + __pyx_v_ceps = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":746 + * """ + * cdef PetscReal ceps = asReal(epsilon) + * CHKERR( TaoBRGNSetL1SmoothEpsilon(self.tao, ceps) ) # <<<<<<<<<<<<<< + * + * def setBRGNDictionaryMatrix(self, Mat D): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNSetL1SmoothEpsilon(__pyx_v_self->tao, __pyx_v_ceps)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 746, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":742 + * CHKERR( TaoBRGNSetRegularizerWeight(self.tao, cweight) ) + * + * def setBRGNSmoothL1Epsilon(self, epsilon): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNSmoothL1Epsilon", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":748 + * CHKERR( TaoBRGNSetL1SmoothEpsilon(self.tao, ceps) ) + * + * def setBRGNDictionaryMatrix(self, Mat D): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_159setBRGNDictionaryMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_158setBRGNDictionaryMatrix[] = "TAO.setBRGNDictionaryMatrix(self, Mat D)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_159setBRGNDictionaryMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_D = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBRGNDictionaryMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_D,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBRGNDictionaryMatrix") < 0)) __PYX_ERR(51, 748, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_D = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBRGNDictionaryMatrix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 748, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNDictionaryMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_D), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "D", 0))) __PYX_ERR(51, 748, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_158setBRGNDictionaryMatrix(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_D); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_158setBRGNDictionaryMatrix(struct PyPetscTAOObject *__pyx_v_self, struct PyPetscMatObject *__pyx_v_D) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBRGNDictionaryMatrix", 0); + + /* "petsc4py/PETSc/TAO.pyx":751 + * """ + * """ + * CHKERR( TaoBRGNSetDictionaryMatrix(self.tao, D.mat) ) # <<<<<<<<<<<<<< + * + * def getBRGNDampingVector(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNSetDictionaryMatrix(__pyx_v_self->tao, __pyx_v_D->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 751, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":748 + * CHKERR( TaoBRGNSetL1SmoothEpsilon(self.tao, ceps) ) + * + * def setBRGNDictionaryMatrix(self, Mat D): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setBRGNDictionaryMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":753 + * CHKERR( TaoBRGNSetDictionaryMatrix(self.tao, D.mat) ) + * + * def getBRGNDampingVector(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_161getBRGNDampingVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_160getBRGNDampingVector[] = "TAO.getBRGNDampingVector(self)\n\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_161getBRGNDampingVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBRGNDampingVector (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBRGNDampingVector", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBRGNDampingVector", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_160getBRGNDampingVector(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_160getBRGNDampingVector(struct PyPetscTAOObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_damp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBRGNDampingVector", 0); + + /* "petsc4py/PETSc/TAO.pyx":756 + * """ + * """ + * cdef Vec damp = Vec() # <<<<<<<<<<<<<< + * CHKERR( TaoBRGNGetDampingVector(self.tao, &damp.vec) ) + * PetscINCREF(damp.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_damp = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":757 + * """ + * cdef Vec damp = Vec() + * CHKERR( TaoBRGNGetDampingVector(self.tao, &damp.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(damp.obj) + * return damp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoBRGNGetDampingVector(__pyx_v_self->tao, (&__pyx_v_damp->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 757, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":758 + * cdef Vec damp = Vec() + * CHKERR( TaoBRGNGetDampingVector(self.tao, &damp.vec) ) + * PetscINCREF(damp.obj) # <<<<<<<<<<<<<< + * return damp + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_damp->__pyx_base.obj)); + + /* "petsc4py/PETSc/TAO.pyx":759 + * CHKERR( TaoBRGNGetDampingVector(self.tao, &damp.vec) ) + * PetscINCREF(damp.obj) + * return damp # <<<<<<<<<<<<<< + * + * def createPython(self, context=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_damp)); + __pyx_r = ((PyObject *)__pyx_v_damp); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":753 + * CHKERR( TaoBRGNSetDictionaryMatrix(self.tao, D.mat) ) + * + * def getBRGNDampingVector(self): # <<<<<<<<<<<<<< + * """ + * """ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getBRGNDampingVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_damp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":761 + * return damp + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO tao = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_163createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_162createPython[] = "TAO.createPython(self, context=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_163createPython(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPython (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createPython") < 0)) __PYX_ERR(51, 761, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_context = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createPython", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 761, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_162createPython(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_context, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_162createPython(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_context, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + Tao __pyx_v_tao; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPython", 0); + + /* "petsc4py/PETSc/TAO.pyx":762 + * + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscTAO tao = NULL + * CHKERR( TaoCreate(ccomm, &tao) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(51, 762, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/TAO.pyx":763 + * def createPython(self, context=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO tao = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoCreate(ccomm, &tao) ) + * PetscCLEAR(self.obj); self.tao = tao + */ + __pyx_v_tao = NULL; + + /* "petsc4py/PETSc/TAO.pyx":764 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO tao = NULL + * CHKERR( TaoCreate(ccomm, &tao) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.tao = tao + * CHKERR( TaoSetType(self.tao, TAOPYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCreate(__pyx_v_ccomm, (&__pyx_v_tao))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 764, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":765 + * cdef PetscTAO tao = NULL + * CHKERR( TaoCreate(ccomm, &tao) ) + * PetscCLEAR(self.obj); self.tao = tao # <<<<<<<<<<<<<< + * CHKERR( TaoSetType(self.tao, TAOPYTHON) ) + * CHKERR( TaoPythonSetContext(self.tao, context) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->tao = __pyx_v_tao; + + /* "petsc4py/PETSc/TAO.pyx":766 + * CHKERR( TaoCreate(ccomm, &tao) ) + * PetscCLEAR(self.obj); self.tao = tao + * CHKERR( TaoSetType(self.tao, TAOPYTHON) ) # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoSetType(__pyx_v_self->tao, TAOPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 766, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":767 + * PetscCLEAR(self.obj); self.tao = tao + * CHKERR( TaoSetType(self.tao, TAOPYTHON) ) + * CHKERR( TaoPythonSetContext(self.tao, context) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = TaoPythonSetContext(__pyx_v_self->tao, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 767, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 767, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":768 + * CHKERR( TaoSetType(self.tao, TAOPYTHON) ) + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * return self # <<<<<<<<<<<<<< + * + * def setPythonContext(self, context): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":761 + * return damp + * + * def createPython(self, context=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscTAO tao = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.createPython", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":770 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_165setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_164setPythonContext[] = "TAO.setPythonContext(self, context)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_165setPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_context = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonContext (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_context,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_context)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonContext") < 0)) __PYX_ERR(51, 770, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_context = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonContext", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 770, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_164setPythonContext(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_context); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_164setPythonContext(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_context) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonContext", 0); + + /* "petsc4py/PETSc/TAO.pyx":771 + * + * def setPythonContext(self, context): + * CHKERR( TaoPythonSetContext(self.tao, context) ) # <<<<<<<<<<<<<< + * + * def getPythonContext(self): + */ + __pyx_t_1 = TaoPythonSetContext(__pyx_v_self->tao, ((void *)__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 771, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 771, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":770 + * return self + * + * def setPythonContext(self, context): # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":773 + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( TaoPythonGetContext(self.tao, &context) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_167getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_166getPythonContext[] = "TAO.getPythonContext(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_167getPythonContext(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonContext (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonContext", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonContext", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_166getPythonContext(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_166getPythonContext(struct PyPetscTAOObject *__pyx_v_self) { + void *__pyx_v_context; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonContext", 0); + + /* "petsc4py/PETSc/TAO.pyx":774 + * + * def getPythonContext(self): + * cdef void *context = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoPythonGetContext(self.tao, &context) ) + * if context == NULL: return None + */ + __pyx_v_context = NULL; + + /* "petsc4py/PETSc/TAO.pyx":775 + * def getPythonContext(self): + * cdef void *context = NULL + * CHKERR( TaoPythonGetContext(self.tao, &context) ) # <<<<<<<<<<<<<< + * if context == NULL: return None + * else: return context + */ + __pyx_t_1 = TaoPythonGetContext(__pyx_v_self->tao, (&__pyx_v_context)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 775, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 775, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":776 + * cdef void *context = NULL + * CHKERR( TaoPythonGetContext(self.tao, &context) ) + * if context == NULL: return None # <<<<<<<<<<<<<< + * else: return context + * + */ + __pyx_t_3 = ((__pyx_v_context == NULL) != 0); + if (__pyx_t_3) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TAO.pyx":777 + * CHKERR( TaoPythonGetContext(self.tao, &context) ) + * if context == NULL: return None + * else: return context # <<<<<<<<<<<<<< + * + * def setPythonType(self, py_type): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_context)); + __pyx_r = ((PyObject *)__pyx_v_context); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/TAO.pyx":773 + * CHKERR( TaoPythonSetContext(self.tao, context) ) + * + * def getPythonContext(self): # <<<<<<<<<<<<<< + * cdef void *context = NULL + * CHKERR( TaoPythonGetContext(self.tao, &context) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getPythonContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":779 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_169setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_168setPythonType[] = "TAO.setPythonType(self, py_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_169setPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_py_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPythonType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_py_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_py_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPythonType") < 0)) __PYX_ERR(51, 779, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_py_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPythonType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(51, 779, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_168setPythonType(((struct PyPetscTAOObject *)__pyx_v_self), __pyx_v_py_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_168setPythonType(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_py_type) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPythonType", 0); + __Pyx_INCREF(__pyx_v_py_type); + + /* "petsc4py/PETSc/TAO.pyx":780 + * + * def setPythonType(self, py_type): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * py_type = str2bytes(py_type, &cval) + * CHKERR( TaoPythonSetType(self.tao, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TAO.pyx":781 + * def setPythonType(self, py_type): + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetType(self.tao, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_py_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_py_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":782 + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + * CHKERR( TaoPythonSetType(self.tao, cval) ) # <<<<<<<<<<<<<< + * + * def getPythonType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoPythonSetType(__pyx_v_self->tao, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 782, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":779 + * else: return context + * + * def setPythonType(self, py_type): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * py_type = str2bytes(py_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.setPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_py_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":784 + * CHKERR( TaoPythonSetType(self.tao, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TaoPythonGetType(self.tao, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_171getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_3TAO_170getPythonType[] = "TAO.getPythonType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_171getPythonType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPythonType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPythonType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPythonType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_170getPythonType(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_170getPythonType(struct PyPetscTAOObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPythonType", 0); + + /* "petsc4py/PETSc/TAO.pyx":785 + * + * def getPythonType(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoPythonGetType(self.tao, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/TAO.pyx":786 + * def getPythonType(self): + * cdef const char *cval = NULL + * CHKERR( TaoPythonGetType(self.tao, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoPythonGetType(__pyx_v_self->tao, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(51, 786, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":787 + * cdef const char *cval = NULL + * CHKERR( TaoPythonGetType(self.tao, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # --- backward compatibility --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":784 + * CHKERR( TaoPythonSetType(self.tao, cval) ) + * + * def getPythonType(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( TaoPythonGetType(self.tao, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.getPythonType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":796 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_6appctx___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6appctx___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":797 + * property appctx: + * def __get__(self): + * return self.getAppCtx() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setAppCtx(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":796 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.appctx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":798 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_6appctx_2__set__(((struct PyPetscTAOObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3TAO_6appctx_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TAO.pyx":799 + * return self.getAppCtx() + * def __set__(self, value): + * self.setAppCtx(value) # <<<<<<<<<<<<<< + * + * # --- linear solver --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/TAO.pyx":798 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.appctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":804 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3ksp_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3ksp_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_3ksp___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_3ksp___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":805 + * property ksp: + * def __get__(self): + * return self.getKSP() # <<<<<<<<<<<<<< + * + * # --- tolerances --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getKSP); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":804 + * + * property ksp: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getKSP() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.ksp.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":810 + * + * property ftol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionTolerances() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4ftol___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4ftol___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":811 + * property ftol: + * def __get__(self): + * return self.getFunctionTolerances() # <<<<<<<<<<<<<< + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getFunctionTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":810 + * + * property ftol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionTolerances() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.ftol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":812 + * def __get__(self): + * return self.getFunctionTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.setFunctionTolerances(*value) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4ftol_2__set__(((struct PyPetscTAOObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4ftol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TAO.pyx":813 + * return self.getFunctionTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.setFunctionTolerances(*value) + * elif isinstance(value, dict): + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = PyList_Check(__pyx_v_value); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":814 + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + * self.setFunctionTolerances(*value) # <<<<<<<<<<<<<< + * elif isinstance(value, dict): + * self.setFunctionTolerances(**value) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setFunctionTolerances); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TAO.pyx":813 + * return self.getFunctionTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.setFunctionTolerances(*value) + * elif isinstance(value, dict): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":815 + * if isinstance(value, (tuple, list)): + * self.setFunctionTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.setFunctionTolerances(**value) + * else: + */ + __pyx_t_2 = PyDict_Check(__pyx_v_value); + __pyx_t_1 = (__pyx_t_2 != 0); + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/TAO.pyx":816 + * self.setFunctionTolerances(*value) + * elif isinstance(value, dict): + * self.setFunctionTolerances(**value) # <<<<<<<<<<<<<< + * else: + * raise TypeError("expecting tuple/list or dict") + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setFunctionTolerances); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__pyx_v_value == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(51, 816, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_value))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_value, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":815 + * if isinstance(value, (tuple, list)): + * self.setFunctionTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.setFunctionTolerances(**value) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":818 + * self.setFunctionTolerances(**value) + * else: + * raise TypeError("expecting tuple/list or dict") # <<<<<<<<<<<<<< + * + * property gtol: + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(51, 818, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TAO.pyx":812 + * def __get__(self): + * return self.getFunctionTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.setFunctionTolerances(*value) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.ftol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":821 + * + * property gtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGradientTolerances() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4gtol___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4gtol___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":822 + * property gtol: + * def __get__(self): + * return self.getGradientTolerances() # <<<<<<<<<<<<<< + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGradientTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 822, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":821 + * + * property gtol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGradientTolerances() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.gtol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":823 + * def __get__(self): + * return self.getGradientTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.getGradientTolerances(*value) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4gtol_2__set__(((struct PyPetscTAOObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4gtol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TAO.pyx":824 + * return self.getGradientTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.getGradientTolerances(*value) + * elif isinstance(value, dict): + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = PyList_Check(__pyx_v_value); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":825 + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + * self.getGradientTolerances(*value) # <<<<<<<<<<<<<< + * elif isinstance(value, dict): + * self.getGradientTolerances(**value) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGradientTolerances); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TAO.pyx":824 + * return self.getGradientTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.getGradientTolerances(*value) + * elif isinstance(value, dict): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":826 + * if isinstance(value, (tuple, list)): + * self.getGradientTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.getGradientTolerances(**value) + * else: + */ + __pyx_t_2 = PyDict_Check(__pyx_v_value); + __pyx_t_1 = (__pyx_t_2 != 0); + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/TAO.pyx":827 + * self.getGradientTolerances(*value) + * elif isinstance(value, dict): + * self.getGradientTolerances(**value) # <<<<<<<<<<<<<< + * else: + * raise TypeError("expecting tuple/list or dict") + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGradientTolerances); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__pyx_v_value == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(51, 827, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_value))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_value, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":826 + * if isinstance(value, (tuple, list)): + * self.getGradientTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.getGradientTolerances(**value) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":829 + * self.getGradientTolerances(**value) + * else: + * raise TypeError("expecting tuple/list or dict") # <<<<<<<<<<<<<< + * + * property ctol: + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(51, 829, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TAO.pyx":823 + * def __get__(self): + * return self.getGradientTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.getGradientTolerances(*value) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.gtol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":832 + * + * property ctol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConstraintTolerances() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4ctol___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_4ctol___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":833 + * property ctol: + * def __get__(self): + * return self.getConstraintTolerances() # <<<<<<<<<<<<<< + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConstraintTolerances); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":832 + * + * property ctol: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConstraintTolerances() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.ctol.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":834 + * def __get__(self): + * return self.getConstraintTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.getConstraintTolerances(*value) + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_4ctol_2__set__(((struct PyPetscTAOObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_3TAO_4ctol_2__set__(struct PyPetscTAOObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/TAO.pyx":835 + * return self.getConstraintTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.getConstraintTolerances(*value) + * elif isinstance(value, dict): + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = PyList_Check(__pyx_v_value); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/TAO.pyx":836 + * def __set__(self, value): + * if isinstance(value, (tuple, list)): + * self.getConstraintTolerances(*value) # <<<<<<<<<<<<<< + * elif isinstance(value, dict): + * self.getConstraintTolerances(**value) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConstraintTolerances); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 836, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TAO.pyx":835 + * return self.getConstraintTolerances() + * def __set__(self, value): + * if isinstance(value, (tuple, list)): # <<<<<<<<<<<<<< + * self.getConstraintTolerances(*value) + * elif isinstance(value, dict): + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":837 + * if isinstance(value, (tuple, list)): + * self.getConstraintTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.getConstraintTolerances(**value) + * else: + */ + __pyx_t_2 = PyDict_Check(__pyx_v_value); + __pyx_t_1 = (__pyx_t_2 != 0); + if (likely(__pyx_t_1)) { + + /* "petsc4py/PETSc/TAO.pyx":838 + * self.getConstraintTolerances(*value) + * elif isinstance(value, dict): + * self.getConstraintTolerances(**value) # <<<<<<<<<<<<<< + * else: + * raise TypeError("expecting tuple/list or dict") + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConstraintTolerances); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__pyx_v_value == Py_None)) { + PyErr_SetString(PyExc_TypeError, "argument after ** must be a mapping, not NoneType"); + __PYX_ERR(51, 838, __pyx_L1_error) + } + if (likely(PyDict_CheckExact(__pyx_v_value))) { + __pyx_t_5 = PyDict_Copy(__pyx_v_value); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } else { + __pyx_t_5 = PyObject_CallFunctionObjArgs((PyObject*)&PyDict_Type, __pyx_v_value, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(51, 838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + } + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_empty_tuple, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/TAO.pyx":837 + * if isinstance(value, (tuple, list)): + * self.getConstraintTolerances(*value) + * elif isinstance(value, dict): # <<<<<<<<<<<<<< + * self.getConstraintTolerances(**value) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/TAO.pyx":840 + * self.getConstraintTolerances(**value) + * else: + * raise TypeError("expecting tuple/list or dict") # <<<<<<<<<<<<<< + * + * # --- iteration --- + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__47, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(51, 840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(51, 840, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/TAO.pyx":834 + * def __get__(self): + * return self.getConstraintTolerances() + * def __set__(self, value): # <<<<<<<<<<<<<< + * if isinstance(value, (tuple, list)): + * self.getConstraintTolerances(*value) + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.ctol.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":845 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3its_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_3its_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_3its___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_3its___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":846 + * property its: + * def __get__(self): + * return self.getIterationNumber() # <<<<<<<<<<<<<< + * + * property gnorm: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getIterationNumber); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":845 + * + * property its: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getIterationNumber() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.its.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":849 + * + * property gnorm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionNorm()[1] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5gnorm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5gnorm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_5gnorm___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_5gnorm___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":850 + * property gnorm: + * def __get__(self): + * return self.getSolutionNorm()[1] # <<<<<<<<<<<<<< + * + * property cnorm: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolutionNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 850, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":849 + * + * property gnorm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionNorm()[1] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.gnorm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":853 + * + * property cnorm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionNorm()[2] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5cnorm_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_5cnorm_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_5cnorm___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_5cnorm___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":854 + * property cnorm: + * def __get__(self): + * return self.getSolutionNorm()[2] # <<<<<<<<<<<<<< + * + * property solution: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolutionNorm); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":853 + * + * property cnorm: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolutionNorm()[2] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.cnorm.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":857 + * + * property solution: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8solution_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8solution_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_8solution___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8solution___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":858 + * property solution: + * def __get__(self): + * return self.getSolution() # <<<<<<<<<<<<<< + * + * property objective: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSolution); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 858, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":857 + * + * property solution: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSolution() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.solution.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":861 + * + * property objective: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getObjectiveValue() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9objective_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9objective_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_9objective___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9objective___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":862 + * property objective: + * def __get__(self): + * return self.getObjectiveValue() # <<<<<<<<<<<<<< + * + * property function: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getObjectiveValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":861 + * + * property objective: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getObjectiveValue() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.objective.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":865 + * + * property function: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionValue() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8function_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8function_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_8function___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8function___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":866 + * property function: + * def __get__(self): + * return self.getFunctionValue() # <<<<<<<<<<<<<< + * + * property gradient: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getFunctionValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":865 + * + * property function: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getFunctionValue() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.function.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":869 + * + * property gradient: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGradient()[0] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8gradient_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8gradient_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_8gradient___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8gradient___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":870 + * property gradient: + * def __get__(self): + * return self.getGradient()[0] # <<<<<<<<<<<<<< + * + * # --- convergence --- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGradient); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":869 + * + * property gradient: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGradient()[0] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.gradient.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":875 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_6reason_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_6reason_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_6reason___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_6reason___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":876 + * property reason: + * def __get__(self): + * return self.getConvergedReason() # <<<<<<<<<<<<<< + * + * property iterating: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getConvergedReason); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":875 + * + * property reason: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getConvergedReason() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.reason.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":879 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9iterating_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9iterating_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_9iterating___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9iterating___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":880 + * property iterating: + * def __get__(self): + * return self.reason == 0 # <<<<<<<<<<<<<< + * + * property converged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":879 + * + * property iterating: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason == 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.iterating.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":883 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9converged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_9converged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_9converged___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_9converged___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":884 + * property converged: + * def __get__(self): + * return self.reason > 0 # <<<<<<<<<<<<<< + * + * property diverged: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 884, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 884, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":883 + * + * property converged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason > 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.converged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/TAO.pyx":887 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8diverged_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_3TAO_8diverged_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_3TAO_8diverged___get__(((struct PyPetscTAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_3TAO_8diverged___get__(struct PyPetscTAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/TAO.pyx":888 + * property diverged: + * def __get__(self): + * return self.reason < 0 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_reason); if (unlikely(!__pyx_t_1)) __PYX_ERR(51, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(51, 888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/TAO.pyx":887 + * + * property diverged: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.reason < 0 + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TAO.diverged.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":15 + * Type = AOType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ao + * self.ao = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2AO_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2AO_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO___cinit__(((struct PyPetscAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2AO___cinit__(struct PyPetscAOObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/AO.pyx":16 + * + * def __cinit__(self): + * self.obj = &self.ao # <<<<<<<<<<<<<< + * self.ao = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->ao)); + + /* "petsc4py/PETSc/AO.pyx":17 + * def __cinit__(self): + * self.obj = &self.ao + * self.ao = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->ao = NULL; + + /* "petsc4py/PETSc/AO.pyx":15 + * Type = AOType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ao + * self.ao = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":19 + * self.ao = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_2view[] = "AO.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(52, 19, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 19, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(52, 19, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_2view(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_2view(struct PyPetscAOObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_cviewer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/AO.pyx":20 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL # <<<<<<<<<<<<<< + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( AOView(self.ao, cviewer) ) + */ + __pyx_v_cviewer = NULL; + + /* "petsc4py/PETSc/AO.pyx":21 + * def view(self, Viewer viewer=None): + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( AOView(self.ao, cviewer) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_cviewer = __pyx_t_3; + } + + /* "petsc4py/PETSc/AO.pyx":22 + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + * CHKERR( AOView(self.ao, cviewer) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOView(__pyx_v_self->ao, __pyx_v_cviewer)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 22, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":19 + * self.ao = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer cviewer = NULL + * if viewer is not None: cviewer = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":24 + * CHKERR( AOView(self.ao, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( AODestroy(&self.ao) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_4destroy[] = "AO.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_4destroy(((struct PyPetscAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_4destroy(struct PyPetscAOObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/AO.pyx":25 + * + * def destroy(self): + * CHKERR( AODestroy(&self.ao) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(AODestroy((&__pyx_v_self->ao))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 25, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":26 + * def destroy(self): + * CHKERR( AODestroy(&self.ao) ) + * return self # <<<<<<<<<<<<<< + * + * def createBasic(self, app, petsc=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":24 + * CHKERR( AOView(self.ao, cviewer) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( AODestroy(&self.ao) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":28 + * return self + * + * def createBasic(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_7createBasic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_6createBasic[] = "AO.createBasic(self, app, petsc=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_7createBasic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_app = 0; + PyObject *__pyx_v_petsc = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBasic (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app,&__pyx_n_s_petsc,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_app)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_petsc); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBasic") < 0)) __PYX_ERR(52, 28, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_app = values[0]; + __pyx_v_petsc = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBasic", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 28, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.createBasic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_6createBasic(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_app, __pyx_v_petsc, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_6createBasic(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm) { + IS __pyx_v_isapp; + IS __pyx_v_ispetsc; + PetscInt __pyx_v_napp; + PetscInt *__pyx_v_idxapp; + PetscInt __pyx_v_npetsc; + PetscInt *__pyx_v_idxpetsc; + MPI_Comm __pyx_v_ccomm; + AO __pyx_v_newao; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + IS __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBasic", 0); + __Pyx_INCREF(__pyx_v_app); + __Pyx_INCREF(__pyx_v_petsc); + + /* "petsc4py/PETSc/AO.pyx":29 + * + * def createBasic(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL # <<<<<<<<<<<<<< + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + */ + __pyx_v_isapp = NULL; + __pyx_v_ispetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":30 + * def createBasic(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, # <<<<<<<<<<<<<< + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_napp = 0; + __pyx_v_idxapp = NULL; + + /* "petsc4py/PETSc/AO.pyx":31 + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + */ + __pyx_v_npetsc = 0; + __pyx_v_idxpetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":32 + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(52, 32, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/AO.pyx":33 + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL # <<<<<<<<<<<<<< + * if isinstance(app, IS): + * isapp = (app).iset + */ + __pyx_v_newao = NULL; + + /* "petsc4py/PETSc/AO.pyx":34 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_app, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":35 + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + * isapp = (app).iset # <<<<<<<<<<<<<< + * if petsc is not None: + * ispetsc = (petsc).iset + */ + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_app)->iset; + __pyx_v_isapp = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":36 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateBasicIS(isapp, ispetsc, &newao) ) + */ + __pyx_t_3 = (__pyx_v_petsc != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/AO.pyx":37 + * isapp = (app).iset + * if petsc is not None: + * ispetsc = (petsc).iset # <<<<<<<<<<<<<< + * CHKERR( AOCreateBasicIS(isapp, ispetsc, &newao) ) + * else: + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_petsc, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(52, 37, __pyx_L1_error) + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_petsc)->iset; + __pyx_v_ispetsc = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":36 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateBasicIS(isapp, ispetsc, &newao) ) + */ + } + + /* "petsc4py/PETSc/AO.pyx":38 + * if petsc is not None: + * ispetsc = (petsc).iset + * CHKERR( AOCreateBasicIS(isapp, ispetsc, &newao) ) # <<<<<<<<<<<<<< + * else: + * app = iarray_i(app, &napp, &idxapp) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateBasicIS(__pyx_v_isapp, __pyx_v_ispetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 38, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":34 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/AO.pyx":40 + * CHKERR( AOCreateBasicIS(isapp, ispetsc, &newao) ) + * else: + * app = iarray_i(app, &napp, &idxapp) # <<<<<<<<<<<<<< + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_app, (&__pyx_v_napp), (&__pyx_v_idxapp))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_app, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":41 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + __pyx_t_2 = (__pyx_v_petsc != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":42 + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) # <<<<<<<<<<<<<< + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateBasic(ccomm, napp, idxapp, idxpetsc, &newao) ) + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_petsc, (&__pyx_v_npetsc), (&__pyx_v_idxpetsc))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_petsc, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":43 + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" # <<<<<<<<<<<<<< + * CHKERR( AOCreateBasic(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_napp == __pyx_v_npetsc) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_incompatible_array_sizes); + __PYX_ERR(52, 43, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/AO.pyx":41 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + } + + /* "petsc4py/PETSc/AO.pyx":44 + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateBasic(ccomm, napp, idxapp, idxpetsc, &newao) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ao = newao + * return self + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateBasic(__pyx_v_ccomm, __pyx_v_napp, __pyx_v_idxapp, __pyx_v_idxpetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 44, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/AO.pyx":45 + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateBasic(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ao = __pyx_v_newao; + + /* "petsc4py/PETSc/AO.pyx":46 + * CHKERR( AOCreateBasic(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + * return self # <<<<<<<<<<<<<< + * + * def createMemoryScalable(self, app, petsc=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":28 + * return self + * + * def createBasic(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.AO.createBasic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_app); + __Pyx_XDECREF(__pyx_v_petsc); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":48 + * return self + * + * def createMemoryScalable(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_9createMemoryScalable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_8createMemoryScalable[] = "AO.createMemoryScalable(self, app, petsc=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_9createMemoryScalable(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_app = 0; + PyObject *__pyx_v_petsc = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMemoryScalable (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app,&__pyx_n_s_petsc,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_app)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_petsc); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createMemoryScalable") < 0)) __PYX_ERR(52, 48, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_app = values[0]; + __pyx_v_petsc = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createMemoryScalable", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 48, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.createMemoryScalable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_8createMemoryScalable(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_app, __pyx_v_petsc, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_8createMemoryScalable(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm) { + IS __pyx_v_isapp; + IS __pyx_v_ispetsc; + PetscInt __pyx_v_napp; + PetscInt *__pyx_v_idxapp; + PetscInt __pyx_v_npetsc; + PetscInt *__pyx_v_idxpetsc; + MPI_Comm __pyx_v_ccomm; + AO __pyx_v_newao; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + IS __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMemoryScalable", 0); + __Pyx_INCREF(__pyx_v_app); + __Pyx_INCREF(__pyx_v_petsc); + + /* "petsc4py/PETSc/AO.pyx":49 + * + * def createMemoryScalable(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL # <<<<<<<<<<<<<< + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + */ + __pyx_v_isapp = NULL; + __pyx_v_ispetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":50 + * def createMemoryScalable(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, # <<<<<<<<<<<<<< + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_napp = 0; + __pyx_v_idxapp = NULL; + + /* "petsc4py/PETSc/AO.pyx":51 + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + */ + __pyx_v_npetsc = 0; + __pyx_v_idxpetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":52 + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(52, 52, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/AO.pyx":53 + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL # <<<<<<<<<<<<<< + * if isinstance(app, IS): + * isapp = (app).iset + */ + __pyx_v_newao = NULL; + + /* "petsc4py/PETSc/AO.pyx":54 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_app, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":55 + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + * isapp = (app).iset # <<<<<<<<<<<<<< + * if petsc is not None: + * ispetsc = (petsc).iset + */ + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_app)->iset; + __pyx_v_isapp = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":56 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateMemoryScalableIS(isapp, ispetsc, &newao) ) + */ + __pyx_t_3 = (__pyx_v_petsc != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/AO.pyx":57 + * isapp = (app).iset + * if petsc is not None: + * ispetsc = (petsc).iset # <<<<<<<<<<<<<< + * CHKERR( AOCreateMemoryScalableIS(isapp, ispetsc, &newao) ) + * else: + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_petsc, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(52, 57, __pyx_L1_error) + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_petsc)->iset; + __pyx_v_ispetsc = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":56 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateMemoryScalableIS(isapp, ispetsc, &newao) ) + */ + } + + /* "petsc4py/PETSc/AO.pyx":58 + * if petsc is not None: + * ispetsc = (petsc).iset + * CHKERR( AOCreateMemoryScalableIS(isapp, ispetsc, &newao) ) # <<<<<<<<<<<<<< + * else: + * app = iarray_i(app, &napp, &idxapp) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateMemoryScalableIS(__pyx_v_isapp, __pyx_v_ispetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 58, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":54 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/AO.pyx":60 + * CHKERR( AOCreateMemoryScalableIS(isapp, ispetsc, &newao) ) + * else: + * app = iarray_i(app, &napp, &idxapp) # <<<<<<<<<<<<<< + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_app, (&__pyx_v_napp), (&__pyx_v_idxapp))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_app, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":61 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + __pyx_t_2 = (__pyx_v_petsc != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":62 + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) # <<<<<<<<<<<<<< + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMemoryScalable(ccomm, napp, idxapp, idxpetsc, &newao) ) + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_petsc, (&__pyx_v_npetsc), (&__pyx_v_idxpetsc))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_petsc, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":63 + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" # <<<<<<<<<<<<<< + * CHKERR( AOCreateMemoryScalable(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_napp == __pyx_v_npetsc) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_incompatible_array_sizes); + __PYX_ERR(52, 63, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/AO.pyx":61 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + } + + /* "petsc4py/PETSc/AO.pyx":64 + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMemoryScalable(ccomm, napp, idxapp, idxpetsc, &newao) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ao = newao + * return self + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateMemoryScalable(__pyx_v_ccomm, __pyx_v_napp, __pyx_v_idxapp, __pyx_v_idxpetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 64, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/AO.pyx":65 + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMemoryScalable(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ao = __pyx_v_newao; + + /* "petsc4py/PETSc/AO.pyx":66 + * CHKERR( AOCreateMemoryScalable(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + * return self # <<<<<<<<<<<<<< + * + * def createMapping(self, app, petsc=None, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":48 + * return self + * + * def createMemoryScalable(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.AO.createMemoryScalable", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_app); + __Pyx_XDECREF(__pyx_v_petsc); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":68 + * return self + * + * def createMapping(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_11createMapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_10createMapping[] = "AO.createMapping(self, app, petsc=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_11createMapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_app = 0; + PyObject *__pyx_v_petsc = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMapping (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_app,&__pyx_n_s_petsc,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_app)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_petsc); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createMapping") < 0)) __PYX_ERR(52, 68, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_app = values[0]; + __pyx_v_petsc = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createMapping", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 68, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.createMapping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_10createMapping(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_app, __pyx_v_petsc, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_10createMapping(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_app, PyObject *__pyx_v_petsc, PyObject *__pyx_v_comm) { + IS __pyx_v_isapp; + IS __pyx_v_ispetsc; + PetscInt __pyx_v_napp; + PetscInt *__pyx_v_idxapp; + PetscInt __pyx_v_npetsc; + PetscInt *__pyx_v_idxpetsc; + MPI_Comm __pyx_v_ccomm; + AO __pyx_v_newao; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + IS __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMapping", 0); + __Pyx_INCREF(__pyx_v_app); + __Pyx_INCREF(__pyx_v_petsc); + + /* "petsc4py/PETSc/AO.pyx":69 + * + * def createMapping(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL # <<<<<<<<<<<<<< + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + */ + __pyx_v_isapp = NULL; + __pyx_v_ispetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":70 + * def createMapping(self, app, petsc=None, comm=None): + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, # <<<<<<<<<<<<<< + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_v_napp = 0; + __pyx_v_idxapp = NULL; + + /* "petsc4py/PETSc/AO.pyx":71 + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + */ + __pyx_v_npetsc = 0; + __pyx_v_idxpetsc = NULL; + + /* "petsc4py/PETSc/AO.pyx":72 + * cdef PetscInt napp = 0, *idxapp = NULL, + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(52, 72, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/AO.pyx":73 + * cdef PetscInt npetsc = 0, *idxpetsc = NULL + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL # <<<<<<<<<<<<<< + * if isinstance(app, IS): + * isapp = (app).iset + */ + __pyx_v_newao = NULL; + + /* "petsc4py/PETSc/AO.pyx":74 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_app, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":75 + * cdef PetscAO newao = NULL + * if isinstance(app, IS): + * isapp = (app).iset # <<<<<<<<<<<<<< + * if petsc is not None: + * ispetsc = (petsc).iset + */ + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_app)->iset; + __pyx_v_isapp = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":76 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateMappingIS(isapp, ispetsc, &newao) ) + */ + __pyx_t_3 = (__pyx_v_petsc != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/AO.pyx":77 + * isapp = (app).iset + * if petsc is not None: + * ispetsc = (petsc).iset # <<<<<<<<<<<<<< + * CHKERR( AOCreateMappingIS(isapp, ispetsc, &newao) ) + * else: + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_petsc, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(52, 77, __pyx_L1_error) + __pyx_t_4 = ((struct PyPetscISObject *)__pyx_v_petsc)->iset; + __pyx_v_ispetsc = __pyx_t_4; + + /* "petsc4py/PETSc/AO.pyx":76 + * if isinstance(app, IS): + * isapp = (app).iset + * if petsc is not None: # <<<<<<<<<<<<<< + * ispetsc = (petsc).iset + * CHKERR( AOCreateMappingIS(isapp, ispetsc, &newao) ) + */ + } + + /* "petsc4py/PETSc/AO.pyx":78 + * if petsc is not None: + * ispetsc = (petsc).iset + * CHKERR( AOCreateMappingIS(isapp, ispetsc, &newao) ) # <<<<<<<<<<<<<< + * else: + * app = iarray_i(app, &napp, &idxapp) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateMappingIS(__pyx_v_isapp, __pyx_v_ispetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 78, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":74 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscAO newao = NULL + * if isinstance(app, IS): # <<<<<<<<<<<<<< + * isapp = (app).iset + * if petsc is not None: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/AO.pyx":80 + * CHKERR( AOCreateMappingIS(isapp, ispetsc, &newao) ) + * else: + * app = iarray_i(app, &napp, &idxapp) # <<<<<<<<<<<<<< + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + */ + /*else*/ { + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_app, (&__pyx_v_napp), (&__pyx_v_idxapp))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_app, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":81 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + __pyx_t_2 = (__pyx_v_petsc != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/AO.pyx":82 + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) # <<<<<<<<<<<<<< + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMapping(ccomm, napp, idxapp, idxpetsc, &newao) ) + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_petsc, (&__pyx_v_npetsc), (&__pyx_v_idxpetsc))); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_petsc, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":83 + * if petsc is not None: + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" # <<<<<<<<<<<<<< + * CHKERR( AOCreateMapping(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_napp == __pyx_v_npetsc) != 0))) { + PyErr_SetObject(PyExc_AssertionError, __pyx_kp_s_incompatible_array_sizes); + __PYX_ERR(52, 83, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/AO.pyx":81 + * else: + * app = iarray_i(app, &napp, &idxapp) + * if petsc is not None: # <<<<<<<<<<<<<< + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + */ + } + + /* "petsc4py/PETSc/AO.pyx":84 + * petsc = iarray_i(petsc, &npetsc, &idxpetsc) + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMapping(ccomm, napp, idxapp, idxpetsc, &newao) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ao = newao + * return self + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOCreateMapping(__pyx_v_ccomm, __pyx_v_napp, __pyx_v_idxapp, __pyx_v_idxpetsc, (&__pyx_v_newao))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 84, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/AO.pyx":85 + * assert napp == npetsc, "incompatible array sizes" + * CHKERR( AOCreateMapping(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ao = __pyx_v_newao; + + /* "petsc4py/PETSc/AO.pyx":86 + * CHKERR( AOCreateMapping(ccomm, napp, idxapp, idxpetsc, &newao) ) + * PetscCLEAR(self.obj); self.ao = newao + * return self # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":68 + * return self + * + * def createMapping(self, app, petsc=None, comm=None): # <<<<<<<<<<<<<< + * cdef PetscIS isapp = NULL, ispetsc = NULL + * cdef PetscInt napp = 0, *idxapp = NULL, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.AO.createMapping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_app); + __Pyx_XDECREF(__pyx_v_petsc); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":88 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscAOType cval = NULL + * CHKERR( AOGetType(self.ao, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_12getType[] = "AO.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_13getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_12getType(((struct PyPetscAOObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_12getType(struct PyPetscAOObject *__pyx_v_self) { + AOType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/AO.pyx":89 + * + * def getType(self): + * cdef PetscAOType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( AOGetType(self.ao, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/AO.pyx":90 + * def getType(self): + * cdef PetscAOType cval = NULL + * CHKERR( AOGetType(self.ao, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOGetType(__pyx_v_self->ao, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 90, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":91 + * cdef PetscAOType cval = NULL + * CHKERR( AOGetType(self.ao, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def app2petsc(self, indices): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(52, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":88 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscAOType cval = NULL + * CHKERR( AOGetType(self.ao, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.AO.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":93 + * return bytes2str(cval) + * + * def app2petsc(self, indices): # <<<<<<<<<<<<<< + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_15app2petsc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_14app2petsc[] = "AO.app2petsc(self, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_15app2petsc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("app2petsc (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "app2petsc") < 0)) __PYX_ERR(52, 93, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_indices = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("app2petsc", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 93, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.app2petsc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_14app2petsc(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_14app2petsc(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_indices) { + IS __pyx_v_iset; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("app2petsc", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/AO.pyx":94 + * + * def app2petsc(self, indices): + * cdef PetscIS iset = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): + */ + __pyx_v_iset = NULL; + + /* "petsc4py/PETSc/AO.pyx":95 + * def app2petsc(self, indices): + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * if isinstance(indices, IS): + * iset = (indices).iset + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/AO.pyx":96 + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): # <<<<<<<<<<<<<< + * iset = (indices).iset + * CHKERR( AOApplicationToPetscIS(self.ao, iset) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_indices, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/AO.pyx":97 + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): + * iset = (indices).iset # <<<<<<<<<<<<<< + * CHKERR( AOApplicationToPetscIS(self.ao, iset) ) + * else: + */ + __pyx_t_3 = ((struct PyPetscISObject *)__pyx_v_indices)->iset; + __pyx_v_iset = __pyx_t_3; + + /* "petsc4py/PETSc/AO.pyx":98 + * if isinstance(indices, IS): + * iset = (indices).iset + * CHKERR( AOApplicationToPetscIS(self.ao, iset) ) # <<<<<<<<<<<<<< + * else: + * indices = oarray_i(indices, &nidx, &idx) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOApplicationToPetscIS(__pyx_v_self->ao, __pyx_v_iset)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":96 + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): # <<<<<<<<<<<<<< + * iset = (indices).iset + * CHKERR( AOApplicationToPetscIS(self.ao, iset) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/AO.pyx":100 + * CHKERR( AOApplicationToPetscIS(self.ao, iset) ) + * else: + * indices = oarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( AOApplicationToPetsc(self.ao, nidx, idx) ) + * return indices + */ + /*else*/ { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":101 + * else: + * indices = oarray_i(indices, &nidx, &idx) + * CHKERR( AOApplicationToPetsc(self.ao, nidx, idx) ) # <<<<<<<<<<<<<< + * return indices + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOApplicationToPetsc(__pyx_v_self->ao, __pyx_v_nidx, __pyx_v_idx)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 101, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/AO.pyx":102 + * indices = oarray_i(indices, &nidx, &idx) + * CHKERR( AOApplicationToPetsc(self.ao, nidx, idx) ) + * return indices # <<<<<<<<<<<<<< + * + * def petsc2app(self, indices): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_indices); + __pyx_r = __pyx_v_indices; + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":93 + * return bytes2str(cval) + * + * def app2petsc(self, indices): # <<<<<<<<<<<<<< + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.AO.app2petsc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/AO.pyx":104 + * return indices + * + * def petsc2app(self, indices): # <<<<<<<<<<<<<< + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_17petsc2app(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2AO_16petsc2app[] = "AO.petsc2app(self, indices)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2AO_17petsc2app(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_indices = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("petsc2app (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indices,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indices)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "petsc2app") < 0)) __PYX_ERR(52, 104, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_indices = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("petsc2app", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(52, 104, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.AO.petsc2app", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2AO_16petsc2app(((struct PyPetscAOObject *)__pyx_v_self), __pyx_v_indices); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2AO_16petsc2app(struct PyPetscAOObject *__pyx_v_self, PyObject *__pyx_v_indices) { + IS __pyx_v_iset; + PetscInt __pyx_v_nidx; + PetscInt *__pyx_v_idx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + IS __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("petsc2app", 0); + __Pyx_INCREF(__pyx_v_indices); + + /* "petsc4py/PETSc/AO.pyx":105 + * + * def petsc2app(self, indices): + * cdef PetscIS iset = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): + */ + __pyx_v_iset = NULL; + + /* "petsc4py/PETSc/AO.pyx":106 + * def petsc2app(self, indices): + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL # <<<<<<<<<<<<<< + * if isinstance(indices, IS): + * iset = (indices).iset + */ + __pyx_v_nidx = 0; + __pyx_v_idx = NULL; + + /* "petsc4py/PETSc/AO.pyx":107 + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): # <<<<<<<<<<<<<< + * iset = (indices).iset + * CHKERR( AOPetscToApplicationIS(self.ao, iset) ) + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_indices, __pyx_ptype_8petsc4py_5PETSc_IS); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/AO.pyx":108 + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): + * iset = (indices).iset # <<<<<<<<<<<<<< + * CHKERR( AOPetscToApplicationIS(self.ao, iset) ) + * else: + */ + __pyx_t_3 = ((struct PyPetscISObject *)__pyx_v_indices)->iset; + __pyx_v_iset = __pyx_t_3; + + /* "petsc4py/PETSc/AO.pyx":109 + * if isinstance(indices, IS): + * iset = (indices).iset + * CHKERR( AOPetscToApplicationIS(self.ao, iset) ) # <<<<<<<<<<<<<< + * else: + * indices = oarray_i(indices, &nidx, &idx) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOPetscToApplicationIS(__pyx_v_self->ao, __pyx_v_iset)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":107 + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + * if isinstance(indices, IS): # <<<<<<<<<<<<<< + * iset = (indices).iset + * CHKERR( AOPetscToApplicationIS(self.ao, iset) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/AO.pyx":111 + * CHKERR( AOPetscToApplicationIS(self.ao, iset) ) + * else: + * indices = oarray_i(indices, &nidx, &idx) # <<<<<<<<<<<<<< + * CHKERR( AOPetscToApplication(self.ao, nidx, idx) ) + * return indices + */ + /*else*/ { + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_i(__pyx_v_indices, (&__pyx_v_nidx), (&__pyx_v_idx))); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_indices, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":112 + * else: + * indices = oarray_i(indices, &nidx, &idx) + * CHKERR( AOPetscToApplication(self.ao, nidx, idx) ) # <<<<<<<<<<<<<< + * return indices + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(AOPetscToApplication(__pyx_v_self->ao, __pyx_v_nidx, __pyx_v_idx)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(52, 112, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/AO.pyx":113 + * indices = oarray_i(indices, &nidx, &idx) + * CHKERR( AOPetscToApplication(self.ao, nidx, idx) ) + * return indices # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_indices); + __pyx_r = __pyx_v_indices; + goto __pyx_L0; + + /* "petsc4py/PETSc/AO.pyx":104 + * return indices + * + * def petsc2app(self, indices): # <<<<<<<<<<<<<< + * cdef PetscIS iset = NULL + * cdef PetscInt nidx = 0, *idx = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.AO.petsc2app", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":54 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dm + * self.dm = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2DM_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2DM_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM___cinit__(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2DM___cinit__(struct PyPetscDMObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DM.pyx":55 + * + * def __cinit__(self): + * self.obj = &self.dm # <<<<<<<<<<<<<< + * self.dm = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->dm)); + + /* "petsc4py/PETSc/DM.pyx":56 + * def __cinit__(self): + * self.obj = &self.dm + * self.dm = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->dm = NULL; + + /* "petsc4py/PETSc/DM.pyx":54 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dm + * self.dm = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":58 + * self.dm = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_2view[] = "DM.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(53, 58, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 58, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(53, 58, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_2view(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_2view(struct PyPetscDMObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/DM.pyx":59 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMView(self.dm, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/DM.pyx":60 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( DMView(self.dm, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/DM.pyx":61 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMView(self.dm, vwr) ) # <<<<<<<<<<<<<< + * + * def load(self, Viewer viewer): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMView(__pyx_v_self->dm, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 61, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":58 + * self.dm = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":63 + * CHKERR( DMView(self.dm, vwr) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMLoad(self.dm, viewer.vwr) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_5load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_4load[] = "DM.load(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_5load(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("load (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "load") < 0)) __PYX_ERR(53, 63, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("load", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 63, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(53, 63, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_4load(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_4load(struct PyPetscDMObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load", 0); + + /* "petsc4py/PETSc/DM.pyx":64 + * + * def load(self, Viewer viewer): + * CHKERR( DMLoad(self.dm, viewer.vwr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLoad(__pyx_v_self->dm, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":65 + * def load(self, Viewer viewer): + * CHKERR( DMLoad(self.dm, viewer.vwr) ) + * return self # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":63 + * CHKERR( DMView(self.dm, vwr) ) + * + * def load(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMLoad(self.dm, viewer.vwr) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.load", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":67 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMDestroy(&self.dm) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_6destroy[] = "DM.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_6destroy(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_6destroy(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DM.pyx":68 + * + * def destroy(self): + * CHKERR( DMDestroy(&self.dm) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDestroy((&__pyx_v_self->dm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":69 + * def destroy(self): + * CHKERR( DMDestroy(&self.dm) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":67 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMDestroy(&self.dm) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":71 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_8create[] = "DM.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_9create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(53, 71, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 71, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_8create(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_8create(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DM.pyx":72 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 72, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":73 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DM.pyx":74 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreate(__pyx_v_ccomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 74, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":75 + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DM.pyx":76 + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def clone(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":71 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":78 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef DM dm = type(self)() + * CHKERR( DMClone(self.dm, &dm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_10clone[] = "DM.clone(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_11clone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clone (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clone", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clone", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_10clone(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_10clone(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clone", 0); + + /* "petsc4py/PETSc/DM.pyx":79 + * + * def clone(self): + * cdef DM dm = type(self)() # <<<<<<<<<<<<<< + * CHKERR( DMClone(self.dm, &dm.dm) ) + * return dm + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 79, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":80 + * def clone(self): + * cdef DM dm = type(self)() + * CHKERR( DMClone(self.dm, &dm.dm) ) # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMClone(__pyx_v_self->dm, (&__pyx_v_dm->dm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 80, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":81 + * cdef DM dm = type(self)() + * CHKERR( DMClone(self.dm, &dm.dm) ) + * return dm # <<<<<<<<<<<<<< + * + * def setType(self, dm_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":78 + * return self + * + * def clone(self): # <<<<<<<<<<<<<< + * cdef DM dm = type(self)() + * CHKERR( DMClone(self.dm, &dm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.clone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":83 + * return dm + * + * def setType(self, dm_type): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_12setType[] = "DM.setType(self, dm_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(53, 83, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 83, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_12setType(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_12setType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dm_type) { + DMType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_dm_type); + + /* "petsc4py/PETSc/DM.pyx":84 + * + * def setType(self, dm_type): + * cdef PetscDMType cval = NULL # <<<<<<<<<<<<<< + * dm_type = str2bytes(dm_type, &cval) + * CHKERR( DMSetType(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":85 + * def setType(self, dm_type): + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMSetType(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_dm_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dm_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":86 + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + * CHKERR( DMSetType(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetType(__pyx_v_self->dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 86, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":83 + * return dm + * + * def setType(self, dm_type): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dm_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":88 + * CHKERR( DMSetType(self.dm, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * CHKERR( DMGetType(self.dm, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_15getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_14getType[] = "DM.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_15getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_14getType(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_14getType(struct PyPetscDMObject *__pyx_v_self) { + DMType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/DM.pyx":89 + * + * def getType(self): + * cdef PetscDMType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetType(self.dm, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":90 + * def getType(self): + * cdef PetscDMType cval = NULL + * CHKERR( DMGetType(self.dm, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetType(__pyx_v_self->dm, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 90, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":91 + * cdef PetscDMType cval = NULL + * CHKERR( DMGetType(self.dm, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def getDimension(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":88 + * CHKERR( DMSetType(self.dm, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * CHKERR( DMGetType(self.dm, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":93 + * return bytes2str(cval) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_17getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_16getDimension[] = "DM.getDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_17getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_16getDimension(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_16getDimension(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDimension", 0); + + /* "petsc4py/PETSc/DM.pyx":94 + * + * def getDimension(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * return toInt(dim) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DM.pyx":95 + * def getDimension(self): + * cdef PetscInt dim = 0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * return toInt(dim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 95, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":96 + * cdef PetscInt dim = 0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * return toInt(dim) # <<<<<<<<<<<<<< + * + * def setDimension(self, dim): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":93 + * return bytes2str(cval) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":98 + * return toInt(dim) + * + * def setDimension(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetDimension(self.dm, cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_19setDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_18setDimension[] = "DM.setDimension(self, dim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_19setDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDimension (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDimension") < 0)) __PYX_ERR(53, 98, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDimension", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 98, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_18setDimension(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_18setDimension(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dim) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDimension", 0); + + /* "petsc4py/PETSc/DM.pyx":99 + * + * def setDimension(self, dim): + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * CHKERR( DMSetDimension(self.dm, cdim) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 99, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":100 + * def setDimension(self, dim): + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetDimension(self.dm, cdim) ) # <<<<<<<<<<<<<< + * + * def getCoordinateDim(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetDimension(__pyx_v_self->dm, __pyx_v_cdim)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 100, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":98 + * return toInt(dim) + * + * def setDimension(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetDimension(self.dm, cdim) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":102 + * CHKERR( DMSetDimension(self.dm, cdim) ) + * + * def getCoordinateDim(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_21getCoordinateDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_20getCoordinateDim[] = "DM.getCoordinateDim(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_21getCoordinateDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinateDim (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinateDim", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinateDim", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_20getCoordinateDim(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_20getCoordinateDim(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinateDim", 0); + + /* "petsc4py/PETSc/DM.pyx":103 + * + * def getCoordinateDim(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * return toInt(dim) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DM.pyx":104 + * def getCoordinateDim(self): + * cdef PetscInt dim = 0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * return toInt(dim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateDim(__pyx_v_self->dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":105 + * cdef PetscInt dim = 0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * return toInt(dim) # <<<<<<<<<<<<<< + * + * def setCoordinateDim(self, dim): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":102 + * CHKERR( DMSetDimension(self.dm, cdim) ) + * + * def getCoordinateDim(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoordinateDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":107 + * return toInt(dim) + * + * def setCoordinateDim(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_23setCoordinateDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_22setCoordinateDim[] = "DM.setCoordinateDim(self, dim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_23setCoordinateDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinateDim (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinateDim") < 0)) __PYX_ERR(53, 107, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinateDim", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 107, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinateDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_22setCoordinateDim(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_22setCoordinateDim(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dim) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinateDim", 0); + + /* "petsc4py/PETSc/DM.pyx":108 + * + * def setCoordinateDim(self, dim): + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 108, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":109 + * def setCoordinateDim(self, dim): + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) # <<<<<<<<<<<<<< + * + * def setOptionsPrefix(self, prefix): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetCoordinateDim(__pyx_v_self->dm, __pyx_v_cdim)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":107 + * return toInt(dim) + * + * def setCoordinateDim(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinateDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":111 + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_25setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_24setOptionsPrefix[] = "DM.setOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_25setOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOptionsPrefix") < 0)) __PYX_ERR(53, 111, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 111, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_24setOptionsPrefix(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_24setOptionsPrefix(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/DM.pyx":112 + * + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( DMSetOptionsPrefix(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":113 + * def setOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMSetOptionsPrefix(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":114 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( DMSetOptionsPrefix(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def getOptionsPrefix(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetOptionsPrefix(__pyx_v_self->dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 114, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":111 + * CHKERR( DMSetCoordinateDim(self.dm, cdim) ) + * + * def setOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":116 + * CHKERR( DMSetOptionsPrefix(self.dm, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( DMGetOptionsPrefix(self.dm, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_27getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_26getOptionsPrefix[] = "DM.getOptionsPrefix(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_27getOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOptionsPrefix (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOptionsPrefix", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOptionsPrefix", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_26getOptionsPrefix(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_26getOptionsPrefix(struct PyPetscDMObject *__pyx_v_self) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOptionsPrefix", 0); + + /* "petsc4py/PETSc/DM.pyx":117 + * + * def getOptionsPrefix(self): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetOptionsPrefix(self.dm, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":118 + * def getOptionsPrefix(self): + * cdef const char *cval = NULL + * CHKERR( DMGetOptionsPrefix(self.dm, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetOptionsPrefix(__pyx_v_self->dm, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":119 + * cdef const char *cval = NULL + * CHKERR( DMGetOptionsPrefix(self.dm, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def appendOptionsPrefix(self, prefix): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":116 + * CHKERR( DMSetOptionsPrefix(self.dm, cval) ) + * + * def getOptionsPrefix(self): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( DMGetOptionsPrefix(self.dm, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":121 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_29appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_28appendOptionsPrefix[] = "DM.appendOptionsPrefix(self, prefix)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_29appendOptionsPrefix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_prefix = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("appendOptionsPrefix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_prefix,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prefix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appendOptionsPrefix") < 0)) __PYX_ERR(53, 121, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_prefix = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("appendOptionsPrefix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 121, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_28appendOptionsPrefix(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_prefix); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_28appendOptionsPrefix(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_prefix) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("appendOptionsPrefix", 0); + __Pyx_INCREF(__pyx_v_prefix); + + /* "petsc4py/PETSc/DM.pyx":122 + * + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * prefix = str2bytes(prefix, &cval) + * CHKERR( DMAppendOptionsPrefix(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":123 + * def appendOptionsPrefix(self, prefix): + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMAppendOptionsPrefix(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_prefix, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":124 + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + * CHKERR( DMAppendOptionsPrefix(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMAppendOptionsPrefix(__pyx_v_self->dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 124, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":121 + * return bytes2str(cval) + * + * def appendOptionsPrefix(self, prefix): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * prefix = str2bytes(prefix, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.appendOptionsPrefix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_prefix); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":126 + * CHKERR( DMAppendOptionsPrefix(self.dm, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMSetFromOptions(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_31setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_30setFromOptions[] = "DM.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_31setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_30setFromOptions(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_30setFromOptions(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/DM.pyx":127 + * + * def setFromOptions(self): + * CHKERR( DMSetFromOptions(self.dm) ) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object obj=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetFromOptions(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":126 + * CHKERR( DMAppendOptionsPrefix(self.dm, cval) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMSetFromOptions(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":129 + * CHKERR( DMSetFromOptions(self.dm) ) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_33viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_32viewFromOptions[] = "DM.viewFromOptions(self, name, Object obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_33viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(53, 129, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 129, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(53, 129, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_32viewFromOptions(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_32viewFromOptions(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cname; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + + /* "petsc4py/PETSc/DM.pyx":130 + * + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":131 + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__ = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":132 + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * if obj is not None: cobj = obj.obj[0] + * CHKERR( DMViewFromOptions(self.dm, cobj, cname) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/DM.pyx":133 + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] # <<<<<<<<<<<<<< + * CHKERR( DMViewFromOptions(self.dm, cobj, cname) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + } + + /* "petsc4py/PETSc/DM.pyx":134 + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + * CHKERR( DMViewFromOptions(self.dm, cobj, cname) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMViewFromOptions(__pyx_v_self->dm, __pyx_v_cobj, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 134, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":129 + * CHKERR( DMSetFromOptions(self.dm) ) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":136 + * CHKERR( DMViewFromOptions(self.dm, cobj, cname) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( DMSetUp(self.dm) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_35setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_34setUp[] = "DM.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_35setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_34setUp(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_34setUp(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/DM.pyx":137 + * + * def setUp(self): + * CHKERR( DMSetUp(self.dm) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetUp(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":138 + * def setUp(self): + * CHKERR( DMSetUp(self.dm) ) + * return self # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":136 + * CHKERR( DMViewFromOptions(self.dm, cobj, cname) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( DMSetUp(self.dm) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":142 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_37setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_36setAppCtx[] = "DM.setAppCtx(self, appctx)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_37setAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_appctx = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAppCtx (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_appctx,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_appctx)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAppCtx") < 0)) __PYX_ERR(53, 142, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_appctx = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAppCtx", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 142, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_36setAppCtx(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_appctx); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_36setAppCtx(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_appctx) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAppCtx", 0); + + /* "petsc4py/PETSc/DM.pyx":143 + * + * def setAppCtx(self, appctx): + * self.set_attr('__appctx__', appctx) # <<<<<<<<<<<<<< + * + * def getAppCtx(self): + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__"), __pyx_v_appctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":142 + * # --- application context --- + * + * def setAppCtx(self, appctx): # <<<<<<<<<<<<<< + * self.set_attr('__appctx__', appctx) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":145 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_39getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_38getAppCtx[] = "DM.getAppCtx(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_39getAppCtx(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAppCtx (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAppCtx", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAppCtx", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_38getAppCtx(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_38getAppCtx(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAppCtx", 0); + + /* "petsc4py/PETSc/DM.pyx":146 + * + * def getAppCtx(self): + * return self.get_attr('__appctx__') # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__appctx__")); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":145 + * self.set_attr('__appctx__', appctx) + * + * def getAppCtx(self): # <<<<<<<<<<<<<< + * return self.get_attr('__appctx__') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getAppCtx", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":150 + * # + * + * def setBasicAdjacency(self, useCone, useClosure): # <<<<<<<<<<<<<< + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_41setBasicAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_40setBasicAdjacency[] = "DM.setBasicAdjacency(self, useCone, useClosure)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_41setBasicAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_useCone = 0; + PyObject *__pyx_v_useClosure = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBasicAdjacency (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_useCone,&__pyx_n_s_useClosure,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useCone)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useClosure)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setBasicAdjacency", 1, 2, 2, 1); __PYX_ERR(53, 150, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBasicAdjacency") < 0)) __PYX_ERR(53, 150, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_useCone = values[0]; + __pyx_v_useClosure = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBasicAdjacency", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 150, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setBasicAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_40setBasicAdjacency(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_useCone, __pyx_v_useClosure); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_40setBasicAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_useCone, PyObject *__pyx_v_useClosure) { + PetscBool __pyx_v_uC; + PetscBool __pyx_v_uCl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBasicAdjacency", 0); + + /* "petsc4py/PETSc/DM.pyx":151 + * + * def setBasicAdjacency(self, useCone, useClosure): + * cdef PetscBool uC = useCone # <<<<<<<<<<<<<< + * cdef PetscBool uCl = useClosure + * CHKERR( DMSetBasicAdjacency(self.dm, uC, uCl) ) + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_useCone)); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 151, __pyx_L1_error) + __pyx_v_uC = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":152 + * def setBasicAdjacency(self, useCone, useClosure): + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure # <<<<<<<<<<<<<< + * CHKERR( DMSetBasicAdjacency(self.dm, uC, uCl) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_useClosure)); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 152, __pyx_L1_error) + __pyx_v_uCl = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":153 + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure + * CHKERR( DMSetBasicAdjacency(self.dm, uC, uCl) ) # <<<<<<<<<<<<<< + * + * def getBasicAdjacency(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetBasicAdjacency(__pyx_v_self->dm, __pyx_v_uC, __pyx_v_uCl)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":150 + * # + * + * def setBasicAdjacency(self, useCone, useClosure): # <<<<<<<<<<<<<< + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setBasicAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":155 + * CHKERR( DMSetBasicAdjacency(self.dm, uC, uCl) ) + * + * def getBasicAdjacency(self): # <<<<<<<<<<<<<< + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_43getBasicAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_42getBasicAdjacency[] = "DM.getBasicAdjacency(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_43getBasicAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBasicAdjacency (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBasicAdjacency", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBasicAdjacency", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_42getBasicAdjacency(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_42getBasicAdjacency(struct PyPetscDMObject *__pyx_v_self) { + PetscBool __pyx_v_uC; + PetscBool __pyx_v_uCl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBasicAdjacency", 0); + + /* "petsc4py/PETSc/DM.pyx":156 + * + * def getBasicAdjacency(self): + * cdef PetscBool uC = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetBasicAdjacency(self.dm, &uC, &uCl) ) + */ + __pyx_v_uC = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":157 + * def getBasicAdjacency(self): + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMGetBasicAdjacency(self.dm, &uC, &uCl) ) + * return toBool(uC), toBool(uCl) + */ + __pyx_v_uCl = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":158 + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetBasicAdjacency(self.dm, &uC, &uCl) ) # <<<<<<<<<<<<<< + * return toBool(uC), toBool(uCl) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetBasicAdjacency(__pyx_v_self->dm, (&__pyx_v_uC), (&__pyx_v_uCl))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 158, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":159 + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetBasicAdjacency(self.dm, &uC, &uCl) ) + * return toBool(uC), toBool(uCl) # <<<<<<<<<<<<<< + * + * def setFieldAdjacency(self, field, useCone, useClosure): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_uC); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_uCl); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":155 + * CHKERR( DMSetBasicAdjacency(self.dm, uC, uCl) ) + * + * def getBasicAdjacency(self): # <<<<<<<<<<<<<< + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getBasicAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":161 + * return toBool(uC), toBool(uCl) + * + * def setFieldAdjacency(self, field, useCone, useClosure): # <<<<<<<<<<<<<< + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = useCone + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_45setFieldAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_44setFieldAdjacency[] = "DM.setFieldAdjacency(self, field, useCone, useClosure)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_45setFieldAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_useCone = 0; + PyObject *__pyx_v_useClosure = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldAdjacency (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_useCone,&__pyx_n_s_useClosure,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useCone)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldAdjacency", 1, 3, 3, 1); __PYX_ERR(53, 161, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useClosure)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldAdjacency", 1, 3, 3, 2); __PYX_ERR(53, 161, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldAdjacency") < 0)) __PYX_ERR(53, 161, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_field = values[0]; + __pyx_v_useCone = values[1]; + __pyx_v_useClosure = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldAdjacency", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setFieldAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_44setFieldAdjacency(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_field, __pyx_v_useCone, __pyx_v_useClosure); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_44setFieldAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_useCone, PyObject *__pyx_v_useClosure) { + PetscInt __pyx_v_f; + PetscBool __pyx_v_uC; + PetscBool __pyx_v_uCl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldAdjacency", 0); + + /* "petsc4py/PETSc/DM.pyx":162 + * + * def setFieldAdjacency(self, field, useCone, useClosure): + * cdef PetscInt f = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 162, __pyx_L1_error) + __pyx_v_f = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":163 + * def setFieldAdjacency(self, field, useCone, useClosure): + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = useCone # <<<<<<<<<<<<<< + * cdef PetscBool uCl = useClosure + * CHKERR( DMSetAdjacency(self.dm, f, uC, uCl) ) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_useCone)); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 163, __pyx_L1_error) + __pyx_v_uC = __pyx_t_2; + + /* "petsc4py/PETSc/DM.pyx":164 + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure # <<<<<<<<<<<<<< + * CHKERR( DMSetAdjacency(self.dm, f, uC, uCl) ) + * + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_useClosure)); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 164, __pyx_L1_error) + __pyx_v_uCl = __pyx_t_2; + + /* "petsc4py/PETSc/DM.pyx":165 + * cdef PetscBool uC = useCone + * cdef PetscBool uCl = useClosure + * CHKERR( DMSetAdjacency(self.dm, f, uC, uCl) ) # <<<<<<<<<<<<<< + * + * def getFieldAdjacency(self, field): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetAdjacency(__pyx_v_self->dm, __pyx_v_f, __pyx_v_uC, __pyx_v_uCl)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 165, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":161 + * return toBool(uC), toBool(uCl) + * + * def setFieldAdjacency(self, field, useCone, useClosure): # <<<<<<<<<<<<<< + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = useCone + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setFieldAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":167 + * CHKERR( DMSetAdjacency(self.dm, f, uC, uCl) ) + * + * def getFieldAdjacency(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_47getFieldAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_46getFieldAdjacency[] = "DM.getFieldAdjacency(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_47getFieldAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldAdjacency (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldAdjacency") < 0)) __PYX_ERR(53, 167, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldAdjacency", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 167, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getFieldAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_46getFieldAdjacency(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_46getFieldAdjacency(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_f; + PetscBool __pyx_v_uC; + PetscBool __pyx_v_uCl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldAdjacency", 0); + + /* "petsc4py/PETSc/DM.pyx":168 + * + * def getFieldAdjacency(self, field): + * cdef PetscInt f = asInt(field) # <<<<<<<<<<<<<< + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 168, __pyx_L1_error) + __pyx_v_f = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":169 + * def getFieldAdjacency(self, field): + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetAdjacency(self.dm, f, &uC, &uCl) ) + */ + __pyx_v_uC = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":170 + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMGetAdjacency(self.dm, f, &uC, &uCl) ) + * return toBool(uC), toBool(uCl) + */ + __pyx_v_uCl = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":171 + * cdef PetscBool uC = PETSC_FALSE + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetAdjacency(self.dm, f, &uC, &uCl) ) # <<<<<<<<<<<<<< + * return toBool(uC), toBool(uCl) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetAdjacency(__pyx_v_self->dm, __pyx_v_f, (&__pyx_v_uC), (&__pyx_v_uCl))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 171, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":172 + * cdef PetscBool uCl = PETSC_FALSE + * CHKERR( DMGetAdjacency(self.dm, f, &uC, &uCl) ) + * return toBool(uC), toBool(uCl) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_uC); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_uCl); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":167 + * CHKERR( DMSetAdjacency(self.dm, f, uC, uCl) ) + * + * def getFieldAdjacency(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt f = asInt(field) + * cdef PetscBool uC = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getFieldAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":176 + * # + * + * def createSubDM(self, fields): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * cdef DM subdm = DM() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_49createSubDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_48createSubDM[] = "DM.createSubDM(self, fields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_49createSubDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSubDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fields,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fields)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSubDM") < 0)) __PYX_ERR(53, 176, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fields = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSubDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 176, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createSubDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_48createSubDM(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_fields); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_48createSubDM(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_fields) { + struct PyPetscISObject *__pyx_v_iset = 0; + struct PyPetscDMObject *__pyx_v_subdm = 0; + PetscInt *__pyx_v_ifields; + PetscInt __pyx_v_numFields; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSubDM", 0); + __Pyx_INCREF(__pyx_v_fields); + + /* "petsc4py/PETSc/DM.pyx":177 + * + * def createSubDM(self, fields): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * cdef DM subdm = DM() + * cdef PetscInt *ifields = NULL + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":178 + * def createSubDM(self, fields): + * cdef IS iset = IS() + * cdef DM subdm = DM() # <<<<<<<<<<<<<< + * cdef PetscInt *ifields = NULL + * cdef PetscInt numFields = 0 + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_subdm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":179 + * cdef IS iset = IS() + * cdef DM subdm = DM() + * cdef PetscInt *ifields = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numFields = 0 + * fields = iarray_i(fields, &numFields, &ifields) + */ + __pyx_v_ifields = NULL; + + /* "petsc4py/PETSc/DM.pyx":180 + * cdef DM subdm = DM() + * cdef PetscInt *ifields = NULL + * cdef PetscInt numFields = 0 # <<<<<<<<<<<<<< + * fields = iarray_i(fields, &numFields, &ifields) + * CHKERR( DMCreateSubDM( self.dm, numFields, ifields, &iset.iset, &subdm.dm) ) + */ + __pyx_v_numFields = 0; + + /* "petsc4py/PETSc/DM.pyx":181 + * cdef PetscInt *ifields = NULL + * cdef PetscInt numFields = 0 + * fields = iarray_i(fields, &numFields, &ifields) # <<<<<<<<<<<<<< + * CHKERR( DMCreateSubDM( self.dm, numFields, ifields, &iset.iset, &subdm.dm) ) + * return iset, subdm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_fields, (&__pyx_v_numFields), (&__pyx_v_ifields))); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fields, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":182 + * cdef PetscInt numFields = 0 + * fields = iarray_i(fields, &numFields, &ifields) + * CHKERR( DMCreateSubDM( self.dm, numFields, ifields, &iset.iset, &subdm.dm) ) # <<<<<<<<<<<<<< + * return iset, subdm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateSubDM(__pyx_v_self->dm, __pyx_v_numFields, __pyx_v_ifields, (&__pyx_v_iset->iset), (&__pyx_v_subdm->dm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 182, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":183 + * fields = iarray_i(fields, &numFields, &ifields) + * CHKERR( DMCreateSubDM( self.dm, numFields, ifields, &iset.iset, &subdm.dm) ) + * return iset, subdm # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_iset)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_iset)); + __Pyx_INCREF(((PyObject *)__pyx_v_subdm)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_subdm)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_subdm)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":176 + * # + * + * def createSubDM(self, fields): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * cdef DM subdm = DM() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createSubDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XDECREF((PyObject *)__pyx_v_subdm); + __Pyx_XDECREF(__pyx_v_fields); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":187 + * # + * + * def setAuxiliaryVec(self, Vec aux, label=None, value=0, part=0): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_51setAuxiliaryVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_50setAuxiliaryVec[] = "DM.setAuxiliaryVec(self, Vec aux, label=None, value=0, part=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_51setAuxiliaryVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_aux = 0; + PyObject *__pyx_v_label = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_part = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAuxiliaryVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_aux,&__pyx_n_s_label,&__pyx_n_s_value,&__pyx_n_s_part,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_aux)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_part); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAuxiliaryVec") < 0)) __PYX_ERR(53, 187, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_aux = ((struct PyPetscVecObject *)values[0]); + __pyx_v_label = values[1]; + __pyx_v_value = values[2]; + __pyx_v_part = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAuxiliaryVec", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 187, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setAuxiliaryVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_aux), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "aux", 0))) __PYX_ERR(53, 187, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_50setAuxiliaryVec(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_aux, __pyx_v_label, __pyx_v_value, __pyx_v_part); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_50setAuxiliaryVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_aux, PyObject *__pyx_v_label, PyObject *__pyx_v_value, PyObject *__pyx_v_part) { + PetscInt __pyx_v_cvalue; + PetscInt __pyx_v_cpart; + char const *__pyx_v_cval; + DMLabel __pyx_v_clbl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAuxiliaryVec", 0); + __Pyx_INCREF(__pyx_v_label); + + /* "petsc4py/PETSc/DM.pyx":188 + * + * def setAuxiliaryVec(self, Vec aux, label=None, value=0, part=0): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 188, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":189 + * def setAuxiliaryVec(self, Vec aux, label=None, value=0, part=0): + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_part); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 189, __pyx_L1_error) + __pyx_v_cpart = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":190 + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":191 + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":192 + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) # <<<<<<<<<<<<<< + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_label, (&__pyx_v_cval)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_label, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":193 + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMSetAuxiliaryVec(self.dm, clbl, cvalue, cpart, aux.vec) ) + */ + __pyx_t_3 = ((__pyx_v_cval == NULL) != 0); + if (__pyx_t_3) { + __pyx_v_cval = ((char const *)""); + } + + /* "petsc4py/PETSc/DM.pyx":194 + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) # <<<<<<<<<<<<<< + * CHKERR( DMSetAuxiliaryVec(self.dm, clbl, cvalue, cpart, aux.vec) ) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_clbl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 194, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":195 + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMSetAuxiliaryVec(self.dm, clbl, cvalue, cpart, aux.vec) ) # <<<<<<<<<<<<<< + * + * def getAuxiliaryVec(self, label=None, value=0, part=0): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetAuxiliaryVec(__pyx_v_self->dm, __pyx_v_clbl, __pyx_v_cvalue, __pyx_v_cpart, __pyx_v_aux->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 195, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":187 + * # + * + * def setAuxiliaryVec(self, Vec aux, label=None, value=0, part=0): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setAuxiliaryVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_label); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":197 + * CHKERR( DMSetAuxiliaryVec(self.dm, clbl, cvalue, cpart, aux.vec) ) + * + * def getAuxiliaryVec(self, label=None, value=0, part=0): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_53getAuxiliaryVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_52getAuxiliaryVec[] = "DM.getAuxiliaryVec(self, label=None, value=0, part=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_53getAuxiliaryVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_label = 0; + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_part = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAuxiliaryVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_label,&__pyx_n_s_value,&__pyx_n_s_part,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)__pyx_int_0); + values[2] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_part); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getAuxiliaryVec") < 0)) __PYX_ERR(53, 197, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_label = values[0]; + __pyx_v_value = values[1]; + __pyx_v_part = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getAuxiliaryVec", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 197, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getAuxiliaryVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_52getAuxiliaryVec(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_label, __pyx_v_value, __pyx_v_part); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_52getAuxiliaryVec(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_label, PyObject *__pyx_v_value, PyObject *__pyx_v_part) { + PetscInt __pyx_v_cvalue; + PetscInt __pyx_v_cpart; + char const *__pyx_v_cval; + DMLabel __pyx_v_clbl; + struct PyPetscVecObject *__pyx_v_aux = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAuxiliaryVec", 0); + __Pyx_INCREF(__pyx_v_label); + + /* "petsc4py/PETSc/DM.pyx":198 + * + * def getAuxiliaryVec(self, label=None, value=0, part=0): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 198, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":199 + * def getAuxiliaryVec(self, label=None, value=0, part=0): + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_part); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 199, __pyx_L1_error) + __pyx_v_cpart = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":200 + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * cdef Vec aux = Vec() + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":201 + * cdef PetscInt cpart = asInt(part) + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * cdef Vec aux = Vec() + * label = str2bytes(label, &cval) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":202 + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + * cdef Vec aux = Vec() # <<<<<<<<<<<<<< + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_aux = ((struct PyPetscVecObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":203 + * cdef PetscDMLabel clbl = NULL + * cdef Vec aux = Vec() + * label = str2bytes(label, &cval) # <<<<<<<<<<<<<< + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_label, (&__pyx_v_cval)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_label, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":204 + * cdef Vec aux = Vec() + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMGetAuxiliaryVec(self.dm, clbl, cvalue, cpart, &aux.vec) ) + */ + __pyx_t_3 = ((__pyx_v_cval == NULL) != 0); + if (__pyx_t_3) { + __pyx_v_cval = ((char const *)""); + } + + /* "petsc4py/PETSc/DM.pyx":205 + * label = str2bytes(label, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) # <<<<<<<<<<<<<< + * CHKERR( DMGetAuxiliaryVec(self.dm, clbl, cvalue, cpart, &aux.vec) ) + * return aux + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_clbl))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 205, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":206 + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMGetAuxiliaryVec(self.dm, clbl, cvalue, cpart, &aux.vec) ) # <<<<<<<<<<<<<< + * return aux + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetAuxiliaryVec(__pyx_v_self->dm, __pyx_v_clbl, __pyx_v_cvalue, __pyx_v_cpart, (&__pyx_v_aux->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 206, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":207 + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMGetAuxiliaryVec(self.dm, clbl, cvalue, cpart, &aux.vec) ) + * return aux # <<<<<<<<<<<<<< + * + * def setNumFields(self, numFields): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_aux)); + __pyx_r = ((PyObject *)__pyx_v_aux); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":197 + * CHKERR( DMSetAuxiliaryVec(self.dm, clbl, cvalue, cpart, aux.vec) ) + * + * def getAuxiliaryVec(self, label=None, value=0, part=0): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscInt cpart = asInt(part) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getAuxiliaryVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_aux); + __Pyx_XDECREF(__pyx_v_label); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":209 + * return aux + * + * def setNumFields(self, numFields): # <<<<<<<<<<<<<< + * cdef PetscInt cnum = asInt(numFields) + * CHKERR( DMSetNumFields(self.dm, cnum) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_55setNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_54setNumFields[] = "DM.setNumFields(self, numFields)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_55setNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numFields = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumFields (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numFields,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numFields)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumFields") < 0)) __PYX_ERR(53, 209, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_numFields = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumFields", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 209, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_54setNumFields(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_numFields); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_54setNumFields(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_numFields) { + PetscInt __pyx_v_cnum; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumFields", 0); + + /* "petsc4py/PETSc/DM.pyx":210 + * + * def setNumFields(self, numFields): + * cdef PetscInt cnum = asInt(numFields) # <<<<<<<<<<<<<< + * CHKERR( DMSetNumFields(self.dm, cnum) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numFields); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 210, __pyx_L1_error) + __pyx_v_cnum = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":211 + * def setNumFields(self, numFields): + * cdef PetscInt cnum = asInt(numFields) + * CHKERR( DMSetNumFields(self.dm, cnum) ) # <<<<<<<<<<<<<< + * + * def getNumFields(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetNumFields(__pyx_v_self->dm, __pyx_v_cnum)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 211, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":209 + * return aux + * + * def setNumFields(self, numFields): # <<<<<<<<<<<<<< + * cdef PetscInt cnum = asInt(numFields) + * CHKERR( DMSetNumFields(self.dm, cnum) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":213 + * CHKERR( DMSetNumFields(self.dm, cnum) ) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnum = 0 + * CHKERR( DMGetNumFields(self.dm, &cnum) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_57getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_56getNumFields[] = "DM.getNumFields(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_57getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumFields (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumFields", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumFields", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_56getNumFields(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_56getNumFields(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_cnum; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumFields", 0); + + /* "petsc4py/PETSc/DM.pyx":214 + * + * def getNumFields(self): + * cdef PetscInt cnum = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetNumFields(self.dm, &cnum) ) + * return toInt(cnum) + */ + __pyx_v_cnum = 0; + + /* "petsc4py/PETSc/DM.pyx":215 + * def getNumFields(self): + * cdef PetscInt cnum = 0 + * CHKERR( DMGetNumFields(self.dm, &cnum) ) # <<<<<<<<<<<<<< + * return toInt(cnum) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetNumFields(__pyx_v_self->dm, (&__pyx_v_cnum))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 215, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":216 + * cdef PetscInt cnum = 0 + * CHKERR( DMGetNumFields(self.dm, &cnum) ) + * return toInt(cnum) # <<<<<<<<<<<<<< + * + * def setField(self, index, Object field, label=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnum); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":213 + * CHKERR( DMSetNumFields(self.dm, cnum) ) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnum = 0 + * CHKERR( DMGetNumFields(self.dm, &cnum) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":218 + * return toInt(cnum) + * + * def setField(self, index, Object field, label=None): # <<<<<<<<<<<<<< + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = field.obj[0] + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_59setField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_58setField[] = "DM.setField(self, index, Object field, label=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_59setField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + struct PyPetscObjectObject *__pyx_v_field = 0; + PyObject *__pyx_v_label = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_field,&__pyx_n_s_label,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setField", 0, 2, 3, 1); __PYX_ERR(53, 218, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setField") < 0)) __PYX_ERR(53, 218, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_index = values[0]; + __pyx_v_field = ((struct PyPetscObjectObject *)values[1]); + __pyx_v_label = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setField", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 218, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_field), __pyx_ptype_8petsc4py_5PETSc_Object, 0, "field", 0))) __PYX_ERR(53, 218, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_58setField(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_index, __pyx_v_field, __pyx_v_label); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_58setField(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index, struct PyPetscObjectObject *__pyx_v_field, PyObject *__pyx_v_label) { + PetscInt __pyx_v_cidx; + PetscObject __pyx_v_cobj; + DMLabel __pyx_v_clbl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setField", 0); + + /* "petsc4py/PETSc/DM.pyx":219 + * + * def setField(self, index, Object field, label=None): + * cdef PetscInt cidx = asInt(index) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 219, __pyx_L1_error) + __pyx_v_cidx = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":220 + * def setField(self, index, Object field, label=None): + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = field.obj[0] # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * assert label is None + */ + __pyx_v_cobj = (__pyx_v_field->obj[0]); + + /* "petsc4py/PETSc/DM.pyx":221 + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * assert label is None + * CHKERR( DMSetField(self.dm, cidx, clbl, cobj) ) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":222 + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL + * assert label is None # <<<<<<<<<<<<<< + * CHKERR( DMSetField(self.dm, cidx, clbl, cobj) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_2 = (__pyx_v_label == Py_None); + if (unlikely(!(__pyx_t_2 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(53, 222, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DM.pyx":223 + * cdef PetscDMLabel clbl = NULL + * assert label is None + * CHKERR( DMSetField(self.dm, cidx, clbl, cobj) ) # <<<<<<<<<<<<<< + * + * def getField(self, index): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetField(__pyx_v_self->dm, __pyx_v_cidx, __pyx_v_clbl, __pyx_v_cobj)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 223, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":218 + * return toInt(cnum) + * + * def setField(self, index, Object field, label=None): # <<<<<<<<<<<<<< + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = field.obj[0] + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":225 + * CHKERR( DMSetField(self.dm, cidx, clbl, cobj) ) + * + * def getField(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_61getField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_60getField[] = "DM.getField(self, index)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_61getField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getField") < 0)) __PYX_ERR(53, 225, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_index = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 225, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_60getField(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_index); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_60getField(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index) { + PetscInt __pyx_v_cidx; + PetscObject __pyx_v_cobj; + DMLabel __pyx_v_clbl; + struct PyPetscObjectObject *__pyx_v_field = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getField", 0); + + /* "petsc4py/PETSc/DM.pyx":226 + * + * def getField(self, index): + * cdef PetscInt cidx = asInt(index) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * cdef PetscDMLabel clbl = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 226, __pyx_L1_error) + __pyx_v_cidx = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":227 + * def getField(self, index): + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetField(self.dm, cidx, &clbl, &cobj) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/DM.pyx":228 + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = NULL + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetField(self.dm, cidx, &clbl, &cobj) ) + * assert clbl == NULL + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":229 + * cdef PetscObject cobj = NULL + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetField(self.dm, cidx, &clbl, &cobj) ) # <<<<<<<<<<<<<< + * assert clbl == NULL + * cdef Object field = subtype_Object(cobj)() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetField(__pyx_v_self->dm, __pyx_v_cidx, (&__pyx_v_clbl), (&__pyx_v_cobj))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 229, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":230 + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetField(self.dm, cidx, &clbl, &cobj) ) + * assert clbl == NULL # <<<<<<<<<<<<<< + * cdef Object field = subtype_Object(cobj)() + * field.obj[0] = cobj + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_clbl == NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(53, 230, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DM.pyx":231 + * CHKERR( DMGetField(self.dm, cidx, &clbl, &cobj) ) + * assert clbl == NULL + * cdef Object field = subtype_Object(cobj)() # <<<<<<<<<<<<<< + * field.obj[0] = cobj + * PetscINCREF(field.obj) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_Object(__pyx_v_cobj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 231, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(53, 231, __pyx_L1_error) + __pyx_v_field = ((struct PyPetscObjectObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DM.pyx":232 + * assert clbl == NULL + * cdef Object field = subtype_Object(cobj)() + * field.obj[0] = cobj # <<<<<<<<<<<<<< + * PetscINCREF(field.obj) + * return (field, None) + */ + (__pyx_v_field->obj[0]) = __pyx_v_cobj; + + /* "petsc4py/PETSc/DM.pyx":233 + * cdef Object field = subtype_Object(cobj)() + * field.obj[0] = cobj + * PetscINCREF(field.obj) # <<<<<<<<<<<<<< + * return (field, None) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_field->obj)); + + /* "petsc4py/PETSc/DM.pyx":234 + * field.obj[0] = cobj + * PetscINCREF(field.obj) + * return (field, None) # <<<<<<<<<<<<<< + * + * def addField(self, Object field, label=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_field)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_field)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_field)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 1, Py_None); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":225 + * CHKERR( DMSetField(self.dm, cidx, clbl, cobj) ) + * + * def getField(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cidx = asInt(index) + * cdef PetscObject cobj = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_field); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":236 + * return (field, None) + * + * def addField(self, Object field, label=None): # <<<<<<<<<<<<<< + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_63addField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_62addField[] = "DM.addField(self, Object field, label=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_63addField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscObjectObject *__pyx_v_field = 0; + PyObject *__pyx_v_label = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_label,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addField") < 0)) __PYX_ERR(53, 236, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = ((struct PyPetscObjectObject *)values[0]); + __pyx_v_label = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addField", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 236, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.addField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_field), __pyx_ptype_8petsc4py_5PETSc_Object, 0, "field", 0))) __PYX_ERR(53, 236, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_62addField(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_field, __pyx_v_label); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_62addField(struct PyPetscDMObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_field, PyObject *__pyx_v_label) { + PetscObject __pyx_v_cobj; + DMLabel __pyx_v_clbl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addField", 0); + + /* "petsc4py/PETSc/DM.pyx":237 + * + * def addField(self, Object field, label=None): + * cdef PetscObject cobj = field.obj[0] # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * assert label is None + */ + __pyx_v_cobj = (__pyx_v_field->obj[0]); + + /* "petsc4py/PETSc/DM.pyx":238 + * def addField(self, Object field, label=None): + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * assert label is None + * CHKERR( DMAddField(self.dm, clbl, cobj) ) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":239 + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL + * assert label is None # <<<<<<<<<<<<<< + * CHKERR( DMAddField(self.dm, clbl, cobj) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_1 = (__pyx_v_label == Py_None); + if (unlikely(!(__pyx_t_1 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(53, 239, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DM.pyx":240 + * cdef PetscDMLabel clbl = NULL + * assert label is None + * CHKERR( DMAddField(self.dm, clbl, cobj) ) # <<<<<<<<<<<<<< + * + * def clearFields(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMAddField(__pyx_v_self->dm, __pyx_v_clbl, __pyx_v_cobj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 240, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":236 + * return (field, None) + * + * def addField(self, Object field, label=None): # <<<<<<<<<<<<<< + * cdef PetscObject cobj = field.obj[0] + * cdef PetscDMLabel clbl = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.addField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":242 + * CHKERR( DMAddField(self.dm, clbl, cobj) ) + * + * def clearFields(self): # <<<<<<<<<<<<<< + * CHKERR( DMClearFields(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_65clearFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_64clearFields[] = "DM.clearFields(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_65clearFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearFields (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clearFields", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clearFields", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_64clearFields(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_64clearFields(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearFields", 0); + + /* "petsc4py/PETSc/DM.pyx":243 + * + * def clearFields(self): + * CHKERR( DMClearFields(self.dm) ) # <<<<<<<<<<<<<< + * + * def copyFields(self, DM dm): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMClearFields(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 243, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":242 + * CHKERR( DMAddField(self.dm, clbl, cobj) ) + * + * def clearFields(self): # <<<<<<<<<<<<<< + * CHKERR( DMClearFields(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":245 + * CHKERR( DMClearFields(self.dm) ) + * + * def copyFields(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyFields(self.dm, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_67copyFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_66copyFields[] = "DM.copyFields(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_67copyFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copyFields (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copyFields") < 0)) __PYX_ERR(53, 245, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copyFields", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 245, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 245, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_66copyFields(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_66copyFields(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copyFields", 0); + + /* "petsc4py/PETSc/DM.pyx":246 + * + * def copyFields(self, DM dm): + * CHKERR( DMCopyFields(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * + * def createDS(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCopyFields(__pyx_v_self->dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 246, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":245 + * CHKERR( DMClearFields(self.dm) ) + * + * def copyFields(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyFields(self.dm, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":248 + * CHKERR( DMCopyFields(self.dm, dm.dm) ) + * + * def createDS(self): # <<<<<<<<<<<<<< + * CHKERR( DMCreateDS(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_69createDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_68createDS[] = "DM.createDS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_69createDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createDS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createDS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createDS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_68createDS(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_68createDS(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createDS", 0); + + /* "petsc4py/PETSc/DM.pyx":249 + * + * def createDS(self): + * CHKERR( DMCreateDS(self.dm) ) # <<<<<<<<<<<<<< + * + * def clearDS(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateDS(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 249, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":248 + * CHKERR( DMCopyFields(self.dm, dm.dm) ) + * + * def createDS(self): # <<<<<<<<<<<<<< + * CHKERR( DMCreateDS(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":251 + * CHKERR( DMCreateDS(self.dm) ) + * + * def clearDS(self): # <<<<<<<<<<<<<< + * CHKERR( DMClearDS(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_71clearDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_70clearDS[] = "DM.clearDS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_71clearDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearDS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("clearDS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "clearDS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_70clearDS(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_70clearDS(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearDS", 0); + + /* "petsc4py/PETSc/DM.pyx":252 + * + * def clearDS(self): + * CHKERR( DMClearDS(self.dm) ) # <<<<<<<<<<<<<< + * + * def getDS(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMClearDS(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 252, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":251 + * CHKERR( DMCreateDS(self.dm) ) + * + * def clearDS(self): # <<<<<<<<<<<<<< + * CHKERR( DMClearDS(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":254 + * CHKERR( DMClearDS(self.dm) ) + * + * def getDS(self): # <<<<<<<<<<<<<< + * cdef DS ds = DS() + * CHKERR( DMGetDS(self.dm, &ds.ds) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_73getDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_72getDS[] = "DM.getDS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_73getDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_72getDS(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_72getDS(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscDSObject *__pyx_v_ds = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDS", 0); + + /* "petsc4py/PETSc/DM.pyx":255 + * + * def getDS(self): + * cdef DS ds = DS() # <<<<<<<<<<<<<< + * CHKERR( DMGetDS(self.dm, &ds.ds) ) + * PetscINCREF(ds.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ds = ((struct PyPetscDSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":256 + * def getDS(self): + * cdef DS ds = DS() + * CHKERR( DMGetDS(self.dm, &ds.ds) ) # <<<<<<<<<<<<<< + * PetscINCREF(ds.obj) + * return ds + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDS(__pyx_v_self->dm, (&__pyx_v_ds->ds))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":257 + * cdef DS ds = DS() + * CHKERR( DMGetDS(self.dm, &ds.ds) ) + * PetscINCREF(ds.obj) # <<<<<<<<<<<<<< + * return ds + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ds->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":258 + * CHKERR( DMGetDS(self.dm, &ds.ds) ) + * PetscINCREF(ds.obj) + * return ds # <<<<<<<<<<<<<< + * + * def copyDS(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ds)); + __pyx_r = ((PyObject *)__pyx_v_ds); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":254 + * CHKERR( DMClearDS(self.dm) ) + * + * def getDS(self): # <<<<<<<<<<<<<< + * cdef DS ds = DS() + * CHKERR( DMGetDS(self.dm, &ds.ds) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ds); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":260 + * return ds + * + * def copyDS(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyDS(self.dm, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_75copyDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_74copyDS[] = "DM.copyDS(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_75copyDS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copyDS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copyDS") < 0)) __PYX_ERR(53, 260, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copyDS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 260, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 260, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_74copyDS(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_74copyDS(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copyDS", 0); + + /* "petsc4py/PETSc/DM.pyx":261 + * + * def copyDS(self, DM dm): + * CHKERR( DMCopyDS(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * + * def copyDisc(self, DM dm): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCopyDS(__pyx_v_self->dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 261, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":260 + * return ds + * + * def copyDS(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyDS(self.dm, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":263 + * CHKERR( DMCopyDS(self.dm, dm.dm) ) + * + * def copyDisc(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyDisc(self.dm, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_77copyDisc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_76copyDisc[] = "DM.copyDisc(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_77copyDisc(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copyDisc (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copyDisc") < 0)) __PYX_ERR(53, 263, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copyDisc", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 263, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyDisc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 263, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_76copyDisc(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_76copyDisc(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copyDisc", 0); + + /* "petsc4py/PETSc/DM.pyx":264 + * + * def copyDisc(self, DM dm): + * CHKERR( DMCopyDisc(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCopyDisc(__pyx_v_self->dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 264, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":263 + * CHKERR( DMCopyDS(self.dm, dm.dm) ) + * + * def copyDisc(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMCopyDisc(self.dm, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.copyDisc", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":268 + * # + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( DMGetBlockSize(self.dm, &bs) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_79getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_78getBlockSize[] = "DM.getBlockSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_79getBlockSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBlockSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBlockSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBlockSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_78getBlockSize(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_78getBlockSize(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_bs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBlockSize", 0); + + /* "petsc4py/PETSc/DM.pyx":269 + * + * def getBlockSize(self): + * cdef PetscInt bs = 1 # <<<<<<<<<<<<<< + * CHKERR( DMGetBlockSize(self.dm, &bs) ) + * return toInt(bs) + */ + __pyx_v_bs = 1; + + /* "petsc4py/PETSc/DM.pyx":270 + * def getBlockSize(self): + * cdef PetscInt bs = 1 + * CHKERR( DMGetBlockSize(self.dm, &bs) ) # <<<<<<<<<<<<<< + * return toInt(bs) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetBlockSize(__pyx_v_self->dm, (&__pyx_v_bs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 270, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":271 + * cdef PetscInt bs = 1 + * CHKERR( DMGetBlockSize(self.dm, &bs) ) + * return toInt(bs) # <<<<<<<<<<<<<< + * + * def setVecType(self, vec_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_bs); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":268 + * # + * + * def getBlockSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt bs = 1 + * CHKERR( DMGetBlockSize(self.dm, &bs) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getBlockSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":273 + * return toInt(bs) + * + * def setVecType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType vtype = NULL + * vec_type = str2bytes(vec_type, &vtype) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_81setVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_80setVecType[] = "DM.setVecType(self, vec_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_81setVecType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_vec_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVecType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVecType") < 0)) __PYX_ERR(53, 273, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVecType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 273, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setVecType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_80setVecType(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vec_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_80setVecType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_vec_type) { + VecType __pyx_v_vtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVecType", 0); + __Pyx_INCREF(__pyx_v_vec_type); + + /* "petsc4py/PETSc/DM.pyx":274 + * + * def setVecType(self, vec_type): + * cdef PetscVecType vtype = NULL # <<<<<<<<<<<<<< + * vec_type = str2bytes(vec_type, &vtype) + * CHKERR( DMSetVecType(self.dm, vtype) ) + */ + __pyx_v_vtype = NULL; + + /* "petsc4py/PETSc/DM.pyx":275 + * def setVecType(self, vec_type): + * cdef PetscVecType vtype = NULL + * vec_type = str2bytes(vec_type, &vtype) # <<<<<<<<<<<<<< + * CHKERR( DMSetVecType(self.dm, vtype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_vec_type, (&__pyx_v_vtype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_vec_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":276 + * cdef PetscVecType vtype = NULL + * vec_type = str2bytes(vec_type, &vtype) + * CHKERR( DMSetVecType(self.dm, vtype) ) # <<<<<<<<<<<<<< + * + * def createGlobalVec(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetVecType(__pyx_v_self->dm, __pyx_v_vtype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 276, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":273 + * return toInt(bs) + * + * def setVecType(self, vec_type): # <<<<<<<<<<<<<< + * cdef PetscVecType vtype = NULL + * vec_type = str2bytes(vec_type, &vtype) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setVecType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_vec_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":278 + * CHKERR( DMSetVecType(self.dm, vtype) ) + * + * def createGlobalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vg = Vec() + * CHKERR( DMCreateGlobalVector(self.dm, &vg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_83createGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_82createGlobalVec[] = "DM.createGlobalVec(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_83createGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGlobalVec (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createGlobalVec", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createGlobalVec", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_82createGlobalVec(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_82createGlobalVec(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vg = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGlobalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":279 + * + * def createGlobalVec(self): + * cdef Vec vg = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMCreateGlobalVector(self.dm, &vg.vec) ) + * return vg + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vg = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":280 + * def createGlobalVec(self): + * cdef Vec vg = Vec() + * CHKERR( DMCreateGlobalVector(self.dm, &vg.vec) ) # <<<<<<<<<<<<<< + * return vg + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateGlobalVector(__pyx_v_self->dm, (&__pyx_v_vg->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":281 + * cdef Vec vg = Vec() + * CHKERR( DMCreateGlobalVector(self.dm, &vg.vec) ) + * return vg # <<<<<<<<<<<<<< + * + * def createLocalVec(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vg)); + __pyx_r = ((PyObject *)__pyx_v_vg); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":278 + * CHKERR( DMSetVecType(self.dm, vtype) ) + * + * def createGlobalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vg = Vec() + * CHKERR( DMCreateGlobalVector(self.dm, &vg.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createGlobalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vg); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":283 + * return vg + * + * def createLocalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vl = Vec() + * CHKERR( DMCreateLocalVector(self.dm, &vl.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_85createLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_84createLocalVec[] = "DM.createLocalVec(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_85createLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLocalVec (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createLocalVec", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createLocalVec", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_84createLocalVec(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_84createLocalVec(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLocalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":284 + * + * def createLocalVec(self): + * cdef Vec vl = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMCreateLocalVector(self.dm, &vl.vec) ) + * return vl + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":285 + * def createLocalVec(self): + * cdef Vec vl = Vec() + * CHKERR( DMCreateLocalVector(self.dm, &vl.vec) ) # <<<<<<<<<<<<<< + * return vl + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateLocalVector(__pyx_v_self->dm, (&__pyx_v_vl->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 285, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":286 + * cdef Vec vl = Vec() + * CHKERR( DMCreateLocalVector(self.dm, &vl.vec) ) + * return vl # <<<<<<<<<<<<<< + * + * def getGlobalVec(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vl)); + __pyx_r = ((PyObject *)__pyx_v_vl); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":283 + * return vg + * + * def createLocalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vl = Vec() + * CHKERR( DMCreateLocalVector(self.dm, &vl.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createLocalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vl); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":288 + * return vl + * + * def getGlobalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vg = Vec() + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_87getGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_86getGlobalVec[] = "DM.getGlobalVec(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_87getGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGlobalVec (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGlobalVec", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGlobalVec", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_86getGlobalVec(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_86getGlobalVec(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vg = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGlobalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":289 + * + * def getGlobalVec(self): + * cdef Vec vg = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) + * PetscINCREF(vg.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vg = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":290 + * def getGlobalVec(self): + * cdef Vec vg = Vec() + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vg.obj) + * return vg + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetGlobalVector(__pyx_v_self->dm, (&__pyx_v_vg->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 290, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":291 + * cdef Vec vg = Vec() + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) + * PetscINCREF(vg.obj) # <<<<<<<<<<<<<< + * return vg + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vg->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":292 + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) + * PetscINCREF(vg.obj) + * return vg # <<<<<<<<<<<<<< + * + * def restoreGlobalVec(self, Vec vg): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vg)); + __pyx_r = ((PyObject *)__pyx_v_vg); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":288 + * return vl + * + * def getGlobalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vg = Vec() + * CHKERR( DMGetGlobalVector(self.dm, &vg.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getGlobalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vg); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":294 + * return vg + * + * def restoreGlobalVec(self, Vec vg): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDereference(vg.vec) ) + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_89restoreGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_88restoreGlobalVec[] = "DM.restoreGlobalVec(self, Vec vg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_89restoreGlobalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreGlobalVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vg,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreGlobalVec") < 0)) __PYX_ERR(53, 294, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vg = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreGlobalVec", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 294, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.restoreGlobalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vg", 0))) __PYX_ERR(53, 294, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_88restoreGlobalVec(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vg); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_88restoreGlobalVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreGlobalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":295 + * + * def restoreGlobalVec(self, Vec vg): + * CHKERR( PetscObjectDereference(vg.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectDereference(((PetscObject)__pyx_v_vg->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 295, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":296 + * def restoreGlobalVec(self, Vec vg): + * CHKERR( PetscObjectDereference(vg.vec) ) + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) # <<<<<<<<<<<<<< + * + * def getLocalVec(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMRestoreGlobalVector(__pyx_v_self->dm, (&__pyx_v_vg->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 296, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":294 + * return vg + * + * def restoreGlobalVec(self, Vec vg): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDereference(vg.vec) ) + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.restoreGlobalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":298 + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) + * + * def getLocalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vl = Vec() + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_91getLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_90getLocalVec[] = "DM.getLocalVec(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_91getLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalVec (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalVec", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalVec", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_90getLocalVec(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_90getLocalVec(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":299 + * + * def getLocalVec(self): + * cdef Vec vl = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) + * PetscINCREF(vl.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":300 + * def getLocalVec(self): + * cdef Vec vl = Vec() + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(vl.obj) + * return vl + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLocalVector(__pyx_v_self->dm, (&__pyx_v_vl->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 300, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":301 + * cdef Vec vl = Vec() + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) + * PetscINCREF(vl.obj) # <<<<<<<<<<<<<< + * return vl + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_vl->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":302 + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) + * PetscINCREF(vl.obj) + * return vl # <<<<<<<<<<<<<< + * + * def restoreLocalVec(self, Vec vl): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vl)); + __pyx_r = ((PyObject *)__pyx_v_vl); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":298 + * CHKERR( DMRestoreGlobalVector(self.dm, &vg.vec) ) + * + * def getLocalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vl = Vec() + * CHKERR( DMGetLocalVector(self.dm, &vl.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLocalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vl); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":304 + * return vl + * + * def restoreLocalVec(self, Vec vl): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDereference(vl.vec) ) + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_93restoreLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_92restoreLocalVec[] = "DM.restoreLocalVec(self, Vec vl)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_93restoreLocalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vl = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreLocalVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vl,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreLocalVec") < 0)) __PYX_ERR(53, 304, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vl = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreLocalVec", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 304, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.restoreLocalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vl", 0))) __PYX_ERR(53, 304, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_92restoreLocalVec(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vl); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_92restoreLocalVec(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreLocalVec", 0); + + /* "petsc4py/PETSc/DM.pyx":305 + * + * def restoreLocalVec(self, Vec vl): + * CHKERR( PetscObjectDereference(vl.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectDereference(((PetscObject)__pyx_v_vl->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 305, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":306 + * def restoreLocalVec(self, Vec vl): + * CHKERR( PetscObjectDereference(vl.vec) ) + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) # <<<<<<<<<<<<<< + * + * def globalToLocal(self, Vec vg, Vec vl, addv=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMRestoreLocalVector(__pyx_v_self->dm, (&__pyx_v_vl->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 306, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":304 + * return vl + * + * def restoreLocalVec(self, Vec vl): # <<<<<<<<<<<<<< + * CHKERR( PetscObjectDereference(vl.vec) ) + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.restoreLocalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":308 + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) + * + * def globalToLocal(self, Vec vg, Vec vl, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMGlobalToLocalBegin(self.dm, vg.vec, im, vl.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_95globalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_94globalToLocal[] = "DM.globalToLocal(self, Vec vg, Vec vl, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_95globalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vg = 0; + struct PyPetscVecObject *__pyx_v_vl = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("globalToLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vg,&__pyx_n_s_vl,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vl)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalToLocal", 0, 2, 3, 1); __PYX_ERR(53, 308, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "globalToLocal") < 0)) __PYX_ERR(53, 308, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vg = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vl = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("globalToLocal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 308, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.globalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vg", 0))) __PYX_ERR(53, 308, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vl", 0))) __PYX_ERR(53, 308, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_94globalToLocal(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vg, __pyx_v_vl, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_94globalToLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg, struct PyPetscVecObject *__pyx_v_vl, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("globalToLocal", 0); + + /* "petsc4py/PETSc/DM.pyx":309 + * + * def globalToLocal(self, Vec vg, Vec vl, addv=None): + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMGlobalToLocalBegin(self.dm, vg.vec, im, vl.vec) ) + * CHKERR( DMGlobalToLocalEnd (self.dm, vg.vec, im, vl.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(53, 309, __pyx_L1_error) + __pyx_v_im = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":310 + * def globalToLocal(self, Vec vg, Vec vl, addv=None): + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMGlobalToLocalBegin(self.dm, vg.vec, im, vl.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMGlobalToLocalEnd (self.dm, vg.vec, im, vl.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGlobalToLocalBegin(__pyx_v_self->dm, __pyx_v_vg->vec, __pyx_v_im, __pyx_v_vl->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 310, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":311 + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMGlobalToLocalBegin(self.dm, vg.vec, im, vl.vec) ) + * CHKERR( DMGlobalToLocalEnd (self.dm, vg.vec, im, vl.vec) ) # <<<<<<<<<<<<<< + * + * def localToGlobal(self, Vec vl, Vec vg, addv=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGlobalToLocalEnd(__pyx_v_self->dm, __pyx_v_vg->vec, __pyx_v_im, __pyx_v_vl->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 311, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":308 + * CHKERR( DMRestoreLocalVector(self.dm, &vl.vec) ) + * + * def globalToLocal(self, Vec vg, Vec vl, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMGlobalToLocalBegin(self.dm, vg.vec, im, vl.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.globalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":313 + * CHKERR( DMGlobalToLocalEnd (self.dm, vg.vec, im, vl.vec) ) + * + * def localToGlobal(self, Vec vl, Vec vg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToGlobalBegin(self.dm, vl.vec, im, vg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_97localToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_96localToGlobal[] = "DM.localToGlobal(self, Vec vl, Vec vg, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_97localToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vl = 0; + struct PyPetscVecObject *__pyx_v_vg = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localToGlobal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vl,&__pyx_n_s_vg,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vg)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localToGlobal", 0, 2, 3, 1); __PYX_ERR(53, 313, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "localToGlobal") < 0)) __PYX_ERR(53, 313, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vl = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vg = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("localToGlobal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 313, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.localToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vl", 0))) __PYX_ERR(53, 313, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vg", 0))) __PYX_ERR(53, 313, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_96localToGlobal(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vl, __pyx_v_vg, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_96localToGlobal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl, struct PyPetscVecObject *__pyx_v_vg, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localToGlobal", 0); + + /* "petsc4py/PETSc/DM.pyx":314 + * + * def localToGlobal(self, Vec vl, Vec vg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMLocalToGlobalBegin(self.dm, vl.vec, im, vg.vec) ) + * CHKERR( DMLocalToGlobalEnd(self.dm, vl.vec, im, vg.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(53, 314, __pyx_L1_error) + __pyx_v_im = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":315 + * def localToGlobal(self, Vec vl, Vec vg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToGlobalBegin(self.dm, vl.vec, im, vg.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMLocalToGlobalEnd(self.dm, vl.vec, im, vg.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLocalToGlobalBegin(__pyx_v_self->dm, __pyx_v_vl->vec, __pyx_v_im, __pyx_v_vg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 315, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":316 + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToGlobalBegin(self.dm, vl.vec, im, vg.vec) ) + * CHKERR( DMLocalToGlobalEnd(self.dm, vl.vec, im, vg.vec) ) # <<<<<<<<<<<<<< + * + * def localToLocal(self, Vec vl, Vec vlg, addv=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLocalToGlobalEnd(__pyx_v_self->dm, __pyx_v_vl->vec, __pyx_v_im, __pyx_v_vg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 316, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":313 + * CHKERR( DMGlobalToLocalEnd (self.dm, vg.vec, im, vl.vec) ) + * + * def localToGlobal(self, Vec vl, Vec vg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToGlobalBegin(self.dm, vl.vec, im, vg.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.localToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":318 + * CHKERR( DMLocalToGlobalEnd(self.dm, vl.vec, im, vg.vec) ) + * + * def localToLocal(self, Vec vl, Vec vlg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToLocalBegin(self.dm, vl.vec, im, vlg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_99localToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_98localToLocal[] = "DM.localToLocal(self, Vec vl, Vec vlg, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_99localToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vl = 0; + struct PyPetscVecObject *__pyx_v_vlg = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localToLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vl,&__pyx_n_s_vlg,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vl)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vlg)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localToLocal", 0, 2, 3, 1); __PYX_ERR(53, 318, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "localToLocal") < 0)) __PYX_ERR(53, 318, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vl = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vlg = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("localToLocal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 318, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.localToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vl), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vl", 0))) __PYX_ERR(53, 318, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vlg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vlg", 0))) __PYX_ERR(53, 318, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_98localToLocal(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_vl, __pyx_v_vlg, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_98localToLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vl, struct PyPetscVecObject *__pyx_v_vlg, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localToLocal", 0); + + /* "petsc4py/PETSc/DM.pyx":319 + * + * def localToLocal(self, Vec vl, Vec vlg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMLocalToLocalBegin(self.dm, vl.vec, im, vlg.vec) ) + * CHKERR( DMLocalToLocalEnd (self.dm, vl.vec, im, vlg.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(53, 319, __pyx_L1_error) + __pyx_v_im = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":320 + * def localToLocal(self, Vec vl, Vec vlg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToLocalBegin(self.dm, vl.vec, im, vlg.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMLocalToLocalEnd (self.dm, vl.vec, im, vlg.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLocalToLocalBegin(__pyx_v_self->dm, __pyx_v_vl->vec, __pyx_v_im, __pyx_v_vlg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":321 + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToLocalBegin(self.dm, vl.vec, im, vlg.vec) ) + * CHKERR( DMLocalToLocalEnd (self.dm, vl.vec, im, vlg.vec) ) # <<<<<<<<<<<<<< + * + * def getLGMap(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLocalToLocalEnd(__pyx_v_self->dm, __pyx_v_vl->vec, __pyx_v_im, __pyx_v_vlg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 321, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":318 + * CHKERR( DMLocalToGlobalEnd(self.dm, vl.vec, im, vg.vec) ) + * + * def localToLocal(self, Vec vl, Vec vlg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMLocalToLocalBegin(self.dm, vl.vec, im, vlg.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.localToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":323 + * CHKERR( DMLocalToLocalEnd (self.dm, vl.vec, im, vlg.vec) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap lgm = LGMap() + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_101getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_100getLGMap[] = "DM.getLGMap(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_101getLGMap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLGMap (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLGMap", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLGMap", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_100getLGMap(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_100getLGMap(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscLGMapObject *__pyx_v_lgm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLGMap", 0); + + /* "petsc4py/PETSc/DM.pyx":324 + * + * def getLGMap(self): + * cdef LGMap lgm = LGMap() # <<<<<<<<<<<<<< + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) + * PetscINCREF(lgm.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 324, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_lgm = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":325 + * def getLGMap(self): + * cdef LGMap lgm = LGMap() + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) # <<<<<<<<<<<<<< + * PetscINCREF(lgm.obj) + * return lgm + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLocalToGlobalMapping(__pyx_v_self->dm, (&__pyx_v_lgm->lgm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 325, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":326 + * cdef LGMap lgm = LGMap() + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) + * PetscINCREF(lgm.obj) # <<<<<<<<<<<<<< + * return lgm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_lgm->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":327 + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) + * PetscINCREF(lgm.obj) + * return lgm # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_lgm)); + __pyx_r = ((PyObject *)__pyx_v_lgm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":323 + * CHKERR( DMLocalToLocalEnd (self.dm, vl.vec, im, vlg.vec) ) + * + * def getLGMap(self): # <<<<<<<<<<<<<< + * cdef LGMap lgm = LGMap() + * CHKERR( DMGetLocalToGlobalMapping(self.dm, &lgm.lgm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLGMap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_lgm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":331 + * # + * + * def getCoordinateDM(self): # <<<<<<<<<<<<<< + * cdef DM cdm = type(self)() + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_103getCoordinateDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_102getCoordinateDM[] = "DM.getCoordinateDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_103getCoordinateDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinateDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinateDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinateDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_102getCoordinateDM(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_102getCoordinateDM(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscDMObject *__pyx_v_cdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinateDM", 0); + + /* "petsc4py/PETSc/DM.pyx":332 + * + * def getCoordinateDM(self): + * cdef DM cdm = type(self)() # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) + * PetscINCREF(cdm.obj) + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 332, __pyx_L1_error) + __pyx_v_cdm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":333 + * def getCoordinateDM(self): + * cdef DM cdm = type(self)() + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) # <<<<<<<<<<<<<< + * PetscINCREF(cdm.obj) + * return cdm + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateDM(__pyx_v_self->dm, (&__pyx_v_cdm->dm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 333, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":334 + * cdef DM cdm = type(self)() + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) + * PetscINCREF(cdm.obj) # <<<<<<<<<<<<<< + * return cdm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_cdm->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":335 + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) + * PetscINCREF(cdm.obj) + * return cdm # <<<<<<<<<<<<<< + * + * def getCoordinateSection(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_cdm)); + __pyx_r = ((PyObject *)__pyx_v_cdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":331 + * # + * + * def getCoordinateDM(self): # <<<<<<<<<<<<<< + * cdef DM cdm = type(self)() + * CHKERR( DMGetCoordinateDM(self.dm, &cdm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoordinateDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_cdm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":337 + * return cdm + * + * def getCoordinateSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_105getCoordinateSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_104getCoordinateSection[] = "DM.getCoordinateSection(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_105getCoordinateSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinateSection (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinateSection", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinateSection", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_104getCoordinateSection(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_104getCoordinateSection(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinateSection", 0); + + /* "petsc4py/PETSc/DM.pyx":338 + * + * def getCoordinateSection(self): + * cdef Section sec = Section() # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":339 + * def getCoordinateSection(self): + * cdef Section sec = Section() + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) # <<<<<<<<<<<<<< + * PetscINCREF(sec.obj) + * return sec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateSection(__pyx_v_self->dm, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 339, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":340 + * cdef Section sec = Section() + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) # <<<<<<<<<<<<<< + * return sec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sec->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":341 + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + * return sec # <<<<<<<<<<<<<< + * + * def setCoordinates(self, Vec c): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":337 + * return cdm + * + * def getCoordinateSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetCoordinateSection(self.dm, &sec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoordinateSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":343 + * return sec + * + * def setCoordinates(self, Vec c): # <<<<<<<<<<<<<< + * CHKERR( DMSetCoordinates(self.dm, c.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_107setCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_106setCoordinates[] = "DM.setCoordinates(self, Vec c)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_107setCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_c = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinates") < 0)) __PYX_ERR(53, 343, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_c = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinates", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 343, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "c", 0))) __PYX_ERR(53, 343, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_106setCoordinates(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_c); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_106setCoordinates(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_c) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinates", 0); + + /* "petsc4py/PETSc/DM.pyx":344 + * + * def setCoordinates(self, Vec c): + * CHKERR( DMSetCoordinates(self.dm, c.vec) ) # <<<<<<<<<<<<<< + * + * def getCoordinates(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetCoordinates(__pyx_v_self->dm, __pyx_v_c->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 344, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":343 + * return sec + * + * def setCoordinates(self, Vec c): # <<<<<<<<<<<<<< + * CHKERR( DMSetCoordinates(self.dm, c.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":346 + * CHKERR( DMSetCoordinates(self.dm, c.vec) ) + * + * def getCoordinates(self): # <<<<<<<<<<<<<< + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_109getCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_108getCoordinates[] = "DM.getCoordinates(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_109getCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinates (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinates", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinates", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_108getCoordinates(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_108getCoordinates(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_c = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinates", 0); + + /* "petsc4py/PETSc/DM.pyx":347 + * + * def getCoordinates(self): + * cdef Vec c = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) + * PetscINCREF(c.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_c = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":348 + * def getCoordinates(self): + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(c.obj) + * return c + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinates(__pyx_v_self->dm, (&__pyx_v_c->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 348, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":349 + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) + * PetscINCREF(c.obj) # <<<<<<<<<<<<<< + * return c + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_c->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":350 + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) + * PetscINCREF(c.obj) + * return c # <<<<<<<<<<<<<< + * + * def setCoordinatesLocal(self, Vec c): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_c)); + __pyx_r = ((PyObject *)__pyx_v_c); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":346 + * CHKERR( DMSetCoordinates(self.dm, c.vec) ) + * + * def getCoordinates(self): # <<<<<<<<<<<<<< + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinates(self.dm, &c.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":352 + * return c + * + * def setCoordinatesLocal(self, Vec c): # <<<<<<<<<<<<<< + * CHKERR( DMSetCoordinatesLocal(self.dm, c.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_111setCoordinatesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_110setCoordinatesLocal[] = "DM.setCoordinatesLocal(self, Vec c)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_111setCoordinatesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_c = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinatesLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_c,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinatesLocal") < 0)) __PYX_ERR(53, 352, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_c = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinatesLocal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 352, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinatesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "c", 0))) __PYX_ERR(53, 352, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_110setCoordinatesLocal(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_c); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_110setCoordinatesLocal(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_c) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinatesLocal", 0); + + /* "petsc4py/PETSc/DM.pyx":353 + * + * def setCoordinatesLocal(self, Vec c): + * CHKERR( DMSetCoordinatesLocal(self.dm, c.vec) ) # <<<<<<<<<<<<<< + * + * def getCoordinatesLocal(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetCoordinatesLocal(__pyx_v_self->dm, __pyx_v_c->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 353, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":352 + * return c + * + * def setCoordinatesLocal(self, Vec c): # <<<<<<<<<<<<<< + * CHKERR( DMSetCoordinatesLocal(self.dm, c.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setCoordinatesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":355 + * CHKERR( DMSetCoordinatesLocal(self.dm, c.vec) ) + * + * def getCoordinatesLocal(self): # <<<<<<<<<<<<<< + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_113getCoordinatesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_112getCoordinatesLocal[] = "DM.getCoordinatesLocal(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_113getCoordinatesLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinatesLocal (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinatesLocal", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinatesLocal", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_112getCoordinatesLocal(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_112getCoordinatesLocal(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_c = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinatesLocal", 0); + + /* "petsc4py/PETSc/DM.pyx":356 + * + * def getCoordinatesLocal(self): + * cdef Vec c = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) + * PetscINCREF(c.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_c = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":357 + * def getCoordinatesLocal(self): + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) # <<<<<<<<<<<<<< + * PetscINCREF(c.obj) + * return c + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinatesLocal(__pyx_v_self->dm, (&__pyx_v_c->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 357, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":358 + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) + * PetscINCREF(c.obj) # <<<<<<<<<<<<<< + * return c + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_c->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":359 + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) + * PetscINCREF(c.obj) + * return c # <<<<<<<<<<<<<< + * + * def projectCoordinates(self, FE disc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_c)); + __pyx_r = ((PyObject *)__pyx_v_c); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":355 + * CHKERR( DMSetCoordinatesLocal(self.dm, c.vec) ) + * + * def getCoordinatesLocal(self): # <<<<<<<<<<<<<< + * cdef Vec c = Vec() + * CHKERR( DMGetCoordinatesLocal(self.dm, &c.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoordinatesLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_c); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":361 + * return c + * + * def projectCoordinates(self, FE disc): # <<<<<<<<<<<<<< + * CHKERR( DMProjectCoordinates(self.dm, disc.fe)) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_115projectCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_114projectCoordinates[] = "DM.projectCoordinates(self, FE disc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_115projectCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscFEObject *__pyx_v_disc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("projectCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_disc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_disc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "projectCoordinates") < 0)) __PYX_ERR(53, 361, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_disc = ((struct PyPetscFEObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("projectCoordinates", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 361, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.projectCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_disc), __pyx_ptype_8petsc4py_5PETSc_FE, 0, "disc", 0))) __PYX_ERR(53, 361, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_114projectCoordinates(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_disc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_114projectCoordinates(struct PyPetscDMObject *__pyx_v_self, struct PyPetscFEObject *__pyx_v_disc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("projectCoordinates", 0); + + /* "petsc4py/PETSc/DM.pyx":362 + * + * def projectCoordinates(self, FE disc): + * CHKERR( DMProjectCoordinates(self.dm, disc.fe)) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMProjectCoordinates(__pyx_v_self->dm, __pyx_v_disc->fe)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 362, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":363 + * def projectCoordinates(self, FE disc): + * CHKERR( DMProjectCoordinates(self.dm, disc.fe)) + * return self # <<<<<<<<<<<<<< + * + * def getBoundingBox(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":361 + * return c + * + * def projectCoordinates(self, FE disc): # <<<<<<<<<<<<<< + * CHKERR( DMProjectCoordinates(self.dm, disc.fe)) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.projectCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":365 + * return self + * + * def getBoundingBox(self): # <<<<<<<<<<<<<< + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_117getBoundingBox(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_116getBoundingBox[] = "DM.getBoundingBox(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_117getBoundingBox(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBoundingBox (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBoundingBox", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBoundingBox", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_116getBoundingBox(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_116getBoundingBox(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscReal __pyx_v_gmin[3]; + PetscReal __pyx_v_gmax[3]; + PetscInt __pyx_9genexpr14__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBoundingBox", 0); + + /* "petsc4py/PETSc/DM.pyx":366 + * + * def getBoundingBox(self): + * cdef PetscInt i,dim=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * cdef PetscReal gmin[3], gmax[3] + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DM.pyx":367 + * def getBoundingBox(self): + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * cdef PetscReal gmin[3], gmax[3] + * CHKERR( DMGetBoundingBox(self.dm, gmin, gmax) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateDim(__pyx_v_self->dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 367, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":369 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * cdef PetscReal gmin[3], gmax[3] + * CHKERR( DMGetBoundingBox(self.dm, gmin, gmax) ) # <<<<<<<<<<<<<< + * return tuple([(toReal(gmin[i]), toReal(gmax[i])) + * for i from 0 <= i < dim]) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetBoundingBox(__pyx_v_self->dm, __pyx_v_gmin, __pyx_v_gmax)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 369, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":370 + * cdef PetscReal gmin[3], gmax[3] + * CHKERR( DMGetBoundingBox(self.dm, gmin, gmax) ) + * return tuple([(toReal(gmin[i]), toReal(gmax[i])) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim]) + * + */ + __Pyx_XDECREF(__pyx_r); + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "petsc4py/PETSc/DM.pyx":371 + * CHKERR( DMGetBoundingBox(self.dm, gmin, gmax) ) + * return tuple([(toReal(gmin[i]), toReal(gmax[i])) + * for i from 0 <= i < dim]) # <<<<<<<<<<<<<< + * + * def getLocalBoundingBox(self): + */ + __pyx_t_3 = __pyx_v_dim; + for (__pyx_9genexpr14__pyx_v_i = 0; __pyx_9genexpr14__pyx_v_i < __pyx_t_3; __pyx_9genexpr14__pyx_v_i++) { + + /* "petsc4py/PETSc/DM.pyx":370 + * cdef PetscReal gmin[3], gmax[3] + * CHKERR( DMGetBoundingBox(self.dm, gmin, gmax) ) + * return tuple([(toReal(gmin[i]), toReal(gmax[i])) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim]) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_gmin[__pyx_9genexpr14__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_gmax[__pyx_9genexpr14__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + } /* exit inner scope */ + __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":365 + * return self + * + * def getBoundingBox(self): # <<<<<<<<<<<<<< + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getBoundingBox", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":373 + * for i from 0 <= i < dim]) + * + * def getLocalBoundingBox(self): # <<<<<<<<<<<<<< + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_119getLocalBoundingBox(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_118getLocalBoundingBox[] = "DM.getLocalBoundingBox(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_119getLocalBoundingBox(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalBoundingBox (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalBoundingBox", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalBoundingBox", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_118getLocalBoundingBox(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_118getLocalBoundingBox(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscReal __pyx_v_lmin[3]; + PetscReal __pyx_v_lmax[3]; + PetscInt __pyx_9genexpr15__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalBoundingBox", 0); + + /* "petsc4py/PETSc/DM.pyx":374 + * + * def getLocalBoundingBox(self): + * cdef PetscInt i,dim=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * cdef PetscReal lmin[3], lmax[3] + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DM.pyx":375 + * def getLocalBoundingBox(self): + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * cdef PetscReal lmin[3], lmax[3] + * CHKERR( DMGetLocalBoundingBox(self.dm, lmin, lmax) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateDim(__pyx_v_self->dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 375, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":377 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + * cdef PetscReal lmin[3], lmax[3] + * CHKERR( DMGetLocalBoundingBox(self.dm, lmin, lmax) ) # <<<<<<<<<<<<<< + * return tuple([(toReal(lmin[i]), toReal(lmax[i])) + * for i from 0 <= i < dim]) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLocalBoundingBox(__pyx_v_self->dm, __pyx_v_lmin, __pyx_v_lmax)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 377, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":378 + * cdef PetscReal lmin[3], lmax[3] + * CHKERR( DMGetLocalBoundingBox(self.dm, lmin, lmax) ) + * return tuple([(toReal(lmin[i]), toReal(lmax[i])) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim]) + * + */ + __Pyx_XDECREF(__pyx_r); + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "petsc4py/PETSc/DM.pyx":379 + * CHKERR( DMGetLocalBoundingBox(self.dm, lmin, lmax) ) + * return tuple([(toReal(lmin[i]), toReal(lmax[i])) + * for i from 0 <= i < dim]) # <<<<<<<<<<<<<< + * + * def localizeCoordinates(self): + */ + __pyx_t_3 = __pyx_v_dim; + for (__pyx_9genexpr15__pyx_v_i = 0; __pyx_9genexpr15__pyx_v_i < __pyx_t_3; __pyx_9genexpr15__pyx_v_i++) { + + /* "petsc4py/PETSc/DM.pyx":378 + * cdef PetscReal lmin[3], lmax[3] + * CHKERR( DMGetLocalBoundingBox(self.dm, lmin, lmax) ) + * return tuple([(toReal(lmin[i]), toReal(lmax[i])) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim]) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_lmin[__pyx_9genexpr15__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal((__pyx_v_lmax[__pyx_9genexpr15__pyx_v_i])); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + } /* exit inner scope */ + __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":373 + * for i from 0 <= i < dim]) + * + * def getLocalBoundingBox(self): # <<<<<<<<<<<<<< + * cdef PetscInt i,dim=0 + * CHKERR( DMGetCoordinateDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLocalBoundingBox", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":381 + * for i from 0 <= i < dim]) + * + * def localizeCoordinates(self): # <<<<<<<<<<<<<< + * CHKERR( DMLocalizeCoordinates(self.dm) ) + * # + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_121localizeCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_120localizeCoordinates[] = "DM.localizeCoordinates(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_121localizeCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localizeCoordinates (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("localizeCoordinates", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "localizeCoordinates", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_120localizeCoordinates(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_120localizeCoordinates(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localizeCoordinates", 0); + + /* "petsc4py/PETSc/DM.pyx":382 + * + * def localizeCoordinates(self): + * CHKERR( DMLocalizeCoordinates(self.dm) ) # <<<<<<<<<<<<<< + * # + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLocalizeCoordinates(__pyx_v_self->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 382, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":381 + * for i from 0 <= i < dim]) + * + * def localizeCoordinates(self): # <<<<<<<<<<<<<< + * CHKERR( DMLocalizeCoordinates(self.dm) ) + * # + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.localizeCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":385 + * # + * + * def setMatType(self, mat_type): # <<<<<<<<<<<<<< + * """Set matrix type to be used by DM.createMat""" + * cdef PetscMatType mtype = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_123setMatType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_122setMatType[] = "DM.setMatType(self, mat_type)\nSet matrix type to be used by DM.createMat"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_123setMatType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_mat_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMatType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMatType") < 0)) __PYX_ERR(53, 385, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMatType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 385, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setMatType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_122setMatType(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_mat_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_122setMatType(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_mat_type) { + MatType __pyx_v_mtype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMatType", 0); + __Pyx_INCREF(__pyx_v_mat_type); + + /* "petsc4py/PETSc/DM.pyx":387 + * def setMatType(self, mat_type): + * """Set matrix type to be used by DM.createMat""" + * cdef PetscMatType mtype = NULL # <<<<<<<<<<<<<< + * mat_type = str2bytes(mat_type, &mtype) + * CHKERR( DMSetMatType(self.dm, mtype) ) + */ + __pyx_v_mtype = NULL; + + /* "petsc4py/PETSc/DM.pyx":388 + * """Set matrix type to be used by DM.createMat""" + * cdef PetscMatType mtype = NULL + * mat_type = str2bytes(mat_type, &mtype) # <<<<<<<<<<<<<< + * CHKERR( DMSetMatType(self.dm, mtype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_mat_type, (&__pyx_v_mtype)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_mat_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":389 + * cdef PetscMatType mtype = NULL + * mat_type = str2bytes(mat_type, &mtype) + * CHKERR( DMSetMatType(self.dm, mtype) ) # <<<<<<<<<<<<<< + * + * def createMat(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetMatType(__pyx_v_self->dm, __pyx_v_mtype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 389, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":385 + * # + * + * def setMatType(self, mat_type): # <<<<<<<<<<<<<< + * """Set matrix type to be used by DM.createMat""" + * cdef PetscMatType mtype = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setMatType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mat_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":391 + * CHKERR( DMSetMatType(self.dm, mtype) ) + * + * def createMat(self): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateMatrix(self.dm, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_125createMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_124createMat[] = "DM.createMat(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_125createMat(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMat (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createMat", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createMat", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_124createMat(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_124createMat(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMat", 0); + + /* "petsc4py/PETSc/DM.pyx":392 + * + * def createMat(self): + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( DMCreateMatrix(self.dm, &mat.mat) ) + * return mat + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":393 + * def createMat(self): + * cdef Mat mat = Mat() + * CHKERR( DMCreateMatrix(self.dm, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateMatrix(__pyx_v_self->dm, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 393, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":394 + * cdef Mat mat = Mat() + * CHKERR( DMCreateMatrix(self.dm, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * def createMassMatrix(self, DM dmf): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":391 + * CHKERR( DMSetMatType(self.dm, mtype) ) + * + * def createMat(self): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateMatrix(self.dm, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":396 + * return mat + * + * def createMassMatrix(self, DM dmf): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateMassMatrix(self.dm, dmf.dm, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_127createMassMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_126createMassMatrix[] = "DM.createMassMatrix(self, DM dmf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_127createMassMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dmf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createMassMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dmf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dmf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createMassMatrix") < 0)) __PYX_ERR(53, 396, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dmf = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createMassMatrix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 396, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createMassMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmf), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dmf", 0))) __PYX_ERR(53, 396, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_126createMassMatrix(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dmf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_126createMassMatrix(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dmf) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createMassMatrix", 0); + + /* "petsc4py/PETSc/DM.pyx":397 + * + * def createMassMatrix(self, DM dmf): + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( DMCreateMassMatrix(self.dm, dmf.dm, &mat.mat) ) + * return mat + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":398 + * def createMassMatrix(self, DM dmf): + * cdef Mat mat = Mat() + * CHKERR( DMCreateMassMatrix(self.dm, dmf.dm, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateMassMatrix(__pyx_v_self->dm, __pyx_v_dmf->dm, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 398, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":399 + * cdef Mat mat = Mat() + * CHKERR( DMCreateMassMatrix(self.dm, dmf.dm, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * def createInterpolation(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":396 + * return mat + * + * def createMassMatrix(self, DM dmf): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateMassMatrix(self.dm, dmf.dm, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createMassMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":401 + * return mat + * + * def createInterpolation(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat A = Mat() + * cdef Vec scale = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_129createInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_128createInterpolation[] = "DM.createInterpolation(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_129createInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createInterpolation") < 0)) __PYX_ERR(53, 401, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createInterpolation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 401, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 401, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_128createInterpolation(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_128createInterpolation(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + struct PyPetscMatObject *__pyx_v_A = 0; + struct PyPetscVecObject *__pyx_v_scale = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createInterpolation", 0); + + /* "petsc4py/PETSc/DM.pyx":402 + * + * def createInterpolation(self, DM dm): + * cdef Mat A = Mat() # <<<<<<<<<<<<<< + * cdef Vec scale = Vec() + * CHKERR( DMCreateInterpolation(self.dm, dm.dm, + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 402, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_A = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":403 + * def createInterpolation(self, DM dm): + * cdef Mat A = Mat() + * cdef Vec scale = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMCreateInterpolation(self.dm, dm.dm, + * &A.mat, &scale.vec)) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_scale = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":404 + * cdef Mat A = Mat() + * cdef Vec scale = Vec() + * CHKERR( DMCreateInterpolation(self.dm, dm.dm, # <<<<<<<<<<<<<< + * &A.mat, &scale.vec)) + * return(A, scale) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateInterpolation(__pyx_v_self->dm, __pyx_v_dm->dm, (&__pyx_v_A->mat), (&__pyx_v_scale->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 404, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":406 + * CHKERR( DMCreateInterpolation(self.dm, dm.dm, + * &A.mat, &scale.vec)) + * return(A, scale) # <<<<<<<<<<<<<< + * + * def createInjection(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_A)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_A)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_A)); + __Pyx_INCREF(((PyObject *)__pyx_v_scale)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_scale)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_scale)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":401 + * return mat + * + * def createInterpolation(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat A = Mat() + * cdef Vec scale = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_A); + __Pyx_XDECREF((PyObject *)__pyx_v_scale); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":408 + * return(A, scale) + * + * def createInjection(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat inject = Mat() + * CHKERR( DMCreateInjection(self.dm, dm.dm, &inject.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_131createInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_130createInjection[] = "DM.createInjection(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_131createInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createInjection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createInjection") < 0)) __PYX_ERR(53, 408, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createInjection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 408, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 408, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_130createInjection(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_130createInjection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + struct PyPetscMatObject *__pyx_v_inject = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createInjection", 0); + + /* "petsc4py/PETSc/DM.pyx":409 + * + * def createInjection(self, DM dm): + * cdef Mat inject = Mat() # <<<<<<<<<<<<<< + * CHKERR( DMCreateInjection(self.dm, dm.dm, &inject.mat) ) + * return inject + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_inject = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":410 + * def createInjection(self, DM dm): + * cdef Mat inject = Mat() + * CHKERR( DMCreateInjection(self.dm, dm.dm, &inject.mat) ) # <<<<<<<<<<<<<< + * return inject + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateInjection(__pyx_v_self->dm, __pyx_v_dm->dm, (&__pyx_v_inject->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 410, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":411 + * cdef Mat inject = Mat() + * CHKERR( DMCreateInjection(self.dm, dm.dm, &inject.mat) ) + * return inject # <<<<<<<<<<<<<< + * + * def createRestriction(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_inject)); + __pyx_r = ((PyObject *)__pyx_v_inject); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":408 + * return(A, scale) + * + * def createInjection(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat inject = Mat() + * CHKERR( DMCreateInjection(self.dm, dm.dm, &inject.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_inject); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":413 + * return inject + * + * def createRestriction(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateRestriction(self.dm, dm.dm, &mat.mat) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_133createRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_132createRestriction[] = "DM.createRestriction(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_133createRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createRestriction") < 0)) __PYX_ERR(53, 413, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createRestriction", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 413, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(53, 413, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_132createRestriction(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_132createRestriction(struct PyPetscDMObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createRestriction", 0); + + /* "petsc4py/PETSc/DM.pyx":414 + * + * def createRestriction(self, DM dm): + * cdef Mat mat = Mat() # <<<<<<<<<<<<<< + * CHKERR( DMCreateRestriction(self.dm, dm.dm, &mat.mat) ) + * return mat + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 414, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_mat = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":415 + * def createRestriction(self, DM dm): + * cdef Mat mat = Mat() + * CHKERR( DMCreateRestriction(self.dm, dm.dm, &mat.mat) ) # <<<<<<<<<<<<<< + * return mat + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateRestriction(__pyx_v_self->dm, __pyx_v_dm->dm, (&__pyx_v_mat->mat))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 415, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":416 + * cdef Mat mat = Mat() + * CHKERR( DMCreateRestriction(self.dm, dm.dm, &mat.mat) ) + * return mat # <<<<<<<<<<<<<< + * + * def convert(self, dm_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_mat)); + __pyx_r = ((PyObject *)__pyx_v_mat); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":413 + * return inject + * + * def createRestriction(self, DM dm): # <<<<<<<<<<<<<< + * cdef Mat mat = Mat() + * CHKERR( DMCreateRestriction(self.dm, dm.dm, &mat.mat) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_mat); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":418 + * return mat + * + * def convert(self, dm_type): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_135convert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_134convert[] = "DM.convert(self, dm_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_135convert(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("convert (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "convert") < 0)) __PYX_ERR(53, 418, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("convert", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 418, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.convert", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_134convert(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_dm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_134convert(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_dm_type) { + DMType __pyx_v_cval; + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert", 0); + __Pyx_INCREF(__pyx_v_dm_type); + + /* "petsc4py/PETSc/DM.pyx":419 + * + * def convert(self, dm_type): + * cdef PetscDMType cval = NULL # <<<<<<<<<<<<<< + * dm_type = str2bytes(dm_type, &cval) + * cdef PetscDM newdm = NULL + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":420 + * def convert(self, dm_type): + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMConvert(self.dm, cval, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_dm_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dm_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":421 + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMConvert(self.dm, cval, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DM.pyx":422 + * dm_type = str2bytes(dm_type, &cval) + * cdef PetscDM newdm = NULL + * CHKERR( DMConvert(self.dm, cval, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMConvert(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 422, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":423 + * cdef PetscDM newdm = NULL + * CHKERR( DMConvert(self.dm, cval, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * return dm + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __pyx_t_3; + __Pyx_INCREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":424 + * CHKERR( DMConvert(self.dm, cval, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DM.pyx":425 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * return dm # <<<<<<<<<<<<<< + * + * def refine(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":418 + * return mat + * + * def convert(self, dm_type): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dm_type = str2bytes(dm_type, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.convert", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XDECREF(__pyx_v_dm_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":427 + * return dm + * + * def refine(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_137refine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_136refine[] = "DM.refine(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_137refine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("refine (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "refine") < 0)) __PYX_ERR(53, 427, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("refine", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 427, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.refine", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_136refine(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_136refine(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_dmcomm; + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + MPI_Comm __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("refine", 0); + + /* "petsc4py/PETSc/DM.pyx":428 + * + * def refine(self, comm=None): + * cdef MPI_Comm dmcomm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) + */ + __pyx_v_dmcomm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/DM.pyx":429 + * def refine(self, comm=None): + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) # <<<<<<<<<<<<<< + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->dm), (&__pyx_v_dmcomm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 429, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":430 + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMRefine(self.dm, dmcomm, &newdm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_dmcomm); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 430, __pyx_L1_error) + __pyx_v_dmcomm = __pyx_t_2; + + /* "petsc4py/PETSc/DM.pyx":431 + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMRefine(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DM.pyx":432 + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL + * CHKERR( DMRefine(self.dm, dmcomm, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMRefine(__pyx_v_self->dm, __pyx_v_dmcomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 432, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":433 + * cdef PetscDM newdm = NULL + * CHKERR( DMRefine(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * return dm + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 433, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DM.pyx":434 + * CHKERR( DMRefine(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DM.pyx":435 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * return dm # <<<<<<<<<<<<<< + * + * def coarsen(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":427 + * return dm + * + * def refine(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DM.refine", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":437 + * return dm + * + * def coarsen(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_139coarsen(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_138coarsen[] = "DM.coarsen(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_139coarsen(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("coarsen (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "coarsen") < 0)) __PYX_ERR(53, 437, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("coarsen", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 437, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.coarsen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_138coarsen(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_138coarsen(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_dmcomm; + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + MPI_Comm __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("coarsen", 0); + + /* "petsc4py/PETSc/DM.pyx":438 + * + * def coarsen(self, comm=None): + * cdef MPI_Comm dmcomm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) + */ + __pyx_v_dmcomm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/DM.pyx":439 + * def coarsen(self, comm=None): + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) # <<<<<<<<<<<<<< + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->dm), (&__pyx_v_dmcomm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 439, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":440 + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMCoarsen(self.dm, dmcomm, &newdm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_dmcomm); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 440, __pyx_L1_error) + __pyx_v_dmcomm = __pyx_t_2; + + /* "petsc4py/PETSc/DM.pyx":441 + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCoarsen(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DM.pyx":442 + * dmcomm = def_Comm(comm, dmcomm) + * cdef PetscDM newdm = NULL + * CHKERR( DMCoarsen(self.dm, dmcomm, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCoarsen(__pyx_v_self->dm, __pyx_v_dmcomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 442, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":443 + * cdef PetscDM newdm = NULL + * CHKERR( DMCoarsen(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * return dm + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 443, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DM.pyx":444 + * CHKERR( DMCoarsen(self.dm, dmcomm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DM.pyx":445 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * return dm # <<<<<<<<<<<<<< + * + * def refineHierarchy(self, nlevels): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":437 + * return dm + * + * def coarsen(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm dmcomm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &dmcomm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DM.coarsen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":447 + * return dm + * + * def refineHierarchy(self, nlevels): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmf = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_141refineHierarchy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_140refineHierarchy[] = "DM.refineHierarchy(self, nlevels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_141refineHierarchy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nlevels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("refineHierarchy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlevels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlevels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "refineHierarchy") < 0)) __PYX_ERR(53, 447, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nlevels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("refineHierarchy", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 447, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.refineHierarchy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_140refineHierarchy(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_nlevels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_140refineHierarchy(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_nlevels) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + DM *__pyx_v_newdmf; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + struct PyPetscDMObject *__pyx_v_dmf = 0; + PyObject *__pyx_v_hierarchy = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("refineHierarchy", 0); + + /* "petsc4py/PETSc/DM.pyx":448 + * + * def refineHierarchy(self, nlevels): + * cdef PetscInt i, n = asInt(nlevels) # <<<<<<<<<<<<<< + * cdef PetscDM *newdmf = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &newdmf) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nlevels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 448, __pyx_L1_error) + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":449 + * def refineHierarchy(self, nlevels): + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmf = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(n), NULL, &newdmf) + * CHKERR( DMRefineHierarchy(self.dm, n, newdmf) ) + */ + __pyx_v_newdmf = NULL; + + /* "petsc4py/PETSc/DM.pyx":450 + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmf = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &newdmf) # <<<<<<<<<<<<<< + * CHKERR( DMRefineHierarchy(self.dm, n, newdmf) ) + * cdef DM dmf = None + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_newdmf)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":451 + * cdef PetscDM *newdmf = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &newdmf) + * CHKERR( DMRefineHierarchy(self.dm, n, newdmf) ) # <<<<<<<<<<<<<< + * cdef DM dmf = None + * cdef list hierarchy = [] + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMRefineHierarchy(__pyx_v_self->dm, __pyx_v_n, __pyx_v_newdmf)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 451, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":452 + * cdef object tmp = oarray_p(empty_p(n), NULL, &newdmf) + * CHKERR( DMRefineHierarchy(self.dm, n, newdmf) ) + * cdef DM dmf = None # <<<<<<<<<<<<<< + * cdef list hierarchy = [] + * for i from 0 <= i < n: + */ + __Pyx_INCREF(Py_None); + __pyx_v_dmf = ((struct PyPetscDMObject *)Py_None); + + /* "petsc4py/PETSc/DM.pyx":453 + * CHKERR( DMRefineHierarchy(self.dm, n, newdmf) ) + * cdef DM dmf = None + * cdef list hierarchy = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * dmf = subtype_DM(newdmf[i])() + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_hierarchy = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":454 + * cdef DM dmf = None + * cdef list hierarchy = [] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * dmf = subtype_DM(newdmf[i])() + * dmf.dm = newdmf[i] + */ + __pyx_t_1 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + /* "petsc4py/PETSc/DM.pyx":455 + * cdef list hierarchy = [] + * for i from 0 <= i < n: + * dmf = subtype_DM(newdmf[i])() # <<<<<<<<<<<<<< + * dmf.dm = newdmf[i] + * hierarchy.append(dmf) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM((__pyx_v_newdmf[__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 455, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_dmf, ((struct PyPetscDMObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":456 + * for i from 0 <= i < n: + * dmf = subtype_DM(newdmf[i])() + * dmf.dm = newdmf[i] # <<<<<<<<<<<<<< + * hierarchy.append(dmf) + * return hierarchy + */ + __pyx_v_dmf->dm = (__pyx_v_newdmf[__pyx_v_i]); + + /* "petsc4py/PETSc/DM.pyx":457 + * dmf = subtype_DM(newdmf[i])() + * dmf.dm = newdmf[i] + * hierarchy.append(dmf) # <<<<<<<<<<<<<< + * return hierarchy + * + */ + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_hierarchy, ((PyObject *)__pyx_v_dmf)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(53, 457, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DM.pyx":458 + * dmf.dm = newdmf[i] + * hierarchy.append(dmf) + * return hierarchy # <<<<<<<<<<<<<< + * + * def coarsenHierarchy(self, nlevels): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_hierarchy); + __pyx_r = __pyx_v_hierarchy; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":447 + * return dm + * + * def refineHierarchy(self, nlevels): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmf = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.refineHierarchy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF((PyObject *)__pyx_v_dmf); + __Pyx_XDECREF(__pyx_v_hierarchy); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":460 + * return hierarchy + * + * def coarsenHierarchy(self, nlevels): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmc = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_143coarsenHierarchy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_142coarsenHierarchy[] = "DM.coarsenHierarchy(self, nlevels)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_143coarsenHierarchy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nlevels = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("coarsenHierarchy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlevels,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlevels)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "coarsenHierarchy") < 0)) __PYX_ERR(53, 460, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nlevels = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("coarsenHierarchy", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 460, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.coarsenHierarchy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_142coarsenHierarchy(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_nlevels); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_142coarsenHierarchy(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_nlevels) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + DM *__pyx_v_newdmc; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + struct PyPetscDMObject *__pyx_v_dmc = 0; + PyObject *__pyx_v_hierarchy = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("coarsenHierarchy", 0); + + /* "petsc4py/PETSc/DM.pyx":461 + * + * def coarsenHierarchy(self, nlevels): + * cdef PetscInt i, n = asInt(nlevels) # <<<<<<<<<<<<<< + * cdef PetscDM *newdmc = NULL + * cdef object tmp = oarray_p(empty_p(n),NULL, &newdmc) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nlevels); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 461, __pyx_L1_error) + __pyx_v_n = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":462 + * def coarsenHierarchy(self, nlevels): + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmc = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(n),NULL, &newdmc) + * CHKERR( DMCoarsenHierarchy(self.dm, n, newdmc) ) + */ + __pyx_v_newdmc = NULL; + + /* "petsc4py/PETSc/DM.pyx":463 + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmc = NULL + * cdef object tmp = oarray_p(empty_p(n),NULL, &newdmc) # <<<<<<<<<<<<<< + * CHKERR( DMCoarsenHierarchy(self.dm, n, newdmc) ) + * cdef DM dmc = None + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_newdmc)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":464 + * cdef PetscDM *newdmc = NULL + * cdef object tmp = oarray_p(empty_p(n),NULL, &newdmc) + * CHKERR( DMCoarsenHierarchy(self.dm, n, newdmc) ) # <<<<<<<<<<<<<< + * cdef DM dmc = None + * cdef list hierarchy = [] + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCoarsenHierarchy(__pyx_v_self->dm, __pyx_v_n, __pyx_v_newdmc)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 464, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":465 + * cdef object tmp = oarray_p(empty_p(n),NULL, &newdmc) + * CHKERR( DMCoarsenHierarchy(self.dm, n, newdmc) ) + * cdef DM dmc = None # <<<<<<<<<<<<<< + * cdef list hierarchy = [] + * for i from 0 <= i < n: + */ + __Pyx_INCREF(Py_None); + __pyx_v_dmc = ((struct PyPetscDMObject *)Py_None); + + /* "petsc4py/PETSc/DM.pyx":466 + * CHKERR( DMCoarsenHierarchy(self.dm, n, newdmc) ) + * cdef DM dmc = None + * cdef list hierarchy = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * dmc = subtype_DM(newdmc[i])() + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_hierarchy = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":467 + * cdef DM dmc = None + * cdef list hierarchy = [] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * dmc = subtype_DM(newdmc[i])() + * dmc.dm = newdmc[i] + */ + __pyx_t_1 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + + /* "petsc4py/PETSc/DM.pyx":468 + * cdef list hierarchy = [] + * for i from 0 <= i < n: + * dmc = subtype_DM(newdmc[i])() # <<<<<<<<<<<<<< + * dmc.dm = newdmc[i] + * hierarchy.append(dmc) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM((__pyx_v_newdmc[__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 468, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_dmc, ((struct PyPetscDMObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":469 + * for i from 0 <= i < n: + * dmc = subtype_DM(newdmc[i])() + * dmc.dm = newdmc[i] # <<<<<<<<<<<<<< + * hierarchy.append(dmc) + * return hierarchy + */ + __pyx_v_dmc->dm = (__pyx_v_newdmc[__pyx_v_i]); + + /* "petsc4py/PETSc/DM.pyx":470 + * dmc = subtype_DM(newdmc[i])() + * dmc.dm = newdmc[i] + * hierarchy.append(dmc) # <<<<<<<<<<<<<< + * return hierarchy + * + */ + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_hierarchy, ((PyObject *)__pyx_v_dmc)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(53, 470, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DM.pyx":471 + * dmc.dm = newdmc[i] + * hierarchy.append(dmc) + * return hierarchy # <<<<<<<<<<<<<< + * + * def getRefineLevel(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_hierarchy); + __pyx_r = __pyx_v_hierarchy; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":460 + * return hierarchy + * + * def coarsenHierarchy(self, nlevels): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = asInt(nlevels) + * cdef PetscDM *newdmc = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.coarsenHierarchy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF((PyObject *)__pyx_v_dmc); + __Pyx_XDECREF(__pyx_v_hierarchy); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":473 + * return hierarchy + * + * def getRefineLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( DMGetRefineLevel(self.dm, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_145getRefineLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_144getRefineLevel[] = "DM.getRefineLevel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_145getRefineLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRefineLevel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRefineLevel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRefineLevel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_144getRefineLevel(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_144getRefineLevel(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRefineLevel", 0); + + /* "petsc4py/PETSc/DM.pyx":474 + * + * def getRefineLevel(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetRefineLevel(self.dm, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DM.pyx":475 + * def getRefineLevel(self): + * cdef PetscInt n = 0 + * CHKERR( DMGetRefineLevel(self.dm, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetRefineLevel(__pyx_v_self->dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 475, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":476 + * cdef PetscInt n = 0 + * CHKERR( DMGetRefineLevel(self.dm, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * def setRefineLevel(self, level): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":473 + * return hierarchy + * + * def getRefineLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( DMGetRefineLevel(self.dm, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getRefineLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":478 + * return toInt(n) + * + * def setRefineLevel(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_147setRefineLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_146setRefineLevel[] = "DM.setRefineLevel(self, level)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_147setRefineLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_level = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRefineLevel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_level,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_level)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRefineLevel") < 0)) __PYX_ERR(53, 478, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_level = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRefineLevel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 478, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setRefineLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_146setRefineLevel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_level); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_146setRefineLevel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_level) { + PetscInt __pyx_v_clevel; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRefineLevel", 0); + + /* "petsc4py/PETSc/DM.pyx":479 + * + * def setRefineLevel(self, level): + * cdef PetscInt clevel = asInt(level) # <<<<<<<<<<<<<< + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_level); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 479, __pyx_L1_error) + __pyx_v_clevel = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":480 + * def setRefineLevel(self, level): + * cdef PetscInt clevel = asInt(level) + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) # <<<<<<<<<<<<<< + * + * def getCoarsenLevel(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetRefineLevel(__pyx_v_self->dm, __pyx_v_clevel)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 480, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":478 + * return toInt(n) + * + * def setRefineLevel(self, level): # <<<<<<<<<<<<<< + * cdef PetscInt clevel = asInt(level) + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setRefineLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":482 + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) + * + * def getCoarsenLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( DMGetCoarsenLevel(self.dm, &n) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_149getCoarsenLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_148getCoarsenLevel[] = "DM.getCoarsenLevel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_149getCoarsenLevel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoarsenLevel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoarsenLevel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoarsenLevel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_148getCoarsenLevel(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_148getCoarsenLevel(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoarsenLevel", 0); + + /* "petsc4py/PETSc/DM.pyx":483 + * + * def getCoarsenLevel(self): + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetCoarsenLevel(self.dm, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DM.pyx":484 + * def getCoarsenLevel(self): + * cdef PetscInt n = 0 + * CHKERR( DMGetCoarsenLevel(self.dm, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoarsenLevel(__pyx_v_self->dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 484, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":485 + * cdef PetscInt n = 0 + * CHKERR( DMGetCoarsenLevel(self.dm, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":482 + * CHKERR( DMSetRefineLevel(self.dm, clevel) ) + * + * def getCoarsenLevel(self): # <<<<<<<<<<<<<< + * cdef PetscInt n = 0 + * CHKERR( DMGetCoarsenLevel(self.dm, &n) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getCoarsenLevel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":489 + * # + * + * def adaptLabel(self, label): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_151adaptLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_150adaptLabel[] = "DM.adaptLabel(self, label)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_151adaptLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_label = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adaptLabel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_label,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adaptLabel") < 0)) __PYX_ERR(53, 489, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_label = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("adaptLabel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 489, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.adaptLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_150adaptLabel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_label); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_150adaptLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_label) { + char const *__pyx_v_cval; + DMLabel __pyx_v_clbl; + struct PyPetscDMObject *__pyx_v_newdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adaptLabel", 0); + __Pyx_INCREF(__pyx_v_label); + + /* "petsc4py/PETSc/DM.pyx":490 + * + * def adaptLabel(self, label): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":491 + * def adaptLabel(self, label): + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * label = str2bytes(label, &cval) + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":492 + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * cdef DM newdm = DMPlex() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_label, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_label, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":493 + * cdef PetscDMLabel clbl = NULL + * label = str2bytes(label, &cval) + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) # <<<<<<<<<<<<<< + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptLabel(self.dm, clbl, &newdm.dm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_clbl))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 493, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":494 + * label = str2bytes(label, &cval) + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * cdef DM newdm = DMPlex() # <<<<<<<<<<<<<< + * CHKERR( DMAdaptLabel(self.dm, clbl, &newdm.dm) ) + * return newdm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_newdm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":495 + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptLabel(self.dm, clbl, &newdm.dm) ) # <<<<<<<<<<<<<< + * return newdm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMAdaptLabel(__pyx_v_self->dm, __pyx_v_clbl, (&__pyx_v_newdm->dm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 495, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":496 + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptLabel(self.dm, clbl, &newdm.dm) ) + * return newdm # <<<<<<<<<<<<<< + * + * def adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_newdm)); + __pyx_r = ((PyObject *)__pyx_v_newdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":489 + * # + * + * def adaptLabel(self, label): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel clbl = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.adaptLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_newdm); + __Pyx_XDECREF(__pyx_v_label); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":498 + * return newdm + * + * def adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel cbdlbl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_153adaptMetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_152adaptMetric[] = "DM.adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_153adaptMetric(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric = 0; + PyObject *__pyx_v_bdLabel = 0; + PyObject *__pyx_v_rgLabel = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("adaptMetric (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric,&__pyx_n_s_bdLabel,&__pyx_n_s_rgLabel,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bdLabel); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_rgLabel); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "adaptMetric") < 0)) __PYX_ERR(53, 498, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_metric = ((struct PyPetscVecObject *)values[0]); + __pyx_v_bdLabel = values[1]; + __pyx_v_rgLabel = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("adaptMetric", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 498, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.adaptMetric", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric", 0))) __PYX_ERR(53, 498, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_152adaptMetric(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_metric, __pyx_v_bdLabel, __pyx_v_rgLabel); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_152adaptMetric(struct PyPetscDMObject *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, PyObject *__pyx_v_bdLabel, PyObject *__pyx_v_rgLabel) { + char const *__pyx_v_cval; + DMLabel __pyx_v_cbdlbl; + DMLabel __pyx_v_crglbl; + struct PyPetscDMObject *__pyx_v_newdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("adaptMetric", 0); + __Pyx_INCREF(__pyx_v_bdLabel); + __Pyx_INCREF(__pyx_v_rgLabel); + + /* "petsc4py/PETSc/DM.pyx":499 + * + * def adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel cbdlbl = NULL + * cdef PetscDMLabel crglbl = NULL + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DM.pyx":500 + * def adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None): + * cdef const char *cval = NULL + * cdef PetscDMLabel cbdlbl = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel crglbl = NULL + * bdLabel = str2bytes(bdLabel, &cval) + */ + __pyx_v_cbdlbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":501 + * cdef const char *cval = NULL + * cdef PetscDMLabel cbdlbl = NULL + * cdef PetscDMLabel crglbl = NULL # <<<<<<<<<<<<<< + * bdLabel = str2bytes(bdLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + */ + __pyx_v_crglbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":502 + * cdef PetscDMLabel cbdlbl = NULL + * cdef PetscDMLabel crglbl = NULL + * bdLabel = str2bytes(bdLabel, &cval) # <<<<<<<<<<<<<< + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &cbdlbl) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_bdLabel, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_bdLabel, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":503 + * cdef PetscDMLabel crglbl = NULL + * bdLabel = str2bytes(bdLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &cbdlbl) ) + * rgLabel = str2bytes(rgLabel, &cval) + */ + __pyx_t_2 = ((__pyx_v_cval == NULL) != 0); + if (__pyx_t_2) { + __pyx_v_cval = ((char const *)""); + } + + /* "petsc4py/PETSc/DM.pyx":504 + * bdLabel = str2bytes(bdLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &cbdlbl) ) # <<<<<<<<<<<<<< + * rgLabel = str2bytes(rgLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_cbdlbl))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 504, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":505 + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &cbdlbl) ) + * rgLabel = str2bytes(rgLabel, &cval) # <<<<<<<<<<<<<< + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &crglbl) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_rgLabel, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_rgLabel, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":506 + * CHKERR( DMGetLabel(self.dm, cval, &cbdlbl) ) + * rgLabel = str2bytes(rgLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &crglbl) ) + * cdef DM newdm = DMPlex() + */ + __pyx_t_2 = ((__pyx_v_cval == NULL) != 0); + if (__pyx_t_2) { + __pyx_v_cval = ((char const *)""); + } + + /* "petsc4py/PETSc/DM.pyx":507 + * rgLabel = str2bytes(rgLabel, &cval) + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &crglbl) ) # <<<<<<<<<<<<<< + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptMetric(self.dm, metric.vec, cbdlbl, crglbl, &newdm.dm) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cval, (&__pyx_v_crglbl))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 507, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":508 + * if cval == NULL: cval = b"" # XXX Should be fixed upstream + * CHKERR( DMGetLabel(self.dm, cval, &crglbl) ) + * cdef DM newdm = DMPlex() # <<<<<<<<<<<<<< + * CHKERR( DMAdaptMetric(self.dm, metric.vec, cbdlbl, crglbl, &newdm.dm) ) + * return newdm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 508, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_newdm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":509 + * CHKERR( DMGetLabel(self.dm, cval, &crglbl) ) + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptMetric(self.dm, metric.vec, cbdlbl, crglbl, &newdm.dm) ) # <<<<<<<<<<<<<< + * return newdm + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMAdaptMetric(__pyx_v_self->dm, __pyx_v_metric->vec, __pyx_v_cbdlbl, __pyx_v_crglbl, (&__pyx_v_newdm->dm))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 509, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":510 + * cdef DM newdm = DMPlex() + * CHKERR( DMAdaptMetric(self.dm, metric.vec, cbdlbl, crglbl, &newdm.dm) ) + * return newdm # <<<<<<<<<<<<<< + * + * def getLabel(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_newdm)); + __pyx_r = ((PyObject *)__pyx_v_newdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":498 + * return newdm + * + * def adaptMetric(self, Vec metric, bdLabel=None, rgLabel=None): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscDMLabel cbdlbl = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.adaptMetric", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_newdm); + __Pyx_XDECREF(__pyx_v_bdLabel); + __Pyx_XDECREF(__pyx_v_rgLabel); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":512 + * return newdm + * + * def getLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef DMLabel dmlabel = DMLabel() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_155getLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_154getLabel[] = "DM.getLabel(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_155getLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabel") < 0)) __PYX_ERR(53, 512, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 512, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_154getLabel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_154getLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + struct PyPetscDMLabelObject *__pyx_v_dmlabel = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabel", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":513 + * + * def getLabel(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * cdef DMLabel dmlabel = DMLabel() + * name = str2bytes(name, &cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":514 + * def getLabel(self, name): + * cdef const char *cname = NULL + * cdef DMLabel dmlabel = DMLabel() # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabel(self.dm, cname, &dmlabel.dmlabel) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dmlabel = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":515 + * cdef const char *cname = NULL + * cdef DMLabel dmlabel = DMLabel() + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cname, &dmlabel.dmlabel) ) + * PetscINCREF(dmlabel.obj) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":516 + * cdef DMLabel dmlabel = DMLabel() + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabel(self.dm, cname, &dmlabel.dmlabel) ) # <<<<<<<<<<<<<< + * PetscINCREF(dmlabel.obj) + * return dmlabel + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_dmlabel->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 516, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":517 + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabel(self.dm, cname, &dmlabel.dmlabel) ) + * PetscINCREF(dmlabel.obj) # <<<<<<<<<<<<<< + * return dmlabel + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dmlabel->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":518 + * CHKERR( DMGetLabel(self.dm, cname, &dmlabel.dmlabel) ) + * PetscINCREF(dmlabel.obj) + * return dmlabel # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dmlabel)); + __pyx_r = ((PyObject *)__pyx_v_dmlabel); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":512 + * return newdm + * + * def getLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef DMLabel dmlabel = DMLabel() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dmlabel); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":522 + * # + * + * def setSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetSection(self.dm, sec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_157setSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_156setSection[] = "DM.setSection(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_157setSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSection") < 0)) __PYX_ERR(53, 522, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 522, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(53, 522, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_156setSection(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_156setSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSection", 0); + + /* "petsc4py/PETSc/DM.pyx":523 + * + * def setSection(self, Section sec): + * CHKERR( DMSetSection(self.dm, sec.sec) ) # <<<<<<<<<<<<<< + * + * def getSection(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetSection(__pyx_v_self->dm, __pyx_v_sec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 523, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":522 + * # + * + * def setSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetSection(self.dm, sec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":525 + * CHKERR( DMSetSection(self.dm, sec.sec) ) + * + * def getSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetSection(self.dm, &sec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_159getSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_158getSection[] = "DM.getSection(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_159getSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSection (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSection", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSection", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_158getSection(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_158getSection(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSection", 0); + + /* "petsc4py/PETSc/DM.pyx":526 + * + * def getSection(self): + * cdef Section sec = Section() # <<<<<<<<<<<<<< + * CHKERR( DMGetSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":527 + * def getSection(self): + * cdef Section sec = Section() + * CHKERR( DMGetSection(self.dm, &sec.sec) ) # <<<<<<<<<<<<<< + * PetscINCREF(sec.obj) + * return sec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetSection(__pyx_v_self->dm, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 527, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":528 + * cdef Section sec = Section() + * CHKERR( DMGetSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) # <<<<<<<<<<<<<< + * return sec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sec->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":529 + * CHKERR( DMGetSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + * return sec # <<<<<<<<<<<<<< + * + * def setLocalSection(self, Section sec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":525 + * CHKERR( DMSetSection(self.dm, sec.sec) ) + * + * def getSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetSection(self.dm, &sec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":531 + * return sec + * + * def setLocalSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetLocalSection(self.dm, sec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_161setLocalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_160setLocalSection[] = "DM.setLocalSection(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_161setLocalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalSection") < 0)) __PYX_ERR(53, 531, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalSection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 531, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLocalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(53, 531, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_160setLocalSection(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_160setLocalSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalSection", 0); + + /* "petsc4py/PETSc/DM.pyx":532 + * + * def setLocalSection(self, Section sec): + * CHKERR( DMSetLocalSection(self.dm, sec.sec) ) # <<<<<<<<<<<<<< + * + * def getLocalSection(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetLocalSection(__pyx_v_self->dm, __pyx_v_sec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 532, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":531 + * return sec + * + * def setLocalSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetLocalSection(self.dm, sec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLocalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":534 + * CHKERR( DMSetLocalSection(self.dm, sec.sec) ) + * + * def getLocalSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_163getLocalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_162getLocalSection[] = "DM.getLocalSection(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_163getLocalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSection (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSection", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSection", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_162getLocalSection(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_162getLocalSection(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSection", 0); + + /* "petsc4py/PETSc/DM.pyx":535 + * + * def getLocalSection(self): + * cdef Section sec = Section() # <<<<<<<<<<<<<< + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":536 + * def getLocalSection(self): + * cdef Section sec = Section() + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) # <<<<<<<<<<<<<< + * PetscINCREF(sec.obj) + * return sec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLocalSection(__pyx_v_self->dm, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 536, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":537 + * cdef Section sec = Section() + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) # <<<<<<<<<<<<<< + * return sec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sec->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":538 + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + * return sec # <<<<<<<<<<<<<< + * + * def setGlobalSection(self, Section sec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":534 + * CHKERR( DMSetLocalSection(self.dm, sec.sec) ) + * + * def getLocalSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetLocalSection(self.dm, &sec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLocalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":540 + * return sec + * + * def setGlobalSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetGlobalSection(self.dm, sec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_165setGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_164setGlobalSection[] = "DM.setGlobalSection(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_165setGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGlobalSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGlobalSection") < 0)) __PYX_ERR(53, 540, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGlobalSection", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 540, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setGlobalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(53, 540, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_164setGlobalSection(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_164setGlobalSection(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGlobalSection", 0); + + /* "petsc4py/PETSc/DM.pyx":541 + * + * def setGlobalSection(self, Section sec): + * CHKERR( DMSetGlobalSection(self.dm, sec.sec) ) # <<<<<<<<<<<<<< + * + * def getGlobalSection(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetGlobalSection(__pyx_v_self->dm, __pyx_v_sec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 541, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":540 + * return sec + * + * def setGlobalSection(self, Section sec): # <<<<<<<<<<<<<< + * CHKERR( DMSetGlobalSection(self.dm, sec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setGlobalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":543 + * CHKERR( DMSetGlobalSection(self.dm, sec.sec) ) + * + * def getGlobalSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_167getGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_166getGlobalSection[] = "DM.getGlobalSection(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_167getGlobalSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGlobalSection (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGlobalSection", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGlobalSection", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_166getGlobalSection(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_166getGlobalSection(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGlobalSection", 0); + + /* "petsc4py/PETSc/DM.pyx":544 + * + * def getGlobalSection(self): + * cdef Section sec = Section() # <<<<<<<<<<<<<< + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":545 + * def getGlobalSection(self): + * cdef Section sec = Section() + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) # <<<<<<<<<<<<<< + * PetscINCREF(sec.obj) + * return sec + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetGlobalSection(__pyx_v_self->dm, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 545, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":546 + * cdef Section sec = Section() + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) # <<<<<<<<<<<<<< + * return sec + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sec->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":547 + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) + * PetscINCREF(sec.obj) + * return sec # <<<<<<<<<<<<<< + * + * setDefaultSection = setSection + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":543 + * CHKERR( DMSetGlobalSection(self.dm, sec.sec) ) + * + * def getGlobalSection(self): # <<<<<<<<<<<<<< + * cdef Section sec = Section() + * CHKERR( DMGetGlobalSection(self.dm, &sec.sec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getGlobalSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":556 + * getDefaultGlobalSection = getGlobalSection + * + * def createSectionSF(self, Section localsec, Section globalsec): # <<<<<<<<<<<<<< + * CHKERR( DMCreateSectionSF(self.dm, localsec.sec, globalsec.sec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_169createSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_168createSectionSF[] = "DM.createSectionSF(self, Section localsec, Section globalsec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_169createSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_localsec = 0; + struct PyPetscSectionObject *__pyx_v_globalsec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSectionSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_localsec,&__pyx_n_s_globalsec,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_localsec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_globalsec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSectionSF", 1, 2, 2, 1); __PYX_ERR(53, 556, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSectionSF") < 0)) __PYX_ERR(53, 556, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_localsec = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_globalsec = ((struct PyPetscSectionObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSectionSF", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 556, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_localsec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "localsec", 0))) __PYX_ERR(53, 556, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_globalsec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "globalsec", 0))) __PYX_ERR(53, 556, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_168createSectionSF(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_localsec, __pyx_v_globalsec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_168createSectionSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_localsec, struct PyPetscSectionObject *__pyx_v_globalsec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSectionSF", 0); + + /* "petsc4py/PETSc/DM.pyx":557 + * + * def createSectionSF(self, Section localsec, Section globalsec): + * CHKERR( DMCreateSectionSF(self.dm, localsec.sec, globalsec.sec) ) # <<<<<<<<<<<<<< + * + * def getSectionSF(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateSectionSF(__pyx_v_self->dm, __pyx_v_localsec->sec, __pyx_v_globalsec->sec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 557, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":556 + * getDefaultGlobalSection = getGlobalSection + * + * def createSectionSF(self, Section localsec, Section globalsec): # <<<<<<<<<<<<<< + * CHKERR( DMCreateSectionSF(self.dm, localsec.sec, globalsec.sec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":559 + * CHKERR( DMCreateSectionSF(self.dm, localsec.sec, globalsec.sec) ) + * + * def getSectionSF(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_171getSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_170getSectionSF[] = "DM.getSectionSF(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_171getSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSectionSF (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSectionSF", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSectionSF", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_170getSectionSF(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_170getSectionSF(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSectionSF", 0); + + /* "petsc4py/PETSc/DM.pyx":560 + * + * def getSectionSF(self): + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":561 + * def getSectionSF(self): + * cdef SF sf = SF() + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) # <<<<<<<<<<<<<< + * PetscINCREF(sf.obj) + * return sf + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetSectionSF(__pyx_v_self->dm, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 561, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":562 + * cdef SF sf = SF() + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) # <<<<<<<<<<<<<< + * return sf + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sf->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":563 + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) + * return sf # <<<<<<<<<<<<<< + * + * def setSectionSF(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":559 + * CHKERR( DMCreateSectionSF(self.dm, localsec.sec, globalsec.sec) ) + * + * def getSectionSF(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMGetSectionSF(self.dm, &sf.sf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":565 + * return sf + * + * def setSectionSF(self, SF sf): # <<<<<<<<<<<<<< + * CHKERR( DMSetSectionSF(self.dm, sf.sf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_173setSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_172setSectionSF[] = "DM.setSectionSF(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_173setSectionSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSectionSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSectionSF") < 0)) __PYX_ERR(53, 565, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSectionSF", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 565, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(53, 565, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_172setSectionSF(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_172setSectionSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSectionSF", 0); + + /* "petsc4py/PETSc/DM.pyx":566 + * + * def setSectionSF(self, SF sf): + * CHKERR( DMSetSectionSF(self.dm, sf.sf) ) # <<<<<<<<<<<<<< + * + * createDefaultSF = createSectionSF + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetSectionSF(__pyx_v_self->dm, __pyx_v_sf->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 566, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":565 + * return sf + * + * def setSectionSF(self, SF sf): # <<<<<<<<<<<<<< + * CHKERR( DMSetSectionSF(self.dm, sf.sf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSectionSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":572 + * setDefaultSF = setSectionSF + * + * def getPointSF(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_175getPointSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_174getPointSF[] = "DM.getPointSF(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_175getPointSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointSF (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPointSF", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPointSF", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_174getPointSF(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_174getPointSF(struct PyPetscDMObject *__pyx_v_self) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointSF", 0); + + /* "petsc4py/PETSc/DM.pyx":573 + * + * def getPointSF(self): + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":574 + * def getPointSF(self): + * cdef SF sf = SF() + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) # <<<<<<<<<<<<<< + * PetscINCREF(sf.obj) + * return sf + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetPointSF(__pyx_v_self->dm, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 574, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":575 + * cdef SF sf = SF() + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) # <<<<<<<<<<<<<< + * return sf + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_sf->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":576 + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) + * PetscINCREF(sf.obj) + * return sf # <<<<<<<<<<<<<< + * + * def setPointSF(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":572 + * setDefaultSF = setSectionSF + * + * def getPointSF(self): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMGetPointSF(self.dm, &sf.sf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getPointSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":578 + * return sf + * + * def setPointSF(self, SF sf): # <<<<<<<<<<<<<< + * CHKERR( DMSetPointSF(self.dm, sf.sf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_177setPointSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_176setPointSF[] = "DM.setPointSF(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_177setPointSF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPointSF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPointSF") < 0)) __PYX_ERR(53, 578, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPointSF", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 578, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setPointSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(53, 578, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_176setPointSF(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_176setPointSF(struct PyPetscDMObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPointSF", 0); + + /* "petsc4py/PETSc/DM.pyx":579 + * + * def setPointSF(self, SF sf): + * CHKERR( DMSetPointSF(self.dm, sf.sf) ) # <<<<<<<<<<<<<< + * + * def getNumLabels(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetPointSF(__pyx_v_self->dm, __pyx_v_sf->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 579, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":578 + * return sf + * + * def setPointSF(self, SF sf): # <<<<<<<<<<<<<< + * CHKERR( DMSetPointSF(self.dm, sf.sf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setPointSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":581 + * CHKERR( DMSetPointSF(self.dm, sf.sf) ) + * + * def getNumLabels(self): # <<<<<<<<<<<<<< + * cdef PetscInt nLabels = 0 + * CHKERR( DMGetNumLabels(self.dm, &nLabels) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_179getNumLabels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_178getNumLabels[] = "DM.getNumLabels(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_179getNumLabels(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumLabels (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumLabels", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumLabels", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_178getNumLabels(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_178getNumLabels(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_nLabels; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumLabels", 0); + + /* "petsc4py/PETSc/DM.pyx":582 + * + * def getNumLabels(self): + * cdef PetscInt nLabels = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetNumLabels(self.dm, &nLabels) ) + * return toInt(nLabels) + */ + __pyx_v_nLabels = 0; + + /* "petsc4py/PETSc/DM.pyx":583 + * def getNumLabels(self): + * cdef PetscInt nLabels = 0 + * CHKERR( DMGetNumLabels(self.dm, &nLabels) ) # <<<<<<<<<<<<<< + * return toInt(nLabels) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetNumLabels(__pyx_v_self->dm, (&__pyx_v_nLabels))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 583, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":584 + * cdef PetscInt nLabels = 0 + * CHKERR( DMGetNumLabels(self.dm, &nLabels) ) + * return toInt(nLabels) # <<<<<<<<<<<<<< + * + * def getLabelName(self, index): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nLabels); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":581 + * CHKERR( DMSetPointSF(self.dm, sf.sf) ) + * + * def getNumLabels(self): # <<<<<<<<<<<<<< + * cdef PetscInt nLabels = 0 + * CHKERR( DMGetNumLabels(self.dm, &nLabels) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getNumLabels", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":586 + * return toInt(nLabels) + * + * def getLabelName(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cindex = asInt(index) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_181getLabelName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_180getLabelName[] = "DM.getLabelName(self, index)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_181getLabelName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabelName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabelName") < 0)) __PYX_ERR(53, 586, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_index = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabelName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 586, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_180getLabelName(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_index); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_180getLabelName(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_index) { + PetscInt __pyx_v_cindex; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabelName", 0); + + /* "petsc4py/PETSc/DM.pyx":587 + * + * def getLabelName(self, index): + * cdef PetscInt cindex = asInt(index) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * CHKERR( DMGetLabelName(self.dm, cindex, &cname) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 587, __pyx_L1_error) + __pyx_v_cindex = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":588 + * def getLabelName(self, index): + * cdef PetscInt cindex = asInt(index) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetLabelName(self.dm, cindex, &cname) ) + * return bytes2str(cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":589 + * cdef PetscInt cindex = asInt(index) + * cdef const char *cname = NULL + * CHKERR( DMGetLabelName(self.dm, cindex, &cname) ) # <<<<<<<<<<<<<< + * return bytes2str(cname) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabelName(__pyx_v_self->dm, __pyx_v_cindex, (&__pyx_v_cname))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 589, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":590 + * cdef const char *cname = NULL + * CHKERR( DMGetLabelName(self.dm, cindex, &cname) ) + * return bytes2str(cname) # <<<<<<<<<<<<<< + * + * def hasLabel(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cname); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":586 + * return toInt(nLabels) + * + * def getLabelName(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cindex = asInt(index) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":592 + * return bytes2str(cname) + * + * def hasLabel(self, name): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_183hasLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_182hasLabel[] = "DM.hasLabel(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_183hasLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasLabel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasLabel") < 0)) __PYX_ERR(53, 592, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasLabel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 592, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.hasLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_182hasLabel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_182hasLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + PetscBool __pyx_v_flag; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasLabel", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":593 + * + * def hasLabel(self, name): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":594 + * def hasLabel(self, name): + * cdef PetscBool flag = PETSC_FALSE + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMHasLabel(self.dm, cname, &flag) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":595 + * cdef PetscBool flag = PETSC_FALSE + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMHasLabel(self.dm, cname, &flag) ) + * return toBool(flag) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":596 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMHasLabel(self.dm, cname, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMHasLabel(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_flag))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 596, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":597 + * name = str2bytes(name, &cname) + * CHKERR( DMHasLabel(self.dm, cname, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def createLabel(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":592 + * return bytes2str(cname) + * + * def hasLabel(self, name): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.hasLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":599 + * return toBool(flag) + * + * def createLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_185createLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_184createLabel[] = "DM.createLabel(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_185createLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLabel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createLabel") < 0)) __PYX_ERR(53, 599, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createLabel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 599, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.createLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_184createLabel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_184createLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLabel", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":600 + * + * def createLabel(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMCreateLabel(self.dm, cname) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":601 + * def createLabel(self, name): + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMCreateLabel(self.dm, cname) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":602 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMCreateLabel(self.dm, cname) ) # <<<<<<<<<<<<<< + * + * def removeLabel(self, name): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateLabel(__pyx_v_self->dm, __pyx_v_cname)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 602, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":599 + * return toBool(flag) + * + * def createLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":604 + * CHKERR( DMCreateLabel(self.dm, cname) ) + * + * def removeLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef PetscDMLabel clbl = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_187removeLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_186removeLabel[] = "DM.removeLabel(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_187removeLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("removeLabel (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "removeLabel") < 0)) __PYX_ERR(53, 604, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("removeLabel", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 604, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.removeLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_186removeLabel(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_186removeLabel(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + DMLabel __pyx_v_clbl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("removeLabel", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":605 + * + * def removeLabel(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * name = str2bytes(name, &cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":606 + * def removeLabel(self, name): + * cdef const char *cname = NULL + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMRemoveLabel(self.dm, cname, &clbl) ) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DM.pyx":607 + * cdef const char *cname = NULL + * cdef PetscDMLabel clbl = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMRemoveLabel(self.dm, cname, &clbl) ) + * # TODO: Once DMLabel is wrapped, this should return the label, like the C function. + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":608 + * cdef PetscDMLabel clbl = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMRemoveLabel(self.dm, cname, &clbl) ) # <<<<<<<<<<<<<< + * # TODO: Once DMLabel is wrapped, this should return the label, like the C function. + * CHKERR( DMLabelDestroy(&clbl) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMRemoveLabel(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_clbl))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 608, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":610 + * CHKERR( DMRemoveLabel(self.dm, cname, &clbl) ) + * # TODO: Once DMLabel is wrapped, this should return the label, like the C function. + * CHKERR( DMLabelDestroy(&clbl) ) # <<<<<<<<<<<<<< + * + * def getLabelValue(self, name, point): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelDestroy((&__pyx_v_clbl))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 610, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":604 + * CHKERR( DMCreateLabel(self.dm, cname) ) + * + * def removeLabel(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * cdef PetscDMLabel clbl = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.removeLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":612 + * CHKERR( DMLabelDestroy(&clbl) ) + * + * def getLabelValue(self, name, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), value = 0 + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_189getLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_188getLabelValue[] = "DM.getLabelValue(self, name, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_189getLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabelValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_point,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getLabelValue", 1, 2, 2, 1); __PYX_ERR(53, 612, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabelValue") < 0)) __PYX_ERR(53, 612, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_point = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabelValue", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 612, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_188getLabelValue(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_188getLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_value; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabelValue", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":613 + * + * def getLabelValue(self, name, point): + * cdef PetscInt cpoint = asInt(point), value = 0 # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 613, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_v_value = 0; + + /* "petsc4py/PETSc/DM.pyx":614 + * def getLabelValue(self, name, point): + * cdef PetscInt cpoint = asInt(point), value = 0 + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelValue(self.dm, cname, cpoint, &value) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":615 + * cdef PetscInt cpoint = asInt(point), value = 0 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMGetLabelValue(self.dm, cname, cpoint, &value) ) + * return toInt(value) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":616 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelValue(self.dm, cname, cpoint, &value) ) # <<<<<<<<<<<<<< + * return toInt(value) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabelValue(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cpoint, (&__pyx_v_value))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 616, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":617 + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelValue(self.dm, cname, cpoint, &value) ) + * return toInt(value) # <<<<<<<<<<<<<< + * + * def setLabelValue(self, name, point, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":612 + * CHKERR( DMLabelDestroy(&clbl) ) + * + * def getLabelValue(self, name, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), value = 0 + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":619 + * return toInt(value) + * + * def setLabelValue(self, name, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_191setLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_190setLabelValue[] = "DM.setLabelValue(self, name, point, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_191setLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLabelValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_point,&__pyx_n_s_value,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLabelValue", 1, 3, 3, 1); __PYX_ERR(53, 619, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLabelValue", 1, 3, 3, 2); __PYX_ERR(53, 619, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLabelValue") < 0)) __PYX_ERR(53, 619, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_name = values[0]; + __pyx_v_point = values[1]; + __pyx_v_value = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLabelValue", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 619, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_190setLabelValue(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_point, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_190setLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLabelValue", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":620 + * + * def setLabelValue(self, name, point, value): + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 620, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 620, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":621 + * def setLabelValue(self, name, point, value): + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMSetLabelValue(self.dm, cname, cpoint, cvalue) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":622 + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMSetLabelValue(self.dm, cname, cpoint, cvalue) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 622, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":623 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMSetLabelValue(self.dm, cname, cpoint, cvalue) ) # <<<<<<<<<<<<<< + * + * def clearLabelValue(self, name, point, value): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetLabelValue(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cpoint, __pyx_v_cvalue)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 623, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":619 + * return toInt(value) + * + * def setLabelValue(self, name, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":625 + * CHKERR( DMSetLabelValue(self.dm, cname, cpoint, cvalue) ) + * + * def clearLabelValue(self, name, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_193clearLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_192clearLabelValue[] = "DM.clearLabelValue(self, name, point, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_193clearLabelValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearLabelValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_point,&__pyx_n_s_value,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("clearLabelValue", 1, 3, 3, 1); __PYX_ERR(53, 625, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("clearLabelValue", 1, 3, 3, 2); __PYX_ERR(53, 625, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "clearLabelValue") < 0)) __PYX_ERR(53, 625, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_name = values[0]; + __pyx_v_point = values[1]; + __pyx_v_value = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("clearLabelValue", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 625, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_192clearLabelValue(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_point, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_192clearLabelValue(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_point, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearLabelValue", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":626 + * + * def clearLabelValue(self, name, point, value): + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 626, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 626, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":627 + * def clearLabelValue(self, name, point, value): + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMClearLabelValue(self.dm, cname, cpoint, cvalue) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":628 + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMClearLabelValue(self.dm, cname, cpoint, cvalue) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 628, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":629 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMClearLabelValue(self.dm, cname, cpoint, cvalue) ) # <<<<<<<<<<<<<< + * + * def getLabelSize(self, name): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMClearLabelValue(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cpoint, __pyx_v_cvalue)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 629, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":625 + * CHKERR( DMSetLabelValue(self.dm, cname, cpoint, cvalue) ) + * + * def clearLabelValue(self, name, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point), cvalue = asInt(value) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearLabelValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":631 + * CHKERR( DMClearLabelValue(self.dm, cname, cpoint, cvalue) ) + * + * def getLabelSize(self, name): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_195getLabelSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_194getLabelSize[] = "DM.getLabelSize(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_195getLabelSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabelSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabelSize") < 0)) __PYX_ERR(53, 631, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabelSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 631, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_194getLabelSize(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_194getLabelSize(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + PetscInt __pyx_v_size; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabelSize", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":632 + * + * def getLabelSize(self, name): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/DM.pyx":633 + * def getLabelSize(self, name): + * cdef PetscInt size = 0 + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelSize(self.dm, cname, &size) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":634 + * cdef PetscInt size = 0 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMGetLabelSize(self.dm, cname, &size) ) + * return toInt(size) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":635 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelSize(self.dm, cname, &size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabelSize(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 635, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":636 + * name = str2bytes(name, &cname) + * CHKERR( DMGetLabelSize(self.dm, cname, &size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def getLabelIdIS(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 636, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":631 + * CHKERR( DMClearLabelValue(self.dm, cname, cpoint, cvalue) ) + * + * def getLabelSize(self, name): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":638 + * return toInt(size) + * + * def getLabelIdIS(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_197getLabelIdIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_196getLabelIdIS[] = "DM.getLabelIdIS(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_197getLabelIdIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabelIdIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabelIdIS") < 0)) __PYX_ERR(53, 638, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabelIdIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 638, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelIdIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_196getLabelIdIS(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_196getLabelIdIS(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + struct PyPetscISObject *__pyx_v_lis = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabelIdIS", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":639 + * + * def getLabelIdIS(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef IS lis = IS() + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":640 + * def getLabelIdIS(self, name): + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef IS lis = IS() + * CHKERR( DMGetLabelIdIS(self.dm, cname, &lis.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":641 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef IS lis = IS() # <<<<<<<<<<<<<< + * CHKERR( DMGetLabelIdIS(self.dm, cname, &lis.iset) ) + * return lis + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_lis = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":642 + * name = str2bytes(name, &cname) + * cdef IS lis = IS() + * CHKERR( DMGetLabelIdIS(self.dm, cname, &lis.iset) ) # <<<<<<<<<<<<<< + * return lis + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabelIdIS(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_lis->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 642, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":643 + * cdef IS lis = IS() + * CHKERR( DMGetLabelIdIS(self.dm, cname, &lis.iset) ) + * return lis # <<<<<<<<<<<<<< + * + * def getStratumSize(self, name, value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_lis)); + __pyx_r = ((PyObject *)__pyx_v_lis); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":638 + * return toInt(size) + * + * def getLabelIdIS(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelIdIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_lis); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":645 + * return lis + * + * def getStratumSize(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef PetscInt cvalue = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_199getStratumSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_198getStratumSize[] = "DM.getStratumSize(self, name, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_199getStratumSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStratumSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getStratumSize", 1, 2, 2, 1); __PYX_ERR(53, 645, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getStratumSize") < 0)) __PYX_ERR(53, 645, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getStratumSize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 645, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getStratumSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_198getStratumSize(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_198getStratumSize(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { + PetscInt __pyx_v_size; + PetscInt __pyx_v_cvalue; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStratumSize", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":646 + * + * def getStratumSize(self, name, value): + * cdef PetscInt size = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/DM.pyx":647 + * def getStratumSize(self, name, value): + * cdef PetscInt size = 0 + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 647, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":648 + * cdef PetscInt size = 0 + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMGetStratumSize(self.dm, cname, cvalue, &size) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":649 + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMGetStratumSize(self.dm, cname, cvalue, &size) ) + * return toInt(size) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":650 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMGetStratumSize(self.dm, cname, cvalue, &size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetStratumSize(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cvalue, (&__pyx_v_size))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 650, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":651 + * name = str2bytes(name, &cname) + * CHKERR( DMGetStratumSize(self.dm, cname, cvalue, &size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def getStratumIS(self, name, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":645 + * return lis + * + * def getStratumSize(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt size = 0 + * cdef PetscInt cvalue = asInt(value) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getStratumSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":653 + * return toInt(size) + * + * def getStratumIS(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_201getStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_200getStratumIS[] = "DM.getStratumIS(self, name, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_201getStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStratumIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getStratumIS", 1, 2, 2, 1); __PYX_ERR(53, 653, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getStratumIS") < 0)) __PYX_ERR(53, 653, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getStratumIS", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 653, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_200getStratumIS(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_200getStratumIS(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + char const *__pyx_v_cname; + struct PyPetscISObject *__pyx_v_sis = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStratumIS", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":654 + * + * def getStratumIS(self, name, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 654, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":655 + * def getStratumIS(self, name, value): + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef IS sis = IS() + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":656 + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef IS sis = IS() + * CHKERR( DMGetStratumIS(self.dm, cname, cvalue, &sis.iset) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":657 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef IS sis = IS() # <<<<<<<<<<<<<< + * CHKERR( DMGetStratumIS(self.dm, cname, cvalue, &sis.iset) ) + * return sis + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sis = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":658 + * name = str2bytes(name, &cname) + * cdef IS sis = IS() + * CHKERR( DMGetStratumIS(self.dm, cname, cvalue, &sis.iset) ) # <<<<<<<<<<<<<< + * return sis + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetStratumIS(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cvalue, (&__pyx_v_sis->iset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 658, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":659 + * cdef IS sis = IS() + * CHKERR( DMGetStratumIS(self.dm, cname, cvalue, &sis.iset) ) + * return sis # <<<<<<<<<<<<<< + * + * def clearLabelStratum(self, name, value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sis)); + __pyx_r = ((PyObject *)__pyx_v_sis); + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":653 + * return toInt(size) + * + * def getStratumIS(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sis); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":661 + * return sis + * + * def clearLabelStratum(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_203clearLabelStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_202clearLabelStratum[] = "DM.clearLabelStratum(self, name, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_203clearLabelStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearLabelStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("clearLabelStratum", 1, 2, 2, 1); __PYX_ERR(53, 661, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "clearLabelStratum") < 0)) __PYX_ERR(53, 661, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("clearLabelStratum", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 661, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearLabelStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_202clearLabelStratum(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_202clearLabelStratum(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearLabelStratum", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":662 + * + * def clearLabelStratum(self, name, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(53, 662, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DM.pyx":663 + * def clearLabelStratum(self, name, value): + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMClearLabelStratum(self.dm, cname, cvalue) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":664 + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMClearLabelStratum(self.dm, cname, cvalue) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":665 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMClearLabelStratum(self.dm, cname, cvalue) ) # <<<<<<<<<<<<<< + * + * def setLabelOutput(self, name, output): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMClearLabelStratum(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_cvalue)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 665, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":661 + * return sis + * + * def clearLabelStratum(self, name, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DM.clearLabelStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":667 + * CHKERR( DMClearLabelStratum(self.dm, cname, cvalue) ) + * + * def setLabelOutput(self, name, output): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_205setLabelOutput(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_204setLabelOutput[] = "DM.setLabelOutput(self, name, output)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_205setLabelOutput(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_output = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLabelOutput (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_output,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_output)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLabelOutput", 1, 2, 2, 1); __PYX_ERR(53, 667, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLabelOutput") < 0)) __PYX_ERR(53, 667, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_name = values[0]; + __pyx_v_output = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLabelOutput", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 667, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLabelOutput", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_204setLabelOutput(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name, __pyx_v_output); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_204setLabelOutput(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_output) { + char const *__pyx_v_cname; + PetscBool __pyx_v_coutput; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLabelOutput", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":668 + * + * def setLabelOutput(self, name, output): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = output + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":669 + * def setLabelOutput(self, name, output): + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscBool coutput = output + * CHKERR( DMSetLabelOutput(self.dm, cname, coutput) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":670 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = output # <<<<<<<<<<<<<< + * CHKERR( DMSetLabelOutput(self.dm, cname, coutput) ) + * + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_output)); if (unlikely(PyErr_Occurred())) __PYX_ERR(53, 670, __pyx_L1_error) + __pyx_v_coutput = __pyx_t_2; + + /* "petsc4py/PETSc/DM.pyx":671 + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = output + * CHKERR( DMSetLabelOutput(self.dm, cname, coutput) ) # <<<<<<<<<<<<<< + * + * def getLabelOutput(self, name): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetLabelOutput(__pyx_v_self->dm, __pyx_v_cname, __pyx_v_coutput)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 671, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":667 + * CHKERR( DMClearLabelStratum(self.dm, cname, cvalue) ) + * + * def setLabelOutput(self, name, output): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setLabelOutput", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":673 + * CHKERR( DMSetLabelOutput(self.dm, cname, coutput) ) + * + * def getLabelOutput(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_207getLabelOutput(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_206getLabelOutput[] = "DM.getLabelOutput(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_207getLabelOutput(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLabelOutput (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLabelOutput") < 0)) __PYX_ERR(53, 673, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLabelOutput", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 673, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelOutput", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_206getLabelOutput(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_206getLabelOutput(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + PetscBool __pyx_v_coutput; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLabelOutput", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DM.pyx":674 + * + * def getLabelOutput(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = PETSC_FALSE + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DM.pyx":675 + * def getLabelOutput(self, name): + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscBool coutput = PETSC_FALSE + * CHKERR( DMGetLabelOutput(self.dm, cname, &coutput) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":676 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMGetLabelOutput(self.dm, cname, &coutput) ) + * return coutput + */ + __pyx_v_coutput = PETSC_FALSE; + + /* "petsc4py/PETSc/DM.pyx":677 + * name = str2bytes(name, &cname) + * cdef PetscBool coutput = PETSC_FALSE + * CHKERR( DMGetLabelOutput(self.dm, cname, &coutput) ) # <<<<<<<<<<<<<< + * return coutput + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabelOutput(__pyx_v_self->dm, __pyx_v_cname, (&__pyx_v_coutput))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 677, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":678 + * cdef PetscBool coutput = PETSC_FALSE + * CHKERR( DMGetLabelOutput(self.dm, cname, &coutput) ) + * return coutput # <<<<<<<<<<<<<< + * + * # backward compatibility + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_PetscBool(__pyx_v_coutput); if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":673 + * CHKERR( DMSetLabelOutput(self.dm, cname, coutput) ) + * + * def getLabelOutput(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DM.getLabelOutput", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":685 + * getMatrix = createMatrix = createMat + * + * def setKSPComputeOperators(self, operators, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_209setKSPComputeOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_208setKSPComputeOperators[] = "DM.setKSPComputeOperators(self, operators, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_209setKSPComputeOperators(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_operators = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setKSPComputeOperators (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_operators,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_operators)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setKSPComputeOperators") < 0)) __PYX_ERR(53, 685, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_operators = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setKSPComputeOperators", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 685, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setKSPComputeOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_208setKSPComputeOperators(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_operators, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_208setKSPComputeOperators(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_operators, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setKSPComputeOperators", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DM.pyx":686 + * + * def setKSPComputeOperators(self, operators, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (operators, args, kargs) + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DM.pyx":687 + * def setKSPComputeOperators(self, operators, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DM.pyx":688 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (operators, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__operators__', context) + * CHKERR( DMKSPSetComputeOperators(self.dm, KSP_ComputeOps, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_operators); + __Pyx_GIVEREF(__pyx_v_operators); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_operators); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":689 + * if kargs is None: kargs = {} + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) # <<<<<<<<<<<<<< + * CHKERR( DMKSPSetComputeOperators(self.dm, KSP_ComputeOps, context) ) + * + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__operators__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":690 + * context = (operators, args, kargs) + * self.set_attr('__operators__', context) + * CHKERR( DMKSPSetComputeOperators(self.dm, KSP_ComputeOps, context) ) # <<<<<<<<<<<<<< + * + * def createFieldDecomposition(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMKSPSetComputeOperators(__pyx_v_self->dm, __pyx_f_8petsc4py_5PETSc_KSP_ComputeOps, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 690, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":685 + * getMatrix = createMatrix = createMat + * + * def setKSPComputeOperators(self, operators, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setKSPComputeOperators", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":692 + * CHKERR( DMKSPSetComputeOperators(self.dm, KSP_ComputeOps, context) ) + * + * def createFieldDecomposition(self): # <<<<<<<<<<<<<< + * cdef PetscInt clen = 0 + * cdef PetscIS *cis = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_211createFieldDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_210createFieldDecomposition[] = "DM.createFieldDecomposition(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_211createFieldDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createFieldDecomposition (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createFieldDecomposition", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createFieldDecomposition", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_210createFieldDecomposition(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_210createFieldDecomposition(struct PyPetscDMObject *__pyx_v_self) { + PetscInt __pyx_v_clen; + IS *__pyx_v_cis; + DM *__pyx_v_cdm; + char **__pyx_v_cnamelist; + PyObject *__pyx_v_isets = 0; + PyObject *__pyx_v_dms = 0; + PyObject *__pyx_v_names = 0; + struct PyPetscDMObject *__pyx_v_dm = 0; + long __pyx_v_i; + PyObject *__pyx_v_name = NULL; + long __pyx_9genexpr16__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createFieldDecomposition", 0); + + /* "petsc4py/PETSc/DM.pyx":693 + * + * def createFieldDecomposition(self): + * cdef PetscInt clen = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *cis = NULL + * cdef PetscDM *cdm = NULL + */ + __pyx_v_clen = 0; + + /* "petsc4py/PETSc/DM.pyx":694 + * def createFieldDecomposition(self): + * cdef PetscInt clen = 0 + * cdef PetscIS *cis = NULL # <<<<<<<<<<<<<< + * cdef PetscDM *cdm = NULL + * cdef char** cnamelist = NULL + */ + __pyx_v_cis = NULL; + + /* "petsc4py/PETSc/DM.pyx":695 + * cdef PetscInt clen = 0 + * cdef PetscIS *cis = NULL + * cdef PetscDM *cdm = NULL # <<<<<<<<<<<<<< + * cdef char** cnamelist = NULL + * + */ + __pyx_v_cdm = NULL; + + /* "petsc4py/PETSc/DM.pyx":696 + * cdef PetscIS *cis = NULL + * cdef PetscDM *cdm = NULL + * cdef char** cnamelist = NULL # <<<<<<<<<<<<<< + * + * CHKERR( DMCreateFieldDecomposition(self.dm, &clen, &cnamelist, &cis, &cdm) ) + */ + __pyx_v_cnamelist = NULL; + + /* "petsc4py/PETSc/DM.pyx":698 + * cdef char** cnamelist = NULL + * + * CHKERR( DMCreateFieldDecomposition(self.dm, &clen, &cnamelist, &cis, &cdm) ) # <<<<<<<<<<<<<< + * + * cdef list isets = [ref_IS(cis[i]) for i from 0 <= i < clen] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreateFieldDecomposition(__pyx_v_self->dm, (&__pyx_v_clen), (&__pyx_v_cnamelist), (&__pyx_v_cis), (&__pyx_v_cdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 698, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":700 + * CHKERR( DMCreateFieldDecomposition(self.dm, &clen, &cnamelist, &cis, &cdm) ) + * + * cdef list isets = [ref_IS(cis[i]) for i from 0 <= i < clen] # <<<<<<<<<<<<<< + * cdef list dms = [] + * cdef list names = [] + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_v_clen; + for (__pyx_9genexpr16__pyx_v_i = 0; __pyx_9genexpr16__pyx_v_i < __pyx_t_3; __pyx_9genexpr16__pyx_v_i++) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_cis[__pyx_9genexpr16__pyx_v_i]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(53, 700, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } /* exit inner scope */ + __pyx_v_isets = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":701 + * + * cdef list isets = [ref_IS(cis[i]) for i from 0 <= i < clen] + * cdef list dms = [] # <<<<<<<<<<<<<< + * cdef list names = [] + * cdef DM dm = None + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_dms = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":702 + * cdef list isets = [ref_IS(cis[i]) for i from 0 <= i < clen] + * cdef list dms = [] + * cdef list names = [] # <<<<<<<<<<<<<< + * cdef DM dm = None + * + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 702, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_names = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DM.pyx":703 + * cdef list dms = [] + * cdef list names = [] + * cdef DM dm = None # <<<<<<<<<<<<<< + * + * for i from 0 <= i < clen: + */ + __Pyx_INCREF(Py_None); + __pyx_v_dm = ((struct PyPetscDMObject *)Py_None); + + /* "petsc4py/PETSc/DM.pyx":705 + * cdef DM dm = None + * + * for i from 0 <= i < clen: # <<<<<<<<<<<<<< + * if cdm != NULL: + * dm = subtype_DM(cdm[i])() + */ + __pyx_t_3 = __pyx_v_clen; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/DM.pyx":706 + * + * for i from 0 <= i < clen: + * if cdm != NULL: # <<<<<<<<<<<<<< + * dm = subtype_DM(cdm[i])() + * dm.dm = cdm[i] + */ + __pyx_t_5 = ((__pyx_v_cdm != NULL) != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/DM.pyx":707 + * for i from 0 <= i < clen: + * if cdm != NULL: + * dm = subtype_DM(cdm[i])() # <<<<<<<<<<<<<< + * dm.dm = cdm[i] + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM((__pyx_v_cdm[__pyx_v_i]))); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(53, 707, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_dm, ((struct PyPetscDMObject *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DM.pyx":708 + * if cdm != NULL: + * dm = subtype_DM(cdm[i])() + * dm.dm = cdm[i] # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * dms.append(dm) + */ + __pyx_v_dm->dm = (__pyx_v_cdm[__pyx_v_i]); + + /* "petsc4py/PETSc/DM.pyx":709 + * dm = subtype_DM(cdm[i])() + * dm.dm = cdm[i] + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * dms.append(dm) + * else: + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/DM.pyx":710 + * dm.dm = cdm[i] + * PetscINCREF(dm.obj) + * dms.append(dm) # <<<<<<<<<<<<<< + * else: + * dms.append(None) + */ + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_dms, ((PyObject *)__pyx_v_dm)); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(53, 710, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":706 + * + * for i from 0 <= i < clen: + * if cdm != NULL: # <<<<<<<<<<<<<< + * dm = subtype_DM(cdm[i])() + * dm.dm = cdm[i] + */ + goto __pyx_L7; + } + + /* "petsc4py/PETSc/DM.pyx":712 + * dms.append(dm) + * else: + * dms.append(None) # <<<<<<<<<<<<<< + * + * name = bytes2str(cnamelist[i]) + */ + /*else*/ { + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_dms, Py_None); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(53, 712, __pyx_L1_error) + } + __pyx_L7:; + + /* "petsc4py/PETSc/DM.pyx":714 + * dms.append(None) + * + * name = bytes2str(cnamelist[i]) # <<<<<<<<<<<<<< + * names.append(name) + * CHKERR( PetscFree(cnamelist[i]) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_bytes2str((__pyx_v_cnamelist[__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DM.pyx":715 + * + * name = bytes2str(cnamelist[i]) + * names.append(name) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cnamelist[i]) ) + * + */ + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_names, __pyx_v_name); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(53, 715, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":716 + * name = bytes2str(cnamelist[i]) + * names.append(name) + * CHKERR( PetscFree(cnamelist[i]) ) # <<<<<<<<<<<<<< + * + * CHKERR( ISDestroy(&cis[i]) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree((__pyx_v_cnamelist[__pyx_v_i]))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 716, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":718 + * CHKERR( PetscFree(cnamelist[i]) ) + * + * CHKERR( ISDestroy(&cis[i]) ) # <<<<<<<<<<<<<< + * CHKERR( DMDestroy(&cdm[i]) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDestroy((&(__pyx_v_cis[__pyx_v_i])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 718, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":719 + * + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( DMDestroy(&cdm[i]) ) # <<<<<<<<<<<<<< + * + * CHKERR( PetscFree(cis) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDestroy((&(__pyx_v_cdm[__pyx_v_i])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 719, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DM.pyx":721 + * CHKERR( DMDestroy(&cdm[i]) ) + * + * CHKERR( PetscFree(cis) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cdm) ) + * CHKERR( PetscFree(cnamelist) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cis)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 721, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":722 + * + * CHKERR( PetscFree(cis) ) + * CHKERR( PetscFree(cdm) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cnamelist) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cdm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 722, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":723 + * CHKERR( PetscFree(cis) ) + * CHKERR( PetscFree(cdm) ) + * CHKERR( PetscFree(cnamelist) ) # <<<<<<<<<<<<<< + * + * return (names, isets, dms) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cnamelist)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 723, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":725 + * CHKERR( PetscFree(cnamelist) ) + * + * return (names, isets, dms) # <<<<<<<<<<<<<< + * + * def setSNESFunction(self, function, args=None, kargs=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(53, 725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_names); + __Pyx_GIVEREF(__pyx_v_names); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_names); + __Pyx_INCREF(__pyx_v_isets); + __Pyx_GIVEREF(__pyx_v_isets); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_isets); + __Pyx_INCREF(__pyx_v_dms); + __Pyx_GIVEREF(__pyx_v_dms); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_dms); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":692 + * CHKERR( DMKSPSetComputeOperators(self.dm, KSP_ComputeOps, context) ) + * + * def createFieldDecomposition(self): # <<<<<<<<<<<<<< + * cdef PetscInt clen = 0 + * cdef PetscIS *cis = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DM.createFieldDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_isets); + __Pyx_XDECREF(__pyx_v_dms); + __Pyx_XDECREF(__pyx_v_names); + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":727 + * return (names, isets, dms) + * + * def setSNESFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_213setSNESFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_212setSNESFunction[] = "DM.setSNESFunction(self, function, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_213setSNESFunction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_function = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSNESFunction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_function,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_function)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSNESFunction") < 0)) __PYX_ERR(53, 727, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_function = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSNESFunction", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 727, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSNESFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_212setSNESFunction(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_function, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_212setSNESFunction(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_function, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSNESFunction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DM.pyx":728 + * + * def setSNESFunction(self, function, args=None, kargs=None): + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_function != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DM.pyx":729 + * def setSNESFunction(self, function, args=None, kargs=None): + * if function is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (function, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DM.pyx":730 + * if function is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (function, args, kargs) + * self.set_attr('__function__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 730, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DM.pyx":731 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (function, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__function__', context) + * CHKERR( DMSNESSetFunction(self.dm, SNES_Function, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_function); + __Pyx_GIVEREF(__pyx_v_function); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_function); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":732 + * if kargs is None: kargs = {} + * context = (function, args, kargs) + * self.set_attr('__function__', context) # <<<<<<<<<<<<<< + * CHKERR( DMSNESSetFunction(self.dm, SNES_Function, context) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__function__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":733 + * context = (function, args, kargs) + * self.set_attr('__function__', context) + * CHKERR( DMSNESSetFunction(self.dm, SNES_Function, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMSNESSetFunction(self.dm, NULL, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSNESSetFunction(__pyx_v_self->dm, __pyx_f_8petsc4py_5PETSc_SNES_Function, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 733, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":728 + * + * def setSNESFunction(self, function, args=None, kargs=None): + * if function is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DM.pyx":735 + * CHKERR( DMSNESSetFunction(self.dm, SNES_Function, context) ) + * else: + * CHKERR( DMSNESSetFunction(self.dm, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def setSNESJacobian(self, jacobian, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSNESSetFunction(__pyx_v_self->dm, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 735, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DM.pyx":727 + * return (names, isets, dms) + * + * def setSNESFunction(self, function, args=None, kargs=None): # <<<<<<<<<<<<<< + * if function is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSNESFunction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":737 + * CHKERR( DMSNESSetFunction(self.dm, NULL, NULL) ) + * + * def setSNESJacobian(self, jacobian, args=None, kargs=None): # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_215setSNESJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_214setSNESJacobian[] = "DM.setSNESJacobian(self, jacobian, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_215setSNESJacobian(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_jacobian = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSNESJacobian (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_jacobian,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_jacobian)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSNESJacobian") < 0)) __PYX_ERR(53, 737, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_jacobian = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSNESJacobian", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 737, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSNESJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_214setSNESJacobian(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_jacobian, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_214setSNESJacobian(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_jacobian, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSNESJacobian", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DM.pyx":738 + * + * def setSNESJacobian(self, jacobian, args=None, kargs=None): + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_jacobian != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DM.pyx":739 + * def setSNESJacobian(self, jacobian, args=None, kargs=None): + * if jacobian is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DM.pyx":740 + * if jacobian is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DM.pyx":741 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__jacobian__', context) + * CHKERR( DMSNESSetJacobian(self.dm, SNES_Jacobian, context) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_jacobian); + __Pyx_GIVEREF(__pyx_v_jacobian); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_jacobian); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":742 + * if kargs is None: kargs = {} + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) # <<<<<<<<<<<<<< + * CHKERR( DMSNESSetJacobian(self.dm, SNES_Jacobian, context) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__jacobian__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 742, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":743 + * context = (jacobian, args, kargs) + * self.set_attr('__jacobian__', context) + * CHKERR( DMSNESSetJacobian(self.dm, SNES_Jacobian, context) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMSNESSetJacobian(self.dm, NULL, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSNESSetJacobian(__pyx_v_self->dm, __pyx_f_8petsc4py_5PETSc_SNES_Jacobian, ((void *)__pyx_v_context))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 743, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":738 + * + * def setSNESJacobian(self, jacobian, args=None, kargs=None): + * if jacobian is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DM.pyx":745 + * CHKERR( DMSNESSetJacobian(self.dm, SNES_Jacobian, context) ) + * else: + * CHKERR( DMSNESSetJacobian(self.dm, NULL, NULL) ) # <<<<<<<<<<<<<< + * + * def addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSNESSetJacobian(__pyx_v_self->dm, NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 745, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DM.pyx":737 + * CHKERR( DMSNESSetFunction(self.dm, NULL, NULL) ) + * + * def setSNESJacobian(self, jacobian, args=None, kargs=None): # <<<<<<<<<<<<<< + * if jacobian is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.setSNESJacobian", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":747 + * CHKERR( DMSNESSetJacobian(self.dm, NULL, NULL) ) + * + * def addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_217addCoarsenHook(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DM_216addCoarsenHook[] = "DM.addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_217addCoarsenHook(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_coarsenhook = 0; + PyObject *__pyx_v_restricthook = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addCoarsenHook (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coarsenhook,&__pyx_n_s_restricthook,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[4] = {0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coarsenhook)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restricthook)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("addCoarsenHook", 0, 2, 4, 1); __PYX_ERR(53, 747, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addCoarsenHook") < 0)) __PYX_ERR(53, 747, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_coarsenhook = values[0]; + __pyx_v_restricthook = values[1]; + __pyx_v_args = values[2]; + __pyx_v_kargs = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addCoarsenHook", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(53, 747, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DM.addCoarsenHook", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_216addCoarsenHook(((struct PyPetscDMObject *)__pyx_v_self), __pyx_v_coarsenhook, __pyx_v_restricthook, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_216addCoarsenHook(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_coarsenhook, PyObject *__pyx_v_restricthook, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_coarsencontext = NULL; + PyObject *__pyx_v_coarsenhooks = NULL; + PyObject *__pyx_v_restrictcontext = NULL; + PyObject *__pyx_v_restricthooks = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addCoarsenHook", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DM.pyx":748 + * + * def addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None): + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DM.pyx":749 + * def addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None): + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * + * if coarsenhook is not None: + */ + __pyx_t_2 = (__pyx_v_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DM.pyx":751 + * if kargs is None: kargs = {} + * + * if coarsenhook is not None: # <<<<<<<<<<<<<< + * coarsencontext = (coarsenhook, args, kargs) + * + */ + __pyx_t_1 = (__pyx_v_coarsenhook != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DM.pyx":752 + * + * if coarsenhook is not None: + * coarsencontext = (coarsenhook, args, kargs) # <<<<<<<<<<<<<< + * + * coarsenhooks = self.get_attr('__coarsenhooks__') + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_coarsenhook); + __Pyx_GIVEREF(__pyx_v_coarsenhook); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_coarsenhook); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_coarsencontext = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":754 + * coarsencontext = (coarsenhook, args, kargs) + * + * coarsenhooks = self.get_attr('__coarsenhooks__') # <<<<<<<<<<<<<< + * if coarsenhooks is None: + * coarsenhooks = [coarsencontext] + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__coarsenhooks__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_coarsenhooks = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":755 + * + * coarsenhooks = self.get_attr('__coarsenhooks__') + * if coarsenhooks is None: # <<<<<<<<<<<<<< + * coarsenhooks = [coarsencontext] + * CHKERR( DMCoarsenHookAdd(self.dm, DM_PyCoarsenHook, NULL, NULL) ) + */ + __pyx_t_2 = (__pyx_v_coarsenhooks == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DM.pyx":756 + * coarsenhooks = self.get_attr('__coarsenhooks__') + * if coarsenhooks is None: + * coarsenhooks = [coarsencontext] # <<<<<<<<<<<<<< + * CHKERR( DMCoarsenHookAdd(self.dm, DM_PyCoarsenHook, NULL, NULL) ) + * else: + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_coarsencontext); + __Pyx_GIVEREF(__pyx_v_coarsencontext); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_coarsencontext); + __Pyx_DECREF_SET(__pyx_v_coarsenhooks, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":757 + * if coarsenhooks is None: + * coarsenhooks = [coarsencontext] + * CHKERR( DMCoarsenHookAdd(self.dm, DM_PyCoarsenHook, NULL, NULL) ) # <<<<<<<<<<<<<< + * else: + * coarsenhooks.append(coarsencontext) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCoarsenHookAdd(__pyx_v_self->dm, __pyx_f_8petsc4py_5PETSc_DM_PyCoarsenHook, NULL, ((void *)NULL))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 757, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":755 + * + * coarsenhooks = self.get_attr('__coarsenhooks__') + * if coarsenhooks is None: # <<<<<<<<<<<<<< + * coarsenhooks = [coarsencontext] + * CHKERR( DMCoarsenHookAdd(self.dm, DM_PyCoarsenHook, NULL, NULL) ) + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/DM.pyx":759 + * CHKERR( DMCoarsenHookAdd(self.dm, DM_PyCoarsenHook, NULL, NULL) ) + * else: + * coarsenhooks.append(coarsencontext) # <<<<<<<<<<<<<< + * self.set_attr('__coarsenhooks__', coarsenhooks) + * + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_coarsenhooks, __pyx_v_coarsencontext); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(53, 759, __pyx_L1_error) + } + __pyx_L6:; + + /* "petsc4py/PETSc/DM.pyx":760 + * else: + * coarsenhooks.append(coarsencontext) + * self.set_attr('__coarsenhooks__', coarsenhooks) # <<<<<<<<<<<<<< + * + * if restricthook is not None: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__coarsenhooks__"), __pyx_v_coarsenhooks); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":751 + * if kargs is None: kargs = {} + * + * if coarsenhook is not None: # <<<<<<<<<<<<<< + * coarsencontext = (coarsenhook, args, kargs) + * + */ + } + + /* "petsc4py/PETSc/DM.pyx":762 + * self.set_attr('__coarsenhooks__', coarsenhooks) + * + * if restricthook is not None: # <<<<<<<<<<<<<< + * restrictcontext = (restricthook, args, kargs) + * + */ + __pyx_t_1 = (__pyx_v_restricthook != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DM.pyx":763 + * + * if restricthook is not None: + * restrictcontext = (restricthook, args, kargs) # <<<<<<<<<<<<<< + * + * restricthooks = self.get_attr('__restricthooks__') + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_restricthook); + __Pyx_GIVEREF(__pyx_v_restricthook); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_restricthook); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_restrictcontext = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":765 + * restrictcontext = (restricthook, args, kargs) + * + * restricthooks = self.get_attr('__restricthooks__') # <<<<<<<<<<<<<< + * if restricthooks is None: + * restricthooks = [restrictcontext] + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.get_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__restricthooks__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_restricthooks = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":766 + * + * restricthooks = self.get_attr('__restricthooks__') + * if restricthooks is None: # <<<<<<<<<<<<<< + * restricthooks = [restrictcontext] + * CHKERR( DMCoarsenHookAdd(self.dm, NULL, DM_PyRestrictHook, NULL) ) + */ + __pyx_t_2 = (__pyx_v_restricthooks == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DM.pyx":767 + * restricthooks = self.get_attr('__restricthooks__') + * if restricthooks is None: + * restricthooks = [restrictcontext] # <<<<<<<<<<<<<< + * CHKERR( DMCoarsenHookAdd(self.dm, NULL, DM_PyRestrictHook, NULL) ) + * else: + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_restrictcontext); + __Pyx_GIVEREF(__pyx_v_restrictcontext); + PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_restrictcontext); + __Pyx_DECREF_SET(__pyx_v_restricthooks, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":768 + * if restricthooks is None: + * restricthooks = [restrictcontext] + * CHKERR( DMCoarsenHookAdd(self.dm, NULL, DM_PyRestrictHook, NULL) ) # <<<<<<<<<<<<<< + * else: + * restricthooks.append(restrictcontext) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCoarsenHookAdd(__pyx_v_self->dm, NULL, __pyx_f_8petsc4py_5PETSc_DM_PyRestrictHook, ((void *)NULL))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(53, 768, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":766 + * + * restricthooks = self.get_attr('__restricthooks__') + * if restricthooks is None: # <<<<<<<<<<<<<< + * restricthooks = [restrictcontext] + * CHKERR( DMCoarsenHookAdd(self.dm, NULL, DM_PyRestrictHook, NULL) ) + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/DM.pyx":770 + * CHKERR( DMCoarsenHookAdd(self.dm, NULL, DM_PyRestrictHook, NULL) ) + * else: + * restricthooks.append(restrictcontext) # <<<<<<<<<<<<<< + * self.set_attr('__restricthooks__', restricthooks) + * + */ + /*else*/ { + __pyx_t_5 = __Pyx_PyObject_Append(__pyx_v_restricthooks, __pyx_v_restrictcontext); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(53, 770, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/DM.pyx":771 + * else: + * restricthooks.append(restrictcontext) + * self.set_attr('__restricthooks__', restricthooks) # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DM *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__restricthooks__"), __pyx_v_restricthooks); if (unlikely(!__pyx_t_3)) __PYX_ERR(53, 771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DM.pyx":762 + * self.set_attr('__coarsenhooks__', coarsenhooks) + * + * if restricthook is not None: # <<<<<<<<<<<<<< + * restrictcontext = (restricthook, args, kargs) + * + */ + } + + /* "petsc4py/PETSc/DM.pyx":747 + * CHKERR( DMSNESSetJacobian(self.dm, NULL, NULL) ) + * + * def addCoarsenHook(self, coarsenhook, restricthook, args=None, kargs=None): # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.addCoarsenHook", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_coarsencontext); + __Pyx_XDECREF(__pyx_v_coarsenhooks); + __Pyx_XDECREF(__pyx_v_restrictcontext); + __Pyx_XDECREF(__pyx_v_restricthooks); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":776 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_6appctx_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_6appctx_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_6appctx___get__(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_6appctx___get__(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DM.pyx":777 + * property appctx: + * def __get__(self): + * return self.getAppCtx() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setAppCtx(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":776 + * + * property appctx: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getAppCtx() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.appctx.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":778 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2DM_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2DM_6appctx_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_6appctx_2__set__(((struct PyPetscDMObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2DM_6appctx_2__set__(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/DM.pyx":779 + * return self.getAppCtx() + * def __set__(self, value): + * self.setAppCtx(value) # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setAppCtx); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":778 + * def __get__(self): + * return self.getAppCtx() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setAppCtx(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.appctx.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":784 + * + * property ds: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDS() + * def __set__(self, value): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_2ds_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DM_2ds_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_2ds___get__(((struct PyPetscDMObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DM_2ds___get__(struct PyPetscDMObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DM.pyx":785 + * property ds: + * def __get__(self): + * return self.getDS() # <<<<<<<<<<<<<< + * def __set__(self, value): + * self.setDS(value) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDS); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DM.pyx":784 + * + * property ds: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDS() + * def __set__(self, value): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.ds.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DM.pyx":786 + * def __get__(self): + * return self.getDS() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDS(value) + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2DM_2ds_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2DM_2ds_3__set__(PyObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__set__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DM_2ds_2__set__(((struct PyPetscDMObject *)__pyx_v_self), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2DM_2ds_2__set__(struct PyPetscDMObject *__pyx_v_self, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + + /* "petsc4py/PETSc/DM.pyx":787 + * return self.getDS() + * def __set__(self, value): + * self.setDS(value) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDS); if (unlikely(!__pyx_t_2)) __PYX_ERR(53, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_value) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_value); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(53, 787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DM.pyx":786 + * def __get__(self): + * return self.getDS() + * def __set__(self, value): # <<<<<<<<<<<<<< + * self.setDS(value) + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DM.ds.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":14 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ds + * self.ds = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_2DS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_2DS_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS___cinit__(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_2DS___cinit__(struct PyPetscDSObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DS.pyx":15 + * + * def __cinit__(self): + * self.obj = &self.ds # <<<<<<<<<<<<<< + * self.ds = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->ds)); + + /* "petsc4py/PETSc/DS.pyx":16 + * def __cinit__(self): + * self.obj = &self.ds + * self.ds = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->ds = NULL; + + /* "petsc4py/PETSc/DS.pyx":14 + * # + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.ds + * self.ds = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":18 + * self.ds = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_2view[] = "DS.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(54, 18, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(54, 18, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(54, 18, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_2view(((struct PyPetscDSObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_2view(struct PyPetscDSObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/DS.pyx":19 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscDSView(self.ds, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/DS.pyx":20 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscDSView(self.ds, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/DS.pyx":21 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscDSView(self.ds, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSView(__pyx_v_self->ds, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 21, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":18 + * self.ds = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":23 + * CHKERR( PetscDSView(self.ds, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSDestroy(&self.ds) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_4destroy[] = "DS.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_4destroy(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_4destroy(struct PyPetscDSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DS.pyx":24 + * + * def destroy(self): + * CHKERR( PetscDSDestroy(&self.ds) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSDestroy((&__pyx_v_self->ds))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 24, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":25 + * def destroy(self): + * CHKERR( PetscDSDestroy(&self.ds) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":23 + * CHKERR( PetscDSView(self.ds, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSDestroy(&self.ds) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":27 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDS newds = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_6create[] = "DS.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(54, 27, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(54, 27, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_6create(((struct PyPetscDSObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_6create(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscDS __pyx_v_newds; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DS.pyx":28 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDS newds = NULL + * CHKERR( PetscDSCreate(ccomm, &newds) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(54, 28, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DS.pyx":29 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDS newds = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDSCreate(ccomm, &newds) ) + * PetscCLEAR(self.obj); self.ds = newds + */ + __pyx_v_newds = NULL; + + /* "petsc4py/PETSc/DS.pyx":30 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDS newds = NULL + * CHKERR( PetscDSCreate(ccomm, &newds) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.ds = newds + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSCreate(__pyx_v_ccomm, (&__pyx_v_newds))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 30, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":31 + * cdef PetscDS newds = NULL + * CHKERR( PetscDSCreate(ccomm, &newds) ) + * PetscCLEAR(self.obj); self.ds = newds # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->ds = __pyx_v_newds; + + /* "petsc4py/PETSc/DS.pyx":32 + * CHKERR( PetscDSCreate(ccomm, &newds) ) + * PetscCLEAR(self.obj); self.ds = newds + * return self # <<<<<<<<<<<<<< + * + * def setType(self, ds_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":27 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDS newds = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":34 + * return self + * + * def setType(self, ds_type): # <<<<<<<<<<<<<< + * cdef PetscDSType cval = NULL + * ds_type = str2bytes(ds_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_8setType[] = "DS.setType(self, ds_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ds_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ds_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ds_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(54, 34, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ds_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(54, 34, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_8setType(((struct PyPetscDSObject *)__pyx_v_self), __pyx_v_ds_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_8setType(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_ds_type) { + PetscDSType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_ds_type); + + /* "petsc4py/PETSc/DS.pyx":35 + * + * def setType(self, ds_type): + * cdef PetscDSType cval = NULL # <<<<<<<<<<<<<< + * ds_type = str2bytes(ds_type, &cval) + * CHKERR( PetscDSSetType(self.ds, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DS.pyx":36 + * def setType(self, ds_type): + * cdef PetscDSType cval = NULL + * ds_type = str2bytes(ds_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetType(self.ds, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_ds_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(54, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_ds_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DS.pyx":37 + * cdef PetscDSType cval = NULL + * ds_type = str2bytes(ds_type, &cval) + * CHKERR( PetscDSSetType(self.ds, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSSetType(__pyx_v_self->ds, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 37, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":34 + * return self + * + * def setType(self, ds_type): # <<<<<<<<<<<<<< + * cdef PetscDSType cval = NULL + * ds_type = str2bytes(ds_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DS.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ds_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":39 + * CHKERR( PetscDSSetType(self.ds, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDSType cval = NULL + * CHKERR( PetscDSGetType(self.ds, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_10getType[] = "DS.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_10getType(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_10getType(struct PyPetscDSObject *__pyx_v_self) { + PetscDSType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/DS.pyx":40 + * + * def getType(self): + * cdef PetscDSType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetType(self.ds, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DS.pyx":41 + * def getType(self): + * cdef PetscDSType cval = NULL + * CHKERR( PetscDSGetType(self.ds, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetType(__pyx_v_self->ds, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":42 + * cdef PetscDSType cval = NULL + * CHKERR( PetscDSGetType(self.ds, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":39 + * CHKERR( PetscDSSetType(self.ds, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDSType cval = NULL + * CHKERR( PetscDSGetType(self.ds, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":44 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetFromOptions(self.ds) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_13setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_12setFromOptions[] = "DS.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_13setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_12setFromOptions(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_12setFromOptions(struct PyPetscDSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/DS.pyx":45 + * + * def setFromOptions(self): + * CHKERR( PetscDSSetFromOptions(self.ds) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSSetFromOptions(__pyx_v_self->ds)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 45, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":44 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetFromOptions(self.ds) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":47 + * CHKERR( PetscDSSetFromOptions(self.ds) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetUp(self.ds) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_14setUp[] = "DS.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_14setUp(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_14setUp(struct PyPetscDSObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/DS.pyx":48 + * + * def setUp(self): + * CHKERR( PetscDSSetUp(self.ds) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSSetUp(__pyx_v_self->ds)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 48, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":49 + * def setUp(self): + * CHKERR( PetscDSSetUp(self.ds) ) + * return self # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":47 + * CHKERR( PetscDSSetFromOptions(self.ds) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetUp(self.ds) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":53 + * # + * + * def getSpatialDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetSpatialDimension(self.ds, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_17getSpatialDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_16getSpatialDimension[] = "DS.getSpatialDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_17getSpatialDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSpatialDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSpatialDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSpatialDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_16getSpatialDimension(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_16getSpatialDimension(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSpatialDimension", 0); + + /* "petsc4py/PETSc/DS.pyx":54 + * + * def getSpatialDimension(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetSpatialDimension(self.ds, &dim) ) + * return toInt(dim) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DS.pyx":55 + * def getSpatialDimension(self): + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetSpatialDimension(self.ds, &dim) ) # <<<<<<<<<<<<<< + * return toInt(dim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetSpatialDimension(__pyx_v_self->ds, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":56 + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetSpatialDimension(self.ds, &dim) ) + * return toInt(dim) # <<<<<<<<<<<<<< + * + * def getCoordinateDimension(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":53 + * # + * + * def getSpatialDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetSpatialDimension(self.ds, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getSpatialDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":58 + * return toInt(dim) + * + * def getCoordinateDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetCoordinateDimension(self.ds, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_19getCoordinateDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_18getCoordinateDimension[] = "DS.getCoordinateDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_19getCoordinateDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinateDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinateDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinateDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_18getCoordinateDimension(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_18getCoordinateDimension(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinateDimension", 0); + + /* "petsc4py/PETSc/DS.pyx":59 + * + * def getCoordinateDimension(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetCoordinateDimension(self.ds, &dim) ) + * return toInt(dim) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DS.pyx":60 + * def getCoordinateDimension(self): + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetCoordinateDimension(self.ds, &dim) ) # <<<<<<<<<<<<<< + * return toInt(dim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetCoordinateDimension(__pyx_v_self->ds, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 60, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":61 + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetCoordinateDimension(self.ds, &dim) ) + * return toInt(dim) # <<<<<<<<<<<<<< + * + * def getNumFields(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dim); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":58 + * return toInt(dim) + * + * def getCoordinateDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * CHKERR( PetscDSGetCoordinateDimension(self.ds, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getCoordinateDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":63 + * return toInt(dim) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_21getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_20getNumFields[] = "DS.getNumFields(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_21getNumFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumFields (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumFields", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumFields", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_20getNumFields(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_20getNumFields(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_nf; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumFields", 0); + + /* "petsc4py/PETSc/DS.pyx":64 + * + * def getNumFields(self): + * cdef PetscInt nf = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * return toInt(nf) + */ + __pyx_v_nf = 0; + + /* "petsc4py/PETSc/DS.pyx":65 + * def getNumFields(self): + * cdef PetscInt nf = 0 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) # <<<<<<<<<<<<<< + * return toInt(nf) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetNumFields(__pyx_v_self->ds, (&__pyx_v_nf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 65, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":66 + * cdef PetscInt nf = 0 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * return toInt(nf) # <<<<<<<<<<<<<< + * + * def getFieldIndex(self, Object disc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nf); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":63 + * return toInt(dim) + * + * def getNumFields(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getNumFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":68 + * return toInt(nf) + * + * def getFieldIndex(self, Object disc): # <<<<<<<<<<<<<< + * cdef PetscInt field = 0 + * CHKERR( PetscDSGetFieldIndex(self.ds, disc.obj[0], &field) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_23getFieldIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_22getFieldIndex[] = "DS.getFieldIndex(self, Object disc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_23getFieldIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscObjectObject *__pyx_v_disc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldIndex (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_disc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_disc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldIndex") < 0)) __PYX_ERR(54, 68, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_disc = ((struct PyPetscObjectObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldIndex", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(54, 68, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.getFieldIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_disc), __pyx_ptype_8petsc4py_5PETSc_Object, 0, "disc", 0))) __PYX_ERR(54, 68, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_22getFieldIndex(((struct PyPetscDSObject *)__pyx_v_self), __pyx_v_disc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_22getFieldIndex(struct PyPetscDSObject *__pyx_v_self, struct PyPetscObjectObject *__pyx_v_disc) { + PetscInt __pyx_v_field; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldIndex", 0); + + /* "petsc4py/PETSc/DS.pyx":69 + * + * def getFieldIndex(self, Object disc): + * cdef PetscInt field = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetFieldIndex(self.ds, disc.obj[0], &field) ) + * return toInt(field) + */ + __pyx_v_field = 0; + + /* "petsc4py/PETSc/DS.pyx":70 + * def getFieldIndex(self, Object disc): + * cdef PetscInt field = 0 + * CHKERR( PetscDSGetFieldIndex(self.ds, disc.obj[0], &field) ) # <<<<<<<<<<<<<< + * return toInt(field) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetFieldIndex(__pyx_v_self->ds, (__pyx_v_disc->obj[0]), (&__pyx_v_field))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 70, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":71 + * cdef PetscInt field = 0 + * CHKERR( PetscDSGetFieldIndex(self.ds, disc.obj[0], &field) ) + * return toInt(field) # <<<<<<<<<<<<<< + * + * def getTotalDimensions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_field); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":68 + * return toInt(nf) + * + * def getFieldIndex(self, Object disc): # <<<<<<<<<<<<<< + * cdef PetscInt field = 0 + * CHKERR( PetscDSGetFieldIndex(self.ds, disc.obj[0], &field) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getFieldIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":73 + * return toInt(field) + * + * def getTotalDimensions(self): # <<<<<<<<<<<<<< + * cdef PetscInt tdim = 0 + * CHKERR( PetscDSGetTotalDimension(self.ds, &tdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_25getTotalDimensions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_24getTotalDimensions[] = "DS.getTotalDimensions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_25getTotalDimensions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTotalDimensions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTotalDimensions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTotalDimensions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_24getTotalDimensions(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_24getTotalDimensions(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_tdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTotalDimensions", 0); + + /* "petsc4py/PETSc/DS.pyx":74 + * + * def getTotalDimensions(self): + * cdef PetscInt tdim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetTotalDimension(self.ds, &tdim) ) + * return toInt(tdim) + */ + __pyx_v_tdim = 0; + + /* "petsc4py/PETSc/DS.pyx":75 + * def getTotalDimensions(self): + * cdef PetscInt tdim = 0 + * CHKERR( PetscDSGetTotalDimension(self.ds, &tdim) ) # <<<<<<<<<<<<<< + * return toInt(tdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetTotalDimension(__pyx_v_self->ds, (&__pyx_v_tdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 75, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":76 + * cdef PetscInt tdim = 0 + * CHKERR( PetscDSGetTotalDimension(self.ds, &tdim) ) + * return toInt(tdim) # <<<<<<<<<<<<<< + * + * def getTotalComponents(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_tdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":73 + * return toInt(field) + * + * def getTotalDimensions(self): # <<<<<<<<<<<<<< + * cdef PetscInt tdim = 0 + * CHKERR( PetscDSGetTotalDimension(self.ds, &tdim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getTotalDimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":78 + * return toInt(tdim) + * + * def getTotalComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt tcmp = 0 + * CHKERR( PetscDSGetTotalComponents(self.ds, &tcmp) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_27getTotalComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_26getTotalComponents[] = "DS.getTotalComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_27getTotalComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTotalComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTotalComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTotalComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_26getTotalComponents(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_26getTotalComponents(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_tcmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTotalComponents", 0); + + /* "petsc4py/PETSc/DS.pyx":79 + * + * def getTotalComponents(self): + * cdef PetscInt tcmp = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetTotalComponents(self.ds, &tcmp) ) + * return toInt(tcmp) + */ + __pyx_v_tcmp = 0; + + /* "petsc4py/PETSc/DS.pyx":80 + * def getTotalComponents(self): + * cdef PetscInt tcmp = 0 + * CHKERR( PetscDSGetTotalComponents(self.ds, &tcmp) ) # <<<<<<<<<<<<<< + * return toInt(tcmp) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetTotalComponents(__pyx_v_self->ds, (&__pyx_v_tcmp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 80, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":81 + * cdef PetscInt tcmp = 0 + * CHKERR( PetscDSGetTotalComponents(self.ds, &tcmp) ) + * return toInt(tcmp) # <<<<<<<<<<<<<< + * + * def getDimensions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_tcmp); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":78 + * return toInt(tdim) + * + * def getTotalComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt tcmp = 0 + * CHKERR( PetscDSGetTotalComponents(self.ds, &tcmp) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getTotalComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":83 + * return toInt(tcmp) + * + * def getDimensions(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0, *dims = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_29getDimensions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_28getDimensions[] = "DS.getDimensions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_29getDimensions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDimensions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDimensions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDimensions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_28getDimensions(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_28getDimensions(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_nf; + PetscInt *__pyx_v_dims; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDimensions", 0); + + /* "petsc4py/PETSc/DS.pyx":84 + * + * def getDimensions(self): + * cdef PetscInt nf = 0, *dims = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetDimensions(self.ds, &dims) ) + */ + __pyx_v_nf = 0; + __pyx_v_dims = NULL; + + /* "petsc4py/PETSc/DS.pyx":85 + * def getDimensions(self): + * cdef PetscInt nf = 0, *dims = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetDimensions(self.ds, &dims) ) + * return array_i(nf, dims) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetNumFields(__pyx_v_self->ds, (&__pyx_v_nf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 85, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":86 + * cdef PetscInt nf = 0, *dims = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetDimensions(self.ds, &dims) ) # <<<<<<<<<<<<<< + * return array_i(nf, dims) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetDimensions(__pyx_v_self->ds, (&__pyx_v_dims))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 86, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":87 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetDimensions(self.ds, &dims) ) + * return array_i(nf, dims) # <<<<<<<<<<<<<< + * + * def getComponents(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nf, __pyx_v_dims)); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":83 + * return toInt(tcmp) + * + * def getDimensions(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0, *dims = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getDimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":89 + * return array_i(nf, dims) + * + * def getComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0, *cmps = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_31getComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_30getComponents[] = "DS.getComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_31getComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_30getComponents(((struct PyPetscDSObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_30getComponents(struct PyPetscDSObject *__pyx_v_self) { + PetscInt __pyx_v_nf; + PetscInt *__pyx_v_cmps; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getComponents", 0); + + /* "petsc4py/PETSc/DS.pyx":90 + * + * def getComponents(self): + * cdef PetscInt nf = 0, *cmps = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetComponents(self.ds, &cmps) ) + */ + __pyx_v_nf = 0; + __pyx_v_cmps = NULL; + + /* "petsc4py/PETSc/DS.pyx":91 + * def getComponents(self): + * cdef PetscInt nf = 0, *cmps = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) # <<<<<<<<<<<<<< + * CHKERR( PetscDSGetComponents(self.ds, &cmps) ) + * return array_i(nf, cmps) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetNumFields(__pyx_v_self->ds, (&__pyx_v_nf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 91, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":92 + * cdef PetscInt nf = 0, *cmps = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetComponents(self.ds, &cmps) ) # <<<<<<<<<<<<<< + * return array_i(nf, cmps) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSGetComponents(__pyx_v_self->ds, (&__pyx_v_cmps))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 92, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":93 + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + * CHKERR( PetscDSGetComponents(self.ds, &cmps) ) + * return array_i(nf, cmps) # <<<<<<<<<<<<<< + * + * def setDiscretisation(self, f, disc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nf, __pyx_v_cmps)); if (unlikely(!__pyx_t_2)) __PYX_ERR(54, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DS.pyx":89 + * return array_i(nf, dims) + * + * def getComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt nf = 0, *cmps = NULL + * CHKERR( PetscDSGetNumFields(self.ds, &nf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.getComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DS.pyx":95 + * return array_i(nf, cmps) + * + * def setDiscretisation(self, f, disc): # <<<<<<<<<<<<<< + * cdef PetscInt cf = asInt(f) + * cdef FE fe = disc + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_33setDiscretisation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_2DS_32setDiscretisation[] = "DS.setDiscretisation(self, f, disc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_2DS_33setDiscretisation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_f = 0; + PyObject *__pyx_v_disc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDiscretisation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_f,&__pyx_n_s_disc,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_f)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_disc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setDiscretisation", 1, 2, 2, 1); __PYX_ERR(54, 95, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDiscretisation") < 0)) __PYX_ERR(54, 95, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_f = values[0]; + __pyx_v_disc = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDiscretisation", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(54, 95, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DS.setDiscretisation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_2DS_32setDiscretisation(((struct PyPetscDSObject *)__pyx_v_self), __pyx_v_f, __pyx_v_disc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_2DS_32setDiscretisation(struct PyPetscDSObject *__pyx_v_self, PyObject *__pyx_v_f, PyObject *__pyx_v_disc) { + PetscInt __pyx_v_cf; + struct PyPetscFEObject *__pyx_v_fe = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDiscretisation", 0); + + /* "petsc4py/PETSc/DS.pyx":96 + * + * def setDiscretisation(self, f, disc): + * cdef PetscInt cf = asInt(f) # <<<<<<<<<<<<<< + * cdef FE fe = disc + * CHKERR( PetscDSSetDiscretization(self.ds, cf, fe.fe) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_f); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(54, 96, __pyx_L1_error) + __pyx_v_cf = __pyx_t_1; + + /* "petsc4py/PETSc/DS.pyx":97 + * def setDiscretisation(self, f, disc): + * cdef PetscInt cf = asInt(f) + * cdef FE fe = disc # <<<<<<<<<<<<<< + * CHKERR( PetscDSSetDiscretization(self.ds, cf, fe.fe) ) + * + */ + if (!(likely(((__pyx_v_disc) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_disc, __pyx_ptype_8petsc4py_5PETSc_FE))))) __PYX_ERR(54, 97, __pyx_L1_error) + __pyx_t_2 = __pyx_v_disc; + __Pyx_INCREF(__pyx_t_2); + __pyx_v_fe = ((struct PyPetscFEObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DS.pyx":98 + * cdef PetscInt cf = asInt(f) + * cdef FE fe = disc + * CHKERR( PetscDSSetDiscretization(self.ds, cf, fe.fe) ) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDSSetDiscretization(__pyx_v_self->ds, __pyx_v_cf, ((PetscObject)__pyx_v_fe->fe))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(54, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":95 + * return array_i(nf, cmps) + * + * def setDiscretisation(self, f, disc): # <<<<<<<<<<<<<< + * cdef PetscInt cf = asInt(f) + * cdef FE fe = disc + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DS.setDiscretisation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_fe); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":25 + * # + * + * def create(self, dim=None, dof=None, # <<<<<<<<<<<<<< + * sizes=None, proc_sizes=None, boundary_type=None, + * stencil_type=None, stencil_width=None, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_create[] = "DMDA.create(self, dim=None, dof=None, sizes=None, proc_sizes=None, boundary_type=None, stencil_type=None, stencil_width=None, bool setup=True, ownership_ranges=None, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + PyObject *__pyx_v_dof = 0; + PyObject *__pyx_v_sizes = 0; + PyObject *__pyx_v_proc_sizes = 0; + PyObject *__pyx_v_boundary_type = 0; + PyObject *__pyx_v_stencil_type = 0; + PyObject *__pyx_v_stencil_width = 0; + int __pyx_v_setup; + PyObject *__pyx_v_ownership_ranges = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_dof,&__pyx_n_s_sizes,&__pyx_n_s_proc_sizes,&__pyx_n_s_boundary_type,&__pyx_n_s_stencil_type,&__pyx_n_s_stencil_width,&__pyx_n_s_setup,&__pyx_n_s_ownership_ranges,&__pyx_n_s_comm,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMDA.pyx":26 + * + * def create(self, dim=None, dof=None, + * sizes=None, proc_sizes=None, boundary_type=None, # <<<<<<<<<<<<<< + * stencil_type=None, stencil_width=None, + * bint setup=True, ownership_ranges=None, comm=None): + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMDA.pyx":27 + * def create(self, dim=None, dof=None, + * sizes=None, proc_sizes=None, boundary_type=None, + * stencil_type=None, stencil_width=None, # <<<<<<<<<<<<<< + * bint setup=True, ownership_ranges=None, comm=None): + * # + */ + values[5] = ((PyObject *)Py_None); + values[6] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMDA.pyx":28 + * sizes=None, proc_sizes=None, boundary_type=None, + * stencil_type=None, stencil_width=None, + * bint setup=True, ownership_ranges=None, comm=None): # <<<<<<<<<<<<<< + * # + * cdef object arg = None + */ + values[8] = ((PyObject *)Py_None); + values[9] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proc_sizes); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary_type); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_type); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_width); + if (value) { values[6] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_setup); + if (value) { values[7] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 8: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ownership_ranges); + if (value) { values[8] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 9: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[9] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(55, 25, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_dof = values[1]; + __pyx_v_sizes = values[2]; + __pyx_v_proc_sizes = values[3]; + __pyx_v_boundary_type = values[4]; + __pyx_v_stencil_type = values[5]; + __pyx_v_stencil_width = values[6]; + if (values[7]) { + __pyx_v_setup = __Pyx_PyObject_IsTrue(values[7]); if (unlikely((__pyx_v_setup == (int)-1) && PyErr_Occurred())) __PYX_ERR(55, 28, __pyx_L3_error) + } else { + __pyx_v_setup = ((int)1); + } + __pyx_v_ownership_ranges = values[8]; + __pyx_v_comm = values[9]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 25, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_create(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_dim, __pyx_v_dof, __pyx_v_sizes, __pyx_v_proc_sizes, __pyx_v_boundary_type, __pyx_v_stencil_type, __pyx_v_stencil_width, __pyx_v_setup, __pyx_v_ownership_ranges, __pyx_v_comm); + + /* "petsc4py/PETSc/DMDA.pyx":25 + * # + * + * def create(self, dim=None, dof=None, # <<<<<<<<<<<<<< + * sizes=None, proc_sizes=None, boundary_type=None, + * stencil_type=None, stencil_width=None, + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_create(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_dof, PyObject *__pyx_v_sizes, PyObject *__pyx_v_proc_sizes, PyObject *__pyx_v_boundary_type, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width, int __pyx_v_setup, PyObject *__pyx_v_ownership_ranges, PyObject *__pyx_v_comm) { + PyObject *__pyx_v_arg = 0; + PetscInt __pyx_v_ndim; + PetscInt __pyx_v_ndof; + PetscInt __pyx_v_M; + PetscInt __pyx_v_m; + PetscInt *__pyx_v_lx; + PetscInt __pyx_v_N; + PetscInt __pyx_v_n; + PetscInt *__pyx_v_ly; + PetscInt __pyx_v_P; + PetscInt __pyx_v_p; + PetscInt *__pyx_v_lz; + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + DMDAStencilType __pyx_v_stype; + PetscInt __pyx_v_swidth; + PyObject *__pyx_v_gsizes = 0; + PyObject *__pyx_v_psizes = 0; + PetscInt __pyx_v_gdim; + PetscInt __pyx_v_pdim; + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newda; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + PetscInt __pyx_t_9; + DMDAStencilType __pyx_t_10; + MPI_Comm __pyx_t_11; + PetscErrorCode __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + __Pyx_INCREF(__pyx_v_dim); + __Pyx_INCREF(__pyx_v_sizes); + __Pyx_INCREF(__pyx_v_ownership_ranges); + + /* "petsc4py/PETSc/DMDA.pyx":30 + * bint setup=True, ownership_ranges=None, comm=None): + * # + * cdef object arg = None # <<<<<<<<<<<<<< + * try: arg = tuple(dim) + * except TypeError: pass + */ + __Pyx_INCREF(Py_None); + __pyx_v_arg = Py_None; + + /* "petsc4py/PETSc/DMDA.pyx":31 + * # + * cdef object arg = None + * try: arg = tuple(dim) # <<<<<<<<<<<<<< + * except TypeError: pass + * else: dim, sizes = None, arg + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_2, &__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_dim); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 31, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_4); + __pyx_t_4 = 0; + } + + /* "petsc4py/PETSc/DMDA.pyx":33 + * try: arg = tuple(dim) + * except TypeError: pass + * else: dim, sizes = None, arg # <<<<<<<<<<<<<< + * # + * cdef PetscInt ndim = PETSC_DECIDE + */ + /*else:*/ { + __pyx_t_4 = Py_None; + __Pyx_INCREF(__pyx_t_4); + __pyx_t_5 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_dim, __pyx_t_4); + __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_sizes, __pyx_t_5); + __pyx_t_5 = 0; + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L8_try_end; + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":32 + * cdef object arg = None + * try: arg = tuple(dim) + * except TypeError: pass # <<<<<<<<<<<<<< + * else: dim, sizes = None, arg + * # + */ + __pyx_t_6 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_6) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L4_exception_handled; + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "petsc4py/PETSc/DMDA.pyx":31 + * # + * cdef object arg = None + * try: arg = tuple(dim) # <<<<<<<<<<<<<< + * except TypeError: pass + * else: dim, sizes = None, arg + */ + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + goto __pyx_L1_error; + __pyx_L4_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); + __pyx_L8_try_end:; + } + + /* "petsc4py/PETSc/DMDA.pyx":35 + * else: dim, sizes = None, arg + * # + * cdef PetscInt ndim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt ndof = PETSC_DECIDE + * cdef PetscInt M = 1, m = PETSC_DECIDE, *lx = NULL + */ + __pyx_v_ndim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":36 + * # + * cdef PetscInt ndim = PETSC_DECIDE + * cdef PetscInt ndof = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt M = 1, m = PETSC_DECIDE, *lx = NULL + * cdef PetscInt N = 1, n = PETSC_DECIDE, *ly = NULL + */ + __pyx_v_ndof = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":37 + * cdef PetscInt ndim = PETSC_DECIDE + * cdef PetscInt ndof = PETSC_DECIDE + * cdef PetscInt M = 1, m = PETSC_DECIDE, *lx = NULL # <<<<<<<<<<<<<< + * cdef PetscInt N = 1, n = PETSC_DECIDE, *ly = NULL + * cdef PetscInt P = 1, p = PETSC_DECIDE, *lz = NULL + */ + __pyx_v_M = 1; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_lx = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":38 + * cdef PetscInt ndof = PETSC_DECIDE + * cdef PetscInt M = 1, m = PETSC_DECIDE, *lx = NULL + * cdef PetscInt N = 1, n = PETSC_DECIDE, *ly = NULL # <<<<<<<<<<<<<< + * cdef PetscInt P = 1, p = PETSC_DECIDE, *lz = NULL + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + __pyx_v_N = 1; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_ly = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":39 + * cdef PetscInt M = 1, m = PETSC_DECIDE, *lx = NULL + * cdef PetscInt N = 1, n = PETSC_DECIDE, *ly = NULL + * cdef PetscInt P = 1, p = PETSC_DECIDE, *lz = NULL # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + __pyx_v_P = 1; + __pyx_v_p = PETSC_DECIDE; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":40 + * cdef PetscInt N = 1, n = PETSC_DECIDE, *ly = NULL + * cdef PetscInt P = 1, p = PETSC_DECIDE, *lz = NULL + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":41 + * cdef PetscInt P = 1, p = PETSC_DECIDE, *lz = NULL + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":42 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = PETSC_DECIDE + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":43 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * cdef PetscInt swidth = PETSC_DECIDE + * # grid and proc sizes + */ + __pyx_v_stype = DMDA_STENCIL_BOX; + + /* "petsc4py/PETSc/DMDA.pyx":44 + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = PETSC_DECIDE # <<<<<<<<<<<<<< + * # grid and proc sizes + * cdef object gsizes = sizes + */ + __pyx_v_swidth = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":46 + * cdef PetscInt swidth = PETSC_DECIDE + * # grid and proc sizes + * cdef object gsizes = sizes # <<<<<<<<<<<<<< + * cdef object psizes = proc_sizes + * cdef PetscInt gdim = PETSC_DECIDE + */ + __Pyx_INCREF(__pyx_v_sizes); + __pyx_v_gsizes = __pyx_v_sizes; + + /* "petsc4py/PETSc/DMDA.pyx":47 + * # grid and proc sizes + * cdef object gsizes = sizes + * cdef object psizes = proc_sizes # <<<<<<<<<<<<<< + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt pdim = PETSC_DECIDE + */ + __Pyx_INCREF(__pyx_v_proc_sizes); + __pyx_v_psizes = __pyx_v_proc_sizes; + + /* "petsc4py/PETSc/DMDA.pyx":48 + * cdef object gsizes = sizes + * cdef object psizes = proc_sizes + * cdef PetscInt gdim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt pdim = PETSC_DECIDE + * if sizes is not None: + */ + __pyx_v_gdim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":49 + * cdef object psizes = proc_sizes + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt pdim = PETSC_DECIDE # <<<<<<<<<<<<<< + * if sizes is not None: + * gdim = asDims(gsizes, &M, &N, &P) + */ + __pyx_v_pdim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":50 + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt pdim = PETSC_DECIDE + * if sizes is not None: # <<<<<<<<<<<<<< + * gdim = asDims(gsizes, &M, &N, &P) + * if psizes is not None: + */ + __pyx_t_7 = (__pyx_v_sizes != Py_None); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + + /* "petsc4py/PETSc/DMDA.pyx":51 + * cdef PetscInt pdim = PETSC_DECIDE + * if sizes is not None: + * gdim = asDims(gsizes, &M, &N, &P) # <<<<<<<<<<<<<< + * if psizes is not None: + * pdim = asDims(psizes, &m, &n, &p) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_gsizes, (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P)); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 51, __pyx_L1_error) + __pyx_v_gdim = __pyx_t_9; + + /* "petsc4py/PETSc/DMDA.pyx":50 + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt pdim = PETSC_DECIDE + * if sizes is not None: # <<<<<<<<<<<<<< + * gdim = asDims(gsizes, &M, &N, &P) + * if psizes is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":52 + * if sizes is not None: + * gdim = asDims(gsizes, &M, &N, &P) + * if psizes is not None: # <<<<<<<<<<<<<< + * pdim = asDims(psizes, &m, &n, &p) + * if gdim>=0 and pdim>=0: + */ + __pyx_t_8 = (__pyx_v_psizes != Py_None); + __pyx_t_7 = (__pyx_t_8 != 0); + if (__pyx_t_7) { + + /* "petsc4py/PETSc/DMDA.pyx":53 + * gdim = asDims(gsizes, &M, &N, &P) + * if psizes is not None: + * pdim = asDims(psizes, &m, &n, &p) # <<<<<<<<<<<<<< + * if gdim>=0 and pdim>=0: + * assert gdim == pdim + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_psizes, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p)); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 53, __pyx_L1_error) + __pyx_v_pdim = __pyx_t_9; + + /* "petsc4py/PETSc/DMDA.pyx":52 + * if sizes is not None: + * gdim = asDims(gsizes, &M, &N, &P) + * if psizes is not None: # <<<<<<<<<<<<<< + * pdim = asDims(psizes, &m, &n, &p) + * if gdim>=0 and pdim>=0: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":54 + * if psizes is not None: + * pdim = asDims(psizes, &m, &n, &p) + * if gdim>=0 and pdim>=0: # <<<<<<<<<<<<<< + * assert gdim == pdim + * # dim and dof + */ + __pyx_t_8 = ((__pyx_v_gdim >= 0) != 0); + if (__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_8 = ((__pyx_v_pdim >= 0) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L12_bool_binop_done:; + if (__pyx_t_7) { + + /* "petsc4py/PETSc/DMDA.pyx":55 + * pdim = asDims(psizes, &m, &n, &p) + * if gdim>=0 and pdim>=0: + * assert gdim == pdim # <<<<<<<<<<<<<< + * # dim and dof + * if dim is not None: ndim = asInt(dim) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_gdim == __pyx_v_pdim) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(55, 55, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMDA.pyx":54 + * if psizes is not None: + * pdim = asDims(psizes, &m, &n, &p) + * if gdim>=0 and pdim>=0: # <<<<<<<<<<<<<< + * assert gdim == pdim + * # dim and dof + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":57 + * assert gdim == pdim + * # dim and dof + * if dim is not None: ndim = asInt(dim) # <<<<<<<<<<<<<< + * if dof is not None: ndof = asInt(dof) + * if ndim==PETSC_DECIDE: ndim = gdim + */ + __pyx_t_7 = (__pyx_v_dim != Py_None); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 57, __pyx_L1_error) + __pyx_v_ndim = __pyx_t_9; + } + + /* "petsc4py/PETSc/DMDA.pyx":58 + * # dim and dof + * if dim is not None: ndim = asInt(dim) + * if dof is not None: ndof = asInt(dof) # <<<<<<<<<<<<<< + * if ndim==PETSC_DECIDE: ndim = gdim + * if ndof==PETSC_DECIDE: ndof = 1 + */ + __pyx_t_8 = (__pyx_v_dof != Py_None); + __pyx_t_7 = (__pyx_t_8 != 0); + if (__pyx_t_7) { + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 58, __pyx_L1_error) + __pyx_v_ndof = __pyx_t_9; + } + + /* "petsc4py/PETSc/DMDA.pyx":59 + * if dim is not None: ndim = asInt(dim) + * if dof is not None: ndof = asInt(dof) + * if ndim==PETSC_DECIDE: ndim = gdim # <<<<<<<<<<<<<< + * if ndof==PETSC_DECIDE: ndof = 1 + * # vertex distribution + */ + __pyx_t_7 = ((__pyx_v_ndim == PETSC_DECIDE) != 0); + if (__pyx_t_7) { + __pyx_v_ndim = __pyx_v_gdim; + } + + /* "petsc4py/PETSc/DMDA.pyx":60 + * if dof is not None: ndof = asInt(dof) + * if ndim==PETSC_DECIDE: ndim = gdim + * if ndof==PETSC_DECIDE: ndof = 1 # <<<<<<<<<<<<<< + * # vertex distribution + * if ownership_ranges is not None: + */ + __pyx_t_7 = ((__pyx_v_ndof == PETSC_DECIDE) != 0); + if (__pyx_t_7) { + __pyx_v_ndof = 1; + } + + /* "petsc4py/PETSc/DMDA.pyx":62 + * if ndof==PETSC_DECIDE: ndof = 1 + * # vertex distribution + * if ownership_ranges is not None: # <<<<<<<<<<<<<< + * ownership_ranges = asOwnershipRanges(ownership_ranges, + * ndim, &m, &n, &p, + */ + __pyx_t_7 = (__pyx_v_ownership_ranges != Py_None); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + + /* "petsc4py/PETSc/DMDA.pyx":63 + * # vertex distribution + * if ownership_ranges is not None: + * ownership_ranges = asOwnershipRanges(ownership_ranges, # <<<<<<<<<<<<<< + * ndim, &m, &n, &p, + * &lx, &ly, &lz) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asOwnershipRanges(__pyx_v_ownership_ranges, __pyx_v_ndim, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz)); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_ownership_ranges, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":62 + * if ndof==PETSC_DECIDE: ndof = 1 + * # vertex distribution + * if ownership_ranges is not None: # <<<<<<<<<<<<<< + * ownership_ranges = asOwnershipRanges(ownership_ranges, + * ndim, &m, &n, &p, + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":67 + * &lx, &ly, &lz) + * # periodicity, stencil type & width + * if boundary_type is not None: # <<<<<<<<<<<<<< + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + */ + __pyx_t_8 = (__pyx_v_boundary_type != Py_None); + __pyx_t_7 = (__pyx_t_8 != 0); + if (__pyx_t_7) { + + /* "petsc4py/PETSc/DMDA.pyx":68 + * # periodicity, stencil type & width + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) # <<<<<<<<<<<<<< + * if stencil_type is not None: + * stype = asStencil(stencil_type) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_boundary_type, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz)); if (unlikely(__pyx_t_9 == ((PetscInt)-1L))) __PYX_ERR(55, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":67 + * &lx, &ly, &lz) + * # periodicity, stencil type & width + * if boundary_type is not None: # <<<<<<<<<<<<<< + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":69 + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStencil(stencil_type) + * if stencil_width is not None: + */ + __pyx_t_7 = (__pyx_v_stencil_type != Py_None); + __pyx_t_8 = (__pyx_t_7 != 0); + if (__pyx_t_8) { + + /* "petsc4py/PETSc/DMDA.pyx":70 + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + * stype = asStencil(stencil_type) # <<<<<<<<<<<<<< + * if stencil_width is not None: + * swidth = asInt(stencil_width) + */ + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_asStencil(__pyx_v_stencil_type); if (unlikely(__pyx_t_10 == ((DMDAStencilType)((DMDAStencilType)-1L)))) __PYX_ERR(55, 70, __pyx_L1_error) + __pyx_v_stype = __pyx_t_10; + + /* "petsc4py/PETSc/DMDA.pyx":69 + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStencil(stencil_type) + * if stencil_width is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":71 + * if stencil_type is not None: + * stype = asStencil(stencil_type) + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * if setup and swidth == PETSC_DECIDE: swidth = 0 + */ + __pyx_t_8 = (__pyx_v_stencil_width != Py_None); + __pyx_t_7 = (__pyx_t_8 != 0); + if (__pyx_t_7) { + + /* "petsc4py/PETSc/DMDA.pyx":72 + * stype = asStencil(stencil_type) + * if stencil_width is not None: + * swidth = asInt(stencil_width) # <<<<<<<<<<<<<< + * if setup and swidth == PETSC_DECIDE: swidth = 0 + * # create the DMDA object + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stencil_width); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 72, __pyx_L1_error) + __pyx_v_swidth = __pyx_t_9; + + /* "petsc4py/PETSc/DMDA.pyx":71 + * if stencil_type is not None: + * stype = asStencil(stencil_type) + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * if setup and swidth == PETSC_DECIDE: swidth = 0 + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":73 + * if stencil_width is not None: + * swidth = asInt(stencil_width) + * if setup and swidth == PETSC_DECIDE: swidth = 0 # <<<<<<<<<<<<<< + * # create the DMDA object + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_8 = (__pyx_v_setup != 0); + if (__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L23_bool_binop_done; + } + __pyx_t_8 = ((__pyx_v_swidth == PETSC_DECIDE) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L23_bool_binop_done:; + if (__pyx_t_7) { + __pyx_v_swidth = 0; + } + + /* "petsc4py/PETSc/DMDA.pyx":75 + * if setup and swidth == PETSC_DECIDE: swidth = 0 + * # create the DMDA object + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newda = NULL + * CHKERR( DMDACreateND(ccomm, ndim, ndof, + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(55, 75, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_11; + + /* "petsc4py/PETSc/DMDA.pyx":76 + * # create the DMDA object + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newda = NULL # <<<<<<<<<<<<<< + * CHKERR( DMDACreateND(ccomm, ndim, ndof, + * M, N, P, m, n, p, lx, ly, lz, + */ + __pyx_v_newda = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":77 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newda = NULL + * CHKERR( DMDACreateND(ccomm, ndim, ndof, # <<<<<<<<<<<<<< + * M, N, P, m, n, p, lx, ly, lz, + * btx, bty, btz, stype, swidth, + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDACreateND(__pyx_v_ccomm, __pyx_v_ndim, __pyx_v_ndof, __pyx_v_M, __pyx_v_N, __pyx_v_P, __pyx_v_m, __pyx_v_n, __pyx_v_p, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz, __pyx_v_stype, __pyx_v_swidth, (&__pyx_v_newda))); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 77, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":81 + * btx, bty, btz, stype, swidth, + * &newda) ) + * if setup and ndim > 0: CHKERR( DMSetUp(newda) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newda + * return self + */ + __pyx_t_8 = (__pyx_v_setup != 0); + if (__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L26_bool_binop_done; + } + __pyx_t_8 = ((__pyx_v_ndim > 0) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L26_bool_binop_done:; + if (__pyx_t_7) { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetUp(__pyx_v_newda)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 81, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMDA.pyx":82 + * &newda) ) + * if setup and ndim > 0: CHKERR( DMSetUp(newda) ) + * PetscCLEAR(self.obj); self.dm = newda # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newda; + + /* "petsc4py/PETSc/DMDA.pyx":83 + * if setup and ndim > 0: CHKERR( DMSetUp(newda) ) + * PetscCLEAR(self.obj); self.dm = newda + * return self # <<<<<<<<<<<<<< + * + * def duplicate(self, dof=None, boundary_type=None, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":25 + * # + * + * def create(self, dim=None, dof=None, # <<<<<<<<<<<<<< + * sizes=None, proc_sizes=None, boundary_type=None, + * stencil_type=None, stencil_width=None, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_arg); + __Pyx_XDECREF(__pyx_v_gsizes); + __Pyx_XDECREF(__pyx_v_psizes); + __Pyx_XDECREF(__pyx_v_dim); + __Pyx_XDECREF(__pyx_v_sizes); + __Pyx_XDECREF(__pyx_v_ownership_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":85 + * return self + * + * def duplicate(self, dof=None, boundary_type=None, # <<<<<<<<<<<<<< + * stencil_type=None, stencil_width=None): + * cdef PetscInt ndim = 0, ndof = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_2duplicate[] = "DMDA.duplicate(self, dof=None, boundary_type=None, stencil_type=None, stencil_width=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dof = 0; + PyObject *__pyx_v_boundary_type = 0; + PyObject *__pyx_v_stencil_type = 0; + PyObject *__pyx_v_stencil_width = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dof,&__pyx_n_s_boundary_type,&__pyx_n_s_stencil_type,&__pyx_n_s_stencil_width,0}; + PyObject* values[4] = {0,0,0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMDA.pyx":86 + * + * def duplicate(self, dof=None, boundary_type=None, + * stencil_type=None, stencil_width=None): # <<<<<<<<<<<<<< + * cdef PetscInt ndim = 0, ndof = 0 + * cdef PetscInt M = 1, N = 1, P = 1 + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary_type); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_type); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_width); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "duplicate") < 0)) __PYX_ERR(55, 85, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dof = values[0]; + __pyx_v_boundary_type = values[1]; + __pyx_v_stencil_type = values[2]; + __pyx_v_stencil_width = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("duplicate", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 85, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_2duplicate(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_dof, __pyx_v_boundary_type, __pyx_v_stencil_type, __pyx_v_stencil_width); + + /* "petsc4py/PETSc/DMDA.pyx":85 + * return self + * + * def duplicate(self, dof=None, boundary_type=None, # <<<<<<<<<<<<<< + * stencil_type=None, stencil_width=None): + * cdef PetscInt ndim = 0, ndof = 0 + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_2duplicate(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dof, PyObject *__pyx_v_boundary_type, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width) { + PetscInt __pyx_v_ndim; + PetscInt __pyx_v_ndof; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PetscInt __pyx_v_P; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + DMDAStencilType __pyx_v_stype; + PetscInt __pyx_v_swidth; + PetscInt const *__pyx_v_lx; + PetscInt const *__pyx_v_ly; + PetscInt const *__pyx_v_lz; + MPI_Comm __pyx_v_comm; + struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_da = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + DMDAStencilType __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/DMDA.pyx":87 + * def duplicate(self, dof=None, boundary_type=None, + * stencil_type=None, stencil_width=None): + * cdef PetscInt ndim = 0, ndof = 0 # <<<<<<<<<<<<<< + * cdef PetscInt M = 1, N = 1, P = 1 + * cdef PetscInt m = 1, n = 1, p = 1 + */ + __pyx_v_ndim = 0; + __pyx_v_ndof = 0; + + /* "petsc4py/PETSc/DMDA.pyx":88 + * stencil_type=None, stencil_width=None): + * cdef PetscInt ndim = 0, ndof = 0 + * cdef PetscInt M = 1, N = 1, P = 1 # <<<<<<<<<<<<<< + * cdef PetscInt m = 1, n = 1, p = 1 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + __pyx_v_M = 1; + __pyx_v_N = 1; + __pyx_v_P = 1; + + /* "petsc4py/PETSc/DMDA.pyx":89 + * cdef PetscInt ndim = 0, ndof = 0 + * cdef PetscInt M = 1, N = 1, P = 1 + * cdef PetscInt m = 1, n = 1, p = 1 # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + __pyx_v_m = 1; + __pyx_v_n = 1; + __pyx_v_p = 1; + + /* "petsc4py/PETSc/DMDA.pyx":90 + * cdef PetscInt M = 1, N = 1, P = 1 + * cdef PetscInt m = 1, n = 1, p = 1 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":91 + * cdef PetscInt m = 1, n = 1, p = 1 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":92 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = PETSC_DECIDE + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":93 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * cdef PetscInt swidth = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_stype = DMDA_STENCIL_BOX; + + /* "petsc4py/PETSc/DMDA.pyx":94 + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * &ndim, + */ + __pyx_v_swidth = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":95 + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * &ndim, + * &M, &N, &P, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, (&__pyx_v_ndim), (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), (&__pyx_v_ndof), (&__pyx_v_swidth), (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz), (&__pyx_v_stype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 95, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":102 + * &btx, &bty, &btz, + * &stype) ) + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL # <<<<<<<<<<<<<< + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + */ + __pyx_v_lx = NULL; + __pyx_v_ly = NULL; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":103 + * &stype) ) + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) # <<<<<<<<<<<<<< + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &comm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetOwnershipRanges(__pyx_v_self->__pyx_base.dm, (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 103, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":104 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * cdef MPI_Comm comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(self.dm, &comm) ) + * # + */ + __pyx_v_comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/DMDA.pyx":105 + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * cdef MPI_Comm comm = MPI_COMM_NULL + * CHKERR( PetscObjectGetComm(self.dm, &comm) ) # <<<<<<<<<<<<<< + * # + * if dof is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_self->__pyx_base.dm), (&__pyx_v_comm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 105, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":107 + * CHKERR( PetscObjectGetComm(self.dm, &comm) ) + * # + * if dof is not None: # <<<<<<<<<<<<<< + * ndof = asInt(dof) + * if boundary_type is not None: + */ + __pyx_t_2 = (__pyx_v_dof != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMDA.pyx":108 + * # + * if dof is not None: + * ndof = asInt(dof) # <<<<<<<<<<<<<< + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 108, __pyx_L1_error) + __pyx_v_ndof = __pyx_t_4; + + /* "petsc4py/PETSc/DMDA.pyx":107 + * CHKERR( PetscObjectGetComm(self.dm, &comm) ) + * # + * if dof is not None: # <<<<<<<<<<<<<< + * ndof = asInt(dof) + * if boundary_type is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":109 + * if dof is not None: + * ndof = asInt(dof) + * if boundary_type is not None: # <<<<<<<<<<<<<< + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + */ + __pyx_t_3 = (__pyx_v_boundary_type != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMDA.pyx":110 + * ndof = asInt(dof) + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) # <<<<<<<<<<<<<< + * if stencil_type is not None: + * stype = asStencil(stencil_type) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_boundary_type, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz)); if (unlikely(__pyx_t_4 == ((PetscInt)-1L))) __PYX_ERR(55, 110, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":109 + * if dof is not None: + * ndof = asInt(dof) + * if boundary_type is not None: # <<<<<<<<<<<<<< + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":111 + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStencil(stencil_type) + * if stencil_width is not None: + */ + __pyx_t_2 = (__pyx_v_stencil_type != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMDA.pyx":112 + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: + * stype = asStencil(stencil_type) # <<<<<<<<<<<<<< + * if stencil_width is not None: + * swidth = asInt(stencil_width) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_asStencil(__pyx_v_stencil_type); if (unlikely(__pyx_t_5 == ((DMDAStencilType)((DMDAStencilType)-1L)))) __PYX_ERR(55, 112, __pyx_L1_error) + __pyx_v_stype = __pyx_t_5; + + /* "petsc4py/PETSc/DMDA.pyx":111 + * if boundary_type is not None: + * asBoundary(boundary_type, &btx, &bty, &btz) + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStencil(stencil_type) + * if stencil_width is not None: + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":113 + * if stencil_type is not None: + * stype = asStencil(stencil_type) + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * # + */ + __pyx_t_3 = (__pyx_v_stencil_width != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMDA.pyx":114 + * stype = asStencil(stencil_type) + * if stencil_width is not None: + * swidth = asInt(stencil_width) # <<<<<<<<<<<<<< + * # + * cdef DMDA da = DMDA() + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stencil_width); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 114, __pyx_L1_error) + __pyx_v_swidth = __pyx_t_4; + + /* "petsc4py/PETSc/DMDA.pyx":113 + * if stencil_type is not None: + * stype = asStencil(stencil_type) + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * # + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":116 + * swidth = asInt(stencil_width) + * # + * cdef DMDA da = DMDA() # <<<<<<<<<<<<<< + * CHKERR( DMDACreateND(comm, ndim, ndof, + * M, N, P, m, n, p, lx, ly, lz, + */ + __pyx_t_6 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA)); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_da = ((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":117 + * # + * cdef DMDA da = DMDA() + * CHKERR( DMDACreateND(comm, ndim, ndof, # <<<<<<<<<<<<<< + * M, N, P, m, n, p, lx, ly, lz, + * btx, bty, btz, stype, swidth, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDACreateND(__pyx_v_comm, __pyx_v_ndim, __pyx_v_ndof, __pyx_v_M, __pyx_v_N, __pyx_v_P, __pyx_v_m, __pyx_v_n, __pyx_v_p, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz, __pyx_v_stype, __pyx_v_swidth, (&__pyx_v_da->__pyx_base.dm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 117, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":121 + * btx, bty, btz, stype, swidth, + * &da.dm) ) + * CHKERR( DMSetUp(da.dm) ) # <<<<<<<<<<<<<< + * return da + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetUp(__pyx_v_da->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":122 + * &da.dm) ) + * CHKERR( DMSetUp(da.dm) ) + * return da # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_da)); + __pyx_r = ((PyObject *)__pyx_v_da); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":85 + * return self + * + * def duplicate(self, dof=None, boundary_type=None, # <<<<<<<<<<<<<< + * stencil_type=None, stencil_width=None): + * cdef PetscInt ndim = 0, ndof = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_da); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":126 + * # + * + * def setDim(self, dim): # <<<<<<<<<<<<<< + * return self.setDimension(dim) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_5setDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_4setDim[] = "DMDA.setDim(self, dim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_5setDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDim (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDim") < 0)) __PYX_ERR(55, 126, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDim", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 126, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_4setDim(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_dim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_4setDim(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dim) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDim", 0); + + /* "petsc4py/PETSc/DMDA.pyx":127 + * + * def setDim(self, dim): + * return self.setDimension(dim) # <<<<<<<<<<<<<< + * + * def getDim(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_setDimension); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_dim) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_dim); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":126 + * # + * + * def setDim(self, dim): # <<<<<<<<<<<<<< + * return self.setDimension(dim) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":129 + * return self.setDimension(dim) + * + * def getDim(self): # <<<<<<<<<<<<<< + * return self.getDimension() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_6getDim[] = "DMDA.getDim(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDim (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDim", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDim", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_6getDim(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_6getDim(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDim", 0); + + /* "petsc4py/PETSc/DMDA.pyx":130 + * + * def getDim(self): + * return self.getDimension() # <<<<<<<<<<<<<< + * + * def setDof(self, dof): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDimension); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":129 + * return self.setDimension(dim) + * + * def getDim(self): # <<<<<<<<<<<<<< + * return self.getDimension() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":132 + * return self.getDimension() + * + * def setDof(self, dof): # <<<<<<<<<<<<<< + * cdef PetscInt ndof = asInt(dof) + * CHKERR( DMDASetDof(self.dm, ndof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_9setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_8setDof[] = "DMDA.setDof(self, dof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_9setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dof,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDof") < 0)) __PYX_ERR(55, 132, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dof = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 132, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_8setDof(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_dof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_8setDof(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_dof) { + PetscInt __pyx_v_ndof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDof", 0); + + /* "petsc4py/PETSc/DMDA.pyx":133 + * + * def setDof(self, dof): + * cdef PetscInt ndof = asInt(dof) # <<<<<<<<<<<<<< + * CHKERR( DMDASetDof(self.dm, ndof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 133, __pyx_L1_error) + __pyx_v_ndof = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":134 + * def setDof(self, dof): + * cdef PetscInt ndof = asInt(dof) + * CHKERR( DMDASetDof(self.dm, ndof) ) # <<<<<<<<<<<<<< + * + * def getDof(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetDof(__pyx_v_self->__pyx_base.dm, __pyx_v_ndof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 134, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":132 + * return self.getDimension() + * + * def setDof(self, dof): # <<<<<<<<<<<<<< + * cdef PetscInt ndof = asInt(dof) + * CHKERR( DMDASetDof(self.dm, ndof) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":136 + * CHKERR( DMDASetDof(self.dm, ndof) ) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt dof = 0 + * CHKERR( DMDAGetInfo(self.dm, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_11getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_10getDof[] = "DMDA.getDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_11getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_10getDof(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_10getDof(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDof", 0); + + /* "petsc4py/PETSc/DMDA.pyx":137 + * + * def getDof(self): + * cdef PetscInt dof = 0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * NULL, + */ + __pyx_v_dof = 0; + + /* "petsc4py/PETSc/DMDA.pyx":138 + * def getDof(self): + * cdef PetscInt dof = 0 + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * NULL, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_dof), NULL, NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 138, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":145 + * NULL, NULL, NULL, + * NULL) ) + * return toInt(dof) # <<<<<<<<<<<<<< + * + * def setSizes(self, sizes): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":136 + * CHKERR( DMDASetDof(self.dm, ndof) ) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt dof = 0 + * CHKERR( DMDAGetInfo(self.dm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":147 + * return toInt(dof) + * + * def setSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim = PETSC_DECIDE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_12setSizes[] = "DMDA.setSizes(self, sizes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13setSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sizes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sizes,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSizes") < 0)) __PYX_ERR(55, 147, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sizes = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSizes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 147, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_12setSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_sizes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12setSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_sizes) { + PyObject *__pyx_v_gsizes = 0; + PetscInt __pyx_v_gdim; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PetscInt __pyx_v_P; + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSizes", 0); + + /* "petsc4py/PETSc/DMDA.pyx":148 + * + * def setSizes(self, sizes): + * cdef tuple gsizes = tuple(sizes) # <<<<<<<<<<<<<< + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt M = 1 + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_sizes); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gsizes = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":149 + * def setSizes(self, sizes): + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt M = 1 + * cdef PetscInt N = 1 + */ + __pyx_v_gdim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":150 + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt M = 1 # <<<<<<<<<<<<<< + * cdef PetscInt N = 1 + * cdef PetscInt P = 1 + */ + __pyx_v_M = 1; + + /* "petsc4py/PETSc/DMDA.pyx":151 + * cdef PetscInt gdim = PETSC_DECIDE + * cdef PetscInt M = 1 + * cdef PetscInt N = 1 # <<<<<<<<<<<<<< + * cdef PetscInt P = 1 + * gdim = asDims(gsizes, &M, &N, &P) + */ + __pyx_v_N = 1; + + /* "petsc4py/PETSc/DMDA.pyx":152 + * cdef PetscInt M = 1 + * cdef PetscInt N = 1 + * cdef PetscInt P = 1 # <<<<<<<<<<<<<< + * gdim = asDims(gsizes, &M, &N, &P) + * cdef PetscInt dim = PETSC_DECIDE + */ + __pyx_v_P = 1; + + /* "petsc4py/PETSc/DMDA.pyx":153 + * cdef PetscInt N = 1 + * cdef PetscInt P = 1 + * gdim = asDims(gsizes, &M, &N, &P) # <<<<<<<<<<<<<< + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_gsizes, (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 153, __pyx_L1_error) + __pyx_v_gdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMDA.pyx":154 + * cdef PetscInt P = 1 + * gdim = asDims(gsizes, &M, &N, &P) + * cdef PetscInt dim = PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: + */ + __pyx_v_dim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":155 + * gdim = asDims(gsizes, &M, &N, &P) + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, gdim) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 155, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":156 + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( DMSetDimension(self.dm, gdim) ) + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) + */ + __pyx_t_4 = ((__pyx_v_dim == PETSC_DECIDE) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/DMDA.pyx":157 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, gdim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetDimension(__pyx_v_self->__pyx_base.dm, __pyx_v_gdim)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":156 + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( DMSetDimension(self.dm, gdim) ) + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":158 + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, gdim) ) + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) # <<<<<<<<<<<<<< + * + * def getSizes(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetSizes(__pyx_v_self->__pyx_base.dm, __pyx_v_M, __pyx_v_N, __pyx_v_P)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 158, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":147 + * return toInt(dof) + * + * def setSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim = PETSC_DECIDE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gsizes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":160 + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscInt M = PETSC_DECIDE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_15getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_14getSizes[] = "DMDA.getSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_15getSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_14getSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_14getSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PetscInt __pyx_v_P; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSizes", 0); + + /* "petsc4py/PETSc/DMDA.pyx":161 + * + * def getSizes(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * cdef PetscInt M = PETSC_DECIDE + * cdef PetscInt N = PETSC_DECIDE + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMDA.pyx":162 + * def getSizes(self): + * cdef PetscInt dim = 0 + * cdef PetscInt M = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt N = PETSC_DECIDE + * cdef PetscInt P = PETSC_DECIDE + */ + __pyx_v_M = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":163 + * cdef PetscInt dim = 0 + * cdef PetscInt M = PETSC_DECIDE + * cdef PetscInt N = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt P = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_N = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":164 + * cdef PetscInt M = PETSC_DECIDE + * cdef PetscInt N = PETSC_DECIDE + * cdef PetscInt P = PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * &dim, + */ + __pyx_v_P = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":165 + * cdef PetscInt N = PETSC_DECIDE + * cdef PetscInt P = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * &dim, + * &M, &N, &P, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim), (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 165, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":172 + * NULL, NULL, NULL, + * NULL) ) + * return toDims(dim, M, N, P) # <<<<<<<<<<<<<< + * + * def setProcSizes(self, proc_sizes): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_M, __pyx_v_N, __pyx_v_P); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":160 + * CHKERR( DMDASetSizes(self.dm, M, N, P) ) + * + * def getSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscInt M = PETSC_DECIDE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":174 + * return toDims(dim, M, N, P) + * + * def setProcSizes(self, proc_sizes): # <<<<<<<<<<<<<< + * cdef tuple psizes = tuple(proc_sizes) + * cdef PetscInt pdim = PETSC_DECIDE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_17setProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_16setProcSizes[] = "DMDA.setProcSizes(self, proc_sizes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_17setProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_proc_sizes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setProcSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_proc_sizes,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proc_sizes)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setProcSizes") < 0)) __PYX_ERR(55, 174, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_proc_sizes = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setProcSizes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 174, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_16setProcSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_proc_sizes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_16setProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_proc_sizes) { + PyObject *__pyx_v_psizes = 0; + PetscInt __pyx_v_pdim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setProcSizes", 0); + + /* "petsc4py/PETSc/DMDA.pyx":175 + * + * def setProcSizes(self, proc_sizes): + * cdef tuple psizes = tuple(proc_sizes) # <<<<<<<<<<<<<< + * cdef PetscInt pdim = PETSC_DECIDE + * cdef PetscInt m = PETSC_DECIDE + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_proc_sizes); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_psizes = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":176 + * def setProcSizes(self, proc_sizes): + * cdef tuple psizes = tuple(proc_sizes) + * cdef PetscInt pdim = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE + */ + __pyx_v_pdim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":177 + * cdef tuple psizes = tuple(proc_sizes) + * cdef PetscInt pdim = PETSC_DECIDE + * cdef PetscInt m = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE + */ + __pyx_v_m = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":178 + * cdef PetscInt pdim = PETSC_DECIDE + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt p = PETSC_DECIDE + * pdim = asDims(psizes, &m, &n, &p) + */ + __pyx_v_n = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":179 + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE # <<<<<<<<<<<<<< + * pdim = asDims(psizes, &m, &n, &p) + * cdef PetscInt dim = PETSC_DECIDE + */ + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":180 + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE + * pdim = asDims(psizes, &m, &n, &p) # <<<<<<<<<<<<<< + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asDims(__pyx_v_psizes, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 180, __pyx_L1_error) + __pyx_v_pdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMDA.pyx":181 + * cdef PetscInt p = PETSC_DECIDE + * pdim = asDims(psizes, &m, &n, &p) + * cdef PetscInt dim = PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: + */ + __pyx_v_dim = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":182 + * pdim = asDims(psizes, &m, &n, &p) + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, pdim) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 182, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":183 + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( DMSetDimension(self.dm, pdim) ) + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) + */ + __pyx_t_4 = ((__pyx_v_dim == PETSC_DECIDE) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/DMDA.pyx":184 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, pdim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetDimension(__pyx_v_self->__pyx_base.dm, __pyx_v_pdim)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":183 + * cdef PetscInt dim = PETSC_DECIDE + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if dim == PETSC_DECIDE: # <<<<<<<<<<<<<< + * CHKERR( DMSetDimension(self.dm, pdim) ) + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":185 + * if dim == PETSC_DECIDE: + * CHKERR( DMSetDimension(self.dm, pdim) ) + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) # <<<<<<<<<<<<<< + * + * def getProcSizes(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetNumProcs(__pyx_v_self->__pyx_base.dm, __pyx_v_m, __pyx_v_n, __pyx_v_p)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":174 + * return toDims(dim, M, N, P) + * + * def setProcSizes(self, proc_sizes): # <<<<<<<<<<<<<< + * cdef tuple psizes = tuple(proc_sizes) + * cdef PetscInt pdim = PETSC_DECIDE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_psizes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":187 + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) + * + * def getProcSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscInt m = PETSC_DECIDE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_19getProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_18getProcSizes[] = "DMDA.getProcSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_19getProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getProcSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getProcSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getProcSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_18getProcSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_18getProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getProcSizes", 0); + + /* "petsc4py/PETSc/DMDA.pyx":188 + * + * def getProcSizes(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMDA.pyx":189 + * def getProcSizes(self): + * cdef PetscInt dim = 0 + * cdef PetscInt m = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE + */ + __pyx_v_m = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":190 + * cdef PetscInt dim = 0 + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt p = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_n = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":191 + * cdef PetscInt m = PETSC_DECIDE + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * &dim, + */ + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMDA.pyx":192 + * cdef PetscInt n = PETSC_DECIDE + * cdef PetscInt p = PETSC_DECIDE + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * &dim, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim), NULL, NULL, NULL, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), NULL, NULL, NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 192, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":199 + * NULL, NULL, NULL, + * NULL) ) + * return toDims(dim, m, n, p) # <<<<<<<<<<<<<< + * + * def setBoundaryType(self, boundary_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":187 + * CHKERR( DMDASetNumProcs(self.dm, m, n, p) ) + * + * def getProcSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscInt m = PETSC_DECIDE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":201 + * return toDims(dim, m, n, p) + * + * def setBoundaryType(self, boundary_type): # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_21setBoundaryType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_20setBoundaryType[] = "DMDA.setBoundaryType(self, boundary_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_21setBoundaryType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_boundary_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBoundaryType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_boundary_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBoundaryType") < 0)) __PYX_ERR(55, 201, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_boundary_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBoundaryType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 201, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setBoundaryType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_20setBoundaryType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_boundary_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_20setBoundaryType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_boundary_type) { + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBoundaryType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":202 + * + * def setBoundaryType(self, boundary_type): + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":203 + * def setBoundaryType(self, boundary_type): + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_type, &btx, &bty, &btz) + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":204 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * asBoundary(boundary_type, &btx, &bty, &btz) + * CHKERR( DMDASetBoundaryType(self.dm, btx, bty, btz) ) + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":205 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_type, &btx, &bty, &btz) # <<<<<<<<<<<<<< + * CHKERR( DMDASetBoundaryType(self.dm, btx, bty, btz) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_boundary_type, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L))) __PYX_ERR(55, 205, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":206 + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_type, &btx, &bty, &btz) + * CHKERR( DMDASetBoundaryType(self.dm, btx, bty, btz) ) # <<<<<<<<<<<<<< + * + * def getBoundaryType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetBoundaryType(__pyx_v_self->__pyx_base.dm, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 206, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":201 + * return toDims(dim, m, n, p) + * + * def setBoundaryType(self, boundary_type): # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setBoundaryType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":208 + * CHKERR( DMDASetBoundaryType(self.dm, btx, bty, btz) ) + * + * def getBoundaryType(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_23getBoundaryType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_22getBoundaryType[] = "DMDA.getBoundaryType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_23getBoundaryType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBoundaryType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBoundaryType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBoundaryType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_22getBoundaryType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_22getBoundaryType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBoundaryType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":209 + * + * def getBoundaryType(self): + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMDA.pyx":210 + * def getBoundaryType(self): + * cdef PetscInt dim = 0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":211 + * cdef PetscInt dim = 0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":212 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * &dim, + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMDA.pyx":213 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * &dim, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim), NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":220 + * &btx, &bty, &btz, + * NULL) ) + * return toDims(dim, btx, bty, btz) # <<<<<<<<<<<<<< + * + * def setStencilType(self, stencil_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toDims(__pyx_v_dim, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":208 + * CHKERR( DMDASetBoundaryType(self.dm, btx, bty, btz) ) + * + * def getBoundaryType(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getBoundaryType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":222 + * return toDims(dim, btx, bty, btz) + * + * def setStencilType(self, stencil_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * CHKERR( DMDASetStencilType(self.dm, stype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_25setStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_24setStencilType[] = "DMDA.setStencilType(self, stencil_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_25setStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stencil_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencilType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stencil_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencilType") < 0)) __PYX_ERR(55, 222, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stencil_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencilType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 222, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_24setStencilType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_stencil_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_24setStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_type) { + DMDAStencilType __pyx_v_stype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMDAStencilType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencilType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":223 + * + * def setStencilType(self, stencil_type): + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) # <<<<<<<<<<<<<< + * CHKERR( DMDASetStencilType(self.dm, stype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStencil(__pyx_v_stencil_type); if (unlikely(__pyx_t_1 == ((DMDAStencilType)((DMDAStencilType)-1L)))) __PYX_ERR(55, 223, __pyx_L1_error) + __pyx_v_stype = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":224 + * def setStencilType(self, stencil_type): + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * CHKERR( DMDASetStencilType(self.dm, stype) ) # <<<<<<<<<<<<<< + * + * def getStencilType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetStencilType(__pyx_v_self->__pyx_base.dm, __pyx_v_stype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 224, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":222 + * return toDims(dim, btx, bty, btz) + * + * def setStencilType(self, stencil_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * CHKERR( DMDASetStencilType(self.dm, stype) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":226 + * CHKERR( DMDASetStencilType(self.dm, stype) ) + * + * def getStencilType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * CHKERR( DMDAGetInfo(self.dm, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_27getStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_26getStencilType[] = "DMDA.getStencilType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_27getStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStencilType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStencilType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStencilType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_26getStencilType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_26getStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + DMDAStencilType __pyx_v_stype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStencilType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":227 + * + * def getStencilType(self): + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * NULL, + */ + __pyx_v_stype = DMDA_STENCIL_BOX; + + /* "petsc4py/PETSc/DMDA.pyx":228 + * def getStencilType(self): + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * NULL, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_stype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":235 + * NULL, NULL, NULL, + * &stype) ) + * return stype # <<<<<<<<<<<<<< + * + * def setStencilWidth(self, stencil_width): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_DMDAStencilType(__pyx_v_stype); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":226 + * CHKERR( DMDASetStencilType(self.dm, stype) ) + * + * def getStencilType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * CHKERR( DMDAGetInfo(self.dm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":237 + * return stype + * + * def setStencilWidth(self, stencil_width): # <<<<<<<<<<<<<< + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_29setStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_28setStencilWidth[] = "DMDA.setStencilWidth(self, stencil_width)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_29setStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stencil_width = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencilWidth (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stencil_width,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_width)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencilWidth") < 0)) __PYX_ERR(55, 237, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stencil_width = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencilWidth", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 237, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_28setStencilWidth(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_stencil_width); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_28setStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_width) { + PetscInt __pyx_v_swidth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencilWidth", 0); + + /* "petsc4py/PETSc/DMDA.pyx":238 + * + * def setStencilWidth(self, stencil_width): + * cdef PetscInt swidth = asInt(stencil_width) # <<<<<<<<<<<<<< + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stencil_width); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 238, __pyx_L1_error) + __pyx_v_swidth = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":239 + * def setStencilWidth(self, stencil_width): + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) # <<<<<<<<<<<<<< + * + * def getStencilWidth(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetStencilWidth(__pyx_v_self->__pyx_base.dm, __pyx_v_swidth)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 239, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":237 + * return stype + * + * def setStencilWidth(self, stencil_width): # <<<<<<<<<<<<<< + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":241 + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + * def getStencilWidth(self): # <<<<<<<<<<<<<< + * cdef PetscInt swidth = 0 + * CHKERR( DMDAGetInfo(self.dm, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_31getStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_30getStencilWidth[] = "DMDA.getStencilWidth(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_31getStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStencilWidth (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStencilWidth", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStencilWidth", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_30getStencilWidth(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_30getStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_swidth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStencilWidth", 0); + + /* "petsc4py/PETSc/DMDA.pyx":242 + * + * def getStencilWidth(self): + * cdef PetscInt swidth = 0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * NULL, + */ + __pyx_v_swidth = 0; + + /* "petsc4py/PETSc/DMDA.pyx":243 + * def getStencilWidth(self): + * cdef PetscInt swidth = 0 + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * NULL, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_swidth), NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 243, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":250 + * NULL, NULL, NULL, + * NULL) ) + * return toInt(swidth) # <<<<<<<<<<<<<< + * + * def setStencil(self, stencil_type, stencil_width): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_swidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":241 + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + * def getStencilWidth(self): # <<<<<<<<<<<<<< + * cdef PetscInt swidth = 0 + * CHKERR( DMDAGetInfo(self.dm, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":252 + * return toInt(swidth) + * + * def setStencil(self, stencil_type, stencil_width): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * cdef PetscInt swidth = asInt(stencil_width) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_33setStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_32setStencil[] = "DMDA.setStencil(self, stencil_type, stencil_width)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_33setStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stencil_type = 0; + PyObject *__pyx_v_stencil_width = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencil (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stencil_type,&__pyx_n_s_stencil_width,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_width)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setStencil", 1, 2, 2, 1); __PYX_ERR(55, 252, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencil") < 0)) __PYX_ERR(55, 252, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_stencil_type = values[0]; + __pyx_v_stencil_width = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencil", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 252, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_32setStencil(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_stencil_type, __pyx_v_stencil_width); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_32setStencil(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width) { + DMDAStencilType __pyx_v_stype; + PetscInt __pyx_v_swidth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMDAStencilType __pyx_t_1; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencil", 0); + + /* "petsc4py/PETSc/DMDA.pyx":253 + * + * def setStencil(self, stencil_type, stencil_width): + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) # <<<<<<<<<<<<<< + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilType(self.dm, stype) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStencil(__pyx_v_stencil_type); if (unlikely(__pyx_t_1 == ((DMDAStencilType)((DMDAStencilType)-1L)))) __PYX_ERR(55, 253, __pyx_L1_error) + __pyx_v_stype = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":254 + * def setStencil(self, stencil_type, stencil_width): + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * cdef PetscInt swidth = asInt(stencil_width) # <<<<<<<<<<<<<< + * CHKERR( DMDASetStencilType(self.dm, stype) ) + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stencil_width); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 254, __pyx_L1_error) + __pyx_v_swidth = __pyx_t_2; + + /* "petsc4py/PETSc/DMDA.pyx":255 + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilType(self.dm, stype) ) # <<<<<<<<<<<<<< + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetStencilType(__pyx_v_self->__pyx_base.dm, __pyx_v_stype)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 255, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":256 + * cdef PetscInt swidth = asInt(stencil_width) + * CHKERR( DMDASetStencilType(self.dm, stype) ) + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) # <<<<<<<<<<<<<< + * + * def getStencil(self): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetStencilWidth(__pyx_v_self->__pyx_base.dm, __pyx_v_swidth)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 256, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":252 + * return toInt(swidth) + * + * def setStencil(self, stencil_type, stencil_width): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = asStencil(stencil_type) + * cdef PetscInt swidth = asInt(stencil_width) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":258 + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + * def getStencil(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_35getStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_34getStencil[] = "DMDA.getStencil(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_35getStencil(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStencil (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStencil", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStencil", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_34getStencil(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_34getStencil(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + DMDAStencilType __pyx_v_stype; + PetscInt __pyx_v_swidth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStencil", 0); + + /* "petsc4py/PETSc/DMDA.pyx":259 + * + * def getStencil(self): + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * cdef PetscInt swidth = 0 + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_stype = DMDA_STENCIL_BOX; + + /* "petsc4py/PETSc/DMDA.pyx":260 + * def getStencil(self): + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = 0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * NULL, + */ + __pyx_v_swidth = 0; + + /* "petsc4py/PETSc/DMDA.pyx":261 + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = 0 + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * NULL, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, (&__pyx_v_swidth), NULL, NULL, NULL, (&__pyx_v_stype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 261, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":268 + * NULL, NULL, NULL, + * &stype) ) + * return (toStencil(stype), toInt(swidth)) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStencil(__pyx_v_stype); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_swidth); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":258 + * CHKERR( DMDASetStencilWidth(self.dm, swidth) ) + * + * def getStencil(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAStencilType stype = DMDA_STENCIL_BOX + * cdef PetscInt swidth = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getStencil", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":272 + * # + * + * def getRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_37getRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_36getRanges[] = "DMDA.getRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_37getRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_36getRanges(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_36getRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRanges", 0); + + /* "petsc4py/PETSc/DMDA.pyx":273 + * + * def getRanges(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetCorners(self.dm, + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMDA.pyx":274 + * def getRanges(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGetCorners(self.dm, + * &x, &y, &z, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 274, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":275 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetCorners(self.dm, # <<<<<<<<<<<<<< + * &x, &y, &z, + * &m, &n, &p) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":278 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), # <<<<<<<<<<<<<< + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_x + __pyx_v_m)); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":279 + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), # <<<<<<<<<<<<<< + * (toInt(z), toInt(z+p)))[:dim] + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_y + __pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":280 + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] # <<<<<<<<<<<<<< + * + * def getGhostRanges(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_z); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_z + __pyx_v_p)); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":278 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), # <<<<<<<<<<<<<< + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":280 + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] # <<<<<<<<<<<<<< + * + * def getGhostRanges(self): + */ + __pyx_t_6 = __Pyx_PyTuple_GetSlice(__pyx_t_3, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":272 + * # + * + * def getRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":282 + * (toInt(z), toInt(z+p)))[:dim] + * + * def getGhostRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_39getGhostRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_38getGhostRanges[] = "DMDA.getGhostRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_39getGhostRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGhostRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGhostRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGhostRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_38getGhostRanges(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_38getGhostRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGhostRanges", 0); + + /* "petsc4py/PETSc/DMDA.pyx":283 + * + * def getGhostRanges(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetGhostCorners(self.dm, + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMDA.pyx":284 + * def getGhostRanges(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGetGhostCorners(self.dm, + * &x, &y, &z, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 284, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":285 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetGhostCorners(self.dm, # <<<<<<<<<<<<<< + * &x, &y, &z, + * &m, &n, &p) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetGhostCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 285, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":288 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), # <<<<<<<<<<<<<< + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_x + __pyx_v_m)); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":289 + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), # <<<<<<<<<<<<<< + * (toInt(z), toInt(z+p)))[:dim] + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_y + __pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":290 + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] # <<<<<<<<<<<<<< + * + * def getOwnershipRanges(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_z); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_z + __pyx_v_p)); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":288 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(x+m)), # <<<<<<<<<<<<<< + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":290 + * return ((toInt(x), toInt(x+m)), + * (toInt(y), toInt(y+n)), + * (toInt(z), toInt(z+p)))[:dim] # <<<<<<<<<<<<<< + * + * def getOwnershipRanges(self): + */ + __pyx_t_6 = __Pyx_PyTuple_GetSlice(__pyx_t_3, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":282 + * (toInt(z), toInt(z+p)))[:dim] + * + * def getGhostRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getGhostRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":292 + * (toInt(z), toInt(z+p)))[:dim] + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_41getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_40getOwnershipRanges[] = "DMDA.getOwnershipRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_41getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_40getOwnershipRanges(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_40getOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt const *__pyx_v_lx; + PetscInt const *__pyx_v_ly; + PetscInt const *__pyx_v_lz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRanges", 0); + + /* "petsc4py/PETSc/DMDA.pyx":293 + * + * def getOwnershipRanges(self): + * cdef PetscInt dim=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMDAGetInfo(self.dm, + */ + __pyx_v_dim = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMDA.pyx":294 + * def getOwnershipRanges(self): + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInfo(self.dm, + * &dim, + */ + __pyx_v_lx = NULL; + __pyx_v_ly = NULL; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":295 + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMDAGetInfo(self.dm, # <<<<<<<<<<<<<< + * &dim, + * NULL, NULL, NULL, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInfo(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim), NULL, NULL, NULL, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), NULL, NULL, NULL, NULL, NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 295, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":302 + * NULL, NULL, NULL, + * NULL) ) + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) # <<<<<<<<<<<<<< + * return toOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetOwnershipRanges(__pyx_v_self->__pyx_base.dm, (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 302, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":303 + * NULL) ) + * CHKERR( DMDAGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * return toOwnershipRanges(dim, m, n, p, lx, ly, lz) # <<<<<<<<<<<<<< + * + * def getCorners(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toOwnershipRanges(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":292 + * (toInt(z), toInt(z+p)))[:dim] + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":305 + * return toOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + * def getCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_43getCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_42getCorners[] = "DMDA.getCorners(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_43getCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCorners (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCorners", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCorners", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_42getCorners(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_42getCorners(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCorners", 0); + + /* "petsc4py/PETSc/DMDA.pyx":306 + * + * def getCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetCorners(self.dm, + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMDA.pyx":307 + * def getCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGetCorners(self.dm, + * &x, &y, &z, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 307, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":308 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetCorners(self.dm, # <<<<<<<<<<<<<< + * &x, &y, &z, + * &m, &n, &p) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 308, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":311 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], # <<<<<<<<<<<<<< + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_z); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyTuple_GetSlice(__pyx_t_5, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":312 + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], + * (toInt(m), toInt(n), toInt(p))[:dim]) # <<<<<<<<<<<<<< + * + * def getGhostCorners(self): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); + __pyx_t_5 = 0; + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyTuple_GetSlice(__pyx_t_6, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":311 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], # <<<<<<<<<<<<<< + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":305 + * return toOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + * def getCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getCorners", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":314 + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + * def getGhostCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_45getGhostCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_44getGhostCorners[] = "DMDA.getGhostCorners(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_45getGhostCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGhostCorners (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGhostCorners", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGhostCorners", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_44getGhostCorners(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_44getGhostCorners(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGhostCorners", 0); + + /* "petsc4py/PETSc/DMDA.pyx":315 + * + * def getGhostCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetGhostCorners(self.dm, + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMDA.pyx":316 + * def getGhostCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGetGhostCorners(self.dm, + * &x, &y, &z, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 316, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":317 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetGhostCorners(self.dm, # <<<<<<<<<<<<<< + * &x, &y, &z, + * &m, &n, &p) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetGhostCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 317, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":320 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], # <<<<<<<<<<<<<< + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_z); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyTuple_GetSlice(__pyx_t_5, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":321 + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], + * (toInt(m), toInt(n), toInt(p))[:dim]) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_m); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2); + __pyx_t_5 = 0; + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyTuple_GetSlice(__pyx_t_6, 0, ((Py_ssize_t)__pyx_v_dim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 321, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":320 + * &x, &y, &z, + * &m, &n, &p) ) + * return ((toInt(x), toInt(y), toInt(z))[:dim], # <<<<<<<<<<<<<< + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 320, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":314 + * (toInt(m), toInt(n), toInt(p))[:dim]) + * + * def getGhostCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getGhostCorners", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":325 + * # + * + * def setFieldName(self, field, name): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_47setFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_46setFieldName[] = "DMDA.setFieldName(self, field, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_47setFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFieldName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,&__pyx_n_s_name,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setFieldName", 1, 2, 2, 1); __PYX_ERR(55, 325, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setFieldName") < 0)) __PYX_ERR(55, 325, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_field = values[0]; + __pyx_v_name = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setFieldName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 325, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_46setFieldName(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_field, __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_46setFieldName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_field, PyObject *__pyx_v_name) { + PetscInt __pyx_v_ival; + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFieldName", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DMDA.pyx":326 + * + * def setFieldName(self, field, name): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 326, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":327 + * def setFieldName(self, field, name): + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( DMDASetFieldName(self.dm, ival, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":328 + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMDASetFieldName(self.dm, ival, cval) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 328, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":329 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * CHKERR( DMDASetFieldName(self.dm, ival, cval) ) # <<<<<<<<<<<<<< + * + * def getFieldName(self, field): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetFieldName(__pyx_v_self->__pyx_base.dm, __pyx_v_ival, __pyx_v_cval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 329, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":325 + * # + * + * def setFieldName(self, field, name): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":331 + * CHKERR( DMDASetFieldName(self.dm, ival, cval) ) + * + * def getFieldName(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_49getFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_48getFieldName[] = "DMDA.getFieldName(self, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_49getFieldName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFieldName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFieldName") < 0)) __PYX_ERR(55, 331, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFieldName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 331, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_48getFieldName(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_48getFieldName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_field) { + PetscInt __pyx_v_ival; + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFieldName", 0); + + /* "petsc4py/PETSc/DMDA.pyx":332 + * + * def getFieldName(self, field): + * cdef PetscInt ival = asInt(field) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( DMDAGetFieldName(self.dm, ival, &cval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 332, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":333 + * def getFieldName(self, field): + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( DMDAGetFieldName(self.dm, ival, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":334 + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + * CHKERR( DMDAGetFieldName(self.dm, ival, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetFieldName(__pyx_v_self->__pyx_base.dm, __pyx_v_ival, (&__pyx_v_cval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 334, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":335 + * cdef const char *cval = NULL + * CHKERR( DMDAGetFieldName(self.dm, ival, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":331 + * CHKERR( DMDASetFieldName(self.dm, ival, cval) ) + * + * def getFieldName(self, field): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(field) + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getFieldName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":339 + * # + * + * def getVecArray(self, Vec vec): # <<<<<<<<<<<<<< + * return _DMDA_Vec_array(self, vec) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_51getVecArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_50getVecArray[] = "DMDA.getVecArray(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_51getVecArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVecArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getVecArray") < 0)) __PYX_ERR(55, 339, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getVecArray", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 339, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getVecArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(55, 339, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_50getVecArray(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_50getVecArray(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVecArray", 0); + + /* "petsc4py/PETSc/DMDA.pyx":340 + * + * def getVecArray(self, Vec vec): + * return _DMDA_Vec_array(self, vec) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_vec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_vec)); + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__DMDA_Vec_array), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":339 + * # + * + * def getVecArray(self, Vec vec): # <<<<<<<<<<<<<< + * return _DMDA_Vec_array(self, vec) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getVecArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":344 + * # + * + * def setUniformCoordinates(self, # <<<<<<<<<<<<<< + * xmin=0, xmax=1, + * ymin=0, ymax=1, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_53setUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_52setUniformCoordinates[] = "DMDA.setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_53setUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_xmin = 0; + PyObject *__pyx_v_xmax = 0; + PyObject *__pyx_v_ymin = 0; + PyObject *__pyx_v_ymax = 0; + PyObject *__pyx_v_zmin = 0; + PyObject *__pyx_v_zmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUniformCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xmin,&__pyx_n_s_xmax,&__pyx_n_s_ymin,&__pyx_n_s_ymax,&__pyx_n_s_zmin,&__pyx_n_s_zmax,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[0] = ((PyObject *)__pyx_int_0); + values[1] = ((PyObject *)__pyx_int_1); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)__pyx_int_1); + values[4] = ((PyObject *)__pyx_int_0); + values[5] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmin); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmax); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymin); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymax); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmin); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmax); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUniformCoordinates") < 0)) __PYX_ERR(55, 344, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_xmin = values[0]; + __pyx_v_xmax = values[1]; + __pyx_v_ymin = values[2]; + __pyx_v_ymax = values[3]; + __pyx_v_zmin = values[4]; + __pyx_v_zmax = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUniformCoordinates", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 344, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_52setUniformCoordinates(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_xmin, __pyx_v_xmax, __pyx_v_ymin, __pyx_v_ymax, __pyx_v_zmin, __pyx_v_zmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_52setUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax) { + PetscReal __pyx_v__xmin; + PetscReal __pyx_v__xmax; + PetscReal __pyx_v__ymin; + PetscReal __pyx_v__ymax; + PetscReal __pyx_v__zmin; + PetscReal __pyx_v__zmax; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUniformCoordinates", 0); + + /* "petsc4py/PETSc/DMDA.pyx":348 + * ymin=0, ymax=1, + * zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) # <<<<<<<<<<<<<< + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 348, __pyx_L1_error) + __pyx_v__xmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 348, __pyx_L1_error) + __pyx_v__xmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":349 + * zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) # <<<<<<<<<<<<<< + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMDASetUniformCoordinates(self.dm, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 349, __pyx_L1_error) + __pyx_v__ymin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 349, __pyx_L1_error) + __pyx_v__ymax = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":350 + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) # <<<<<<<<<<<<<< + * CHKERR( DMDASetUniformCoordinates(self.dm, + * _xmin, _xmax, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 350, __pyx_L1_error) + __pyx_v__zmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(55, 350, __pyx_L1_error) + __pyx_v__zmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":351 + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMDASetUniformCoordinates(self.dm, # <<<<<<<<<<<<<< + * _xmin, _xmax, + * _ymin, _ymax, + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetUniformCoordinates(__pyx_v_self->__pyx_base.dm, __pyx_v__xmin, __pyx_v__xmax, __pyx_v__ymin, __pyx_v__ymax, __pyx_v__zmin, __pyx_v__zmax)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 351, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":344 + * # + * + * def setUniformCoordinates(self, # <<<<<<<<<<<<<< + * xmin=0, xmax=1, + * ymin=0, ymax=1, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":356 + * _zmin, _zmax) ) + * + * def setCoordinateName(self, index, name): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_55setCoordinateName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_54setCoordinateName[] = "DMDA.setCoordinateName(self, index, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_55setCoordinateName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinateName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,&__pyx_n_s_name,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setCoordinateName", 1, 2, 2, 1); __PYX_ERR(55, 356, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinateName") < 0)) __PYX_ERR(55, 356, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_index = values[0]; + __pyx_v_name = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinateName", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 356, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setCoordinateName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_54setCoordinateName(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_index, __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_54setCoordinateName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_name) { + PetscInt __pyx_v_ival; + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinateName", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DMDA.pyx":357 + * + * def setCoordinateName(self, index, name): + * cdef PetscInt ival = asInt(index) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 357, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":358 + * def setCoordinateName(self, index, name): + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cval) + * CHKERR( DMDASetCoordinateName(self.dm, ival, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":359 + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMDASetCoordinateName(self.dm, ival, cval) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cval)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":360 + * cdef const char *cval = NULL + * name = str2bytes(name, &cval) + * CHKERR( DMDASetCoordinateName(self.dm, ival, cval) ) # <<<<<<<<<<<<<< + * + * def getCoordinateName(self, index): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetCoordinateName(__pyx_v_self->__pyx_base.dm, __pyx_v_ival, __pyx_v_cval)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 360, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":356 + * _zmin, _zmax) ) + * + * def setCoordinateName(self, index, name): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setCoordinateName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":362 + * CHKERR( DMDASetCoordinateName(self.dm, ival, cval) ) + * + * def getCoordinateName(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_57getCoordinateName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_56getCoordinateName[] = "DMDA.getCoordinateName(self, index)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_57getCoordinateName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinateName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCoordinateName") < 0)) __PYX_ERR(55, 362, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_index = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCoordinateName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 362, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getCoordinateName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_56getCoordinateName(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_index); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_56getCoordinateName(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_index) { + PetscInt __pyx_v_ival; + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinateName", 0); + + /* "petsc4py/PETSc/DMDA.pyx":363 + * + * def getCoordinateName(self, index): + * cdef PetscInt ival = asInt(index) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * CHKERR( DMDAGetCoordinateName(self.dm, ival, &cval) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 363, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":364 + * def getCoordinateName(self, index): + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * CHKERR( DMDAGetCoordinateName(self.dm, ival, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":365 + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + * CHKERR( DMDAGetCoordinateName(self.dm, ival, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetCoordinateName(__pyx_v_self->__pyx_base.dm, __pyx_v_ival, (&__pyx_v_cval))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 365, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":366 + * cdef const char *cval = NULL + * CHKERR( DMDAGetCoordinateName(self.dm, ival, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_3)) __PYX_ERR(55, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":362 + * CHKERR( DMDASetCoordinateName(self.dm, ival, cval) ) + * + * def getCoordinateName(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt ival = asInt(index) + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getCoordinateName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":370 + * # + * + * def createNaturalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vn = Vec() + * CHKERR( DMDACreateNaturalVector(self.dm, &vn.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_59createNaturalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_58createNaturalVec[] = "DMDA.createNaturalVec(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_59createNaturalVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createNaturalVec (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createNaturalVec", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createNaturalVec", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_58createNaturalVec(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_58createNaturalVec(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vn = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createNaturalVec", 0); + + /* "petsc4py/PETSc/DMDA.pyx":371 + * + * def createNaturalVec(self): + * cdef Vec vn = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMDACreateNaturalVector(self.dm, &vn.vec) ) + * return vn + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vn = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":372 + * def createNaturalVec(self): + * cdef Vec vn = Vec() + * CHKERR( DMDACreateNaturalVector(self.dm, &vn.vec) ) # <<<<<<<<<<<<<< + * return vn + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDACreateNaturalVector(__pyx_v_self->__pyx_base.dm, (&__pyx_v_vn->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 372, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":373 + * cdef Vec vn = Vec() + * CHKERR( DMDACreateNaturalVector(self.dm, &vn.vec) ) + * return vn # <<<<<<<<<<<<<< + * + * def globalToNatural(self, Vec vg, Vec vn, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vn)); + __pyx_r = ((PyObject *)__pyx_v_vn); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":370 + * # + * + * def createNaturalVec(self): # <<<<<<<<<<<<<< + * cdef Vec vn = Vec() + * CHKERR( DMDACreateNaturalVector(self.dm, &vn.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.createNaturalVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vn); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":375 + * return vn + * + * def globalToNatural(self, Vec vg, Vec vn, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDAGlobalToNaturalBegin(self.dm, vg.vec, im, vn.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_61globalToNatural(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_60globalToNatural[] = "DMDA.globalToNatural(self, Vec vg, Vec vn, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_61globalToNatural(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vg = 0; + struct PyPetscVecObject *__pyx_v_vn = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("globalToNatural (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vg,&__pyx_n_s_vn,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vg)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vn)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalToNatural", 0, 2, 3, 1); __PYX_ERR(55, 375, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "globalToNatural") < 0)) __PYX_ERR(55, 375, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vg = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vn = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("globalToNatural", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 375, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.globalToNatural", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vg", 0))) __PYX_ERR(55, 375, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vn), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vn", 0))) __PYX_ERR(55, 375, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_60globalToNatural(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_vg, __pyx_v_vn, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_60globalToNatural(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vg, struct PyPetscVecObject *__pyx_v_vn, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("globalToNatural", 0); + + /* "petsc4py/PETSc/DMDA.pyx":376 + * + * def globalToNatural(self, Vec vg, Vec vn, addv=None): + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMDAGlobalToNaturalBegin(self.dm, vg.vec, im, vn.vec) ) + * CHKERR( DMDAGlobalToNaturalEnd (self.dm, vg.vec, im, vn.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(55, 376, __pyx_L1_error) + __pyx_v_im = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":377 + * def globalToNatural(self, Vec vg, Vec vn, addv=None): + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDAGlobalToNaturalBegin(self.dm, vg.vec, im, vn.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGlobalToNaturalEnd (self.dm, vg.vec, im, vn.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGlobalToNaturalBegin(__pyx_v_self->__pyx_base.dm, __pyx_v_vg->vec, __pyx_v_im, __pyx_v_vn->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 377, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":378 + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDAGlobalToNaturalBegin(self.dm, vg.vec, im, vn.vec) ) + * CHKERR( DMDAGlobalToNaturalEnd (self.dm, vg.vec, im, vn.vec) ) # <<<<<<<<<<<<<< + * + * def naturalToGlobal(self, Vec vn, Vec vg, addv=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGlobalToNaturalEnd(__pyx_v_self->__pyx_base.dm, __pyx_v_vg->vec, __pyx_v_im, __pyx_v_vn->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 378, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":375 + * return vn + * + * def globalToNatural(self, Vec vg, Vec vn, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDAGlobalToNaturalBegin(self.dm, vg.vec, im, vn.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.globalToNatural", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":380 + * CHKERR( DMDAGlobalToNaturalEnd (self.dm, vg.vec, im, vn.vec) ) + * + * def naturalToGlobal(self, Vec vn, Vec vg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDANaturalToGlobalBegin(self.dm, vn.vec, im, vg.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_63naturalToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_62naturalToGlobal[] = "DMDA.naturalToGlobal(self, Vec vn, Vec vg, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_63naturalToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vn = 0; + struct PyPetscVecObject *__pyx_v_vg = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("naturalToGlobal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vn,&__pyx_n_s_vg,&__pyx_n_s_addv,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vn)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vg)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("naturalToGlobal", 0, 2, 3, 1); __PYX_ERR(55, 380, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "naturalToGlobal") < 0)) __PYX_ERR(55, 380, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_vn = ((struct PyPetscVecObject *)values[0]); + __pyx_v_vg = ((struct PyPetscVecObject *)values[1]); + __pyx_v_addv = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("naturalToGlobal", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 380, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.naturalToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vn), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vn", 0))) __PYX_ERR(55, 380, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vg", 0))) __PYX_ERR(55, 380, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_62naturalToGlobal(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_vn, __pyx_v_vg, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_62naturalToGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vn, struct PyPetscVecObject *__pyx_v_vg, PyObject *__pyx_v_addv) { + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("naturalToGlobal", 0); + + /* "petsc4py/PETSc/DMDA.pyx":381 + * + * def naturalToGlobal(self, Vec vn, Vec vg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMDANaturalToGlobalBegin(self.dm, vn.vec, im, vg.vec) ) + * CHKERR( DMDANaturalToGlobalEnd (self.dm, vn.vec, im, vg.vec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(55, 381, __pyx_L1_error) + __pyx_v_im = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":382 + * def naturalToGlobal(self, Vec vn, Vec vg, addv=None): + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDANaturalToGlobalBegin(self.dm, vn.vec, im, vg.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMDANaturalToGlobalEnd (self.dm, vn.vec, im, vg.vec) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDANaturalToGlobalBegin(__pyx_v_self->__pyx_base.dm, __pyx_v_vn->vec, __pyx_v_im, __pyx_v_vg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 382, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":383 + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDANaturalToGlobalBegin(self.dm, vn.vec, im, vg.vec) ) + * CHKERR( DMDANaturalToGlobalEnd (self.dm, vn.vec, im, vg.vec) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDANaturalToGlobalEnd(__pyx_v_self->__pyx_base.dm, __pyx_v_vn->vec, __pyx_v_im, __pyx_v_vg->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 383, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":380 + * CHKERR( DMDAGlobalToNaturalEnd (self.dm, vg.vec, im, vn.vec) ) + * + * def naturalToGlobal(self, Vec vn, Vec vg, addv=None): # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMDANaturalToGlobalBegin(self.dm, vn.vec, im, vg.vec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.naturalToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":387 + * # + * + * def getAO(self): # <<<<<<<<<<<<<< + * cdef AO ao = AO() + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_65getAO(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_64getAO[] = "DMDA.getAO(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_65getAO(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAO (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAO", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAO", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_64getAO(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_64getAO(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + struct PyPetscAOObject *__pyx_v_ao = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAO", 0); + + /* "petsc4py/PETSc/DMDA.pyx":388 + * + * def getAO(self): + * cdef AO ao = AO() # <<<<<<<<<<<<<< + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) + * PetscINCREF(ao.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_AO)); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ao = ((struct PyPetscAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":389 + * def getAO(self): + * cdef AO ao = AO() + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) # <<<<<<<<<<<<<< + * PetscINCREF(ao.obj) + * return ao + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetAO(__pyx_v_self->__pyx_base.dm, (&__pyx_v_ao->ao))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 389, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":390 + * cdef AO ao = AO() + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) + * PetscINCREF(ao.obj) # <<<<<<<<<<<<<< + * return ao + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_ao->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMDA.pyx":391 + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) + * PetscINCREF(ao.obj) + * return ao # <<<<<<<<<<<<<< + * + * def getScatter(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_ao)); + __pyx_r = ((PyObject *)__pyx_v_ao); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":387 + * # + * + * def getAO(self): # <<<<<<<<<<<<<< + * cdef AO ao = AO() + * CHKERR( DMDAGetAO(self.dm, &ao.ao) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getAO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ao); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":393 + * return ao + * + * def getScatter(self): # <<<<<<<<<<<<<< + * cdef Scatter l2g = Scatter() + * cdef Scatter g2l = Scatter() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_67getScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_66getScatter[] = "DMDA.getScatter(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_67getScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getScatter (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getScatter", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getScatter", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_66getScatter(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_66getScatter(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + struct PyPetscScatterObject *__pyx_v_l2g = 0; + struct PyPetscScatterObject *__pyx_v_g2l = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getScatter", 0); + + /* "petsc4py/PETSc/DMDA.pyx":394 + * + * def getScatter(self): + * cdef Scatter l2g = Scatter() # <<<<<<<<<<<<<< + * cdef Scatter g2l = Scatter() + * CHKERR( DMDAGetScatter(self.dm, &l2g.sct, &g2l.sct) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_l2g = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":395 + * def getScatter(self): + * cdef Scatter l2g = Scatter() + * cdef Scatter g2l = Scatter() # <<<<<<<<<<<<<< + * CHKERR( DMDAGetScatter(self.dm, &l2g.sct, &g2l.sct) ) + * PetscINCREF(l2g.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 395, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_g2l = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":396 + * cdef Scatter l2g = Scatter() + * cdef Scatter g2l = Scatter() + * CHKERR( DMDAGetScatter(self.dm, &l2g.sct, &g2l.sct) ) # <<<<<<<<<<<<<< + * PetscINCREF(l2g.obj) + * PetscINCREF(g2l.obj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetScatter(__pyx_v_self->__pyx_base.dm, (&__pyx_v_l2g->sct), (&__pyx_v_g2l->sct))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 396, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":397 + * cdef Scatter g2l = Scatter() + * CHKERR( DMDAGetScatter(self.dm, &l2g.sct, &g2l.sct) ) + * PetscINCREF(l2g.obj) # <<<<<<<<<<<<<< + * PetscINCREF(g2l.obj) + * return (l2g, g2l) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_l2g->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMDA.pyx":398 + * CHKERR( DMDAGetScatter(self.dm, &l2g.sct, &g2l.sct) ) + * PetscINCREF(l2g.obj) + * PetscINCREF(g2l.obj) # <<<<<<<<<<<<<< + * return (l2g, g2l) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_g2l->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMDA.pyx":399 + * PetscINCREF(l2g.obj) + * PetscINCREF(g2l.obj) + * return (l2g, g2l) # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_l2g)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_l2g)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_l2g)); + __Pyx_INCREF(((PyObject *)__pyx_v_g2l)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_g2l)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_g2l)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":393 + * return ao + * + * def getScatter(self): # <<<<<<<<<<<<<< + * cdef Scatter l2g = Scatter() + * cdef Scatter g2l = Scatter() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_l2g); + __Pyx_XDECREF((PyObject *)__pyx_v_g2l); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":403 + * # + * + * def setRefinementFactor(self, # <<<<<<<<<<<<<< + * refine_x=2, + * refine_y=2, + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_69setRefinementFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_68setRefinementFactor[] = "DMDA.setRefinementFactor(self, refine_x=2, refine_y=2, refine_z=2)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_69setRefinementFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_refine_x = 0; + PyObject *__pyx_v_refine_y = 0; + PyObject *__pyx_v_refine_z = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRefinementFactor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_refine_x,&__pyx_n_s_refine_y,&__pyx_n_s_refine_z,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)__pyx_int_2); + values[1] = ((PyObject *)__pyx_int_2); + values[2] = ((PyObject *)__pyx_int_2); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refine_x); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refine_y); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refine_z); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRefinementFactor") < 0)) __PYX_ERR(55, 403, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_refine_x = values[0]; + __pyx_v_refine_y = values[1]; + __pyx_v_refine_z = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRefinementFactor", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 403, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setRefinementFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_68setRefinementFactor(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_refine_x, __pyx_v_refine_y, __pyx_v_refine_z); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_68setRefinementFactor(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_refine_x, PyObject *__pyx_v_refine_y, PyObject *__pyx_v_refine_z) { + PetscInt __pyx_v_refine[3]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRefinementFactor", 0); + + /* "petsc4py/PETSc/DMDA.pyx":408 + * refine_z=2): + * cdef PetscInt refine[3] + * refine[0] = asInt(refine_x) # <<<<<<<<<<<<<< + * refine[1] = asInt(refine_y) + * refine[2] = asInt(refine_z) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_refine_x); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 408, __pyx_L1_error) + (__pyx_v_refine[0]) = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":409 + * cdef PetscInt refine[3] + * refine[0] = asInt(refine_x) + * refine[1] = asInt(refine_y) # <<<<<<<<<<<<<< + * refine[2] = asInt(refine_z) + * CHKERR( DMDASetRefinementFactor(self.dm, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_refine_y); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 409, __pyx_L1_error) + (__pyx_v_refine[1]) = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":410 + * refine[0] = asInt(refine_x) + * refine[1] = asInt(refine_y) + * refine[2] = asInt(refine_z) # <<<<<<<<<<<<<< + * CHKERR( DMDASetRefinementFactor(self.dm, + * refine[0], + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_refine_z); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(55, 410, __pyx_L1_error) + (__pyx_v_refine[2]) = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":411 + * refine[1] = asInt(refine_y) + * refine[2] = asInt(refine_z) + * CHKERR( DMDASetRefinementFactor(self.dm, # <<<<<<<<<<<<<< + * refine[0], + * refine[1], + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetRefinementFactor(__pyx_v_self->__pyx_base.dm, (__pyx_v_refine[0]), (__pyx_v_refine[1]), (__pyx_v_refine[2]))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 411, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":403 + * # + * + * def setRefinementFactor(self, # <<<<<<<<<<<<<< + * refine_x=2, + * refine_y=2, + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setRefinementFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":416 + * refine[2]) ) + * + * def getRefinementFactor(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, dim = 0, refine[3] + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_71getRefinementFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_70getRefinementFactor[] = "DMDA.getRefinementFactor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_71getRefinementFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRefinementFactor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRefinementFactor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRefinementFactor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_70getRefinementFactor(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_70getRefinementFactor(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_refine[3]; + PetscInt __pyx_9genexpr17__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRefinementFactor", 0); + + /* "petsc4py/PETSc/DMDA.pyx":417 + * + * def getRefinementFactor(self): + * cdef PetscInt i, dim = 0, refine[3] # <<<<<<<<<<<<<< + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetRefinementFactor(self.dm, + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMDA.pyx":418 + * def getRefinementFactor(self): + * cdef PetscInt i, dim = 0, refine[3] + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMDAGetRefinementFactor(self.dm, + * &refine[0], + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 418, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":419 + * cdef PetscInt i, dim = 0, refine[3] + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * CHKERR( DMDAGetRefinementFactor(self.dm, # <<<<<<<<<<<<<< + * &refine[0], + * &refine[1], + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetRefinementFactor(__pyx_v_self->__pyx_base.dm, (&(__pyx_v_refine[0])), (&(__pyx_v_refine[1])), (&(__pyx_v_refine[2])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 419, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":423 + * &refine[1], + * &refine[2]) ) + * return tuple([toInt(refine[i]) for 0 <= i < dim]) # <<<<<<<<<<<<<< + * + * def setInterpolationType(self, interp_type): + */ + __Pyx_XDECREF(__pyx_r); + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_v_dim; + for (__pyx_9genexpr17__pyx_v_i = 0; __pyx_9genexpr17__pyx_v_i < __pyx_t_3; __pyx_9genexpr17__pyx_v_i++) { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt((__pyx_v_refine[__pyx_9genexpr17__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(55, 423, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } /* exit inner scope */ + __pyx_t_4 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(55, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":416 + * refine[2]) ) + * + * def getRefinementFactor(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, dim = 0, refine[3] + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getRefinementFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":425 + * return tuple([toInt(refine[i]) for 0 <= i < dim]) + * + * def setInterpolationType(self, interp_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAInterpolationType ival = dainterpolationtype(interp_type) + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_73setInterpolationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_72setInterpolationType[] = "DMDA.setInterpolationType(self, interp_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_73setInterpolationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_interp_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setInterpolationType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_interp_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interp_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setInterpolationType") < 0)) __PYX_ERR(55, 425, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_interp_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setInterpolationType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 425, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setInterpolationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_72setInterpolationType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_interp_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_72setInterpolationType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_interp_type) { + DMDAInterpolationType __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMDAInterpolationType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setInterpolationType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":426 + * + * def setInterpolationType(self, interp_type): + * cdef PetscDMDAInterpolationType ival = dainterpolationtype(interp_type) # <<<<<<<<<<<<<< + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_dainterpolationtype(__pyx_v_interp_type); if (unlikely(__pyx_t_1 == ((DMDAInterpolationType)((DMDAInterpolationType)-1L)))) __PYX_ERR(55, 426, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":427 + * def setInterpolationType(self, interp_type): + * cdef PetscDMDAInterpolationType ival = dainterpolationtype(interp_type) + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) # <<<<<<<<<<<<<< + * + * def getInterpolationType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetInterpolationType(__pyx_v_self->__pyx_base.dm, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 427, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":425 + * return tuple([toInt(refine[i]) for 0 <= i < dim]) + * + * def setInterpolationType(self, interp_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAInterpolationType ival = dainterpolationtype(interp_type) + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setInterpolationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":429 + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) + * + * def getInterpolationType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAInterpolationType ival = DMDA_INTERPOLATION_Q0 + * CHKERR( DMDAGetInterpolationType(self.dm, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_75getInterpolationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_74getInterpolationType[] = "DMDA.getInterpolationType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_75getInterpolationType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInterpolationType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getInterpolationType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getInterpolationType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_74getInterpolationType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_74getInterpolationType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + DMDAInterpolationType __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInterpolationType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":430 + * + * def getInterpolationType(self): + * cdef PetscDMDAInterpolationType ival = DMDA_INTERPOLATION_Q0 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetInterpolationType(self.dm, &ival) ) + * return ival + */ + __pyx_v_ival = DMDA_Q0; + + /* "petsc4py/PETSc/DMDA.pyx":431 + * def getInterpolationType(self): + * cdef PetscDMDAInterpolationType ival = DMDA_INTERPOLATION_Q0 + * CHKERR( DMDAGetInterpolationType(self.dm, &ival) ) # <<<<<<<<<<<<<< + * return ival + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetInterpolationType(__pyx_v_self->__pyx_base.dm, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 431, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":432 + * cdef PetscDMDAInterpolationType ival = DMDA_INTERPOLATION_Q0 + * CHKERR( DMDAGetInterpolationType(self.dm, &ival) ) + * return ival # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_long(((long)__pyx_v_ival)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":429 + * CHKERR( DMDASetInterpolationType(self.dm, ival) ) + * + * def getInterpolationType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAInterpolationType ival = DMDA_INTERPOLATION_Q0 + * CHKERR( DMDAGetInterpolationType(self.dm, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getInterpolationType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":436 + * # + * + * def setElementType(self, elem_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAElementType ival = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_77setElementType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_76setElementType[] = "DMDA.setElementType(self, elem_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_77setElementType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_elem_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setElementType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elem_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elem_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setElementType") < 0)) __PYX_ERR(55, 436, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_elem_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setElementType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 436, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setElementType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_76setElementType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_elem_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_76setElementType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_elem_type) { + DMDAElementType __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMDAElementType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setElementType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":437 + * + * def setElementType(self, elem_type): + * cdef PetscDMDAElementType ival = daelementtype(elem_type) # <<<<<<<<<<<<<< + * CHKERR( DMDASetElementType(self.dm, ival) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_daelementtype(__pyx_v_elem_type); if (unlikely(__pyx_t_1 == ((DMDAElementType)((DMDAElementType)-1L)))) __PYX_ERR(55, 437, __pyx_L1_error) + __pyx_v_ival = __pyx_t_1; + + /* "petsc4py/PETSc/DMDA.pyx":438 + * def setElementType(self, elem_type): + * cdef PetscDMDAElementType ival = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, ival) ) # <<<<<<<<<<<<<< + * + * def getElementType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetElementType(__pyx_v_self->__pyx_base.dm, __pyx_v_ival)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 438, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":436 + * # + * + * def setElementType(self, elem_type): # <<<<<<<<<<<<<< + * cdef PetscDMDAElementType ival = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, ival) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.setElementType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":440 + * CHKERR( DMDASetElementType(self.dm, ival) ) + * + * def getElementType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAElementType ival = DMDA_ELEMENT_Q1 + * CHKERR( DMDAGetElementType(self.dm, &ival) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_79getElementType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_78getElementType[] = "DMDA.getElementType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_79getElementType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getElementType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getElementType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getElementType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_78getElementType(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_78getElementType(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + DMDAElementType __pyx_v_ival; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getElementType", 0); + + /* "petsc4py/PETSc/DMDA.pyx":441 + * + * def getElementType(self): + * cdef PetscDMDAElementType ival = DMDA_ELEMENT_Q1 # <<<<<<<<<<<<<< + * CHKERR( DMDAGetElementType(self.dm, &ival) ) + * return ival + */ + __pyx_v_ival = DMDA_ELEMENT_Q1; + + /* "petsc4py/PETSc/DMDA.pyx":442 + * def getElementType(self): + * cdef PetscDMDAElementType ival = DMDA_ELEMENT_Q1 + * CHKERR( DMDAGetElementType(self.dm, &ival) ) # <<<<<<<<<<<<<< + * return ival + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetElementType(__pyx_v_self->__pyx_base.dm, (&__pyx_v_ival))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 442, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":443 + * cdef PetscDMDAElementType ival = DMDA_ELEMENT_Q1 + * CHKERR( DMDAGetElementType(self.dm, &ival) ) + * return ival # <<<<<<<<<<<<<< + * + * def getElements(self, elem_type=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_long(((long)__pyx_v_ival)); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":440 + * CHKERR( DMDASetElementType(self.dm, ival) ) + * + * def getElementType(self): # <<<<<<<<<<<<<< + * cdef PetscDMDAElementType ival = DMDA_ELEMENT_Q1 + * CHKERR( DMDAGetElementType(self.dm, &ival) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getElementType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":445 + * return ival + * + * def getElements(self, elem_type=None): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * cdef PetscDMDAElementType etype + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_81getElements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4DMDA_80getElements[] = "DMDA.getElements(self, elem_type=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_81getElements(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_elem_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getElements (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_elem_type,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_elem_type); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getElements") < 0)) __PYX_ERR(55, 445, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_elem_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getElements", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(55, 445, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getElements", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_80getElements(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self), __pyx_v_elem_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_80getElements(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self, PyObject *__pyx_v_elem_type) { + PetscInt __pyx_v_dim; + DMDAElementType __pyx_v_etype; + PetscInt __pyx_v_nel; + PetscInt __pyx_v_nen; + PetscInt const *__pyx_v_elems; + PyObject *__pyx_v_elements = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + DMDAElementType __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + int __pyx_t_9; + char const *__pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getElements", 0); + + /* "petsc4py/PETSc/DMDA.pyx":446 + * + * def getElements(self, elem_type=None): + * cdef PetscInt dim=0 # <<<<<<<<<<<<<< + * cdef PetscDMDAElementType etype + * cdef PetscInt nel=0, nen=0 + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMDA.pyx":448 + * cdef PetscInt dim=0 + * cdef PetscDMDAElementType etype + * cdef PetscInt nel=0, nen=0 # <<<<<<<<<<<<<< + * cdef const PetscInt *elems=NULL + * cdef object elements + */ + __pyx_v_nel = 0; + __pyx_v_nen = 0; + + /* "petsc4py/PETSc/DMDA.pyx":449 + * cdef PetscDMDAElementType etype + * cdef PetscInt nel=0, nen=0 + * cdef const PetscInt *elems=NULL # <<<<<<<<<<<<<< + * cdef object elements + * CHKERR( DMDAGetDim(self.dm, &dim) ) + */ + __pyx_v_elems = NULL; + + /* "petsc4py/PETSc/DMDA.pyx":451 + * cdef const PetscInt *elems=NULL + * cdef object elements + * CHKERR( DMDAGetDim(self.dm, &dim) ) # <<<<<<<<<<<<<< + * if elem_type is not None: + * etype = daelementtype(elem_type) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_DMDAGetDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 451, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":452 + * cdef object elements + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if elem_type is not None: # <<<<<<<<<<<<<< + * etype = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, etype) ) + */ + __pyx_t_2 = (__pyx_v_elem_type != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMDA.pyx":453 + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if elem_type is not None: + * etype = daelementtype(elem_type) # <<<<<<<<<<<<<< + * CHKERR( DMDASetElementType(self.dm, etype) ) + * try: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_daelementtype(__pyx_v_elem_type); if (unlikely(__pyx_t_4 == ((DMDAElementType)((DMDAElementType)-1L)))) __PYX_ERR(55, 453, __pyx_L1_error) + __pyx_v_etype = __pyx_t_4; + + /* "petsc4py/PETSc/DMDA.pyx":454 + * if elem_type is not None: + * etype = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, etype) ) # <<<<<<<<<<<<<< + * try: + * CHKERR( DMDAGetElements(self.dm, &nel, &nen, &elems) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDASetElementType(__pyx_v_self->__pyx_base.dm, __pyx_v_etype)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 454, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":452 + * cdef object elements + * CHKERR( DMDAGetDim(self.dm, &dim) ) + * if elem_type is not None: # <<<<<<<<<<<<<< + * etype = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, etype) ) + */ + } + + /* "petsc4py/PETSc/DMDA.pyx":455 + * etype = daelementtype(elem_type) + * CHKERR( DMDASetElementType(self.dm, etype) ) + * try: # <<<<<<<<<<<<<< + * CHKERR( DMDAGetElements(self.dm, &nel, &nen, &elems) ) + * elements = array_i(nel*nen, elems) + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMDA.pyx":456 + * CHKERR( DMDASetElementType(self.dm, etype) ) + * try: + * CHKERR( DMDAGetElements(self.dm, &nel, &nen, &elems) ) # <<<<<<<<<<<<<< + * elements = array_i(nel*nen, elems) + * elements.shape = (toInt(nel), toInt(nen)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDAGetElements(__pyx_v_self->__pyx_base.dm, (&__pyx_v_nel), (&__pyx_v_nen), (&__pyx_v_elems))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 456, __pyx_L5_error) + + /* "petsc4py/PETSc/DMDA.pyx":457 + * try: + * CHKERR( DMDAGetElements(self.dm, &nel, &nen, &elems) ) + * elements = array_i(nel*nen, elems) # <<<<<<<<<<<<<< + * elements.shape = (toInt(nel), toInt(nen)) + * finally: + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_nel * __pyx_v_nen), __pyx_v_elems)); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 457, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_elements = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":458 + * CHKERR( DMDAGetElements(self.dm, &nel, &nen, &elems) ) + * elements = array_i(nel*nen, elems) + * elements.shape = (toInt(nel), toInt(nen)) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMDARestoreElements(self.dm, &nel, &nen, &elems) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nel); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 458, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nen); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 458, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(55, 458, __pyx_L5_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + if (__Pyx_PyObject_SetAttrStr(__pyx_v_elements, __pyx_n_s_shape, __pyx_t_7) < 0) __PYX_ERR(55, 458, __pyx_L5_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + + /* "petsc4py/PETSc/DMDA.pyx":460 + * elements.shape = (toInt(nel), toInt(nen)) + * finally: + * CHKERR( DMDARestoreElements(self.dm, &nel, &nen, &elems) ) # <<<<<<<<<<<<<< + * return elements + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDARestoreElements(__pyx_v_self->__pyx_base.dm, (&__pyx_v_nel), (&__pyx_v_nen), (&__pyx_v_elems))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 460, __pyx_L1_error) + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13) < 0)) __Pyx_ErrFetch(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __Pyx_XGOTREF(__pyx_t_16); + __pyx_t_8 = __pyx_lineno; __pyx_t_9 = __pyx_clineno; __pyx_t_10 = __pyx_filename; + { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMDARestoreElements(__pyx_v_self->__pyx_base.dm, (&__pyx_v_nel), (&__pyx_v_nen), (&__pyx_v_elems))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(55, 460, __pyx_L8_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + } + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ErrRestore(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + __pyx_lineno = __pyx_t_8; __pyx_clineno = __pyx_t_9; __pyx_filename = __pyx_t_10; + goto __pyx_L1_error; + __pyx_L8_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_XGIVEREF(__pyx_t_16); + __Pyx_ExceptionReset(__pyx_t_14, __pyx_t_15, __pyx_t_16); + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + __pyx_t_14 = 0; __pyx_t_15 = 0; __pyx_t_16 = 0; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/DMDA.pyx":461 + * finally: + * CHKERR( DMDARestoreElements(self.dm, &nel, &nen, &elems) ) + * return elements # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_elements); + __pyx_r = __pyx_v_elements; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":445 + * return ival + * + * def getElements(self, elem_type=None): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * cdef PetscDMDAElementType etype + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.getElements", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_elements); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":466 + * + * property dim: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDim() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3dim_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3dim_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_3dim___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_3dim___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":467 + * property dim: + * def __get__(self): + * return self.getDim() # <<<<<<<<<<<<<< + * + * property dof: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDim); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":466 + * + * property dim: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDim() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.dim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":470 + * + * property dof: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDof() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3dof_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_3dof_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_3dof___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_3dof___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":471 + * property dof: + * def __get__(self): + * return self.getDof() # <<<<<<<<<<<<<< + * + * property sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDof); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":470 + * + * property dof: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDof() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.dof.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":474 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_5sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_5sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_5sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_5sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":475 + * property sizes: + * def __get__(self): + * return self.getSizes() # <<<<<<<<<<<<<< + * + * property proc_sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":474 + * + * property sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":478 + * + * property proc_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProcSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_10proc_sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_10proc_sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_10proc_sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_10proc_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":479 + * property proc_sizes: + * def __get__(self): + * return self.getProcSizes() # <<<<<<<<<<<<<< + * + * property boundary_type: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getProcSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":478 + * + * property proc_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProcSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.proc_sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":482 + * + * property boundary_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBoundaryType() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13boundary_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13boundary_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_13boundary_type___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13boundary_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":483 + * property boundary_type: + * def __get__(self): + * return self.getBoundaryType() # <<<<<<<<<<<<<< + * + * property stencil: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBoundaryType); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":482 + * + * property boundary_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBoundaryType() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.boundary_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":486 + * + * property stencil: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencil() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7stencil_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7stencil_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_7stencil___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_7stencil___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":487 + * property stencil: + * def __get__(self): + * return self.getStencil() # <<<<<<<<<<<<<< + * + * property stencil_type: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStencil); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":486 + * + * property stencil: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencil() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.stencil.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":490 + * + * property stencil_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilType() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_12stencil_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_12stencil_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_12stencil_type___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12stencil_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":491 + * property stencil_type: + * def __get__(self): + * return self.getStencilType() # <<<<<<<<<<<<<< + * + * property stencil_width: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStencilType); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":490 + * + * property stencil_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilType() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.stencil_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":494 + * + * property stencil_width: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilWidth() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13stencil_width_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13stencil_width_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_13stencil_width___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13stencil_width___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":495 + * property stencil_width: + * def __get__(self): + * return self.getStencilWidth() # <<<<<<<<<<<<<< + * + * property ranges: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStencilWidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":494 + * + * property stencil_width: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilWidth() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.stencil_width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":498 + * + * property ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRanges() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_6ranges_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_6ranges_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_6ranges___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_6ranges___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":499 + * property ranges: + * def __get__(self): + * return self.getRanges() # <<<<<<<<<<<<<< + * + * property ghost_ranges: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getRanges); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":498 + * + * property ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getRanges() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.ranges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":502 + * + * property ghost_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostRanges() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_12ghost_ranges_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_12ghost_ranges_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_12ghost_ranges___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_12ghost_ranges___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":503 + * property ghost_ranges: + * def __get__(self): + * return self.getGhostRanges() # <<<<<<<<<<<<<< + * + * property corners: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGhostRanges); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":502 + * + * property ghost_ranges: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostRanges() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.ghost_ranges.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":506 + * + * property corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCorners() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7corners_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_7corners_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_7corners___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_7corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":507 + * property corners: + * def __get__(self): + * return self.getCorners() # <<<<<<<<<<<<<< + * + * property ghost_corners: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getCorners); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":506 + * + * property corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCorners() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.corners.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMDA.pyx":510 + * + * property ghost_corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostCorners() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13ghost_corners_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_4DMDA_13ghost_corners_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4DMDA_13ghost_corners___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4DMDA_13ghost_corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMDA *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMDA.pyx":511 + * property ghost_corners: + * def __get__(self): + * return self.getGhostCorners() # <<<<<<<<<<<<<< + * + * # backward compatibility + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGhostCorners); if (unlikely(!__pyx_t_2)) __PYX_ERR(55, 511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(55, 511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMDA.pyx":510 + * + * property ghost_corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostCorners() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMDA.ghost_corners.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":16 + * # + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_create[] = "DMPlex.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(56, 16, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 16, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_create(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_create(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":17 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreate(ccomm, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 17, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":18 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":19 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreate(ccomm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreate(__pyx_v_ccomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 19, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":20 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":21 + * CHKERR( DMPlexCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createFromCellList(self, dim, cells, coords, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":16 + * # + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":23 + * return self + * + * def createFromCellList(self, dim, cells, coords, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_3createFromCellList(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_2createFromCellList[] = "DMPlex.createFromCellList(self, dim, cells, coords, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_3createFromCellList(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + PyObject *__pyx_v_cells = 0; + PyObject *__pyx_v_coords = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createFromCellList (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_cells,&__pyx_n_s_coords,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_True); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cells)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createFromCellList", 0, 3, 5, 1); __PYX_ERR(56, 23, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coords)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createFromCellList", 0, 3, 5, 2); __PYX_ERR(56, 23, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createFromCellList") < 0)) __PYX_ERR(56, 23, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_cells = values[1]; + __pyx_v_coords = values[2]; + __pyx_v_interpolate = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createFromCellList", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 23, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createFromCellList", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_2createFromCellList(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_dim, __pyx_v_cells, __pyx_v_coords, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_2createFromCellList(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_cells, PyObject *__pyx_v_coords, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + PetscInt __pyx_v_cdim; + PetscInt __pyx_v_numCells; + PetscInt __pyx_v_numCorners; + PetscInt *__pyx_v_cellVertices; + PetscInt __pyx_v_numVertices; + PetscInt __pyx_v_spaceDim; + PetscReal *__pyx_v_vertexCoords; + int __pyx_v_npy_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createFromCellList", 0); + __Pyx_INCREF(__pyx_v_cells); + __Pyx_INCREF(__pyx_v_coords); + + /* "petsc4py/PETSc/DMPlex.pyx":24 + * + * def createFromCellList(self, dim, cells, coords, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 24, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":25 + * def createFromCellList(self, dim, cells, coords, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef PetscInt cdim = asInt(dim) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 25, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":26 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt numCells = 0 + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":27 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * cdef PetscInt numCells = 0 + * cdef PetscInt numCorners = 0 + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 27, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_3; + + /* "petsc4py/PETSc/DMPlex.pyx":28 + * cdef PetscDM newdm = NULL + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt numCells = 0 # <<<<<<<<<<<<<< + * cdef PetscInt numCorners = 0 + * cdef PetscInt *cellVertices = NULL + */ + __pyx_v_numCells = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":29 + * cdef PetscInt cdim = asInt(dim) + * cdef PetscInt numCells = 0 + * cdef PetscInt numCorners = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *cellVertices = NULL + * cdef PetscInt numVertices = 0 + */ + __pyx_v_numCorners = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":30 + * cdef PetscInt numCells = 0 + * cdef PetscInt numCorners = 0 + * cdef PetscInt *cellVertices = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numVertices = 0 + * cdef PetscInt spaceDim= 0 + */ + __pyx_v_cellVertices = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":31 + * cdef PetscInt numCorners = 0 + * cdef PetscInt *cellVertices = NULL + * cdef PetscInt numVertices = 0 # <<<<<<<<<<<<<< + * cdef PetscInt spaceDim= 0 + * cdef PetscReal *vertexCoords = NULL + */ + __pyx_v_numVertices = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":32 + * cdef PetscInt *cellVertices = NULL + * cdef PetscInt numVertices = 0 + * cdef PetscInt spaceDim= 0 # <<<<<<<<<<<<<< + * cdef PetscReal *vertexCoords = NULL + * cdef int npy_flags = NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED|NPY_ARRAY_CARRAY + */ + __pyx_v_spaceDim = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":33 + * cdef PetscInt numVertices = 0 + * cdef PetscInt spaceDim= 0 + * cdef PetscReal *vertexCoords = NULL # <<<<<<<<<<<<<< + * cdef int npy_flags = NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED|NPY_ARRAY_CARRAY + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) + */ + __pyx_v_vertexCoords = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":34 + * cdef PetscInt spaceDim= 0 + * cdef PetscReal *vertexCoords = NULL + * cdef int npy_flags = NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED|NPY_ARRAY_CARRAY # <<<<<<<<<<<<<< + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) + * coords = PyArray_FROM_OTF(coords, NPY_PETSC_REAL, npy_flags) + */ + __pyx_v_npy_flags = ((NPY_ARRAY_ALIGNED | NPY_ARRAY_NOTSWAPPED) | NPY_ARRAY_CARRAY); + + /* "petsc4py/PETSc/DMPlex.pyx":35 + * cdef PetscReal *vertexCoords = NULL + * cdef int npy_flags = NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED|NPY_ARRAY_CARRAY + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) # <<<<<<<<<<<<<< + * coords = PyArray_FROM_OTF(coords, NPY_PETSC_REAL, npy_flags) + * if PyArray_NDIM(cells) != 2: raise ValueError( + */ + __pyx_t_4 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_cells, NPY_PETSC_INT, __pyx_v_npy_flags)); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_cells, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":36 + * cdef int npy_flags = NPY_ARRAY_ALIGNED|NPY_ARRAY_NOTSWAPPED|NPY_ARRAY_CARRAY + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) + * coords = PyArray_FROM_OTF(coords, NPY_PETSC_REAL, npy_flags) # <<<<<<<<<<<<<< + * if PyArray_NDIM(cells) != 2: raise ValueError( + * ("cell indices must have two dimensions: " + */ + __pyx_t_4 = ((PyObject *)PyArray_FROM_OTF(__pyx_v_coords, NPY_PETSC_REAL, __pyx_v_npy_flags)); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_coords, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":37 + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) + * coords = PyArray_FROM_OTF(coords, NPY_PETSC_REAL, npy_flags) + * if PyArray_NDIM(cells) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("cell indices must have two dimensions: " + * "cells.ndim=%d") % (PyArray_NDIM(cells)) ) + */ + if (!(likely(((__pyx_v_cells) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_cells, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 37, __pyx_L1_error) + __pyx_t_5 = ((PyArray_NDIM(((PyArrayObject *)__pyx_v_cells)) != 2) != 0); + if (unlikely(__pyx_t_5)) { + + /* "petsc4py/PETSc/DMPlex.pyx":39 + * if PyArray_NDIM(cells) != 2: raise ValueError( + * ("cell indices must have two dimensions: " + * "cells.ndim=%d") % (PyArray_NDIM(cells)) ) # <<<<<<<<<<<<<< + * if PyArray_NDIM(coords) != 2: raise ValueError( + * ("coords vertices must have two dimensions: " + */ + if (!(likely(((__pyx_v_cells) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_cells, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 39, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(PyArray_NDIM(((PyArrayObject *)__pyx_v_cells))); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_cell_indices_must_have_two_dimen, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":37 + * cells = PyArray_FROM_OTF(cells, NPY_PETSC_INT, npy_flags) + * coords = PyArray_FROM_OTF(coords, NPY_PETSC_REAL, npy_flags) + * if PyArray_NDIM(cells) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("cell indices must have two dimensions: " + * "cells.ndim=%d") % (PyArray_NDIM(cells)) ) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(56, 37, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMPlex.pyx":40 + * ("cell indices must have two dimensions: " + * "cells.ndim=%d") % (PyArray_NDIM(cells)) ) + * if PyArray_NDIM(coords) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coords vertices must have two dimensions: " + * "coords.ndim=%d") % (PyArray_NDIM(coords)) ) + */ + if (!(likely(((__pyx_v_coords) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_coords, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 40, __pyx_L1_error) + __pyx_t_5 = ((PyArray_NDIM(((PyArrayObject *)__pyx_v_coords)) != 2) != 0); + if (unlikely(__pyx_t_5)) { + + /* "petsc4py/PETSc/DMPlex.pyx":42 + * if PyArray_NDIM(coords) != 2: raise ValueError( + * ("coords vertices must have two dimensions: " + * "coords.ndim=%d") % (PyArray_NDIM(coords)) ) # <<<<<<<<<<<<<< + * numCells = PyArray_DIM(cells, 0) + * numCorners = PyArray_DIM(cells, 1) + */ + if (!(likely(((__pyx_v_coords) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_coords, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 42, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyInt_From_int(PyArray_NDIM(((PyArrayObject *)__pyx_v_coords))); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_coords_vertices_must_have_two_di, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":40 + * ("cell indices must have two dimensions: " + * "cells.ndim=%d") % (PyArray_NDIM(cells)) ) + * if PyArray_NDIM(coords) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coords vertices must have two dimensions: " + * "coords.ndim=%d") % (PyArray_NDIM(coords)) ) + */ + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(56, 40, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMPlex.pyx":43 + * ("coords vertices must have two dimensions: " + * "coords.ndim=%d") % (PyArray_NDIM(coords)) ) + * numCells = PyArray_DIM(cells, 0) # <<<<<<<<<<<<<< + * numCorners = PyArray_DIM(cells, 1) + * numVertices = PyArray_DIM(coords, 0) + */ + if (!(likely(((__pyx_v_cells) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_cells, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 43, __pyx_L1_error) + __pyx_v_numCells = ((PetscInt)PyArray_DIM(((PyArrayObject *)__pyx_v_cells), 0)); + + /* "petsc4py/PETSc/DMPlex.pyx":44 + * "coords.ndim=%d") % (PyArray_NDIM(coords)) ) + * numCells = PyArray_DIM(cells, 0) + * numCorners = PyArray_DIM(cells, 1) # <<<<<<<<<<<<<< + * numVertices = PyArray_DIM(coords, 0) + * spaceDim = PyArray_DIM(coords, 1) + */ + if (!(likely(((__pyx_v_cells) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_cells, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 44, __pyx_L1_error) + __pyx_v_numCorners = ((PetscInt)PyArray_DIM(((PyArrayObject *)__pyx_v_cells), 1)); + + /* "petsc4py/PETSc/DMPlex.pyx":45 + * numCells = PyArray_DIM(cells, 0) + * numCorners = PyArray_DIM(cells, 1) + * numVertices = PyArray_DIM(coords, 0) # <<<<<<<<<<<<<< + * spaceDim = PyArray_DIM(coords, 1) + * cellVertices = PyArray_DATA(cells) + */ + if (!(likely(((__pyx_v_coords) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_coords, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 45, __pyx_L1_error) + __pyx_v_numVertices = ((PetscInt)PyArray_DIM(((PyArrayObject *)__pyx_v_coords), 0)); + + /* "petsc4py/PETSc/DMPlex.pyx":46 + * numCorners = PyArray_DIM(cells, 1) + * numVertices = PyArray_DIM(coords, 0) + * spaceDim = PyArray_DIM(coords, 1) # <<<<<<<<<<<<<< + * cellVertices = PyArray_DATA(cells) + * vertexCoords = PyArray_DATA(coords) + */ + if (!(likely(((__pyx_v_coords) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_coords, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 46, __pyx_L1_error) + __pyx_v_spaceDim = ((PetscInt)PyArray_DIM(((PyArrayObject *)__pyx_v_coords), 1)); + + /* "petsc4py/PETSc/DMPlex.pyx":47 + * numVertices = PyArray_DIM(coords, 0) + * spaceDim = PyArray_DIM(coords, 1) + * cellVertices = PyArray_DATA(cells) # <<<<<<<<<<<<<< + * vertexCoords = PyArray_DATA(coords) + * CHKERR( DMPlexCreateFromCellListPetsc(ccomm, cdim, numCells, numVertices, + */ + if (!(likely(((__pyx_v_cells) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_cells, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 47, __pyx_L1_error) + __pyx_v_cellVertices = ((PetscInt *)PyArray_DATA(((PyArrayObject *)__pyx_v_cells))); + + /* "petsc4py/PETSc/DMPlex.pyx":48 + * spaceDim = PyArray_DIM(coords, 1) + * cellVertices = PyArray_DATA(cells) + * vertexCoords = PyArray_DATA(coords) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateFromCellListPetsc(ccomm, cdim, numCells, numVertices, + * numCorners, interp, cellVertices, + */ + if (!(likely(((__pyx_v_coords) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_coords, __pyx_ptype_8petsc4py_5PETSc_ndarray))))) __PYX_ERR(56, 48, __pyx_L1_error) + __pyx_v_vertexCoords = ((PetscReal *)PyArray_DATA(((PyArrayObject *)__pyx_v_coords))); + + /* "petsc4py/PETSc/DMPlex.pyx":49 + * cellVertices = PyArray_DATA(cells) + * vertexCoords = PyArray_DATA(coords) + * CHKERR( DMPlexCreateFromCellListPetsc(ccomm, cdim, numCells, numVertices, # <<<<<<<<<<<<<< + * numCorners, interp, cellVertices, + * spaceDim, vertexCoords, &newdm) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateFromCellListPetsc(__pyx_v_ccomm, __pyx_v_cdim, __pyx_v_numCells, __pyx_v_numVertices, __pyx_v_numCorners, __pyx_v_interp, __pyx_v_cellVertices, __pyx_v_spaceDim, __pyx_v_vertexCoords, (&__pyx_v_newdm))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 49, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":52 + * numCorners, interp, cellVertices, + * spaceDim, vertexCoords, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":53 + * spaceDim, vertexCoords, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":23 + * return self + * + * def createFromCellList(self, dim, cells, coords, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createFromCellList", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cells); + __Pyx_XDECREF(__pyx_v_coords); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":55 + * return self + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_5createBoxMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_4createBoxMesh[] = "DMPlex.createBoxMesh(self, faces, lower=(0, 0, 0), upper=(1, 1, 1), simplex=True, periodic=False, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_5createBoxMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_faces = 0; + PyObject *__pyx_v_lower = 0; + PyObject *__pyx_v_upper = 0; + PyObject *__pyx_v_simplex = 0; + PyObject *__pyx_v_periodic = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBoxMesh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_faces,&__pyx_n_s_lower,&__pyx_n_s_upper,&__pyx_n_s_simplex,&__pyx_n_s_periodic,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[7] = {0,0,0,0,0,0,0}; + values[1] = ((PyObject *)__pyx_tuple__48); + values[2] = ((PyObject *)__pyx_tuple__49); + + /* "petsc4py/PETSc/DMPlex.pyx":56 + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + * simplex=True, periodic=False, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL + */ + values[3] = ((PyObject *)Py_True); + values[4] = ((PyObject *)Py_False); + values[5] = ((PyObject *)Py_True); + values[6] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_faces)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_simplex); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_periodic); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[6] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBoxMesh") < 0)) __PYX_ERR(56, 55, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_faces = values[0]; + __pyx_v_lower = values[1]; + __pyx_v_upper = values[2]; + __pyx_v_simplex = values[3]; + __pyx_v_periodic = values[4]; + __pyx_v_interpolate = values[5]; + __pyx_v_comm = values[6]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBoxMesh", 0, 1, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 55, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createBoxMesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_4createBoxMesh(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_faces, __pyx_v_lower, __pyx_v_upper, __pyx_v_simplex, __pyx_v_periodic, __pyx_v_interpolate, __pyx_v_comm); + + /* "petsc4py/PETSc/DMPlex.pyx":55 + * return self + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_4createBoxMesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_faces, PyObject *__pyx_v_lower, PyObject *__pyx_v_upper, PyObject *__pyx_v_simplex, PyObject *__pyx_v_periodic, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + Py_ssize_t __pyx_v_i; + PetscInt __pyx_v_dim; + PetscInt *__pyx_v_cfaces; + PetscReal __pyx_v_clower[3]; + PetscReal __pyx_v_cupper[3]; + DMBoundaryType __pyx_v_btype[3]; + PetscBool __pyx_v_csimplex; + PetscBool __pyx_v_cinterp; + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + PetscReal __pyx_t_5; + PetscBool __pyx_t_6; + MPI_Comm __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBoxMesh", 0); + __Pyx_INCREF(__pyx_v_faces); + + /* "petsc4py/PETSc/DMPlex.pyx":57 + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":58 + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL # <<<<<<<<<<<<<< + * faces = iarray_i(faces, &dim, &cfaces) + * assert dim >= 1 and dim <= 3 + */ + __pyx_v_dim = 0; + __pyx_v_cfaces = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":59 + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) # <<<<<<<<<<<<<< + * assert dim >= 1 and dim <= 3 + * cdef PetscReal clower[3] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_faces, (&__pyx_v_dim), (&__pyx_v_cfaces))); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_faces, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":60 + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) + * assert dim >= 1 and dim <= 3 # <<<<<<<<<<<<<< + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_dim <= 3) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 60, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":62 + * assert dim >= 1 and dim <= 3 + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: clower[i] = lower[i] + * cdef PetscReal cupper[3] + */ + (__pyx_v_clower[0]) = 0.0; + (__pyx_v_clower[1]) = 0.0; + (__pyx_v_clower[2]) = 0.0; + + /* "petsc4py/PETSc/DMPlex.pyx":63 + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 + * for i from 0 <= i < dim: clower[i] = lower[i] # <<<<<<<<<<<<<< + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 + */ + __pyx_t_4 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_lower, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_clower[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMPlex.pyx":65 + * for i from 0 <= i < dim: clower[i] = lower[i] + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: cupper[i] = upper[i] + * cdef PetscDMBoundaryType btype[3]; + */ + (__pyx_v_cupper[0]) = 1.0; + (__pyx_v_cupper[1]) = 1.0; + (__pyx_v_cupper[2]) = 1.0; + + /* "petsc4py/PETSc/DMPlex.pyx":66 + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 + * for i from 0 <= i < dim: cupper[i] = upper[i] # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btype[3]; + * asBoundary(periodic, &btype[0], &btype[1], &btype[2]) + */ + __pyx_t_4 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_upper, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_cupper[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMPlex.pyx":68 + * for i from 0 <= i < dim: cupper[i] = upper[i] + * cdef PetscDMBoundaryType btype[3]; + * asBoundary(periodic, &btype[0], &btype[1], &btype[2]) # <<<<<<<<<<<<<< + * cdef PetscBool csimplex = simplex + * cdef PetscBool cinterp = interpolate + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_periodic, (&(__pyx_v_btype[0])), (&(__pyx_v_btype[1])), (&(__pyx_v_btype[2]))); if (unlikely(__pyx_t_4 == ((PetscInt)-1L))) __PYX_ERR(56, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":69 + * cdef PetscDMBoundaryType btype[3]; + * asBoundary(periodic, &btype[0], &btype[1], &btype[2]) + * cdef PetscBool csimplex = simplex # <<<<<<<<<<<<<< + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_6 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_simplex)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 69, __pyx_L1_error) + __pyx_v_csimplex = __pyx_t_6; + + /* "petsc4py/PETSc/DMPlex.pyx":70 + * asBoundary(periodic, &btype[0], &btype[1], &btype[2]) + * cdef PetscBool csimplex = simplex + * cdef PetscBool cinterp = interpolate # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + __pyx_t_6 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 70, __pyx_L1_error) + __pyx_v_cinterp = __pyx_t_6; + + /* "petsc4py/PETSc/DMPlex.pyx":71 + * cdef PetscBool csimplex = simplex + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateBoxMesh(ccomm, dim, csimplex, cfaces, + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 71, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/DMPlex.pyx":72 + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateBoxMesh(ccomm, dim, csimplex, cfaces, + * clower, cupper, btype, cinterp, &newdm) ) + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":73 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateBoxMesh(ccomm, dim, csimplex, cfaces, # <<<<<<<<<<<<<< + * clower, cupper, btype, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateBoxMesh(__pyx_v_ccomm, __pyx_v_dim, __pyx_v_csimplex, __pyx_v_cfaces, __pyx_v_clower, __pyx_v_cupper, __pyx_v_btype, __pyx_v_cinterp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 73, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":75 + * CHKERR( DMPlexCreateBoxMesh(ccomm, dim, csimplex, cfaces, + * clower, cupper, btype, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":76 + * clower, cupper, btype, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":55 + * return self + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createBoxMesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_faces); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":78 + * return self + * + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_7createBoxSurfaceMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_6createBoxSurfaceMesh[] = "DMPlex.createBoxSurfaceMesh(self, faces, lower=(0, 0, 0), upper=(1, 1, 1), interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_7createBoxSurfaceMesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_faces = 0; + PyObject *__pyx_v_lower = 0; + PyObject *__pyx_v_upper = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createBoxSurfaceMesh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_faces,&__pyx_n_s_lower,&__pyx_n_s_upper,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[1] = ((PyObject *)__pyx_tuple__48); + values[2] = ((PyObject *)__pyx_tuple__49); + + /* "petsc4py/PETSc/DMPlex.pyx":79 + * + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + * interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL + */ + values[3] = ((PyObject *)Py_True); + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_faces)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lower); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_upper); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createBoxSurfaceMesh") < 0)) __PYX_ERR(56, 78, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_faces = values[0]; + __pyx_v_lower = values[1]; + __pyx_v_upper = values[2]; + __pyx_v_interpolate = values[3]; + __pyx_v_comm = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createBoxSurfaceMesh", 0, 1, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 78, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createBoxSurfaceMesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_6createBoxSurfaceMesh(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_faces, __pyx_v_lower, __pyx_v_upper, __pyx_v_interpolate, __pyx_v_comm); + + /* "petsc4py/PETSc/DMPlex.pyx":78 + * return self + * + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_6createBoxSurfaceMesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_faces, PyObject *__pyx_v_lower, PyObject *__pyx_v_upper, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + Py_ssize_t __pyx_v_i; + PetscInt __pyx_v_dim; + PetscInt *__pyx_v_cfaces; + PetscReal __pyx_v_clower[3]; + PetscReal __pyx_v_cupper[3]; + PetscBool __pyx_v_cinterp; + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscInt __pyx_t_4; + PetscReal __pyx_t_5; + PetscBool __pyx_t_6; + MPI_Comm __pyx_t_7; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createBoxSurfaceMesh", 0); + __Pyx_INCREF(__pyx_v_faces); + + /* "petsc4py/PETSc/DMPlex.pyx":80 + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), + * interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 # <<<<<<<<<<<<<< + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) + */ + __pyx_v_i = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":81 + * interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL # <<<<<<<<<<<<<< + * faces = iarray_i(faces, &dim, &cfaces) + * assert dim >= 1 and dim <= 3 + */ + __pyx_v_dim = 0; + __pyx_v_cfaces = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":82 + * cdef Py_ssize_t i = 0 + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) # <<<<<<<<<<<<<< + * assert dim >= 1 and dim <= 3 + * cdef PetscReal clower[3] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_faces, (&__pyx_v_dim), (&__pyx_v_cfaces))); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_faces, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":83 + * cdef PetscInt dim = 0, *cfaces = NULL + * faces = iarray_i(faces, &dim, &cfaces) + * assert dim >= 1 and dim <= 3 # <<<<<<<<<<<<<< + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_3 = ((__pyx_v_dim >= 1) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_dim <= 3) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 83, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":85 + * assert dim >= 1 and dim <= 3 + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: clower[i] = lower[i] + * cdef PetscReal cupper[3] + */ + (__pyx_v_clower[0]) = 0.0; + (__pyx_v_clower[1]) = 0.0; + (__pyx_v_clower[2]) = 0.0; + + /* "petsc4py/PETSc/DMPlex.pyx":86 + * cdef PetscReal clower[3] + * clower[0] = clower[1] = clower[2] = 0 + * for i from 0 <= i < dim: clower[i] = lower[i] # <<<<<<<<<<<<<< + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 + */ + __pyx_t_4 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_lower, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_clower[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMPlex.pyx":88 + * for i from 0 <= i < dim: clower[i] = lower[i] + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: cupper[i] = upper[i] + * cdef PetscBool cinterp = interpolate + */ + (__pyx_v_cupper[0]) = 1.0; + (__pyx_v_cupper[1]) = 1.0; + (__pyx_v_cupper[2]) = 1.0; + + /* "petsc4py/PETSc/DMPlex.pyx":89 + * cdef PetscReal cupper[3] + * cupper[0] = cupper[1] = cupper[2] = 1 + * for i from 0 <= i < dim: cupper[i] = upper[i] # <<<<<<<<<<<<<< + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_4 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_upper, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_t_1); if (unlikely((__pyx_t_5 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + (__pyx_v_cupper[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMPlex.pyx":90 + * cupper[0] = cupper[1] = cupper[2] = 1 + * for i from 0 <= i < dim: cupper[i] = upper[i] + * cdef PetscBool cinterp = interpolate # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + __pyx_t_6 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 90, __pyx_L1_error) + __pyx_v_cinterp = __pyx_t_6; + + /* "petsc4py/PETSc/DMPlex.pyx":91 + * for i from 0 <= i < dim: cupper[i] = upper[i] + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateBoxSurfaceMesh(ccomm, dim, cfaces, clower, cupper, cinterp, &newdm) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 91, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_7; + + /* "petsc4py/PETSc/DMPlex.pyx":92 + * cdef PetscBool cinterp = interpolate + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateBoxSurfaceMesh(ccomm, dim, cfaces, clower, cupper, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":93 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateBoxSurfaceMesh(ccomm, dim, cfaces, clower, cupper, cinterp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateBoxSurfaceMesh(__pyx_v_ccomm, __pyx_v_dim, __pyx_v_cfaces, __pyx_v_clower, __pyx_v_cupper, __pyx_v_cinterp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 93, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":94 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateBoxSurfaceMesh(ccomm, dim, cfaces, clower, cupper, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":95 + * CHKERR( DMPlexCreateBoxSurfaceMesh(ccomm, dim, cfaces, clower, cupper, cinterp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createFromFile(self, filename, plexname="unnamed", interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":78 + * return self + * + * def createBoxSurfaceMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createBoxSurfaceMesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_faces); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":97 + * return self + * + * def createFromFile(self, filename, plexname="unnamed", interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_9createFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_8createFromFile[] = "DMPlex.createFromFile(self, filename, plexname='unnamed', interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_9createFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_filename = 0; + PyObject *__pyx_v_plexname = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createFromFile (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_plexname,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[4] = {0,0,0,0}; + values[1] = ((PyObject *)__pyx_n_s_unnamed); + values[2] = ((PyObject *)Py_True); + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_plexname); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createFromFile") < 0)) __PYX_ERR(56, 97, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_filename = values[0]; + __pyx_v_plexname = values[1]; + __pyx_v_interpolate = values[2]; + __pyx_v_comm = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createFromFile", 0, 1, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 97, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_8createFromFile(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_filename, __pyx_v_plexname, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_8createFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_plexname, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + char const *__pyx_v_cfile; + char const *__pyx_v_pname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createFromFile", 0); + __Pyx_INCREF(__pyx_v_filename); + __Pyx_INCREF(__pyx_v_plexname); + + /* "petsc4py/PETSc/DMPlex.pyx":98 + * + * def createFromFile(self, filename, plexname="unnamed", interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 98, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":99 + * def createFromFile(self, filename, plexname="unnamed", interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 99, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":100 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef const char *cfile = NULL + * cdef const char *pname = NULL + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":101 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL # <<<<<<<<<<<<<< + * cdef const char *pname = NULL + * filename = str2bytes(filename, &cfile) + */ + __pyx_v_cfile = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":102 + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + * cdef const char *pname = NULL # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfile) + * plexname = str2bytes(plexname, &pname) + */ + __pyx_v_pname = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":103 + * cdef const char *cfile = NULL + * cdef const char *pname = NULL + * filename = str2bytes(filename, &cfile) # <<<<<<<<<<<<<< + * plexname = str2bytes(plexname, &pname) + * CHKERR( DMPlexCreateFromFile(ccomm, cfile, pname, interp, &newdm) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cfile)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":104 + * cdef const char *pname = NULL + * filename = str2bytes(filename, &cfile) + * plexname = str2bytes(plexname, &pname) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateFromFile(ccomm, cfile, pname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_plexname, (&__pyx_v_pname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_plexname, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":105 + * filename = str2bytes(filename, &cfile) + * plexname = str2bytes(plexname, &pname) + * CHKERR( DMPlexCreateFromFile(ccomm, cfile, pname, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateFromFile(__pyx_v_ccomm, __pyx_v_cfile, __pyx_v_pname, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 105, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":106 + * plexname = str2bytes(plexname, &pname) + * CHKERR( DMPlexCreateFromFile(ccomm, cfile, pname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":107 + * CHKERR( DMPlexCreateFromFile(ccomm, cfile, pname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createCGNS(self, cgid, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":97 + * return self + * + * def createFromFile(self, filename, plexname="unnamed", interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XDECREF(__pyx_v_plexname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":109 + * return self + * + * def createCGNS(self, cgid, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_11createCGNS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_10createCGNS[] = "DMPlex.createCGNS(self, cgid, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_11createCGNS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cgid = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCGNS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cgid,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cgid)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createCGNS") < 0)) __PYX_ERR(56, 109, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_cgid = values[0]; + __pyx_v_interpolate = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createCGNS", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 109, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCGNS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_10createCGNS(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_cgid, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_10createCGNS(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_cgid, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + PetscInt __pyx_v_ccgid; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCGNS", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":110 + * + * def createCGNS(self, cgid, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 110, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":111 + * def createCGNS(self, cgid, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef PetscInt ccgid = asInt(cgid) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 111, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":112 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef PetscInt ccgid = asInt(cgid) + * CHKERR( DMPlexCreateCGNS(ccomm, ccgid, interp, &newdm) ) + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":113 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef PetscInt ccgid = asInt(cgid) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateCGNS(ccomm, ccgid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_cgid); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 113, __pyx_L1_error) + __pyx_v_ccgid = __pyx_t_3; + + /* "petsc4py/PETSc/DMPlex.pyx":114 + * cdef PetscDM newdm = NULL + * cdef PetscInt ccgid = asInt(cgid) + * CHKERR( DMPlexCreateCGNS(ccomm, ccgid, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateCGNS(__pyx_v_ccomm, __pyx_v_ccgid, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 114, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":115 + * cdef PetscInt ccgid = asInt(cgid) + * CHKERR( DMPlexCreateCGNS(ccomm, ccgid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":116 + * CHKERR( DMPlexCreateCGNS(ccomm, ccgid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createCGNSFromFile(self, filename, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":109 + * return self + * + * def createCGNS(self, cgid, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCGNS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":118 + * return self + * + * def createCGNSFromFile(self, filename, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_13createCGNSFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_12createCGNSFromFile[] = "DMPlex.createCGNSFromFile(self, filename, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_13createCGNSFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_filename = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCGNSFromFile (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createCGNSFromFile") < 0)) __PYX_ERR(56, 118, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_filename = values[0]; + __pyx_v_interpolate = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createCGNSFromFile", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 118, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCGNSFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_12createCGNSFromFile(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_filename, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_12createCGNSFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + char const *__pyx_v_cfile; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCGNSFromFile", 0); + __Pyx_INCREF(__pyx_v_filename); + + /* "petsc4py/PETSc/DMPlex.pyx":119 + * + * def createCGNSFromFile(self, filename, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 119, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":120 + * def createCGNSFromFile(self, filename, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 120, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":121 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":122 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateCGNSFromFile(ccomm, cfile, interp, &newdm) ) + */ + __pyx_v_cfile = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":123 + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateCGNSFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cfile)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":124 + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateCGNSFromFile(ccomm, cfile, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateCGNSFromFile(__pyx_v_ccomm, __pyx_v_cfile, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 124, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":125 + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateCGNSFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":126 + * CHKERR( DMPlexCreateCGNSFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createExodusFromFile(self, filename, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":118 + * return self + * + * def createCGNSFromFile(self, filename, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCGNSFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":128 + * return self + * + * def createExodusFromFile(self, filename, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_15createExodusFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_14createExodusFromFile[] = "DMPlex.createExodusFromFile(self, filename, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_15createExodusFromFile(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_filename = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createExodusFromFile (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createExodusFromFile") < 0)) __PYX_ERR(56, 128, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_filename = values[0]; + __pyx_v_interpolate = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createExodusFromFile", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 128, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createExodusFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_14createExodusFromFile(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_filename, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_14createExodusFromFile(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + char const *__pyx_v_cfile; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createExodusFromFile", 0); + __Pyx_INCREF(__pyx_v_filename); + + /* "petsc4py/PETSc/DMPlex.pyx":129 + * + * def createExodusFromFile(self, filename, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 129, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":130 + * def createExodusFromFile(self, filename, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 130, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":131 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":132 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateExodusFromFile(ccomm, cfile, interp, &newdm) ) + */ + __pyx_v_cfile = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":133 + * cdef PetscDM newdm = NULL + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateExodusFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cfile)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":134 + * cdef const char *cfile = NULL + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateExodusFromFile(ccomm, cfile, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateExodusFromFile(__pyx_v_ccomm, __pyx_v_cfile, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 134, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":135 + * filename = str2bytes(filename, &cfile) + * CHKERR( DMPlexCreateExodusFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":136 + * CHKERR( DMPlexCreateExodusFromFile(ccomm, cfile, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createExodus(self, exoid, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":128 + * return self + * + * def createExodusFromFile(self, filename, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createExodusFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":138 + * return self + * + * def createExodus(self, exoid, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_17createExodus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_16createExodus[] = "DMPlex.createExodus(self, exoid, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_17createExodus(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_exoid = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createExodus (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_exoid,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_exoid)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createExodus") < 0)) __PYX_ERR(56, 138, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_exoid = values[0]; + __pyx_v_interpolate = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createExodus", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 138, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createExodus", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_16createExodus(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_exoid, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_16createExodus(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_exoid, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + PetscInt __pyx_v_cexoid; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createExodus", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":139 + * + * def createExodus(self, exoid, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 139, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":140 + * def createExodus(self, exoid, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * cdef PetscInt cexoid = asInt(exoid) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 140, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":141 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cexoid = asInt(exoid) + * CHKERR( DMPlexCreateExodus(ccomm, cexoid, interp, &newdm) ) + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":142 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * cdef PetscInt cexoid = asInt(exoid) # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateExodus(ccomm, cexoid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_exoid); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 142, __pyx_L1_error) + __pyx_v_cexoid = __pyx_t_3; + + /* "petsc4py/PETSc/DMPlex.pyx":143 + * cdef PetscDM newdm = NULL + * cdef PetscInt cexoid = asInt(exoid) + * CHKERR( DMPlexCreateExodus(ccomm, cexoid, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateExodus(__pyx_v_ccomm, __pyx_v_cexoid, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 143, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":144 + * cdef PetscInt cexoid = asInt(exoid) + * CHKERR( DMPlexCreateExodus(ccomm, cexoid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":145 + * CHKERR( DMPlexCreateExodus(ccomm, cexoid, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createGmsh(self, Viewer viewer, interpolate=True, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":138 + * return self + * + * def createExodus(self, exoid, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createExodus", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":147 + * return self + * + * def createGmsh(self, Viewer viewer, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_19createGmsh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_18createGmsh[] = "DMPlex.createGmsh(self, Viewer viewer, interpolate=True, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_19createGmsh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + PyObject *__pyx_v_interpolate = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGmsh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_interpolate,&__pyx_n_s_comm,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGmsh") < 0)) __PYX_ERR(56, 147, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_interpolate = values[1]; + __pyx_v_comm = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGmsh", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 147, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createGmsh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 147, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_18createGmsh(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_interpolate, __pyx_v_comm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_18createGmsh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, PyObject *__pyx_v_interpolate, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscBool __pyx_v_interp; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGmsh", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":148 + * + * def createGmsh(self, Viewer viewer, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 148, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":149 + * def createGmsh(self, Viewer viewer, interpolate=True, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateGmsh(ccomm, viewer.vwr, interp, &newdm) ) + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 149, __pyx_L1_error) + __pyx_v_interp = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":150 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateGmsh(ccomm, viewer.vwr, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":151 + * cdef PetscBool interp = interpolate + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateGmsh(ccomm, viewer.vwr, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateGmsh(__pyx_v_ccomm, __pyx_v_viewer->vwr, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 151, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":152 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexCreateGmsh(ccomm, viewer.vwr, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":153 + * CHKERR( DMPlexCreateGmsh(ccomm, viewer.vwr, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def createCohesiveSubmesh(self, hasLagrange, value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":147 + * return self + * + * def createGmsh(self, Viewer viewer, interpolate=True, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscBool interp = interpolate + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createGmsh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":155 + * return self + * + * def createCohesiveSubmesh(self, hasLagrange, value): # <<<<<<<<<<<<<< + * cdef PetscBool flag = hasLagrange + * cdef PetscInt cvalue = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_21createCohesiveSubmesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_20createCohesiveSubmesh[] = "DMPlex.createCohesiveSubmesh(self, hasLagrange, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_21createCohesiveSubmesh(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_hasLagrange = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCohesiveSubmesh (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hasLagrange,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hasLagrange)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createCohesiveSubmesh", 1, 2, 2, 1); __PYX_ERR(56, 155, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createCohesiveSubmesh") < 0)) __PYX_ERR(56, 155, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_hasLagrange = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createCohesiveSubmesh", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 155, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCohesiveSubmesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_20createCohesiveSubmesh(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_hasLagrange, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_20createCohesiveSubmesh(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_hasLagrange, PyObject *__pyx_v_value) { + PetscBool __pyx_v_flag; + PetscInt __pyx_v_cvalue; + struct PyPetscDMObject *__pyx_v_subdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscInt __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCohesiveSubmesh", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":156 + * + * def createCohesiveSubmesh(self, hasLagrange, value): + * cdef PetscBool flag = hasLagrange # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef DM subdm = DMPlex() + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_hasLagrange)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 156, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":157 + * def createCohesiveSubmesh(self, hasLagrange, value): + * cdef PetscBool flag = hasLagrange + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef DM subdm = DMPlex() + * CHKERR( DMPlexCreateCohesiveSubmesh(self.dm, flag, NULL, cvalue, &subdm.dm) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 157, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":158 + * cdef PetscBool flag = hasLagrange + * cdef PetscInt cvalue = asInt(value) + * cdef DM subdm = DMPlex() # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateCohesiveSubmesh(self.dm, flag, NULL, cvalue, &subdm.dm) ) + * return subdm + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_subdm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":159 + * cdef PetscInt cvalue = asInt(value) + * cdef DM subdm = DMPlex() + * CHKERR( DMPlexCreateCohesiveSubmesh(self.dm, flag, NULL, cvalue, &subdm.dm) ) # <<<<<<<<<<<<<< + * return subdm + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateCohesiveSubmesh(__pyx_v_self->__pyx_base.dm, __pyx_v_flag, NULL, __pyx_v_cvalue, (&__pyx_v_subdm->dm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":160 + * cdef DM subdm = DMPlex() + * CHKERR( DMPlexCreateCohesiveSubmesh(self.dm, flag, NULL, cvalue, &subdm.dm) ) + * return subdm # <<<<<<<<<<<<<< + * + * def getChart(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_subdm)); + __pyx_r = ((PyObject *)__pyx_v_subdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":155 + * return self + * + * def createCohesiveSubmesh(self, hasLagrange, value): # <<<<<<<<<<<<<< + * cdef PetscBool flag = hasLagrange + * cdef PetscInt cvalue = asInt(value) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCohesiveSubmesh", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_subdm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":162 + * return subdm + * + * def getChart(self): # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_23getChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_22getChart[] = "DMPlex.getChart(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_23getChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getChart (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getChart", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getChart", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_22getChart(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_22getChart(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getChart", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":163 + * + * def getChart(self): + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * return toInt(pStart), toInt(pEnd) + */ + __pyx_v_pStart = 0; + __pyx_v_pEnd = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":164 + * def getChart(self): + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) # <<<<<<<<<<<<<< + * return toInt(pStart), toInt(pEnd) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetChart(__pyx_v_self->__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 164, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":165 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * return toInt(pStart), toInt(pEnd) # <<<<<<<<<<<<<< + * + * def setChart(self, pStart, pEnd): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_pStart); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_pEnd); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":162 + * return subdm + * + * def getChart(self): # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":167 + * return toInt(pStart), toInt(pEnd) + * + * def setChart(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_25setChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_24setChart[] = "DMPlex.setChart(self, pStart, pEnd)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_25setChart(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_pStart = 0; + PyObject *__pyx_v_pEnd = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setChart (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pStart,&__pyx_n_s_pEnd,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pStart)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pEnd)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setChart", 1, 2, 2, 1); __PYX_ERR(56, 167, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setChart") < 0)) __PYX_ERR(56, 167, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_pStart = values[0]; + __pyx_v_pEnd = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setChart", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 167, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_24setChart(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_pStart, __pyx_v_pEnd); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_24setChart(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_pStart, PyObject *__pyx_v_pEnd) { + PetscInt __pyx_v_cStart; + PetscInt __pyx_v_cEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setChart", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":168 + * + * def setChart(self, pStart, pEnd): + * cdef PetscInt cStart = asInt(pStart) # <<<<<<<<<<<<<< + * cdef PetscInt cEnd = asInt(pEnd) + * CHKERR( DMPlexSetChart(self.dm, cStart, cEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pStart); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 168, __pyx_L1_error) + __pyx_v_cStart = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":169 + * def setChart(self, pStart, pEnd): + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetChart(self.dm, cStart, cEnd) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pEnd); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 169, __pyx_L1_error) + __pyx_v_cEnd = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":170 + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + * CHKERR( DMPlexSetChart(self.dm, cStart, cEnd) ) # <<<<<<<<<<<<<< + * + * def getConeSize(self, p): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetChart(__pyx_v_self->__pyx_base.dm, __pyx_v_cStart, __pyx_v_cEnd)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 170, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":167 + * return toInt(pStart), toInt(pEnd) + * + * def setChart(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cStart = asInt(pStart) + * cdef PetscInt cEnd = asInt(pEnd) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setChart", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":172 + * CHKERR( DMPlexSetChart(self.dm, cStart, cEnd) ) + * + * def getConeSize(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_27getConeSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_26getConeSize[] = "DMPlex.getConeSize(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_27getConeSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConeSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getConeSize") < 0)) __PYX_ERR(56, 172, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getConeSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 172, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getConeSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_26getConeSize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_26getConeSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_csize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConeSize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":173 + * + * def getConeSize(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 173, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":174 + * def getConeSize(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 175, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":176 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 176, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":177 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_csize))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 178, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":179 + * cdef PetscInt csize = 0 + * CHKERR( DMPlexGetConeSize(self.dm, cp, &csize) ) + * return toInt(csize) # <<<<<<<<<<<<<< + * + * def setConeSize(self, p, size): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_csize); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":172 + * CHKERR( DMPlexSetChart(self.dm, cStart, cEnd) ) + * + * def getConeSize(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getConeSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":181 + * return toInt(csize) + * + * def setConeSize(self, p, size): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_29setConeSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_28setConeSize[] = "DMPlex.setConeSize(self, p, size)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_29setConeSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConeSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_size,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setConeSize", 1, 2, 2, 1); __PYX_ERR(56, 181, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConeSize") < 0)) __PYX_ERR(56, 181, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_p = values[0]; + __pyx_v_size = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConeSize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 181, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setConeSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_28setConeSize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_28setConeSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_size) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_csize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConeSize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":182 + * + * def setConeSize(self, p, size): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 182, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":183 + * def setConeSize(self, p, size): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 184, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":185 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 185, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":186 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, __pyx_v_csize)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":181 + * return toInt(csize) + * + * def setConeSize(self, p, size): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setConeSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":189 + * CHKERR( DMPlexSetConeSize(self.dm, cp, csize) ) + * + * def getCone(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_31getCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_30getCone[] = "DMPlex.getCone(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_31getCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCone (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCone") < 0)) __PYX_ERR(56, 189, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCone", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 189, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_30getCone(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_30getCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_ncone; + PetscInt const *__pyx_v_icone; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCone", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":190 + * + * def getCone(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 190, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":191 + * def getCone(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 192, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":193 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 193, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":194 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_ncone))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 196, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":197 + * cdef const PetscInt *icone = NULL + * CHKERR( DMPlexGetConeSize(self.dm, cp, &ncone) ) + * CHKERR( DMPlexGetCone(self.dm, cp, &icone) ) # <<<<<<<<<<<<<< + * return array_i(ncone, icone) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetCone(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, (&__pyx_v_icone))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 197, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":198 + * CHKERR( DMPlexGetConeSize(self.dm, cp, &ncone) ) + * CHKERR( DMPlexGetCone(self.dm, cp, &icone) ) + * return array_i(ncone, icone) # <<<<<<<<<<<<<< + * + * def setCone(self, p, cone, orientation=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_ncone, __pyx_v_icone)); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":189 + * CHKERR( DMPlexSetConeSize(self.dm, cp, csize) ) + * + * def getCone(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":200 + * return array_i(ncone, icone) + * + * def setCone(self, p, cone, orientation=None): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_33setCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_32setCone[] = "DMPlex.setCone(self, p, cone, orientation=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_33setCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_cone = 0; + PyObject *__pyx_v_orientation = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCone (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_cone,&__pyx_n_s_orientation,0}; + PyObject* values[3] = {0,0,0}; + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cone)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setCone", 0, 2, 3, 1); __PYX_ERR(56, 200, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCone") < 0)) __PYX_ERR(56, 200, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_p = values[0]; + __pyx_v_cone = values[1]; + __pyx_v_orientation = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCone", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 200, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_32setCone(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_cone, __pyx_v_orientation); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_32setCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_cone, PyObject *__pyx_v_orientation) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_ncone; + PetscInt *__pyx_v_icone; + PetscInt __pyx_v_norie; + PetscInt *__pyx_v_iorie; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCone", 0); + __Pyx_INCREF(__pyx_v_cone); + __Pyx_INCREF(__pyx_v_orientation); + + /* "petsc4py/PETSc/DMPlex.pyx":201 + * + * def setCone(self, p, cone, orientation=None): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 201, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":202 + * def setCone(self, p, cone, orientation=None): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":204 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 204, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":206 + * assert cp>=pStart and cp__pyx_base.dm, __pyx_v_cp, __pyx_v_ncone)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 209, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":210 + * cone = iarray_i(cone, &ncone, &icone) + * CHKERR( DMPlexSetConeSize(self.dm, cp, ncone) ) + * CHKERR( DMPlexSetCone(self.dm, cp, icone) ) # <<<<<<<<<<<<<< + * # + * cdef PetscInt norie = 0 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetCone(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_icone)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 210, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":212 + * CHKERR( DMPlexSetCone(self.dm, cp, icone) ) + * # + * cdef PetscInt norie = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *iorie = NULL + * if orientation is not None: + */ + __pyx_v_norie = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":213 + * # + * cdef PetscInt norie = 0 + * cdef PetscInt *iorie = NULL # <<<<<<<<<<<<<< + * if orientation is not None: + * orientation = iarray_i(orientation, &norie, &iorie) + */ + __pyx_v_iorie = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":214 + * cdef PetscInt norie = 0 + * cdef PetscInt *iorie = NULL + * if orientation is not None: # <<<<<<<<<<<<<< + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone + */ + __pyx_t_3 = (__pyx_v_orientation != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/DMPlex.pyx":215 + * cdef PetscInt *iorie = NULL + * if orientation is not None: + * orientation = iarray_i(orientation, &norie, &iorie) # <<<<<<<<<<<<<< + * assert norie == ncone + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_orientation, (&__pyx_v_norie), (&__pyx_v_iorie))); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_orientation, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":216 + * if orientation is not None: + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_norie == __pyx_v_ncone) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 216, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":217 + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) # <<<<<<<<<<<<<< + * + * def insertCone(self, p, conePos, conePoint): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetConeOrientation(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_iorie)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 217, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":214 + * cdef PetscInt norie = 0 + * cdef PetscInt *iorie = NULL + * if orientation is not None: # <<<<<<<<<<<<<< + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":200 + * return array_i(ncone, icone) + * + * def setCone(self, p, cone, orientation=None): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_cone); + __Pyx_XDECREF(__pyx_v_orientation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":219 + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + * def insertCone(self, p, conePos, conePoint): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_35insertCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_34insertCone[] = "DMPlex.insertCone(self, p, conePos, conePoint)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_35insertCone(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_conePos = 0; + PyObject *__pyx_v_conePoint = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("insertCone (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_conePos,&__pyx_n_s_conePoint,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_conePos)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertCone", 1, 3, 3, 1); __PYX_ERR(56, 219, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_conePoint)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertCone", 1, 3, 3, 2); __PYX_ERR(56, 219, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insertCone") < 0)) __PYX_ERR(56, 219, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_p = values[0]; + __pyx_v_conePos = values[1]; + __pyx_v_conePoint = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("insertCone", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 219, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.insertCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_34insertCone(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_conePos, __pyx_v_conePoint); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_34insertCone(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_conePos, PyObject *__pyx_v_conePoint) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_cconePos; + PetscInt __pyx_v_cconePoint; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertCone", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":220 + * + * def insertCone(self, p, conePos, conePoint): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconePoint = asInt(conePoint) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 220, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":221 + * def insertCone(self, p, conePos, conePoint): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) # <<<<<<<<<<<<<< + * cdef PetscInt cconePoint = asInt(conePoint) + * CHKERR( DMPlexInsertCone(self.dm,cp,cconePos,cconePoint) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_conePos); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 221, __pyx_L1_error) + __pyx_v_cconePos = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":222 + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconePoint = asInt(conePoint) # <<<<<<<<<<<<<< + * CHKERR( DMPlexInsertCone(self.dm,cp,cconePos,cconePoint) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_conePoint); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 222, __pyx_L1_error) + __pyx_v_cconePoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":223 + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconePoint = asInt(conePoint) + * CHKERR( DMPlexInsertCone(self.dm,cp,cconePos,cconePoint) ) # <<<<<<<<<<<<<< + * + * def insertConeOrientation(self, p, conePos, coneOrientation): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexInsertCone(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_cconePos, __pyx_v_cconePoint)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 223, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":219 + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + * def insertCone(self, p, conePos, conePoint): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.insertCone", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":225 + * CHKERR( DMPlexInsertCone(self.dm,cp,cconePos,cconePoint) ) + * + * def insertConeOrientation(self, p, conePos, coneOrientation): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_37insertConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_36insertConeOrientation[] = "DMPlex.insertConeOrientation(self, p, conePos, coneOrientation)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_37insertConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_conePos = 0; + PyObject *__pyx_v_coneOrientation = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("insertConeOrientation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_conePos,&__pyx_n_s_coneOrientation,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_conePos)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertConeOrientation", 1, 3, 3, 1); __PYX_ERR(56, 225, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coneOrientation)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertConeOrientation", 1, 3, 3, 2); __PYX_ERR(56, 225, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insertConeOrientation") < 0)) __PYX_ERR(56, 225, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_p = values[0]; + __pyx_v_conePos = values[1]; + __pyx_v_coneOrientation = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("insertConeOrientation", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 225, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.insertConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_36insertConeOrientation(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_conePos, __pyx_v_coneOrientation); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_36insertConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_conePos, PyObject *__pyx_v_coneOrientation) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_cconePos; + PetscInt __pyx_v_cconeOrientation; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertConeOrientation", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":226 + * + * def insertConeOrientation(self, p, conePos, coneOrientation): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconeOrientation = asInt(coneOrientation) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 226, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":227 + * def insertConeOrientation(self, p, conePos, coneOrientation): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) # <<<<<<<<<<<<<< + * cdef PetscInt cconeOrientation = asInt(coneOrientation) + * CHKERR( DMPlexInsertConeOrientation(self.dm, cp, cconePos, cconeOrientation) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_conePos); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 227, __pyx_L1_error) + __pyx_v_cconePos = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":228 + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconeOrientation = asInt(coneOrientation) # <<<<<<<<<<<<<< + * CHKERR( DMPlexInsertConeOrientation(self.dm, cp, cconePos, cconeOrientation) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_coneOrientation); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 228, __pyx_L1_error) + __pyx_v_cconeOrientation = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":229 + * cdef PetscInt cconePos = asInt(conePos) + * cdef PetscInt cconeOrientation = asInt(coneOrientation) + * CHKERR( DMPlexInsertConeOrientation(self.dm, cp, cconePos, cconeOrientation) ) # <<<<<<<<<<<<<< + * + * def getConeOrientation(self, p): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexInsertConeOrientation(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_cconePos, __pyx_v_cconeOrientation)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 229, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":225 + * CHKERR( DMPlexInsertCone(self.dm,cp,cconePos,cconePoint) ) + * + * def insertConeOrientation(self, p, conePos, coneOrientation): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt cconePos = asInt(conePos) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.insertConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":231 + * CHKERR( DMPlexInsertConeOrientation(self.dm, cp, cconePos, cconeOrientation) ) + * + * def getConeOrientation(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_39getConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_38getConeOrientation[] = "DMPlex.getConeOrientation(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_39getConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getConeOrientation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getConeOrientation") < 0)) __PYX_ERR(56, 231, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getConeOrientation", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 231, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_38getConeOrientation(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_38getConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_norie; + PetscInt const *__pyx_v_iorie; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getConeOrientation", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":232 + * + * def getConeOrientation(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 232, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":233 + * def getConeOrientation(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 234, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":235 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 235, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":236 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_norie))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 238, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":239 + * cdef const PetscInt *iorie = NULL + * CHKERR( DMPlexGetConeSize(self.dm, cp, &norie) ) + * CHKERR( DMPlexGetConeOrientation(self.dm, cp, &iorie) ) # <<<<<<<<<<<<<< + * return array_i(norie, iorie) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetConeOrientation(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, (&__pyx_v_iorie))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 239, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":240 + * CHKERR( DMPlexGetConeSize(self.dm, cp, &norie) ) + * CHKERR( DMPlexGetConeOrientation(self.dm, cp, &iorie) ) + * return array_i(norie, iorie) # <<<<<<<<<<<<<< + * + * def setConeOrientation(self, p, orientation): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_norie, __pyx_v_iorie)); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":231 + * CHKERR( DMPlexInsertConeOrientation(self.dm, cp, cconePos, cconeOrientation) ) + * + * def getConeOrientation(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":242 + * return array_i(norie, iorie) + * + * def setConeOrientation(self, p, orientation): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_41setConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_40setConeOrientation[] = "DMPlex.setConeOrientation(self, p, orientation)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_41setConeOrientation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_orientation = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setConeOrientation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_orientation,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_orientation)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setConeOrientation", 1, 2, 2, 1); __PYX_ERR(56, 242, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setConeOrientation") < 0)) __PYX_ERR(56, 242, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_p = values[0]; + __pyx_v_orientation = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setConeOrientation", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 242, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_40setConeOrientation(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_orientation); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_40setConeOrientation(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_orientation) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_ncone; + PetscInt __pyx_v_norie; + PetscInt *__pyx_v_iorie; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setConeOrientation", 0); + __Pyx_INCREF(__pyx_v_orientation); + + /* "petsc4py/PETSc/DMPlex.pyx":243 + * + * def setConeOrientation(self, p, orientation): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 243, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":244 + * def setConeOrientation(self, p, orientation): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 245, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":246 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 246, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":247 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_ncone))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 248, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":249 + * cdef PetscInt ncone = 0 + * CHKERR( DMPlexGetConeSize(self.dm, cp, &ncone) ) + * cdef PetscInt norie = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *iorie = NULL + * orientation = iarray_i(orientation, &norie, &iorie) + */ + __pyx_v_norie = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":250 + * CHKERR( DMPlexGetConeSize(self.dm, cp, &ncone) ) + * cdef PetscInt norie = 0 + * cdef PetscInt *iorie = NULL # <<<<<<<<<<<<<< + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone + */ + __pyx_v_iorie = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":251 + * cdef PetscInt norie = 0 + * cdef PetscInt *iorie = NULL + * orientation = iarray_i(orientation, &norie, &iorie) # <<<<<<<<<<<<<< + * assert norie == ncone + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_orientation, (&__pyx_v_norie), (&__pyx_v_iorie))); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_orientation, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":252 + * cdef PetscInt *iorie = NULL + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_norie == __pyx_v_ncone) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 252, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":253 + * orientation = iarray_i(orientation, &norie, &iorie) + * assert norie == ncone + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) # <<<<<<<<<<<<<< + * + * def setCellType(self, p, ctype): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetConeOrientation(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_iorie)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 253, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":242 + * return array_i(norie, iorie) + * + * def setConeOrientation(self, p, orientation): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setConeOrientation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_orientation); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":255 + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + * def setCellType(self, p, ctype): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType val = ctype + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_43setCellType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_42setCellType[] = "DMPlex.setCellType(self, p, ctype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_43setCellType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_ctype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCellType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_ctype,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ctype)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setCellType", 1, 2, 2, 1); __PYX_ERR(56, 255, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCellType") < 0)) __PYX_ERR(56, 255, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_p = values[0]; + __pyx_v_ctype = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCellType", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 255, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setCellType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_42setCellType(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_ctype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_42setCellType(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_ctype) { + PetscInt __pyx_v_cp; + DMPolytopeType __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + DMPolytopeType __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCellType", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":256 + * + * def setCellType(self, p, ctype): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscDMPolytopeType val = ctype + * CHKERR( DMPlexSetCellType(self.dm, cp, val) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 256, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":257 + * def setCellType(self, p, ctype): + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType val = ctype # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetCellType(self.dm, cp, val) ) + * + */ + __pyx_t_2 = ((DMPolytopeType)__Pyx_PyInt_As_DMPolytopeType(__pyx_v_ctype)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 257, __pyx_L1_error) + __pyx_v_val = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":258 + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType val = ctype + * CHKERR( DMPlexSetCellType(self.dm, cp, val) ) # <<<<<<<<<<<<<< + * + * def getCellType(self, p): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetCellType(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_val)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 258, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":255 + * CHKERR( DMPlexSetConeOrientation(self.dm, cp, iorie) ) + * + * def setCellType(self, p, ctype): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType val = ctype + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setCellType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":260 + * CHKERR( DMPlexSetCellType(self.dm, cp, val) ) + * + * def getCellType(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_45getCellType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_44getCellType[] = "DMPlex.getCellType(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_45getCellType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCellType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getCellType") < 0)) __PYX_ERR(56, 260, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getCellType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 260, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCellType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_44getCellType(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_44getCellType(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + DMPolytopeType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCellType", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":261 + * + * def getCellType(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN + * CHKERR( DMPlexGetCellType(self.dm, cp, &ctype) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 261, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":262 + * def getCellType(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetCellType(self.dm, cp, &ctype) ) + * return toInt(ctype) + */ + __pyx_v_ctype = DM_POLYTOPE_UNKNOWN; + + /* "petsc4py/PETSc/DMPlex.pyx":263 + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN + * CHKERR( DMPlexGetCellType(self.dm, cp, &ctype) ) # <<<<<<<<<<<<<< + * return toInt(ctype) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetCellType(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, (&__pyx_v_ctype))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 263, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":264 + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN + * CHKERR( DMPlexGetCellType(self.dm, cp, &ctype) ) + * return toInt(ctype) # <<<<<<<<<<<<<< + * + * def getCellTypeLabel(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ctype); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":260 + * CHKERR( DMPlexSetCellType(self.dm, cp, val) ) + * + * def getCellType(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscDMPolytopeType ctype = DM_POLYTOPE_UNKNOWN + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCellType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":266 + * return toInt(ctype) + * + * def getCellTypeLabel(self): # <<<<<<<<<<<<<< + * cdef DMLabel label = DMLabel() + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_47getCellTypeLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_46getCellTypeLabel[] = "DMPlex.getCellTypeLabel(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_47getCellTypeLabel(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCellTypeLabel (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCellTypeLabel", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCellTypeLabel", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_46getCellTypeLabel(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_46getCellTypeLabel(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscDMLabelObject *__pyx_v_label = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCellTypeLabel", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":267 + * + * def getCellTypeLabel(self): + * cdef DMLabel label = DMLabel() # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) + * PetscINCREF(label.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_label = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":268 + * def getCellTypeLabel(self): + * cdef DMLabel label = DMLabel() + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) # <<<<<<<<<<<<<< + * PetscINCREF(label.obj) + * return label + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetCellTypeLabel(__pyx_v_self->__pyx_base.dm, (&__pyx_v_label->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 268, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":269 + * cdef DMLabel label = DMLabel() + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) + * PetscINCREF(label.obj) # <<<<<<<<<<<<<< + * return label + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_label->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMPlex.pyx":270 + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) + * PetscINCREF(label.obj) + * return label # <<<<<<<<<<<<<< + * + * def getSupportSize(self, p): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_label)); + __pyx_r = ((PyObject *)__pyx_v_label); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":266 + * return toInt(ctype) + * + * def getCellTypeLabel(self): # <<<<<<<<<<<<<< + * cdef DMLabel label = DMLabel() + * CHKERR( DMPlexGetCellTypeLabel(self.dm, &label.dmlabel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCellTypeLabel", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_label); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":272 + * return label + * + * def getSupportSize(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_49getSupportSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_48getSupportSize[] = "DMPlex.getSupportSize(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_49getSupportSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSupportSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getSupportSize") < 0)) __PYX_ERR(56, 272, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getSupportSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 272, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getSupportSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_48getSupportSize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_48getSupportSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_ssize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSupportSize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":273 + * + * def getSupportSize(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 273, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":274 + * def getSupportSize(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":276 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 276, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":277 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_ssize))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 278, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":279 + * cdef PetscInt ssize = 0 + * CHKERR( DMPlexGetSupportSize(self.dm, cp, &ssize) ) + * return toInt(ssize) # <<<<<<<<<<<<<< + * + * def setSupportSize(self, p, size): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ssize); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 279, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":272 + * return label + * + * def getSupportSize(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getSupportSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":281 + * return toInt(ssize) + * + * def setSupportSize(self, p, size): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_51setSupportSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_50setSupportSize[] = "DMPlex.setSupportSize(self, p, size)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_51setSupportSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_size = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSupportSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_size,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_size)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setSupportSize", 1, 2, 2, 1); __PYX_ERR(56, 281, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSupportSize") < 0)) __PYX_ERR(56, 281, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_p = values[0]; + __pyx_v_size = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSupportSize", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 281, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setSupportSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_50setSupportSize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_size); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_50setSupportSize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_size) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_ssize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSupportSize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":282 + * + * def setSupportSize(self, p, size): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 282, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":283 + * def setSupportSize(self, p, size): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 284, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":285 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 285, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":286 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, __pyx_v_ssize)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 287, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":281 + * return toInt(ssize) + * + * def setSupportSize(self, p, size): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setSupportSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":289 + * CHKERR( DMPlexSetSupportSize(self.dm, cp, ssize) ) + * + * def getSupport(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_53getSupport(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_52getSupport[] = "DMPlex.getSupport(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_53getSupport(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSupport (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getSupport") < 0)) __PYX_ERR(56, 289, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getSupport", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 289, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getSupport", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_52getSupport(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_52getSupport(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_nsupp; + PetscInt const *__pyx_v_isupp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSupport", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":290 + * + * def getSupport(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 290, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":291 + * def getSupport(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 292, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":293 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 293, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":294 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, (&__pyx_v_nsupp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 296, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":297 + * cdef const PetscInt *isupp = NULL + * CHKERR( DMPlexGetSupportSize(self.dm, cp, &nsupp) ) + * CHKERR( DMPlexGetSupport(self.dm, cp, &isupp) ) # <<<<<<<<<<<<<< + * return array_i(nsupp, isupp) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetSupport(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, (&__pyx_v_isupp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 297, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":298 + * CHKERR( DMPlexGetSupportSize(self.dm, cp, &nsupp) ) + * CHKERR( DMPlexGetSupport(self.dm, cp, &isupp) ) + * return array_i(nsupp, isupp) # <<<<<<<<<<<<<< + * + * def setSupport(self, p, supp): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nsupp, __pyx_v_isupp)); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 298, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":289 + * CHKERR( DMPlexSetSupportSize(self.dm, cp, ssize) ) + * + * def getSupport(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getSupport", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":300 + * return array_i(nsupp, isupp) + * + * def setSupport(self, p, supp): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_55setSupport(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_54setSupport[] = "DMPlex.setSupport(self, p, supp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_55setSupport(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_supp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSupport (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_supp,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_supp)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setSupport", 1, 2, 2, 1); __PYX_ERR(56, 300, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSupport") < 0)) __PYX_ERR(56, 300, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_p = values[0]; + __pyx_v_supp = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSupport", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 300, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setSupport", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_54setSupport(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_supp); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_54setSupport(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_supp) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscInt __pyx_v_nsupp; + PetscInt *__pyx_v_isupp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSupport", 0); + __Pyx_INCREF(__pyx_v_supp); + + /* "petsc4py/PETSc/DMPlex.pyx":301 + * + * def setSupport(self, p, supp): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 301, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":302 + * def setSupport(self, p, supp): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 303, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":304 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 304, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":305 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, __pyx_v_nsupp)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 308, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":309 + * supp = iarray_i(supp, &nsupp, &isupp) + * CHKERR( DMPlexSetSupportSize(self.dm, cp, nsupp) ) + * CHKERR( DMPlexSetSupport(self.dm, cp, isupp) ) # <<<<<<<<<<<<<< + * + * def getMaxSizes(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetSupport(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_isupp)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 309, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":300 + * return array_i(nsupp, isupp) + * + * def setSupport(self, p, supp): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setSupport", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_supp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":311 + * CHKERR( DMPlexSetSupport(self.dm, cp, isupp) ) + * + * def getMaxSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt maxConeSize = 0, maxSupportSize = 0 + * CHKERR( DMPlexGetMaxSizes(self.dm, &maxConeSize, &maxSupportSize) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_57getMaxSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_56getMaxSizes[] = "DMPlex.getMaxSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_57getMaxSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMaxSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMaxSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMaxSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_56getMaxSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_56getMaxSizes(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscInt __pyx_v_maxConeSize; + PetscInt __pyx_v_maxSupportSize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMaxSizes", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":312 + * + * def getMaxSizes(self): + * cdef PetscInt maxConeSize = 0, maxSupportSize = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetMaxSizes(self.dm, &maxConeSize, &maxSupportSize) ) + * return toInt(maxConeSize), toInt(maxSupportSize) + */ + __pyx_v_maxConeSize = 0; + __pyx_v_maxSupportSize = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":313 + * def getMaxSizes(self): + * cdef PetscInt maxConeSize = 0, maxSupportSize = 0 + * CHKERR( DMPlexGetMaxSizes(self.dm, &maxConeSize, &maxSupportSize) ) # <<<<<<<<<<<<<< + * return toInt(maxConeSize), toInt(maxSupportSize) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetMaxSizes(__pyx_v_self->__pyx_base.dm, (&__pyx_v_maxConeSize), (&__pyx_v_maxSupportSize))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 313, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":314 + * cdef PetscInt maxConeSize = 0, maxSupportSize = 0 + * CHKERR( DMPlexGetMaxSizes(self.dm, &maxConeSize, &maxSupportSize) ) + * return toInt(maxConeSize), toInt(maxSupportSize) # <<<<<<<<<<<<<< + * + * def symmetrize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_maxConeSize); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_maxSupportSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":311 + * CHKERR( DMPlexSetSupport(self.dm, cp, isupp) ) + * + * def getMaxSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt maxConeSize = 0, maxSupportSize = 0 + * CHKERR( DMPlexGetMaxSizes(self.dm, &maxConeSize, &maxSupportSize) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getMaxSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":316 + * return toInt(maxConeSize), toInt(maxSupportSize) + * + * def symmetrize(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSymmetrize(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_59symmetrize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_58symmetrize[] = "DMPlex.symmetrize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_59symmetrize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("symmetrize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("symmetrize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "symmetrize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_58symmetrize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_58symmetrize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("symmetrize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":317 + * + * def symmetrize(self): + * CHKERR( DMPlexSymmetrize(self.dm) ) # <<<<<<<<<<<<<< + * + * def stratify(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSymmetrize(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 317, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":316 + * return toInt(maxConeSize), toInt(maxSupportSize) + * + * def symmetrize(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSymmetrize(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.symmetrize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":319 + * CHKERR( DMPlexSymmetrize(self.dm) ) + * + * def stratify(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexStratify(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_61stratify(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_60stratify[] = "DMPlex.stratify(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_61stratify(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stratify (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("stratify", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "stratify", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_60stratify(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_60stratify(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stratify", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":320 + * + * def stratify(self): + * CHKERR( DMPlexStratify(self.dm) ) # <<<<<<<<<<<<<< + * + * def orient(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexStratify(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 320, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":319 + * CHKERR( DMPlexSymmetrize(self.dm) ) + * + * def stratify(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexStratify(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.stratify", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":322 + * CHKERR( DMPlexStratify(self.dm) ) + * + * def orient(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexOrient(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_63orient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_62orient[] = "DMPlex.orient(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_63orient(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("orient (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("orient", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "orient", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_62orient(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_62orient(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("orient", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":323 + * + * def orient(self): + * CHKERR( DMPlexOrient(self.dm) ) # <<<<<<<<<<<<<< + * + * def getCellNumbering(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexOrient(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 323, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":322 + * CHKERR( DMPlexStratify(self.dm) ) + * + * def orient(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexOrient(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.orient", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":325 + * CHKERR( DMPlexOrient(self.dm) ) + * + * def getCellNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_65getCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_64getCellNumbering[] = "DMPlex.getCellNumbering(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_65getCellNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCellNumbering (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCellNumbering", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCellNumbering", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_64getCellNumbering(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_64getCellNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCellNumbering", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":326 + * + * def getCellNumbering(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":327 + * def getCellNumbering(self): + * cdef IS iset = IS() + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) # <<<<<<<<<<<<<< + * PetscINCREF(iset.obj) + * return iset + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetCellNumbering(__pyx_v_self->__pyx_base.dm, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 327, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":328 + * cdef IS iset = IS() + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) # <<<<<<<<<<<<<< + * return iset + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_iset->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMPlex.pyx":329 + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) + * return iset # <<<<<<<<<<<<<< + * + * def getVertexNumbering(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":325 + * CHKERR( DMPlexOrient(self.dm) ) + * + * def getCellNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexGetCellNumbering(self.dm, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getCellNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":331 + * return iset + * + * def getVertexNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_67getVertexNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_66getVertexNumbering[] = "DMPlex.getVertexNumbering(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_67getVertexNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVertexNumbering (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVertexNumbering", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVertexNumbering", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_66getVertexNumbering(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_66getVertexNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVertexNumbering", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":332 + * + * def getVertexNumbering(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":333 + * def getVertexNumbering(self): + * cdef IS iset = IS() + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) # <<<<<<<<<<<<<< + * PetscINCREF(iset.obj) + * return iset + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetVertexNumbering(__pyx_v_self->__pyx_base.dm, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 333, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":334 + * cdef IS iset = IS() + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) # <<<<<<<<<<<<<< + * return iset + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_iset->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMPlex.pyx":335 + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) + * PetscINCREF(iset.obj) + * return iset # <<<<<<<<<<<<<< + * + * def createPointNumbering(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":331 + * return iset + * + * def getVertexNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexGetVertexNumbering(self.dm, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getVertexNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":337 + * return iset + * + * def createPointNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexCreatePointNumbering(self.dm, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_69createPointNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_68createPointNumbering[] = "DMPlex.createPointNumbering(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_69createPointNumbering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createPointNumbering (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createPointNumbering", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createPointNumbering", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_68createPointNumbering(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_68createPointNumbering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createPointNumbering", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":338 + * + * def createPointNumbering(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreatePointNumbering(self.dm, &iset.iset) ) + * return iset + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":339 + * def createPointNumbering(self): + * cdef IS iset = IS() + * CHKERR( DMPlexCreatePointNumbering(self.dm, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreatePointNumbering(__pyx_v_self->__pyx_base.dm, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 339, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":340 + * cdef IS iset = IS() + * CHKERR( DMPlexCreatePointNumbering(self.dm, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def getDepth(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":337 + * return iset + * + * def createPointNumbering(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMPlexCreatePointNumbering(self.dm, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createPointNumbering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":342 + * return iset + * + * def getDepth(self): # <<<<<<<<<<<<<< + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetDepth(self.dm,&depth) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_71getDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_70getDepth[] = "DMPlex.getDepth(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_71getDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDepth (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDepth", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDepth", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_70getDepth(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_70getDepth(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscInt __pyx_v_depth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDepth", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":343 + * + * def getDepth(self): + * cdef PetscInt depth = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetDepth(self.dm,&depth) ) + * return toInt(depth) + */ + __pyx_v_depth = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":344 + * def getDepth(self): + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetDepth(self.dm,&depth) ) # <<<<<<<<<<<<<< + * return toInt(depth) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetDepth(__pyx_v_self->__pyx_base.dm, (&__pyx_v_depth))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 344, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":345 + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetDepth(self.dm,&depth) ) + * return toInt(depth) # <<<<<<<<<<<<<< + * + * def getDepthStratum(self, svalue): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_depth); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":342 + * return iset + * + * def getDepth(self): # <<<<<<<<<<<<<< + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetDepth(self.dm,&depth) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getDepth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":347 + * return toInt(depth) + * + * def getDepthStratum(self, svalue): # <<<<<<<<<<<<<< + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetDepthStratum(self.dm, csvalue, &sStart, &sEnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_73getDepthStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_72getDepthStratum[] = "DMPlex.getDepthStratum(self, svalue)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_73getDepthStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_svalue = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDepthStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_svalue,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_svalue)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getDepthStratum") < 0)) __PYX_ERR(56, 347, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_svalue = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getDepthStratum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 347, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getDepthStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_72getDepthStratum(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_svalue); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_72getDepthStratum(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_svalue) { + PetscInt __pyx_v_csvalue; + PetscInt __pyx_v_sStart; + PetscInt __pyx_v_sEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDepthStratum", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":348 + * + * def getDepthStratum(self, svalue): + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetDepthStratum(self.dm, csvalue, &sStart, &sEnd) ) + * return (toInt(sStart), toInt(sEnd)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_svalue); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 348, __pyx_L1_error) + __pyx_v_csvalue = __pyx_t_1; + __pyx_v_sStart = 0; + __pyx_v_sEnd = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":349 + * def getDepthStratum(self, svalue): + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetDepthStratum(self.dm, csvalue, &sStart, &sEnd) ) # <<<<<<<<<<<<<< + * return (toInt(sStart), toInt(sEnd)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetDepthStratum(__pyx_v_self->__pyx_base.dm, __pyx_v_csvalue, (&__pyx_v_sStart), (&__pyx_v_sEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 349, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":350 + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetDepthStratum(self.dm, csvalue, &sStart, &sEnd) ) + * return (toInt(sStart), toInt(sEnd)) # <<<<<<<<<<<<<< + * + * def getHeightStratum(self, svalue): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_sStart); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_sEnd); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":347 + * return toInt(depth) + * + * def getDepthStratum(self, svalue): # <<<<<<<<<<<<<< + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetDepthStratum(self.dm, csvalue, &sStart, &sEnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getDepthStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":352 + * return (toInt(sStart), toInt(sEnd)) + * + * def getHeightStratum(self, svalue): # <<<<<<<<<<<<<< + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetHeightStratum(self.dm, csvalue, &sStart, &sEnd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_75getHeightStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_74getHeightStratum[] = "DMPlex.getHeightStratum(self, svalue)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_75getHeightStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_svalue = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getHeightStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_svalue,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_svalue)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getHeightStratum") < 0)) __PYX_ERR(56, 352, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_svalue = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getHeightStratum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 352, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getHeightStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_74getHeightStratum(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_svalue); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_74getHeightStratum(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_svalue) { + PetscInt __pyx_v_csvalue; + PetscInt __pyx_v_sStart; + PetscInt __pyx_v_sEnd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getHeightStratum", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":353 + * + * def getHeightStratum(self, svalue): + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetHeightStratum(self.dm, csvalue, &sStart, &sEnd) ) + * return (toInt(sStart), toInt(sEnd)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_svalue); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 353, __pyx_L1_error) + __pyx_v_csvalue = __pyx_t_1; + __pyx_v_sStart = 0; + __pyx_v_sEnd = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":354 + * def getHeightStratum(self, svalue): + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetHeightStratum(self.dm, csvalue, &sStart, &sEnd) ) # <<<<<<<<<<<<<< + * return (toInt(sStart), toInt(sEnd)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetHeightStratum(__pyx_v_self->__pyx_base.dm, __pyx_v_csvalue, (&__pyx_v_sStart), (&__pyx_v_sEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 354, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":355 + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetHeightStratum(self.dm, csvalue, &sStart, &sEnd) ) + * return (toInt(sStart), toInt(sEnd)) # <<<<<<<<<<<<<< + * + * def getPointDepth(self,point): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_sStart); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_sEnd); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":352 + * return (toInt(sStart), toInt(sEnd)) + * + * def getHeightStratum(self, svalue): # <<<<<<<<<<<<<< + * cdef PetscInt csvalue = asInt(svalue), sStart = 0, sEnd = 0 + * CHKERR( DMPlexGetHeightStratum(self.dm, csvalue, &sStart, &sEnd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getHeightStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":357 + * return (toInt(sStart), toInt(sEnd)) + * + * def getPointDepth(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetPointDepth(self.dm, point, &depth) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_77getPointDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_76getPointDepth[] = "DMPlex.getPointDepth(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_77getPointDepth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointDepth (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointDepth") < 0)) __PYX_ERR(56, 357, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointDepth", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 357, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointDepth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_76getPointDepth(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_76getPointDepth(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_depth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointDepth", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":358 + * + * def getPointDepth(self,point): + * cdef PetscInt depth = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointDepth(self.dm, point, &depth) ) + * return toInt(depth) + */ + __pyx_v_depth = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":359 + * def getPointDepth(self,point): + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetPointDepth(self.dm, point, &depth) ) # <<<<<<<<<<<<<< + * return toInt(depth) + * + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_point); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 359, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointDepth(__pyx_v_self->__pyx_base.dm, __pyx_t_1, (&__pyx_v_depth))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 359, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":360 + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetPointDepth(self.dm, point, &depth) ) + * return toInt(depth) # <<<<<<<<<<<<<< + * + * def getPointHeight(self,point): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_depth); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":357 + * return (toInt(sStart), toInt(sEnd)) + * + * def getPointDepth(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt depth = 0 + * CHKERR( DMPlexGetPointDepth(self.dm, point, &depth) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointDepth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":362 + * return toInt(depth) + * + * def getPointHeight(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt height = 0 + * CHKERR( DMPlexGetPointHeight(self.dm, point, &height) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_79getPointHeight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_78getPointHeight[] = "DMPlex.getPointHeight(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_79getPointHeight(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointHeight (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointHeight") < 0)) __PYX_ERR(56, 362, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointHeight", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 362, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointHeight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_78getPointHeight(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_78getPointHeight(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_height; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointHeight", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":363 + * + * def getPointHeight(self,point): + * cdef PetscInt height = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointHeight(self.dm, point, &height) ) + * return toInt(height) + */ + __pyx_v_height = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":364 + * def getPointHeight(self,point): + * cdef PetscInt height = 0 + * CHKERR( DMPlexGetPointHeight(self.dm, point, &height) ) # <<<<<<<<<<<<<< + * return toInt(height) + * + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_point); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 364, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointHeight(__pyx_v_self->__pyx_base.dm, __pyx_t_1, (&__pyx_v_height))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 364, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":365 + * cdef PetscInt height = 0 + * CHKERR( DMPlexGetPointHeight(self.dm, point, &height) ) + * return toInt(height) # <<<<<<<<<<<<<< + * + * def getMeet(self, points): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_height); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":362 + * return toInt(depth) + * + * def getPointHeight(self,point): # <<<<<<<<<<<<<< + * cdef PetscInt height = 0 + * CHKERR( DMPlexGetPointHeight(self.dm, point, &height) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointHeight", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":367 + * return toInt(height) + * + * def getMeet(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_81getMeet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_80getMeet[] = "DMPlex.getMeet(self, points)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_81getMeet(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_points = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMeet (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getMeet") < 0)) __PYX_ERR(56, 367, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_points = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getMeet", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 367, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getMeet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_80getMeet(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_points); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_80getMeet(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points) { + PetscInt __pyx_v_numPoints; + PetscInt *__pyx_v_ipoints; + PetscInt __pyx_v_numCoveringPoints; + PetscInt const *__pyx_v_coveringPoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMeet", 0); + __Pyx_INCREF(__pyx_v_points); + + /* "petsc4py/PETSc/DMPlex.pyx":368 + * + * def getMeet(self, points): + * cdef PetscInt numPoints = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + */ + __pyx_v_numPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":369 + * def getMeet(self, points): + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + */ + __pyx_v_ipoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":370 + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + */ + __pyx_v_numCoveringPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":371 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL # <<<<<<<<<<<<<< + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __pyx_v_coveringPoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":372 + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_points, (&__pyx_v_numPoints), (&__pyx_v_ipoints))); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_points, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":373 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * try: + * return array_i(numCoveringPoints, coveringPoints) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetMeet(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 373, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":374 + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: # <<<<<<<<<<<<<< + * return array_i(numCoveringPoints, coveringPoints) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":375 + * CHKERR( DMPlexGetMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + * return array_i(numCoveringPoints, coveringPoints) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexRestoreMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_numCoveringPoints, __pyx_v_coveringPoints)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 375, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L3_return; + } + + /* "petsc4py/PETSc/DMPlex.pyx":377 + * return array_i(numCoveringPoints, coveringPoints) + * finally: + * CHKERR( DMPlexRestoreMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * + * def getJoin(self, points): + */ + /*finally:*/ { + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreMeet(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 377, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L3_return: { + __pyx_t_11 = __pyx_r; + __pyx_r = 0; + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreMeet(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 377, __pyx_L1_error) + __pyx_r = __pyx_t_11; + __pyx_t_11 = 0; + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/DMPlex.pyx":367 + * return toInt(height) + * + * def getMeet(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getMeet", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_points); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":379 + * CHKERR( DMPlexRestoreMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getJoin(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_83getJoin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_82getJoin[] = "DMPlex.getJoin(self, points)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_83getJoin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_points = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getJoin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getJoin") < 0)) __PYX_ERR(56, 379, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_points = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getJoin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 379, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getJoin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_82getJoin(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_points); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_82getJoin(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points) { + PetscInt __pyx_v_numPoints; + PetscInt *__pyx_v_ipoints; + PetscInt __pyx_v_numCoveringPoints; + PetscInt const *__pyx_v_coveringPoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getJoin", 0); + __Pyx_INCREF(__pyx_v_points); + + /* "petsc4py/PETSc/DMPlex.pyx":380 + * + * def getJoin(self, points): + * cdef PetscInt numPoints = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + */ + __pyx_v_numPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":381 + * def getJoin(self, points): + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + */ + __pyx_v_ipoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":382 + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + */ + __pyx_v_numCoveringPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":383 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL # <<<<<<<<<<<<<< + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __pyx_v_coveringPoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":384 + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_points, (&__pyx_v_numPoints), (&__pyx_v_ipoints))); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_points, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":385 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * try: + * return array_i(numCoveringPoints, coveringPoints) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 385, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":386 + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: # <<<<<<<<<<<<<< + * return array_i(numCoveringPoints, coveringPoints) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":387 + * CHKERR( DMPlexGetJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + * return array_i(numCoveringPoints, coveringPoints) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_numCoveringPoints, __pyx_v_coveringPoints)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 387, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L3_return; + } + + /* "petsc4py/PETSc/DMPlex.pyx":389 + * return array_i(numCoveringPoints, coveringPoints) + * finally: + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * + * def getFullJoin(self, points): + */ + /*finally:*/ { + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 389, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L3_return: { + __pyx_t_11 = __pyx_r; + __pyx_r = 0; + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 389, __pyx_L1_error) + __pyx_r = __pyx_t_11; + __pyx_t_11 = 0; + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/DMPlex.pyx":379 + * CHKERR( DMPlexRestoreMeet(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getJoin(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getJoin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_points); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":391 + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getFullJoin(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_85getFullJoin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_84getFullJoin[] = "DMPlex.getFullJoin(self, points)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_85getFullJoin(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_points = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFullJoin (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_points,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFullJoin") < 0)) __PYX_ERR(56, 391, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_points = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFullJoin", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 391, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getFullJoin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_84getFullJoin(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_points); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_84getFullJoin(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_points) { + PetscInt __pyx_v_numPoints; + PetscInt *__pyx_v_ipoints; + PetscInt __pyx_v_numCoveringPoints; + PetscInt const *__pyx_v_coveringPoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + char const *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFullJoin", 0); + __Pyx_INCREF(__pyx_v_points); + + /* "petsc4py/PETSc/DMPlex.pyx":392 + * + * def getFullJoin(self, points): + * cdef PetscInt numPoints = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + */ + __pyx_v_numPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":393 + * def getFullJoin(self, points): + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + */ + __pyx_v_ipoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":394 + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 # <<<<<<<<<<<<<< + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + */ + __pyx_v_numCoveringPoints = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":395 + * cdef PetscInt *ipoints = NULL + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL # <<<<<<<<<<<<<< + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetFullJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __pyx_v_coveringPoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":396 + * cdef PetscInt numCoveringPoints = 0 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetFullJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_points, (&__pyx_v_numPoints), (&__pyx_v_ipoints))); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_points, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":397 + * cdef const PetscInt *coveringPoints = NULL + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetFullJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * try: + * return array_i(numCoveringPoints, coveringPoints) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetFullJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 397, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":398 + * points = iarray_i(points, &numPoints, &ipoints) + * CHKERR( DMPlexGetFullJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: # <<<<<<<<<<<<<< + * return array_i(numCoveringPoints, coveringPoints) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":399 + * CHKERR( DMPlexGetFullJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * try: + * return array_i(numCoveringPoints, coveringPoints) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_numCoveringPoints, __pyx_v_coveringPoints)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 399, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L3_return; + } + + /* "petsc4py/PETSc/DMPlex.pyx":401 + * return array_i(numCoveringPoints, coveringPoints) + * finally: + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) # <<<<<<<<<<<<<< + * + * def getTransitiveClosure(self, p, useCone=True): + */ + /*finally:*/ { + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0)) __Pyx_ErrFetch(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __pyx_t_3 = __pyx_lineno; __pyx_t_4 = __pyx_clineno; __pyx_t_5 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 401, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_ErrRestore(__pyx_t_6, __pyx_t_7, __pyx_t_8); + __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + __pyx_lineno = __pyx_t_3; __pyx_clineno = __pyx_t_4; __pyx_filename = __pyx_t_5; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11); + } + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; + goto __pyx_L1_error; + } + __pyx_L3_return: { + __pyx_t_11 = __pyx_r; + __pyx_r = 0; + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreJoin(__pyx_v_self->__pyx_base.dm, __pyx_v_numPoints, __pyx_v_ipoints, (&__pyx_v_numCoveringPoints), (&__pyx_v_coveringPoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 401, __pyx_L1_error) + __pyx_r = __pyx_t_11; + __pyx_t_11 = 0; + goto __pyx_L0; + } + } + + /* "petsc4py/PETSc/DMPlex.pyx":391 + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getFullJoin(self, points): # <<<<<<<<<<<<<< + * cdef PetscInt numPoints = 0 + * cdef PetscInt *ipoints = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getFullJoin", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_points); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":403 + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getTransitiveClosure(self, p, useCone=True): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_87getTransitiveClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_86getTransitiveClosure[] = "DMPlex.getTransitiveClosure(self, p, useCone=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_87getTransitiveClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + PyObject *__pyx_v_useCone = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTransitiveClosure (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,&__pyx_n_s_useCone,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useCone); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getTransitiveClosure") < 0)) __PYX_ERR(56, 403, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_p = values[0]; + __pyx_v_useCone = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getTransitiveClosure", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 403, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getTransitiveClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_86getTransitiveClosure(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p, __pyx_v_useCone); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_86getTransitiveClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p, PyObject *__pyx_v_useCone) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_pStart; + PetscInt __pyx_v_pEnd; + PetscBool __pyx_v_cuseCone; + PetscInt __pyx_v_numPoints; + PetscInt *__pyx_v_points; + PyArrayObject *__pyx_v_out = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + PetscBool __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + int __pyx_t_8; + char const *__pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTransitiveClosure", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":404 + * + * def getTransitiveClosure(self, p, useCone=True): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 404, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":405 + * def getTransitiveClosure(self, p, useCone=True): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, (&__pyx_v_pStart), (&__pyx_v_pEnd))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 406, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":407 + * cdef PetscInt pStart = 0, pEnd = 0 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp= __pyx_v_pStart) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_3 = __pyx_t_4; + goto __pyx_L3_bool_binop_done; + } + __pyx_t_4 = ((__pyx_v_cp < __pyx_v_pEnd) != 0); + __pyx_t_3 = __pyx_t_4; + __pyx_L3_bool_binop_done:; + if (unlikely(!__pyx_t_3)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 407, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":408 + * CHKERR( DMPlexGetChart(self.dm, &pStart, &pEnd) ) + * assert cp>=pStart and cp=pStart and cp__pyx_base.dm, __pyx_v_cp, __pyx_v_cuseCone, (&__pyx_v_numPoints), (&__pyx_v_points))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 411, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":412 + * cdef PetscInt *points = NULL + * CHKERR( DMPlexGetTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) + * try: # <<<<<<<<<<<<<< + * out = array_i(2*numPoints,points) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":413 + * CHKERR( DMPlexGetTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) + * try: + * out = array_i(2*numPoints,points) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexRestoreTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((2 * __pyx_v_numPoints), __pyx_v_points)); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 413, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_out = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":415 + * out = array_i(2*numPoints,points) + * finally: + * CHKERR( DMPlexRestoreTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) # <<<<<<<<<<<<<< + * return out[::2],out[1::2] + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreTransitiveClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_cuseCone, (&__pyx_v_numPoints), (&__pyx_v_points))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 415, __pyx_L1_error) + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_13, &__pyx_t_14, &__pyx_t_15); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12) < 0)) __Pyx_ErrFetch(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __Pyx_XGOTREF(__pyx_t_15); + __pyx_t_7 = __pyx_lineno; __pyx_t_8 = __pyx_clineno; __pyx_t_9 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRestoreTransitiveClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, __pyx_v_cuseCone, (&__pyx_v_numPoints), (&__pyx_v_points))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 415, __pyx_L9_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + } + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ErrRestore(__pyx_t_10, __pyx_t_11, __pyx_t_12); + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + __pyx_lineno = __pyx_t_7; __pyx_clineno = __pyx_t_8; __pyx_filename = __pyx_t_9; + goto __pyx_L1_error; + __pyx_L9_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_XGIVEREF(__pyx_t_15); + __Pyx_ExceptionReset(__pyx_t_13, __pyx_t_14, __pyx_t_15); + } + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_13 = 0; __pyx_t_14 = 0; __pyx_t_15 = 0; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "petsc4py/PETSc/DMPlex.pyx":416 + * finally: + * CHKERR( DMPlexRestoreTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) + * return out[::2],out[1::2] # <<<<<<<<<<<<<< + * + * def vecGetClosure(self, Section sec, Vec vec, p): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_6 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_out), __pyx_slice__50); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_16 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_out), __pyx_slice__51); if (unlikely(!__pyx_t_16)) __PYX_ERR(56, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_17 = PyTuple_New(2); if (unlikely(!__pyx_t_17)) __PYX_ERR(56, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_16); + __pyx_t_6 = 0; + __pyx_t_16 = 0; + __pyx_r = __pyx_t_17; + __pyx_t_17 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":403 + * CHKERR( DMPlexRestoreJoin(self.dm, numPoints, ipoints, &numCoveringPoints, &coveringPoints) ) + * + * def getTransitiveClosure(self, p, useCone=True): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt pStart = 0, pEnd = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getTransitiveClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_out); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":418 + * return out[::2],out[1::2] + * + * def vecGetClosure(self, Section sec, Vec vec, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p), csize = 0 + * cdef PetscScalar *cvals = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_89vecGetClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_88vecGetClosure[] = "DMPlex.vecGetClosure(self, Section sec, Vec vec, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_89vecGetClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("vecGetClosure (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,&__pyx_n_s_vec,&__pyx_n_s_p,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("vecGetClosure", 1, 3, 3, 1); __PYX_ERR(56, 418, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("vecGetClosure", 1, 3, 3, 2); __PYX_ERR(56, 418, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "vecGetClosure") < 0)) __PYX_ERR(56, 418, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_p = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("vecGetClosure", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 418, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.vecGetClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(56, 418, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 418, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_88vecGetClosure(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sec, __pyx_v_vec, __pyx_v_p); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_88vecGetClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_csize; + PetscScalar *__pyx_v_cvals; + PyArrayObject *__pyx_v_closure = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vecGetClosure", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":419 + * + * def vecGetClosure(self, Section sec, Vec vec, p): + * cdef PetscInt cp = asInt(p), csize = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 419, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + __pyx_v_csize = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":420 + * def vecGetClosure(self, Section sec, Vec vec, p): + * cdef PetscInt cp = asInt(p), csize = 0 + * cdef PetscScalar *cvals = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexVecGetClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + * try: + */ + __pyx_v_cvals = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":421 + * cdef PetscInt cp = asInt(p), csize = 0 + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) # <<<<<<<<<<<<<< + * try: + * closure = array_s(csize, cvals) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecGetClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_sec->sec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 421, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":422 + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + * try: # <<<<<<<<<<<<<< + * closure = array_s(csize, cvals) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":423 + * CHKERR( DMPlexVecGetClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + * try: + * closure = array_s(csize, cvals) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_s(__pyx_v_csize, __pyx_v_cvals)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 423, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_closure = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":425 + * closure = array_s(csize, cvals) + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) # <<<<<<<<<<<<<< + * return closure + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecRestoreClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_sec->sec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 425, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecRestoreClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_sec->sec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 425, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/DMPlex.pyx":426 + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, sec.sec, vec.vec, cp, &csize, &cvals) ) + * return closure # <<<<<<<<<<<<<< + * + * def getVecClosure(self, Section sec or None, Vec vec, point): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_closure)); + __pyx_r = ((PyObject *)__pyx_v_closure); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":418 + * return out[::2],out[1::2] + * + * def vecGetClosure(self, Section sec, Vec vec, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p), csize = 0 + * cdef PetscScalar *cvals = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.vecGetClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_closure); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":428 + * return closure + * + * def getVecClosure(self, Section sec or None, Vec vec, point): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point), csize = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_91getVecClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_90getVecClosure[] = "DMPlex.getVecClosure(self, Section sec, Vec vec, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_91getVecClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVecClosure (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,&__pyx_n_s_vec,&__pyx_n_s_point,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getVecClosure", 1, 3, 3, 1); __PYX_ERR(56, 428, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getVecClosure", 1, 3, 3, 2); __PYX_ERR(56, 428, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getVecClosure") < 0)) __PYX_ERR(56, 428, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_point = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getVecClosure", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 428, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getVecClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "sec", 0))) __PYX_ERR(56, 428, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 428, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_90getVecClosure(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sec, __pyx_v_vec, __pyx_v_point); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_90getVecClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_point) { + PetscSection __pyx_v_csec; + PetscInt __pyx_v_cp; + PetscInt __pyx_v_csize; + PetscScalar *__pyx_v_cvals; + PyArrayObject *__pyx_v_closure = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscSection __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVecClosure", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":429 + * + * def getVecClosure(self, Section sec or None, Vec vec, point): + * cdef PetscSection csec = sec.sec if sec is not None else NULL # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(point), csize = 0 + * cdef PetscScalar *cvals = NULL + */ + __pyx_t_2 = (((PyObject *)__pyx_v_sec) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = __pyx_v_sec->sec; + } else { + __pyx_t_1 = NULL; + } + __pyx_v_csec = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":430 + * def getVecClosure(self, Section sec or None, Vec vec, point): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point), csize = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 430, __pyx_L1_error) + __pyx_v_cp = __pyx_t_3; + __pyx_v_csize = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":431 + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point), csize = 0 + * cdef PetscScalar *cvals = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexVecGetClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + * try: + */ + __pyx_v_cvals = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":432 + * cdef PetscInt cp = asInt(point), csize = 0 + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) # <<<<<<<<<<<<<< + * try: + * closure = array_s(csize, cvals) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecGetClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_csec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 432, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":433 + * cdef PetscScalar *cvals = NULL + * CHKERR( DMPlexVecGetClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + * try: # <<<<<<<<<<<<<< + * closure = array_s(csize, cvals) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":434 + * CHKERR( DMPlexVecGetClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + * try: + * closure = array_s(csize, cvals) # <<<<<<<<<<<<<< + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_s(__pyx_v_csize, __pyx_v_cvals)); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 434, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_closure = ((PyArrayObject *)__pyx_t_5); + __pyx_t_5 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":436 + * closure = array_s(csize, cvals) + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) # <<<<<<<<<<<<<< + * return closure + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecRestoreClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_csec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 436, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecRestoreClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_csec, __pyx_v_vec->vec, __pyx_v_cp, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 436, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/DMPlex.pyx":437 + * finally: + * CHKERR( DMPlexVecRestoreClosure(self.dm, csec, vec.vec, cp, &csize, &cvals) ) + * return closure # <<<<<<<<<<<<<< + * + * def setVecClosure(self, Section sec or None, Vec vec, point, values, addv=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_closure)); + __pyx_r = ((PyObject *)__pyx_v_closure); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":428 + * return closure + * + * def getVecClosure(self, Section sec or None, Vec vec, point): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point), csize = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getVecClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_closure); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":439 + * return closure + * + * def setVecClosure(self, Section sec or None, Vec vec, point, values, addv=None): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_93setVecClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_92setVecClosure[] = "DMPlex.setVecClosure(self, Section sec, Vec vec, point, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_93setVecClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setVecClosure (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,&__pyx_n_s_vec,&__pyx_n_s_point,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[4] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setVecClosure", 0, 4, 5, 1); __PYX_ERR(56, 439, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setVecClosure", 0, 4, 5, 2); __PYX_ERR(56, 439, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setVecClosure", 0, 4, 5, 3); __PYX_ERR(56, 439, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setVecClosure") < 0)) __PYX_ERR(56, 439, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[1]); + __pyx_v_point = values[2]; + __pyx_v_values = values[3]; + __pyx_v_addv = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setVecClosure", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 439, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setVecClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "sec", 0))) __PYX_ERR(56, 439, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 439, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_92setVecClosure(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sec, __pyx_v_vec, __pyx_v_point, __pyx_v_values, __pyx_v_addv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_92setVecClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_point, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PetscSection __pyx_v_csec; + PetscInt __pyx_v_cp; + PetscInt __pyx_v_csize; + PetscScalar *__pyx_v_cvals; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscSection __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + InsertMode __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setVecClosure", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":440 + * + * def setVecClosure(self, Section sec or None, Vec vec, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 + */ + __pyx_t_2 = (((PyObject *)__pyx_v_sec) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = __pyx_v_sec->sec; + } else { + __pyx_t_1 = NULL; + } + __pyx_v_csec = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":441 + * def setVecClosure(self, Section sec or None, Vec vec, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 441, __pyx_L1_error) + __pyx_v_cp = __pyx_t_3; + + /* "petsc4py/PETSc/DMPlex.pyx":442 + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) + */ + __pyx_v_csize = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":443 + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL # <<<<<<<<<<<<<< + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) + */ + __pyx_v_cvals = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":444 + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_values, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 444, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tmp = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":445 + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_5 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(56, 445, __pyx_L1_error) + __pyx_v_im = __pyx_t_5; + + /* "petsc4py/PETSc/DMPlex.pyx":446 + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) # <<<<<<<<<<<<<< + * + * def setMatClosure(self, Section sec or None, Section gsec or None, + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexVecSetClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_csec, __pyx_v_vec->vec, __pyx_v_cp, __pyx_v_cvals, __pyx_v_im)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 446, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":439 + * return closure + * + * def setVecClosure(self, Section sec or None, Vec vec, point, values, addv=None): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscInt cp = asInt(point) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setVecClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":448 + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) + * + * def setMatClosure(self, Section sec or None, Section gsec or None, # <<<<<<<<<<<<<< + * Mat mat, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_95setMatClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_94setMatClosure[] = "DMPlex.setMatClosure(self, Section sec, Section gsec, Mat mat, point, values, addv=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_95setMatClosure(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + struct PyPetscSectionObject *__pyx_v_gsec = 0; + struct PyPetscMatObject *__pyx_v_mat = 0; + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_values = 0; + PyObject *__pyx_v_addv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMatClosure (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,&__pyx_n_s_gsec,&__pyx_n_s_mat,&__pyx_n_s_point,&__pyx_n_s_values,&__pyx_n_s_addv,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + + /* "petsc4py/PETSc/DMPlex.pyx":449 + * + * def setMatClosure(self, Section sec or None, Section gsec or None, + * Mat mat, point, values, addv=None): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscSection cgsec = gsec.sec if gsec is not None else NULL + */ + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gsec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMatClosure", 0, 5, 6, 1); __PYX_ERR(56, 448, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMatClosure", 0, 5, 6, 2); __PYX_ERR(56, 448, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMatClosure", 0, 5, 6, 3); __PYX_ERR(56, 448, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_values)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setMatClosure", 0, 5, 6, 4); __PYX_ERR(56, 448, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_addv); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMatClosure") < 0)) __PYX_ERR(56, 448, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + __pyx_v_gsec = ((struct PyPetscSectionObject *)values[1]); + __pyx_v_mat = ((struct PyPetscMatObject *)values[2]); + __pyx_v_point = values[3]; + __pyx_v_values = values[4]; + __pyx_v_addv = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMatClosure", 0, 5, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 448, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setMatClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "sec", 0))) __PYX_ERR(56, 448, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gsec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "gsec", 0))) __PYX_ERR(56, 448, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(56, 449, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_94setMatClosure(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sec, __pyx_v_gsec, __pyx_v_mat, __pyx_v_point, __pyx_v_values, __pyx_v_addv); + + /* "petsc4py/PETSc/DMPlex.pyx":448 + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) + * + * def setMatClosure(self, Section sec or None, Section gsec or None, # <<<<<<<<<<<<<< + * Mat mat, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_94setMatClosure(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscSectionObject *__pyx_v_gsec, struct PyPetscMatObject *__pyx_v_mat, PyObject *__pyx_v_point, PyObject *__pyx_v_values, PyObject *__pyx_v_addv) { + PetscSection __pyx_v_csec; + PetscSection __pyx_v_cgsec; + PetscInt __pyx_v_cp; + PetscInt __pyx_v_csize; + PetscScalar *__pyx_v_cvals; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + InsertMode __pyx_v_im; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscSection __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + InsertMode __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMatClosure", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":450 + * def setMatClosure(self, Section sec or None, Section gsec or None, + * Mat mat, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL # <<<<<<<<<<<<<< + * cdef PetscSection cgsec = gsec.sec if gsec is not None else NULL + * cdef PetscInt cp = asInt(point) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_sec) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = __pyx_v_sec->sec; + } else { + __pyx_t_1 = NULL; + } + __pyx_v_csec = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":451 + * Mat mat, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscSection cgsec = gsec.sec if gsec is not None else NULL # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 + */ + __pyx_t_2 = (((PyObject *)__pyx_v_gsec) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = __pyx_v_gsec->sec; + } else { + __pyx_t_1 = NULL; + } + __pyx_v_cgsec = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":452 + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * cdef PetscSection cgsec = gsec.sec if gsec is not None else NULL + * cdef PetscInt cp = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 452, __pyx_L1_error) + __pyx_v_cp = __pyx_t_3; + + /* "petsc4py/PETSc/DMPlex.pyx":453 + * cdef PetscSection cgsec = gsec.sec if gsec is not None else NULL + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 # <<<<<<<<<<<<<< + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) + */ + __pyx_v_csize = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":454 + * cdef PetscInt cp = asInt(point) + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL # <<<<<<<<<<<<<< + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) + */ + __pyx_v_cvals = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":455 + * cdef PetscInt csize = 0 + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) # <<<<<<<<<<<<<< + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMPlexMatSetClosure(self.dm, csec, cgsec, mat.mat, cp, cvals, im) ) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_s(__pyx_v_values, (&__pyx_v_csize), (&__pyx_v_cvals))); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_tmp = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":456 + * cdef PetscScalar *cvals = NULL + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) # <<<<<<<<<<<<<< + * CHKERR( DMPlexMatSetClosure(self.dm, csec, cgsec, mat.mat, cp, cvals, im) ) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_addv); if (unlikely(__pyx_t_5 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(56, 456, __pyx_L1_error) + __pyx_v_im = __pyx_t_5; + + /* "petsc4py/PETSc/DMPlex.pyx":457 + * cdef object tmp = iarray_s(values, &csize, &cvals) + * cdef PetscInsertMode im = insertmode(addv) + * CHKERR( DMPlexMatSetClosure(self.dm, csec, cgsec, mat.mat, cp, cvals, im) ) # <<<<<<<<<<<<<< + * + * def generate(self, DMPlex boundary, name=None, interpolate=True): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMatSetClosure(__pyx_v_self->__pyx_base.dm, __pyx_v_csec, __pyx_v_cgsec, __pyx_v_mat->mat, __pyx_v_cp, __pyx_v_cvals, __pyx_v_im)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 457, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":448 + * CHKERR( DMPlexVecSetClosure(self.dm, csec, vec.vec, cp, cvals, im) ) + * + * def setMatClosure(self, Section sec or None, Section gsec or None, # <<<<<<<<<<<<<< + * Mat mat, point, values, addv=None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setMatClosure", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":459 + * CHKERR( DMPlexMatSetClosure(self.dm, csec, cgsec, mat.mat, cp, cvals, im) ) + * + * def generate(self, DMPlex boundary, name=None, interpolate=True): # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef const char *cname = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_97generate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_96generate[] = "DMPlex.generate(self, DMPlex boundary, name=None, interpolate=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_97generate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_boundary = 0; + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_interpolate = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("generate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_boundary,&__pyx_n_s_name,&__pyx_n_s_interpolate,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_interpolate); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "generate") < 0)) __PYX_ERR(56, 459, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_boundary = ((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)values[0]); + __pyx_v_name = values[1]; + __pyx_v_interpolate = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("generate", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 459, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.generate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_boundary), __pyx_ptype_8petsc4py_5PETSc_DMPlex, 0, "boundary", 0))) __PYX_ERR(56, 459, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_96generate(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_boundary, __pyx_v_name, __pyx_v_interpolate); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_96generate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_boundary, PyObject *__pyx_v_name, PyObject *__pyx_v_interpolate) { + PetscBool __pyx_v_interp; + char const *__pyx_v_cname; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("generate", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DMPlex.pyx":460 + * + * def generate(self, DMPlex boundary, name=None, interpolate=True): + * cdef PetscBool interp = interpolate # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * if name: name = str2bytes(name, &cname) + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_interpolate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 460, __pyx_L1_error) + __pyx_v_interp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":461 + * def generate(self, DMPlex boundary, name=None, interpolate=True): + * cdef PetscBool interp = interpolate + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * if name: name = str2bytes(name, &cname) + * cdef PetscDM newdm = NULL + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":462 + * cdef PetscBool interp = interpolate + * cdef const char *cname = NULL + * if name: name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexGenerate(boundary.dm, cname, interp, &newdm) ) + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(56, 462, __pyx_L1_error) + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 462, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":463 + * cdef const char *cname = NULL + * if name: name = str2bytes(name, &cname) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexGenerate(boundary.dm, cname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":464 + * if name: name = str2bytes(name, &cname) + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexGenerate(boundary.dm, cname, interp, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGenerate(__pyx_v_boundary->__pyx_base.dm, __pyx_v_cname, __pyx_v_interp, (&__pyx_v_newdm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 464, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":465 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexGenerate(boundary.dm, cname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":466 + * CHKERR( DMPlexGenerate(boundary.dm, cname, interp, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def setTriangleOptions(self, opts): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":459 + * CHKERR( DMPlexMatSetClosure(self.dm, csec, cgsec, mat.mat, cp, cvals, im) ) + * + * def generate(self, DMPlex boundary, name=None, interpolate=True): # <<<<<<<<<<<<<< + * cdef PetscBool interp = interpolate + * cdef const char *cname = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.generate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":468 + * return self + * + * def setTriangleOptions(self, opts): # <<<<<<<<<<<<<< + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_99setTriangleOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_98setTriangleOptions[] = "DMPlex.setTriangleOptions(self, opts)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_99setTriangleOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_opts = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTriangleOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opts,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_opts)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTriangleOptions") < 0)) __PYX_ERR(56, 468, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_opts = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTriangleOptions", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 468, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setTriangleOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_98setTriangleOptions(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_opts); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_98setTriangleOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_opts) { + char const *__pyx_v_copts; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTriangleOptions", 0); + __Pyx_INCREF(__pyx_v_opts); + + /* "petsc4py/PETSc/DMPlex.pyx":469 + * + * def setTriangleOptions(self, opts): + * cdef const char *copts = NULL # <<<<<<<<<<<<<< + * opts = str2bytes(opts, &copts) + * CHKERR( DMPlexTriangleSetOptions(self.dm, copts) ) + */ + __pyx_v_copts = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":470 + * def setTriangleOptions(self, opts): + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) # <<<<<<<<<<<<<< + * CHKERR( DMPlexTriangleSetOptions(self.dm, copts) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_opts, (&__pyx_v_copts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_opts, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":471 + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + * CHKERR( DMPlexTriangleSetOptions(self.dm, copts) ) # <<<<<<<<<<<<<< + * + * def setTetGenOptions(self, opts): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTriangleSetOptions(__pyx_v_self->__pyx_base.dm, __pyx_v_copts)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 471, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":468 + * return self + * + * def setTriangleOptions(self, opts): # <<<<<<<<<<<<<< + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setTriangleOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_opts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":473 + * CHKERR( DMPlexTriangleSetOptions(self.dm, copts) ) + * + * def setTetGenOptions(self, opts): # <<<<<<<<<<<<<< + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_101setTetGenOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_100setTetGenOptions[] = "DMPlex.setTetGenOptions(self, opts)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_101setTetGenOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_opts = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTetGenOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_opts,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_opts)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTetGenOptions") < 0)) __PYX_ERR(56, 473, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_opts = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTetGenOptions", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 473, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setTetGenOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_100setTetGenOptions(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_opts); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_100setTetGenOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_opts) { + char const *__pyx_v_copts; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTetGenOptions", 0); + __Pyx_INCREF(__pyx_v_opts); + + /* "petsc4py/PETSc/DMPlex.pyx":474 + * + * def setTetGenOptions(self, opts): + * cdef const char *copts = NULL # <<<<<<<<<<<<<< + * opts = str2bytes(opts, &copts) + * CHKERR( DMPlexTetgenSetOptions(self.dm, copts) ) + */ + __pyx_v_copts = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":475 + * def setTetGenOptions(self, opts): + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) # <<<<<<<<<<<<<< + * CHKERR( DMPlexTetgenSetOptions(self.dm, copts) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_opts, (&__pyx_v_copts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_opts, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":476 + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + * CHKERR( DMPlexTetgenSetOptions(self.dm, copts) ) # <<<<<<<<<<<<<< + * + * def markBoundaryFaces(self, label, value=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTetgenSetOptions(__pyx_v_self->__pyx_base.dm, __pyx_v_copts)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 476, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":473 + * CHKERR( DMPlexTriangleSetOptions(self.dm, copts) ) + * + * def setTetGenOptions(self, opts): # <<<<<<<<<<<<<< + * cdef const char *copts = NULL + * opts = str2bytes(opts, &copts) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setTetGenOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_opts); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":478 + * CHKERR( DMPlexTetgenSetOptions(self.dm, copts) ) + * + * def markBoundaryFaces(self, label, value=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = PETSC_DETERMINE + * if value is not None: ival = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_103markBoundaryFaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_102markBoundaryFaces[] = "DMPlex.markBoundaryFaces(self, label, value=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_103markBoundaryFaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_label = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("markBoundaryFaces (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_label,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "markBoundaryFaces") < 0)) __PYX_ERR(56, 478, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_label = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("markBoundaryFaces", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 478, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.markBoundaryFaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_102markBoundaryFaces(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_label, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_102markBoundaryFaces(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_label, PyObject *__pyx_v_value) { + PetscInt __pyx_v_ival; + char const *__pyx_v_cval; + DMLabel __pyx_v_clbl; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("markBoundaryFaces", 0); + __Pyx_INCREF(__pyx_v_label); + + /* "petsc4py/PETSc/DMPlex.pyx":479 + * + * def markBoundaryFaces(self, label, value=None): + * cdef PetscInt ival = PETSC_DETERMINE # <<<<<<<<<<<<<< + * if value is not None: ival = asInt(value) + * if not self.hasLabel(label): + */ + __pyx_v_ival = PETSC_DETERMINE; + + /* "petsc4py/PETSc/DMPlex.pyx":480 + * def markBoundaryFaces(self, label, value=None): + * cdef PetscInt ival = PETSC_DETERMINE + * if value is not None: ival = asInt(value) # <<<<<<<<<<<<<< + * if not self.hasLabel(label): + * self.createLabel(label) + */ + __pyx_t_1 = (__pyx_v_value != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 480, __pyx_L1_error) + __pyx_v_ival = __pyx_t_3; + } + + /* "petsc4py/PETSc/DMPlex.pyx":481 + * cdef PetscInt ival = PETSC_DETERMINE + * if value is not None: ival = asInt(value) + * if not self.hasLabel(label): # <<<<<<<<<<<<<< + * self.createLabel(label) + * cdef const char *cval = NULL + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_hasLabel); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_label) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_label); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 481, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(56, 481, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = ((!__pyx_t_2) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMPlex.pyx":482 + * if value is not None: ival = asInt(value) + * if not self.hasLabel(label): + * self.createLabel(label) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * label = str2bytes(label, &cval) + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_createLabel); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_label) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_label); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":481 + * cdef PetscInt ival = PETSC_DETERMINE + * if value is not None: ival = asInt(value) + * if not self.hasLabel(label): # <<<<<<<<<<<<<< + * self.createLabel(label) + * cdef const char *cval = NULL + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":483 + * if not self.hasLabel(label): + * self.createLabel(label) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * label = str2bytes(label, &cval) + * cdef PetscDMLabel clbl = NULL + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":484 + * self.createLabel(label) + * cdef const char *cval = NULL + * label = str2bytes(label, &cval) # <<<<<<<<<<<<<< + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_label, (&__pyx_v_cval)); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_label, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":485 + * cdef const char *cval = NULL + * label = str2bytes(label, &cval) + * cdef PetscDMLabel clbl = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMPlexMarkBoundaryFaces(self.dm, ival, clbl) ) + */ + __pyx_v_clbl = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":486 + * label = str2bytes(label, &cval) + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) # <<<<<<<<<<<<<< + * CHKERR( DMPlexMarkBoundaryFaces(self.dm, ival, clbl) ) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetLabel(__pyx_v_self->__pyx_base.dm, __pyx_v_cval, (&__pyx_v_clbl))); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 486, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":487 + * cdef PetscDMLabel clbl = NULL + * CHKERR( DMGetLabel(self.dm, cval, &clbl) ) + * CHKERR( DMPlexMarkBoundaryFaces(self.dm, ival, clbl) ) # <<<<<<<<<<<<<< + * + * def labelComplete(self, DMLabel label): + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMarkBoundaryFaces(__pyx_v_self->__pyx_base.dm, __pyx_v_ival, __pyx_v_clbl)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 487, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":478 + * CHKERR( DMPlexTetgenSetOptions(self.dm, copts) ) + * + * def markBoundaryFaces(self, label, value=None): # <<<<<<<<<<<<<< + * cdef PetscInt ival = PETSC_DETERMINE + * if value is not None: ival = asInt(value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.markBoundaryFaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_label); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":489 + * CHKERR( DMPlexMarkBoundaryFaces(self.dm, ival, clbl) ) + * + * def labelComplete(self, DMLabel label): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelComplete(self.dm, label.dmlabel) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_105labelComplete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_104labelComplete[] = "DMPlex.labelComplete(self, DMLabel label)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_105labelComplete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMLabelObject *__pyx_v_label = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("labelComplete (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_label,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "labelComplete") < 0)) __PYX_ERR(56, 489, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_label = ((struct PyPetscDMLabelObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("labelComplete", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 489, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelComplete", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_label), __pyx_ptype_8petsc4py_5PETSc_DMLabel, 0, "label", 0))) __PYX_ERR(56, 489, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_104labelComplete(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_label); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_104labelComplete(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscDMLabelObject *__pyx_v_label) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("labelComplete", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":490 + * + * def labelComplete(self, DMLabel label): + * CHKERR( DMPlexLabelComplete(self.dm, label.dmlabel) ) # <<<<<<<<<<<<<< + * + * def labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLabelComplete(__pyx_v_self->__pyx_base.dm, __pyx_v_label->dmlabel)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 490, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":489 + * CHKERR( DMPlexMarkBoundaryFaces(self.dm, ival, clbl) ) + * + * def labelComplete(self, DMLabel label): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelComplete(self.dm, label.dmlabel) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelComplete", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":492 + * CHKERR( DMPlexLabelComplete(self.dm, label.dmlabel) ) + * + * def labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm): # <<<<<<<<<<<<<< + * cdef PetscBool flg = flip + * cdef PetscInt val = asInt(bdvalue) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_107labelCohesiveComplete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_106labelCohesiveComplete[] = "DMPlex.labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_107labelCohesiveComplete(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMLabelObject *__pyx_v_label = 0; + struct PyPetscDMLabelObject *__pyx_v_bdlabel = 0; + PyObject *__pyx_v_bdvalue = 0; + PyObject *__pyx_v_flip = 0; + struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_subdm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("labelCohesiveComplete (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_label,&__pyx_n_s_bdlabel,&__pyx_n_s_bdvalue,&__pyx_n_s_flip,&__pyx_n_s_subdm,0}; + PyObject* values[5] = {0,0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_label)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bdlabel)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("labelCohesiveComplete", 1, 5, 5, 1); __PYX_ERR(56, 492, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bdvalue)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("labelCohesiveComplete", 1, 5, 5, 2); __PYX_ERR(56, 492, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flip)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("labelCohesiveComplete", 1, 5, 5, 3); __PYX_ERR(56, 492, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subdm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("labelCohesiveComplete", 1, 5, 5, 4); __PYX_ERR(56, 492, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "labelCohesiveComplete") < 0)) __PYX_ERR(56, 492, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + } + __pyx_v_label = ((struct PyPetscDMLabelObject *)values[0]); + __pyx_v_bdlabel = ((struct PyPetscDMLabelObject *)values[1]); + __pyx_v_bdvalue = values[2]; + __pyx_v_flip = values[3]; + __pyx_v_subdm = ((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)values[4]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("labelCohesiveComplete", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 492, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelCohesiveComplete", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_label), __pyx_ptype_8petsc4py_5PETSc_DMLabel, 0, "label", 0))) __PYX_ERR(56, 492, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_bdlabel), __pyx_ptype_8petsc4py_5PETSc_DMLabel, 0, "bdlabel", 0))) __PYX_ERR(56, 492, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subdm), __pyx_ptype_8petsc4py_5PETSc_DMPlex, 0, "subdm", 0))) __PYX_ERR(56, 492, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_106labelCohesiveComplete(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_label, __pyx_v_bdlabel, __pyx_v_bdvalue, __pyx_v_flip, __pyx_v_subdm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_106labelCohesiveComplete(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscDMLabelObject *__pyx_v_label, struct PyPetscDMLabelObject *__pyx_v_bdlabel, PyObject *__pyx_v_bdvalue, PyObject *__pyx_v_flip, struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_subdm) { + PetscBool __pyx_v_flg; + PetscInt __pyx_v_val; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("labelCohesiveComplete", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":493 + * + * def labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm): + * cdef PetscBool flg = flip # <<<<<<<<<<<<<< + * cdef PetscInt val = asInt(bdvalue) + * CHKERR( DMPlexLabelCohesiveComplete(self.dm, label.dmlabel, bdlabel.dmlabel, val, flg, subdm.dm) ) + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_flip)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 493, __pyx_L1_error) + __pyx_v_flg = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":494 + * def labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm): + * cdef PetscBool flg = flip + * cdef PetscInt val = asInt(bdvalue) # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelCohesiveComplete(self.dm, label.dmlabel, bdlabel.dmlabel, val, flg, subdm.dm) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_bdvalue); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 494, __pyx_L1_error) + __pyx_v_val = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":495 + * cdef PetscBool flg = flip + * cdef PetscInt val = asInt(bdvalue) + * CHKERR( DMPlexLabelCohesiveComplete(self.dm, label.dmlabel, bdlabel.dmlabel, val, flg, subdm.dm) ) # <<<<<<<<<<<<<< + * + * def setAdjacencyUseAnchors(self, useAnchors=True): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLabelCohesiveComplete(__pyx_v_self->__pyx_base.dm, __pyx_v_label->dmlabel, __pyx_v_bdlabel->dmlabel, __pyx_v_val, __pyx_v_flg, __pyx_v_subdm->__pyx_base.dm)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 495, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":492 + * CHKERR( DMPlexLabelComplete(self.dm, label.dmlabel) ) + * + * def labelCohesiveComplete(self, DMLabel label, DMLabel bdlabel, bdvalue, flip, DMPlex subdm): # <<<<<<<<<<<<<< + * cdef PetscBool flg = flip + * cdef PetscInt val = asInt(bdvalue) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelCohesiveComplete", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":497 + * CHKERR( DMPlexLabelCohesiveComplete(self.dm, label.dmlabel, bdlabel.dmlabel, val, flg, subdm.dm) ) + * + * def setAdjacencyUseAnchors(self, useAnchors=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = useAnchors + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_109setAdjacencyUseAnchors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_108setAdjacencyUseAnchors[] = "DMPlex.setAdjacencyUseAnchors(self, useAnchors=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_109setAdjacencyUseAnchors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_useAnchors = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setAdjacencyUseAnchors (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_useAnchors,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useAnchors); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setAdjacencyUseAnchors") < 0)) __PYX_ERR(56, 497, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_useAnchors = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setAdjacencyUseAnchors", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 497, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setAdjacencyUseAnchors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_108setAdjacencyUseAnchors(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_useAnchors); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_108setAdjacencyUseAnchors(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_useAnchors) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setAdjacencyUseAnchors", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":498 + * + * def setAdjacencyUseAnchors(self, useAnchors=True): + * cdef PetscBool flag = useAnchors # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_useAnchors)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 498, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":499 + * def setAdjacencyUseAnchors(self, useAnchors=True): + * cdef PetscBool flag = useAnchors + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) # <<<<<<<<<<<<<< + * + * def getAdjacencyUseAnchors(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetAdjacencyUseAnchors(__pyx_v_self->__pyx_base.dm, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 499, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":497 + * CHKERR( DMPlexLabelCohesiveComplete(self.dm, label.dmlabel, bdlabel.dmlabel, val, flg, subdm.dm) ) + * + * def setAdjacencyUseAnchors(self, useAnchors=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = useAnchors + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setAdjacencyUseAnchors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":501 + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) + * + * def getAdjacencyUseAnchors(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetAdjacencyUseAnchors(self.dm, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_111getAdjacencyUseAnchors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_110getAdjacencyUseAnchors[] = "DMPlex.getAdjacencyUseAnchors(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_111getAdjacencyUseAnchors(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAdjacencyUseAnchors (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getAdjacencyUseAnchors", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getAdjacencyUseAnchors", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_110getAdjacencyUseAnchors(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_110getAdjacencyUseAnchors(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAdjacencyUseAnchors", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":502 + * + * def getAdjacencyUseAnchors(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetAdjacencyUseAnchors(self.dm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":503 + * def getAdjacencyUseAnchors(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetAdjacencyUseAnchors(self.dm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetAdjacencyUseAnchors(__pyx_v_self->__pyx_base.dm, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 503, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":504 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetAdjacencyUseAnchors(self.dm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def getAdjacency(self, p): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":501 + * CHKERR( DMPlexSetAdjacencyUseAnchors(self.dm, flag) ) + * + * def getAdjacencyUseAnchors(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetAdjacencyUseAnchors(self.dm, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getAdjacencyUseAnchors", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":506 + * return toBool(flag) + * + * def getAdjacency(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt nadj = PETSC_DETERMINE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_113getAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_112getAdjacency[] = "DMPlex.getAdjacency(self, p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_113getAdjacency(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_p = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAdjacency (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getAdjacency") < 0)) __PYX_ERR(56, 506, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getAdjacency", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 506, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_112getAdjacency(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_112getAdjacency(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_p) { + PetscInt __pyx_v_cp; + PetscInt __pyx_v_nadj; + PetscInt *__pyx_v_iadj; + PyArrayObject *__pyx_v_adjacency = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAdjacency", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":507 + * + * def getAdjacency(self, p): + * cdef PetscInt cp = asInt(p) # <<<<<<<<<<<<<< + * cdef PetscInt nadj = PETSC_DETERMINE + * cdef PetscInt *iadj = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_p); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 507, __pyx_L1_error) + __pyx_v_cp = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":508 + * def getAdjacency(self, p): + * cdef PetscInt cp = asInt(p) + * cdef PetscInt nadj = PETSC_DETERMINE # <<<<<<<<<<<<<< + * cdef PetscInt *iadj = NULL + * CHKERR( DMPlexGetAdjacency(self.dm, cp, &nadj, &iadj) ) + */ + __pyx_v_nadj = PETSC_DETERMINE; + + /* "petsc4py/PETSc/DMPlex.pyx":509 + * cdef PetscInt cp = asInt(p) + * cdef PetscInt nadj = PETSC_DETERMINE + * cdef PetscInt *iadj = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetAdjacency(self.dm, cp, &nadj, &iadj) ) + * try: + */ + __pyx_v_iadj = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":510 + * cdef PetscInt nadj = PETSC_DETERMINE + * cdef PetscInt *iadj = NULL + * CHKERR( DMPlexGetAdjacency(self.dm, cp, &nadj, &iadj) ) # <<<<<<<<<<<<<< + * try: + * adjacency = array_i(nadj, iadj) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetAdjacency(__pyx_v_self->__pyx_base.dm, __pyx_v_cp, (&__pyx_v_nadj), (&__pyx_v_iadj))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 510, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":511 + * cdef PetscInt *iadj = NULL + * CHKERR( DMPlexGetAdjacency(self.dm, cp, &nadj, &iadj) ) + * try: # <<<<<<<<<<<<<< + * adjacency = array_i(nadj, iadj) + * finally: + */ + /*try:*/ { + + /* "petsc4py/PETSc/DMPlex.pyx":512 + * CHKERR( DMPlexGetAdjacency(self.dm, cp, &nadj, &iadj) ) + * try: + * adjacency = array_i(nadj, iadj) # <<<<<<<<<<<<<< + * finally: + * CHKERR( PetscFree(iadj) ) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_nadj, __pyx_v_iadj)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 512, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_adjacency = ((PyArrayObject *)__pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":514 + * adjacency = array_i(nadj, iadj) + * finally: + * CHKERR( PetscFree(iadj) ) # <<<<<<<<<<<<<< + * return adjacency + * + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_iadj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 514, __pyx_L1_error) + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_iadj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 514, __pyx_L7_error) + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + __pyx_L7_error:; + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/DMPlex.pyx":515 + * finally: + * CHKERR( PetscFree(iadj) ) + * return adjacency # <<<<<<<<<<<<<< + * + * def setPartitioner(self, Partitioner part): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_adjacency)); + __pyx_r = ((PyObject *)__pyx_v_adjacency); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":506 + * return toBool(flag) + * + * def getAdjacency(self, p): # <<<<<<<<<<<<<< + * cdef PetscInt cp = asInt(p) + * cdef PetscInt nadj = PETSC_DETERMINE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getAdjacency", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_adjacency); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":517 + * return adjacency + * + * def setPartitioner(self, Partitioner part): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetPartitioner(self.dm, part.part) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_115setPartitioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_114setPartitioner[] = "DMPlex.setPartitioner(self, Partitioner part)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_115setPartitioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscPartitionerObject *__pyx_v_part = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPartitioner (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_part,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_part)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPartitioner") < 0)) __PYX_ERR(56, 517, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_part = ((struct PyPetscPartitionerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPartitioner", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 517, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setPartitioner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_part), __pyx_ptype_8petsc4py_5PETSc_Partitioner, 0, "part", 0))) __PYX_ERR(56, 517, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_114setPartitioner(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_part); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_114setPartitioner(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscPartitionerObject *__pyx_v_part) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPartitioner", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":518 + * + * def setPartitioner(self, Partitioner part): + * CHKERR( DMPlexSetPartitioner(self.dm, part.part) ) # <<<<<<<<<<<<<< + * + * def getPartitioner(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetPartitioner(__pyx_v_self->__pyx_base.dm, __pyx_v_part->part)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 518, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":517 + * return adjacency + * + * def setPartitioner(self, Partitioner part): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetPartitioner(self.dm, part.part) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setPartitioner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":520 + * CHKERR( DMPlexSetPartitioner(self.dm, part.part) ) + * + * def getPartitioner(self): # <<<<<<<<<<<<<< + * cdef Partitioner part = Partitioner() + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_117getPartitioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_116getPartitioner[] = "DMPlex.getPartitioner(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_117getPartitioner(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPartitioner (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPartitioner", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPartitioner", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_116getPartitioner(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_116getPartitioner(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscPartitionerObject *__pyx_v_part = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPartitioner", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":521 + * + * def getPartitioner(self): + * cdef Partitioner part = Partitioner() # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) + * PetscINCREF(part.obj) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Partitioner)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_part = ((struct PyPetscPartitionerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":522 + * def getPartitioner(self): + * cdef Partitioner part = Partitioner() + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) # <<<<<<<<<<<<<< + * PetscINCREF(part.obj) + * return part + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPartitioner(__pyx_v_self->__pyx_base.dm, (&__pyx_v_part->part))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 522, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":523 + * cdef Partitioner part = Partitioner() + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) + * PetscINCREF(part.obj) # <<<<<<<<<<<<<< + * return part + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_part->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMPlex.pyx":524 + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) + * PetscINCREF(part.obj) + * return part # <<<<<<<<<<<<<< + * + * def rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_part)); + __pyx_r = ((PyObject *)__pyx_v_part); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":520 + * CHKERR( DMPlexSetPartitioner(self.dm, part.part) ) + * + * def getPartitioner(self): # <<<<<<<<<<<<<< + * cdef Partitioner part = Partitioner() + * CHKERR( DMPlexGetPartitioner(self.dm, &part.part) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPartitioner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_part); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":526 + * return part + * + * def rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True): # <<<<<<<<<<<<<< + * cdef PetscInt centityDepth = asInt(entityDepth) + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_119rebalanceSharedPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_118rebalanceSharedPoints[] = "DMPlex.rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_119rebalanceSharedPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_entityDepth = 0; + PyObject *__pyx_v_useInitialGuess = 0; + PyObject *__pyx_v_parallel = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("rebalanceSharedPoints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_entityDepth,&__pyx_n_s_useInitialGuess,&__pyx_n_s_parallel,0}; + PyObject* values[3] = {0,0,0}; + values[0] = ((PyObject *)__pyx_int_0); + values[1] = ((PyObject *)Py_True); + values[2] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_entityDepth); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_useInitialGuess); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_parallel); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "rebalanceSharedPoints") < 0)) __PYX_ERR(56, 526, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_entityDepth = values[0]; + __pyx_v_useInitialGuess = values[1]; + __pyx_v_parallel = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("rebalanceSharedPoints", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 526, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.rebalanceSharedPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_118rebalanceSharedPoints(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_entityDepth, __pyx_v_useInitialGuess, __pyx_v_parallel); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_118rebalanceSharedPoints(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_entityDepth, PyObject *__pyx_v_useInitialGuess, PyObject *__pyx_v_parallel) { + PetscInt __pyx_v_centityDepth; + PetscBool __pyx_v_cuseInitialGuess; + PetscBool __pyx_v_cparallel; + PetscBool __pyx_v_csuccess; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("rebalanceSharedPoints", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":527 + * + * def rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True): + * cdef PetscInt centityDepth = asInt(entityDepth) # <<<<<<<<<<<<<< + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) + * cdef PetscBool cparallel = asBool(parallel) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_entityDepth); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 527, __pyx_L1_error) + __pyx_v_centityDepth = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":528 + * def rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True): + * cdef PetscInt centityDepth = asInt(entityDepth) + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) # <<<<<<<<<<<<<< + * cdef PetscBool cparallel = asBool(parallel) + * cdef PetscBool csuccess = PETSC_FALSE + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_useInitialGuess); if (unlikely(__pyx_t_2 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(56, 528, __pyx_L1_error) + __pyx_v_cuseInitialGuess = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":529 + * cdef PetscInt centityDepth = asInt(entityDepth) + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) + * cdef PetscBool cparallel = asBool(parallel) # <<<<<<<<<<<<<< + * cdef PetscBool csuccess = PETSC_FALSE + * CHKERR( DMPlexRebalanceSharedPoints(self.dm, centityDepth, cuseInitialGuess, cparallel, &csuccess) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_parallel); if (unlikely(__pyx_t_2 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(56, 529, __pyx_L1_error) + __pyx_v_cparallel = __pyx_t_2; + + /* "petsc4py/PETSc/DMPlex.pyx":530 + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) + * cdef PetscBool cparallel = asBool(parallel) + * cdef PetscBool csuccess = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexRebalanceSharedPoints(self.dm, centityDepth, cuseInitialGuess, cparallel, &csuccess) ) + * return toBool(csuccess) + */ + __pyx_v_csuccess = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":531 + * cdef PetscBool cparallel = asBool(parallel) + * cdef PetscBool csuccess = PETSC_FALSE + * CHKERR( DMPlexRebalanceSharedPoints(self.dm, centityDepth, cuseInitialGuess, cparallel, &csuccess) ) # <<<<<<<<<<<<<< + * return toBool(csuccess) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexRebalanceSharedPoints(__pyx_v_self->__pyx_base.dm, __pyx_v_centityDepth, __pyx_v_cuseInitialGuess, __pyx_v_cparallel, (&__pyx_v_csuccess))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 531, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":532 + * cdef PetscBool csuccess = PETSC_FALSE + * CHKERR( DMPlexRebalanceSharedPoints(self.dm, centityDepth, cuseInitialGuess, cparallel, &csuccess) ) + * return toBool(csuccess) # <<<<<<<<<<<<<< + * + * def distribute(self, overlap=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_csuccess); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":526 + * return part + * + * def rebalanceSharedPoints(self, entityDepth=0, useInitialGuess=True, parallel=True): # <<<<<<<<<<<<<< + * cdef PetscInt centityDepth = asInt(entityDepth) + * cdef PetscBool cuseInitialGuess = asBool(useInitialGuess) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.rebalanceSharedPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":534 + * return toBool(csuccess) + * + * def distribute(self, overlap=0): # <<<<<<<<<<<<<< + * cdef PetscDM dmParallel = NULL + * cdef PetscInt coverlap = asInt(overlap) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_121distribute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_120distribute[] = "DMPlex.distribute(self, overlap=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_121distribute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_overlap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distribute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_overlap,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overlap); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distribute") < 0)) __PYX_ERR(56, 534, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_overlap = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distribute", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 534, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distribute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_120distribute(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_overlap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_120distribute(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_overlap) { + DM __pyx_v_dmParallel; + PetscInt __pyx_v_coverlap; + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distribute", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":535 + * + * def distribute(self, overlap=0): + * cdef PetscDM dmParallel = NULL # <<<<<<<<<<<<<< + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() + */ + __pyx_v_dmParallel = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":536 + * def distribute(self, overlap=0): + * cdef PetscDM dmParallel = NULL + * cdef PetscInt coverlap = asInt(overlap) # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_overlap); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 536, __pyx_L1_error) + __pyx_v_coverlap = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":537 + * cdef PetscDM dmParallel = NULL + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) + * if dmParallel != NULL: + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":538 + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) # <<<<<<<<<<<<<< + * if dmParallel != NULL: + * PetscCLEAR(self.obj); self.dm = dmParallel + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistribute(__pyx_v_self->__pyx_base.dm, __pyx_v_coverlap, (&__pyx_v_sf->sf), (&__pyx_v_dmParallel))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 538, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":539 + * cdef SF sf = SF() + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) + * if dmParallel != NULL: # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = dmParallel + * return sf + */ + __pyx_t_4 = ((__pyx_v_dmParallel != NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/DMPlex.pyx":540 + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) + * if dmParallel != NULL: + * PetscCLEAR(self.obj); self.dm = dmParallel # <<<<<<<<<<<<<< + * return sf + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_dmParallel; + + /* "petsc4py/PETSc/DMPlex.pyx":541 + * if dmParallel != NULL: + * PetscCLEAR(self.obj); self.dm = dmParallel + * return sf # <<<<<<<<<<<<<< + * + * def distributeOverlap(self, overlap=0): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":539 + * cdef SF sf = SF() + * CHKERR( DMPlexDistribute(self.dm, coverlap, &sf.sf, &dmParallel) ) + * if dmParallel != NULL: # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = dmParallel + * return sf + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":534 + * return toBool(csuccess) + * + * def distribute(self, overlap=0): # <<<<<<<<<<<<<< + * cdef PetscDM dmParallel = NULL + * cdef PetscInt coverlap = asInt(overlap) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distribute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":543 + * return sf + * + * def distributeOverlap(self, overlap=0): # <<<<<<<<<<<<<< + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_123distributeOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_122distributeOverlap[] = "DMPlex.distributeOverlap(self, overlap=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_123distributeOverlap(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_overlap = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributeOverlap (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_overlap,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overlap); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distributeOverlap") < 0)) __PYX_ERR(56, 543, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_overlap = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distributeOverlap", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 543, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_122distributeOverlap(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_overlap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_122distributeOverlap(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_overlap) { + PetscInt __pyx_v_coverlap; + struct PyPetscSFObject *__pyx_v_sf = 0; + DM __pyx_v_dmOverlap; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributeOverlap", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":544 + * + * def distributeOverlap(self, overlap=0): + * cdef PetscInt coverlap = asInt(overlap) # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * cdef PetscDM dmOverlap = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_overlap); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 544, __pyx_L1_error) + __pyx_v_coverlap = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":545 + * def distributeOverlap(self, overlap=0): + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * cdef PetscDM dmOverlap = NULL + * CHKERR( DMPlexDistributeOverlap(self.dm, coverlap, + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":546 + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() + * cdef PetscDM dmOverlap = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributeOverlap(self.dm, coverlap, + * &sf.sf, &dmOverlap) ) + */ + __pyx_v_dmOverlap = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":547 + * cdef SF sf = SF() + * cdef PetscDM dmOverlap = NULL + * CHKERR( DMPlexDistributeOverlap(self.dm, coverlap, # <<<<<<<<<<<<<< + * &sf.sf, &dmOverlap) ) + * PetscCLEAR(self.obj); self.dm = dmOverlap + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributeOverlap(__pyx_v_self->__pyx_base.dm, __pyx_v_coverlap, (&__pyx_v_sf->sf), (&__pyx_v_dmOverlap))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 547, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":549 + * CHKERR( DMPlexDistributeOverlap(self.dm, coverlap, + * &sf.sf, &dmOverlap) ) + * PetscCLEAR(self.obj); self.dm = dmOverlap # <<<<<<<<<<<<<< + * return sf + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_dmOverlap; + + /* "petsc4py/PETSc/DMPlex.pyx":550 + * &sf.sf, &dmOverlap) ) + * PetscCLEAR(self.obj); self.dm = dmOverlap + * return sf # <<<<<<<<<<<<<< + * + * def isDistributed(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":543 + * return sf + * + * def distributeOverlap(self, overlap=0): # <<<<<<<<<<<<<< + * cdef PetscInt coverlap = asInt(overlap) + * cdef SF sf = SF() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeOverlap", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":552 + * return sf + * + * def isDistributed(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsDistributed(self.dm, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_125isDistributed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_124isDistributed[] = "DMPlex.isDistributed(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_125isDistributed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isDistributed (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isDistributed", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isDistributed", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_124isDistributed(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_124isDistributed(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isDistributed", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":553 + * + * def isDistributed(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexIsDistributed(self.dm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":554 + * def isDistributed(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsDistributed(self.dm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexIsDistributed(__pyx_v_self->__pyx_base.dm, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 554, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":555 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsDistributed(self.dm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def isSimplex(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":552 + * return sf + * + * def isDistributed(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsDistributed(self.dm, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.isDistributed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":557 + * return toBool(flag) + * + * def isSimplex(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_127isSimplex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_126isSimplex[] = "DMPlex.isSimplex(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_127isSimplex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isSimplex (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isSimplex", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isSimplex", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_126isSimplex(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_126isSimplex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isSimplex", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":558 + * + * def isSimplex(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":559 + * def isSimplex(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexIsSimplex(__pyx_v_self->__pyx_base.dm, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 559, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":560 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def distributeGetDefault(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":557 + * return toBool(flag) + * + * def isSimplex(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.isSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":562 + * return toBool(flag) + * + * def distributeGetDefault(self): # <<<<<<<<<<<<<< + * cdef PetscBool dist = PETSC_FALSE + * CHKERR( DMPlexDistributeGetDefault(self.dm, &dist) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_129distributeGetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_128distributeGetDefault[] = "DMPlex.distributeGetDefault(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_129distributeGetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributeGetDefault (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("distributeGetDefault", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "distributeGetDefault", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_128distributeGetDefault(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_128distributeGetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_dist; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributeGetDefault", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":563 + * + * def distributeGetDefault(self): + * cdef PetscBool dist = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributeGetDefault(self.dm, &dist) ) + * return toBool(dist) + */ + __pyx_v_dist = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":564 + * def distributeGetDefault(self): + * cdef PetscBool dist = PETSC_FALSE + * CHKERR( DMPlexDistributeGetDefault(self.dm, &dist) ) # <<<<<<<<<<<<<< + * return toBool(dist) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributeGetDefault(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dist))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 564, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":565 + * cdef PetscBool dist = PETSC_FALSE + * CHKERR( DMPlexDistributeGetDefault(self.dm, &dist) ) + * return toBool(dist) # <<<<<<<<<<<<<< + * + * def distributeSetDefault(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_dist); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":562 + * return toBool(flag) + * + * def distributeGetDefault(self): # <<<<<<<<<<<<<< + * cdef PetscBool dist = PETSC_FALSE + * CHKERR( DMPlexDistributeGetDefault(self.dm, &dist) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeGetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":567 + * return toBool(dist) + * + * def distributeSetDefault(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool dist = asBool(flag) + * CHKERR( DMPlexDistributeSetDefault(self.dm, dist) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_131distributeSetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_130distributeSetDefault[] = "DMPlex.distributeSetDefault(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_131distributeSetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributeSetDefault (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distributeSetDefault") < 0)) __PYX_ERR(56, 567, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distributeSetDefault", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 567, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeSetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_130distributeSetDefault(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_130distributeSetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_flag) { + PetscBool __pyx_v_dist; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributeSetDefault", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":568 + * + * def distributeSetDefault(self, flag): + * cdef PetscBool dist = asBool(flag) # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributeSetDefault(self.dm, dist) ) + * return + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_flag); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(56, 568, __pyx_L1_error) + __pyx_v_dist = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":569 + * def distributeSetDefault(self, flag): + * cdef PetscBool dist = asBool(flag) + * CHKERR( DMPlexDistributeSetDefault(self.dm, dist) ) # <<<<<<<<<<<<<< + * return + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributeSetDefault(__pyx_v_self->__pyx_base.dm, __pyx_v_dist)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 569, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":570 + * cdef PetscBool dist = asBool(flag) + * CHKERR( DMPlexDistributeSetDefault(self.dm, dist) ) + * return # <<<<<<<<<<<<<< + * + * def distributionSetName(self, name): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":567 + * return toBool(dist) + * + * def distributeSetDefault(self, flag): # <<<<<<<<<<<<<< + * cdef PetscBool dist = asBool(flag) + * CHKERR( DMPlexDistributeSetDefault(self.dm, dist) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeSetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":572 + * return + * + * def distributionSetName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * if name is not None: + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_133distributionSetName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_132distributionSetName[] = "DMPlex.distributionSetName(self, name)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_133distributionSetName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributionSetName (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distributionSetName") < 0)) __PYX_ERR(56, 572, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distributionSetName", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 572, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributionSetName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_132distributionSetName(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_132distributionSetName(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_name) { + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributionSetName", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DMPlex.pyx":573 + * + * def distributionSetName(self, name): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * if name is not None: + * name = str2bytes(name, &cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":574 + * def distributionSetName(self, name): + * cdef const char *cname = NULL + * if name is not None: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) + */ + __pyx_t_1 = (__pyx_v_name != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMPlex.pyx":575 + * cdef const char *cname = NULL + * if name is not None: + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":574 + * def distributionSetName(self, name): + * cdef const char *cname = NULL + * if name is not None: # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":576 + * if name is not None: + * name = str2bytes(name, &cname) + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) # <<<<<<<<<<<<<< + * + * def distributionGetName(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributionSetName(__pyx_v_self->__pyx_base.dm, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 576, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":572 + * return + * + * def distributionSetName(self, name): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * if name is not None: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributionSetName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":578 + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) + * + * def distributionGetName(self): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * CHKERR( DMPlexDistributionGetName(self.dm, &cname) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_135distributionGetName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_134distributionGetName[] = "DMPlex.distributionGetName(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_135distributionGetName(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributionGetName (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("distributionGetName", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "distributionGetName", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_134distributionGetName(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_134distributionGetName(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributionGetName", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":579 + * + * def distributionGetName(self): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributionGetName(self.dm, &cname) ) + * return bytes2str(cname) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":580 + * def distributionGetName(self): + * cdef const char *cname = NULL + * CHKERR( DMPlexDistributionGetName(self.dm, &cname) ) # <<<<<<<<<<<<<< + * return bytes2str(cname) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributionGetName(__pyx_v_self->__pyx_base.dm, (&__pyx_v_cname))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 580, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":581 + * cdef const char *cname = NULL + * CHKERR( DMPlexDistributionGetName(self.dm, &cname) ) + * return bytes2str(cname) # <<<<<<<<<<<<<< + * + * def isSimplex(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cname); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":578 + * CHKERR( DMPlexDistributionSetName(self.dm, cname) ) + * + * def distributionGetName(self): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * CHKERR( DMPlexDistributionGetName(self.dm, &cname) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributionGetName", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":583 + * return bytes2str(cname) + * + * def isSimplex(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_137isSimplex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_136isSimplex[] = "DMPlex.isSimplex(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_137isSimplex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("isSimplex (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("isSimplex", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "isSimplex", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_136isSimplex(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_136isSimplex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isSimplex", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":584 + * + * def isSimplex(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":585 + * def isSimplex(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexIsSimplex(__pyx_v_self->__pyx_base.dm, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 585, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":586 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def interpolate(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":583 + * return bytes2str(cname) + * + * def isSimplex(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexIsSimplex(self.dm, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.isSimplex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":588 + * return toBool(flag) + * + * def interpolate(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexInterpolate(self.dm, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_139interpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_138interpolate[] = "DMPlex.interpolate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_139interpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("interpolate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("interpolate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "interpolate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_138interpolate(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_138interpolate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("interpolate", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":589 + * + * def interpolate(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexInterpolate(self.dm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":590 + * def interpolate(self): + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexInterpolate(self.dm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexInterpolate(__pyx_v_self->__pyx_base.dm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 590, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":591 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexInterpolate(self.dm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * + * def uninterpolate(self): + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":588 + * return toBool(flag) + * + * def interpolate(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexInterpolate(self.dm, &newdm) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.interpolate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":593 + * PetscCLEAR(self.obj); self.dm = newdm + * + * def uninterpolate(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexUninterpolate(self.dm, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_141uninterpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_140uninterpolate[] = "DMPlex.uninterpolate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_141uninterpolate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("uninterpolate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("uninterpolate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "uninterpolate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_140uninterpolate(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_140uninterpolate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("uninterpolate", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":594 + * + * def uninterpolate(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexUninterpolate(self.dm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":595 + * def uninterpolate(self): + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexUninterpolate(self.dm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexUninterpolate(__pyx_v_self->__pyx_base.dm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 595, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":596 + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexUninterpolate(self.dm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * + * def distributeField(self, SF sf, Section sec, Vec vec, + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMPlex.pyx":593 + * PetscCLEAR(self.obj); self.dm = newdm + * + * def uninterpolate(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMPlexUninterpolate(self.dm, &newdm) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.uninterpolate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":598 + * PetscCLEAR(self.obj); self.dm = newdm + * + * def distributeField(self, SF sf, Section sec, Vec vec, # <<<<<<<<<<<<<< + * Section newsec=None, Vec newvec=None): + * cdef MPI_Comm ccomm = MPI_COMM_NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_143distributeField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_142distributeField[] = "DMPlex.distributeField(self, SF sf, Section sec, Vec vec, Section newsec=None, Vec newvec=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_143distributeField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + struct PyPetscSectionObject *__pyx_v_sec = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscSectionObject *__pyx_v_newsec = 0; + struct PyPetscVecObject *__pyx_v_newvec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distributeField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,&__pyx_n_s_sec,&__pyx_n_s_vec,&__pyx_n_s_newsec,&__pyx_n_s_newvec,0}; + PyObject* values[5] = {0,0,0,0,0}; + + /* "petsc4py/PETSc/DMPlex.pyx":599 + * + * def distributeField(self, SF sf, Section sec, Vec vec, + * Section newsec=None, Vec newvec=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = MPI_COMM_NULL + * if newsec is None: newsec = Section() + */ + values[3] = (PyObject *)((struct PyPetscSectionObject *)Py_None); + values[4] = (PyObject *)((struct PyPetscVecObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("distributeField", 0, 3, 5, 1); __PYX_ERR(56, 598, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("distributeField", 0, 3, 5, 2); __PYX_ERR(56, 598, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newsec); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_newvec); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distributeField") < 0)) __PYX_ERR(56, 598, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + __pyx_v_sec = ((struct PyPetscSectionObject *)values[1]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[2]); + __pyx_v_newsec = ((struct PyPetscSectionObject *)values[3]); + __pyx_v_newvec = ((struct PyPetscVecObject *)values[4]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distributeField", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 598, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(56, 598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 0, "sec", 0))) __PYX_ERR(56, 598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 598, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_newsec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "newsec", 0))) __PYX_ERR(56, 599, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_newvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 1, "newvec", 0))) __PYX_ERR(56, 599, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_142distributeField(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sf, __pyx_v_sec, __pyx_v_vec, __pyx_v_newsec, __pyx_v_newvec); + + /* "petsc4py/PETSc/DMPlex.pyx":598 + * PetscCLEAR(self.obj); self.dm = newdm + * + * def distributeField(self, SF sf, Section sec, Vec vec, # <<<<<<<<<<<<<< + * Section newsec=None, Vec newvec=None): + * cdef MPI_Comm ccomm = MPI_COMM_NULL + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_142distributeField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscSectionObject *__pyx_v_sec, struct PyPetscVecObject *__pyx_v_vec, struct PyPetscSectionObject *__pyx_v_newsec, struct PyPetscVecObject *__pyx_v_newvec) { + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distributeField", 0); + __Pyx_INCREF((PyObject *)__pyx_v_newsec); + __Pyx_INCREF((PyObject *)__pyx_v_newvec); + + /* "petsc4py/PETSc/DMPlex.pyx":600 + * def distributeField(self, SF sf, Section sec, Vec vec, + * Section newsec=None, Vec newvec=None): + * cdef MPI_Comm ccomm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * if newsec is None: newsec = Section() + * if newvec is None: newvec = Vec() + */ + __pyx_v_ccomm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":601 + * Section newsec=None, Vec newvec=None): + * cdef MPI_Comm ccomm = MPI_COMM_NULL + * if newsec is None: newsec = Section() # <<<<<<<<<<<<<< + * if newvec is None: newvec = Vec() + * if newsec.sec == NULL: + */ + __pyx_t_1 = (((PyObject *)__pyx_v_newsec) == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_newsec, ((struct PyPetscSectionObject *)__pyx_t_3)); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":602 + * cdef MPI_Comm ccomm = MPI_COMM_NULL + * if newsec is None: newsec = Section() + * if newvec is None: newvec = Vec() # <<<<<<<<<<<<<< + * if newsec.sec == NULL: + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + */ + __pyx_t_2 = (((PyObject *)__pyx_v_newvec) == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 602, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_newvec, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMPlex.pyx":603 + * if newsec is None: newsec = Section() + * if newvec is None: newvec = Vec() + * if newsec.sec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + */ + __pyx_t_1 = ((__pyx_v_newsec->sec == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMPlex.pyx":604 + * if newvec is None: newvec = Vec() + * if newsec.sec == NULL: + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) # <<<<<<<<<<<<<< + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + * if newvec.vec == NULL: + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_sec->sec), (&__pyx_v_ccomm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 604, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":605 + * if newsec.sec == NULL: + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) # <<<<<<<<<<<<<< + * if newvec.vec == NULL: + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSectionCreate(__pyx_v_ccomm, (&__pyx_v_newsec->sec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 605, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":603 + * if newsec is None: newsec = Section() + * if newvec is None: newvec = Vec() + * if newsec.sec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":606 + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + * if newvec.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) + * CHKERR( VecCreate(ccomm, &newvec.vec) ) + */ + __pyx_t_1 = ((__pyx_v_newvec->vec == NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMPlex.pyx":607 + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + * if newvec.vec == NULL: + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) # <<<<<<<<<<<<<< + * CHKERR( VecCreate(ccomm, &newvec.vec) ) + * CHKERR( DMPlexDistributeField(self.dm, sf.sf, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetComm(((PetscObject)__pyx_v_vec->vec), (&__pyx_v_ccomm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 607, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":608 + * if newvec.vec == NULL: + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) + * CHKERR( VecCreate(ccomm, &newvec.vec) ) # <<<<<<<<<<<<<< + * CHKERR( DMPlexDistributeField(self.dm, sf.sf, + * sec.sec, vec.vec, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCreate(__pyx_v_ccomm, (&__pyx_v_newvec->vec))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 608, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":606 + * CHKERR( PetscObjectGetComm(sec.sec, &ccomm) ) + * CHKERR( PetscSectionCreate(ccomm, &newsec.sec) ) + * if newvec.vec == NULL: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) + * CHKERR( VecCreate(ccomm, &newvec.vec) ) + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":609 + * CHKERR( PetscObjectGetComm(vec.vec, &ccomm) ) + * CHKERR( VecCreate(ccomm, &newvec.vec) ) + * CHKERR( DMPlexDistributeField(self.dm, sf.sf, # <<<<<<<<<<<<<< + * sec.sec, vec.vec, + * newsec.sec, newvec.vec)) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexDistributeField(__pyx_v_self->__pyx_base.dm, __pyx_v_sf->sf, __pyx_v_sec->sec, __pyx_v_vec->vec, __pyx_v_newsec->sec, __pyx_v_newvec->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 609, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":612 + * sec.sec, vec.vec, + * newsec.sec, newvec.vec)) + * return (newsec, newvec) # <<<<<<<<<<<<<< + * + * def getMinRadius(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_newsec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_newsec)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_newsec)); + __Pyx_INCREF(((PyObject *)__pyx_v_newvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_newvec)); + PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_newvec)); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":598 + * PetscCLEAR(self.obj); self.dm = newdm + * + * def distributeField(self, SF sf, Section sec, Vec vec, # <<<<<<<<<<<<<< + * Section newsec=None, Vec newvec=None): + * cdef MPI_Comm ccomm = MPI_COMM_NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.distributeField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_newsec); + __Pyx_XDECREF((PyObject *)__pyx_v_newvec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":614 + * return (newsec, newvec) + * + * def getMinRadius(self): # <<<<<<<<<<<<<< + * cdef PetscReal cminradius = 0. + * CHKERR( DMPlexGetMinRadius(self.dm, &cminradius)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_145getMinRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_144getMinRadius[] = "DMPlex.getMinRadius(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_145getMinRadius(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getMinRadius (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getMinRadius", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getMinRadius", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_144getMinRadius(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_144getMinRadius(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_cminradius; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscReal __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getMinRadius", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":615 + * + * def getMinRadius(self): + * cdef PetscReal cminradius = 0. # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetMinRadius(self.dm, &cminradius)) + * return asReal(cminradius) + */ + __pyx_v_cminradius = 0.; + + /* "petsc4py/PETSc/DMPlex.pyx":616 + * def getMinRadius(self): + * cdef PetscReal cminradius = 0. + * CHKERR( DMPlexGetMinRadius(self.dm, &cminradius)) # <<<<<<<<<<<<<< + * return asReal(cminradius) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetMinRadius(__pyx_v_self->__pyx_base.dm, (&__pyx_v_cminradius))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 616, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":617 + * cdef PetscReal cminradius = 0. + * CHKERR( DMPlexGetMinRadius(self.dm, &cminradius)) + * return asReal(cminradius) # <<<<<<<<<<<<<< + * + * def createCoarsePointIS(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_cminradius); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(56, 617, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyFloat_FromDouble(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":614 + * return (newsec, newvec) + * + * def getMinRadius(self): # <<<<<<<<<<<<<< + * cdef PetscReal cminradius = 0. + * CHKERR( DMPlexGetMinRadius(self.dm, &cminradius)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getMinRadius", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":619 + * return asReal(cminradius) + * + * def createCoarsePointIS(self): # <<<<<<<<<<<<<< + * cdef IS fpoint = IS() + * CHKERR( DMPlexCreateCoarsePointIS(self.dm, &fpoint.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_147createCoarsePointIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_146createCoarsePointIS[] = "DMPlex.createCoarsePointIS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_147createCoarsePointIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCoarsePointIS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("createCoarsePointIS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "createCoarsePointIS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_146createCoarsePointIS(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_146createCoarsePointIS(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_fpoint = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCoarsePointIS", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":620 + * + * def createCoarsePointIS(self): + * cdef IS fpoint = IS() # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateCoarsePointIS(self.dm, &fpoint.iset) ) + * return fpoint + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 620, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_fpoint = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":621 + * def createCoarsePointIS(self): + * cdef IS fpoint = IS() + * CHKERR( DMPlexCreateCoarsePointIS(self.dm, &fpoint.iset) ) # <<<<<<<<<<<<<< + * return fpoint + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateCoarsePointIS(__pyx_v_self->__pyx_base.dm, (&__pyx_v_fpoint->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 621, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":622 + * cdef IS fpoint = IS() + * CHKERR( DMPlexCreateCoarsePointIS(self.dm, &fpoint.iset) ) + * return fpoint # <<<<<<<<<<<<<< + * + * def createSection(self, numComp, numDof, + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_fpoint)); + __pyx_r = ((PyObject *)__pyx_v_fpoint); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":619 + * return asReal(cminradius) + * + * def createCoarsePointIS(self): # <<<<<<<<<<<<<< + * cdef IS fpoint = IS() + * CHKERR( DMPlexCreateCoarsePointIS(self.dm, &fpoint.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createCoarsePointIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_fpoint); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":624 + * return fpoint + * + * def createSection(self, numComp, numDof, # <<<<<<<<<<<<<< + * bcField=None, bcComps=None, bcPoints=None, + * IS perm=None): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_149createSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_148createSection[] = "DMPlex.createSection(self, numComp, numDof, bcField=None, bcComps=None, bcPoints=None, IS perm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_149createSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numComp = 0; + PyObject *__pyx_v_numDof = 0; + PyObject *__pyx_v_bcField = 0; + PyObject *__pyx_v_bcComps = 0; + PyObject *__pyx_v_bcPoints = 0; + struct PyPetscISObject *__pyx_v_perm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createSection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numComp,&__pyx_n_s_numDof,&__pyx_n_s_bcField,&__pyx_n_s_bcComps,&__pyx_n_s_bcPoints,&__pyx_n_s_perm,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + + /* "petsc4py/PETSc/DMPlex.pyx":625 + * + * def createSection(self, numComp, numDof, + * bcField=None, bcComps=None, bcPoints=None, # <<<<<<<<<<<<<< + * IS perm=None): + * # topological dimension + */ + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMPlex.pyx":626 + * def createSection(self, numComp, numDof, + * bcField=None, bcComps=None, bcPoints=None, + * IS perm=None): # <<<<<<<<<<<<<< + * # topological dimension + * cdef PetscInt dim = 0 + */ + values[5] = (PyObject *)((struct PyPetscISObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numComp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numDof)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createSection", 0, 2, 6, 1); __PYX_ERR(56, 624, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bcField); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bcComps); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bcPoints); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_perm); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createSection") < 0)) __PYX_ERR(56, 624, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_numComp = values[0]; + __pyx_v_numDof = values[1]; + __pyx_v_bcField = values[2]; + __pyx_v_bcComps = values[3]; + __pyx_v_bcPoints = values[4]; + __pyx_v_perm = ((struct PyPetscISObject *)values[5]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createSection", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 624, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_perm), __pyx_ptype_8petsc4py_5PETSc_IS, 1, "perm", 0))) __PYX_ERR(56, 626, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_148createSection(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_numComp, __pyx_v_numDof, __pyx_v_bcField, __pyx_v_bcComps, __pyx_v_bcPoints, __pyx_v_perm); + + /* "petsc4py/PETSc/DMPlex.pyx":624 + * return fpoint + * + * def createSection(self, numComp, numDof, # <<<<<<<<<<<<<< + * bcField=None, bcComps=None, bcPoints=None, + * IS perm=None): + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_148createSection(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_numComp, PyObject *__pyx_v_numDof, PyObject *__pyx_v_bcField, PyObject *__pyx_v_bcComps, PyObject *__pyx_v_bcPoints, struct PyPetscISObject *__pyx_v_perm) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_ncomp; + PetscInt __pyx_v_ndof; + PetscInt *__pyx_v_icomp; + PetscInt *__pyx_v_idof; + PetscInt __pyx_v_nbc; + PetscInt __pyx_v_i; + PetscInt *__pyx_v_bcfield; + IS *__pyx_v_bccomps; + IS *__pyx_v_bcpoints; + CYTHON_UNUSED PyArrayObject *__pyx_v_tmp1 = NULL; + CYTHON_UNUSED PyArrayObject *__pyx_v_tmp2 = NULL; + IS __pyx_v_cperm; + struct PyPetscSectionObject *__pyx_v_sec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PetscInt __pyx_t_7; + IS __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createSection", 0); + __Pyx_INCREF(__pyx_v_numComp); + __Pyx_INCREF(__pyx_v_numDof); + __Pyx_INCREF(__pyx_v_bcField); + __Pyx_INCREF(__pyx_v_bcComps); + __Pyx_INCREF(__pyx_v_bcPoints); + + /* "petsc4py/PETSc/DMPlex.pyx":628 + * IS perm=None): + * # topological dimension + * cdef PetscInt dim = 0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * # components and DOFs + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":629 + * # topological dimension + * cdef PetscInt dim = 0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * # components and DOFs + * cdef PetscInt ncomp = 0, ndof = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 629, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":631 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * # components and DOFs + * cdef PetscInt ncomp = 0, ndof = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *icomp = NULL, *idof = NULL + * numComp = iarray_i(numComp, &ncomp, &icomp) + */ + __pyx_v_ncomp = 0; + __pyx_v_ndof = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":632 + * # components and DOFs + * cdef PetscInt ncomp = 0, ndof = 0 + * cdef PetscInt *icomp = NULL, *idof = NULL # <<<<<<<<<<<<<< + * numComp = iarray_i(numComp, &ncomp, &icomp) + * numDof = iarray_i(numDof, &ndof, &idof) + */ + __pyx_v_icomp = NULL; + __pyx_v_idof = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":633 + * cdef PetscInt ncomp = 0, ndof = 0 + * cdef PetscInt *icomp = NULL, *idof = NULL + * numComp = iarray_i(numComp, &ncomp, &icomp) # <<<<<<<<<<<<<< + * numDof = iarray_i(numDof, &ndof, &idof) + * assert ndof == ncomp*(dim+1) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_numComp, (&__pyx_v_ncomp), (&__pyx_v_icomp))); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_numComp, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":634 + * cdef PetscInt *icomp = NULL, *idof = NULL + * numComp = iarray_i(numComp, &ncomp, &icomp) + * numDof = iarray_i(numDof, &ndof, &idof) # <<<<<<<<<<<<<< + * assert ndof == ncomp*(dim+1) + * # boundary conditions + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_numDof, (&__pyx_v_ndof), (&__pyx_v_idof))); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_numDof, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":635 + * numComp = iarray_i(numComp, &ncomp, &icomp) + * numDof = iarray_i(numDof, &ndof, &idof) + * assert ndof == ncomp*(dim+1) # <<<<<<<<<<<<<< + * # boundary conditions + * cdef PetscInt nbc = 0, i = 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_ndof == (__pyx_v_ncomp * (__pyx_v_dim + 1))) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 635, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":637 + * assert ndof == ncomp*(dim+1) + * # boundary conditions + * cdef PetscInt nbc = 0, i = 0 # <<<<<<<<<<<<<< + * cdef PetscInt *bcfield = NULL + * cdef PetscIS *bccomps = NULL + */ + __pyx_v_nbc = 0; + __pyx_v_i = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":638 + * # boundary conditions + * cdef PetscInt nbc = 0, i = 0 + * cdef PetscInt *bcfield = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *bccomps = NULL + * cdef PetscIS *bcpoints = NULL + */ + __pyx_v_bcfield = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":639 + * cdef PetscInt nbc = 0, i = 0 + * cdef PetscInt *bcfield = NULL + * cdef PetscIS *bccomps = NULL # <<<<<<<<<<<<<< + * cdef PetscIS *bcpoints = NULL + * if bcField is not None: + */ + __pyx_v_bccomps = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":640 + * cdef PetscInt *bcfield = NULL + * cdef PetscIS *bccomps = NULL + * cdef PetscIS *bcpoints = NULL # <<<<<<<<<<<<<< + * if bcField is not None: + * bcField = iarray_i(bcField, &nbc, &bcfield) + */ + __pyx_v_bcpoints = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":641 + * cdef PetscIS *bccomps = NULL + * cdef PetscIS *bcpoints = NULL + * if bcField is not None: # <<<<<<<<<<<<<< + * bcField = iarray_i(bcField, &nbc, &bcfield) + * if bcComps is not None: + */ + __pyx_t_3 = (__pyx_v_bcField != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/DMPlex.pyx":642 + * cdef PetscIS *bcpoints = NULL + * if bcField is not None: + * bcField = iarray_i(bcField, &nbc, &bcfield) # <<<<<<<<<<<<<< + * if bcComps is not None: + * bcComps = list(bcComps) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_bcField, (&__pyx_v_nbc), (&__pyx_v_bcfield))); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_bcField, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":643 + * if bcField is not None: + * bcField = iarray_i(bcField, &nbc, &bcfield) + * if bcComps is not None: # <<<<<<<<<<<<<< + * bcComps = list(bcComps) + * assert len(bcComps) == nbc + */ + __pyx_t_4 = (__pyx_v_bcComps != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMPlex.pyx":644 + * bcField = iarray_i(bcField, &nbc, &bcfield) + * if bcComps is not None: + * bcComps = list(bcComps) # <<<<<<<<<<<<<< + * assert len(bcComps) == nbc + * tmp1 = oarray_p(empty_p(nbc), NULL, &bccomps) + */ + __pyx_t_2 = PySequence_List(__pyx_v_bcComps); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_bcComps, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":645 + * if bcComps is not None: + * bcComps = list(bcComps) + * assert len(bcComps) == nbc # <<<<<<<<<<<<<< + * tmp1 = oarray_p(empty_p(nbc), NULL, &bccomps) + * for i from 0 <= i < nbc: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_5 = PyObject_Length(__pyx_v_bcComps); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(56, 645, __pyx_L1_error) + if (unlikely(!((__pyx_t_5 == __pyx_v_nbc) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 645, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":646 + * bcComps = list(bcComps) + * assert len(bcComps) == nbc + * tmp1 = oarray_p(empty_p(nbc), NULL, &bccomps) # <<<<<<<<<<<<<< + * for i from 0 <= i < nbc: + * bccomps[i] = (bcComps[i]).iset + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nbc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_bccomps)))); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp1 = ((PyArrayObject *)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":647 + * assert len(bcComps) == nbc + * tmp1 = oarray_p(empty_p(nbc), NULL, &bccomps) + * for i from 0 <= i < nbc: # <<<<<<<<<<<<<< + * bccomps[i] = (bcComps[i]).iset + * if bcPoints is not None: + */ + __pyx_t_7 = __pyx_v_nbc; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMPlex.pyx":648 + * tmp1 = oarray_p(empty_p(nbc), NULL, &bccomps) + * for i from 0 <= i < nbc: + * bccomps[i] = (bcComps[i]).iset # <<<<<<<<<<<<<< + * if bcPoints is not None: + * bcPoints = list(bcPoints) + */ + __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_bcComps, ((Py_ssize_t)__pyx_v_i), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (!(likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(56, 648, __pyx_L1_error) + __pyx_t_8 = ((struct PyPetscISObject *)__pyx_t_6)->iset; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + (__pyx_v_bccomps[__pyx_v_i]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/DMPlex.pyx":643 + * if bcField is not None: + * bcField = iarray_i(bcField, &nbc, &bcfield) + * if bcComps is not None: # <<<<<<<<<<<<<< + * bcComps = list(bcComps) + * assert len(bcComps) == nbc + */ + } + + /* "petsc4py/PETSc/DMPlex.pyx":649 + * for i from 0 <= i < nbc: + * bccomps[i] = (bcComps[i]).iset + * if bcPoints is not None: # <<<<<<<<<<<<<< + * bcPoints = list(bcPoints) + * assert len(bcPoints) == nbc + */ + __pyx_t_3 = (__pyx_v_bcPoints != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (likely(__pyx_t_4)) { + + /* "petsc4py/PETSc/DMPlex.pyx":650 + * bccomps[i] = (bcComps[i]).iset + * if bcPoints is not None: + * bcPoints = list(bcPoints) # <<<<<<<<<<<<<< + * assert len(bcPoints) == nbc + * tmp2 = oarray_p(empty_p(nbc), NULL, &bcpoints) + */ + __pyx_t_6 = PySequence_List(__pyx_v_bcPoints); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_bcPoints, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":651 + * if bcPoints is not None: + * bcPoints = list(bcPoints) + * assert len(bcPoints) == nbc # <<<<<<<<<<<<<< + * tmp2 = oarray_p(empty_p(nbc), NULL, &bcpoints) + * for i from 0 <= i < nbc: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_5 = PyObject_Length(__pyx_v_bcPoints); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(56, 651, __pyx_L1_error) + if (unlikely(!((__pyx_t_5 == __pyx_v_nbc) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 651, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":652 + * bcPoints = list(bcPoints) + * assert len(bcPoints) == nbc + * tmp2 = oarray_p(empty_p(nbc), NULL, &bcpoints) # <<<<<<<<<<<<<< + * for i from 0 <= i < nbc: + * bcpoints[i] = (bcPoints[i]).iset + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_nbc)); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_6, NULL, ((void **)(&__pyx_v_bcpoints)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_tmp2 = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":653 + * assert len(bcPoints) == nbc + * tmp2 = oarray_p(empty_p(nbc), NULL, &bcpoints) + * for i from 0 <= i < nbc: # <<<<<<<<<<<<<< + * bcpoints[i] = (bcPoints[i]).iset + * else: + */ + __pyx_t_7 = __pyx_v_nbc; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMPlex.pyx":654 + * tmp2 = oarray_p(empty_p(nbc), NULL, &bcpoints) + * for i from 0 <= i < nbc: + * bcpoints[i] = (bcPoints[i]).iset # <<<<<<<<<<<<<< + * else: + * raise ValueError("bcPoints is a required argument") + */ + __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_bcPoints, ((Py_ssize_t)__pyx_v_i), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 654, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (!(likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(56, 654, __pyx_L1_error) + __pyx_t_8 = ((struct PyPetscISObject *)__pyx_t_2)->iset; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + (__pyx_v_bcpoints[__pyx_v_i]) = __pyx_t_8; + } + + /* "petsc4py/PETSc/DMPlex.pyx":649 + * for i from 0 <= i < nbc: + * bccomps[i] = (bcComps[i]).iset + * if bcPoints is not None: # <<<<<<<<<<<<<< + * bcPoints = list(bcPoints) + * assert len(bcPoints) == nbc + */ + goto __pyx_L7; + } + + /* "petsc4py/PETSc/DMPlex.pyx":656 + * bcpoints[i] = (bcPoints[i]).iset + * else: + * raise ValueError("bcPoints is a required argument") # <<<<<<<<<<<<<< + * else: + * assert bcComps is None + */ + /*else*/ { + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__52, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(56, 656, __pyx_L1_error) + } + __pyx_L7:; + + /* "petsc4py/PETSc/DMPlex.pyx":641 + * cdef PetscIS *bccomps = NULL + * cdef PetscIS *bcpoints = NULL + * if bcField is not None: # <<<<<<<<<<<<<< + * bcField = iarray_i(bcField, &nbc, &bcfield) + * if bcComps is not None: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMPlex.pyx":658 + * raise ValueError("bcPoints is a required argument") + * else: + * assert bcComps is None # <<<<<<<<<<<<<< + * assert bcPoints is None + * # optional chart permutations + */ + /*else*/ { + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_bcComps == Py_None); + if (unlikely(!(__pyx_t_4 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 658, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMPlex.pyx":659 + * else: + * assert bcComps is None + * assert bcPoints is None # <<<<<<<<<<<<<< + * # optional chart permutations + * cdef PetscIS cperm = NULL + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_4 = (__pyx_v_bcPoints == Py_None); + if (unlikely(!(__pyx_t_4 != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(56, 659, __pyx_L1_error) + } + } + #endif + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMPlex.pyx":661 + * assert bcPoints is None + * # optional chart permutations + * cdef PetscIS cperm = NULL # <<<<<<<<<<<<<< + * if perm is not None: cperm = perm.iset + * # create section + */ + __pyx_v_cperm = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":662 + * # optional chart permutations + * cdef PetscIS cperm = NULL + * if perm is not None: cperm = perm.iset # <<<<<<<<<<<<<< + * # create section + * cdef Section sec = Section() + */ + __pyx_t_4 = (((PyObject *)__pyx_v_perm) != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + __pyx_t_8 = __pyx_v_perm->iset; + __pyx_v_cperm = __pyx_t_8; + } + + /* "petsc4py/PETSc/DMPlex.pyx":664 + * if perm is not None: cperm = perm.iset + * # create section + * cdef Section sec = Section() # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateSection(self.dm, NULL, icomp, idof, + * nbc, bcfield, bccomps, bcpoints, + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_sec = ((struct PyPetscSectionObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":665 + * # create section + * cdef Section sec = Section() + * CHKERR( DMPlexCreateSection(self.dm, NULL, icomp, idof, # <<<<<<<<<<<<<< + * nbc, bcfield, bccomps, bcpoints, + * cperm, &sec.sec) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateSection(__pyx_v_self->__pyx_base.dm, NULL, __pyx_v_icomp, __pyx_v_idof, __pyx_v_nbc, __pyx_v_bcfield, __pyx_v_bccomps, __pyx_v_bcpoints, __pyx_v_cperm, (&__pyx_v_sec->sec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 665, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":668 + * nbc, bcfield, bccomps, bcpoints, + * cperm, &sec.sec) ) + * return sec # <<<<<<<<<<<<<< + * + * def getPointLocal(self, point): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sec)); + __pyx_r = ((PyObject *)__pyx_v_sec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":624 + * return fpoint + * + * def createSection(self, numComp, numDof, # <<<<<<<<<<<<<< + * bcField=None, bcComps=None, bcPoints=None, + * IS perm=None): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_tmp1); + __Pyx_XDECREF((PyObject *)__pyx_v_tmp2); + __Pyx_XDECREF((PyObject *)__pyx_v_sec); + __Pyx_XDECREF(__pyx_v_numComp); + __Pyx_XDECREF(__pyx_v_numDof); + __Pyx_XDECREF(__pyx_v_bcField); + __Pyx_XDECREF(__pyx_v_bcComps); + __Pyx_XDECREF(__pyx_v_bcPoints); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":670 + * return sec + * + * def getPointLocal(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_151getPointLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_150getPointLocal[] = "DMPlex.getPointLocal(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_151getPointLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointLocal") < 0)) __PYX_ERR(56, 670, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointLocal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 670, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_150getPointLocal(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_150getPointLocal(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_start; + PetscInt __pyx_v_end; + PetscInt __pyx_v_cpoint; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointLocal", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":671 + * + * def getPointLocal(self, point): + * cdef PetscInt start = 0, end = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointLocal(self.dm, cpoint, &start, &end) ) + */ + __pyx_v_start = 0; + __pyx_v_end = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":672 + * def getPointLocal(self, point): + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointLocal(self.dm, cpoint, &start, &end) ) + * return toInt(start), toInt(end) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 672, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":673 + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointLocal(self.dm, cpoint, &start, &end) ) # <<<<<<<<<<<<<< + * return toInt(start), toInt(end) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointLocal(__pyx_v_self->__pyx_base.dm, __pyx_v_cpoint, (&__pyx_v_start), (&__pyx_v_end))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 673, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":674 + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointLocal(self.dm, cpoint, &start, &end) ) + * return toInt(start), toInt(end) # <<<<<<<<<<<<<< + * + * def getPointLocalField(self, point, field): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_end); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":670 + * return sec + * + * def getPointLocal(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":676 + * return toInt(start), toInt(end) + * + * def getPointLocalField(self, point, field): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_153getPointLocalField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_152getPointLocalField[] = "DMPlex.getPointLocalField(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_153getPointLocalField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointLocalField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getPointLocalField", 1, 2, 2, 1); __PYX_ERR(56, 676, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointLocalField") < 0)) __PYX_ERR(56, 676, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointLocalField", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 676, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointLocalField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_152getPointLocalField(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_152getPointLocalField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_start; + PetscInt __pyx_v_end; + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointLocalField", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":677 + * + * def getPointLocalField(self, point, field): + * cdef PetscInt start = 0, end = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + __pyx_v_start = 0; + __pyx_v_end = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":678 + * def getPointLocalField(self, point, field): + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointLocalField(self.dm, cpoint, cfield, &start, &end) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 678, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":679 + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointLocalField(self.dm, cpoint, cfield, &start, &end) ) + * return toInt(start), toInt(end) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 679, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":680 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointLocalField(self.dm, cpoint, cfield, &start, &end) ) # <<<<<<<<<<<<<< + * return toInt(start), toInt(end) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointLocalField(__pyx_v_self->__pyx_base.dm, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_start), (&__pyx_v_end))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 680, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":681 + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointLocalField(self.dm, cpoint, cfield, &start, &end) ) + * return toInt(start), toInt(end) # <<<<<<<<<<<<<< + * + * def getPointGlobal(self, point): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_end); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":676 + * return toInt(start), toInt(end) + * + * def getPointLocalField(self, point, field): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointLocalField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":683 + * return toInt(start), toInt(end) + * + * def getPointGlobal(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_155getPointGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_154getPointGlobal[] = "DMPlex.getPointGlobal(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_155getPointGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointGlobal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointGlobal") < 0)) __PYX_ERR(56, 683, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointGlobal", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 683, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_154getPointGlobal(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_154getPointGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_start; + PetscInt __pyx_v_end; + PetscInt __pyx_v_cpoint; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointGlobal", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":684 + * + * def getPointGlobal(self, point): + * cdef PetscInt start = 0, end = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointGlobal(self.dm, cpoint, &start, &end) ) + */ + __pyx_v_start = 0; + __pyx_v_end = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":685 + * def getPointGlobal(self, point): + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointGlobal(self.dm, cpoint, &start, &end) ) + * return toInt(start), toInt(end) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 685, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":686 + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointGlobal(self.dm, cpoint, &start, &end) ) # <<<<<<<<<<<<<< + * return toInt(start), toInt(end) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointGlobal(__pyx_v_self->__pyx_base.dm, __pyx_v_cpoint, (&__pyx_v_start), (&__pyx_v_end))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 686, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":687 + * cdef PetscInt cpoint = asInt(point) + * CHKERR( DMPlexGetPointGlobal(self.dm, cpoint, &start, &end) ) + * return toInt(start), toInt(end) # <<<<<<<<<<<<<< + * + * def getPointGlobalField(self, point, field): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_end); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":683 + * return toInt(start), toInt(end) + * + * def getPointGlobal(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":689 + * return toInt(start), toInt(end) + * + * def getPointGlobalField(self, point, field): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_157getPointGlobalField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_156getPointGlobalField[] = "DMPlex.getPointGlobalField(self, point, field)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_157getPointGlobalField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointGlobalField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getPointGlobalField", 1, 2, 2, 1); __PYX_ERR(56, 689, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getPointGlobalField") < 0)) __PYX_ERR(56, 689, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getPointGlobalField", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 689, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointGlobalField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_156getPointGlobalField(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_point, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_156getPointGlobalField(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_field) { + PetscInt __pyx_v_start; + PetscInt __pyx_v_end; + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cfield; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointGlobalField", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":690 + * + * def getPointGlobalField(self, point, field): + * cdef PetscInt start = 0, end = 0 # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + */ + __pyx_v_start = 0; + __pyx_v_end = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":691 + * def getPointGlobalField(self, point, field): + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointGlobalField(self.dm, cpoint, cfield, &start, &end) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 691, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":692 + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetPointGlobalField(self.dm, cpoint, cfield, &start, &end) ) + * return toInt(start), toInt(end) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_field); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 692, __pyx_L1_error) + __pyx_v_cfield = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":693 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointGlobalField(self.dm, cpoint, cfield, &start, &end) ) # <<<<<<<<<<<<<< + * return toInt(start), toInt(end) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetPointGlobalField(__pyx_v_self->__pyx_base.dm, __pyx_v_cpoint, __pyx_v_cfield, (&__pyx_v_start), (&__pyx_v_end))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 693, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":694 + * cdef PetscInt cfield = asInt(field) + * CHKERR( DMPlexGetPointGlobalField(self.dm, cpoint, cfield, &start, &end) ) + * return toInt(start), toInt(end) # <<<<<<<<<<<<<< + * + * def createClosureIndex(self, Section sec or None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_end); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 694, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":689 + * return toInt(start), toInt(end) + * + * def getPointGlobalField(self, point, field): # <<<<<<<<<<<<<< + * cdef PetscInt start = 0, end = 0 + * cdef PetscInt cpoint = asInt(point) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getPointGlobalField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":696 + * return toInt(start), toInt(end) + * + * def createClosureIndex(self, Section sec or None): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * CHKERR( DMPlexCreateClosureIndex(self.dm, csec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_159createClosureIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_158createClosureIndex[] = "DMPlex.createClosureIndex(self, Section sec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_159createClosureIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSectionObject *__pyx_v_sec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createClosureIndex (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createClosureIndex") < 0)) __PYX_ERR(56, 696, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sec = ((struct PyPetscSectionObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createClosureIndex", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 696, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createClosureIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sec), __pyx_ptype_8petsc4py_5PETSc_Section, 1, "sec", 0))) __PYX_ERR(56, 696, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_158createClosureIndex(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_sec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_158createClosureIndex(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscSectionObject *__pyx_v_sec) { + PetscSection __pyx_v_csec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscSection __pyx_t_1; + int __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createClosureIndex", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":697 + * + * def createClosureIndex(self, Section sec or None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexCreateClosureIndex(self.dm, csec) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_sec) != Py_None); + if ((__pyx_t_2 != 0)) { + __pyx_t_1 = __pyx_v_sec->sec; + } else { + __pyx_t_1 = NULL; + } + __pyx_v_csec = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":698 + * def createClosureIndex(self, Section sec or None): + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * CHKERR( DMPlexCreateClosureIndex(self.dm, csec) ) # <<<<<<<<<<<<<< + * + * # + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCreateClosureIndex(__pyx_v_self->__pyx_base.dm, __pyx_v_csec)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 698, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":696 + * return toInt(start), toInt(end) + * + * def createClosureIndex(self, Section sec or None): # <<<<<<<<<<<<<< + * cdef PetscSection csec = sec.sec if sec is not None else NULL + * CHKERR( DMPlexCreateClosureIndex(self.dm, csec) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.createClosureIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":702 + * # + * + * def setRefinementUniform(self, refinementUniform=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = refinementUniform + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_161setRefinementUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_160setRefinementUniform[] = "DMPlex.setRefinementUniform(self, refinementUniform=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_161setRefinementUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_refinementUniform = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRefinementUniform (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_refinementUniform,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refinementUniform); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRefinementUniform") < 0)) __PYX_ERR(56, 702, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_refinementUniform = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRefinementUniform", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 702, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setRefinementUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_160setRefinementUniform(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_refinementUniform); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_160setRefinementUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_refinementUniform) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRefinementUniform", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":703 + * + * def setRefinementUniform(self, refinementUniform=True): + * cdef PetscBool flag = refinementUniform # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_refinementUniform)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 703, __pyx_L1_error) + __pyx_v_flag = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":704 + * def setRefinementUniform(self, refinementUniform=True): + * cdef PetscBool flag = refinementUniform + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) # <<<<<<<<<<<<<< + * + * def getRefinementUniform(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetRefinementUniform(__pyx_v_self->__pyx_base.dm, __pyx_v_flag)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 704, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":702 + * # + * + * def setRefinementUniform(self, refinementUniform=True): # <<<<<<<<<<<<<< + * cdef PetscBool flag = refinementUniform + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setRefinementUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":706 + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) + * + * def getRefinementUniform(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetRefinementUniform(self.dm, &flag) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_163getRefinementUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_162getRefinementUniform[] = "DMPlex.getRefinementUniform(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_163getRefinementUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRefinementUniform (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRefinementUniform", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRefinementUniform", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_162getRefinementUniform(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_162getRefinementUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_flag; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRefinementUniform", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":707 + * + * def getRefinementUniform(self): + * cdef PetscBool flag = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetRefinementUniform(self.dm, &flag) ) + * return toBool(flag) + */ + __pyx_v_flag = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":708 + * def getRefinementUniform(self): + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetRefinementUniform(self.dm, &flag) ) # <<<<<<<<<<<<<< + * return toBool(flag) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetRefinementUniform(__pyx_v_self->__pyx_base.dm, (&__pyx_v_flag))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 708, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":709 + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetRefinementUniform(self.dm, &flag) ) + * return toBool(flag) # <<<<<<<<<<<<<< + * + * def setRefinementLimit(self, refinementLimit): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_flag); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":706 + * CHKERR( DMPlexSetRefinementUniform(self.dm, flag) ) + * + * def getRefinementUniform(self): # <<<<<<<<<<<<<< + * cdef PetscBool flag = PETSC_FALSE + * CHKERR( DMPlexGetRefinementUniform(self.dm, &flag) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getRefinementUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":711 + * return toBool(flag) + * + * def setRefinementLimit(self, refinementLimit): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(refinementLimit) + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_165setRefinementLimit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_164setRefinementLimit[] = "DMPlex.setRefinementLimit(self, refinementLimit)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_165setRefinementLimit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_refinementLimit = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRefinementLimit (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_refinementLimit,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refinementLimit)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRefinementLimit") < 0)) __PYX_ERR(56, 711, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_refinementLimit = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRefinementLimit", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 711, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setRefinementLimit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_164setRefinementLimit(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_refinementLimit); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_164setRefinementLimit(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_refinementLimit) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRefinementLimit", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":712 + * + * def setRefinementLimit(self, refinementLimit): + * cdef PetscReal rval = asReal(refinementLimit) # <<<<<<<<<<<<<< + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_refinementLimit); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(56, 712, __pyx_L1_error) + __pyx_v_rval = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":713 + * def setRefinementLimit(self, refinementLimit): + * cdef PetscReal rval = asReal(refinementLimit) + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) # <<<<<<<<<<<<<< + * + * def getRefinementLimit(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSetRefinementLimit(__pyx_v_self->__pyx_base.dm, __pyx_v_rval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 713, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":711 + * return toBool(flag) + * + * def setRefinementLimit(self, refinementLimit): # <<<<<<<<<<<<<< + * cdef PetscReal rval = asReal(refinementLimit) + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.setRefinementLimit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":715 + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) + * + * def getRefinementLimit(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0.0 + * CHKERR( DMPlexGetRefinementLimit(self.dm, &rval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_167getRefinementLimit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_166getRefinementLimit[] = "DMPlex.getRefinementLimit(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_167getRefinementLimit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getRefinementLimit (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getRefinementLimit", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getRefinementLimit", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_166getRefinementLimit(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_166getRefinementLimit(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_rval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getRefinementLimit", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":716 + * + * def getRefinementLimit(self): + * cdef PetscReal rval = 0.0 # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetRefinementLimit(self.dm, &rval) ) + * return toReal(rval) + */ + __pyx_v_rval = 0.0; + + /* "petsc4py/PETSc/DMPlex.pyx":717 + * def getRefinementLimit(self): + * cdef PetscReal rval = 0.0 + * CHKERR( DMPlexGetRefinementLimit(self.dm, &rval) ) # <<<<<<<<<<<<<< + * return toReal(rval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetRefinementLimit(__pyx_v_self->__pyx_base.dm, (&__pyx_v_rval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 717, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":718 + * cdef PetscReal rval = 0.0 + * CHKERR( DMPlexGetRefinementLimit(self.dm, &rval) ) + * return toReal(rval) # <<<<<<<<<<<<<< + * + * def getOrdering(self, otype): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_rval); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":715 + * CHKERR( DMPlexSetRefinementLimit(self.dm, rval) ) + * + * def getRefinementLimit(self): # <<<<<<<<<<<<<< + * cdef PetscReal rval = 0.0 + * CHKERR( DMPlexGetRefinementLimit(self.dm, &rval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getRefinementLimit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":720 + * return toReal(rval) + * + * def getOrdering(self, otype): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * cdef PetscDMLabel label = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_169getOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_168getOrdering[] = "DMPlex.getOrdering(self, otype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_169getOrdering(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_otype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOrdering (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_otype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_otype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getOrdering") < 0)) __PYX_ERR(56, 720, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_otype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getOrdering", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 720, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_168getOrdering(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_otype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_168getOrdering(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_otype) { + MatOrderingType __pyx_v_cval; + DMLabel __pyx_v_label; + struct PyPetscISObject *__pyx_v_perm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOrdering", 0); + __Pyx_INCREF(__pyx_v_otype); + + /* "petsc4py/PETSc/DMPlex.pyx":721 + * + * def getOrdering(self, otype): + * cdef PetscMatOrderingType cval = NULL # <<<<<<<<<<<<<< + * cdef PetscDMLabel label = NULL + * otype = str2bytes(otype, &cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":722 + * def getOrdering(self, otype): + * cdef PetscMatOrderingType cval = NULL + * cdef PetscDMLabel label = NULL # <<<<<<<<<<<<<< + * otype = str2bytes(otype, &cval) + * cdef IS perm = IS() + */ + __pyx_v_label = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":723 + * cdef PetscMatOrderingType cval = NULL + * cdef PetscDMLabel label = NULL + * otype = str2bytes(otype, &cval) # <<<<<<<<<<<<<< + * cdef IS perm = IS() + * CHKERR( DMPlexGetOrdering(self.dm, cval, label, &perm.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_otype, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_otype, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":724 + * cdef PetscDMLabel label = NULL + * otype = str2bytes(otype, &cval) + * cdef IS perm = IS() # <<<<<<<<<<<<<< + * CHKERR( DMPlexGetOrdering(self.dm, cval, label, &perm.iset) ) + * return perm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_perm = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":725 + * otype = str2bytes(otype, &cval) + * cdef IS perm = IS() + * CHKERR( DMPlexGetOrdering(self.dm, cval, label, &perm.iset) ) # <<<<<<<<<<<<<< + * return perm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGetOrdering(__pyx_v_self->__pyx_base.dm, __pyx_v_cval, __pyx_v_label, (&__pyx_v_perm->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 725, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":726 + * cdef IS perm = IS() + * CHKERR( DMPlexGetOrdering(self.dm, cval, label, &perm.iset) ) + * return perm # <<<<<<<<<<<<<< + * + * def permute(self, IS perm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_perm)); + __pyx_r = ((PyObject *)__pyx_v_perm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":720 + * return toReal(rval) + * + * def getOrdering(self, otype): # <<<<<<<<<<<<<< + * cdef PetscMatOrderingType cval = NULL + * cdef PetscDMLabel label = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.getOrdering", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_perm); + __Pyx_XDECREF(__pyx_v_otype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":728 + * return perm + * + * def permute(self, IS perm): # <<<<<<<<<<<<<< + * cdef DMPlex dm = type(self)() + * CHKERR( DMPlexPermute(self.dm, perm.iset, &dm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_171permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_170permute[] = "DMPlex.permute(self, IS perm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_171permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_perm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("permute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_perm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_perm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "permute") < 0)) __PYX_ERR(56, 728, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_perm = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("permute", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 728, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_perm), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "perm", 0))) __PYX_ERR(56, 728, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_170permute(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_perm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_170permute(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscISObject *__pyx_v_perm) { + struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("permute", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":729 + * + * def permute(self, IS perm): + * cdef DMPlex dm = type(self)() # <<<<<<<<<<<<<< + * CHKERR( DMPlexPermute(self.dm, perm.iset, &dm.dm) ) + * return dm + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_2 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __pyx_t_1; + __Pyx_INCREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_dm = ((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":730 + * def permute(self, IS perm): + * cdef DMPlex dm = type(self)() + * CHKERR( DMPlexPermute(self.dm, perm.iset, &dm.dm) ) # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexPermute(__pyx_v_self->__pyx_base.dm, __pyx_v_perm->iset, (&__pyx_v_dm->__pyx_base.dm))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 730, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":731 + * cdef DMPlex dm = type(self)() + * CHKERR( DMPlexPermute(self.dm, perm.iset, &dm.dm) ) + * return dm # <<<<<<<<<<<<<< + * + * def reorderGetDefault(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":728 + * return perm + * + * def permute(self, IS perm): # <<<<<<<<<<<<<< + * cdef DMPlex dm = type(self)() + * CHKERR( DMPlexPermute(self.dm, perm.iset, &dm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":733 + * return dm + * + * def reorderGetDefault(self): # <<<<<<<<<<<<<< + * cdef PetscDMPlexReorderDefaultFlag reorder = DMPLEX_REORDER_DEFAULT_NOTSET + * CHKERR( DMPlexReorderGetDefault(self.dm, &reorder) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_173reorderGetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_172reorderGetDefault[] = "DMPlex.reorderGetDefault(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_173reorderGetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reorderGetDefault (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reorderGetDefault", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reorderGetDefault", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_172reorderGetDefault(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_172reorderGetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + DMPlexReorderDefaultFlag __pyx_v_reorder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reorderGetDefault", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":734 + * + * def reorderGetDefault(self): + * cdef PetscDMPlexReorderDefaultFlag reorder = DMPLEX_REORDER_DEFAULT_NOTSET # <<<<<<<<<<<<<< + * CHKERR( DMPlexReorderGetDefault(self.dm, &reorder) ) + * return reorder + */ + __pyx_v_reorder = DMPLEX_REORDER_DEFAULT_NOTSET; + + /* "petsc4py/PETSc/DMPlex.pyx":735 + * def reorderGetDefault(self): + * cdef PetscDMPlexReorderDefaultFlag reorder = DMPLEX_REORDER_DEFAULT_NOTSET + * CHKERR( DMPlexReorderGetDefault(self.dm, &reorder) ) # <<<<<<<<<<<<<< + * return reorder + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexReorderGetDefault(__pyx_v_self->__pyx_base.dm, (&__pyx_v_reorder))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 735, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":736 + * cdef PetscDMPlexReorderDefaultFlag reorder = DMPLEX_REORDER_DEFAULT_NOTSET + * CHKERR( DMPlexReorderGetDefault(self.dm, &reorder) ) + * return reorder # <<<<<<<<<<<<<< + * + * def reorderSetDefault(self, flag): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_DMPlexReorderDefaultFlag(__pyx_v_reorder); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 736, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":733 + * return dm + * + * def reorderGetDefault(self): # <<<<<<<<<<<<<< + * cdef PetscDMPlexReorderDefaultFlag reorder = DMPLEX_REORDER_DEFAULT_NOTSET + * CHKERR( DMPlexReorderGetDefault(self.dm, &reorder) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.reorderGetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":738 + * return reorder + * + * def reorderSetDefault(self, flag): # <<<<<<<<<<<<<< + * cdef PetscDMPlexReorderDefaultFlag reorder = flag + * CHKERR( DMPlexReorderSetDefault(self.dm, reorder) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_175reorderSetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_174reorderSetDefault[] = "DMPlex.reorderSetDefault(self, flag)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_175reorderSetDefault(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_flag = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reorderSetDefault (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_flag,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flag)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "reorderSetDefault") < 0)) __PYX_ERR(56, 738, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_flag = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("reorderSetDefault", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 738, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.reorderSetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_174reorderSetDefault(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_flag); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_174reorderSetDefault(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_flag) { + DMPlexReorderDefaultFlag __pyx_v_reorder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMPlexReorderDefaultFlag __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reorderSetDefault", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":739 + * + * def reorderSetDefault(self, flag): + * cdef PetscDMPlexReorderDefaultFlag reorder = flag # <<<<<<<<<<<<<< + * CHKERR( DMPlexReorderSetDefault(self.dm, reorder) ) + * return + */ + __pyx_t_1 = ((DMPlexReorderDefaultFlag)__Pyx_PyInt_As_DMPlexReorderDefaultFlag(__pyx_v_flag)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 739, __pyx_L1_error) + __pyx_v_reorder = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":740 + * def reorderSetDefault(self, flag): + * cdef PetscDMPlexReorderDefaultFlag reorder = flag + * CHKERR( DMPlexReorderSetDefault(self.dm, reorder) ) # <<<<<<<<<<<<<< + * return + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexReorderSetDefault(__pyx_v_self->__pyx_base.dm, __pyx_v_reorder)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 740, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":741 + * cdef PetscDMPlexReorderDefaultFlag reorder = flag + * CHKERR( DMPlexReorderSetDefault(self.dm, reorder) ) + * return # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":738 + * return reorder + * + * def reorderSetDefault(self, flag): # <<<<<<<<<<<<<< + * cdef PetscDMPlexReorderDefaultFlag reorder = flag + * CHKERR( DMPlexReorderSetDefault(self.dm, reorder) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.reorderSetDefault", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":745 + * # + * + * def computeCellGeometryFVM(self, cell): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * cdef PetscInt ccell = asInt(cell) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_177computeCellGeometryFVM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_176computeCellGeometryFVM[] = "DMPlex.computeCellGeometryFVM(self, cell)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_177computeCellGeometryFVM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_cell = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeCellGeometryFVM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cell,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cell)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeCellGeometryFVM") < 0)) __PYX_ERR(56, 745, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_cell = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeCellGeometryFVM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 745, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.computeCellGeometryFVM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_176computeCellGeometryFVM(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_cell); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_176computeCellGeometryFVM(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_cell) { + PetscInt __pyx_v_cdim; + PetscInt __pyx_v_ccell; + PetscReal __pyx_v_vol; + PetscReal __pyx_v_centroid[3]; + PetscReal __pyx_v_normal[3]; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeCellGeometryFVM", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":746 + * + * def computeCellGeometryFVM(self, cell): + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * cdef PetscInt ccell = asInt(cell) + * CHKERR( DMGetCoordinateDim(self.dm, &cdim) ) + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":747 + * def computeCellGeometryFVM(self, cell): + * cdef PetscInt cdim = 0 + * cdef PetscInt ccell = asInt(cell) # <<<<<<<<<<<<<< + * CHKERR( DMGetCoordinateDim(self.dm, &cdim) ) + * cdef PetscReal vol = 0, centroid[3], normal[3] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_cell); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(56, 747, __pyx_L1_error) + __pyx_v_ccell = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":748 + * cdef PetscInt cdim = 0 + * cdef PetscInt ccell = asInt(cell) + * CHKERR( DMGetCoordinateDim(self.dm, &cdim) ) # <<<<<<<<<<<<<< + * cdef PetscReal vol = 0, centroid[3], normal[3] + * CHKERR( DMPlexComputeCellGeometryFVM(self.dm, ccell, &vol, centroid, normal) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetCoordinateDim(__pyx_v_self->__pyx_base.dm, (&__pyx_v_cdim))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 748, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":749 + * cdef PetscInt ccell = asInt(cell) + * CHKERR( DMGetCoordinateDim(self.dm, &cdim) ) + * cdef PetscReal vol = 0, centroid[3], normal[3] # <<<<<<<<<<<<<< + * CHKERR( DMPlexComputeCellGeometryFVM(self.dm, ccell, &vol, centroid, normal) ) + * return (toReal(vol), array_r(cdim, centroid), array_r(cdim, normal)) + */ + __pyx_v_vol = 0.0; + + /* "petsc4py/PETSc/DMPlex.pyx":750 + * CHKERR( DMGetCoordinateDim(self.dm, &cdim) ) + * cdef PetscReal vol = 0, centroid[3], normal[3] + * CHKERR( DMPlexComputeCellGeometryFVM(self.dm, ccell, &vol, centroid, normal) ) # <<<<<<<<<<<<<< + * return (toReal(vol), array_r(cdim, centroid), array_r(cdim, normal)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexComputeCellGeometryFVM(__pyx_v_self->__pyx_base.dm, __pyx_v_ccell, (&__pyx_v_vol), __pyx_v_centroid, __pyx_v_normal)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 750, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":751 + * cdef PetscReal vol = 0, centroid[3], normal[3] + * CHKERR( DMPlexComputeCellGeometryFVM(self.dm, ccell, &vol, centroid, normal) ) + * return (toReal(vol), array_r(cdim, centroid), array_r(cdim, normal)) # <<<<<<<<<<<<<< + * + * def constructGhostCells(self, labelName=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_vol); if (unlikely(!__pyx_t_3)) __PYX_ERR(56, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r(__pyx_v_cdim, __pyx_v_centroid)); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_r(__pyx_v_cdim, __pyx_v_normal)); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":745 + * # + * + * def computeCellGeometryFVM(self, cell): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * cdef PetscInt ccell = asInt(cell) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.computeCellGeometryFVM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":753 + * return (toReal(vol), array_r(cdim, centroid), array_r(cdim, normal)) + * + * def constructGhostCells(self, labelName=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * labelName = str2bytes(labelName, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_179constructGhostCells(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_178constructGhostCells[] = "DMPlex.constructGhostCells(self, labelName=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_179constructGhostCells(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_labelName = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("constructGhostCells (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_labelName,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_labelName); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "constructGhostCells") < 0)) __PYX_ERR(56, 753, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_labelName = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("constructGhostCells", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 753, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.constructGhostCells", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_178constructGhostCells(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_labelName); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_178constructGhostCells(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_labelName) { + char const *__pyx_v_cname; + PetscInt __pyx_v_numGhostCells; + DM __pyx_v_dmGhosted; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("constructGhostCells", 0); + __Pyx_INCREF(__pyx_v_labelName); + + /* "petsc4py/PETSc/DMPlex.pyx":754 + * + * def constructGhostCells(self, labelName=None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * labelName = str2bytes(labelName, &cname) + * cdef PetscInt numGhostCells = 0 + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":755 + * def constructGhostCells(self, labelName=None): + * cdef const char *cname = NULL + * labelName = str2bytes(labelName, &cname) # <<<<<<<<<<<<<< + * cdef PetscInt numGhostCells = 0 + * cdef PetscDM dmGhosted = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_labelName, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_labelName, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":756 + * cdef const char *cname = NULL + * labelName = str2bytes(labelName, &cname) + * cdef PetscInt numGhostCells = 0 # <<<<<<<<<<<<<< + * cdef PetscDM dmGhosted = NULL + * CHKERR( DMPlexConstructGhostCells(self.dm, cname, &numGhostCells, &dmGhosted)) + */ + __pyx_v_numGhostCells = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":757 + * labelName = str2bytes(labelName, &cname) + * cdef PetscInt numGhostCells = 0 + * cdef PetscDM dmGhosted = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexConstructGhostCells(self.dm, cname, &numGhostCells, &dmGhosted)) + * PetscCLEAR(self.obj); self.dm = dmGhosted + */ + __pyx_v_dmGhosted = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":758 + * cdef PetscInt numGhostCells = 0 + * cdef PetscDM dmGhosted = NULL + * CHKERR( DMPlexConstructGhostCells(self.dm, cname, &numGhostCells, &dmGhosted)) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = dmGhosted + * return toInt(numGhostCells) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexConstructGhostCells(__pyx_v_self->__pyx_base.dm, __pyx_v_cname, (&__pyx_v_numGhostCells), (&__pyx_v_dmGhosted))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 758, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":759 + * cdef PetscDM dmGhosted = NULL + * CHKERR( DMPlexConstructGhostCells(self.dm, cname, &numGhostCells, &dmGhosted)) + * PetscCLEAR(self.obj); self.dm = dmGhosted # <<<<<<<<<<<<<< + * return toInt(numGhostCells) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_dmGhosted; + + /* "petsc4py/PETSc/DMPlex.pyx":760 + * CHKERR( DMPlexConstructGhostCells(self.dm, cname, &numGhostCells, &dmGhosted)) + * PetscCLEAR(self.obj); self.dm = dmGhosted + * return toInt(numGhostCells) # <<<<<<<<<<<<<< + * + * # Metric + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numGhostCells); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":753 + * return (toReal(vol), array_r(cdim, centroid), array_r(cdim, normal)) + * + * def constructGhostCells(self, labelName=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * labelName = str2bytes(labelName, &cname) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.constructGhostCells", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_labelName); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":764 + * # Metric + * + * def metricSetFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetFromOptions(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_181metricSetFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_180metricSetFromOptions[] = "DMPlex.metricSetFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_181metricSetFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricSetFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricSetFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_180metricSetFromOptions(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_180metricSetFromOptions(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetFromOptions", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":765 + * + * def metricSetFromOptions(self): + * CHKERR( DMPlexMetricSetFromOptions(self.dm) ) # <<<<<<<<<<<<<< + * + * def metricSetUniform(self, PetscBool uniform): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetFromOptions(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 765, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":764 + * # Metric + * + * def metricSetFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetFromOptions(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":767 + * CHKERR( DMPlexMetricSetFromOptions(self.dm) ) + * + * def metricSetUniform(self, PetscBool uniform): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetUniform(self.dm, uniform) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_183metricSetUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_182metricSetUniform[] = "DMPlex.metricSetUniform(self, PetscBool uniform)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_183metricSetUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_uniform; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetUniform (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_uniform,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_uniform)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetUniform") < 0)) __PYX_ERR(56, 767, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_uniform = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 767, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetUniform", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 767, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_182metricSetUniform(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_uniform); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_182metricSetUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_uniform) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetUniform", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":768 + * + * def metricSetUniform(self, PetscBool uniform): + * CHKERR( DMPlexMetricSetUniform(self.dm, uniform) ) # <<<<<<<<<<<<<< + * + * def metricIsUniform(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetUniform(__pyx_v_self->__pyx_base.dm, __pyx_v_uniform)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 768, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":767 + * CHKERR( DMPlexMetricSetFromOptions(self.dm) ) + * + * def metricSetUniform(self, PetscBool uniform): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetUniform(self.dm, uniform) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":770 + * CHKERR( DMPlexMetricSetUniform(self.dm, uniform) ) + * + * def metricIsUniform(self): # <<<<<<<<<<<<<< + * cdef PetscBool uniform = PETSC_FALSE + * CHKERR( DMPlexMetricIsUniform(self.dm, &uniform) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_185metricIsUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_184metricIsUniform[] = "DMPlex.metricIsUniform(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_185metricIsUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricIsUniform (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricIsUniform", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricIsUniform", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_184metricIsUniform(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_184metricIsUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_uniform; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricIsUniform", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":771 + * + * def metricIsUniform(self): + * cdef PetscBool uniform = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIsUniform(self.dm, &uniform) ) + * return toBool(uniform) + */ + __pyx_v_uniform = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":772 + * def metricIsUniform(self): + * cdef PetscBool uniform = PETSC_FALSE + * CHKERR( DMPlexMetricIsUniform(self.dm, &uniform) ) # <<<<<<<<<<<<<< + * return toBool(uniform) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricIsUniform(__pyx_v_self->__pyx_base.dm, (&__pyx_v_uniform))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 772, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":773 + * cdef PetscBool uniform = PETSC_FALSE + * CHKERR( DMPlexMetricIsUniform(self.dm, &uniform) ) + * return toBool(uniform) # <<<<<<<<<<<<<< + * + * def metricSetIsotropic(self, PetscBool isotropic): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_uniform); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":770 + * CHKERR( DMPlexMetricSetUniform(self.dm, uniform) ) + * + * def metricIsUniform(self): # <<<<<<<<<<<<<< + * cdef PetscBool uniform = PETSC_FALSE + * CHKERR( DMPlexMetricIsUniform(self.dm, &uniform) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIsUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":775 + * return toBool(uniform) + * + * def metricSetIsotropic(self, PetscBool isotropic): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetIsotropic(self.dm, isotropic) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_187metricSetIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_186metricSetIsotropic[] = "DMPlex.metricSetIsotropic(self, PetscBool isotropic)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_187metricSetIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_isotropic; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetIsotropic (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_isotropic,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_isotropic)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetIsotropic") < 0)) __PYX_ERR(56, 775, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_isotropic = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 775, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetIsotropic", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 775, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetIsotropic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_186metricSetIsotropic(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_isotropic); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_186metricSetIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_isotropic) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetIsotropic", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":776 + * + * def metricSetIsotropic(self, PetscBool isotropic): + * CHKERR( DMPlexMetricSetIsotropic(self.dm, isotropic) ) # <<<<<<<<<<<<<< + * + * def metricIsIsotropic(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetIsotropic(__pyx_v_self->__pyx_base.dm, __pyx_v_isotropic)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 776, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":775 + * return toBool(uniform) + * + * def metricSetIsotropic(self, PetscBool isotropic): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetIsotropic(self.dm, isotropic) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetIsotropic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":778 + * CHKERR( DMPlexMetricSetIsotropic(self.dm, isotropic) ) + * + * def metricIsIsotropic(self): # <<<<<<<<<<<<<< + * cdef PetscBool isotropic = PETSC_FALSE + * CHKERR( DMPlexMetricIsIsotropic(self.dm, &isotropic) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_189metricIsIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_188metricIsIsotropic[] = "DMPlex.metricIsIsotropic(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_189metricIsIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricIsIsotropic (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricIsIsotropic", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricIsIsotropic", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_188metricIsIsotropic(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_188metricIsIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_isotropic; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricIsIsotropic", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":779 + * + * def metricIsIsotropic(self): + * cdef PetscBool isotropic = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIsIsotropic(self.dm, &isotropic) ) + * return toBool(isotropic) + */ + __pyx_v_isotropic = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":780 + * def metricIsIsotropic(self): + * cdef PetscBool isotropic = PETSC_FALSE + * CHKERR( DMPlexMetricIsIsotropic(self.dm, &isotropic) ) # <<<<<<<<<<<<<< + * return toBool(isotropic) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricIsIsotropic(__pyx_v_self->__pyx_base.dm, (&__pyx_v_isotropic))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 780, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":781 + * cdef PetscBool isotropic = PETSC_FALSE + * CHKERR( DMPlexMetricIsIsotropic(self.dm, &isotropic) ) + * return toBool(isotropic) # <<<<<<<<<<<<<< + * + * def metricSetRestrictAnisotropyFirst(self, PetscBool restrictAnisotropyFirst): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_isotropic); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":778 + * CHKERR( DMPlexMetricSetIsotropic(self.dm, isotropic) ) + * + * def metricIsIsotropic(self): # <<<<<<<<<<<<<< + * cdef PetscBool isotropic = PETSC_FALSE + * CHKERR( DMPlexMetricIsIsotropic(self.dm, &isotropic) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIsIsotropic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":783 + * return toBool(isotropic) + * + * def metricSetRestrictAnisotropyFirst(self, PetscBool restrictAnisotropyFirst): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetRestrictAnisotropyFirst(self.dm, restrictAnisotropyFirst) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_191metricSetRestrictAnisotropyFirst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_190metricSetRestrictAnisotropyFirst[] = "DMPlex.metricSetRestrictAnisotropyFirst(self, PetscBool restrictAnisotropyFirst)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_191metricSetRestrictAnisotropyFirst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_restrictAnisotropyFirst; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetRestrictAnisotropyFirst (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_restrictAnisotropyFirst,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictAnisotropyFirst)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetRestrictAnisotropyFirst") < 0)) __PYX_ERR(56, 783, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_restrictAnisotropyFirst = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 783, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetRestrictAnisotropyFirst", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 783, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetRestrictAnisotropyFirst", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_190metricSetRestrictAnisotropyFirst(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_restrictAnisotropyFirst); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_190metricSetRestrictAnisotropyFirst(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_restrictAnisotropyFirst) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetRestrictAnisotropyFirst", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":784 + * + * def metricSetRestrictAnisotropyFirst(self, PetscBool restrictAnisotropyFirst): + * CHKERR( DMPlexMetricSetRestrictAnisotropyFirst(self.dm, restrictAnisotropyFirst) ) # <<<<<<<<<<<<<< + * + * def metricRestrictAnisotropyFirst(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetRestrictAnisotropyFirst(__pyx_v_self->__pyx_base.dm, __pyx_v_restrictAnisotropyFirst)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 784, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":783 + * return toBool(isotropic) + * + * def metricSetRestrictAnisotropyFirst(self, PetscBool restrictAnisotropyFirst): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetRestrictAnisotropyFirst(self.dm, restrictAnisotropyFirst) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetRestrictAnisotropyFirst", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":786 + * CHKERR( DMPlexMetricSetRestrictAnisotropyFirst(self.dm, restrictAnisotropyFirst) ) + * + * def metricRestrictAnisotropyFirst(self): # <<<<<<<<<<<<<< + * cdef PetscBool restrictAnisotropyFirst = PETSC_FALSE + * CHKERR( DMPlexMetricRestrictAnisotropyFirst(self.dm, &restrictAnisotropyFirst) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_193metricRestrictAnisotropyFirst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_192metricRestrictAnisotropyFirst[] = "DMPlex.metricRestrictAnisotropyFirst(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_193metricRestrictAnisotropyFirst(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricRestrictAnisotropyFirst (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricRestrictAnisotropyFirst", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricRestrictAnisotropyFirst", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_192metricRestrictAnisotropyFirst(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_192metricRestrictAnisotropyFirst(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_restrictAnisotropyFirst; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricRestrictAnisotropyFirst", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":787 + * + * def metricRestrictAnisotropyFirst(self): + * cdef PetscBool restrictAnisotropyFirst = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricRestrictAnisotropyFirst(self.dm, &restrictAnisotropyFirst) ) + * return toBool(restrictAnisotropyFirst) + */ + __pyx_v_restrictAnisotropyFirst = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":788 + * def metricRestrictAnisotropyFirst(self): + * cdef PetscBool restrictAnisotropyFirst = PETSC_FALSE + * CHKERR( DMPlexMetricRestrictAnisotropyFirst(self.dm, &restrictAnisotropyFirst) ) # <<<<<<<<<<<<<< + * return toBool(restrictAnisotropyFirst) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricRestrictAnisotropyFirst(__pyx_v_self->__pyx_base.dm, (&__pyx_v_restrictAnisotropyFirst))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 788, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":789 + * cdef PetscBool restrictAnisotropyFirst = PETSC_FALSE + * CHKERR( DMPlexMetricRestrictAnisotropyFirst(self.dm, &restrictAnisotropyFirst) ) + * return toBool(restrictAnisotropyFirst) # <<<<<<<<<<<<<< + * + * def metricSetNoInsertion(self, PetscBool noInsert): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_restrictAnisotropyFirst); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 789, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":786 + * CHKERR( DMPlexMetricSetRestrictAnisotropyFirst(self.dm, restrictAnisotropyFirst) ) + * + * def metricRestrictAnisotropyFirst(self): # <<<<<<<<<<<<<< + * cdef PetscBool restrictAnisotropyFirst = PETSC_FALSE + * CHKERR( DMPlexMetricRestrictAnisotropyFirst(self.dm, &restrictAnisotropyFirst) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricRestrictAnisotropyFirst", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":791 + * return toBool(restrictAnisotropyFirst) + * + * def metricSetNoInsertion(self, PetscBool noInsert): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoInsertion(self.dm, noInsert) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_195metricSetNoInsertion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_194metricSetNoInsertion[] = "DMPlex.metricSetNoInsertion(self, PetscBool noInsert)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_195metricSetNoInsertion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_noInsert; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNoInsertion (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_noInsert,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_noInsert)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNoInsertion") < 0)) __PYX_ERR(56, 791, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_noInsert = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 791, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNoInsertion", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 791, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoInsertion", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_194metricSetNoInsertion(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_noInsert); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_194metricSetNoInsertion(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noInsert) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNoInsertion", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":792 + * + * def metricSetNoInsertion(self, PetscBool noInsert): + * CHKERR( DMPlexMetricSetNoInsertion(self.dm, noInsert) ) # <<<<<<<<<<<<<< + * + * def metricNoInsertion(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNoInsertion(__pyx_v_self->__pyx_base.dm, __pyx_v_noInsert)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 792, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":791 + * return toBool(restrictAnisotropyFirst) + * + * def metricSetNoInsertion(self, PetscBool noInsert): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoInsertion(self.dm, noInsert) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoInsertion", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":794 + * CHKERR( DMPlexMetricSetNoInsertion(self.dm, noInsert) ) + * + * def metricNoInsertion(self): # <<<<<<<<<<<<<< + * cdef PetscBool noInsert = PETSC_FALSE + * CHKERR( DMPlexMetricNoInsertion(self.dm, &noInsert) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_197metricNoInsertion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_196metricNoInsertion[] = "DMPlex.metricNoInsertion(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_197metricNoInsertion(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricNoInsertion (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricNoInsertion", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricNoInsertion", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_196metricNoInsertion(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_196metricNoInsertion(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_noInsert; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricNoInsertion", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":795 + * + * def metricNoInsertion(self): + * cdef PetscBool noInsert = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNoInsertion(self.dm, &noInsert) ) + * return toBool(noInsert) + */ + __pyx_v_noInsert = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":796 + * def metricNoInsertion(self): + * cdef PetscBool noInsert = PETSC_FALSE + * CHKERR( DMPlexMetricNoInsertion(self.dm, &noInsert) ) # <<<<<<<<<<<<<< + * return toBool(noInsert) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricNoInsertion(__pyx_v_self->__pyx_base.dm, (&__pyx_v_noInsert))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 796, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":797 + * cdef PetscBool noInsert = PETSC_FALSE + * CHKERR( DMPlexMetricNoInsertion(self.dm, &noInsert) ) + * return toBool(noInsert) # <<<<<<<<<<<<<< + * + * def metricSetNoSwapping(self, PetscBool noSwap): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_noInsert); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":794 + * CHKERR( DMPlexMetricSetNoInsertion(self.dm, noInsert) ) + * + * def metricNoInsertion(self): # <<<<<<<<<<<<<< + * cdef PetscBool noInsert = PETSC_FALSE + * CHKERR( DMPlexMetricNoInsertion(self.dm, &noInsert) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNoInsertion", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":799 + * return toBool(noInsert) + * + * def metricSetNoSwapping(self, PetscBool noSwap): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoSwapping(self.dm, noSwap) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_199metricSetNoSwapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_198metricSetNoSwapping[] = "DMPlex.metricSetNoSwapping(self, PetscBool noSwap)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_199metricSetNoSwapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_noSwap; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNoSwapping (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_noSwap,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_noSwap)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNoSwapping") < 0)) __PYX_ERR(56, 799, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_noSwap = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 799, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNoSwapping", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 799, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoSwapping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_198metricSetNoSwapping(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_noSwap); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_198metricSetNoSwapping(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noSwap) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNoSwapping", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":800 + * + * def metricSetNoSwapping(self, PetscBool noSwap): + * CHKERR( DMPlexMetricSetNoSwapping(self.dm, noSwap) ) # <<<<<<<<<<<<<< + * + * def metricNoSwapping(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNoSwapping(__pyx_v_self->__pyx_base.dm, __pyx_v_noSwap)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 800, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":799 + * return toBool(noInsert) + * + * def metricSetNoSwapping(self, PetscBool noSwap): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoSwapping(self.dm, noSwap) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoSwapping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":802 + * CHKERR( DMPlexMetricSetNoSwapping(self.dm, noSwap) ) + * + * def metricNoSwapping(self): # <<<<<<<<<<<<<< + * cdef PetscBool noSwap = PETSC_FALSE + * CHKERR( DMPlexMetricNoSwapping(self.dm, &noSwap) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_201metricNoSwapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_200metricNoSwapping[] = "DMPlex.metricNoSwapping(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_201metricNoSwapping(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricNoSwapping (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricNoSwapping", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricNoSwapping", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_200metricNoSwapping(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_200metricNoSwapping(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_noSwap; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricNoSwapping", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":803 + * + * def metricNoSwapping(self): + * cdef PetscBool noSwap = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNoSwapping(self.dm, &noSwap) ) + * return toBool(noSwap) + */ + __pyx_v_noSwap = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":804 + * def metricNoSwapping(self): + * cdef PetscBool noSwap = PETSC_FALSE + * CHKERR( DMPlexMetricNoSwapping(self.dm, &noSwap) ) # <<<<<<<<<<<<<< + * return toBool(noSwap) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricNoSwapping(__pyx_v_self->__pyx_base.dm, (&__pyx_v_noSwap))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 804, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":805 + * cdef PetscBool noSwap = PETSC_FALSE + * CHKERR( DMPlexMetricNoSwapping(self.dm, &noSwap) ) + * return toBool(noSwap) # <<<<<<<<<<<<<< + * + * def metricSetNoMovement(self, PetscBool noMove): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_noSwap); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 805, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":802 + * CHKERR( DMPlexMetricSetNoSwapping(self.dm, noSwap) ) + * + * def metricNoSwapping(self): # <<<<<<<<<<<<<< + * cdef PetscBool noSwap = PETSC_FALSE + * CHKERR( DMPlexMetricNoSwapping(self.dm, &noSwap) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNoSwapping", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":807 + * return toBool(noSwap) + * + * def metricSetNoMovement(self, PetscBool noMove): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoMovement(self.dm, noMove) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_203metricSetNoMovement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_202metricSetNoMovement[] = "DMPlex.metricSetNoMovement(self, PetscBool noMove)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_203metricSetNoMovement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_noMove; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNoMovement (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_noMove,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_noMove)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNoMovement") < 0)) __PYX_ERR(56, 807, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_noMove = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 807, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNoMovement", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 807, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoMovement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_202metricSetNoMovement(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_noMove); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_202metricSetNoMovement(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noMove) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNoMovement", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":808 + * + * def metricSetNoMovement(self, PetscBool noMove): + * CHKERR( DMPlexMetricSetNoMovement(self.dm, noMove) ) # <<<<<<<<<<<<<< + * + * def metricNoMovement(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNoMovement(__pyx_v_self->__pyx_base.dm, __pyx_v_noMove)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 808, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":807 + * return toBool(noSwap) + * + * def metricSetNoMovement(self, PetscBool noMove): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoMovement(self.dm, noMove) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoMovement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":810 + * CHKERR( DMPlexMetricSetNoMovement(self.dm, noMove) ) + * + * def metricNoMovement(self): # <<<<<<<<<<<<<< + * cdef PetscBool noMove = PETSC_FALSE + * CHKERR( DMPlexMetricNoMovement(self.dm, &noMove) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_205metricNoMovement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_204metricNoMovement[] = "DMPlex.metricNoMovement(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_205metricNoMovement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricNoMovement (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricNoMovement", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricNoMovement", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_204metricNoMovement(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_204metricNoMovement(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_noMove; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricNoMovement", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":811 + * + * def metricNoMovement(self): + * cdef PetscBool noMove = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNoMovement(self.dm, &noMove) ) + * return toBool(noMove) + */ + __pyx_v_noMove = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":812 + * def metricNoMovement(self): + * cdef PetscBool noMove = PETSC_FALSE + * CHKERR( DMPlexMetricNoMovement(self.dm, &noMove) ) # <<<<<<<<<<<<<< + * return toBool(noMove) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricNoMovement(__pyx_v_self->__pyx_base.dm, (&__pyx_v_noMove))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 812, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":813 + * cdef PetscBool noMove = PETSC_FALSE + * CHKERR( DMPlexMetricNoMovement(self.dm, &noMove) ) + * return toBool(noMove) # <<<<<<<<<<<<<< + * + * def metricSetNoSurf(self, PetscBool noSurf): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_noMove); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":810 + * CHKERR( DMPlexMetricSetNoMovement(self.dm, noMove) ) + * + * def metricNoMovement(self): # <<<<<<<<<<<<<< + * cdef PetscBool noMove = PETSC_FALSE + * CHKERR( DMPlexMetricNoMovement(self.dm, &noMove) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNoMovement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":815 + * return toBool(noMove) + * + * def metricSetNoSurf(self, PetscBool noSurf): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoSurf(self.dm, noSurf) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_207metricSetNoSurf(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_206metricSetNoSurf[] = "DMPlex.metricSetNoSurf(self, PetscBool noSurf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_207metricSetNoSurf(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscBool __pyx_v_noSurf; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNoSurf (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_noSurf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_noSurf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNoSurf") < 0)) __PYX_ERR(56, 815, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_noSurf = ((PetscBool)__Pyx_PyInt_As_PetscBool(values[0])); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 815, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNoSurf", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 815, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoSurf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_206metricSetNoSurf(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_noSurf); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_206metricSetNoSurf(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscBool __pyx_v_noSurf) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNoSurf", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":816 + * + * def metricSetNoSurf(self, PetscBool noSurf): + * CHKERR( DMPlexMetricSetNoSurf(self.dm, noSurf) ) # <<<<<<<<<<<<<< + * + * def metricNoSurf(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNoSurf(__pyx_v_self->__pyx_base.dm, __pyx_v_noSurf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 816, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":815 + * return toBool(noMove) + * + * def metricSetNoSurf(self, PetscBool noSurf): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNoSurf(self.dm, noSurf) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNoSurf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":818 + * CHKERR( DMPlexMetricSetNoSurf(self.dm, noSurf) ) + * + * def metricNoSurf(self): # <<<<<<<<<<<<<< + * cdef PetscBool noSurf = PETSC_FALSE + * CHKERR( DMPlexMetricNoSurf(self.dm, &noSurf) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_209metricNoSurf(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_208metricNoSurf[] = "DMPlex.metricNoSurf(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_209metricNoSurf(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricNoSurf (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricNoSurf", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricNoSurf", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_208metricNoSurf(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_208metricNoSurf(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscBool __pyx_v_noSurf; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricNoSurf", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":819 + * + * def metricNoSurf(self): + * cdef PetscBool noSurf = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNoSurf(self.dm, &noSurf) ) + * return toBool(noSurf) + */ + __pyx_v_noSurf = PETSC_FALSE; + + /* "petsc4py/PETSc/DMPlex.pyx":820 + * def metricNoSurf(self): + * cdef PetscBool noSurf = PETSC_FALSE + * CHKERR( DMPlexMetricNoSurf(self.dm, &noSurf) ) # <<<<<<<<<<<<<< + * return toBool(noSurf) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricNoSurf(__pyx_v_self->__pyx_base.dm, (&__pyx_v_noSurf))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 820, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":821 + * cdef PetscBool noSurf = PETSC_FALSE + * CHKERR( DMPlexMetricNoSurf(self.dm, &noSurf) ) + * return toBool(noSurf) # <<<<<<<<<<<<<< + * + * def metricSetVerbosity(self, PetscInt verbosity): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_noSurf); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":818 + * CHKERR( DMPlexMetricSetNoSurf(self.dm, noSurf) ) + * + * def metricNoSurf(self): # <<<<<<<<<<<<<< + * cdef PetscBool noSurf = PETSC_FALSE + * CHKERR( DMPlexMetricNoSurf(self.dm, &noSurf) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNoSurf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":823 + * return toBool(noSurf) + * + * def metricSetVerbosity(self, PetscInt verbosity): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetVerbosity(self.dm, verbosity) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_211metricSetVerbosity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_210metricSetVerbosity[] = "DMPlex.metricSetVerbosity(self, PetscInt verbosity)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_211metricSetVerbosity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscInt __pyx_v_verbosity; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetVerbosity (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_verbosity,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_verbosity)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetVerbosity") < 0)) __PYX_ERR(56, 823, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_verbosity = __Pyx_PyInt_As_PetscInt(values[0]); if (unlikely((__pyx_v_verbosity == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 823, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetVerbosity", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 823, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetVerbosity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_210metricSetVerbosity(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_verbosity); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_210metricSetVerbosity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscInt __pyx_v_verbosity) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetVerbosity", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":824 + * + * def metricSetVerbosity(self, PetscInt verbosity): + * CHKERR( DMPlexMetricSetVerbosity(self.dm, verbosity) ) # <<<<<<<<<<<<<< + * + * def metricGetVerbosity(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetVerbosity(__pyx_v_self->__pyx_base.dm, __pyx_v_verbosity)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 824, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":823 + * return toBool(noSurf) + * + * def metricSetVerbosity(self, PetscInt verbosity): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetVerbosity(self.dm, verbosity) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetVerbosity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":826 + * CHKERR( DMPlexMetricSetVerbosity(self.dm, verbosity) ) + * + * def metricGetVerbosity(self): # <<<<<<<<<<<<<< + * cdef PetscInt verbosity + * CHKERR( DMPlexMetricGetVerbosity(self.dm, &verbosity) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_213metricGetVerbosity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_212metricGetVerbosity[] = "DMPlex.metricGetVerbosity(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_213metricGetVerbosity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetVerbosity (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetVerbosity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetVerbosity", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_212metricGetVerbosity(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_212metricGetVerbosity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscInt __pyx_v_verbosity; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetVerbosity", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":828 + * def metricGetVerbosity(self): + * cdef PetscInt verbosity + * CHKERR( DMPlexMetricGetVerbosity(self.dm, &verbosity) ) # <<<<<<<<<<<<<< + * return verbosity + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetVerbosity(__pyx_v_self->__pyx_base.dm, (&__pyx_v_verbosity))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 828, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":829 + * cdef PetscInt verbosity + * CHKERR( DMPlexMetricGetVerbosity(self.dm, &verbosity) ) + * return verbosity # <<<<<<<<<<<<<< + * + * def metricSetNumIterations(self, PetscInt numIter): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_verbosity); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":826 + * CHKERR( DMPlexMetricSetVerbosity(self.dm, verbosity) ) + * + * def metricGetVerbosity(self): # <<<<<<<<<<<<<< + * cdef PetscInt verbosity + * CHKERR( DMPlexMetricGetVerbosity(self.dm, &verbosity) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetVerbosity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":831 + * return verbosity + * + * def metricSetNumIterations(self, PetscInt numIter): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNumIterations(self.dm, numIter) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_215metricSetNumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_214metricSetNumIterations[] = "DMPlex.metricSetNumIterations(self, PetscInt numIter)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_215metricSetNumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscInt __pyx_v_numIter; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNumIterations (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numIter,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numIter)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNumIterations") < 0)) __PYX_ERR(56, 831, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_numIter = __Pyx_PyInt_As_PetscInt(values[0]); if (unlikely((__pyx_v_numIter == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 831, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNumIterations", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 831, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_214metricSetNumIterations(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_numIter); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_214metricSetNumIterations(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscInt __pyx_v_numIter) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNumIterations", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":832 + * + * def metricSetNumIterations(self, PetscInt numIter): + * CHKERR( DMPlexMetricSetNumIterations(self.dm, numIter) ) # <<<<<<<<<<<<<< + * + * def metricGetNumIterations(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNumIterations(__pyx_v_self->__pyx_base.dm, __pyx_v_numIter)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 832, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":831 + * return verbosity + * + * def metricSetNumIterations(self, PetscInt numIter): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNumIterations(self.dm, numIter) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":834 + * CHKERR( DMPlexMetricSetNumIterations(self.dm, numIter) ) + * + * def metricGetNumIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt numIter + * CHKERR( DMPlexMetricGetNumIterations(self.dm, &numIter) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_217metricGetNumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_216metricGetNumIterations[] = "DMPlex.metricGetNumIterations(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_217metricGetNumIterations(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetNumIterations (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetNumIterations", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetNumIterations", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_216metricGetNumIterations(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_216metricGetNumIterations(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscInt __pyx_v_numIter; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetNumIterations", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":836 + * def metricGetNumIterations(self): + * cdef PetscInt numIter + * CHKERR( DMPlexMetricGetNumIterations(self.dm, &numIter) ) # <<<<<<<<<<<<<< + * return numIter + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetNumIterations(__pyx_v_self->__pyx_base.dm, (&__pyx_v_numIter))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 836, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":837 + * cdef PetscInt numIter + * CHKERR( DMPlexMetricGetNumIterations(self.dm, &numIter) ) + * return numIter # <<<<<<<<<<<<<< + * + * def metricSetMinimumMagnitude(self, PetscReal h_min): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_numIter); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":834 + * CHKERR( DMPlexMetricSetNumIterations(self.dm, numIter) ) + * + * def metricGetNumIterations(self): # <<<<<<<<<<<<<< + * cdef PetscInt numIter + * CHKERR( DMPlexMetricGetNumIterations(self.dm, &numIter) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetNumIterations", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":839 + * return numIter + * + * def metricSetMinimumMagnitude(self, PetscReal h_min): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMinimumMagnitude(self.dm, h_min) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_219metricSetMinimumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_218metricSetMinimumMagnitude[] = "DMPlex.metricSetMinimumMagnitude(self, PetscReal h_min)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_219metricSetMinimumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_h_min; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetMinimumMagnitude (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_h_min,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_min)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetMinimumMagnitude") < 0)) __PYX_ERR(56, 839, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_h_min = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_h_min == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 839, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetMinimumMagnitude", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 839, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMinimumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_218metricSetMinimumMagnitude(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_h_min); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_218metricSetMinimumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_h_min) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetMinimumMagnitude", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":840 + * + * def metricSetMinimumMagnitude(self, PetscReal h_min): + * CHKERR( DMPlexMetricSetMinimumMagnitude(self.dm, h_min) ) # <<<<<<<<<<<<<< + * + * def metricGetMinimumMagnitude(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetMinimumMagnitude(__pyx_v_self->__pyx_base.dm, __pyx_v_h_min)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 840, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":839 + * return numIter + * + * def metricSetMinimumMagnitude(self, PetscReal h_min): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMinimumMagnitude(self.dm, h_min) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMinimumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":842 + * CHKERR( DMPlexMetricSetMinimumMagnitude(self.dm, h_min) ) + * + * def metricGetMinimumMagnitude(self): # <<<<<<<<<<<<<< + * cdef PetscReal h_min + * CHKERR( DMPlexMetricGetMinimumMagnitude(self.dm, &h_min) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_221metricGetMinimumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_220metricGetMinimumMagnitude[] = "DMPlex.metricGetMinimumMagnitude(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_221metricGetMinimumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetMinimumMagnitude (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetMinimumMagnitude", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetMinimumMagnitude", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_220metricGetMinimumMagnitude(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_220metricGetMinimumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_h_min; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetMinimumMagnitude", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":844 + * def metricGetMinimumMagnitude(self): + * cdef PetscReal h_min + * CHKERR( DMPlexMetricGetMinimumMagnitude(self.dm, &h_min) ) # <<<<<<<<<<<<<< + * return h_min + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetMinimumMagnitude(__pyx_v_self->__pyx_base.dm, (&__pyx_v_h_min))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 844, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":845 + * cdef PetscReal h_min + * CHKERR( DMPlexMetricGetMinimumMagnitude(self.dm, &h_min) ) + * return h_min # <<<<<<<<<<<<<< + * + * def metricSetMaximumMagnitude(self, PetscReal h_max): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_h_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":842 + * CHKERR( DMPlexMetricSetMinimumMagnitude(self.dm, h_min) ) + * + * def metricGetMinimumMagnitude(self): # <<<<<<<<<<<<<< + * cdef PetscReal h_min + * CHKERR( DMPlexMetricGetMinimumMagnitude(self.dm, &h_min) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetMinimumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":847 + * return h_min + * + * def metricSetMaximumMagnitude(self, PetscReal h_max): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMaximumMagnitude(self.dm, h_max) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_223metricSetMaximumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_222metricSetMaximumMagnitude[] = "DMPlex.metricSetMaximumMagnitude(self, PetscReal h_max)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_223metricSetMaximumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_h_max; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetMaximumMagnitude (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_h_max,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_h_max)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetMaximumMagnitude") < 0)) __PYX_ERR(56, 847, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_h_max = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_h_max == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 847, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetMaximumMagnitude", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 847, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMaximumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_222metricSetMaximumMagnitude(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_h_max); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_222metricSetMaximumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_h_max) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetMaximumMagnitude", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":848 + * + * def metricSetMaximumMagnitude(self, PetscReal h_max): + * CHKERR( DMPlexMetricSetMaximumMagnitude(self.dm, h_max) ) # <<<<<<<<<<<<<< + * + * def metricGetMaximumMagnitude(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetMaximumMagnitude(__pyx_v_self->__pyx_base.dm, __pyx_v_h_max)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 848, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":847 + * return h_min + * + * def metricSetMaximumMagnitude(self, PetscReal h_max): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMaximumMagnitude(self.dm, h_max) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMaximumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":850 + * CHKERR( DMPlexMetricSetMaximumMagnitude(self.dm, h_max) ) + * + * def metricGetMaximumMagnitude(self): # <<<<<<<<<<<<<< + * cdef PetscReal h_max + * CHKERR( DMPlexMetricGetMaximumMagnitude(self.dm, &h_max) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_225metricGetMaximumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_224metricGetMaximumMagnitude[] = "DMPlex.metricGetMaximumMagnitude(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_225metricGetMaximumMagnitude(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetMaximumMagnitude (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetMaximumMagnitude", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetMaximumMagnitude", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_224metricGetMaximumMagnitude(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_224metricGetMaximumMagnitude(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_h_max; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetMaximumMagnitude", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":852 + * def metricGetMaximumMagnitude(self): + * cdef PetscReal h_max + * CHKERR( DMPlexMetricGetMaximumMagnitude(self.dm, &h_max) ) # <<<<<<<<<<<<<< + * return h_max + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetMaximumMagnitude(__pyx_v_self->__pyx_base.dm, (&__pyx_v_h_max))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 852, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":853 + * cdef PetscReal h_max + * CHKERR( DMPlexMetricGetMaximumMagnitude(self.dm, &h_max) ) + * return h_max # <<<<<<<<<<<<<< + * + * def metricSetMaximumAnisotropy(self, PetscReal a_max): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_h_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":850 + * CHKERR( DMPlexMetricSetMaximumMagnitude(self.dm, h_max) ) + * + * def metricGetMaximumMagnitude(self): # <<<<<<<<<<<<<< + * cdef PetscReal h_max + * CHKERR( DMPlexMetricGetMaximumMagnitude(self.dm, &h_max) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetMaximumMagnitude", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":855 + * return h_max + * + * def metricSetMaximumAnisotropy(self, PetscReal a_max): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMaximumAnisotropy(self.dm, a_max) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_227metricSetMaximumAnisotropy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_226metricSetMaximumAnisotropy[] = "DMPlex.metricSetMaximumAnisotropy(self, PetscReal a_max)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_227metricSetMaximumAnisotropy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_a_max; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetMaximumAnisotropy (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_a_max,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_a_max)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetMaximumAnisotropy") < 0)) __PYX_ERR(56, 855, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_a_max = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_a_max == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 855, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetMaximumAnisotropy", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 855, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMaximumAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_226metricSetMaximumAnisotropy(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_a_max); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_226metricSetMaximumAnisotropy(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_a_max) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetMaximumAnisotropy", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":856 + * + * def metricSetMaximumAnisotropy(self, PetscReal a_max): + * CHKERR( DMPlexMetricSetMaximumAnisotropy(self.dm, a_max) ) # <<<<<<<<<<<<<< + * + * def metricGetMaximumAnisotropy(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetMaximumAnisotropy(__pyx_v_self->__pyx_base.dm, __pyx_v_a_max)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 856, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":855 + * return h_max + * + * def metricSetMaximumAnisotropy(self, PetscReal a_max): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetMaximumAnisotropy(self.dm, a_max) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetMaximumAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":858 + * CHKERR( DMPlexMetricSetMaximumAnisotropy(self.dm, a_max) ) + * + * def metricGetMaximumAnisotropy(self): # <<<<<<<<<<<<<< + * cdef PetscReal a_max + * CHKERR( DMPlexMetricGetMaximumAnisotropy(self.dm, &a_max) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_229metricGetMaximumAnisotropy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_228metricGetMaximumAnisotropy[] = "DMPlex.metricGetMaximumAnisotropy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_229metricGetMaximumAnisotropy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetMaximumAnisotropy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetMaximumAnisotropy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetMaximumAnisotropy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_228metricGetMaximumAnisotropy(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_228metricGetMaximumAnisotropy(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_a_max; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetMaximumAnisotropy", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":860 + * def metricGetMaximumAnisotropy(self): + * cdef PetscReal a_max + * CHKERR( DMPlexMetricGetMaximumAnisotropy(self.dm, &a_max) ) # <<<<<<<<<<<<<< + * return a_max + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetMaximumAnisotropy(__pyx_v_self->__pyx_base.dm, (&__pyx_v_a_max))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 860, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":861 + * cdef PetscReal a_max + * CHKERR( DMPlexMetricGetMaximumAnisotropy(self.dm, &a_max) ) + * return a_max # <<<<<<<<<<<<<< + * + * def metricSetTargetComplexity(self, PetscReal targetComplexity): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_a_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":858 + * CHKERR( DMPlexMetricSetMaximumAnisotropy(self.dm, a_max) ) + * + * def metricGetMaximumAnisotropy(self): # <<<<<<<<<<<<<< + * cdef PetscReal a_max + * CHKERR( DMPlexMetricGetMaximumAnisotropy(self.dm, &a_max) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetMaximumAnisotropy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":863 + * return a_max + * + * def metricSetTargetComplexity(self, PetscReal targetComplexity): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetTargetComplexity(self.dm, targetComplexity) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_231metricSetTargetComplexity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_230metricSetTargetComplexity[] = "DMPlex.metricSetTargetComplexity(self, PetscReal targetComplexity)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_231metricSetTargetComplexity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_targetComplexity; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetTargetComplexity (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_targetComplexity,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_targetComplexity)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetTargetComplexity") < 0)) __PYX_ERR(56, 863, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_targetComplexity = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_targetComplexity == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 863, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetTargetComplexity", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 863, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetTargetComplexity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_230metricSetTargetComplexity(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_targetComplexity); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_230metricSetTargetComplexity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_targetComplexity) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetTargetComplexity", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":864 + * + * def metricSetTargetComplexity(self, PetscReal targetComplexity): + * CHKERR( DMPlexMetricSetTargetComplexity(self.dm, targetComplexity) ) # <<<<<<<<<<<<<< + * + * def metricGetTargetComplexity(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetTargetComplexity(__pyx_v_self->__pyx_base.dm, __pyx_v_targetComplexity)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 864, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":863 + * return a_max + * + * def metricSetTargetComplexity(self, PetscReal targetComplexity): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetTargetComplexity(self.dm, targetComplexity) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetTargetComplexity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":866 + * CHKERR( DMPlexMetricSetTargetComplexity(self.dm, targetComplexity) ) + * + * def metricGetTargetComplexity(self): # <<<<<<<<<<<<<< + * cdef PetscReal targetComplexity + * CHKERR( DMPlexMetricGetTargetComplexity(self.dm, &targetComplexity) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_233metricGetTargetComplexity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_232metricGetTargetComplexity[] = "DMPlex.metricGetTargetComplexity(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_233metricGetTargetComplexity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetTargetComplexity (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetTargetComplexity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetTargetComplexity", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_232metricGetTargetComplexity(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_232metricGetTargetComplexity(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_targetComplexity; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetTargetComplexity", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":868 + * def metricGetTargetComplexity(self): + * cdef PetscReal targetComplexity + * CHKERR( DMPlexMetricGetTargetComplexity(self.dm, &targetComplexity) ) # <<<<<<<<<<<<<< + * return targetComplexity + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetTargetComplexity(__pyx_v_self->__pyx_base.dm, (&__pyx_v_targetComplexity))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 868, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":869 + * cdef PetscReal targetComplexity + * CHKERR( DMPlexMetricGetTargetComplexity(self.dm, &targetComplexity) ) + * return targetComplexity # <<<<<<<<<<<<<< + * + * def metricSetNormalizationOrder(self, PetscReal p): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_targetComplexity); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":866 + * CHKERR( DMPlexMetricSetTargetComplexity(self.dm, targetComplexity) ) + * + * def metricGetTargetComplexity(self): # <<<<<<<<<<<<<< + * cdef PetscReal targetComplexity + * CHKERR( DMPlexMetricGetTargetComplexity(self.dm, &targetComplexity) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetTargetComplexity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":871 + * return targetComplexity + * + * def metricSetNormalizationOrder(self, PetscReal p): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNormalizationOrder(self.dm, p) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_235metricSetNormalizationOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_234metricSetNormalizationOrder[] = "DMPlex.metricSetNormalizationOrder(self, PetscReal p)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_235metricSetNormalizationOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_p; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetNormalizationOrder (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_p,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_p)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetNormalizationOrder") < 0)) __PYX_ERR(56, 871, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_p = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_p == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 871, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetNormalizationOrder", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 871, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNormalizationOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_234metricSetNormalizationOrder(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_p); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_234metricSetNormalizationOrder(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_p) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetNormalizationOrder", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":872 + * + * def metricSetNormalizationOrder(self, PetscReal p): + * CHKERR( DMPlexMetricSetNormalizationOrder(self.dm, p) ) # <<<<<<<<<<<<<< + * + * def metricGetNormalizationOrder(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetNormalizationOrder(__pyx_v_self->__pyx_base.dm, __pyx_v_p)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 872, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":871 + * return targetComplexity + * + * def metricSetNormalizationOrder(self, PetscReal p): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetNormalizationOrder(self.dm, p) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetNormalizationOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":874 + * CHKERR( DMPlexMetricSetNormalizationOrder(self.dm, p) ) + * + * def metricGetNormalizationOrder(self): # <<<<<<<<<<<<<< + * cdef PetscReal p + * CHKERR( DMPlexMetricGetNormalizationOrder(self.dm, &p) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_237metricGetNormalizationOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_236metricGetNormalizationOrder[] = "DMPlex.metricGetNormalizationOrder(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_237metricGetNormalizationOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetNormalizationOrder (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetNormalizationOrder", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetNormalizationOrder", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_236metricGetNormalizationOrder(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_236metricGetNormalizationOrder(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetNormalizationOrder", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":876 + * def metricGetNormalizationOrder(self): + * cdef PetscReal p + * CHKERR( DMPlexMetricGetNormalizationOrder(self.dm, &p) ) # <<<<<<<<<<<<<< + * return p + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetNormalizationOrder(__pyx_v_self->__pyx_base.dm, (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 876, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":877 + * cdef PetscReal p + * CHKERR( DMPlexMetricGetNormalizationOrder(self.dm, &p) ) + * return p # <<<<<<<<<<<<<< + * + * def metricSetGradationFactor(self, PetscReal beta): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":874 + * CHKERR( DMPlexMetricSetNormalizationOrder(self.dm, p) ) + * + * def metricGetNormalizationOrder(self): # <<<<<<<<<<<<<< + * cdef PetscReal p + * CHKERR( DMPlexMetricGetNormalizationOrder(self.dm, &p) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetNormalizationOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":879 + * return p + * + * def metricSetGradationFactor(self, PetscReal beta): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetGradationFactor(self.dm, beta) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_239metricSetGradationFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_238metricSetGradationFactor[] = "DMPlex.metricSetGradationFactor(self, PetscReal beta)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_239metricSetGradationFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_beta; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetGradationFactor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_beta,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_beta)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetGradationFactor") < 0)) __PYX_ERR(56, 879, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_beta = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_beta == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 879, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetGradationFactor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 879, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetGradationFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_238metricSetGradationFactor(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_beta); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_238metricSetGradationFactor(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_beta) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetGradationFactor", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":880 + * + * def metricSetGradationFactor(self, PetscReal beta): + * CHKERR( DMPlexMetricSetGradationFactor(self.dm, beta) ) # <<<<<<<<<<<<<< + * + * def metricGetGradationFactor(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetGradationFactor(__pyx_v_self->__pyx_base.dm, __pyx_v_beta)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 880, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":879 + * return p + * + * def metricSetGradationFactor(self, PetscReal beta): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetGradationFactor(self.dm, beta) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetGradationFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":882 + * CHKERR( DMPlexMetricSetGradationFactor(self.dm, beta) ) + * + * def metricGetGradationFactor(self): # <<<<<<<<<<<<<< + * cdef PetscReal beta + * CHKERR( DMPlexMetricGetGradationFactor(self.dm, &beta) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_241metricGetGradationFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_240metricGetGradationFactor[] = "DMPlex.metricGetGradationFactor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_241metricGetGradationFactor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetGradationFactor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetGradationFactor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetGradationFactor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_240metricGetGradationFactor(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_240metricGetGradationFactor(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_beta; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetGradationFactor", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":884 + * def metricGetGradationFactor(self): + * cdef PetscReal beta + * CHKERR( DMPlexMetricGetGradationFactor(self.dm, &beta) ) # <<<<<<<<<<<<<< + * return beta + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetGradationFactor(__pyx_v_self->__pyx_base.dm, (&__pyx_v_beta))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 884, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":885 + * cdef PetscReal beta + * CHKERR( DMPlexMetricGetGradationFactor(self.dm, &beta) ) + * return beta # <<<<<<<<<<<<<< + * + * def metricSetHausdorffNumber(self, PetscReal hausd): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_beta); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":882 + * CHKERR( DMPlexMetricSetGradationFactor(self.dm, beta) ) + * + * def metricGetGradationFactor(self): # <<<<<<<<<<<<<< + * cdef PetscReal beta + * CHKERR( DMPlexMetricGetGradationFactor(self.dm, &beta) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetGradationFactor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":887 + * return beta + * + * def metricSetHausdorffNumber(self, PetscReal hausd): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetHausdorffNumber(self.dm, hausd) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_243metricSetHausdorffNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_242metricSetHausdorffNumber[] = "DMPlex.metricSetHausdorffNumber(self, PetscReal hausd)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_243metricSetHausdorffNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_hausd; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricSetHausdorffNumber (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_hausd,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hausd)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricSetHausdorffNumber") < 0)) __PYX_ERR(56, 887, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_hausd = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_hausd == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 887, __pyx_L3_error) + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricSetHausdorffNumber", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 887, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetHausdorffNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_242metricSetHausdorffNumber(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_hausd); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_242metricSetHausdorffNumber(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_hausd) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricSetHausdorffNumber", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":888 + * + * def metricSetHausdorffNumber(self, PetscReal hausd): + * CHKERR( DMPlexMetricSetHausdorffNumber(self.dm, hausd) ) # <<<<<<<<<<<<<< + * + * def metricGetHausdorffNumber(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricSetHausdorffNumber(__pyx_v_self->__pyx_base.dm, __pyx_v_hausd)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 888, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":887 + * return beta + * + * def metricSetHausdorffNumber(self, PetscReal hausd): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricSetHausdorffNumber(self.dm, hausd) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricSetHausdorffNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":890 + * CHKERR( DMPlexMetricSetHausdorffNumber(self.dm, hausd) ) + * + * def metricGetHausdorffNumber(self): # <<<<<<<<<<<<<< + * cdef PetscReal hausd + * CHKERR( DMPlexMetricGetHausdorffNumber(self.dm, &hausd) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_245metricGetHausdorffNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_244metricGetHausdorffNumber[] = "DMPlex.metricGetHausdorffNumber(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_245metricGetHausdorffNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricGetHausdorffNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("metricGetHausdorffNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "metricGetHausdorffNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_244metricGetHausdorffNumber(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_244metricGetHausdorffNumber(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self) { + PetscReal __pyx_v_hausd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricGetHausdorffNumber", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":892 + * def metricGetHausdorffNumber(self): + * cdef PetscReal hausd + * CHKERR( DMPlexMetricGetHausdorffNumber(self.dm, &hausd) ) # <<<<<<<<<<<<<< + * return hausd + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricGetHausdorffNumber(__pyx_v_self->__pyx_base.dm, (&__pyx_v_hausd))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 892, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":893 + * cdef PetscReal hausd + * CHKERR( DMPlexMetricGetHausdorffNumber(self.dm, &hausd) ) + * return hausd # <<<<<<<<<<<<<< + * + * def metricCreate(self, field=0): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_hausd); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":890 + * CHKERR( DMPlexMetricSetHausdorffNumber(self.dm, hausd) ) + * + * def metricGetHausdorffNumber(self): # <<<<<<<<<<<<<< + * cdef PetscReal hausd + * CHKERR( DMPlexMetricGetHausdorffNumber(self.dm, &hausd) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricGetHausdorffNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":895 + * return hausd + * + * def metricCreate(self, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreate(self.dm, field, &metric.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_247metricCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_246metricCreate[] = "DMPlex.metricCreate(self, field=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_247metricCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricCreate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricCreate") < 0)) __PYX_ERR(56, 895, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricCreate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 895, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_246metricCreate(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_246metricCreate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_field) { + struct PyPetscVecObject *__pyx_v_metric = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricCreate", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":896 + * + * def metricCreate(self, field=0): + * cdef Vec metric = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricCreate(self.dm, field, &metric.vec) ) + * return metric + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 896, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_metric = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":897 + * def metricCreate(self, field=0): + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreate(self.dm, field, &metric.vec) ) # <<<<<<<<<<<<<< + * return metric + * + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_field); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 897, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricCreate(__pyx_v_self->__pyx_base.dm, __pyx_t_2, (&__pyx_v_metric->vec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 897, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":898 + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreate(self.dm, field, &metric.vec) ) + * return metric # <<<<<<<<<<<<<< + * + * def metricCreateUniform(self, PetscReal alpha, field=0): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metric)); + __pyx_r = ((PyObject *)__pyx_v_metric); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":895 + * return hausd + * + * def metricCreate(self, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreate(self.dm, field, &metric.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_metric); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":900 + * return metric + * + * def metricCreateUniform(self, PetscReal alpha, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateUniform(self.dm, field, alpha, &metric.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_249metricCreateUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_248metricCreateUniform[] = "DMPlex.metricCreateUniform(self, PetscReal alpha, field=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_249metricCreateUniform(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PetscReal __pyx_v_alpha; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricCreateUniform (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alpha,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alpha)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricCreateUniform") < 0)) __PYX_ERR(56, 900, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_alpha = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_alpha == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(56, 900, __pyx_L3_error) + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricCreateUniform", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 900, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreateUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_248metricCreateUniform(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_alpha, __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_248metricCreateUniform(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PetscReal __pyx_v_alpha, PyObject *__pyx_v_field) { + struct PyPetscVecObject *__pyx_v_metric = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricCreateUniform", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":901 + * + * def metricCreateUniform(self, PetscReal alpha, field=0): + * cdef Vec metric = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricCreateUniform(self.dm, field, alpha, &metric.vec) ) + * return metric + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_metric = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":902 + * def metricCreateUniform(self, PetscReal alpha, field=0): + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateUniform(self.dm, field, alpha, &metric.vec) ) # <<<<<<<<<<<<<< + * return metric + * + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_field); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 902, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricCreateUniform(__pyx_v_self->__pyx_base.dm, __pyx_t_2, __pyx_v_alpha, (&__pyx_v_metric->vec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 902, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":903 + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateUniform(self.dm, field, alpha, &metric.vec) ) + * return metric # <<<<<<<<<<<<<< + * + * def metricCreateIsotropic(self, Vec indicator, field=0): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metric)); + __pyx_r = ((PyObject *)__pyx_v_metric); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":900 + * return metric + * + * def metricCreateUniform(self, PetscReal alpha, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateUniform(self.dm, field, alpha, &metric.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreateUniform", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_metric); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":905 + * return metric + * + * def metricCreateIsotropic(self, Vec indicator, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateIsotropic(self.dm, field, indicator.vec, &metric.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_251metricCreateIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_250metricCreateIsotropic[] = "DMPlex.metricCreateIsotropic(self, Vec indicator, field=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_251metricCreateIsotropic(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_indicator = 0; + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricCreateIsotropic (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_indicator,&__pyx_n_s_field,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_indicator)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricCreateIsotropic") < 0)) __PYX_ERR(56, 905, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_indicator = ((struct PyPetscVecObject *)values[0]); + __pyx_v_field = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricCreateIsotropic", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 905, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreateIsotropic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_indicator), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "indicator", 0))) __PYX_ERR(56, 905, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_250metricCreateIsotropic(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_indicator, __pyx_v_field); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_250metricCreateIsotropic(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_indicator, PyObject *__pyx_v_field) { + struct PyPetscVecObject *__pyx_v_metric = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricCreateIsotropic", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":906 + * + * def metricCreateIsotropic(self, Vec indicator, field=0): + * cdef Vec metric = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricCreateIsotropic(self.dm, field, indicator.vec, &metric.vec) ) + * return metric + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 906, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_metric = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":907 + * def metricCreateIsotropic(self, Vec indicator, field=0): + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateIsotropic(self.dm, field, indicator.vec, &metric.vec) ) # <<<<<<<<<<<<<< + * return metric + * + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_field); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 907, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricCreateIsotropic(__pyx_v_self->__pyx_base.dm, __pyx_t_2, __pyx_v_indicator->vec, (&__pyx_v_metric->vec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 907, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":908 + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateIsotropic(self.dm, field, indicator.vec, &metric.vec) ) + * return metric # <<<<<<<<<<<<<< + * + * def metricDeterminantCreate(self, field=0): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metric)); + __pyx_r = ((PyObject *)__pyx_v_metric); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":905 + * return metric + * + * def metricCreateIsotropic(self, Vec indicator, field=0): # <<<<<<<<<<<<<< + * cdef Vec metric = Vec() + * CHKERR( DMPlexMetricCreateIsotropic(self.dm, field, indicator.vec, &metric.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricCreateIsotropic", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_metric); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":910 + * return metric + * + * def metricDeterminantCreate(self, field=0): # <<<<<<<<<<<<<< + * cdef Vec determinant = Vec() + * cdef DM dmDet = DM() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_253metricDeterminantCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_252metricDeterminantCreate[] = "DMPlex.metricDeterminantCreate(self, field=0)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_253metricDeterminantCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_field = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricDeterminantCreate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_field,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)__pyx_int_0); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_field); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricDeterminantCreate") < 0)) __PYX_ERR(56, 910, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_field = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricDeterminantCreate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 910, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricDeterminantCreate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_252metricDeterminantCreate(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_field); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_252metricDeterminantCreate(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, PyObject *__pyx_v_field) { + struct PyPetscVecObject *__pyx_v_determinant = 0; + struct PyPetscDMObject *__pyx_v_dmDet = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricDeterminantCreate", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":911 + * + * def metricDeterminantCreate(self, field=0): + * cdef Vec determinant = Vec() # <<<<<<<<<<<<<< + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricDeterminantCreate(self.dm, field, &determinant.vec, &dmDet.dm) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 911, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_determinant = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":912 + * def metricDeterminantCreate(self, field=0): + * cdef Vec determinant = Vec() + * cdef DM dmDet = DM() # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricDeterminantCreate(self.dm, field, &determinant.vec, &dmDet.dm) ) + * return determinant + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 912, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dmDet = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":913 + * cdef Vec determinant = Vec() + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricDeterminantCreate(self.dm, field, &determinant.vec, &dmDet.dm) ) # <<<<<<<<<<<<<< + * return determinant + * + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_field); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(56, 913, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricDeterminantCreate(__pyx_v_self->__pyx_base.dm, __pyx_t_2, (&__pyx_v_determinant->vec), (&__pyx_v_dmDet->dm))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 913, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":914 + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricDeterminantCreate(self.dm, field, &determinant.vec, &dmDet.dm) ) + * return determinant # <<<<<<<<<<<<<< + * + * def metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_determinant)); + __pyx_r = ((PyObject *)__pyx_v_determinant); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":910 + * return metric + * + * def metricDeterminantCreate(self, field=0): # <<<<<<<<<<<<<< + * cdef Vec determinant = Vec() + * cdef DM dmDet = DM() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricDeterminantCreate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_determinant); + __Pyx_XDECREF((PyObject *)__pyx_v_dmDet); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":916 + * return determinant + * + * def metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False): # <<<<<<<<<<<<<< + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricEnforceSPD(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_255metricEnforceSPD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_254metricEnforceSPD[] = "DMPlex.metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_255metricEnforceSPD(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric = 0; + struct PyPetscVecObject *__pyx_v_ometric = 0; + struct PyPetscVecObject *__pyx_v_determinant = 0; + PyObject *__pyx_v_restrictSizes = 0; + PyObject *__pyx_v_restrictAnisotropy = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricEnforceSPD (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric,&__pyx_n_s_ometric,&__pyx_n_s_determinant,&__pyx_n_s_restrictSizes,&__pyx_n_s_restrictAnisotropy,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_False); + values[4] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ometric)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricEnforceSPD", 0, 3, 5, 1); __PYX_ERR(56, 916, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_determinant)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricEnforceSPD", 0, 3, 5, 2); __PYX_ERR(56, 916, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictSizes); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictAnisotropy); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricEnforceSPD") < 0)) __PYX_ERR(56, 916, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_metric = ((struct PyPetscVecObject *)values[0]); + __pyx_v_ometric = ((struct PyPetscVecObject *)values[1]); + __pyx_v_determinant = ((struct PyPetscVecObject *)values[2]); + __pyx_v_restrictSizes = values[3]; + __pyx_v_restrictAnisotropy = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricEnforceSPD", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 916, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricEnforceSPD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric", 0))) __PYX_ERR(56, 916, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ometric), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "ometric", 0))) __PYX_ERR(56, 916, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_determinant), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "determinant", 0))) __PYX_ERR(56, 916, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_254metricEnforceSPD(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric, __pyx_v_ometric, __pyx_v_determinant, __pyx_v_restrictSizes, __pyx_v_restrictAnisotropy); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_254metricEnforceSPD(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, struct PyPetscVecObject *__pyx_v_ometric, struct PyPetscVecObject *__pyx_v_determinant, PyObject *__pyx_v_restrictSizes, PyObject *__pyx_v_restrictAnisotropy) { + CYTHON_UNUSED struct PyPetscDMObject *__pyx_v_dmDet = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscBool __pyx_t_2; + PetscBool __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricEnforceSPD", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":917 + * + * def metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False): + * cdef DM dmDet = DM() # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricEnforceSPD(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + * return (ometric, determinant) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dmDet = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":918 + * def metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False): + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricEnforceSPD(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) # <<<<<<<<<<<<<< + * return (ometric, determinant) + * + */ + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_restrictSizes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 918, __pyx_L1_error) + __pyx_t_3 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_restrictAnisotropy)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 918, __pyx_L1_error) + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricEnforceSPD(__pyx_v_self->__pyx_base.dm, __pyx_v_metric->vec, __pyx_t_2, __pyx_t_3, __pyx_v_ometric->vec, __pyx_v_determinant->vec)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 918, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":919 + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricEnforceSPD(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + * return (ometric, determinant) # <<<<<<<<<<<<<< + * + * def metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 919, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_ometric)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ometric)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_ometric)); + __Pyx_INCREF(((PyObject *)__pyx_v_determinant)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_determinant)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_determinant)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":916 + * return determinant + * + * def metricEnforceSPD(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=False, restrictAnisotropy=False): # <<<<<<<<<<<<<< + * cdef DM dmDet = DM() + * CHKERR( DMPlexMetricEnforceSPD(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricEnforceSPD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dmDet); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":921 + * return (ometric, determinant) + * + * def metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNormalize(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + * return (ometric, determinant) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_257metricNormalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_256metricNormalize[] = "DMPlex.metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_257metricNormalize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric = 0; + struct PyPetscVecObject *__pyx_v_ometric = 0; + struct PyPetscVecObject *__pyx_v_determinant = 0; + PyObject *__pyx_v_restrictSizes = 0; + PyObject *__pyx_v_restrictAnisotropy = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricNormalize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric,&__pyx_n_s_ometric,&__pyx_n_s_determinant,&__pyx_n_s_restrictSizes,&__pyx_n_s_restrictAnisotropy,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)Py_True); + values[4] = ((PyObject *)Py_True); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ometric)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricNormalize", 0, 3, 5, 1); __PYX_ERR(56, 921, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_determinant)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricNormalize", 0, 3, 5, 2); __PYX_ERR(56, 921, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictSizes); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_restrictAnisotropy); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricNormalize") < 0)) __PYX_ERR(56, 921, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_metric = ((struct PyPetscVecObject *)values[0]); + __pyx_v_ometric = ((struct PyPetscVecObject *)values[1]); + __pyx_v_determinant = ((struct PyPetscVecObject *)values[2]); + __pyx_v_restrictSizes = values[3]; + __pyx_v_restrictAnisotropy = values[4]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricNormalize", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 921, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNormalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric", 0))) __PYX_ERR(56, 921, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ometric), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "ometric", 0))) __PYX_ERR(56, 921, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_determinant), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "determinant", 0))) __PYX_ERR(56, 921, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_256metricNormalize(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric, __pyx_v_ometric, __pyx_v_determinant, __pyx_v_restrictSizes, __pyx_v_restrictAnisotropy); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_256metricNormalize(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric, struct PyPetscVecObject *__pyx_v_ometric, struct PyPetscVecObject *__pyx_v_determinant, PyObject *__pyx_v_restrictSizes, PyObject *__pyx_v_restrictAnisotropy) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscBool __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricNormalize", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":922 + * + * def metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True): + * CHKERR( DMPlexMetricNormalize(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) # <<<<<<<<<<<<<< + * return (ometric, determinant) + * + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_restrictSizes)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 922, __pyx_L1_error) + __pyx_t_2 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_restrictAnisotropy)); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 922, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricNormalize(__pyx_v_self->__pyx_base.dm, __pyx_v_metric->vec, __pyx_t_1, __pyx_t_2, __pyx_v_ometric->vec, __pyx_v_determinant->vec)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 922, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":923 + * def metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True): + * CHKERR( DMPlexMetricNormalize(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + * return (ometric, determinant) # <<<<<<<<<<<<<< + * + * def metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(56, 923, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_ometric)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_ometric)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ometric)); + __Pyx_INCREF(((PyObject *)__pyx_v_determinant)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_determinant)); + PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_determinant)); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":921 + * return (ometric, determinant) + * + * def metricNormalize(self, Vec metric, Vec ometric, Vec determinant, restrictSizes=True, restrictAnisotropy=True): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricNormalize(self.dm, metric.vec, restrictSizes, restrictAnisotropy, ometric.vec, determinant.vec) ) + * return (ometric, determinant) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricNormalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":925 + * return (ometric, determinant) + * + * def metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricAverage2(self.dm, metric1.vec, metric2.vec, metricAvg.vec) ) + * return metricAvg + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_259metricAverage2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_258metricAverage2[] = "DMPlex.metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_259metricAverage2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric1 = 0; + struct PyPetscVecObject *__pyx_v_metric2 = 0; + struct PyPetscVecObject *__pyx_v_metricAvg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricAverage2 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric1,&__pyx_n_s_metric2,&__pyx_n_s_metricAvg,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric1)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric2)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricAverage2", 1, 3, 3, 1); __PYX_ERR(56, 925, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metricAvg)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricAverage2", 1, 3, 3, 2); __PYX_ERR(56, 925, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricAverage2") < 0)) __PYX_ERR(56, 925, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_metric1 = ((struct PyPetscVecObject *)values[0]); + __pyx_v_metric2 = ((struct PyPetscVecObject *)values[1]); + __pyx_v_metricAvg = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricAverage2", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 925, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricAverage2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric1), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric1", 0))) __PYX_ERR(56, 925, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric2), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric2", 0))) __PYX_ERR(56, 925, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metricAvg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metricAvg", 0))) __PYX_ERR(56, 925, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_258metricAverage2(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric1, __pyx_v_metric2, __pyx_v_metricAvg); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_258metricAverage2(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metricAvg) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricAverage2", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":926 + * + * def metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg): + * CHKERR( DMPlexMetricAverage2(self.dm, metric1.vec, metric2.vec, metricAvg.vec) ) # <<<<<<<<<<<<<< + * return metricAvg + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricAverage2(__pyx_v_self->__pyx_base.dm, __pyx_v_metric1->vec, __pyx_v_metric2->vec, __pyx_v_metricAvg->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 926, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":927 + * def metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg): + * CHKERR( DMPlexMetricAverage2(self.dm, metric1.vec, metric2.vec, metricAvg.vec) ) + * return metricAvg # <<<<<<<<<<<<<< + * + * def metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metricAvg)); + __pyx_r = ((PyObject *)__pyx_v_metricAvg); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":925 + * return (ometric, determinant) + * + * def metricAverage2(self, Vec metric1, Vec metric2, Vec metricAvg): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricAverage2(self.dm, metric1.vec, metric2.vec, metricAvg.vec) ) + * return metricAvg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricAverage2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":929 + * return metricAvg + * + * def metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricAverage3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricAvg.vec) ) + * return metricAvg + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_261metricAverage3(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_260metricAverage3[] = "DMPlex.metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_261metricAverage3(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric1 = 0; + struct PyPetscVecObject *__pyx_v_metric2 = 0; + struct PyPetscVecObject *__pyx_v_metric3 = 0; + struct PyPetscVecObject *__pyx_v_metricAvg = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricAverage3 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric1,&__pyx_n_s_metric2,&__pyx_n_s_metric3,&__pyx_n_s_metricAvg,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric1)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric2)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricAverage3", 1, 4, 4, 1); __PYX_ERR(56, 929, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric3)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricAverage3", 1, 4, 4, 2); __PYX_ERR(56, 929, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metricAvg)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricAverage3", 1, 4, 4, 3); __PYX_ERR(56, 929, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricAverage3") < 0)) __PYX_ERR(56, 929, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_metric1 = ((struct PyPetscVecObject *)values[0]); + __pyx_v_metric2 = ((struct PyPetscVecObject *)values[1]); + __pyx_v_metric3 = ((struct PyPetscVecObject *)values[2]); + __pyx_v_metricAvg = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricAverage3", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 929, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricAverage3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric1), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric1", 0))) __PYX_ERR(56, 929, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric2), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric2", 0))) __PYX_ERR(56, 929, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric3), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric3", 0))) __PYX_ERR(56, 929, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metricAvg), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metricAvg", 0))) __PYX_ERR(56, 929, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_260metricAverage3(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric1, __pyx_v_metric2, __pyx_v_metric3, __pyx_v_metricAvg); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_260metricAverage3(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metric3, struct PyPetscVecObject *__pyx_v_metricAvg) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricAverage3", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":930 + * + * def metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg): + * CHKERR( DMPlexMetricAverage3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricAvg.vec) ) # <<<<<<<<<<<<<< + * return metricAvg + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricAverage3(__pyx_v_self->__pyx_base.dm, __pyx_v_metric1->vec, __pyx_v_metric2->vec, __pyx_v_metric3->vec, __pyx_v_metricAvg->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 930, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":931 + * def metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg): + * CHKERR( DMPlexMetricAverage3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricAvg.vec) ) + * return metricAvg # <<<<<<<<<<<<<< + * + * def metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metricAvg)); + __pyx_r = ((PyObject *)__pyx_v_metricAvg); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":929 + * return metricAvg + * + * def metricAverage3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricAvg): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricAverage3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricAvg.vec) ) + * return metricAvg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricAverage3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":933 + * return metricAvg + * + * def metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIntersection2(self.dm, metric1.vec, metric2.vec, metricInt.vec) ) + * return metricInt + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_263metricIntersection2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_262metricIntersection2[] = "DMPlex.metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_263metricIntersection2(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric1 = 0; + struct PyPetscVecObject *__pyx_v_metric2 = 0; + struct PyPetscVecObject *__pyx_v_metricInt = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricIntersection2 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric1,&__pyx_n_s_metric2,&__pyx_n_s_metricInt,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric1)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric2)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricIntersection2", 1, 3, 3, 1); __PYX_ERR(56, 933, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metricInt)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricIntersection2", 1, 3, 3, 2); __PYX_ERR(56, 933, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricIntersection2") < 0)) __PYX_ERR(56, 933, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_metric1 = ((struct PyPetscVecObject *)values[0]); + __pyx_v_metric2 = ((struct PyPetscVecObject *)values[1]); + __pyx_v_metricInt = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricIntersection2", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 933, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIntersection2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric1), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric1", 0))) __PYX_ERR(56, 933, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric2), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric2", 0))) __PYX_ERR(56, 933, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metricInt), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metricInt", 0))) __PYX_ERR(56, 933, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_262metricIntersection2(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric1, __pyx_v_metric2, __pyx_v_metricInt); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_262metricIntersection2(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metricInt) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricIntersection2", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":934 + * + * def metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt): + * CHKERR( DMPlexMetricIntersection2(self.dm, metric1.vec, metric2.vec, metricInt.vec) ) # <<<<<<<<<<<<<< + * return metricInt + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricIntersection2(__pyx_v_self->__pyx_base.dm, __pyx_v_metric1->vec, __pyx_v_metric2->vec, __pyx_v_metricInt->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 934, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":935 + * def metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt): + * CHKERR( DMPlexMetricIntersection2(self.dm, metric1.vec, metric2.vec, metricInt.vec) ) + * return metricInt # <<<<<<<<<<<<<< + * + * def metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metricInt)); + __pyx_r = ((PyObject *)__pyx_v_metricInt); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":933 + * return metricAvg + * + * def metricIntersection2(self, Vec metric1, Vec metric2, Vec metricInt): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIntersection2(self.dm, metric1.vec, metric2.vec, metricInt.vec) ) + * return metricInt + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIntersection2", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":937 + * return metricInt + * + * def metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIntersection3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricInt.vec) ) + * return metricInt + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_265metricIntersection3(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_264metricIntersection3[] = "DMPlex.metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_265metricIntersection3(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_metric1 = 0; + struct PyPetscVecObject *__pyx_v_metric2 = 0; + struct PyPetscVecObject *__pyx_v_metric3 = 0; + struct PyPetscVecObject *__pyx_v_metricInt = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("metricIntersection3 (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_metric1,&__pyx_n_s_metric2,&__pyx_n_s_metric3,&__pyx_n_s_metricInt,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric1)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric2)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricIntersection3", 1, 4, 4, 1); __PYX_ERR(56, 937, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metric3)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricIntersection3", 1, 4, 4, 2); __PYX_ERR(56, 937, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_metricInt)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("metricIntersection3", 1, 4, 4, 3); __PYX_ERR(56, 937, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "metricIntersection3") < 0)) __PYX_ERR(56, 937, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_metric1 = ((struct PyPetscVecObject *)values[0]); + __pyx_v_metric2 = ((struct PyPetscVecObject *)values[1]); + __pyx_v_metric3 = ((struct PyPetscVecObject *)values[2]); + __pyx_v_metricInt = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("metricIntersection3", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 937, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIntersection3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric1), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric1", 0))) __PYX_ERR(56, 937, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric2), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric2", 0))) __PYX_ERR(56, 937, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metric3), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metric3", 0))) __PYX_ERR(56, 937, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_metricInt), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "metricInt", 0))) __PYX_ERR(56, 937, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_264metricIntersection3(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_metric1, __pyx_v_metric2, __pyx_v_metric3, __pyx_v_metricInt); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_264metricIntersection3(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_metric1, struct PyPetscVecObject *__pyx_v_metric2, struct PyPetscVecObject *__pyx_v_metric3, struct PyPetscVecObject *__pyx_v_metricInt) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("metricIntersection3", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":938 + * + * def metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt): + * CHKERR( DMPlexMetricIntersection3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricInt.vec) ) # <<<<<<<<<<<<<< + * return metricInt + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexMetricIntersection3(__pyx_v_self->__pyx_base.dm, __pyx_v_metric1->vec, __pyx_v_metric2->vec, __pyx_v_metric3->vec, __pyx_v_metricInt->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 938, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":939 + * def metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt): + * CHKERR( DMPlexMetricIntersection3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricInt.vec) ) + * return metricInt # <<<<<<<<<<<<<< + * + * def computeGradientClementInterpolant(self, Vec locX, Vec locC): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_metricInt)); + __pyx_r = ((PyObject *)__pyx_v_metricInt); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":937 + * return metricInt + * + * def metricIntersection3(self, Vec metric1, Vec metric2, Vec metric3, Vec metricInt): # <<<<<<<<<<<<<< + * CHKERR( DMPlexMetricIntersection3(self.dm, metric1.vec, metric2.vec, metric3.vec, metricInt.vec) ) + * return metricInt + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.metricIntersection3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":941 + * return metricInt + * + * def computeGradientClementInterpolant(self, Vec locX, Vec locC): # <<<<<<<<<<<<<< + * CHKERR( DMPlexComputeGradientClementInterpolant(self.dm, locX.vec, locC.vec) ) + * return locC + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_267computeGradientClementInterpolant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_266computeGradientClementInterpolant[] = "DMPlex.computeGradientClementInterpolant(self, Vec locX, Vec locC)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_267computeGradientClementInterpolant(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_locX = 0; + struct PyPetscVecObject *__pyx_v_locC = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeGradientClementInterpolant (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_locX,&__pyx_n_s_locC,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_locX)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_locC)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("computeGradientClementInterpolant", 1, 2, 2, 1); __PYX_ERR(56, 941, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "computeGradientClementInterpolant") < 0)) __PYX_ERR(56, 941, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_locX = ((struct PyPetscVecObject *)values[0]); + __pyx_v_locC = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("computeGradientClementInterpolant", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 941, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.computeGradientClementInterpolant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_locX), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "locX", 0))) __PYX_ERR(56, 941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_locC), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "locC", 0))) __PYX_ERR(56, 941, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_266computeGradientClementInterpolant(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_locX, __pyx_v_locC); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_266computeGradientClementInterpolant(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscVecObject *__pyx_v_locX, struct PyPetscVecObject *__pyx_v_locC) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeGradientClementInterpolant", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":942 + * + * def computeGradientClementInterpolant(self, Vec locX, Vec locC): + * CHKERR( DMPlexComputeGradientClementInterpolant(self.dm, locX.vec, locC.vec) ) # <<<<<<<<<<<<<< + * return locC + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexComputeGradientClementInterpolant(__pyx_v_self->__pyx_base.dm, __pyx_v_locX->vec, __pyx_v_locC->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 942, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":943 + * def computeGradientClementInterpolant(self, Vec locX, Vec locC): + * CHKERR( DMPlexComputeGradientClementInterpolant(self.dm, locX.vec, locC.vec) ) + * return locC # <<<<<<<<<<<<<< + * + * # View + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_locC)); + __pyx_r = ((PyObject *)__pyx_v_locC); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":941 + * return metricInt + * + * def computeGradientClementInterpolant(self, Vec locX, Vec locC): # <<<<<<<<<<<<<< + * CHKERR( DMPlexComputeGradientClementInterpolant(self.dm, locX.vec, locC.vec) ) + * return locC + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.computeGradientClementInterpolant", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":947 + * # View + * + * def topologyView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTopologyView(self.dm, viewer.vwr)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_269topologyView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_268topologyView[] = "DMPlex.topologyView(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_269topologyView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("topologyView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "topologyView") < 0)) __PYX_ERR(56, 947, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("topologyView", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 947, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.topologyView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 947, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_268topologyView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_268topologyView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("topologyView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":948 + * + * def topologyView(self, Viewer viewer): + * CHKERR( DMPlexTopologyView(self.dm, viewer.vwr)) # <<<<<<<<<<<<<< + * + * def coordinatesView(self, Viewer viewer): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTopologyView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 948, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":947 + * # View + * + * def topologyView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTopologyView(self.dm, viewer.vwr)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.topologyView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":950 + * CHKERR( DMPlexTopologyView(self.dm, viewer.vwr)) + * + * def coordinatesView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexCoordinatesView(self.dm, viewer.vwr)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_271coordinatesView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_270coordinatesView[] = "DMPlex.coordinatesView(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_271coordinatesView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("coordinatesView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "coordinatesView") < 0)) __PYX_ERR(56, 950, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("coordinatesView", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 950, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.coordinatesView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 950, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_270coordinatesView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_270coordinatesView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("coordinatesView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":951 + * + * def coordinatesView(self, Viewer viewer): + * CHKERR( DMPlexCoordinatesView(self.dm, viewer.vwr)) # <<<<<<<<<<<<<< + * + * def labelsView(self, Viewer viewer): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCoordinatesView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 951, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":950 + * CHKERR( DMPlexTopologyView(self.dm, viewer.vwr)) + * + * def coordinatesView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexCoordinatesView(self.dm, viewer.vwr)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.coordinatesView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":953 + * CHKERR( DMPlexCoordinatesView(self.dm, viewer.vwr)) + * + * def labelsView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelsView(self.dm, viewer.vwr)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_273labelsView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_272labelsView[] = "DMPlex.labelsView(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_273labelsView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("labelsView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "labelsView") < 0)) __PYX_ERR(56, 953, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("labelsView", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 953, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelsView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 953, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_272labelsView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_272labelsView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("labelsView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":954 + * + * def labelsView(self, Viewer viewer): + * CHKERR( DMPlexLabelsView(self.dm, viewer.vwr)) # <<<<<<<<<<<<<< + * + * def sectionView(self, Viewer viewer, DM sectiondm): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLabelsView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 954, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":953 + * CHKERR( DMPlexCoordinatesView(self.dm, viewer.vwr)) + * + * def labelsView(self, Viewer viewer): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelsView(self.dm, viewer.vwr)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelsView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":956 + * CHKERR( DMPlexLabelsView(self.dm, viewer.vwr)) + * + * def sectionView(self, Viewer viewer, DM sectiondm): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSectionView(self.dm, viewer.vwr, sectiondm.dm)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_275sectionView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_274sectionView[] = "DMPlex.sectionView(self, Viewer viewer, DM sectiondm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_275sectionView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sectionView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("sectionView", 1, 2, 2, 1); __PYX_ERR(56, 956, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sectionView") < 0)) __PYX_ERR(56, 956, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sectionView", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 956, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.sectionView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 956, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 956, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_274sectionView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_274sectionView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sectionView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":957 + * + * def sectionView(self, Viewer viewer, DM sectiondm): + * CHKERR( DMPlexSectionView(self.dm, viewer.vwr, sectiondm.dm)) # <<<<<<<<<<<<<< + * + * def globalVectorView(self, Viewer viewer, DM sectiondm, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSectionView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 957, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":956 + * CHKERR( DMPlexLabelsView(self.dm, viewer.vwr)) + * + * def sectionView(self, Viewer viewer, DM sectiondm): # <<<<<<<<<<<<<< + * CHKERR( DMPlexSectionView(self.dm, viewer.vwr, sectiondm.dm)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.sectionView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":959 + * CHKERR( DMPlexSectionView(self.dm, viewer.vwr, sectiondm.dm)) + * + * def globalVectorView(self, Viewer viewer, DM sectiondm, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexGlobalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_277globalVectorView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_276globalVectorView[] = "DMPlex.globalVectorView(self, Viewer viewer, DM sectiondm, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_277globalVectorView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("globalVectorView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,&__pyx_n_s_vec,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalVectorView", 1, 3, 3, 1); __PYX_ERR(56, 959, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalVectorView", 1, 3, 3, 2); __PYX_ERR(56, 959, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "globalVectorView") < 0)) __PYX_ERR(56, 959, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("globalVectorView", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 959, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.globalVectorView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 959, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 959, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 959, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_276globalVectorView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm, __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_276globalVectorView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("globalVectorView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":960 + * + * def globalVectorView(self, Viewer viewer, DM sectiondm, Vec vec): + * CHKERR( DMPlexGlobalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) # <<<<<<<<<<<<<< + * + * def localVectorView(self, Viewer viewer, DM sectiondm, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGlobalVectorView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 960, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":959 + * CHKERR( DMPlexSectionView(self.dm, viewer.vwr, sectiondm.dm)) + * + * def globalVectorView(self, Viewer viewer, DM sectiondm, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexGlobalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.globalVectorView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":962 + * CHKERR( DMPlexGlobalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + * def localVectorView(self, Viewer viewer, DM sectiondm, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLocalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_279localVectorView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_278localVectorView[] = "DMPlex.localVectorView(self, Viewer viewer, DM sectiondm, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_279localVectorView(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localVectorView (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,&__pyx_n_s_vec,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localVectorView", 1, 3, 3, 1); __PYX_ERR(56, 962, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localVectorView", 1, 3, 3, 2); __PYX_ERR(56, 962, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "localVectorView") < 0)) __PYX_ERR(56, 962, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("localVectorView", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 962, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.localVectorView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 962, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 962, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_278localVectorView(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm, __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_278localVectorView(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localVectorView", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":963 + * + * def localVectorView(self, Viewer viewer, DM sectiondm, Vec vec): + * CHKERR( DMPlexLocalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) # <<<<<<<<<<<<<< + * + * # Load + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLocalVectorView(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 963, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":962 + * CHKERR( DMPlexGlobalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + * def localVectorView(self, Viewer viewer, DM sectiondm, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLocalVectorView(self.dm, viewer.vwr, sectiondm.dm, vec.vec)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.localVectorView", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":967 + * # Load + * + * def topologyLoad(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMPlexTopologyLoad(self.dm, viewer.vwr, &sf.sf)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_281topologyLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_280topologyLoad[] = "DMPlex.topologyLoad(self, Viewer viewer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_281topologyLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("topologyLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "topologyLoad") < 0)) __PYX_ERR(56, 967, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("topologyLoad", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 967, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.topologyLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 967, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_280topologyLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_280topologyLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + struct PyPetscSFObject *__pyx_v_sf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("topologyLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":968 + * + * def topologyLoad(self, Viewer viewer): + * cdef SF sf = SF() # <<<<<<<<<<<<<< + * CHKERR( DMPlexTopologyLoad(self.dm, viewer.vwr, &sf.sf)) + * return sf + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":969 + * def topologyLoad(self, Viewer viewer): + * cdef SF sf = SF() + * CHKERR( DMPlexTopologyLoad(self.dm, viewer.vwr, &sf.sf)) # <<<<<<<<<<<<<< + * return sf + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTopologyLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, (&__pyx_v_sf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 969, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":970 + * cdef SF sf = SF() + * CHKERR( DMPlexTopologyLoad(self.dm, viewer.vwr, &sf.sf)) + * return sf # <<<<<<<<<<<<<< + * + * def coordinatesLoad(self, Viewer viewer, SF sfxc): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_sf)); + __pyx_r = ((PyObject *)__pyx_v_sf); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":967 + * # Load + * + * def topologyLoad(self, Viewer viewer): # <<<<<<<<<<<<<< + * cdef SF sf = SF() + * CHKERR( DMPlexTopologyLoad(self.dm, viewer.vwr, &sf.sf)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.topologyLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_sf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":972 + * return sf + * + * def coordinatesLoad(self, Viewer viewer, SF sfxc): # <<<<<<<<<<<<<< + * CHKERR( DMPlexCoordinatesLoad(self.dm, viewer.vwr, sfxc.sf)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_283coordinatesLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_282coordinatesLoad[] = "DMPlex.coordinatesLoad(self, Viewer viewer, SF sfxc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_283coordinatesLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscSFObject *__pyx_v_sfxc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("coordinatesLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sfxc,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sfxc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("coordinatesLoad", 1, 2, 2, 1); __PYX_ERR(56, 972, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "coordinatesLoad") < 0)) __PYX_ERR(56, 972, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sfxc = ((struct PyPetscSFObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("coordinatesLoad", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 972, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.coordinatesLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 972, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sfxc), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sfxc", 0))) __PYX_ERR(56, 972, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_282coordinatesLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sfxc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_282coordinatesLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscSFObject *__pyx_v_sfxc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("coordinatesLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":973 + * + * def coordinatesLoad(self, Viewer viewer, SF sfxc): + * CHKERR( DMPlexCoordinatesLoad(self.dm, viewer.vwr, sfxc.sf)) # <<<<<<<<<<<<<< + * + * def labelsLoad(self, Viewer viewer, SF sfxc): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexCoordinatesLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sfxc->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 973, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":972 + * return sf + * + * def coordinatesLoad(self, Viewer viewer, SF sfxc): # <<<<<<<<<<<<<< + * CHKERR( DMPlexCoordinatesLoad(self.dm, viewer.vwr, sfxc.sf)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.coordinatesLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":975 + * CHKERR( DMPlexCoordinatesLoad(self.dm, viewer.vwr, sfxc.sf)) + * + * def labelsLoad(self, Viewer viewer, SF sfxc): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelsLoad(self.dm, viewer.vwr, sfxc.sf)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_285labelsLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_284labelsLoad[] = "DMPlex.labelsLoad(self, Viewer viewer, SF sfxc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_285labelsLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscSFObject *__pyx_v_sfxc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("labelsLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sfxc,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sfxc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("labelsLoad", 1, 2, 2, 1); __PYX_ERR(56, 975, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "labelsLoad") < 0)) __PYX_ERR(56, 975, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sfxc = ((struct PyPetscSFObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("labelsLoad", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 975, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelsLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 975, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sfxc), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sfxc", 0))) __PYX_ERR(56, 975, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_284labelsLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sfxc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_284labelsLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscSFObject *__pyx_v_sfxc) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("labelsLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":976 + * + * def labelsLoad(self, Viewer viewer, SF sfxc): + * CHKERR( DMPlexLabelsLoad(self.dm, viewer.vwr, sfxc.sf)) # <<<<<<<<<<<<<< + * + * def sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLabelsLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sfxc->sf)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 976, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":975 + * CHKERR( DMPlexCoordinatesLoad(self.dm, viewer.vwr, sfxc.sf)) + * + * def labelsLoad(self, Viewer viewer, SF sfxc): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLabelsLoad(self.dm, viewer.vwr, sfxc.sf)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.labelsLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":978 + * CHKERR( DMPlexLabelsLoad(self.dm, viewer.vwr, sfxc.sf)) + * + * def sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc): # <<<<<<<<<<<<<< + * cdef SF gsf = SF() + * cdef SF lsf = SF() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_287sectionLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_286sectionLoad[] = "DMPlex.sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_287sectionLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + struct PyPetscSFObject *__pyx_v_sfxc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sectionLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,&__pyx_n_s_sfxc,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("sectionLoad", 1, 3, 3, 1); __PYX_ERR(56, 978, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sfxc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("sectionLoad", 1, 3, 3, 2); __PYX_ERR(56, 978, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sectionLoad") < 0)) __PYX_ERR(56, 978, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + __pyx_v_sfxc = ((struct PyPetscSFObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sectionLoad", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 978, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.sectionLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 978, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 978, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sfxc), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sfxc", 0))) __PYX_ERR(56, 978, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_286sectionLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm, __pyx_v_sfxc); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_286sectionLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sfxc) { + struct PyPetscSFObject *__pyx_v_gsf = 0; + struct PyPetscSFObject *__pyx_v_lsf = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sectionLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":979 + * + * def sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc): + * cdef SF gsf = SF() # <<<<<<<<<<<<<< + * cdef SF lsf = SF() + * CHKERR( DMPlexSectionLoad(self.dm, viewer.vwr, sectiondm.dm, sfxc.sf, &gsf.sf, &lsf.sf)) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gsf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":980 + * def sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc): + * cdef SF gsf = SF() + * cdef SF lsf = SF() # <<<<<<<<<<<<<< + * CHKERR( DMPlexSectionLoad(self.dm, viewer.vwr, sectiondm.dm, sfxc.sf, &gsf.sf, &lsf.sf)) + * return gsf, lsf + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_lsf = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":981 + * cdef SF gsf = SF() + * cdef SF lsf = SF() + * CHKERR( DMPlexSectionLoad(self.dm, viewer.vwr, sectiondm.dm, sfxc.sf, &gsf.sf, &lsf.sf)) # <<<<<<<<<<<<<< + * return gsf, lsf + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexSectionLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm, __pyx_v_sfxc->sf, (&__pyx_v_gsf->sf), (&__pyx_v_lsf->sf))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 981, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":982 + * cdef SF lsf = SF() + * CHKERR( DMPlexSectionLoad(self.dm, viewer.vwr, sectiondm.dm, sfxc.sf, &gsf.sf, &lsf.sf)) + * return gsf, lsf # <<<<<<<<<<<<<< + * + * def globalVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_gsf)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gsf)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_gsf)); + __Pyx_INCREF(((PyObject *)__pyx_v_lsf)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_lsf)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_lsf)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":978 + * CHKERR( DMPlexLabelsLoad(self.dm, viewer.vwr, sfxc.sf)) + * + * def sectionLoad(self, Viewer viewer, DM sectiondm, SF sfxc): # <<<<<<<<<<<<<< + * cdef SF gsf = SF() + * cdef SF lsf = SF() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.sectionLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_gsf); + __Pyx_XDECREF((PyObject *)__pyx_v_lsf); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":984 + * return gsf, lsf + * + * def globalVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexGlobalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_289globalVectorLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_288globalVectorLoad[] = "DMPlex.globalVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_289globalVectorLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + struct PyPetscSFObject *__pyx_v_sf = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("globalVectorLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,&__pyx_n_s_sf,&__pyx_n_s_vec,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalVectorLoad", 1, 4, 4, 1); __PYX_ERR(56, 984, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalVectorLoad", 1, 4, 4, 2); __PYX_ERR(56, 984, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("globalVectorLoad", 1, 4, 4, 3); __PYX_ERR(56, 984, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "globalVectorLoad") < 0)) __PYX_ERR(56, 984, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + __pyx_v_sf = ((struct PyPetscSFObject *)values[2]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("globalVectorLoad", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 984, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.globalVectorLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 984, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 984, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(56, 984, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 984, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_288globalVectorLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm, __pyx_v_sf, __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_288globalVectorLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("globalVectorLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":985 + * + * def globalVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): + * CHKERR( DMPlexGlobalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) # <<<<<<<<<<<<<< + * + * def localVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexGlobalVectorLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm, __pyx_v_sf->sf, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 985, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":984 + * return gsf, lsf + * + * def globalVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexGlobalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.globalVectorLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":987 + * CHKERR( DMPlexGlobalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + * def localVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLocalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_291localVectorLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMPlex_290localVectorLoad[] = "DMPlex.localVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMPlex_291localVectorLoad(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + struct PyPetscDMObject *__pyx_v_sectiondm = 0; + struct PyPetscSFObject *__pyx_v_sf = 0; + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("localVectorLoad (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,&__pyx_n_s_sectiondm,&__pyx_n_s_sf,&__pyx_n_s_vec,0}; + PyObject* values[4] = {0,0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sectiondm)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localVectorLoad", 1, 4, 4, 1); __PYX_ERR(56, 987, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localVectorLoad", 1, 4, 4, 2); __PYX_ERR(56, 987, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("localVectorLoad", 1, 4, 4, 3); __PYX_ERR(56, 987, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "localVectorLoad") < 0)) __PYX_ERR(56, 987, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + __pyx_v_sectiondm = ((struct PyPetscDMObject *)values[1]); + __pyx_v_sf = ((struct PyPetscSFObject *)values[2]); + __pyx_v_vec = ((struct PyPetscVecObject *)values[3]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("localVectorLoad", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 987, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.localVectorLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 0, "viewer", 0))) __PYX_ERR(56, 987, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sectiondm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "sectiondm", 0))) __PYX_ERR(56, 987, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(56, 987, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(56, 987, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMPlex_290localVectorLoad(((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_v_self), __pyx_v_viewer, __pyx_v_sectiondm, __pyx_v_sf, __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMPlex_290localVectorLoad(struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer, struct PyPetscDMObject *__pyx_v_sectiondm, struct PyPetscSFObject *__pyx_v_sf, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("localVectorLoad", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":988 + * + * def localVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): + * CHKERR( DMPlexLocalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexLocalVectorLoad(__pyx_v_self->__pyx_base.dm, __pyx_v_viewer->vwr, __pyx_v_sectiondm->dm, __pyx_v_sf->sf, __pyx_v_vec->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 988, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":987 + * CHKERR( DMPlexGlobalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + * def localVectorLoad(self, Viewer viewer, DM sectiondm, SF sf, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMPlexLocalVectorLoad(self.dm, viewer.vwr, sectiondm.dm, sf.sf, vec.vec)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlex.localVectorLoad", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1009 + * cdef class DMPlexTransform(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.tr + * self.tr = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform___cinit__(((struct PyPetscDMPlexTransformObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform___cinit__(struct PyPetscDMPlexTransformObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1010 + * + * def __cinit__(self): + * self.obj = &self.tr # <<<<<<<<<<<<<< + * self.tr = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->tr)); + + /* "petsc4py/PETSc/DMPlex.pyx":1011 + * def __cinit__(self): + * self.obj = &self.tr + * self.tr = NULL # <<<<<<<<<<<<<< + * + * def apply(self, DM dm): + */ + __pyx_v_self->tr = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":1009 + * cdef class DMPlexTransform(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.tr + * self.tr = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1013 + * self.tr = NULL + * + * def apply(self, DM dm): # <<<<<<<<<<<<<< + * cdef DMPlex newdm = DMPlex() + * CHKERR( DMPlexTransformApply(self.tr, dm.dm, &newdm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_3apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_2apply[] = "DMPlexTransform.apply(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_3apply(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("apply (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply") < 0)) __PYX_ERR(56, 1013, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("apply", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 1013, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(56, 1013, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_2apply(((struct PyPetscDMPlexTransformObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_2apply(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + struct __pyx_obj_8petsc4py_5PETSc_DMPlex *__pyx_v_newdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("apply", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1014 + * + * def apply(self, DM dm): + * cdef DMPlex newdm = DMPlex() # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformApply(self.tr, dm.dm, &newdm.dm) ) + * return newdm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 1014, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_newdm = ((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1015 + * def apply(self, DM dm): + * cdef DMPlex newdm = DMPlex() + * CHKERR( DMPlexTransformApply(self.tr, dm.dm, &newdm.dm) ) # <<<<<<<<<<<<<< + * return newdm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformApply(__pyx_v_self->tr, __pyx_v_dm->dm, (&__pyx_v_newdm->__pyx_base.dm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1015, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1016 + * cdef DMPlex newdm = DMPlex() + * CHKERR( DMPlexTransformApply(self.tr, dm.dm, &newdm.dm) ) + * return newdm # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_newdm)); + __pyx_r = ((PyObject *)__pyx_v_newdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":1013 + * self.tr = NULL + * + * def apply(self, DM dm): # <<<<<<<<<<<<<< + * cdef DMPlex newdm = DMPlex() + * CHKERR( DMPlexTransformApply(self.tr, dm.dm, &newdm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.apply", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_newdm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1018 + * return newdm + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDMPlexTransform newtr = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_4create[] = "DMPlexTransform.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(56, 1018, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 1018, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_4create(((struct PyPetscDMPlexTransformObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_4create(struct PyPetscDMPlexTransformObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DMPlexTransform __pyx_v_newtr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1019 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDMPlexTransform newtr = NULL + * CHKERR( DMPlexTransformCreate(ccomm, &newtr) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(56, 1019, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMPlex.pyx":1020 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDMPlexTransform newtr = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformCreate(ccomm, &newtr) ) + * PetscCLEAR(self.obj) + */ + __pyx_v_newtr = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":1021 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDMPlexTransform newtr = NULL + * CHKERR( DMPlexTransformCreate(ccomm, &newtr) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj) + * self.tr = newtr + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformCreate(__pyx_v_ccomm, (&__pyx_v_newtr))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1021, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1022 + * cdef PetscDMPlexTransform newtr = NULL + * CHKERR( DMPlexTransformCreate(ccomm, &newtr) ) + * PetscCLEAR(self.obj) # <<<<<<<<<<<<<< + * self.tr = newtr + * return self + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMPlex.pyx":1023 + * CHKERR( DMPlexTransformCreate(ccomm, &newtr) ) + * PetscCLEAR(self.obj) + * self.tr = newtr # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_v_self->tr = __pyx_v_newtr; + + /* "petsc4py/PETSc/DMPlex.pyx":1024 + * PetscCLEAR(self.obj) + * self.tr = newtr + * return self # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":1018 + * return newdm + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDMPlexTransform newtr = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1026 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformDestroy(&self.tr) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_6destroy[] = "DMPlexTransform.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_6destroy(((struct PyPetscDMPlexTransformObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_6destroy(struct PyPetscDMPlexTransformObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1027 + * + * def destroy(self): + * CHKERR( DMPlexTransformDestroy(&self.tr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformDestroy((&__pyx_v_self->tr))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1027, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1028 + * def destroy(self): + * CHKERR( DMPlexTransformDestroy(&self.tr) ) + * return self # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":1026 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformDestroy(&self.tr) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1030 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDMPlexTransformType cval = NULL + * CHKERR( DMPlexTransformGetType(self.tr, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_9getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_8getType[] = "DMPlexTransform.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_9getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_8getType(((struct PyPetscDMPlexTransformObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_8getType(struct PyPetscDMPlexTransformObject *__pyx_v_self) { + DMPlexTransformType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1031 + * + * def getType(self): + * cdef PetscDMPlexTransformType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformGetType(self.tr, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":1032 + * def getType(self): + * cdef PetscDMPlexTransformType cval = NULL + * CHKERR( DMPlexTransformGetType(self.tr, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformGetType(__pyx_v_self->tr, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1032, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1033 + * cdef PetscDMPlexTransformType cval = NULL + * CHKERR( DMPlexTransformGetType(self.tr, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(56, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":1030 + * return self + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDMPlexTransformType cval = NULL + * CHKERR( DMPlexTransformGetType(self.tr, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1035 + * return bytes2str(cval) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetUp(self.tr) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_11setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_10setUp[] = "DMPlexTransform.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_11setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_10setUp(((struct PyPetscDMPlexTransformObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_10setUp(struct PyPetscDMPlexTransformObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1036 + * + * def setUp(self): + * CHKERR( DMPlexTransformSetUp(self.tr) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformSetUp(__pyx_v_self->tr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1036, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1037 + * def setUp(self): + * CHKERR( DMPlexTransformSetUp(self.tr) ) + * return self # <<<<<<<<<<<<<< + * + * def setType(self, tr_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMPlex.pyx":1035 + * return bytes2str(cval) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetUp(self.tr) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1039 + * return self + * + * def setType(self, tr_type): # <<<<<<<<<<<<<< + * cdef PetscDMPlexTransformType cval = NULL + * tr_type = str2bytes(tr_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_12setType[] = "DMPlexTransform.setType(self, tr_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_13setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tr_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tr_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tr_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(56, 1039, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tr_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 1039, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_12setType(((struct PyPetscDMPlexTransformObject *)__pyx_v_self), __pyx_v_tr_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_12setType(struct PyPetscDMPlexTransformObject *__pyx_v_self, PyObject *__pyx_v_tr_type) { + DMPlexTransformType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_tr_type); + + /* "petsc4py/PETSc/DMPlex.pyx":1040 + * + * def setType(self, tr_type): + * cdef PetscDMPlexTransformType cval = NULL # <<<<<<<<<<<<<< + * tr_type = str2bytes(tr_type, &cval) + * CHKERR( DMPlexTransformSetType(self.tr, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":1041 + * def setType(self, tr_type): + * cdef PetscDMPlexTransformType cval = NULL + * tr_type = str2bytes(tr_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetType(self.tr, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_tr_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(56, 1041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_tr_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1042 + * cdef PetscDMPlexTransformType cval = NULL + * tr_type = str2bytes(tr_type, &cval) + * CHKERR( DMPlexTransformSetType(self.tr, cval) ) # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformSetType(__pyx_v_self->tr, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1042, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1039 + * return self + * + * def setType(self, tr_type): # <<<<<<<<<<<<<< + * cdef PetscDMPlexTransformType cval = NULL + * tr_type = str2bytes(tr_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tr_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1044 + * CHKERR( DMPlexTransformSetType(self.tr, cval) ) + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetDM(self.tr, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_15setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_14setDM[] = "DMPlexTransform.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_15setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(56, 1044, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 1044, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(56, 1044, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_14setDM(((struct PyPetscDMPlexTransformObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_14setDM(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1045 + * + * def setDM(self, DM dm): + * CHKERR( DMPlexTransformSetDM(self.tr, dm.dm) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformSetDM(__pyx_v_self->tr, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1045, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1044 + * CHKERR( DMPlexTransformSetType(self.tr, cval) ) + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetDM(self.tr, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1047 + * CHKERR( DMPlexTransformSetDM(self.tr, dm.dm) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetFromOptions(self.tr) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_17setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_16setFromOptions[] = "DMPlexTransform.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_17setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_16setFromOptions(((struct PyPetscDMPlexTransformObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_16setFromOptions(struct PyPetscDMPlexTransformObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1048 + * + * def setFromOptions(self): + * CHKERR( DMPlexTransformSetFromOptions(self.tr) ) # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformSetFromOptions(__pyx_v_self->tr)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1048, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1047 + * CHKERR( DMPlexTransformSetDM(self.tr, dm.dm) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformSetFromOptions(self.tr) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMPlex.pyx":1050 + * CHKERR( DMPlexTransformSetFromOptions(self.tr) ) + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_19view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_18view[] = "DMPlexTransform.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_19view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(56, 1050, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(56, 1050, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(56, 1050, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_18view(((struct PyPetscDMPlexTransformObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMPlexTransform_18view(struct PyPetscDMPlexTransformObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/DMPlex.pyx":1051 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMPlexTransformView(self.tr, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/DMPlex.pyx":1052 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( DMPlexTransformView(self.tr, vwr) ) + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/DMPlex.pyx":1053 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMPlexTransformView(self.tr, vwr) ) # <<<<<<<<<<<<<< + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMPlexTransformView(__pyx_v_self->tr, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(56, 1053, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":1050 + * CHKERR( DMPlexTransformSetFromOptions(self.tr) ) + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMPlexTransform.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":45 + * StencilLocation = DMStagStencilLocation + * + * def create(self, dim, dofs=None, sizes=None, boundary_types=None, stencil_type=None, stencil_width=None, proc_sizes=None, ownership_ranges=None, comm=None, setUp=False): # <<<<<<<<<<<<<< + * + * # ndim + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_create[] = "DMStag.create(self, dim, dofs=None, sizes=None, boundary_types=None, stencil_type=None, stencil_width=None, proc_sizes=None, ownership_ranges=None, comm=None, setUp=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + PyObject *__pyx_v_dofs = 0; + PyObject *__pyx_v_sizes = 0; + PyObject *__pyx_v_boundary_types = 0; + PyObject *__pyx_v_stencil_type = 0; + PyObject *__pyx_v_stencil_width = 0; + PyObject *__pyx_v_proc_sizes = 0; + PyObject *__pyx_v_ownership_ranges = 0; + PyObject *__pyx_v_comm = 0; + PyObject *__pyx_v_setUp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,&__pyx_n_s_dofs,&__pyx_n_s_sizes,&__pyx_n_s_boundary_types,&__pyx_n_s_stencil_type,&__pyx_n_s_stencil_width,&__pyx_n_s_proc_sizes,&__pyx_n_s_ownership_ranges,&__pyx_n_s_comm,&__pyx_n_s_setUp,0}; + PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + values[6] = ((PyObject *)Py_None); + values[7] = ((PyObject *)Py_None); + values[8] = ((PyObject *)Py_None); + values[9] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dofs); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary_types); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_type); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stencil_width); + if (value) { values[5] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proc_sizes); + if (value) { values[6] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ownership_ranges); + if (value) { values[7] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 8: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[8] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 9: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_setUp); + if (value) { values[9] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(57, 45, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dim = values[0]; + __pyx_v_dofs = values[1]; + __pyx_v_sizes = values[2]; + __pyx_v_boundary_types = values[3]; + __pyx_v_stencil_type = values[4]; + __pyx_v_stencil_width = values[5]; + __pyx_v_proc_sizes = values[6]; + __pyx_v_ownership_ranges = values[7]; + __pyx_v_comm = values[8]; + __pyx_v_setUp = values[9]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 1, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 45, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_create(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_dim, __pyx_v_dofs, __pyx_v_sizes, __pyx_v_boundary_types, __pyx_v_stencil_type, __pyx_v_stencil_width, __pyx_v_proc_sizes, __pyx_v_ownership_ranges, __pyx_v_comm, __pyx_v_setUp); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_create(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dim, PyObject *__pyx_v_dofs, PyObject *__pyx_v_sizes, PyObject *__pyx_v_boundary_types, PyObject *__pyx_v_stencil_type, PyObject *__pyx_v_stencil_width, PyObject *__pyx_v_proc_sizes, PyObject *__pyx_v_ownership_ranges, PyObject *__pyx_v_comm, PyObject *__pyx_v_setUp) { + PetscInt __pyx_v_ndim; + PyObject *__pyx_v_gsizes = 0; + PetscInt __pyx_v_nsizes; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PetscInt __pyx_v_P; + PyObject *__pyx_v_cdofs = 0; + PetscInt __pyx_v_ndofs; + PetscInt __pyx_v_dof0; + PetscInt __pyx_v_dof1; + PetscInt __pyx_v_dof2; + PetscInt __pyx_v_dof3; + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + PetscInt __pyx_v_swidth; + DMStagStencilType __pyx_v_stype; + MPI_Comm __pyx_v_ccomm; + PyObject *__pyx_v_psizes = 0; + PetscInt __pyx_v_nprocs; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt *__pyx_v_lx; + PetscInt *__pyx_v_ly; + PetscInt *__pyx_v_lz; + PyObject *__pyx_v_nranges = NULL; + DM __pyx_v_newda; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + DMStagStencilType __pyx_t_4; + MPI_Comm __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMStag.pyx":48 + * + * # ndim + * cdef PetscInt ndim = asInt(dim) # <<<<<<<<<<<<<< + * + * # sizes + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 48, __pyx_L1_error) + __pyx_v_ndim = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":51 + * + * # sizes + * cdef object gsizes = sizes # <<<<<<<<<<<<<< + * cdef PetscInt nsizes=PETSC_DECIDE, M=1, N=1, P=1 + * if sizes is not None: + */ + __Pyx_INCREF(__pyx_v_sizes); + __pyx_v_gsizes = __pyx_v_sizes; + + /* "petsc4py/PETSc/DMStag.pyx":52 + * # sizes + * cdef object gsizes = sizes + * cdef PetscInt nsizes=PETSC_DECIDE, M=1, N=1, P=1 # <<<<<<<<<<<<<< + * if sizes is not None: + * nsizes = asStagDims(gsizes, &M, &N, &P) + */ + __pyx_v_nsizes = PETSC_DECIDE; + __pyx_v_M = 1; + __pyx_v_N = 1; + __pyx_v_P = 1; + + /* "petsc4py/PETSc/DMStag.pyx":53 + * cdef object gsizes = sizes + * cdef PetscInt nsizes=PETSC_DECIDE, M=1, N=1, P=1 + * if sizes is not None: # <<<<<<<<<<<<<< + * nsizes = asStagDims(gsizes, &M, &N, &P) + * assert(nsizes==ndim) + */ + __pyx_t_2 = (__pyx_v_sizes != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMStag.pyx":54 + * cdef PetscInt nsizes=PETSC_DECIDE, M=1, N=1, P=1 + * if sizes is not None: + * nsizes = asStagDims(gsizes, &M, &N, &P) # <<<<<<<<<<<<<< + * assert(nsizes==ndim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStagDims(__pyx_v_gsizes, (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 54, __pyx_L1_error) + __pyx_v_nsizes = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":55 + * if sizes is not None: + * nsizes = asStagDims(gsizes, &M, &N, &P) + * assert(nsizes==ndim) # <<<<<<<<<<<<<< + * + * # dofs + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_nsizes == __pyx_v_ndim) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(57, 55, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMStag.pyx":53 + * cdef object gsizes = sizes + * cdef PetscInt nsizes=PETSC_DECIDE, M=1, N=1, P=1 + * if sizes is not None: # <<<<<<<<<<<<<< + * nsizes = asStagDims(gsizes, &M, &N, &P) + * assert(nsizes==ndim) + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":58 + * + * # dofs + * cdef object cdofs = dofs # <<<<<<<<<<<<<< + * cdef PetscInt ndofs=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * if dofs is not None: + */ + __Pyx_INCREF(__pyx_v_dofs); + __pyx_v_cdofs = __pyx_v_dofs; + + /* "petsc4py/PETSc/DMStag.pyx":59 + * # dofs + * cdef object cdofs = dofs + * cdef PetscInt ndofs=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 # <<<<<<<<<<<<<< + * if dofs is not None: + * ndofs = asDofs(cdofs, &dof0, &dof1, &dof2, &dof3) + */ + __pyx_v_ndofs = PETSC_DECIDE; + __pyx_v_dof0 = 1; + __pyx_v_dof1 = 0; + __pyx_v_dof2 = 0; + __pyx_v_dof3 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":60 + * cdef object cdofs = dofs + * cdef PetscInt ndofs=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * if dofs is not None: # <<<<<<<<<<<<<< + * ndofs = asDofs(cdofs, &dof0, &dof1, &dof2, &dof3) + * assert(ndofs==ndim+1) + */ + __pyx_t_3 = (__pyx_v_dofs != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":61 + * cdef PetscInt ndofs=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * if dofs is not None: + * ndofs = asDofs(cdofs, &dof0, &dof1, &dof2, &dof3) # <<<<<<<<<<<<<< + * assert(ndofs==ndim+1) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asDofs(__pyx_v_cdofs, (&__pyx_v_dof0), (&__pyx_v_dof1), (&__pyx_v_dof2), (&__pyx_v_dof3)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 61, __pyx_L1_error) + __pyx_v_ndofs = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":62 + * if dofs is not None: + * ndofs = asDofs(cdofs, &dof0, &dof1, &dof2, &dof3) + * assert(ndofs==ndim+1) # <<<<<<<<<<<<<< + * + * # boundary types + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_ndofs == (__pyx_v_ndim + 1)) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(57, 62, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMStag.pyx":60 + * cdef object cdofs = dofs + * cdef PetscInt ndofs=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * if dofs is not None: # <<<<<<<<<<<<<< + * ndofs = asDofs(cdofs, &dof0, &dof1, &dof2, &dof3) + * assert(ndofs==ndim+1) + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":65 + * + * # boundary types + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":66 + * # boundary types + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_types, &btx, &bty, &btz) + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":67 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * asBoundary(boundary_types, &btx, &bty, &btz) + * + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":68 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_types, &btx, &bty, &btz) # <<<<<<<<<<<<<< + * + * # stencil + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_boundary_types, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L))) __PYX_ERR(57, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":71 + * + * # stencil + * cdef PetscInt swidth = 0 # <<<<<<<<<<<<<< + * if stencil_width is not None: + * swidth = asInt(stencil_width) + */ + __pyx_v_swidth = 0; + + /* "petsc4py/PETSc/DMStag.pyx":72 + * # stencil + * cdef PetscInt swidth = 0 + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + */ + __pyx_t_2 = (__pyx_v_stencil_width != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMStag.pyx":73 + * cdef PetscInt swidth = 0 + * if stencil_width is not None: + * swidth = asInt(stencil_width) # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + * if stencil_type is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stencil_width); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 73, __pyx_L1_error) + __pyx_v_swidth = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":72 + * # stencil + * cdef PetscInt swidth = 0 + * if stencil_width is not None: # <<<<<<<<<<<<<< + * swidth = asInt(stencil_width) + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":74 + * if stencil_width is not None: + * swidth = asInt(stencil_width) + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE # <<<<<<<<<<<<<< + * if stencil_type is not None: + * stype = asStagStencil(stencil_type) + */ + __pyx_v_stype = DMSTAG_STENCIL_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":75 + * swidth = asInt(stencil_width) + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStagStencil(stencil_type) + * + */ + __pyx_t_3 = (__pyx_v_stencil_type != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":76 + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + * if stencil_type is not None: + * stype = asStagStencil(stencil_type) # <<<<<<<<<<<<<< + * + * # comm + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asStagStencil(__pyx_v_stencil_type); if (unlikely(__pyx_t_4 == ((DMStagStencilType)((DMStagStencilType)-1L)))) __PYX_ERR(57, 76, __pyx_L1_error) + __pyx_v_stype = __pyx_t_4; + + /* "petsc4py/PETSc/DMStag.pyx":75 + * swidth = asInt(stencil_width) + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_NONE + * if stencil_type is not None: # <<<<<<<<<<<<<< + * stype = asStagStencil(stencil_type) + * + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":79 + * + * # comm + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * + * # proc sizes + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(57, 79, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_5; + + /* "petsc4py/PETSc/DMStag.pyx":82 + * + * # proc sizes + * cdef object psizes = proc_sizes # <<<<<<<<<<<<<< + * cdef PetscInt nprocs=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * if proc_sizes is not None: + */ + __Pyx_INCREF(__pyx_v_proc_sizes); + __pyx_v_psizes = __pyx_v_proc_sizes; + + /* "petsc4py/PETSc/DMStag.pyx":83 + * # proc sizes + * cdef object psizes = proc_sizes + * cdef PetscInt nprocs=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * if proc_sizes is not None: + * nprocs = asStagDims(psizes, &m, &n, &p) + */ + __pyx_v_nprocs = PETSC_DECIDE; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":84 + * cdef object psizes = proc_sizes + * cdef PetscInt nprocs=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * if proc_sizes is not None: # <<<<<<<<<<<<<< + * nprocs = asStagDims(psizes, &m, &n, &p) + * assert(nprocs==ndim) + */ + __pyx_t_2 = (__pyx_v_proc_sizes != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/DMStag.pyx":85 + * cdef PetscInt nprocs=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * if proc_sizes is not None: + * nprocs = asStagDims(psizes, &m, &n, &p) # <<<<<<<<<<<<<< + * assert(nprocs==ndim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStagDims(__pyx_v_psizes, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 85, __pyx_L1_error) + __pyx_v_nprocs = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":86 + * if proc_sizes is not None: + * nprocs = asStagDims(psizes, &m, &n, &p) + * assert(nprocs==ndim) # <<<<<<<<<<<<<< + * + * # ownership ranges + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_nprocs == __pyx_v_ndim) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(57, 86, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMStag.pyx":84 + * cdef object psizes = proc_sizes + * cdef PetscInt nprocs=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * if proc_sizes is not None: # <<<<<<<<<<<<<< + * nprocs = asStagDims(psizes, &m, &n, &p) + * assert(nprocs==ndim) + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":89 + * + * # ownership ranges + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL # <<<<<<<<<<<<<< + * if ownership_ranges is not None: + * nranges = asStagOwnershipRanges(ownership_ranges, ndim, &m, &n, &p, &lx, &ly, &lz) + */ + __pyx_v_lx = NULL; + __pyx_v_ly = NULL; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":90 + * # ownership ranges + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * if ownership_ranges is not None: # <<<<<<<<<<<<<< + * nranges = asStagOwnershipRanges(ownership_ranges, ndim, &m, &n, &p, &lx, &ly, &lz) + * assert(nranges==ndim) + */ + __pyx_t_3 = (__pyx_v_ownership_ranges != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":91 + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * if ownership_ranges is not None: + * nranges = asStagOwnershipRanges(ownership_ranges, ndim, &m, &n, &p, &lx, &ly, &lz) # <<<<<<<<<<<<<< + * assert(nranges==ndim) + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asStagOwnershipRanges(__pyx_v_ownership_ranges, __pyx_v_ndim, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz)); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_nranges = ((PyObject*)__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":92 + * if ownership_ranges is not None: + * nranges = asStagOwnershipRanges(ownership_ranges, ndim, &m, &n, &p, &lx, &ly, &lz) + * assert(nranges==ndim) # <<<<<<<<<<<<<< + * + * # create + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyObject_RichCompare(__pyx_v_nranges, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 92, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(57, 92, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_2)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(57, 92, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMStag.pyx":90 + * # ownership ranges + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * if ownership_ranges is not None: # <<<<<<<<<<<<<< + * nranges = asStagOwnershipRanges(ownership_ranges, ndim, &m, &n, &p, &lx, &ly, &lz) + * assert(nranges==ndim) + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":95 + * + * # create + * cdef PetscDM newda = NULL # <<<<<<<<<<<<<< + * if dim == 1: + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + */ + __pyx_v_newda = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":96 + * # create + * cdef PetscDM newda = NULL + * if dim == 1: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + * if dim == 2: + */ + __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_dim, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(57, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":97 + * cdef PetscDM newda = NULL + * if dim == 1: + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) # <<<<<<<<<<<<<< + * if dim == 2: + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagCreate1d(__pyx_v_ccomm, __pyx_v_btx, __pyx_v_M, __pyx_v_dof0, __pyx_v_dof1, __pyx_v_stype, __pyx_v_swidth, __pyx_v_lx, (&__pyx_v_newda))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":96 + * # create + * cdef PetscDM newda = NULL + * if dim == 1: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + * if dim == 2: + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":98 + * if dim == 1: + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + * if dim == 2: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + * if dim == 3: + */ + __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_dim, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(57, 98, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":99 + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + * if dim == 2: + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) # <<<<<<<<<<<<<< + * if dim == 3: + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagCreate2d(__pyx_v_ccomm, __pyx_v_btx, __pyx_v_bty, __pyx_v_M, __pyx_v_N, __pyx_v_m, __pyx_v_n, __pyx_v_dof0, __pyx_v_dof1, __pyx_v_dof2, __pyx_v_stype, __pyx_v_swidth, __pyx_v_lx, __pyx_v_ly, (&__pyx_v_newda))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 99, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":98 + * if dim == 1: + * CHKERR( DMStagCreate1d(ccomm, btx, M, dof0, dof1, stype, swidth, lx, &newda) ) + * if dim == 2: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + * if dim == 3: + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":100 + * if dim == 2: + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + * if dim == 3: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + * PetscCLEAR(self.obj); self.dm = newda + */ + __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_dim, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(57, 100, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":101 + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + * if dim == 3: + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newda + * if setUp: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagCreate3d(__pyx_v_ccomm, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz, __pyx_v_M, __pyx_v_N, __pyx_v_P, __pyx_v_m, __pyx_v_n, __pyx_v_p, __pyx_v_dof0, __pyx_v_dof1, __pyx_v_dof2, __pyx_v_dof3, __pyx_v_stype, __pyx_v_swidth, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz, (&__pyx_v_newda))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 101, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":100 + * if dim == 2: + * CHKERR( DMStagCreate2d(ccomm, btx, bty, M, N, m, n, dof0, dof1, dof2, stype, swidth, lx, ly, &newda) ) + * if dim == 3: # <<<<<<<<<<<<<< + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + * PetscCLEAR(self.obj); self.dm = newda + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":102 + * if dim == 3: + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + * PetscCLEAR(self.obj); self.dm = newda # <<<<<<<<<<<<<< + * if setUp: + * CHKERR( DMSetUp(self.dm) ) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newda; + + /* "petsc4py/PETSc/DMStag.pyx":103 + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + * PetscCLEAR(self.obj); self.dm = newda + * if setUp: # <<<<<<<<<<<<<< + * CHKERR( DMSetUp(self.dm) ) + * return self + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_setUp); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(57, 103, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMStag.pyx":104 + * PetscCLEAR(self.obj); self.dm = newda + * if setUp: + * CHKERR( DMSetUp(self.dm) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetUp(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":103 + * CHKERR( DMStagCreate3d(ccomm, btx, bty, btz, M, N, P, m, n, p, dof0, dof1, dof2, dof3, stype, swidth, lx, ly, lz, &newda) ) + * PetscCLEAR(self.obj); self.dm = newda + * if setUp: # <<<<<<<<<<<<<< + * CHKERR( DMSetUp(self.dm) ) + * return self + */ + } + + /* "petsc4py/PETSc/DMStag.pyx":105 + * if setUp: + * CHKERR( DMSetUp(self.dm) ) + * return self # <<<<<<<<<<<<<< + * + * # Setters + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":45 + * StencilLocation = DMStagStencilLocation + * + * def create(self, dim, dofs=None, sizes=None, boundary_types=None, stencil_type=None, stencil_width=None, proc_sizes=None, ownership_ranges=None, comm=None, setUp=False): # <<<<<<<<<<<<<< + * + * # ndim + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gsizes); + __Pyx_XDECREF(__pyx_v_cdofs); + __Pyx_XDECREF(__pyx_v_psizes); + __Pyx_XDECREF(__pyx_v_nranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":109 + * # Setters + * + * def setStencilWidth(self,swidth): # <<<<<<<<<<<<<< + * cdef PetscInt sw = asInt(swidth) + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_3setStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_2setStencilWidth[] = "DMStag.setStencilWidth(self, swidth)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_3setStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_swidth = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencilWidth (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_swidth,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swidth)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencilWidth") < 0)) __PYX_ERR(57, 109, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_swidth = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencilWidth", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 109, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_2setStencilWidth(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_swidth); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_2setStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_swidth) { + PetscInt __pyx_v_sw; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencilWidth", 0); + + /* "petsc4py/PETSc/DMStag.pyx":110 + * + * def setStencilWidth(self,swidth): + * cdef PetscInt sw = asInt(swidth) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_swidth); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 110, __pyx_L1_error) + __pyx_v_sw = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":111 + * def setStencilWidth(self,swidth): + * cdef PetscInt sw = asInt(swidth) + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) # <<<<<<<<<<<<<< + * + * def setStencilType(self, stenciltype): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetStencilWidth(__pyx_v_self->__pyx_base.dm, __pyx_v_sw)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 111, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":109 + * # Setters + * + * def setStencilWidth(self,swidth): # <<<<<<<<<<<<<< + * cdef PetscInt sw = asInt(swidth) + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":113 + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) + * + * def setStencilType(self, stenciltype): # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilType stype = asStagStencil(stenciltype) + * CHKERR( DMStagSetStencilType(self.dm, stype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_5setStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_4setStencilType[] = "DMStag.setStencilType(self, stenciltype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_5setStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stenciltype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStencilType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stenciltype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stenciltype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStencilType") < 0)) __PYX_ERR(57, 113, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stenciltype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStencilType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 113, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_4setStencilType(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_stenciltype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_4setStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_stenciltype) { + DMStagStencilType __pyx_v_stype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMStagStencilType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStencilType", 0); + + /* "petsc4py/PETSc/DMStag.pyx":114 + * + * def setStencilType(self, stenciltype): + * cdef PetscDMStagStencilType stype = asStagStencil(stenciltype) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetStencilType(self.dm, stype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStagStencil(__pyx_v_stenciltype); if (unlikely(__pyx_t_1 == ((DMStagStencilType)((DMStagStencilType)-1L)))) __PYX_ERR(57, 114, __pyx_L1_error) + __pyx_v_stype = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":115 + * def setStencilType(self, stenciltype): + * cdef PetscDMStagStencilType stype = asStagStencil(stenciltype) + * CHKERR( DMStagSetStencilType(self.dm, stype) ) # <<<<<<<<<<<<<< + * + * def setBoundaryTypes(self, boundary_types): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetStencilType(__pyx_v_self->__pyx_base.dm, __pyx_v_stype)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 115, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":113 + * CHKERR( DMStagSetStencilWidth(self.dm, sw) ) + * + * def setStencilType(self, stenciltype): # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilType stype = asStagStencil(stenciltype) + * CHKERR( DMStagSetStencilType(self.dm, stype) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":117 + * CHKERR( DMStagSetStencilType(self.dm, stype) ) + * + * def setBoundaryTypes(self, boundary_types): # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_7setBoundaryTypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_6setBoundaryTypes[] = "DMStag.setBoundaryTypes(self, boundary_types)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_7setBoundaryTypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_boundary_types = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setBoundaryTypes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_boundary_types,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_boundary_types)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setBoundaryTypes") < 0)) __PYX_ERR(57, 117, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_boundary_types = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setBoundaryTypes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 117, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setBoundaryTypes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_6setBoundaryTypes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_boundary_types); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_6setBoundaryTypes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_boundary_types) { + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setBoundaryTypes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":118 + * + * def setBoundaryTypes(self, boundary_types): + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":119 + * def setBoundaryTypes(self, boundary_types): + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_types, &btx, &bty, &btz) + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":120 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * asBoundary(boundary_types, &btx, &bty, &btz) + * CHKERR( DMStagSetBoundaryTypes(self.dm, btx, bty, btz) ) + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":121 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_types, &btx, &bty, &btz) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetBoundaryTypes(self.dm, btx, bty, btz) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBoundary(__pyx_v_boundary_types, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz)); if (unlikely(__pyx_t_1 == ((PetscInt)-1L))) __PYX_ERR(57, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":122 + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * asBoundary(boundary_types, &btx, &bty, &btz) + * CHKERR( DMStagSetBoundaryTypes(self.dm, btx, bty, btz) ) # <<<<<<<<<<<<<< + * + * def setDof(self, dofs): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetBoundaryTypes(__pyx_v_self->__pyx_base.dm, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 122, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":117 + * CHKERR( DMStagSetStencilType(self.dm, stype) ) + * + * def setBoundaryTypes(self, boundary_types): # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setBoundaryTypes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":124 + * CHKERR( DMStagSetBoundaryTypes(self.dm, btx, bty, btz) ) + * + * def setDof(self, dofs): # <<<<<<<<<<<<<< + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_9setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_8setDof[] = "DMStag.setDof(self, dofs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_9setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dofs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dofs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dofs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDof") < 0)) __PYX_ERR(57, 124, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dofs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 124, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_8setDof(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_dofs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_8setDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dofs) { + PyObject *__pyx_v_gdofs = 0; + CYTHON_UNUSED PetscInt __pyx_v_gdim; + PetscInt __pyx_v_dof0; + PetscInt __pyx_v_dof1; + PetscInt __pyx_v_dof2; + PetscInt __pyx_v_dof3; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDof", 0); + + /* "petsc4py/PETSc/DMStag.pyx":125 + * + * def setDof(self, dofs): + * cdef tuple gdofs = tuple(dofs) # <<<<<<<<<<<<<< + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_dofs); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gdofs = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":126 + * def setDof(self, dofs): + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 # <<<<<<<<<<<<<< + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + * CHKERR( DMStagSetDOF(self.dm, dof0, dof1, dof2, dof3) ) + */ + __pyx_v_gdim = PETSC_DECIDE; + __pyx_v_dof0 = 1; + __pyx_v_dof1 = 0; + __pyx_v_dof2 = 0; + __pyx_v_dof3 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":127 + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetDOF(self.dm, dof0, dof1, dof2, dof3) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asDofs(__pyx_v_gdofs, (&__pyx_v_dof0), (&__pyx_v_dof1), (&__pyx_v_dof2), (&__pyx_v_dof3)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 127, __pyx_L1_error) + __pyx_v_gdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":128 + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + * CHKERR( DMStagSetDOF(self.dm, dof0, dof1, dof2, dof3) ) # <<<<<<<<<<<<<< + * + * def setGlobalSizes(self, sizes): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetDOF(__pyx_v_self->__pyx_base.dm, __pyx_v_dof0, __pyx_v_dof1, __pyx_v_dof2, __pyx_v_dof3)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":124 + * CHKERR( DMStagSetBoundaryTypes(self.dm, btx, bty, btz) ) + * + * def setDof(self, dofs): # <<<<<<<<<<<<<< + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gdofs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":130 + * CHKERR( DMStagSetDOF(self.dm, dof0, dof1, dof2, dof3) ) + * + * def setGlobalSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_11setGlobalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_10setGlobalSizes[] = "DMStag.setGlobalSizes(self, sizes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_11setGlobalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sizes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGlobalSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sizes,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGlobalSizes") < 0)) __PYX_ERR(57, 130, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sizes = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGlobalSizes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 130, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setGlobalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_10setGlobalSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_sizes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_10setGlobalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_sizes) { + PyObject *__pyx_v_gsizes = 0; + CYTHON_UNUSED PetscInt __pyx_v_gdim; + PetscInt __pyx_v_M; + PetscInt __pyx_v_N; + PetscInt __pyx_v_P; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGlobalSizes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":131 + * + * def setGlobalSizes(self, sizes): + * cdef tuple gsizes = tuple(sizes) # <<<<<<<<<<<<<< + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 + * gdim = asStagDims(gsizes, &M, &N, &P) + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_sizes); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gsizes = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":132 + * def setGlobalSizes(self, sizes): + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 # <<<<<<<<<<<<<< + * gdim = asStagDims(gsizes, &M, &N, &P) + * CHKERR( DMStagSetGlobalSizes(self.dm, M, N, P) ) + */ + __pyx_v_gdim = PETSC_DECIDE; + __pyx_v_M = 1; + __pyx_v_N = 1; + __pyx_v_P = 1; + + /* "petsc4py/PETSc/DMStag.pyx":133 + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 + * gdim = asStagDims(gsizes, &M, &N, &P) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetGlobalSizes(self.dm, M, N, P) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asStagDims(__pyx_v_gsizes, (&__pyx_v_M), (&__pyx_v_N), (&__pyx_v_P)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 133, __pyx_L1_error) + __pyx_v_gdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":134 + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 + * gdim = asStagDims(gsizes, &M, &N, &P) + * CHKERR( DMStagSetGlobalSizes(self.dm, M, N, P) ) # <<<<<<<<<<<<<< + * + * def setProcSizes(self, sizes): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetGlobalSizes(__pyx_v_self->__pyx_base.dm, __pyx_v_M, __pyx_v_N, __pyx_v_P)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 134, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":130 + * CHKERR( DMStagSetDOF(self.dm, dof0, dof1, dof2, dof3) ) + * + * def setGlobalSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple gsizes = tuple(sizes) + * cdef PetscInt gdim=PETSC_DECIDE, M=1, N=1, P=1 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setGlobalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gsizes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":136 + * CHKERR( DMStagSetGlobalSizes(self.dm, M, N, P) ) + * + * def setProcSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple psizes = tuple(sizes) + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13setProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_12setProcSizes[] = "DMStag.setProcSizes(self, sizes)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13setProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_sizes = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setProcSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sizes,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setProcSizes") < 0)) __PYX_ERR(57, 136, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sizes = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setProcSizes", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 136, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_12setProcSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_sizes); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12setProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_sizes) { + PyObject *__pyx_v_psizes = 0; + CYTHON_UNUSED PetscInt __pyx_v_pdim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setProcSizes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":137 + * + * def setProcSizes(self, sizes): + * cdef tuple psizes = tuple(sizes) # <<<<<<<<<<<<<< + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * pdim = asStagDims(psizes, &m, &n, &p) + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_sizes); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_psizes = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":138 + * def setProcSizes(self, sizes): + * cdef tuple psizes = tuple(sizes) + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * pdim = asStagDims(psizes, &m, &n, &p) + * CHKERR( DMStagSetNumRanks(self.dm, m, n, p) ) + */ + __pyx_v_pdim = PETSC_DECIDE; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":139 + * cdef tuple psizes = tuple(sizes) + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * pdim = asStagDims(psizes, &m, &n, &p) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetNumRanks(self.dm, m, n, p) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asStagDims(__pyx_v_psizes, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 139, __pyx_L1_error) + __pyx_v_pdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":140 + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * pdim = asStagDims(psizes, &m, &n, &p) + * CHKERR( DMStagSetNumRanks(self.dm, m, n, p) ) # <<<<<<<<<<<<<< + * + * def setOwnershipRanges(self, ranges): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetNumRanks(__pyx_v_self->__pyx_base.dm, __pyx_v_m, __pyx_v_n, __pyx_v_p)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 140, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":136 + * CHKERR( DMStagSetGlobalSizes(self.dm, M, N, P) ) + * + * def setProcSizes(self, sizes): # <<<<<<<<<<<<<< + * cdef tuple psizes = tuple(sizes) + * cdef PetscInt pdim=PETSC_DECIDE, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_psizes); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":142 + * CHKERR( DMStagSetNumRanks(self.dm, m, n, p) ) + * + * def setOwnershipRanges(self, ranges): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_15setOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_14setOwnershipRanges[] = "DMStag.setOwnershipRanges(self, ranges)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_15setOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_ranges = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOwnershipRanges (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ranges,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ranges)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOwnershipRanges") < 0)) __PYX_ERR(57, 142, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ranges = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOwnershipRanges", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 142, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_14setOwnershipRanges(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_ranges); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_14setOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_ranges) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt *__pyx_v_lx; + PetscInt *__pyx_v_ly; + PetscInt *__pyx_v_lz; + CYTHON_UNUSED PyObject *__pyx_v_ownership_ranges = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOwnershipRanges", 0); + + /* "petsc4py/PETSc/DMStag.pyx":143 + * + * def setOwnershipRanges(self, ranges): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_dim = 0; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":144 + * def setOwnershipRanges(self, ranges): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + */ + __pyx_v_lx = NULL; + __pyx_v_ly = NULL; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":145 + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * ownership_ranges = asStagOwnershipRanges(ranges, dim, &m, &n, &p, &lx, &ly, &lz) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 145, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":146 + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) # <<<<<<<<<<<<<< + * ownership_ranges = asStagOwnershipRanges(ranges, dim, &m, &n, &p, &lx, &ly, &lz) + * CHKERR( DMStagSetOwnershipRanges(self.dm, lx, ly, lz) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetNumRanks(__pyx_v_self->__pyx_base.dm, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 146, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":147 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * ownership_ranges = asStagOwnershipRanges(ranges, dim, &m, &n, &p, &lx, &ly, &lz) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetOwnershipRanges(self.dm, lx, ly, lz) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asStagOwnershipRanges(__pyx_v_ranges, __pyx_v_dim, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz)); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ownership_ranges = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":148 + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * ownership_ranges = asStagOwnershipRanges(ranges, dim, &m, &n, &p, &lx, &ly, &lz) + * CHKERR( DMStagSetOwnershipRanges(self.dm, lx, ly, lz) ) # <<<<<<<<<<<<<< + * + * # Getters + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetOwnershipRanges(__pyx_v_self->__pyx_base.dm, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 148, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":142 + * CHKERR( DMStagSetNumRanks(self.dm, m, n, p) ) + * + * def setOwnershipRanges(self, ranges): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * cdef PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ownership_ranges); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":152 + * # Getters + * + * def getDim(self): # <<<<<<<<<<<<<< + * return self.getDimension() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_17getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_16getDim[] = "DMStag.getDim(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_17getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDim (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDim", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDim", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_16getDim(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_16getDim(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDim", 0); + + /* "petsc4py/PETSc/DMStag.pyx":153 + * + * def getDim(self): + * return self.getDimension() # <<<<<<<<<<<<<< + * + * def getEntriesPerElement(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDimension); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":152 + * # Getters + * + * def getDim(self): # <<<<<<<<<<<<<< + * return self.getDimension() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":155 + * return self.getDimension() + * + * def getEntriesPerElement(self): # <<<<<<<<<<<<<< + * cdef PetscInt epe=0 + * CHKERR( DMStagGetEntriesPerElement(self.dm, &epe) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_19getEntriesPerElement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_18getEntriesPerElement[] = "DMStag.getEntriesPerElement(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_19getEntriesPerElement(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getEntriesPerElement (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getEntriesPerElement", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getEntriesPerElement", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_18getEntriesPerElement(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_18getEntriesPerElement(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_epe; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getEntriesPerElement", 0); + + /* "petsc4py/PETSc/DMStag.pyx":156 + * + * def getEntriesPerElement(self): + * cdef PetscInt epe=0 # <<<<<<<<<<<<<< + * CHKERR( DMStagGetEntriesPerElement(self.dm, &epe) ) + * return toInt(epe) + */ + __pyx_v_epe = 0; + + /* "petsc4py/PETSc/DMStag.pyx":157 + * def getEntriesPerElement(self): + * cdef PetscInt epe=0 + * CHKERR( DMStagGetEntriesPerElement(self.dm, &epe) ) # <<<<<<<<<<<<<< + * return toInt(epe) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetEntriesPerElement(__pyx_v_self->__pyx_base.dm, (&__pyx_v_epe))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":158 + * cdef PetscInt epe=0 + * CHKERR( DMStagGetEntriesPerElement(self.dm, &epe) ) + * return toInt(epe) # <<<<<<<<<<<<<< + * + * def getStencilWidth(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_epe); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":155 + * return self.getDimension() + * + * def getEntriesPerElement(self): # <<<<<<<<<<<<<< + * cdef PetscInt epe=0 + * CHKERR( DMStagGetEntriesPerElement(self.dm, &epe) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getEntriesPerElement", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":160 + * return toInt(epe) + * + * def getStencilWidth(self): # <<<<<<<<<<<<<< + * cdef PetscInt swidth=0 + * CHKERR( DMStagGetStencilWidth(self.dm, &swidth) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_21getStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_20getStencilWidth[] = "DMStag.getStencilWidth(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_21getStencilWidth(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStencilWidth (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStencilWidth", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStencilWidth", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_20getStencilWidth(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_20getStencilWidth(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_swidth; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStencilWidth", 0); + + /* "petsc4py/PETSc/DMStag.pyx":161 + * + * def getStencilWidth(self): + * cdef PetscInt swidth=0 # <<<<<<<<<<<<<< + * CHKERR( DMStagGetStencilWidth(self.dm, &swidth) ) + * return toInt(swidth) + */ + __pyx_v_swidth = 0; + + /* "petsc4py/PETSc/DMStag.pyx":162 + * def getStencilWidth(self): + * cdef PetscInt swidth=0 + * CHKERR( DMStagGetStencilWidth(self.dm, &swidth) ) # <<<<<<<<<<<<<< + * return toInt(swidth) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetStencilWidth(__pyx_v_self->__pyx_base.dm, (&__pyx_v_swidth))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 162, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":163 + * cdef PetscInt swidth=0 + * CHKERR( DMStagGetStencilWidth(self.dm, &swidth) ) + * return toInt(swidth) # <<<<<<<<<<<<<< + * + * def getDof(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_swidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":160 + * return toInt(epe) + * + * def getStencilWidth(self): # <<<<<<<<<<<<<< + * cdef PetscInt swidth=0 + * CHKERR( DMStagGetStencilWidth(self.dm, &swidth) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getStencilWidth", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":165 + * return toInt(swidth) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, dof0=0, dof1=0, dof2=0, dof3=0 + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_23getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_22getDof[] = "DMStag.getDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_23getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_22getDof(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_22getDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_dof0; + PetscInt __pyx_v_dof1; + PetscInt __pyx_v_dof2; + PetscInt __pyx_v_dof3; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDof", 0); + + /* "petsc4py/PETSc/DMStag.pyx":166 + * + * def getDof(self): + * cdef PetscInt dim=0, dof0=0, dof1=0, dof2=0, dof3=0 # <<<<<<<<<<<<<< + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_dim = 0; + __pyx_v_dof0 = 0; + __pyx_v_dof1 = 0; + __pyx_v_dof2 = 0; + __pyx_v_dof3 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":167 + * def getDof(self): + * cdef PetscInt dim=0, dof0=0, dof1=0, dof2=0, dof3=0 + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * return toDofs(dim+1,dof0,dof1,dof2,dof3) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetDOF(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dof0), (&__pyx_v_dof1), (&__pyx_v_dof2), (&__pyx_v_dof3))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":168 + * cdef PetscInt dim=0, dof0=0, dof1=0, dof2=0, dof3=0 + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * return toDofs(dim+1,dof0,dof1,dof2,dof3) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 168, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":169 + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) + * CHKERR( DMGetDimension(self.dm, &dim) ) + * return toDofs(dim+1,dof0,dof1,dof2,dof3) # <<<<<<<<<<<<<< + * + * def getCorners(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toDofs((__pyx_v_dim + 1), __pyx_v_dof0, __pyx_v_dof1, __pyx_v_dof2, __pyx_v_dof3); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":165 + * return toInt(swidth) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, dof0=0, dof1=0, dof2=0, dof3=0 + * CHKERR( DMStagGetDOF(self.dm, &dof0, &dof1, &dof2, &dof3) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":171 + * return toDofs(dim+1,dof0,dof1,dof2,dof3) + * + * def getCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0, nExtrax=0, nExtray=0, nExtraz=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_25getCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_24getCorners[] = "DMStag.getCorners(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_25getCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCorners (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCorners", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCorners", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_24getCorners(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_24getCorners(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt __pyx_v_nExtrax; + PetscInt __pyx_v_nExtray; + PetscInt __pyx_v_nExtraz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCorners", 0); + + /* "petsc4py/PETSc/DMStag.pyx":172 + * + * def getCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0, nExtrax=0, nExtray=0, nExtraz=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetCorners(self.dm, &x, &y, &z, &m, &n, &p, &nExtrax, &nExtray, &nExtraz) ) + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + __pyx_v_nExtrax = 0; + __pyx_v_nExtray = 0; + __pyx_v_nExtraz = 0; + + /* "petsc4py/PETSc/DMStag.pyx":173 + * def getCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0, nExtrax=0, nExtray=0, nExtraz=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetCorners(self.dm, &x, &y, &z, &m, &n, &p, &nExtrax, &nExtray, &nExtraz) ) + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim], (asInt(nExtrax), asInt(nExtray), asInt(nExtraz))[:dim] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 173, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":174 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0, nExtrax=0, nExtray=0, nExtraz=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetCorners(self.dm, &x, &y, &z, &m, &n, &p, &nExtrax, &nExtray, &nExtraz) ) # <<<<<<<<<<<<<< + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim], (asInt(nExtrax), asInt(nExtray), asInt(nExtraz))[:dim] + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p), (&__pyx_v_nExtrax), (&__pyx_v_nExtray), (&__pyx_v_nExtraz))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 174, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":175 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetCorners(self.dm, &x, &y, &z, &m, &n, &p, &nExtrax, &nExtray, &nExtraz) ) + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim], (asInt(nExtrax), asInt(nExtray), asInt(nExtraz))[:dim] # <<<<<<<<<<<<<< + * + * def getGhostCorners(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyInt_From_PetscInt(__pyx_v_z); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_5); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_6, 0, ((Py_ssize_t)__pyx_v_dim), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_m); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_6); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2); + __pyx_t_6 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_7, 0, ((Py_ssize_t)__pyx_v_dim), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyInt_From_PetscInt(__pyx_v_nExtrax); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_7); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_nExtray); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_nExtraz); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_6); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_6); + __pyx_t_7 = 0; + __pyx_t_4 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyObject_GetSlice(__pyx_t_8, 0, ((Py_ssize_t)__pyx_v_dim), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(57, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_r = __pyx_t_8; + __pyx_t_8 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":171 + * return toDofs(dim+1,dof0,dof1,dof2,dof3) + * + * def getCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0, nExtrax=0, nExtray=0, nExtraz=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getCorners", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":177 + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim], (asInt(nExtrax), asInt(nExtray), asInt(nExtraz))[:dim] + * + * def getGhostCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_27getGhostCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_26getGhostCorners[] = "DMStag.getGhostCorners(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_27getGhostCorners(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGhostCorners (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGhostCorners", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGhostCorners", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_26getGhostCorners(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_26getGhostCorners(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_x; + PetscInt __pyx_v_y; + PetscInt __pyx_v_z; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGhostCorners", 0); + + /* "petsc4py/PETSc/DMStag.pyx":178 + * + * def getGhostCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGhostCorners(self.dm, &x, &y, &z, &m, &n, &p) ) + */ + __pyx_v_dim = 0; + __pyx_v_x = 0; + __pyx_v_y = 0; + __pyx_v_z = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMStag.pyx":179 + * def getGhostCorners(self): + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetGhostCorners(self.dm, &x, &y, &z, &m, &n, &p) ) + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 179, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":180 + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGhostCorners(self.dm, &x, &y, &z, &m, &n, &p) ) # <<<<<<<<<<<<<< + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim] + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetGhostCorners(__pyx_v_self->__pyx_base.dm, (&__pyx_v_x), (&__pyx_v_y), (&__pyx_v_z), (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 180, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":181 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGhostCorners(self.dm, &x, &y, &z, &m, &n, &p) ) + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim] # <<<<<<<<<<<<<< + * + * def getLocalSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyInt_From_PetscInt(__pyx_v_z); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_5); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_6, 0, ((Py_ssize_t)__pyx_v_dim), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_v_m); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_6); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_v_n); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_4); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_2); + __pyx_t_6 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_7, 0, ((Py_ssize_t)__pyx_v_dim), NULL, NULL, NULL, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(57, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2); + __pyx_t_5 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_7; + __pyx_t_7 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":177 + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim], (asInt(nExtrax), asInt(nExtray), asInt(nExtraz))[:dim] + * + * def getGhostCorners(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, x=0, y=0, z=0, m=0, n=0, p=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getGhostCorners", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":183 + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim] + * + * def getLocalSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_29getLocalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_28getLocalSizes[] = "DMStag.getLocalSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_29getLocalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_28getLocalSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_28getLocalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSizes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":184 + * + * def getLocalSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetLocalSizes(self.dm, &m, &n, &p) ) + */ + __pyx_v_dim = 0; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":185 + * def getLocalSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetLocalSizes(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 185, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":186 + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetLocalSizes(self.dm, &m, &n, &p) ) # <<<<<<<<<<<<<< + * return toStagDims(dim, m, n, p) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetLocalSizes(__pyx_v_self->__pyx_base.dm, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 186, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":187 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetLocalSizes(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) # <<<<<<<<<<<<<< + * + * def getGlobalSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagDims(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":183 + * return (asInt(x), asInt(y), asInt(z))[:dim], (asInt(m), asInt(n), asInt(p))[:dim] + * + * def getLocalSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getLocalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":189 + * return toStagDims(dim, m, n, p) + * + * def getGlobalSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_31getGlobalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_30getGlobalSizes[] = "DMStag.getGlobalSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_31getGlobalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGlobalSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGlobalSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGlobalSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_30getGlobalSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_30getGlobalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGlobalSizes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":190 + * + * def getGlobalSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGlobalSizes(self.dm, &m, &n, &p) ) + */ + __pyx_v_dim = 0; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":191 + * def getGlobalSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetGlobalSizes(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 191, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":192 + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGlobalSizes(self.dm, &m, &n, &p) ) # <<<<<<<<<<<<<< + * return toStagDims(dim, m, n, p) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetGlobalSizes(__pyx_v_self->__pyx_base.dm, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 192, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":193 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetGlobalSizes(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) # <<<<<<<<<<<<<< + * + * def getProcSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagDims(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":189 + * return toStagDims(dim, m, n, p) + * + * def getGlobalSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getGlobalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":195 + * return toStagDims(dim, m, n, p) + * + * def getProcSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_33getProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_32getProcSizes[] = "DMStag.getProcSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_33getProcSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getProcSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getProcSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getProcSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_32getProcSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_32getProcSizes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getProcSizes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":196 + * + * def getProcSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + */ + __pyx_v_dim = 0; + __pyx_v_m = PETSC_DECIDE; + __pyx_v_n = PETSC_DECIDE; + __pyx_v_p = PETSC_DECIDE; + + /* "petsc4py/PETSc/DMStag.pyx":197 + * def getProcSizes(self): + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 197, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":198 + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) # <<<<<<<<<<<<<< + * return toStagDims(dim, m, n, p) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetNumRanks(__pyx_v_self->__pyx_base.dm, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 198, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":199 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * return toStagDims(dim, m, n, p) # <<<<<<<<<<<<<< + * + * def getStencilType(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagDims(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":195 + * return toStagDims(dim, m, n, p) + * + * def getProcSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=PETSC_DECIDE, n=PETSC_DECIDE, p=PETSC_DECIDE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getProcSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":201 + * return toStagDims(dim, m, n, p) + * + * def getStencilType(self): # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_BOX + * CHKERR( DMStagGetStencilType(self.dm, &stype) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_35getStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_34getStencilType[] = "DMStag.getStencilType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_35getStencilType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStencilType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getStencilType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getStencilType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_34getStencilType(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_34getStencilType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + DMStagStencilType __pyx_v_stype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStencilType", 0); + + /* "petsc4py/PETSc/DMStag.pyx":202 + * + * def getStencilType(self): + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_BOX # <<<<<<<<<<<<<< + * CHKERR( DMStagGetStencilType(self.dm, &stype) ) + * return toStagStencil(stype) + */ + __pyx_v_stype = DMSTAG_STENCIL_BOX; + + /* "petsc4py/PETSc/DMStag.pyx":203 + * def getStencilType(self): + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_BOX + * CHKERR( DMStagGetStencilType(self.dm, &stype) ) # <<<<<<<<<<<<<< + * return toStagStencil(stype) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetStencilType(__pyx_v_self->__pyx_base.dm, (&__pyx_v_stype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 203, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":204 + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_BOX + * CHKERR( DMStagGetStencilType(self.dm, &stype) ) + * return toStagStencil(stype) # <<<<<<<<<<<<<< + * + * def getOwnershipRanges(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagStencil(__pyx_v_stype); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":201 + * return toStagDims(dim, m, n, p) + * + * def getStencilType(self): # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilType stype = DMSTAG_STENCIL_BOX + * CHKERR( DMStagGetStencilType(self.dm, &stype) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getStencilType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":206 + * return toStagStencil(stype) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_37getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_36getOwnershipRanges[] = "DMStag.getOwnershipRanges(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_37getOwnershipRanges(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOwnershipRanges (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOwnershipRanges", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOwnershipRanges", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_36getOwnershipRanges(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_36getOwnershipRanges(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + PetscInt __pyx_v_m; + PetscInt __pyx_v_n; + PetscInt __pyx_v_p; + PetscInt const *__pyx_v_lx; + PetscInt const *__pyx_v_ly; + PetscInt const *__pyx_v_lz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOwnershipRanges", 0); + + /* "petsc4py/PETSc/DMStag.pyx":207 + * + * def getOwnershipRanges(self): + * cdef PetscInt dim=0, m=0, n=0, p=0 # <<<<<<<<<<<<<< + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_dim = 0; + __pyx_v_m = 0; + __pyx_v_n = 0; + __pyx_v_p = 0; + + /* "petsc4py/PETSc/DMStag.pyx":208 + * def getOwnershipRanges(self): + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + */ + __pyx_v_lx = NULL; + __pyx_v_ly = NULL; + __pyx_v_lz = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":209 + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * CHKERR( DMStagGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 209, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":210 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * return toStagOwnershipRanges(dim, m, n, p, lx, ly, lz) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetNumRanks(__pyx_v_self->__pyx_base.dm, (&__pyx_v_m), (&__pyx_v_n), (&__pyx_v_p))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 210, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":211 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * CHKERR( DMStagGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) # <<<<<<<<<<<<<< + * return toStagOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetOwnershipRanges(__pyx_v_self->__pyx_base.dm, (&__pyx_v_lx), (&__pyx_v_ly), (&__pyx_v_lz))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 211, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":212 + * CHKERR( DMStagGetNumRanks(self.dm, &m, &n, &p) ) + * CHKERR( DMStagGetOwnershipRanges(self.dm, &lx, &ly, &lz) ) + * return toStagOwnershipRanges(dim, m, n, p, lx, ly, lz) # <<<<<<<<<<<<<< + * + * def getBoundaryTypes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagOwnershipRanges(__pyx_v_dim, __pyx_v_m, __pyx_v_n, __pyx_v_p, __pyx_v_lx, __pyx_v_ly, __pyx_v_lz); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":206 + * return toStagStencil(stype) + * + * def getOwnershipRanges(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0, m=0, n=0, p=0 + * cdef const PetscInt *lx = NULL, *ly = NULL, *lz = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getOwnershipRanges", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":214 + * return toStagOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + * def getBoundaryTypes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_39getBoundaryTypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_38getBoundaryTypes[] = "DMStag.getBoundaryTypes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_39getBoundaryTypes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBoundaryTypes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBoundaryTypes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBoundaryTypes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_38getBoundaryTypes(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_38getBoundaryTypes(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscInt __pyx_v_dim; + DMBoundaryType __pyx_v_btx; + DMBoundaryType __pyx_v_bty; + DMBoundaryType __pyx_v_btz; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBoundaryTypes", 0); + + /* "petsc4py/PETSc/DMStag.pyx":215 + * + * def getBoundaryTypes(self): + * cdef PetscInt dim=0 # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMStag.pyx":216 + * def getBoundaryTypes(self): + * cdef PetscInt dim=0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + */ + __pyx_v_btx = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":217 + * cdef PetscInt dim=0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_bty = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":218 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetBoundaryTypes(self.dm, &btx, &bty, &btz) ) + */ + __pyx_v_btz = DM_BOUNDARY_NONE; + + /* "petsc4py/PETSc/DMStag.pyx":219 + * cdef PetscDMBoundaryType bty = DM_BOUNDARY_NONE + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetBoundaryTypes(self.dm, &btx, &bty, &btz) ) + * return toStagBoundaryTypes(dim, btx, bty, btz) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 219, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":220 + * cdef PetscDMBoundaryType btz = DM_BOUNDARY_NONE + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetBoundaryTypes(self.dm, &btx, &bty, &btz) ) # <<<<<<<<<<<<<< + * return toStagBoundaryTypes(dim, btx, bty, btz) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetBoundaryTypes(__pyx_v_self->__pyx_base.dm, (&__pyx_v_btx), (&__pyx_v_bty), (&__pyx_v_btz))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 220, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":221 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetBoundaryTypes(self.dm, &btx, &bty, &btz) ) + * return toStagBoundaryTypes(dim, btx, bty, btz) # <<<<<<<<<<<<<< + * + * def getIsFirstRank(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagBoundaryTypes(__pyx_v_dim, __pyx_v_btx, __pyx_v_bty, __pyx_v_btz); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":214 + * return toStagOwnershipRanges(dim, m, n, p, lx, ly, lz) + * + * def getBoundaryTypes(self): # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * cdef PetscDMBoundaryType btx = DM_BOUNDARY_NONE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getBoundaryTypes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":223 + * return toStagBoundaryTypes(dim, btx, bty, btz) + * + * def getIsFirstRank(self): # <<<<<<<<<<<<<< + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_41getIsFirstRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_40getIsFirstRank[] = "DMStag.getIsFirstRank(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_41getIsFirstRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIsFirstRank (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIsFirstRank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIsFirstRank", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_40getIsFirstRank(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_40getIsFirstRank(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscBool __pyx_v_rank0; + PetscBool __pyx_v_rank1; + PetscBool __pyx_v_rank2; + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIsFirstRank", 0); + + /* "petsc4py/PETSc/DMStag.pyx":224 + * + * def getIsFirstRank(self): + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_rank0 = PETSC_FALSE; + __pyx_v_rank1 = PETSC_FALSE; + __pyx_v_rank2 = PETSC_FALSE; + + /* "petsc4py/PETSc/DMStag.pyx":225 + * def getIsFirstRank(self): + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsFirstRank(self.dm, &rank0, &rank1, &rank2) ) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMStag.pyx":226 + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetIsFirstRank(self.dm, &rank0, &rank1, &rank2) ) + * return toStagDims(dim, rank0, rank1, rank2) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 226, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":227 + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsFirstRank(self.dm, &rank0, &rank1, &rank2) ) # <<<<<<<<<<<<<< + * return toStagDims(dim, rank0, rank1, rank2) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetIsFirstRank(__pyx_v_self->__pyx_base.dm, (&__pyx_v_rank0), (&__pyx_v_rank1), (&__pyx_v_rank2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 227, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":228 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsFirstRank(self.dm, &rank0, &rank1, &rank2) ) + * return toStagDims(dim, rank0, rank1, rank2) # <<<<<<<<<<<<<< + * + * def getIsLastRank(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagDims(__pyx_v_dim, __pyx_v_rank0, __pyx_v_rank1, __pyx_v_rank2); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":223 + * return toStagBoundaryTypes(dim, btx, bty, btz) + * + * def getIsFirstRank(self): # <<<<<<<<<<<<<< + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getIsFirstRank", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":230 + * return toStagDims(dim, rank0, rank1, rank2) + * + * def getIsLastRank(self): # <<<<<<<<<<<<<< + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_43getIsLastRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_42getIsLastRank[] = "DMStag.getIsLastRank(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_43getIsLastRank(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getIsLastRank (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getIsLastRank", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getIsLastRank", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_42getIsLastRank(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_42getIsLastRank(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PetscBool __pyx_v_rank0; + PetscBool __pyx_v_rank1; + PetscBool __pyx_v_rank2; + PetscInt __pyx_v_dim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getIsLastRank", 0); + + /* "petsc4py/PETSc/DMStag.pyx":231 + * + * def getIsLastRank(self): + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + __pyx_v_rank0 = PETSC_FALSE; + __pyx_v_rank1 = PETSC_FALSE; + __pyx_v_rank2 = PETSC_FALSE; + + /* "petsc4py/PETSc/DMStag.pyx":232 + * def getIsLastRank(self): + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsLastRank(self.dm, &rank0, &rank1, &rank2) ) + */ + __pyx_v_dim = 0; + + /* "petsc4py/PETSc/DMStag.pyx":233 + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetIsLastRank(self.dm, &rank0, &rank1, &rank2) ) + * return toStagDims(dim, rank0, rank1, rank2) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":234 + * cdef PetscInt dim=0 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsLastRank(self.dm, &rank0, &rank1, &rank2) ) # <<<<<<<<<<<<<< + * return toStagDims(dim, rank0, rank1, rank2) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetIsLastRank(__pyx_v_self->__pyx_base.dm, (&__pyx_v_rank0), (&__pyx_v_rank1), (&__pyx_v_rank2))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 234, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":235 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * CHKERR( DMStagGetIsLastRank(self.dm, &rank0, &rank1, &rank2) ) + * return toStagDims(dim, rank0, rank1, rank2) # <<<<<<<<<<<<<< + * + * # Coordinate-related functions + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toStagDims(__pyx_v_dim, __pyx_v_rank0, __pyx_v_rank1, __pyx_v_rank2); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":230 + * return toStagDims(dim, rank0, rank1, rank2) + * + * def getIsLastRank(self): # <<<<<<<<<<<<<< + * cdef PetscBool rank0=PETSC_FALSE, rank1=PETSC_FALSE, rank2=PETSC_FALSE + * cdef PetscInt dim=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getIsLastRank", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":239 + * # Coordinate-related functions + * + * def setUniformCoordinatesExplicit(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_45setUniformCoordinatesExplicit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_44setUniformCoordinatesExplicit[] = "DMStag.setUniformCoordinatesExplicit(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_45setUniformCoordinatesExplicit(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_xmin = 0; + PyObject *__pyx_v_xmax = 0; + PyObject *__pyx_v_ymin = 0; + PyObject *__pyx_v_ymax = 0; + PyObject *__pyx_v_zmin = 0; + PyObject *__pyx_v_zmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUniformCoordinatesExplicit (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xmin,&__pyx_n_s_xmax,&__pyx_n_s_ymin,&__pyx_n_s_ymax,&__pyx_n_s_zmin,&__pyx_n_s_zmax,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[0] = ((PyObject *)__pyx_int_0); + values[1] = ((PyObject *)__pyx_int_1); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)__pyx_int_1); + values[4] = ((PyObject *)__pyx_int_0); + values[5] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmin); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmax); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymin); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymax); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmin); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmax); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUniformCoordinatesExplicit") < 0)) __PYX_ERR(57, 239, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_xmin = values[0]; + __pyx_v_xmax = values[1]; + __pyx_v_ymin = values[2]; + __pyx_v_ymax = values[3]; + __pyx_v_zmin = values[4]; + __pyx_v_zmax = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUniformCoordinatesExplicit", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 239, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinatesExplicit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_44setUniformCoordinatesExplicit(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_xmin, __pyx_v_xmax, __pyx_v_ymin, __pyx_v_ymax, __pyx_v_zmin, __pyx_v_zmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_44setUniformCoordinatesExplicit(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax) { + PetscReal __pyx_v__xmin; + PetscReal __pyx_v__xmax; + PetscReal __pyx_v__ymin; + PetscReal __pyx_v__ymax; + PetscReal __pyx_v__zmin; + PetscReal __pyx_v__zmax; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUniformCoordinatesExplicit", 0); + + /* "petsc4py/PETSc/DMStag.pyx":240 + * + * def setUniformCoordinatesExplicit(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) # <<<<<<<<<<<<<< + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 240, __pyx_L1_error) + __pyx_v__xmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 240, __pyx_L1_error) + __pyx_v__xmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":241 + * def setUniformCoordinatesExplicit(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) # <<<<<<<<<<<<<< + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinatesExplicit(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 241, __pyx_L1_error) + __pyx_v__ymin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 241, __pyx_L1_error) + __pyx_v__ymax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":242 + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetUniformCoordinatesExplicit(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 242, __pyx_L1_error) + __pyx_v__zmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 242, __pyx_L1_error) + __pyx_v__zmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":243 + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinatesExplicit(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) # <<<<<<<<<<<<<< + * + * def setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetUniformCoordinatesExplicit(__pyx_v_self->__pyx_base.dm, __pyx_v__xmin, __pyx_v__xmax, __pyx_v__ymin, __pyx_v__ymax, __pyx_v__zmin, __pyx_v__zmax)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 243, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":239 + * # Coordinate-related functions + * + * def setUniformCoordinatesExplicit(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinatesExplicit", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":245 + * CHKERR( DMStagSetUniformCoordinatesExplicit(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_47setUniformCoordinatesProduct(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_46setUniformCoordinatesProduct[] = "DMStag.setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_47setUniformCoordinatesProduct(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_xmin = 0; + PyObject *__pyx_v_xmax = 0; + PyObject *__pyx_v_ymin = 0; + PyObject *__pyx_v_ymax = 0; + PyObject *__pyx_v_zmin = 0; + PyObject *__pyx_v_zmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUniformCoordinatesProduct (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xmin,&__pyx_n_s_xmax,&__pyx_n_s_ymin,&__pyx_n_s_ymax,&__pyx_n_s_zmin,&__pyx_n_s_zmax,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[0] = ((PyObject *)__pyx_int_0); + values[1] = ((PyObject *)__pyx_int_1); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)__pyx_int_1); + values[4] = ((PyObject *)__pyx_int_0); + values[5] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmin); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmax); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymin); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymax); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmin); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmax); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUniformCoordinatesProduct") < 0)) __PYX_ERR(57, 245, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_xmin = values[0]; + __pyx_v_xmax = values[1]; + __pyx_v_ymin = values[2]; + __pyx_v_ymax = values[3]; + __pyx_v_zmin = values[4]; + __pyx_v_zmax = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUniformCoordinatesProduct", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 245, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinatesProduct", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_46setUniformCoordinatesProduct(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_xmin, __pyx_v_xmax, __pyx_v_ymin, __pyx_v_ymax, __pyx_v_zmin, __pyx_v_zmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_46setUniformCoordinatesProduct(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax) { + PetscReal __pyx_v__xmin; + PetscReal __pyx_v__xmax; + PetscReal __pyx_v__ymin; + PetscReal __pyx_v__ymax; + PetscReal __pyx_v__zmin; + PetscReal __pyx_v__zmax; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUniformCoordinatesProduct", 0); + + /* "petsc4py/PETSc/DMStag.pyx":246 + * + * def setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) # <<<<<<<<<<<<<< + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 246, __pyx_L1_error) + __pyx_v__xmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 246, __pyx_L1_error) + __pyx_v__xmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":247 + * def setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) # <<<<<<<<<<<<<< + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinatesProduct(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 247, __pyx_L1_error) + __pyx_v__ymin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 247, __pyx_L1_error) + __pyx_v__ymax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":248 + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetUniformCoordinatesProduct(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 248, __pyx_L1_error) + __pyx_v__zmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 248, __pyx_L1_error) + __pyx_v__zmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":249 + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinatesProduct(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) # <<<<<<<<<<<<<< + * + * def setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetUniformCoordinatesProduct(__pyx_v_self->__pyx_base.dm, __pyx_v__xmin, __pyx_v__xmax, __pyx_v__ymin, __pyx_v__ymax, __pyx_v__zmin, __pyx_v__zmax)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 249, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":245 + * CHKERR( DMStagSetUniformCoordinatesExplicit(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setUniformCoordinatesProduct(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinatesProduct", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":251 + * CHKERR( DMStagSetUniformCoordinatesProduct(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_49setUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_48setUniformCoordinates[] = "DMStag.setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_49setUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_xmin = 0; + PyObject *__pyx_v_xmax = 0; + PyObject *__pyx_v_ymin = 0; + PyObject *__pyx_v_ymax = 0; + PyObject *__pyx_v_zmin = 0; + PyObject *__pyx_v_zmax = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUniformCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xmin,&__pyx_n_s_xmax,&__pyx_n_s_ymin,&__pyx_n_s_ymax,&__pyx_n_s_zmin,&__pyx_n_s_zmax,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[0] = ((PyObject *)__pyx_int_0); + values[1] = ((PyObject *)__pyx_int_1); + values[2] = ((PyObject *)__pyx_int_0); + values[3] = ((PyObject *)__pyx_int_1); + values[4] = ((PyObject *)__pyx_int_0); + values[5] = ((PyObject *)__pyx_int_1); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmin); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xmax); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymin); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ymax); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmin); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_zmax); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUniformCoordinates") < 0)) __PYX_ERR(57, 251, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_xmin = values[0]; + __pyx_v_xmax = values[1]; + __pyx_v_ymin = values[2]; + __pyx_v_ymax = values[3]; + __pyx_v_zmin = values[4]; + __pyx_v_zmax = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUniformCoordinates", 0, 0, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 251, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_48setUniformCoordinates(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_xmin, __pyx_v_xmax, __pyx_v_ymin, __pyx_v_ymax, __pyx_v_zmin, __pyx_v_zmax); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_48setUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_xmin, PyObject *__pyx_v_xmax, PyObject *__pyx_v_ymin, PyObject *__pyx_v_ymax, PyObject *__pyx_v_zmin, PyObject *__pyx_v_zmax) { + PetscReal __pyx_v__xmin; + PetscReal __pyx_v__xmax; + PetscReal __pyx_v__ymin; + PetscReal __pyx_v__ymax; + PetscReal __pyx_v__zmin; + PetscReal __pyx_v__zmax; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUniformCoordinates", 0); + + /* "petsc4py/PETSc/DMStag.pyx":252 + * + * def setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) # <<<<<<<<<<<<<< + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 252, __pyx_L1_error) + __pyx_v__xmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_xmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 252, __pyx_L1_error) + __pyx_v__xmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":253 + * def setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) # <<<<<<<<<<<<<< + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinates(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 253, __pyx_L1_error) + __pyx_v__ymin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_ymax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 253, __pyx_L1_error) + __pyx_v__ymax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":254 + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetUniformCoordinates(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmin); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 254, __pyx_L1_error) + __pyx_v__zmin = __pyx_t_1; + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_v_zmax); if (unlikely(__pyx_t_1 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(57, 254, __pyx_L1_error) + __pyx_v__zmax = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":255 + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + * cdef PetscReal _zmin = asReal(zmin), _zmax = asReal(zmax) + * CHKERR( DMStagSetUniformCoordinates(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) # <<<<<<<<<<<<<< + * + * def setCoordinateDMType(self, dmtype): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetUniformCoordinates(__pyx_v_self->__pyx_base.dm, __pyx_v__xmin, __pyx_v__xmax, __pyx_v__ymin, __pyx_v__ymax, __pyx_v__zmin, __pyx_v__zmax)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 255, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":251 + * CHKERR( DMStagSetUniformCoordinatesProduct(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setUniformCoordinates(self, xmin=0, xmax=1, ymin=0, ymax=1, zmin=0, zmax=1): # <<<<<<<<<<<<<< + * cdef PetscReal _xmin = asReal(xmin), _xmax = asReal(xmax) + * cdef PetscReal _ymin = asReal(ymin), _ymax = asReal(ymax) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":257 + * CHKERR( DMStagSetUniformCoordinates(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setCoordinateDMType(self, dmtype): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dmtype = str2bytes(dmtype, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_51setCoordinateDMType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_50setCoordinateDMType[] = "DMStag.setCoordinateDMType(self, dmtype)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_51setCoordinateDMType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dmtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoordinateDMType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dmtype,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dmtype)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoordinateDMType") < 0)) __PYX_ERR(57, 257, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dmtype = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoordinateDMType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 257, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setCoordinateDMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_50setCoordinateDMType(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_dmtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_50setCoordinateDMType(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dmtype) { + DMType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoordinateDMType", 0); + __Pyx_INCREF(__pyx_v_dmtype); + + /* "petsc4py/PETSc/DMStag.pyx":258 + * + * def setCoordinateDMType(self, dmtype): + * cdef PetscDMType cval = NULL # <<<<<<<<<<<<<< + * dmtype = str2bytes(dmtype, &cval) + * CHKERR( DMStagSetCoordinateDMType(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":259 + * def setCoordinateDMType(self, dmtype): + * cdef PetscDMType cval = NULL + * dmtype = str2bytes(dmtype, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMStagSetCoordinateDMType(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_dmtype, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_dmtype, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":260 + * cdef PetscDMType cval = NULL + * dmtype = str2bytes(dmtype, &cval) + * CHKERR( DMStagSetCoordinateDMType(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * # Location slot related functions + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagSetCoordinateDMType(__pyx_v_self->__pyx_base.dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 260, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":257 + * CHKERR( DMStagSetUniformCoordinates(self.dm, _xmin, _xmax, _ymin, _ymax, _zmin, _zmax) ) + * + * def setCoordinateDMType(self, dmtype): # <<<<<<<<<<<<<< + * cdef PetscDMType cval = NULL + * dmtype = str2bytes(dmtype, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.setCoordinateDMType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_dmtype); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":264 + * # Location slot related functions + * + * def getLocationSlot(self, loc, c): # <<<<<<<<<<<<<< + * cdef PetscInt slot=0 + * cdef PetscInt comp=asInt(c) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_53getLocationSlot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_52getLocationSlot[] = "DMStag.getLocationSlot(self, loc, c)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_53getLocationSlot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_loc = 0; + PyObject *__pyx_v_c = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocationSlot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loc,&__pyx_n_s_c,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("getLocationSlot", 1, 2, 2, 1); __PYX_ERR(57, 264, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocationSlot") < 0)) __PYX_ERR(57, 264, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_loc = values[0]; + __pyx_v_c = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLocationSlot", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 264, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getLocationSlot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_52getLocationSlot(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_loc, __pyx_v_c); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_52getLocationSlot(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc, PyObject *__pyx_v_c) { + PetscInt __pyx_v_slot; + PetscInt __pyx_v_comp; + DMStagStencilLocation __pyx_v_sloc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + DMStagStencilLocation __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocationSlot", 0); + + /* "petsc4py/PETSc/DMStag.pyx":265 + * + * def getLocationSlot(self, loc, c): + * cdef PetscInt slot=0 # <<<<<<<<<<<<<< + * cdef PetscInt comp=asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + __pyx_v_slot = 0; + + /* "petsc4py/PETSc/DMStag.pyx":266 + * def getLocationSlot(self, loc, c): + * cdef PetscInt slot=0 + * cdef PetscInt comp=asInt(c) # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationSlot(self.dm, sloc, comp, &slot) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_c); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 266, __pyx_L1_error) + __pyx_v_comp = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":267 + * cdef PetscInt slot=0 + * cdef PetscInt comp=asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetLocationSlot(self.dm, sloc, comp, &slot) ) + * return toInt(slot) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(__pyx_v_loc); if (unlikely(__pyx_t_2 == ((DMStagStencilLocation)((DMStagStencilLocation)-1L)))) __PYX_ERR(57, 267, __pyx_L1_error) + __pyx_v_sloc = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":268 + * cdef PetscInt comp=asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationSlot(self.dm, sloc, comp, &slot) ) # <<<<<<<<<<<<<< + * return toInt(slot) + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetLocationSlot(__pyx_v_self->__pyx_base.dm, __pyx_v_sloc, __pyx_v_comp, (&__pyx_v_slot))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 268, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":269 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationSlot(self.dm, sloc, comp, &slot) ) + * return toInt(slot) # <<<<<<<<<<<<<< + * + * def getProductCoordinateLocationSlot(self, loc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_slot); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":264 + * # Location slot related functions + * + * def getLocationSlot(self, loc, c): # <<<<<<<<<<<<<< + * cdef PetscInt slot=0 + * cdef PetscInt comp=asInt(c) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getLocationSlot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":271 + * return toInt(slot) + * + * def getProductCoordinateLocationSlot(self, loc): # <<<<<<<<<<<<<< + * cdef PetscInt slot=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_55getProductCoordinateLocationSlot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_54getProductCoordinateLocationSlot[] = "DMStag.getProductCoordinateLocationSlot(self, loc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_55getProductCoordinateLocationSlot(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_loc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getProductCoordinateLocationSlot (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getProductCoordinateLocationSlot") < 0)) __PYX_ERR(57, 271, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_loc = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getProductCoordinateLocationSlot", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 271, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getProductCoordinateLocationSlot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_54getProductCoordinateLocationSlot(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_loc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_54getProductCoordinateLocationSlot(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc) { + PetscInt __pyx_v_slot; + DMStagStencilLocation __pyx_v_sloc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMStagStencilLocation __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getProductCoordinateLocationSlot", 0); + + /* "petsc4py/PETSc/DMStag.pyx":272 + * + * def getProductCoordinateLocationSlot(self, loc): + * cdef PetscInt slot=0 # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetProductCoordinateLocationSlot(self.dm, sloc, &slot) ) + */ + __pyx_v_slot = 0; + + /* "petsc4py/PETSc/DMStag.pyx":273 + * def getProductCoordinateLocationSlot(self, loc): + * cdef PetscInt slot=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetProductCoordinateLocationSlot(self.dm, sloc, &slot) ) + * return toInt(slot) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(__pyx_v_loc); if (unlikely(__pyx_t_1 == ((DMStagStencilLocation)((DMStagStencilLocation)-1L)))) __PYX_ERR(57, 273, __pyx_L1_error) + __pyx_v_sloc = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":274 + * cdef PetscInt slot=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetProductCoordinateLocationSlot(self.dm, sloc, &slot) ) # <<<<<<<<<<<<<< + * return toInt(slot) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetProductCoordinateLocationSlot(__pyx_v_self->__pyx_base.dm, __pyx_v_sloc, (&__pyx_v_slot))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 274, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":275 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetProductCoordinateLocationSlot(self.dm, sloc, &slot) ) + * return toInt(slot) # <<<<<<<<<<<<<< + * + * def getLocationDof(self, loc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_slot); if (unlikely(!__pyx_t_3)) __PYX_ERR(57, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":271 + * return toInt(slot) + * + * def getProductCoordinateLocationSlot(self, loc): # <<<<<<<<<<<<<< + * cdef PetscInt slot=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getProductCoordinateLocationSlot", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":277 + * return toInt(slot) + * + * def getLocationDof(self, loc): # <<<<<<<<<<<<<< + * cdef PetscInt dof=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_57getLocationDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_56getLocationDof[] = "DMStag.getLocationDof(self, loc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_57getLocationDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_loc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocationDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_loc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getLocationDof") < 0)) __PYX_ERR(57, 277, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_loc = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getLocationDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 277, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getLocationDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_56getLocationDof(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_loc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_56getLocationDof(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_loc) { + PetscInt __pyx_v_dof; + DMStagStencilLocation __pyx_v_sloc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMStagStencilLocation __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocationDof", 0); + + /* "petsc4py/PETSc/DMStag.pyx":278 + * + * def getLocationDof(self, loc): + * cdef PetscInt dof=0 # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationDOF(self.dm, sloc, &dof) ) + */ + __pyx_v_dof = 0; + + /* "petsc4py/PETSc/DMStag.pyx":279 + * def getLocationDof(self, loc): + * cdef PetscInt dof=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) # <<<<<<<<<<<<<< + * CHKERR( DMStagGetLocationDOF(self.dm, sloc, &dof) ) + * return toInt(dof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(__pyx_v_loc); if (unlikely(__pyx_t_1 == ((DMStagStencilLocation)((DMStagStencilLocation)-1L)))) __PYX_ERR(57, 279, __pyx_L1_error) + __pyx_v_sloc = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":280 + * cdef PetscInt dof=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationDOF(self.dm, sloc, &dof) ) # <<<<<<<<<<<<<< + * return toInt(dof) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagGetLocationDOF(__pyx_v_self->__pyx_base.dm, __pyx_v_sloc, (&__pyx_v_dof))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":281 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * CHKERR( DMStagGetLocationDOF(self.dm, sloc, &dof) ) + * return toInt(dof) # <<<<<<<<<<<<<< + * + * # Random other functions + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_dof); if (unlikely(!__pyx_t_3)) __PYX_ERR(57, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":277 + * return toInt(slot) + * + * def getLocationDof(self, loc): # <<<<<<<<<<<<<< + * cdef PetscInt dof=0 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getLocationDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":285 + * # Random other functions + * + * def migrateVec(self, Vec vec, DM dmTo, Vec vecTo): # <<<<<<<<<<<<<< + * CHKERR( DMStagMigrateVec(self.dm, vec.vec, dmTo.dm, vecTo.vec ) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_59migrateVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_58migrateVec[] = "DMStag.migrateVec(self, Vec vec, DM dmTo, Vec vecTo)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_59migrateVec(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + struct PyPetscDMObject *__pyx_v_dmTo = 0; + struct PyPetscVecObject *__pyx_v_vecTo = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("migrateVec (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_dmTo,&__pyx_n_s_vecTo,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dmTo)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("migrateVec", 1, 3, 3, 1); __PYX_ERR(57, 285, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vecTo)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("migrateVec", 1, 3, 3, 2); __PYX_ERR(57, 285, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "migrateVec") < 0)) __PYX_ERR(57, 285, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_dmTo = ((struct PyPetscDMObject *)values[1]); + __pyx_v_vecTo = ((struct PyPetscVecObject *)values[2]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("migrateVec", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 285, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.migrateVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(57, 285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dmTo), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dmTo", 0))) __PYX_ERR(57, 285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vecTo), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vecTo", 0))) __PYX_ERR(57, 285, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_58migrateVec(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_vec, __pyx_v_dmTo, __pyx_v_vecTo); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_58migrateVec(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, struct PyPetscDMObject *__pyx_v_dmTo, struct PyPetscVecObject *__pyx_v_vecTo) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("migrateVec", 0); + + /* "petsc4py/PETSc/DMStag.pyx":286 + * + * def migrateVec(self, Vec vec, DM dmTo, Vec vecTo): + * CHKERR( DMStagMigrateVec(self.dm, vec.vec, dmTo.dm, vecTo.vec ) ) # <<<<<<<<<<<<<< + * + * def createCompatibleDMStag(self, dofs): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagMigrateVec(__pyx_v_self->__pyx_base.dm, __pyx_v_vec->vec, __pyx_v_dmTo->dm, __pyx_v_vecTo->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 286, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":285 + * # Random other functions + * + * def migrateVec(self, Vec vec, DM dmTo, Vec vecTo): # <<<<<<<<<<<<<< + * CHKERR( DMStagMigrateVec(self.dm, vec.vec, dmTo.dm, vecTo.vec ) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.migrateVec", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":288 + * CHKERR( DMStagMigrateVec(self.dm, vec.vec, dmTo.dm, vecTo.vec ) ) + * + * def createCompatibleDMStag(self, dofs): # <<<<<<<<<<<<<< + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_61createCompatibleDMStag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_60createCompatibleDMStag[] = "DMStag.createCompatibleDMStag(self, dofs)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_61createCompatibleDMStag(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dofs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createCompatibleDMStag (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dofs,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dofs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createCompatibleDMStag") < 0)) __PYX_ERR(57, 288, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dofs = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createCompatibleDMStag", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 288, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.createCompatibleDMStag", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_60createCompatibleDMStag(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_dofs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_60createCompatibleDMStag(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, PyObject *__pyx_v_dofs) { + PyObject *__pyx_v_gdofs = 0; + CYTHON_UNUSED PetscInt __pyx_v_gdim; + PetscInt __pyx_v_dof0; + PetscInt __pyx_v_dof1; + PetscInt __pyx_v_dof2; + PetscInt __pyx_v_dof3; + DM __pyx_v_newda; + struct PyPetscDMObject *__pyx_v_newdm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createCompatibleDMStag", 0); + + /* "petsc4py/PETSc/DMStag.pyx":289 + * + * def createCompatibleDMStag(self, dofs): + * cdef tuple gdofs = tuple(dofs) # <<<<<<<<<<<<<< + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + */ + __pyx_t_1 = __Pyx_PySequence_Tuple(__pyx_v_dofs); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_gdofs = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":290 + * def createCompatibleDMStag(self, dofs): + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 # <<<<<<<<<<<<<< + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + * cdef PetscDM newda = NULL + */ + __pyx_v_gdim = PETSC_DECIDE; + __pyx_v_dof0 = 1; + __pyx_v_dof1 = 0; + __pyx_v_dof2 = 0; + __pyx_v_dof3 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":291 + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) # <<<<<<<<<<<<<< + * cdef PetscDM newda = NULL + * CHKERR( DMStagCreateCompatibleDMStag(self.dm, dof0, dof1, dof2, dof3, &newda) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asDofs(__pyx_v_gdofs, (&__pyx_v_dof0), (&__pyx_v_dof1), (&__pyx_v_dof2), (&__pyx_v_dof3)); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 291, __pyx_L1_error) + __pyx_v_gdim = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":292 + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + * cdef PetscDM newda = NULL # <<<<<<<<<<<<<< + * CHKERR( DMStagCreateCompatibleDMStag(self.dm, dof0, dof1, dof2, dof3, &newda) ) + * cdef DM newdm = type(self)() + */ + __pyx_v_newda = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":293 + * gdim = asDofs(gdofs, &dof0, &dof1, &dof2, &dof3) + * cdef PetscDM newda = NULL + * CHKERR( DMStagCreateCompatibleDMStag(self.dm, dof0, dof1, dof2, dof3, &newda) ) # <<<<<<<<<<<<<< + * cdef DM newdm = type(self)() + * PetscCLEAR(newdm.obj); newdm.dm = newda + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagCreateCompatibleDMStag(__pyx_v_self->__pyx_base.dm, __pyx_v_dof0, __pyx_v_dof1, __pyx_v_dof2, __pyx_v_dof3, (&__pyx_v_newda))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 293, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":294 + * cdef PetscDM newda = NULL + * CHKERR( DMStagCreateCompatibleDMStag(self.dm, dof0, dof1, dof2, dof3, &newda) ) + * cdef DM newdm = type(self)() # <<<<<<<<<<<<<< + * PetscCLEAR(newdm.obj); newdm.dm = newda + * return newdm + */ + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __pyx_t_4 = ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))); __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(57, 294, __pyx_L1_error) + __pyx_v_newdm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":295 + * CHKERR( DMStagCreateCompatibleDMStag(self.dm, dof0, dof1, dof2, dof3, &newda) ) + * cdef DM newdm = type(self)() + * PetscCLEAR(newdm.obj); newdm.dm = newda # <<<<<<<<<<<<<< + * return newdm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_newdm->__pyx_base.obj)); + __pyx_v_newdm->dm = __pyx_v_newda; + + /* "petsc4py/PETSc/DMStag.pyx":296 + * cdef DM newdm = type(self)() + * PetscCLEAR(newdm.obj); newdm.dm = newda + * return newdm # <<<<<<<<<<<<<< + * + * def VecSplitToDMDA(self, Vec vec, loc, c): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_newdm)); + __pyx_r = ((PyObject *)__pyx_v_newdm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":288 + * CHKERR( DMStagMigrateVec(self.dm, vec.vec, dmTo.dm, vecTo.vec ) ) + * + * def createCompatibleDMStag(self, dofs): # <<<<<<<<<<<<<< + * cdef tuple gdofs = tuple(dofs) + * cdef PetscInt gdim=PETSC_DECIDE, dof0=1, dof1=0, dof2=0, dof3=0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.createCompatibleDMStag", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_gdofs); + __Pyx_XDECREF((PyObject *)__pyx_v_newdm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":298 + * return newdm + * + * def VecSplitToDMDA(self, Vec vec, loc, c): # <<<<<<<<<<<<<< + * cdef PetscInt pc = asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_63VecSplitToDMDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_62VecSplitToDMDA[] = "DMStag.VecSplitToDMDA(self, Vec vec, loc, c)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_63VecSplitToDMDA(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_v_loc = 0; + PyObject *__pyx_v_c = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("VecSplitToDMDA (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,&__pyx_n_s_loc,&__pyx_n_s_c,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_loc)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("VecSplitToDMDA", 1, 3, 3, 1); __PYX_ERR(57, 298, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("VecSplitToDMDA", 1, 3, 3, 2); __PYX_ERR(57, 298, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "VecSplitToDMDA") < 0)) __PYX_ERR(57, 298, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_loc = values[1]; + __pyx_v_c = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("VecSplitToDMDA", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 298, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.VecSplitToDMDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(57, 298, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_62VecSplitToDMDA(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_vec, __pyx_v_loc, __pyx_v_c); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_62VecSplitToDMDA(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec, PyObject *__pyx_v_loc, PyObject *__pyx_v_c) { + PetscInt __pyx_v_pc; + DMStagStencilLocation __pyx_v_sloc; + DM __pyx_v_pda; + Vec __pyx_v_pdavec; + struct PyPetscDMObject *__pyx_v_da = 0; + struct PyPetscVecObject *__pyx_v_davec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + DMStagStencilLocation __pyx_t_2; + PetscErrorCode __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("VecSplitToDMDA", 0); + + /* "petsc4py/PETSc/DMStag.pyx":299 + * + * def VecSplitToDMDA(self, Vec vec, loc, c): + * cdef PetscInt pc = asInt(c) # <<<<<<<<<<<<<< + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * cdef PetscDM pda = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_c); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(57, 299, __pyx_L1_error) + __pyx_v_pc = __pyx_t_1; + + /* "petsc4py/PETSc/DMStag.pyx":300 + * def VecSplitToDMDA(self, Vec vec, loc, c): + * cdef PetscInt pc = asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) # <<<<<<<<<<<<<< + * cdef PetscDM pda = NULL + * cdef PetscVec pdavec = NULL + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asStagStencilLocation(__pyx_v_loc); if (unlikely(__pyx_t_2 == ((DMStagStencilLocation)((DMStagStencilLocation)-1L)))) __PYX_ERR(57, 300, __pyx_L1_error) + __pyx_v_sloc = __pyx_t_2; + + /* "petsc4py/PETSc/DMStag.pyx":301 + * cdef PetscInt pc = asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * cdef PetscDM pda = NULL # <<<<<<<<<<<<<< + * cdef PetscVec pdavec = NULL + * CHKERR( DMStagVecSplitToDMDA(self.dm, vec.vec, sloc, pc, &pda, &pdavec) ) + */ + __pyx_v_pda = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":302 + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + * cdef PetscDM pda = NULL + * cdef PetscVec pdavec = NULL # <<<<<<<<<<<<<< + * CHKERR( DMStagVecSplitToDMDA(self.dm, vec.vec, sloc, pc, &pda, &pdavec) ) + * cdef DM da = DMDA() + */ + __pyx_v_pdavec = NULL; + + /* "petsc4py/PETSc/DMStag.pyx":303 + * cdef PetscDM pda = NULL + * cdef PetscVec pdavec = NULL + * CHKERR( DMStagVecSplitToDMDA(self.dm, vec.vec, sloc, pc, &pda, &pdavec) ) # <<<<<<<<<<<<<< + * cdef DM da = DMDA() + * PetscCLEAR(da.obj); da.dm = pda + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMStagVecSplitToDMDA(__pyx_v_self->__pyx_base.dm, __pyx_v_vec->vec, __pyx_v_sloc, __pyx_v_pc, (&__pyx_v_pda), (&__pyx_v_pdavec))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(57, 303, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":304 + * cdef PetscVec pdavec = NULL + * CHKERR( DMStagVecSplitToDMDA(self.dm, vec.vec, sloc, pc, &pda, &pdavec) ) + * cdef DM da = DMDA() # <<<<<<<<<<<<<< + * PetscCLEAR(da.obj); da.dm = pda + * cdef Vec davec = Vec() + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA)); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_da = ((struct PyPetscDMObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":305 + * CHKERR( DMStagVecSplitToDMDA(self.dm, vec.vec, sloc, pc, &pda, &pdavec) ) + * cdef DM da = DMDA() + * PetscCLEAR(da.obj); da.dm = pda # <<<<<<<<<<<<<< + * cdef Vec davec = Vec() + * PetscCLEAR(davec.obj); davec.vec = pdavec + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_da->__pyx_base.obj)); + __pyx_v_da->dm = __pyx_v_pda; + + /* "petsc4py/PETSc/DMStag.pyx":306 + * cdef DM da = DMDA() + * PetscCLEAR(da.obj); da.dm = pda + * cdef Vec davec = Vec() # <<<<<<<<<<<<<< + * PetscCLEAR(davec.obj); davec.vec = pdavec + * return (da,davec) + */ + __pyx_t_4 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_davec = ((struct PyPetscVecObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":307 + * PetscCLEAR(da.obj); da.dm = pda + * cdef Vec davec = Vec() + * PetscCLEAR(davec.obj); davec.vec = pdavec # <<<<<<<<<<<<<< + * return (da,davec) + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_davec->__pyx_base.obj)); + __pyx_v_davec->vec = __pyx_v_pdavec; + + /* "petsc4py/PETSc/DMStag.pyx":308 + * cdef Vec davec = Vec() + * PetscCLEAR(davec.obj); davec.vec = pdavec + * return (da,davec) # <<<<<<<<<<<<<< + * + * def getVecArray(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(57, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_da)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_da)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_da)); + __Pyx_INCREF(((PyObject *)__pyx_v_davec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_davec)); + PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_davec)); + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":298 + * return newdm + * + * def VecSplitToDMDA(self, Vec vec, loc, c): # <<<<<<<<<<<<<< + * cdef PetscInt pc = asInt(c) + * cdef PetscDMStagStencilLocation sloc = asStagStencilLocation(loc) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.VecSplitToDMDA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_da); + __Pyx_XDECREF((PyObject *)__pyx_v_davec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":310 + * return (da,davec) + * + * def getVecArray(self, Vec vec): # <<<<<<<<<<<<<< + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_65getVecArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_64getVecArray[] = "DMStag.getVecArray(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_65getVecArray(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVecArray (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getVecArray") < 0)) __PYX_ERR(57, 310, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getVecArray", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(57, 310, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getVecArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(57, 310, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_64getVecArray(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_64getVecArray(CYTHON_UNUSED struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self, CYTHON_UNUSED struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVecArray", 0); + + /* "petsc4py/PETSc/DMStag.pyx":311 + * + * def getVecArray(self, Vec vec): + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def get1dCoordinatecArrays(self): + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__53, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(57, 311, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":310 + * return (da,davec) + * + * def getVecArray(self, Vec vec): # <<<<<<<<<<<<<< + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.getVecArray", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":313 + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') + * + * def get1dCoordinatecArrays(self): # <<<<<<<<<<<<<< + * raise NotImplementedError('get1dCoordinatecArrays for DMStag not yet implemented in petsc4py') + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_67get1dCoordinatecArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6DMStag_66get1dCoordinatecArrays[] = "DMStag.get1dCoordinatecArrays(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_67get1dCoordinatecArrays(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("get1dCoordinatecArrays (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("get1dCoordinatecArrays", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "get1dCoordinatecArrays", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_66get1dCoordinatecArrays(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_66get1dCoordinatecArrays(CYTHON_UNUSED struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get1dCoordinatecArrays", 0); + + /* "petsc4py/PETSc/DMStag.pyx":314 + * + * def get1dCoordinatecArrays(self): + * raise NotImplementedError('get1dCoordinatecArrays for DMStag not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * property dim: + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_NotImplementedError, __pyx_tuple__54, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(57, 314, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":313 + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') + * + * def get1dCoordinatecArrays(self): # <<<<<<<<<<<<<< + * raise NotImplementedError('get1dCoordinatecArrays for DMStag not yet implemented in petsc4py') + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.get1dCoordinatecArrays", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":317 + * + * property dim: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDim() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_3dim_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_3dim_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_3dim___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_3dim___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":318 + * property dim: + * def __get__(self): + * return self.getDim() # <<<<<<<<<<<<<< + * + * property dofs: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDim); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 318, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":317 + * + * property dim: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDim() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.dim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":321 + * + * property dofs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDof() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_4dofs_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_4dofs_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_4dofs___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_4dofs___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":322 + * property dofs: + * def __get__(self): + * return self.getDof() # <<<<<<<<<<<<<< + * + * property entries_per_element: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getDof); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 322, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":321 + * + * property dofs: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getDof() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.dofs.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":325 + * + * property entries_per_element: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getEntriesPerElement() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_19entries_per_element_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_19entries_per_element_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_19entries_per_element___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_19entries_per_element___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":326 + * property entries_per_element: + * def __get__(self): + * return self.getEntriesPerElement() # <<<<<<<<<<<<<< + * + * property global_sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getEntriesPerElement); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":325 + * + * property entries_per_element: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getEntriesPerElement() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.entries_per_element.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":329 + * + * property global_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGlobalSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_12global_sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_12global_sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_12global_sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12global_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":330 + * property global_sizes: + * def __get__(self): + * return self.getGlobalSizes() # <<<<<<<<<<<<<< + * + * property local_sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGlobalSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 330, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":329 + * + * property global_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGlobalSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.global_sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":333 + * + * property local_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_11local_sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_11local_sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_11local_sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_11local_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":334 + * property local_sizes: + * def __get__(self): + * return self.getLocalSizes() # <<<<<<<<<<<<<< + * + * property proc_sizes: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getLocalSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":333 + * + * property local_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getLocalSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.local_sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":337 + * + * property proc_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProcSizes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_10proc_sizes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_10proc_sizes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_10proc_sizes___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_10proc_sizes___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":338 + * property proc_sizes: + * def __get__(self): + * return self.getProcSizes() # <<<<<<<<<<<<<< + * + * property boundary_types: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getProcSizes); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":337 + * + * property proc_sizes: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getProcSizes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.proc_sizes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":341 + * + * property boundary_types: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBoundaryTypes() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_14boundary_types_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_14boundary_types_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_14boundary_types___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_14boundary_types___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":342 + * property boundary_types: + * def __get__(self): + * return self.getBoundaryTypes() # <<<<<<<<<<<<<< + * + * property stencil_type: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getBoundaryTypes); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":341 + * + * property boundary_types: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getBoundaryTypes() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.boundary_types.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":345 + * + * property stencil_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilType() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_12stencil_type_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_12stencil_type_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_12stencil_type___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_12stencil_type___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":346 + * property stencil_type: + * def __get__(self): + * return self.getStencilType() # <<<<<<<<<<<<<< + * + * property stencil_width: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStencilType); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 346, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":345 + * + * property stencil_type: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilType() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.stencil_type.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":349 + * + * property stencil_width: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilWidth() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13stencil_width_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13stencil_width_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_13stencil_width___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_13stencil_width___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":350 + * property stencil_width: + * def __get__(self): + * return self.getStencilWidth() # <<<<<<<<<<<<<< + * + * property corners: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getStencilWidth); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 350, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":349 + * + * property stencil_width: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getStencilWidth() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.stencil_width.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":353 + * + * property corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCorners() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_7corners_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_7corners_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_7corners___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_7corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":354 + * property corners: + * def __get__(self): + * return self.getCorners() # <<<<<<<<<<<<<< + * + * property ghost_corners: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getCorners); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":353 + * + * property corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getCorners() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.corners.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMStag.pyx":357 + * + * property ghost_corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostCorners() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13ghost_corners_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6DMStag_13ghost_corners_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6DMStag_13ghost_corners___get__(((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6DMStag_13ghost_corners___get__(struct __pyx_obj_8petsc4py_5PETSc_DMStag *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "petsc4py/PETSc/DMStag.pyx":358 + * property ghost_corners: + * def __get__(self): + * return self.getGhostCorners() # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_getGhostCorners); if (unlikely(!__pyx_t_2)) __PYX_ERR(57, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(57, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMStag.pyx":357 + * + * property ghost_corners: + * def __get__(self): # <<<<<<<<<<<<<< + * return self.getGhostCorners() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMStag.ghost_corners.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":5 + * cdef class DMComposite(DM): + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_create[] = "DMComposite.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(58, 5, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(58, 5, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_create(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_create(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":6 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMCompositeCreate(ccomm, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(58, 6, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMComposite.pyx":7 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":8 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMCompositeCreate(ccomm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeCreate(__pyx_v_ccomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 8, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":9 + * cdef PetscDM newdm = NULL + * CHKERR( DMCompositeCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMComposite.pyx":10 + * CHKERR( DMCompositeCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def addDM(self, DM dm, *args): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":5 + * cdef class DMComposite(DM): + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":12 + * return self + * + * def addDM(self, DM dm, *args): # <<<<<<<<<<<<<< + * """Add DM to composite""" + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_3addDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_2addDM[] = "DMComposite.addDM(self, DM dm, *args)\nAdd DM to composite"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_3addDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_v_args = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addDM (wrapper)", 0); + if (PyTuple_GET_SIZE(__pyx_args) > 1) { + __pyx_v_args = PyTuple_GetSlice(__pyx_args, 1, PyTuple_GET_SIZE(__pyx_args)); + if (unlikely(!__pyx_v_args)) { + __Pyx_RefNannyFinishContext(); + return NULL; + } + __Pyx_GOTREF(__pyx_v_args); + } else { + __pyx_v_args = __pyx_empty_tuple; __Pyx_INCREF(__pyx_empty_tuple); + } + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + default: + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "addDM") < 0)) __PYX_ERR(58, 12, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) < 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addDM", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(58, 12, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.addDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(58, 12, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_2addDM(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self), __pyx_v_dm, __pyx_v_args); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_args); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_2addDM(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, PyObject *__pyx_v_args) { + PyObject *__pyx_v_item = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addDM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_dm); + + /* "petsc4py/PETSc/DMComposite.pyx":14 + * def addDM(self, DM dm, *args): + * """Add DM to composite""" + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * cdef object item + * for item in args: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeAddDM(__pyx_v_self->__pyx_base.dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 14, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":16 + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + * cdef object item + * for item in args: # <<<<<<<<<<<<<< + * dm = item + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + */ + __pyx_t_2 = __pyx_v_args; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; + for (;;) { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(58, 16, __pyx_L1_error) + #else + __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":17 + * cdef object item + * for item in args: + * dm = item # <<<<<<<<<<<<<< + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + * + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_item, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(58, 17, __pyx_L1_error) + __pyx_t_4 = __pyx_v_item; + __Pyx_INCREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_dm, ((struct PyPetscDMObject *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":18 + * for item in args: + * dm = item + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * + * def getNumber(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeAddDM(__pyx_v_self->__pyx_base.dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 18, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":16 + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + * cdef object item + * for item in args: # <<<<<<<<<<<<<< + * dm = item + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":12 + * return self + * + * def addDM(self, DM dm, *args): # <<<<<<<<<<<<<< + * """Add DM to composite""" + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.addDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":20 + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + * + * def getNumber(self): # <<<<<<<<<<<<<< + * """Get number of sub-DMs contained in the DMComposite""" + * cdef PetscInt n = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_5getNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_4getNumber[] = "DMComposite.getNumber(self)\nGet number of sub-DMs contained in the DMComposite"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_5getNumber(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumber (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumber", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumber", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_4getNumber(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_4getNumber(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self) { + PetscInt __pyx_v_n; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumber", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":22 + * def getNumber(self): + * """Get number of sub-DMs contained in the DMComposite""" + * cdef PetscInt n = 0 # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * return toInt(n) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":23 + * """Get number of sub-DMs contained in the DMComposite""" + * cdef PetscInt n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * return toInt(n) + * getNumberDM = getNumber + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 23, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":24 + * cdef PetscInt n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * return toInt(n) # <<<<<<<<<<<<<< + * getNumberDM = getNumber + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":20 + * CHKERR( DMCompositeAddDM(self.dm, dm.dm) ) + * + * def getNumber(self): # <<<<<<<<<<<<<< + * """Get number of sub-DMs contained in the DMComposite""" + * cdef PetscInt n = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getNumber", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":27 + * getNumberDM = getNumber + * + * def getEntries(self): # <<<<<<<<<<<<<< + * """Get tuple of sub-DMs contained in the DMComposite""" + * cdef PetscInt i, n = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_7getEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_6getEntries[] = "DMComposite.getEntries(self)\nGet tuple of sub-DMs contained in the DMComposite"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_7getEntries(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getEntries (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getEntries", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getEntries", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_6getEntries(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_6getEntries(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + DM *__pyx_v_cdms; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + struct PyPetscDMObject *__pyx_v_entry = 0; + PyObject *__pyx_v_entries = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getEntries", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":29 + * def getEntries(self): + * """Get tuple of sub-DMs contained in the DMComposite""" + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * cdef PetscDM *cdms = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":30 + * """Get tuple of sub-DMs contained in the DMComposite""" + * cdef PetscInt i, n = 0 + * cdef PetscDM *cdms = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef object tmp = oarray_p(empty_p(n), NULL, &cdms) + */ + __pyx_v_cdms = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":31 + * cdef PetscInt i, n = 0 + * cdef PetscDM *cdms = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(n), NULL, &cdms) + * CHKERR( DMCompositeGetEntriesArray(self.dm, cdms) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 31, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":32 + * cdef PetscDM *cdms = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef object tmp = oarray_p(empty_p(n), NULL, &cdms) # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetEntriesArray(self.dm, cdms) ) + * cdef DM entry = None + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_cdms)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":33 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef object tmp = oarray_p(empty_p(n), NULL, &cdms) + * CHKERR( DMCompositeGetEntriesArray(self.dm, cdms) ) # <<<<<<<<<<<<<< + * cdef DM entry = None + * cdef list entries = [] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetEntriesArray(__pyx_v_self->__pyx_base.dm, __pyx_v_cdms)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":34 + * cdef object tmp = oarray_p(empty_p(n), NULL, &cdms) + * CHKERR( DMCompositeGetEntriesArray(self.dm, cdms) ) + * cdef DM entry = None # <<<<<<<<<<<<<< + * cdef list entries = [] + * for i from 0 <= i < n: + */ + __Pyx_INCREF(Py_None); + __pyx_v_entry = ((struct PyPetscDMObject *)Py_None); + + /* "petsc4py/PETSc/DMComposite.pyx":35 + * CHKERR( DMCompositeGetEntriesArray(self.dm, cdms) ) + * cdef DM entry = None + * cdef list entries = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * entry = subtype_DM(cdms[i])() + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_entries = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":36 + * cdef DM entry = None + * cdef list entries = [] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * entry = subtype_DM(cdms[i])() + * entry.dm = cdms[i] + */ + __pyx_t_4 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":37 + * cdef list entries = [] + * for i from 0 <= i < n: + * entry = subtype_DM(cdms[i])() # <<<<<<<<<<<<<< + * entry.dm = cdms[i] + * PetscINCREF(entry.obj) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM((__pyx_v_cdms[__pyx_v_i]))); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(58, 37, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_entry, ((struct PyPetscDMObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":38 + * for i from 0 <= i < n: + * entry = subtype_DM(cdms[i])() + * entry.dm = cdms[i] # <<<<<<<<<<<<<< + * PetscINCREF(entry.obj) + * entries.append(entry) + */ + __pyx_v_entry->dm = (__pyx_v_cdms[__pyx_v_i]); + + /* "petsc4py/PETSc/DMComposite.pyx":39 + * entry = subtype_DM(cdms[i])() + * entry.dm = cdms[i] + * PetscINCREF(entry.obj) # <<<<<<<<<<<<<< + * entries.append(entry) + * return tuple(entries) + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_entry->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMComposite.pyx":40 + * entry.dm = cdms[i] + * PetscINCREF(entry.obj) + * entries.append(entry) # <<<<<<<<<<<<<< + * return tuple(entries) + * + */ + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(58, 40, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMComposite.pyx":41 + * PetscINCREF(entry.obj) + * entries.append(entry) + * return tuple(entries) # <<<<<<<<<<<<<< + * + * def scatter(self, Vec gvec, lvecs): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_AsTuple(__pyx_v_entries); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":27 + * getNumberDM = getNumber + * + * def getEntries(self): # <<<<<<<<<<<<<< + * """Get tuple of sub-DMs contained in the DMComposite""" + * cdef PetscInt i, n = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getEntries", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF((PyObject *)__pyx_v_entry); + __Pyx_XDECREF(__pyx_v_entries); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":43 + * return tuple(entries) + * + * def scatter(self, Vec gvec, lvecs): # <<<<<<<<<<<<<< + * """Scatter coupled global vector into split local vectors""" + * cdef PetscInt i, n = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_9scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_8scatter[] = "DMComposite.scatter(self, Vec gvec, lvecs)\nScatter coupled global vector into split local vectors"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_9scatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_gvec = 0; + PyObject *__pyx_v_lvecs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("scatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gvec,&__pyx_n_s_lvecs,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lvecs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("scatter", 1, 2, 2, 1); __PYX_ERR(58, 43, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "scatter") < 0)) __PYX_ERR(58, 43, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_gvec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_lvecs = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("scatter", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(58, 43, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gvec", 0))) __PYX_ERR(58, 43, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_8scatter(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self), __pyx_v_gvec, __pyx_v_lvecs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_8scatter(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_lvecs) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + Vec *__pyx_v_clvecs; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + Vec __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("scatter", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":45 + * def scatter(self, Vec gvec, lvecs): + * """Scatter coupled global vector into split local vectors""" + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":46 + * """Scatter coupled global vector into split local vectors""" + * cdef PetscInt i, n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":47 + * cdef PetscInt i, n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: + */ + __pyx_v_clvecs = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":48 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_2, NULL, ((void **)(&__pyx_v_clvecs)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":49 + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * clvecs[i] = (lvecs[i]).vec + * CHKERR( DMCompositeScatterArray(self.dm, gvec.vec, clvecs) ) + */ + __pyx_t_4 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":50 + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec # <<<<<<<<<<<<<< + * CHKERR( DMCompositeScatterArray(self.dm, gvec.vec, clvecs) ) + * + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_lvecs, ((Py_ssize_t)__pyx_v_i), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(58, 50, __pyx_L1_error) + __pyx_t_5 = ((struct PyPetscVecObject *)__pyx_t_3)->vec; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + (__pyx_v_clvecs[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMComposite.pyx":51 + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec + * CHKERR( DMCompositeScatterArray(self.dm, gvec.vec, clvecs) ) # <<<<<<<<<<<<<< + * + * def gather(self, Vec gvec, imode, lvecs): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeScatterArray(__pyx_v_self->__pyx_base.dm, __pyx_v_gvec->vec, __pyx_v_clvecs)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 51, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":43 + * return tuple(entries) + * + * def scatter(self, Vec gvec, lvecs): # <<<<<<<<<<<<<< + * """Scatter coupled global vector into split local vectors""" + * cdef PetscInt i, n = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.scatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":53 + * CHKERR( DMCompositeScatterArray(self.dm, gvec.vec, clvecs) ) + * + * def gather(self, Vec gvec, imode, lvecs): # <<<<<<<<<<<<<< + * """Gather split local vectors into coupled global vector""" + * cdef PetscInsertMode cimode = insertmode(imode) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_11gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_10gather[] = "DMComposite.gather(self, Vec gvec, imode, lvecs)\nGather split local vectors into coupled global vector"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_11gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_gvec = 0; + PyObject *__pyx_v_imode = 0; + PyObject *__pyx_v_lvecs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("gather (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gvec,&__pyx_n_s_imode,&__pyx_n_s_lvecs,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_imode)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gather", 1, 3, 3, 1); __PYX_ERR(58, 53, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lvecs)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("gather", 1, 3, 3, 2); __PYX_ERR(58, 53, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gather") < 0)) __PYX_ERR(58, 53, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v_gvec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_imode = values[1]; + __pyx_v_lvecs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("gather", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(58, 53, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.gather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gvec", 0))) __PYX_ERR(58, 53, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_10gather(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self), __pyx_v_gvec, __pyx_v_imode, __pyx_v_lvecs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_10gather(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_imode, PyObject *__pyx_v_lvecs) { + InsertMode __pyx_v_cimode; + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + Vec *__pyx_v_clvecs; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + InsertMode __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PetscInt __pyx_t_5; + Vec __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gather", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":55 + * def gather(self, Vec gvec, imode, lvecs): + * """Gather split local vectors into coupled global vector""" + * cdef PetscInsertMode cimode = insertmode(imode) # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_imode); if (unlikely(__pyx_t_1 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(58, 55, __pyx_L1_error) + __pyx_v_cimode = __pyx_t_1; + + /* "petsc4py/PETSc/DMComposite.pyx":56 + * """Gather split local vectors into coupled global vector""" + * cdef PetscInsertMode cimode = insertmode(imode) + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":57 + * cdef PetscInsertMode cimode = insertmode(imode) + * cdef PetscInt i, n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":58 + * cdef PetscInt i, n = 0 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: + */ + __pyx_v_clvecs = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":59 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_n)); if (unlikely(!__pyx_t_3)) __PYX_ERR(58, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_clvecs)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_tmp = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":60 + * cdef PetscVec *clvecs = NULL + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * clvecs[i] = (lvecs[i]).vec + * CHKERR( DMCompositeGatherArray(self.dm, cimode, gvec.vec, clvecs) ) + */ + __pyx_t_5 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":61 + * cdef object tmp = oarray_p(empty_p(n), NULL, &clvecs) + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGatherArray(self.dm, cimode, gvec.vec, clvecs) ) + * + */ + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_lvecs, ((Py_ssize_t)__pyx_v_i), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(58, 61, __pyx_L1_error) + __pyx_t_6 = ((struct PyPetscVecObject *)__pyx_t_4)->vec; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_clvecs[__pyx_v_i]) = __pyx_t_6; + } + + /* "petsc4py/PETSc/DMComposite.pyx":62 + * for i from 0 <= i < n: + * clvecs[i] = (lvecs[i]).vec + * CHKERR( DMCompositeGatherArray(self.dm, cimode, gvec.vec, clvecs) ) # <<<<<<<<<<<<<< + * + * def getGlobalISs(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGatherArray(__pyx_v_self->__pyx_base.dm, __pyx_v_cimode, __pyx_v_gvec->vec, __pyx_v_clvecs)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":53 + * CHKERR( DMCompositeScatterArray(self.dm, gvec.vec, clvecs) ) + * + * def gather(self, Vec gvec, imode, lvecs): # <<<<<<<<<<<<<< + * """Gather split local vectors into coupled global vector""" + * cdef PetscInsertMode cimode = insertmode(imode) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.gather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":64 + * CHKERR( DMCompositeGatherArray(self.dm, cimode, gvec.vec, clvecs) ) + * + * def getGlobalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_13getGlobalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_12getGlobalISs[] = "DMComposite.getGlobalISs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_13getGlobalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getGlobalISs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getGlobalISs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getGlobalISs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_12getGlobalISs(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_12getGlobalISs(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + IS *__pyx_v_cis; + PyObject *__pyx_v_isets = 0; + PetscInt __pyx_9genexpr18__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getGlobalISs", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":65 + * + * def getGlobalISs(self): + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":66 + * def getGlobalISs(self): + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetGlobalISs(self.dm, &cis) ) + */ + __pyx_v_cis = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":67 + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetGlobalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 67, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":68 + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetGlobalISs(self.dm, &cis) ) # <<<<<<<<<<<<<< + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetGlobalISs(__pyx_v_self->__pyx_base.dm, (&__pyx_v_cis))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":69 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetGlobalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_v_n; + for (__pyx_9genexpr18__pyx_v_i = 0; __pyx_9genexpr18__pyx_v_i < __pyx_t_3; __pyx_9genexpr18__pyx_v_i++) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_cis[__pyx_9genexpr18__pyx_v_i]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(58, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } /* exit inner scope */ + __pyx_v_isets = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":70 + * CHKERR( DMCompositeGetGlobalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) + */ + __pyx_t_3 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":71 + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cis) ) + * return isets + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDestroy((&(__pyx_v_cis[__pyx_v_i])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 71, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMComposite.pyx":72 + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) # <<<<<<<<<<<<<< + * return isets + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cis)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":73 + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) + * return isets # <<<<<<<<<<<<<< + * + * def getLocalISs(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_isets); + __pyx_r = __pyx_v_isets; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":64 + * CHKERR( DMCompositeGatherArray(self.dm, cimode, gvec.vec, clvecs) ) + * + * def getGlobalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getGlobalISs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_isets); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":75 + * return isets + * + * def getLocalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_15getLocalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_14getLocalISs[] = "DMComposite.getLocalISs(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_15getLocalISs(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalISs (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalISs", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalISs", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_14getLocalISs(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_14getLocalISs(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + IS *__pyx_v_cis; + PyObject *__pyx_v_isets = 0; + PetscInt __pyx_9genexpr19__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalISs", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":76 + * + * def getLocalISs(self): + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":77 + * def getLocalISs(self): + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetLocalISs(self.dm, &cis) ) + */ + __pyx_v_cis = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":78 + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetLocalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 78, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":79 + * cdef PetscIS *cis = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetLocalISs(self.dm, &cis) ) # <<<<<<<<<<<<<< + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetLocalISs(__pyx_v_self->__pyx_base.dm, (&__pyx_v_cis))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 79, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":80 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetLocalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_v_n; + for (__pyx_9genexpr19__pyx_v_i = 0; __pyx_9genexpr19__pyx_v_i < __pyx_t_3; __pyx_9genexpr19__pyx_v_i++) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_IS((__pyx_v_cis[__pyx_9genexpr19__pyx_v_i]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(58, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } /* exit inner scope */ + __pyx_v_isets = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":81 + * CHKERR( DMCompositeGetLocalISs(self.dm, &cis) ) + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) + */ + __pyx_t_3 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":82 + * cdef object isets = [ref_IS(cis[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(cis) ) + * return isets + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISDestroy((&(__pyx_v_cis[__pyx_v_i])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 82, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMComposite.pyx":83 + * for i from 0 <= i < n: + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) # <<<<<<<<<<<<<< + * return isets + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_cis)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 83, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":84 + * CHKERR( ISDestroy(&cis[i]) ) + * CHKERR( PetscFree(cis) ) + * return isets # <<<<<<<<<<<<<< + * + * def getLGMaps(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_isets); + __pyx_r = __pyx_v_isets; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":75 + * return isets + * + * def getLocalISs(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscIS *cis = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getLocalISs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_isets); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":86 + * return isets + * + * def getLGMaps(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscLGMap *clgm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_17getLGMaps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_16getLGMaps[] = "DMComposite.getLGMaps(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_17getLGMaps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLGMaps (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLGMaps", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLGMaps", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_16getLGMaps(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_16getLGMaps(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self) { + PetscInt __pyx_v_i; + PetscInt __pyx_v_n; + ISLocalToGlobalMapping *__pyx_v_clgm; + PyObject *__pyx_v_lgms = 0; + PetscInt __pyx_9genexpr20__pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscInt __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLGMaps", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":87 + * + * def getLGMaps(self): + * cdef PetscInt i, n = 0 # <<<<<<<<<<<<<< + * cdef PetscLGMap *clgm = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + */ + __pyx_v_n = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":88 + * def getLGMaps(self): + * cdef PetscInt i, n = 0 + * cdef PetscLGMap *clgm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetISLocalToGlobalMappings(self.dm, &clgm) ) + */ + __pyx_v_clgm = NULL; + + /* "petsc4py/PETSc/DMComposite.pyx":89 + * cdef PetscInt i, n = 0 + * cdef PetscLGMap *clgm = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) # <<<<<<<<<<<<<< + * CHKERR( DMCompositeGetISLocalToGlobalMappings(self.dm, &clgm) ) + * cdef object lgms = [ref_LGMap(clgm[i]) for i from 0 <= i < n] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetNumberDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_n))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 89, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":90 + * cdef PetscLGMap *clgm = NULL + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetISLocalToGlobalMappings(self.dm, &clgm) ) # <<<<<<<<<<<<<< + * cdef object lgms = [ref_LGMap(clgm[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCompositeGetISLocalToGlobalMappings(__pyx_v_self->__pyx_base.dm, (&__pyx_v_clgm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 90, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":91 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * CHKERR( DMCompositeGetISLocalToGlobalMappings(self.dm, &clgm) ) + * cdef object lgms = [ref_LGMap(clgm[i]) for i from 0 <= i < n] # <<<<<<<<<<<<<< + * for i from 0 <= i < n: + * CHKERR( ISLocalToGlobalMappingDestroy(&clgm[i]) ) + */ + { /* enter inner scope */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_v_n; + for (__pyx_9genexpr20__pyx_v_i = 0; __pyx_9genexpr20__pyx_v_i < __pyx_t_3; __pyx_9genexpr20__pyx_v_i++) { + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_ref_LGMap((__pyx_v_clgm[__pyx_9genexpr20__pyx_v_i]))); if (unlikely(!__pyx_t_4)) __PYX_ERR(58, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(58, 91, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + } /* exit inner scope */ + __pyx_v_lgms = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMComposite.pyx":92 + * CHKERR( DMCompositeGetISLocalToGlobalMappings(self.dm, &clgm) ) + * cdef object lgms = [ref_LGMap(clgm[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: # <<<<<<<<<<<<<< + * CHKERR( ISLocalToGlobalMappingDestroy(&clgm[i]) ) + * CHKERR( PetscFree(clgm) ) + */ + __pyx_t_3 = __pyx_v_n; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMComposite.pyx":93 + * cdef object lgms = [ref_LGMap(clgm[i]) for i from 0 <= i < n] + * for i from 0 <= i < n: + * CHKERR( ISLocalToGlobalMappingDestroy(&clgm[i]) ) # <<<<<<<<<<<<<< + * CHKERR( PetscFree(clgm) ) + * return lgms + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(ISLocalToGlobalMappingDestroy((&(__pyx_v_clgm[__pyx_v_i])))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 93, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMComposite.pyx":94 + * for i from 0 <= i < n: + * CHKERR( ISLocalToGlobalMappingDestroy(&clgm[i]) ) + * CHKERR( PetscFree(clgm) ) # <<<<<<<<<<<<<< + * return lgms + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscFree(__pyx_v_clgm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(58, 94, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":95 + * CHKERR( ISLocalToGlobalMappingDestroy(&clgm[i]) ) + * CHKERR( PetscFree(clgm) ) + * return lgms # <<<<<<<<<<<<<< + * + * def getAccess(self, Vec gvec, locs=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_lgms); + __pyx_r = __pyx_v_lgms; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":86 + * return isets + * + * def getLGMaps(self): # <<<<<<<<<<<<<< + * cdef PetscInt i, n = 0 + * cdef PetscLGMap *clgm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getLGMaps", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_lgms); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMComposite.pyx":97 + * return lgms + * + * def getAccess(self, Vec gvec, locs=None): # <<<<<<<<<<<<<< + * """Get access to specified parts of global vector. + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_19getAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11DMComposite_18getAccess[] = "DMComposite.getAccess(self, Vec gvec, locs=None)\nGet access to specified parts of global vector.\n\n Use via 'with' context manager (PEP 343).\n "; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11DMComposite_19getAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_gvec = 0; + PyObject *__pyx_v_locs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getAccess (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gvec,&__pyx_n_s_locs,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_locs); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getAccess") < 0)) __PYX_ERR(58, 97, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_gvec = ((struct PyPetscVecObject *)values[0]); + __pyx_v_locs = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getAccess", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(58, 97, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getAccess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gvec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gvec", 0))) __PYX_ERR(58, 97, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11DMComposite_18getAccess(((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)__pyx_v_self), __pyx_v_gvec, __pyx_v_locs); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11DMComposite_18getAccess(struct __pyx_obj_8petsc4py_5PETSc_DMComposite *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gvec, PyObject *__pyx_v_locs) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getAccess", 0); + + /* "petsc4py/PETSc/DMComposite.pyx":102 + * Use via 'with' context manager (PEP 343). + * """ + * return _DMComposite_access(self, gvec, locs) # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(58, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self)); + __Pyx_INCREF(((PyObject *)__pyx_v_gvec)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_gvec)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_gvec)); + __Pyx_INCREF(__pyx_v_locs); + __Pyx_GIVEREF(__pyx_v_locs); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_locs); + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8petsc4py_5PETSc__DMComposite_access), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(58, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMComposite.pyx":97 + * return lgms + * + * def getAccess(self, Vec gvec, locs=None): # <<<<<<<<<<<<<< + * """Get access to specified parts of global vector. + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMComposite.getAccess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":3 + * cdef class DMShell(DM): + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_create[] = "DMShell.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(59, 3, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 3, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_create(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_create(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMShell.pyx":4 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMShellCreate(ccomm, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(59, 4, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMShell.pyx":5 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMShellCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":6 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMShellCreate(ccomm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellCreate(__pyx_v_ccomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 6, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":7 + * cdef PetscDM newdm = NULL + * CHKERR( DMShellCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMShell.pyx":8 + * CHKERR( DMShellCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * return self # <<<<<<<<<<<<<< + * + * def setMatrix(self, Mat mat): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMShell.pyx":3 + * cdef class DMShell(DM): + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":10 + * return self + * + * def setMatrix(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetMatrix(self.dm, mat.mat) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_3setMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_2setMatrix[] = "DMShell.setMatrix(self, Mat mat)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_3setMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscMatObject *__pyx_v_mat = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_mat,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mat)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setMatrix") < 0)) __PYX_ERR(59, 10, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_mat = ((struct PyPetscMatObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setMatrix", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 10, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_mat), __pyx_ptype_8petsc4py_5PETSc_Mat, 0, "mat", 0))) __PYX_ERR(59, 10, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_2setMatrix(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_mat); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_2setMatrix(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscMatObject *__pyx_v_mat) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setMatrix", 0); + + /* "petsc4py/PETSc/DMShell.pyx":11 + * + * def setMatrix(self, Mat mat): + * CHKERR( DMShellSetMatrix(self.dm, mat.mat) ) # <<<<<<<<<<<<<< + * + * def setGlobalVector(self, Vec gv): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetMatrix(__pyx_v_self->__pyx_base.dm, __pyx_v_mat->mat)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 11, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":10 + * return self + * + * def setMatrix(self, Mat mat): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetMatrix(self.dm, mat.mat) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":13 + * CHKERR( DMShellSetMatrix(self.dm, mat.mat) ) + * + * def setGlobalVector(self, Vec gv): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetGlobalVector(self.dm, gv.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_5setGlobalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_4setGlobalVector[] = "DMShell.setGlobalVector(self, Vec gv)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_5setGlobalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_gv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGlobalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gv,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gv)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGlobalVector") < 0)) __PYX_ERR(59, 13, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_gv = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGlobalVector", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 13, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gv), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "gv", 0))) __PYX_ERR(59, 13, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_4setGlobalVector(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_gv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_4setGlobalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscVecObject *__pyx_v_gv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGlobalVector", 0); + + /* "petsc4py/PETSc/DMShell.pyx":14 + * + * def setGlobalVector(self, Vec gv): + * CHKERR( DMShellSetGlobalVector(self.dm, gv.vec) ) # <<<<<<<<<<<<<< + * + * def setLocalVector(self, Vec lv): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetGlobalVector(__pyx_v_self->__pyx_base.dm, __pyx_v_gv->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 14, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":13 + * CHKERR( DMShellSetMatrix(self.dm, mat.mat) ) + * + * def setGlobalVector(self, Vec gv): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetGlobalVector(self.dm, gv.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":16 + * CHKERR( DMShellSetGlobalVector(self.dm, gv.vec) ) + * + * def setLocalVector(self, Vec lv): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalVector(self.dm, lv.vec) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_7setLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_6setLocalVector[] = "DMShell.setLocalVector(self, Vec lv)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_7setLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_lv = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_lv,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lv)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalVector") < 0)) __PYX_ERR(59, 16, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_lv = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalVector", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 16, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lv), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "lv", 0))) __PYX_ERR(59, 16, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_6setLocalVector(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_lv); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_6setLocalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscVecObject *__pyx_v_lv) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalVector", 0); + + /* "petsc4py/PETSc/DMShell.pyx":17 + * + * def setLocalVector(self, Vec lv): + * CHKERR( DMShellSetLocalVector(self.dm, lv.vec) ) # <<<<<<<<<<<<<< + * + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetLocalVector(__pyx_v_self->__pyx_base.dm, __pyx_v_lv->vec)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 17, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":16 + * CHKERR( DMShellSetGlobalVector(self.dm, gv.vec) ) + * + * def setLocalVector(self, Vec lv): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalVector(self.dm, lv.vec) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":19 + * CHKERR( DMShellSetLocalVector(self.dm, lv.vec) ) + * + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_gvec is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_9setCreateGlobalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_8setCreateGlobalVector[] = "DMShell.setCreateGlobalVector(self, create_gvec, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_9setCreateGlobalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_gvec = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateGlobalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_gvec,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_gvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateGlobalVector") < 0)) __PYX_ERR(59, 19, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_gvec = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateGlobalVector", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 19, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateGlobalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_8setCreateGlobalVector(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_gvec, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_8setCreateGlobalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_gvec, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateGlobalVector", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":20 + * + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): + * if create_gvec is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_gvec != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":21 + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): + * if create_gvec is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_gvec, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":22 + * if create_gvec is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_gvec, args, kargs) + * self.set_attr('__create_global_vector__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":23 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_gvec, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_global_vector__', context) + * CHKERR( DMShellSetCreateGlobalVector(self.dm, DMSHELL_CreateGlobalVector) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_gvec); + __Pyx_GIVEREF(__pyx_v_create_gvec); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_gvec); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":24 + * if kargs is None: kargs = {} + * context = (create_gvec, args, kargs) + * self.set_attr('__create_global_vector__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateGlobalVector(self.dm, DMSHELL_CreateGlobalVector) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_global_vector__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":25 + * context = (create_gvec, args, kargs) + * self.set_attr('__create_global_vector__', context) + * CHKERR( DMShellSetCreateGlobalVector(self.dm, DMSHELL_CreateGlobalVector) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateGlobalVector(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateGlobalVector(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateGlobalVector)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 25, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":20 + * + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): + * if create_gvec is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":27 + * CHKERR( DMShellSetCreateGlobalVector(self.dm, DMSHELL_CreateGlobalVector) ) + * else: + * CHKERR( DMShellSetCreateGlobalVector(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateGlobalVector(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 27, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":19 + * CHKERR( DMShellSetLocalVector(self.dm, lv.vec) ) + * + * def setCreateGlobalVector(self, create_gvec, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_gvec is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateGlobalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":29 + * CHKERR( DMShellSetCreateGlobalVector(self.dm, NULL) ) + * + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_lvec is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_11setCreateLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_10setCreateLocalVector[] = "DMShell.setCreateLocalVector(self, create_lvec, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_11setCreateLocalVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_lvec = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateLocalVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_lvec,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_lvec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateLocalVector") < 0)) __PYX_ERR(59, 29, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_lvec = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateLocalVector", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 29, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_10setCreateLocalVector(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_lvec, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_10setCreateLocalVector(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_lvec, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateLocalVector", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":30 + * + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): + * if create_lvec is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_lvec != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":31 + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): + * if create_lvec is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_lvec, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":32 + * if create_lvec is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_lvec, args, kargs) + * self.set_attr('__create_local_vector__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":33 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_lvec, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_local_vector__', context) + * CHKERR( DMShellSetCreateLocalVector(self.dm, DMSHELL_CreateLocalVector) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_lvec); + __Pyx_GIVEREF(__pyx_v_create_lvec); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_lvec); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":34 + * if kargs is None: kargs = {} + * context = (create_lvec, args, kargs) + * self.set_attr('__create_local_vector__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateLocalVector(self.dm, DMSHELL_CreateLocalVector) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_local_vector__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":35 + * context = (create_lvec, args, kargs) + * self.set_attr('__create_local_vector__', context) + * CHKERR( DMShellSetCreateLocalVector(self.dm, DMSHELL_CreateLocalVector) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateLocalVector(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateLocalVector(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateLocalVector)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 35, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":30 + * + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): + * if create_lvec is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":37 + * CHKERR( DMShellSetCreateLocalVector(self.dm, DMSHELL_CreateLocalVector) ) + * else: + * CHKERR( DMShellSetCreateLocalVector(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateLocalVector(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 37, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":29 + * CHKERR( DMShellSetCreateGlobalVector(self.dm, NULL) ) + * + * def setCreateLocalVector(self, create_lvec, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_lvec is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateLocalVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":39 + * CHKERR( DMShellSetCreateLocalVector(self.dm, NULL) ) + * + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_13setGlobalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_12setGlobalToLocal[] = "DMShell.setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, end_args=None, end_kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_13setGlobalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_begin = 0; + PyObject *__pyx_v_end = 0; + PyObject *__pyx_v_begin_args = 0; + PyObject *__pyx_v_begin_kargs = 0; + PyObject *__pyx_v_end_args = 0; + PyObject *__pyx_v_end_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGlobalToLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_begin,&__pyx_n_s_end,&__pyx_n_s_begin_args,&__pyx_n_s_begin_kargs,&__pyx_n_s_end_args,&__pyx_n_s_end_kargs,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMShell.pyx":40 + * + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): # <<<<<<<<<<<<<< + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: + */ + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setGlobalToLocal", 0, 2, 6, 1); __PYX_ERR(59, 39, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_kargs); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_args); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_kargs); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGlobalToLocal") < 0)) __PYX_ERR(59, 39, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_begin = values[0]; + __pyx_v_end = values[1]; + __pyx_v_begin_args = values[2]; + __pyx_v_begin_kargs = values[3]; + __pyx_v_end_args = values[4]; + __pyx_v_end_kargs = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGlobalToLocal", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 39, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_12setGlobalToLocal(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_begin, __pyx_v_end, __pyx_v_begin_args, __pyx_v_begin_kargs, __pyx_v_end_args, __pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":39 + * CHKERR( DMShellSetCreateLocalVector(self.dm, NULL) ) + * + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_12setGlobalToLocal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs) { + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cbegin; + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cend; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGlobalToLocal", 0); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":41 + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL # <<<<<<<<<<<<<< + * if begin is not None: + * if begin_args is None: begin_args = () + */ + __pyx_v_cbegin = NULL; + __pyx_v_cend = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":42 + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + __pyx_t_1 = (__pyx_v_begin != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":43 + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: + * if begin_args is None: begin_args = () # <<<<<<<<<<<<<< + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + */ + __pyx_t_2 = (__pyx_v_begin_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_begin_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":44 + * if begin is not None: + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} # <<<<<<<<<<<<<< + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__g2l_begin__', context) + */ + __pyx_t_1 = (__pyx_v_begin_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_begin_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":45 + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__g2l_begin__', context) + * cbegin = &DMSHELL_GlobalToLocalBegin + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_begin); + __Pyx_GIVEREF(__pyx_v_begin); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_begin); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_GIVEREF(__pyx_v_begin_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_GIVEREF(__pyx_v_begin_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_begin_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":46 + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__g2l_begin__', context) # <<<<<<<<<<<<<< + * cbegin = &DMSHELL_GlobalToLocalBegin + * if end is not None: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__g2l_begin__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":47 + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__g2l_begin__', context) + * cbegin = &DMSHELL_GlobalToLocalBegin # <<<<<<<<<<<<<< + * if end is not None: + * if end_args is None: end_args = () + */ + __pyx_v_cbegin = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalBegin); + + /* "petsc4py/PETSc/DMShell.pyx":42 + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":48 + * self.set_attr('__g2l_begin__', context) + * cbegin = &DMSHELL_GlobalToLocalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + __pyx_t_2 = (__pyx_v_end != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMShell.pyx":49 + * cbegin = &DMSHELL_GlobalToLocalBegin + * if end is not None: + * if end_args is None: end_args = () # <<<<<<<<<<<<<< + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + */ + __pyx_t_1 = (__pyx_v_end_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_end_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":50 + * if end is not None: + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} # <<<<<<<<<<<<<< + * context = (end, end_args, end_kargs) + * self.set_attr('__g2l_end__', context) + */ + __pyx_t_2 = (__pyx_v_end_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_end_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":51 + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__g2l_end__', context) + * cend = &DMSHELL_GlobalToLocalEnd + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_end); + __Pyx_GIVEREF(__pyx_v_end); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_end); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_GIVEREF(__pyx_v_end_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + __Pyx_GIVEREF(__pyx_v_end_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_end_kargs); + __Pyx_XDECREF_SET(__pyx_v_context, ((PyObject*)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":52 + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + * self.set_attr('__g2l_end__', context) # <<<<<<<<<<<<<< + * cend = &DMSHELL_GlobalToLocalEnd + * CHKERR( DMShellSetGlobalToLocal(self.dm, cbegin, cend) ) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__g2l_end__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":53 + * context = (end, end_args, end_kargs) + * self.set_attr('__g2l_end__', context) + * cend = &DMSHELL_GlobalToLocalEnd # <<<<<<<<<<<<<< + * CHKERR( DMShellSetGlobalToLocal(self.dm, cbegin, cend) ) + * + */ + __pyx_v_cend = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_GlobalToLocalEnd); + + /* "petsc4py/PETSc/DMShell.pyx":48 + * self.set_attr('__g2l_begin__', context) + * cbegin = &DMSHELL_GlobalToLocalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":54 + * self.set_attr('__g2l_end__', context) + * cend = &DMSHELL_GlobalToLocalEnd + * CHKERR( DMShellSetGlobalToLocal(self.dm, cbegin, cend) ) # <<<<<<<<<<<<<< + * + * def setGlobalToLocalVecScatter(self, Scatter gtol): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetGlobalToLocal(__pyx_v_self->__pyx_base.dm, __pyx_v_cbegin, __pyx_v_cend)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 54, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":39 + * CHKERR( DMShellSetCreateLocalVector(self.dm, NULL) ) + * + * def setGlobalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin_args); + __Pyx_XDECREF(__pyx_v_begin_kargs); + __Pyx_XDECREF(__pyx_v_end_args); + __Pyx_XDECREF(__pyx_v_end_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":56 + * CHKERR( DMShellSetGlobalToLocal(self.dm, cbegin, cend) ) + * + * def setGlobalToLocalVecScatter(self, Scatter gtol): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_15setGlobalToLocalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_14setGlobalToLocalVecScatter[] = "DMShell.setGlobalToLocalVecScatter(self, Scatter gtol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_15setGlobalToLocalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscScatterObject *__pyx_v_gtol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setGlobalToLocalVecScatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_gtol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gtol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setGlobalToLocalVecScatter") < 0)) __PYX_ERR(59, 56, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_gtol = ((struct PyPetscScatterObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setGlobalToLocalVecScatter", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 56, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalToLocalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gtol), __pyx_ptype_8petsc4py_5PETSc_Scatter, 0, "gtol", 0))) __PYX_ERR(59, 56, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_14setGlobalToLocalVecScatter(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_gtol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_14setGlobalToLocalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_gtol) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setGlobalToLocalVecScatter", 0); + + /* "petsc4py/PETSc/DMShell.pyx":57 + * + * def setGlobalToLocalVecScatter(self, Scatter gtol): + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) # <<<<<<<<<<<<<< + * + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetGlobalToLocalVecScatter(__pyx_v_self->__pyx_base.dm, __pyx_v_gtol->sct)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":56 + * CHKERR( DMShellSetGlobalToLocal(self.dm, cbegin, cend) ) + * + * def setGlobalToLocalVecScatter(self, Scatter gtol): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setGlobalToLocalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":59 + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) + * + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_17setLocalToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_16setLocalToGlobal[] = "DMShell.setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, end_args=None, end_kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_17setLocalToGlobal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_begin = 0; + PyObject *__pyx_v_end = 0; + PyObject *__pyx_v_begin_args = 0; + PyObject *__pyx_v_begin_kargs = 0; + PyObject *__pyx_v_end_args = 0; + PyObject *__pyx_v_end_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalToGlobal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_begin,&__pyx_n_s_end,&__pyx_n_s_begin_args,&__pyx_n_s_begin_kargs,&__pyx_n_s_end_args,&__pyx_n_s_end_kargs,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMShell.pyx":60 + * + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): # <<<<<<<<<<<<<< + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: + */ + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLocalToGlobal", 0, 2, 6, 1); __PYX_ERR(59, 59, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_kargs); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_args); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_kargs); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalToGlobal") < 0)) __PYX_ERR(59, 59, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_begin = values[0]; + __pyx_v_end = values[1]; + __pyx_v_begin_args = values[2]; + __pyx_v_begin_kargs = values[3]; + __pyx_v_end_args = values[4]; + __pyx_v_end_kargs = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalToGlobal", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 59, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_16setLocalToGlobal(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_begin, __pyx_v_end, __pyx_v_begin_args, __pyx_v_begin_kargs, __pyx_v_end_args, __pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":59 + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) + * + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_16setLocalToGlobal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs) { + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cbegin; + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cend; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalToGlobal", 0); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":61 + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL # <<<<<<<<<<<<<< + * if begin is not None: + * if begin_args is None: begin_args = () + */ + __pyx_v_cbegin = NULL; + __pyx_v_cend = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":62 + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + __pyx_t_1 = (__pyx_v_begin != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":63 + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: + * if begin_args is None: begin_args = () # <<<<<<<<<<<<<< + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + */ + __pyx_t_2 = (__pyx_v_begin_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_begin_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":64 + * if begin is not None: + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} # <<<<<<<<<<<<<< + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2g_begin__', context) + */ + __pyx_t_1 = (__pyx_v_begin_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_begin_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":65 + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__l2g_begin__', context) + * cbegin = &DMSHELL_LocalToGlobalBegin + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_begin); + __Pyx_GIVEREF(__pyx_v_begin); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_begin); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_GIVEREF(__pyx_v_begin_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_GIVEREF(__pyx_v_begin_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_begin_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":66 + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2g_begin__', context) # <<<<<<<<<<<<<< + * cbegin = &DMSHELL_LocalToGlobalBegin + * if end is not None: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__l2g_begin__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":67 + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2g_begin__', context) + * cbegin = &DMSHELL_LocalToGlobalBegin # <<<<<<<<<<<<<< + * if end is not None: + * if end_args is None: end_args = () + */ + __pyx_v_cbegin = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalBegin); + + /* "petsc4py/PETSc/DMShell.pyx":62 + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":68 + * self.set_attr('__l2g_begin__', context) + * cbegin = &DMSHELL_LocalToGlobalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + __pyx_t_2 = (__pyx_v_end != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMShell.pyx":69 + * cbegin = &DMSHELL_LocalToGlobalBegin + * if end is not None: + * if end_args is None: end_args = () # <<<<<<<<<<<<<< + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + */ + __pyx_t_1 = (__pyx_v_end_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_end_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":70 + * if end is not None: + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} # <<<<<<<<<<<<<< + * context = (end, end_args, end_kargs) + * self.set_attr('__l2g_end__', context) + */ + __pyx_t_2 = (__pyx_v_end_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_end_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":71 + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__l2g_end__', context) + * cend = &DMSHELL_LocalToGlobalEnd + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_end); + __Pyx_GIVEREF(__pyx_v_end); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_end); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_GIVEREF(__pyx_v_end_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + __Pyx_GIVEREF(__pyx_v_end_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_end_kargs); + __Pyx_XDECREF_SET(__pyx_v_context, ((PyObject*)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":72 + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + * self.set_attr('__l2g_end__', context) # <<<<<<<<<<<<<< + * cend = &DMSHELL_LocalToGlobalEnd + * CHKERR( DMShellSetLocalToGlobal(self.dm, cbegin, cend) ) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__l2g_end__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":73 + * context = (end, end_args, end_kargs) + * self.set_attr('__l2g_end__', context) + * cend = &DMSHELL_LocalToGlobalEnd # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToGlobal(self.dm, cbegin, cend) ) + * + */ + __pyx_v_cend = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToGlobalEnd); + + /* "petsc4py/PETSc/DMShell.pyx":68 + * self.set_attr('__l2g_begin__', context) + * cbegin = &DMSHELL_LocalToGlobalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":74 + * self.set_attr('__l2g_end__', context) + * cend = &DMSHELL_LocalToGlobalEnd + * CHKERR( DMShellSetLocalToGlobal(self.dm, cbegin, cend) ) # <<<<<<<<<<<<<< + * + * def setLocalToGlobalVecScatter(self, Scatter ltog): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetLocalToGlobal(__pyx_v_self->__pyx_base.dm, __pyx_v_cbegin, __pyx_v_cend)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 74, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":59 + * CHKERR( DMShellSetGlobalToLocalVecScatter(self.dm, gtol.sct) ) + * + * def setLocalToGlobal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToGlobal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin_args); + __Pyx_XDECREF(__pyx_v_begin_kargs); + __Pyx_XDECREF(__pyx_v_end_args); + __Pyx_XDECREF(__pyx_v_end_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":76 + * CHKERR( DMShellSetLocalToGlobal(self.dm, cbegin, cend) ) + * + * def setLocalToGlobalVecScatter(self, Scatter ltog): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_19setLocalToGlobalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_18setLocalToGlobalVecScatter[] = "DMShell.setLocalToGlobalVecScatter(self, Scatter ltog)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_19setLocalToGlobalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscScatterObject *__pyx_v_ltog = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalToGlobalVecScatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ltog,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ltog)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalToGlobalVecScatter") < 0)) __PYX_ERR(59, 76, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ltog = ((struct PyPetscScatterObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalToGlobalVecScatter", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 76, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToGlobalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ltog), __pyx_ptype_8petsc4py_5PETSc_Scatter, 0, "ltog", 0))) __PYX_ERR(59, 76, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_18setLocalToGlobalVecScatter(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_ltog); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_18setLocalToGlobalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_ltog) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalToGlobalVecScatter", 0); + + /* "petsc4py/PETSc/DMShell.pyx":77 + * + * def setLocalToGlobalVecScatter(self, Scatter ltog): + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) # <<<<<<<<<<<<<< + * + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetLocalToGlobalVecScatter(__pyx_v_self->__pyx_base.dm, __pyx_v_ltog->sct)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 77, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":76 + * CHKERR( DMShellSetLocalToGlobal(self.dm, cbegin, cend) ) + * + * def setLocalToGlobalVecScatter(self, Scatter ltog): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToGlobalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":79 + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) + * + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_21setLocalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_20setLocalToLocal[] = "DMShell.setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, end_args=None, end_kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_21setLocalToLocal(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_begin = 0; + PyObject *__pyx_v_end = 0; + PyObject *__pyx_v_begin_args = 0; + PyObject *__pyx_v_begin_kargs = 0; + PyObject *__pyx_v_end_args = 0; + PyObject *__pyx_v_end_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalToLocal (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_begin,&__pyx_n_s_end,&__pyx_n_s_begin_args,&__pyx_n_s_begin_kargs,&__pyx_n_s_end_args,&__pyx_n_s_end_kargs,0}; + PyObject* values[6] = {0,0,0,0,0,0}; + values[2] = ((PyObject *)Py_None); + values[3] = ((PyObject *)Py_None); + + /* "petsc4py/PETSc/DMShell.pyx":80 + * + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): # <<<<<<<<<<<<<< + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * cbegin = NULL + */ + values[4] = ((PyObject *)Py_None); + values[5] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLocalToLocal", 0, 2, 6, 1); __PYX_ERR(59, 79, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_args); + if (value) { values[2] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_begin_kargs); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_args); + if (value) { values[4] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end_kargs); + if (value) { values[5] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalToLocal") < 0)) __PYX_ERR(59, 79, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_begin = values[0]; + __pyx_v_end = values[1]; + __pyx_v_begin_args = values[2]; + __pyx_v_begin_kargs = values[3]; + __pyx_v_end_args = values[4]; + __pyx_v_end_kargs = values[5]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalToLocal", 0, 2, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 79, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_20setLocalToLocal(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_begin, __pyx_v_end, __pyx_v_begin_args, __pyx_v_begin_kargs, __pyx_v_end_args, __pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":79 + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) + * + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_20setLocalToLocal(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_begin, PyObject *__pyx_v_end, PyObject *__pyx_v_begin_args, PyObject *__pyx_v_begin_kargs, PyObject *__pyx_v_end_args, PyObject *__pyx_v_end_kargs) { + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cbegin; + __pyx_t_8petsc4py_5PETSc_PetscDMShellXToYFunction __pyx_v_cend; + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalToLocal", 0); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":81 + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL # <<<<<<<<<<<<<< + * cbegin = NULL + * cend = NULL + */ + __pyx_v_cbegin = NULL; + __pyx_v_cend = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":82 + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * cbegin = NULL # <<<<<<<<<<<<<< + * cend = NULL + * if begin is not None: + */ + __pyx_v_cbegin = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":83 + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + * cbegin = NULL + * cend = NULL # <<<<<<<<<<<<<< + * if begin is not None: + * if begin_args is None: begin_args = () + */ + __pyx_v_cend = NULL; + + /* "petsc4py/PETSc/DMShell.pyx":84 + * cbegin = NULL + * cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + __pyx_t_1 = (__pyx_v_begin != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":85 + * cend = NULL + * if begin is not None: + * if begin_args is None: begin_args = () # <<<<<<<<<<<<<< + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + */ + __pyx_t_2 = (__pyx_v_begin_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_begin_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":86 + * if begin is not None: + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} # <<<<<<<<<<<<<< + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2l_begin__', context) + */ + __pyx_t_1 = (__pyx_v_begin_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_begin_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":87 + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__l2l_begin__', context) + * cbegin = &DMSHELL_LocalToLocalBegin + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_begin); + __Pyx_GIVEREF(__pyx_v_begin); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_begin); + __Pyx_INCREF(__pyx_v_begin_args); + __Pyx_GIVEREF(__pyx_v_begin_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_begin_args); + __Pyx_INCREF(__pyx_v_begin_kargs); + __Pyx_GIVEREF(__pyx_v_begin_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_begin_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":88 + * if begin_kargs is None: begin_kargs = {} + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2l_begin__', context) # <<<<<<<<<<<<<< + * cbegin = &DMSHELL_LocalToLocalBegin + * if end is not None: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__l2l_begin__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":89 + * context = (begin, begin_args, begin_kargs) + * self.set_attr('__l2l_begin__', context) + * cbegin = &DMSHELL_LocalToLocalBegin # <<<<<<<<<<<<<< + * if end is not None: + * if end_args is None: end_args = () + */ + __pyx_v_cbegin = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalBegin); + + /* "petsc4py/PETSc/DMShell.pyx":84 + * cbegin = NULL + * cend = NULL + * if begin is not None: # <<<<<<<<<<<<<< + * if begin_args is None: begin_args = () + * if begin_kargs is None: begin_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":90 + * self.set_attr('__l2l_begin__', context) + * cbegin = &DMSHELL_LocalToLocalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + __pyx_t_2 = (__pyx_v_end != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/DMShell.pyx":91 + * cbegin = &DMSHELL_LocalToLocalBegin + * if end is not None: + * if end_args is None: end_args = () # <<<<<<<<<<<<<< + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + */ + __pyx_t_1 = (__pyx_v_end_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_end_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":92 + * if end is not None: + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} # <<<<<<<<<<<<<< + * context = (end, end_args, end_kargs) + * self.set_attr('__l2l_end__', context) + */ + __pyx_t_2 = (__pyx_v_end_kargs == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_end_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":93 + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) # <<<<<<<<<<<<<< + * self.set_attr('__l2l_end__', context) + * cend = &DMSHELL_LocalToLocalEnd + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_end); + __Pyx_GIVEREF(__pyx_v_end); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_end); + __Pyx_INCREF(__pyx_v_end_args); + __Pyx_GIVEREF(__pyx_v_end_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_end_args); + __Pyx_INCREF(__pyx_v_end_kargs); + __Pyx_GIVEREF(__pyx_v_end_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_end_kargs); + __Pyx_XDECREF_SET(__pyx_v_context, ((PyObject*)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":94 + * if end_kargs is None: end_kargs = {} + * context = (end, end_args, end_kargs) + * self.set_attr('__l2l_end__', context) # <<<<<<<<<<<<<< + * cend = &DMSHELL_LocalToLocalEnd + * CHKERR( DMShellSetLocalToLocal(self.dm, cbegin, cend) ) + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__l2l_end__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":95 + * context = (end, end_args, end_kargs) + * self.set_attr('__l2l_end__', context) + * cend = &DMSHELL_LocalToLocalEnd # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToLocal(self.dm, cbegin, cend) ) + * + */ + __pyx_v_cend = (&__pyx_f_8petsc4py_5PETSc_DMSHELL_LocalToLocalEnd); + + /* "petsc4py/PETSc/DMShell.pyx":90 + * self.set_attr('__l2l_begin__', context) + * cbegin = &DMSHELL_LocalToLocalBegin + * if end is not None: # <<<<<<<<<<<<<< + * if end_args is None: end_args = () + * if end_kargs is None: end_kargs = {} + */ + } + + /* "petsc4py/PETSc/DMShell.pyx":96 + * self.set_attr('__l2l_end__', context) + * cend = &DMSHELL_LocalToLocalEnd + * CHKERR( DMShellSetLocalToLocal(self.dm, cbegin, cend) ) # <<<<<<<<<<<<<< + * + * def setLocalToLocalVecScatter(self, Scatter ltol): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetLocalToLocal(__pyx_v_self->__pyx_base.dm, __pyx_v_cbegin, __pyx_v_cend)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 96, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":79 + * CHKERR( DMShellSetLocalToGlobalVecScatter(self.dm, ltog.sct) ) + * + * def setLocalToLocal(self, begin, end, begin_args=None, begin_kargs=None, # <<<<<<<<<<<<<< + * end_args=None, end_kargs=None): + * cdef PetscDMShellXToYFunction cbegin = NULL, cend = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToLocal", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_begin_args); + __Pyx_XDECREF(__pyx_v_begin_kargs); + __Pyx_XDECREF(__pyx_v_end_args); + __Pyx_XDECREF(__pyx_v_end_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":98 + * CHKERR( DMShellSetLocalToLocal(self.dm, cbegin, cend) ) + * + * def setLocalToLocalVecScatter(self, Scatter ltol): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToLocalVecScatter(self.dm, ltol.sct) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_23setLocalToLocalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_22setLocalToLocalVecScatter[] = "DMShell.setLocalToLocalVecScatter(self, Scatter ltol)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_23setLocalToLocalVecScatter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscScatterObject *__pyx_v_ltol = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalToLocalVecScatter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_ltol,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ltol)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalToLocalVecScatter") < 0)) __PYX_ERR(59, 98, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_ltol = ((struct PyPetscScatterObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalToLocalVecScatter", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 98, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToLocalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_ltol), __pyx_ptype_8petsc4py_5PETSc_Scatter, 0, "ltol", 0))) __PYX_ERR(59, 98, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_22setLocalToLocalVecScatter(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_ltol); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_22setLocalToLocalVecScatter(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, struct PyPetscScatterObject *__pyx_v_ltol) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalToLocalVecScatter", 0); + + /* "petsc4py/PETSc/DMShell.pyx":99 + * + * def setLocalToLocalVecScatter(self, Scatter ltol): + * CHKERR( DMShellSetLocalToLocalVecScatter(self.dm, ltol.sct) ) # <<<<<<<<<<<<<< + * + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetLocalToLocalVecScatter(__pyx_v_self->__pyx_base.dm, __pyx_v_ltol->sct)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 99, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":98 + * CHKERR( DMShellSetLocalToLocal(self.dm, cbegin, cend) ) + * + * def setLocalToLocalVecScatter(self, Scatter ltol): # <<<<<<<<<<<<<< + * CHKERR( DMShellSetLocalToLocalVecScatter(self.dm, ltol.sct) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setLocalToLocalVecScatter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":101 + * CHKERR( DMShellSetLocalToLocalVecScatter(self.dm, ltol.sct) ) + * + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_matrix is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_25setCreateMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_24setCreateMatrix[] = "DMShell.setCreateMatrix(self, create_matrix, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_25setCreateMatrix(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_matrix = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateMatrix (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_matrix,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_matrix)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateMatrix") < 0)) __PYX_ERR(59, 101, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_matrix = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateMatrix", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 101, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_24setCreateMatrix(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_matrix, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_24setCreateMatrix(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_matrix, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateMatrix", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":102 + * + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): + * if create_matrix is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_matrix != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":103 + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): + * if create_matrix is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_matrix, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":104 + * if create_matrix is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_matrix, args, kargs) + * self.set_attr('__create_matrix__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":105 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_matrix, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_matrix__', context) + * CHKERR( DMShellSetCreateMatrix(self.dm, DMSHELL_CreateMatrix) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_matrix); + __Pyx_GIVEREF(__pyx_v_create_matrix); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_matrix); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":106 + * if kargs is None: kargs = {} + * context = (create_matrix, args, kargs) + * self.set_attr('__create_matrix__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateMatrix(self.dm, DMSHELL_CreateMatrix) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_matrix__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":107 + * context = (create_matrix, args, kargs) + * self.set_attr('__create_matrix__', context) + * CHKERR( DMShellSetCreateMatrix(self.dm, DMSHELL_CreateMatrix) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateMatrix(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateMatrix(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateMatrix)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 107, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":102 + * + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): + * if create_matrix is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":109 + * CHKERR( DMShellSetCreateMatrix(self.dm, DMSHELL_CreateMatrix) ) + * else: + * CHKERR( DMShellSetCreateMatrix(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCoarsen(self, coarsen, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateMatrix(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 109, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":101 + * CHKERR( DMShellSetLocalToLocalVecScatter(self.dm, ltol.sct) ) + * + * def setCreateMatrix(self, create_matrix, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_matrix is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateMatrix", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":111 + * CHKERR( DMShellSetCreateMatrix(self.dm, NULL) ) + * + * def setCoarsen(self, coarsen, args=None, kargs=None): # <<<<<<<<<<<<<< + * if coarsen is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_27setCoarsen(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_26setCoarsen[] = "DMShell.setCoarsen(self, coarsen, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_27setCoarsen(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_coarsen = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCoarsen (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coarsen,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coarsen)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCoarsen") < 0)) __PYX_ERR(59, 111, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_coarsen = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCoarsen", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 111, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCoarsen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_26setCoarsen(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_coarsen, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_26setCoarsen(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_coarsen, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCoarsen", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":112 + * + * def setCoarsen(self, coarsen, args=None, kargs=None): + * if coarsen is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_coarsen != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":113 + * def setCoarsen(self, coarsen, args=None, kargs=None): + * if coarsen is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (coarsen, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":114 + * if coarsen is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (coarsen, args, kargs) + * self.set_attr('__coarsen__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":115 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (coarsen, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__coarsen__', context) + * CHKERR( DMShellSetCoarsen(self.dm, DMSHELL_Coarsen) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_coarsen); + __Pyx_GIVEREF(__pyx_v_coarsen); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_coarsen); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":116 + * if kargs is None: kargs = {} + * context = (coarsen, args, kargs) + * self.set_attr('__coarsen__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCoarsen(self.dm, DMSHELL_Coarsen) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__coarsen__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":117 + * context = (coarsen, args, kargs) + * self.set_attr('__coarsen__', context) + * CHKERR( DMShellSetCoarsen(self.dm, DMSHELL_Coarsen) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCoarsen(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCoarsen(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_Coarsen)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 117, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":112 + * + * def setCoarsen(self, coarsen, args=None, kargs=None): + * if coarsen is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":119 + * CHKERR( DMShellSetCoarsen(self.dm, DMSHELL_Coarsen) ) + * else: + * CHKERR( DMShellSetCoarsen(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setRefine(self, refine, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCoarsen(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 119, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":111 + * CHKERR( DMShellSetCreateMatrix(self.dm, NULL) ) + * + * def setCoarsen(self, coarsen, args=None, kargs=None): # <<<<<<<<<<<<<< + * if coarsen is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCoarsen", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":121 + * CHKERR( DMShellSetCoarsen(self.dm, NULL) ) + * + * def setRefine(self, refine, args=None, kargs=None): # <<<<<<<<<<<<<< + * if refine is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_29setRefine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_28setRefine[] = "DMShell.setRefine(self, refine, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_29setRefine(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_refine = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setRefine (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_refine,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_refine)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setRefine") < 0)) __PYX_ERR(59, 121, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_refine = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setRefine", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 121, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setRefine", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_28setRefine(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_refine, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_28setRefine(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_refine, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setRefine", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":122 + * + * def setRefine(self, refine, args=None, kargs=None): + * if refine is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_refine != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":123 + * def setRefine(self, refine, args=None, kargs=None): + * if refine is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (refine, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":124 + * if refine is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (refine, args, kargs) + * self.set_attr('__refine__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":125 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (refine, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__refine__', context) + * CHKERR( DMShellSetRefine(self.dm, DMSHELL_Refine) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_refine); + __Pyx_GIVEREF(__pyx_v_refine); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_refine); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":126 + * if kargs is None: kargs = {} + * context = (refine, args, kargs) + * self.set_attr('__refine__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetRefine(self.dm, DMSHELL_Refine) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__refine__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":127 + * context = (refine, args, kargs) + * self.set_attr('__refine__', context) + * CHKERR( DMShellSetRefine(self.dm, DMSHELL_Refine) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetRefine(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetRefine(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_Refine)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 127, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":122 + * + * def setRefine(self, refine, args=None, kargs=None): + * if refine is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":129 + * CHKERR( DMShellSetRefine(self.dm, DMSHELL_Refine) ) + * else: + * CHKERR( DMShellSetRefine(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetRefine(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 129, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":121 + * CHKERR( DMShellSetCoarsen(self.dm, NULL) ) + * + * def setRefine(self, refine, args=None, kargs=None): # <<<<<<<<<<<<<< + * if refine is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setRefine", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":131 + * CHKERR( DMShellSetRefine(self.dm, NULL) ) + * + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_interpolation is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_31setCreateInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_30setCreateInterpolation[] = "DMShell.setCreateInterpolation(self, create_interpolation, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_31setCreateInterpolation(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_interpolation = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateInterpolation (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_interpolation,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_interpolation)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateInterpolation") < 0)) __PYX_ERR(59, 131, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_interpolation = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateInterpolation", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 131, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_30setCreateInterpolation(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_interpolation, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_30setCreateInterpolation(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_interpolation, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateInterpolation", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":132 + * + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): + * if create_interpolation is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_interpolation != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":133 + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): + * if create_interpolation is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_interpolation, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":134 + * if create_interpolation is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_interpolation, args, kargs) + * self.set_attr('__create_interpolation__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":135 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_interpolation, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_interpolation__', context) + * CHKERR( DMShellSetCreateInterpolation(self.dm, DMSHELL_CreateInterpolation) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_interpolation); + __Pyx_GIVEREF(__pyx_v_create_interpolation); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_interpolation); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":136 + * if kargs is None: kargs = {} + * context = (create_interpolation, args, kargs) + * self.set_attr('__create_interpolation__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateInterpolation(self.dm, DMSHELL_CreateInterpolation) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_interpolation__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":137 + * context = (create_interpolation, args, kargs) + * self.set_attr('__create_interpolation__', context) + * CHKERR( DMShellSetCreateInterpolation(self.dm, DMSHELL_CreateInterpolation) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateInterpolation(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateInterpolation(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInterpolation)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":132 + * + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): + * if create_interpolation is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":139 + * CHKERR( DMShellSetCreateInterpolation(self.dm, DMSHELL_CreateInterpolation) ) + * else: + * CHKERR( DMShellSetCreateInterpolation(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateInjection(self, create_injection, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateInterpolation(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 139, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":131 + * CHKERR( DMShellSetRefine(self.dm, NULL) ) + * + * def setCreateInterpolation(self, create_interpolation, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_interpolation is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateInterpolation", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":141 + * CHKERR( DMShellSetCreateInterpolation(self.dm, NULL) ) + * + * def setCreateInjection(self, create_injection, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_injection is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_33setCreateInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_32setCreateInjection[] = "DMShell.setCreateInjection(self, create_injection, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_33setCreateInjection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_injection = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateInjection (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_injection,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_injection)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateInjection") < 0)) __PYX_ERR(59, 141, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_injection = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateInjection", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 141, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_32setCreateInjection(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_injection, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_32setCreateInjection(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_injection, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateInjection", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":142 + * + * def setCreateInjection(self, create_injection, args=None, kargs=None): + * if create_injection is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_injection != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":143 + * def setCreateInjection(self, create_injection, args=None, kargs=None): + * if create_injection is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_injection, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":144 + * if create_injection is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_injection, args, kargs) + * self.set_attr('__create_injection__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":145 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_injection, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_injection__', context) + * CHKERR( DMShellSetCreateInjection(self.dm, DMSHELL_CreateInjection) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_injection); + __Pyx_GIVEREF(__pyx_v_create_injection); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_injection); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":146 + * if kargs is None: kargs = {} + * context = (create_injection, args, kargs) + * self.set_attr('__create_injection__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateInjection(self.dm, DMSHELL_CreateInjection) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_injection__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":147 + * context = (create_injection, args, kargs) + * self.set_attr('__create_injection__', context) + * CHKERR( DMShellSetCreateInjection(self.dm, DMSHELL_CreateInjection) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateInjection(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateInjection(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateInjection)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 147, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":142 + * + * def setCreateInjection(self, create_injection, args=None, kargs=None): + * if create_injection is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":149 + * CHKERR( DMShellSetCreateInjection(self.dm, DMSHELL_CreateInjection) ) + * else: + * CHKERR( DMShellSetCreateInjection(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateInjection(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 149, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":141 + * CHKERR( DMShellSetCreateInterpolation(self.dm, NULL) ) + * + * def setCreateInjection(self, create_injection, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_injection is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateInjection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":151 + * CHKERR( DMShellSetCreateInjection(self.dm, NULL) ) + * + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_restriction is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_35setCreateRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_34setCreateRestriction[] = "DMShell.setCreateRestriction(self, create_restriction, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_35setCreateRestriction(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_restriction = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateRestriction (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_restriction,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_restriction)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateRestriction") < 0)) __PYX_ERR(59, 151, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_restriction = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateRestriction", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 151, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_34setCreateRestriction(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_restriction, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_34setCreateRestriction(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_restriction, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateRestriction", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":152 + * + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): + * if create_restriction is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_restriction != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":153 + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): + * if create_restriction is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_restriction, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":154 + * if create_restriction is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_restriction, args, kargs) + * self.set_attr('__create_restriction__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":155 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_restriction, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_restriction__', context) + * CHKERR( DMShellSetCreateRestriction(self.dm, DMSHELL_CreateRestriction) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_restriction); + __Pyx_GIVEREF(__pyx_v_create_restriction); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_restriction); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":156 + * if kargs is None: kargs = {} + * context = (create_restriction, args, kargs) + * self.set_attr('__create_restriction__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateRestriction(self.dm, DMSHELL_CreateRestriction) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_restriction__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":157 + * context = (create_restriction, args, kargs) + * self.set_attr('__create_restriction__', context) + * CHKERR( DMShellSetCreateRestriction(self.dm, DMSHELL_CreateRestriction) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateRestriction(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateRestriction(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateRestriction)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":152 + * + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): + * if create_restriction is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":159 + * CHKERR( DMShellSetCreateRestriction(self.dm, DMSHELL_CreateRestriction) ) + * else: + * CHKERR( DMShellSetCreateRestriction(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateRestriction(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 159, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":151 + * CHKERR( DMShellSetCreateInjection(self.dm, NULL) ) + * + * def setCreateRestriction(self, create_restriction, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_restriction is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateRestriction", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":161 + * CHKERR( DMShellSetCreateRestriction(self.dm, NULL) ) + * + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): # <<<<<<<<<<<<<< + * if decomp is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_37setCreateFieldDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_36setCreateFieldDecomposition[] = "DMShell.setCreateFieldDecomposition(self, decomp, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_37setCreateFieldDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_decomp = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateFieldDecomposition (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_decomp,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_decomp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateFieldDecomposition") < 0)) __PYX_ERR(59, 161, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_decomp = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateFieldDecomposition", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateFieldDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_36setCreateFieldDecomposition(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_decomp, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_36setCreateFieldDecomposition(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_decomp, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateFieldDecomposition", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":162 + * + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_decomp != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":163 + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":164 + * if decomp is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (decomp, args, kargs) + * self.set_attr('__create_field_decomp__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":165 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_field_decomp__', context) + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, DMSHELL_CreateFieldDecomposition) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_decomp); + __Pyx_GIVEREF(__pyx_v_decomp); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_decomp); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":166 + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) + * self.set_attr('__create_field_decomp__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, DMSHELL_CreateFieldDecomposition) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_field_decomp__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":167 + * context = (decomp, args, kargs) + * self.set_attr('__create_field_decomp__', context) + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, DMSHELL_CreateFieldDecomposition) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateFieldDecomposition(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateFieldDecomposition)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 167, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":162 + * + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":169 + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, DMSHELL_CreateFieldDecomposition) ) + * else: + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateFieldDecomposition(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 169, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":161 + * CHKERR( DMShellSetCreateRestriction(self.dm, NULL) ) + * + * def setCreateFieldDecomposition(self, decomp, args=None, kargs=None): # <<<<<<<<<<<<<< + * if decomp is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateFieldDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":171 + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, NULL) ) + * + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): # <<<<<<<<<<<<<< + * if decomp is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_39setCreateDomainDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_38setCreateDomainDecomposition[] = "DMShell.setCreateDomainDecomposition(self, decomp, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_39setCreateDomainDecomposition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_decomp = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateDomainDecomposition (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_decomp,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_decomp)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateDomainDecomposition") < 0)) __PYX_ERR(59, 171, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_decomp = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateDomainDecomposition", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 171, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateDomainDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_38setCreateDomainDecomposition(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_decomp, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_38setCreateDomainDecomposition(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_decomp, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateDomainDecomposition", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":172 + * + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_decomp != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":173 + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":174 + * if decomp is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (decomp, args, kargs) + * self.set_attr('__create_domain_decomp__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":175 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_domain_decomp__', context) + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, DMSHELL_CreateDomainDecomposition) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_decomp); + __Pyx_GIVEREF(__pyx_v_decomp); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_decomp); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":176 + * if kargs is None: kargs = {} + * context = (decomp, args, kargs) + * self.set_attr('__create_domain_decomp__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, DMSHELL_CreateDomainDecomposition) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_domain_decomp__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":177 + * context = (decomp, args, kargs) + * self.set_attr('__create_domain_decomp__', context) + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, DMSHELL_CreateDomainDecomposition) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateDomainDecomposition(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecomposition)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 177, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":172 + * + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): + * if decomp is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":179 + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, DMSHELL_CreateDomainDecomposition) ) + * else: + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateDomainDecomposition(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 179, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":171 + * CHKERR( DMShellSetCreateFieldDecomposition(self.dm, NULL) ) + * + * def setCreateDomainDecomposition(self, decomp, args=None, kargs=None): # <<<<<<<<<<<<<< + * if decomp is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateDomainDecomposition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":181 + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, NULL) ) + * + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): # <<<<<<<<<<<<<< + * if scatter is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_41setCreateDomainDecompositionScatters(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_40setCreateDomainDecompositionScatters[] = "DMShell.setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_41setCreateDomainDecompositionScatters(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_scatter = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateDomainDecompositionScatters (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_scatter,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scatter)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateDomainDecompositionScatters") < 0)) __PYX_ERR(59, 181, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_scatter = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateDomainDecompositionScatters", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 181, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateDomainDecompositionScatters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_40setCreateDomainDecompositionScatters(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_scatter, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_40setCreateDomainDecompositionScatters(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_scatter, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateDomainDecompositionScatters", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":182 + * + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): + * if scatter is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_scatter != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":183 + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): + * if scatter is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (scatter, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":184 + * if scatter is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (scatter, args, kargs) + * self.set_attr('__create_domain_decomp_scatters__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":185 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (scatter, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_domain_decomp_scatters__', context) + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, DMSHELL_CreateDomainDecompositionScatters) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_scatter); + __Pyx_GIVEREF(__pyx_v_scatter); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_scatter); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":186 + * if kargs is None: kargs = {} + * context = (scatter, args, kargs) + * self.set_attr('__create_domain_decomp_scatters__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, DMSHELL_CreateDomainDecompositionScatters) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_domain_decomp_scatters__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":187 + * context = (scatter, args, kargs) + * self.set_attr('__create_domain_decomp_scatters__', context) + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, DMSHELL_CreateDomainDecompositionScatters) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateDomainDecompositionScatters(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateDomainDecompositionScatters)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":182 + * + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): + * if scatter is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":189 + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, DMSHELL_CreateDomainDecompositionScatters) ) + * else: + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, NULL) ) # <<<<<<<<<<<<<< + * + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateDomainDecompositionScatters(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 189, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":181 + * CHKERR( DMShellSetCreateDomainDecomposition(self.dm, NULL) ) + * + * def setCreateDomainDecompositionScatters(self, scatter, args=None, kargs=None): # <<<<<<<<<<<<<< + * if scatter is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateDomainDecompositionScatters", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMShell.pyx":191 + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, NULL) ) + * + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_subdm is not None: + * if args is None: args = () + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_43setCreateSubDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMShell_42setCreateSubDM[] = "DMShell.setCreateSubDM(self, create_subdm, args=None, kargs=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMShell_43setCreateSubDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_create_subdm = 0; + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_kargs = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCreateSubDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_create_subdm,&__pyx_n_s_args,&__pyx_n_s_kargs,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_create_subdm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kargs); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCreateSubDM") < 0)) __PYX_ERR(59, 191, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_create_subdm = values[0]; + __pyx_v_args = values[1]; + __pyx_v_kargs = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCreateSubDM", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(59, 191, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateSubDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMShell_42setCreateSubDM(((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)__pyx_v_self), __pyx_v_create_subdm, __pyx_v_args, __pyx_v_kargs); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMShell_42setCreateSubDM(struct __pyx_obj_8petsc4py_5PETSc_DMShell *__pyx_v_self, PyObject *__pyx_v_create_subdm, PyObject *__pyx_v_args, PyObject *__pyx_v_kargs) { + PyObject *__pyx_v_context = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCreateSubDM", 0); + __Pyx_INCREF(__pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + + /* "petsc4py/PETSc/DMShell.pyx":192 + * + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): + * if create_subdm is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + __pyx_t_1 = (__pyx_v_create_subdm != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/DMShell.pyx":193 + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): + * if create_subdm is not None: + * if args is None: args = () # <<<<<<<<<<<<<< + * if kargs is None: kargs = {} + * context = (create_subdm, args, kargs) + */ + __pyx_t_2 = (__pyx_v_args == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + __Pyx_INCREF(__pyx_empty_tuple); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_empty_tuple); + } + + /* "petsc4py/PETSc/DMShell.pyx":194 + * if create_subdm is not None: + * if args is None: args = () + * if kargs is None: kargs = {} # <<<<<<<<<<<<<< + * context = (create_subdm, args, kargs) + * self.set_attr('__create_subdm__', context) + */ + __pyx_t_1 = (__pyx_v_kargs == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_kargs, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/DMShell.pyx":195 + * if args is None: args = () + * if kargs is None: kargs = {} + * context = (create_subdm, args, kargs) # <<<<<<<<<<<<<< + * self.set_attr('__create_subdm__', context) + * CHKERR( DMShellSetCreateSubDM(self.dm, DMSHELL_CreateSubDM) ) + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_create_subdm); + __Pyx_GIVEREF(__pyx_v_create_subdm); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_create_subdm); + __Pyx_INCREF(__pyx_v_args); + __Pyx_GIVEREF(__pyx_v_args); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_args); + __Pyx_INCREF(__pyx_v_kargs); + __Pyx_GIVEREF(__pyx_v_kargs); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_kargs); + __pyx_v_context = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":196 + * if kargs is None: kargs = {} + * context = (create_subdm, args, kargs) + * self.set_attr('__create_subdm__', context) # <<<<<<<<<<<<<< + * CHKERR( DMShellSetCreateSubDM(self.dm, DMSHELL_CreateSubDM) ) + * else: + */ + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.set_attr(((struct PyPetscObjectObject *)__pyx_v_self), ((char *)"__create_subdm__"), __pyx_v_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(59, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMShell.pyx":197 + * context = (create_subdm, args, kargs) + * self.set_attr('__create_subdm__', context) + * CHKERR( DMShellSetCreateSubDM(self.dm, DMSHELL_CreateSubDM) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( DMShellSetCreateSubDM(self.dm, NULL) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateSubDM(__pyx_v_self->__pyx_base.dm, __pyx_f_8petsc4py_5PETSc_DMSHELL_CreateSubDM)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 197, __pyx_L1_error) + + /* "petsc4py/PETSc/DMShell.pyx":192 + * + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): + * if create_subdm is not None: # <<<<<<<<<<<<<< + * if args is None: args = () + * if kargs is None: kargs = {} + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/DMShell.pyx":199 + * CHKERR( DMShellSetCreateSubDM(self.dm, DMSHELL_CreateSubDM) ) + * else: + * CHKERR( DMShellSetCreateSubDM(self.dm, NULL) ) # <<<<<<<<<<<<<< + */ + /*else*/ { + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMShellSetCreateSubDM(__pyx_v_self->__pyx_base.dm, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(59, 199, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/DMShell.pyx":191 + * CHKERR( DMShellSetCreateDomainDecompositionScatters(self.dm, NULL) ) + * + * def setCreateSubDM(self, create_subdm, args=None, kargs=None): # <<<<<<<<<<<<<< + * if create_subdm is not None: + * if args is None: args = () + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMShell.setCreateSubDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_context); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_XDECREF(__pyx_v_kargs); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":4 + * cdef class DMLabel(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dmlabel + * self.dmlabel = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_7DMLabel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_7DMLabel_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel___cinit__(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_7DMLabel___cinit__(struct PyPetscDMLabelObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":5 + * + * def __cinit__(self): + * self.obj = &self.dmlabel # <<<<<<<<<<<<<< + * self.dmlabel = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->dmlabel)); + + /* "petsc4py/PETSc/DMLabel.pyx":6 + * def __cinit__(self): + * self.obj = &self.dmlabel + * self.dmlabel = NULL # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_v_self->dmlabel = NULL; + + /* "petsc4py/PETSc/DMLabel.pyx":4 + * cdef class DMLabel(Object): + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dmlabel + * self.dmlabel = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":8 + * self.dmlabel = NULL + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelDestroy(&self.dmlabel) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_3destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_2destroy[] = "DMLabel.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_3destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_2destroy(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_2destroy(struct PyPetscDMLabelObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":9 + * + * def destroy(self): + * CHKERR( DMLabelDestroy(&self.dmlabel) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelDestroy((&__pyx_v_self->dmlabel))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 9, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":10 + * def destroy(self): + * CHKERR( DMLabelDestroy(&self.dmlabel) ) + * return self # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":8 + * self.dmlabel = NULL + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelDestroy(&self.dmlabel) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":12 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_4view[] = "DMLabel.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_5view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(60, 12, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 12, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(60, 12, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_4view(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_4view(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":13 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMLabelView(self.dmlabel, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/DMLabel.pyx":14 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( DMLabelView(self.dmlabel, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/DMLabel.pyx":15 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( DMLabelView(self.dmlabel, vwr) ) # <<<<<<<<<<<<<< + * + * def create(self, name, comm=None): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelView(__pyx_v_self->dmlabel, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 15, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":12 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":17 + * CHKERR( DMLabelView(self.dmlabel, vwr) ) + * + * def create(self, name, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMLabel newdmlabel = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_6create[] = "DMLabel.create(self, name, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(60, 17, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 17, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_6create(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_name, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_6create(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_name, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DMLabel __pyx_v_newdmlabel; + char const *__pyx_v_cname; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + __Pyx_INCREF(__pyx_v_name); + + /* "petsc4py/PETSc/DMLabel.pyx":18 + * + * def create(self, name, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * cdef PetscDMLabel newdmlabel = NULL + * cdef const char *cname = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(60, 18, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":19 + * def create(self, name, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMLabel newdmlabel = NULL # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_v_newdmlabel = NULL; + + /* "petsc4py/PETSc/DMLabel.pyx":20 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMLabel newdmlabel = NULL + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * name = str2bytes(name, &cname) + * CHKERR( DMLabelCreate(ccomm, cname, &newdmlabel) ) + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/DMLabel.pyx":21 + * cdef PetscDMLabel newdmlabel = NULL + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * CHKERR( DMLabelCreate(ccomm, cname, &newdmlabel) ) + * PetscCLEAR(self.obj); self.dmlabel = newdmlabel + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(60, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":22 + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + * CHKERR( DMLabelCreate(ccomm, cname, &newdmlabel) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dmlabel = newdmlabel + * return self + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelCreate(__pyx_v_ccomm, __pyx_v_cname, (&__pyx_v_newdmlabel))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 22, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":23 + * name = str2bytes(name, &cname) + * CHKERR( DMLabelCreate(ccomm, cname, &newdmlabel) ) + * PetscCLEAR(self.obj); self.dmlabel = newdmlabel # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->dmlabel = __pyx_v_newdmlabel; + + /* "petsc4py/PETSc/DMLabel.pyx":24 + * CHKERR( DMLabelCreate(ccomm, cname, &newdmlabel) ) + * PetscCLEAR(self.obj); self.dmlabel = newdmlabel + * return self # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":17 + * CHKERR( DMLabelView(self.dmlabel, vwr) ) + * + * def create(self, name, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMLabel newdmlabel = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":26 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDuplicate(self.dmlabel, &new.dmlabel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_9duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_8duplicate[] = "DMLabel.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_9duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_8duplicate(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_8duplicate(struct PyPetscDMLabelObject *__pyx_v_self) { + struct PyPetscDMLabelObject *__pyx_v_new = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":27 + * + * def duplicate(self): + * cdef DMLabel new = DMLabel() # <<<<<<<<<<<<<< + * CHKERR( DMLabelDuplicate(self.dmlabel, &new.dmlabel) ) + * return new + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_new = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":28 + * def duplicate(self): + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDuplicate(self.dmlabel, &new.dmlabel) ) # <<<<<<<<<<<<<< + * return new + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelDuplicate(__pyx_v_self->dmlabel, (&__pyx_v_new->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 28, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":29 + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDuplicate(self.dmlabel, &new.dmlabel) ) + * return new # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_new)); + __pyx_r = ((PyObject *)__pyx_v_new); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":26 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDuplicate(self.dmlabel, &new.dmlabel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_new); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":31 + * return new + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelReset(self.dmlabel) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_11reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_10reset[] = "DMLabel.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_11reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_10reset(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_10reset(struct PyPetscDMLabelObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":32 + * + * def reset(self): + * CHKERR( DMLabelReset(self.dmlabel) ) # <<<<<<<<<<<<<< + * + * def insertIS(self, IS iset, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelReset(__pyx_v_self->dmlabel)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 32, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":31 + * return new + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelReset(self.dmlabel) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":34 + * CHKERR( DMLabelReset(self.dmlabel) ) + * + * def insertIS(self, IS iset, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelInsertIS(self.dmlabel, iset.iset, cvalue) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_13insertIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_12insertIS[] = "DMLabel.insertIS(self, IS iset, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_13insertIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("insertIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertIS", 1, 2, 2, 1); __PYX_ERR(60, 34, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insertIS") < 0)) __PYX_ERR(60, 34, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("insertIS", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 34, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.insertIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(60, 34, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_12insertIS(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_iset, __pyx_v_value); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_12insertIS(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":35 + * + * def insertIS(self, IS iset, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * CHKERR( DMLabelInsertIS(self.dmlabel, iset.iset, cvalue) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 35, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":36 + * def insertIS(self, IS iset, value): + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelInsertIS(self.dmlabel, iset.iset, cvalue) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelInsertIS(__pyx_v_self->dmlabel, __pyx_v_iset->iset, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 36, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":37 + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelInsertIS(self.dmlabel, iset.iset, cvalue) ) + * return self # <<<<<<<<<<<<<< + * + * def setValue(self, point, value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":34 + * CHKERR( DMLabelReset(self.dmlabel) ) + * + * def insertIS(self, IS iset, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelInsertIS(self.dmlabel, iset.iset, cvalue) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.insertIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":39 + * return self + * + * def setValue(self, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_15setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_14setValue[] = "DMLabel.setValue(self, point, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_15setValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setValue", 1, 2, 2, 1); __PYX_ERR(60, 39, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setValue") < 0)) __PYX_ERR(60, 39, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setValue", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 39, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_14setValue(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_point, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_14setValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":40 + * + * def setValue(self, point, value): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelSetValue(self.dmlabel, cpoint, cvalue) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 40, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":41 + * def setValue(self, point, value): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * CHKERR( DMLabelSetValue(self.dmlabel, cpoint, cvalue) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 41, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":42 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelSetValue(self.dmlabel, cpoint, cvalue) ) # <<<<<<<<<<<<<< + * + * def getValue(self, point): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelSetValue(__pyx_v_self->dmlabel, __pyx_v_cpoint, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 42, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":39 + * return self + * + * def setValue(self, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":44 + * CHKERR( DMLabelSetValue(self.dmlabel, cpoint, cvalue) ) + * + * def getValue(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_17getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_16getValue[] = "DMLabel.getValue(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_17getValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getValue") < 0)) __PYX_ERR(60, 44, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getValue", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 44, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_16getValue(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_16getValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":45 + * + * def getValue(self, point): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetValue(self.dmlabel, cpoint, &cvalue) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 45, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":46 + * def getValue(self, point): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetValue(self.dmlabel, cpoint, &cvalue) ) + * return toInt(cvalue) + */ + __pyx_v_cvalue = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":47 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetValue(self.dmlabel, cpoint, &cvalue) ) # <<<<<<<<<<<<<< + * return toInt(cvalue) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetValue(__pyx_v_self->dmlabel, __pyx_v_cpoint, (&__pyx_v_cvalue))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 47, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":48 + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetValue(self.dmlabel, cpoint, &cvalue) ) + * return toInt(cvalue) # <<<<<<<<<<<<<< + * + * def getDefaultValue(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cvalue); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":44 + * CHKERR( DMLabelSetValue(self.dmlabel, cpoint, cvalue) ) + * + * def getValue(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":50 + * return toInt(cvalue) + * + * def getDefaultValue(self): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetDefaultValue(self.dmlabel, &cvalue) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_19getDefaultValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_18getDefaultValue[] = "DMLabel.getDefaultValue(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_19getDefaultValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDefaultValue (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDefaultValue", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDefaultValue", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_18getDefaultValue(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_18getDefaultValue(struct PyPetscDMLabelObject *__pyx_v_self) { + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDefaultValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":51 + * + * def getDefaultValue(self): + * cdef PetscInt cvalue = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetDefaultValue(self.dmlabel, &cvalue) ) + * return toInt(cvalue) + */ + __pyx_v_cvalue = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":52 + * def getDefaultValue(self): + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetDefaultValue(self.dmlabel, &cvalue) ) # <<<<<<<<<<<<<< + * return toInt(cvalue) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetDefaultValue(__pyx_v_self->dmlabel, (&__pyx_v_cvalue))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":53 + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetDefaultValue(self.dmlabel, &cvalue) ) + * return toInt(cvalue) # <<<<<<<<<<<<<< + * + * def setDefaultValue(self, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cvalue); if (unlikely(!__pyx_t_2)) __PYX_ERR(60, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":50 + * return toInt(cvalue) + * + * def getDefaultValue(self): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = 0 + * CHKERR( DMLabelGetDefaultValue(self.dmlabel, &cvalue) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getDefaultValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":55 + * return toInt(cvalue) + * + * def setDefaultValue(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_21setDefaultValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_20setDefaultValue[] = "DMLabel.setDefaultValue(self, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_21setDefaultValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDefaultValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDefaultValue") < 0)) __PYX_ERR(60, 55, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_value = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDefaultValue", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 55, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setDefaultValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_20setDefaultValue(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_20setDefaultValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDefaultValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":56 + * + * def setDefaultValue(self, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 56, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":57 + * def setDefaultValue(self, value): + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) # <<<<<<<<<<<<<< + * + * def clearValue(self, point, value): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelSetDefaultValue(__pyx_v_self->dmlabel, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":55 + * return toInt(cvalue) + * + * def setDefaultValue(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setDefaultValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":59 + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) + * + * def clearValue(self, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_23clearValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_22clearValue[] = "DMLabel.clearValue(self, point, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_23clearValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,&__pyx_n_s_value,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("clearValue", 1, 2, 2, 1); __PYX_ERR(60, 59, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "clearValue") < 0)) __PYX_ERR(60, 59, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_point = values[0]; + __pyx_v_value = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("clearValue", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 59, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.clearValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_22clearValue(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_point, __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_22clearValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":60 + * + * def clearValue(self, point, value): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelClearValue(self.dmlabel, cpoint, cvalue) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 60, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":61 + * def clearValue(self, point, value): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * CHKERR( DMLabelClearValue(self.dmlabel, cpoint, cvalue) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 61, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":62 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelClearValue(self.dmlabel, cpoint, cvalue) ) # <<<<<<<<<<<<<< + * + * def addStratum(self, value): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelClearValue(__pyx_v_self->dmlabel, __pyx_v_cpoint, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":59 + * CHKERR( DMLabelSetDefaultValue(self.dmlabel, cvalue) ) + * + * def clearValue(self, point, value): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.clearValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":64 + * CHKERR( DMLabelClearValue(self.dmlabel, cpoint, cvalue) ) + * + * def addStratum(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_25addStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_24addStratum[] = "DMLabel.addStratum(self, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_25addStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addStratum") < 0)) __PYX_ERR(60, 64, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_value = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addStratum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 64, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_24addStratum(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_24addStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addStratum", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":65 + * + * def addStratum(self, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 65, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":66 + * def addStratum(self, value): + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) # <<<<<<<<<<<<<< + * + * def addStrata(self, strata): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelAddStratum(__pyx_v_self->dmlabel, __pyx_v_cvalue)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 66, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":64 + * CHKERR( DMLabelClearValue(self.dmlabel, cpoint, cvalue) ) + * + * def addStratum(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":68 + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) + * + * def addStrata(self, strata): # <<<<<<<<<<<<<< + * cdef PetscInt *istrata = NULL + * cdef PetscInt numStrata = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_27addStrata(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_26addStrata[] = "DMLabel.addStrata(self, strata)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_27addStrata(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_strata = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addStrata (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_strata,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_strata)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addStrata") < 0)) __PYX_ERR(60, 68, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_strata = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addStrata", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 68, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStrata", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_26addStrata(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_strata); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_26addStrata(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_strata) { + PetscInt *__pyx_v_istrata; + PetscInt __pyx_v_numStrata; + CYTHON_UNUSED PyArrayObject *__pyx_v_fields = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addStrata", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":69 + * + * def addStrata(self, strata): + * cdef PetscInt *istrata = NULL # <<<<<<<<<<<<<< + * cdef PetscInt numStrata = 0 + * fields = iarray_i(strata, &numStrata, &istrata) + */ + __pyx_v_istrata = NULL; + + /* "petsc4py/PETSc/DMLabel.pyx":70 + * def addStrata(self, strata): + * cdef PetscInt *istrata = NULL + * cdef PetscInt numStrata = 0 # <<<<<<<<<<<<<< + * fields = iarray_i(strata, &numStrata, &istrata) + * CHKERR( DMLabelAddStrata(self.dmlabel, numStrata, istrata) ) + */ + __pyx_v_numStrata = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":71 + * cdef PetscInt *istrata = NULL + * cdef PetscInt numStrata = 0 + * fields = iarray_i(strata, &numStrata, &istrata) # <<<<<<<<<<<<<< + * CHKERR( DMLabelAddStrata(self.dmlabel, numStrata, istrata) ) + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_strata, (&__pyx_v_numStrata), (&__pyx_v_istrata))); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_fields = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":72 + * cdef PetscInt numStrata = 0 + * fields = iarray_i(strata, &numStrata, &istrata) + * CHKERR( DMLabelAddStrata(self.dmlabel, numStrata, istrata) ) # <<<<<<<<<<<<<< + * + * def addStrataIS(self, IS iset): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelAddStrata(__pyx_v_self->dmlabel, __pyx_v_numStrata, __pyx_v_istrata)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":68 + * CHKERR( DMLabelAddStratum(self.dmlabel, cvalue) ) + * + * def addStrata(self, strata): # <<<<<<<<<<<<<< + * cdef PetscInt *istrata = NULL + * cdef PetscInt numStrata = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStrata", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_fields); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":74 + * CHKERR( DMLabelAddStrata(self.dmlabel, numStrata, istrata) ) + * + * def addStrataIS(self, IS iset): # <<<<<<<<<<<<<< + * CHKERR( DMLabelAddStrataIS(self.dmlabel, iset.iset) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_29addStrataIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_28addStrataIS[] = "DMLabel.addStrataIS(self, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_29addStrataIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addStrataIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_iset,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addStrataIS") < 0)) __PYX_ERR(60, 74, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_iset = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addStrataIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 74, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStrataIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(60, 74, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_28addStrataIS(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_28addStrataIS(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_iset) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addStrataIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":75 + * + * def addStrataIS(self, IS iset): + * CHKERR( DMLabelAddStrataIS(self.dmlabel, iset.iset) ) # <<<<<<<<<<<<<< + * + * def getNumValues(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelAddStrataIS(__pyx_v_self->dmlabel, __pyx_v_iset->iset)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 75, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":74 + * CHKERR( DMLabelAddStrata(self.dmlabel, numStrata, istrata) ) + * + * def addStrataIS(self, IS iset): # <<<<<<<<<<<<<< + * CHKERR( DMLabelAddStrataIS(self.dmlabel, iset.iset) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.addStrataIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":77 + * CHKERR( DMLabelAddStrataIS(self.dmlabel, iset.iset) ) + * + * def getNumValues(self): # <<<<<<<<<<<<<< + * cdef PetscInt numValues = 0 + * CHKERR( DMLabelGetNumValues(self.dmlabel, &numValues) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_31getNumValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_30getNumValues[] = "DMLabel.getNumValues(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_31getNumValues(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumValues (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumValues", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumValues", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_30getNumValues(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_30getNumValues(struct PyPetscDMLabelObject *__pyx_v_self) { + PetscInt __pyx_v_numValues; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumValues", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":78 + * + * def getNumValues(self): + * cdef PetscInt numValues = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetNumValues(self.dmlabel, &numValues) ) + * return toInt(numValues) + */ + __pyx_v_numValues = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":79 + * def getNumValues(self): + * cdef PetscInt numValues = 0 + * CHKERR( DMLabelGetNumValues(self.dmlabel, &numValues) ) # <<<<<<<<<<<<<< + * return toInt(numValues) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetNumValues(__pyx_v_self->dmlabel, (&__pyx_v_numValues))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 79, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":80 + * cdef PetscInt numValues = 0 + * CHKERR( DMLabelGetNumValues(self.dmlabel, &numValues) ) + * return toInt(numValues) # <<<<<<<<<<<<<< + * + * def getValueIS(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numValues); if (unlikely(!__pyx_t_2)) __PYX_ERR(60, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":77 + * CHKERR( DMLabelAddStrataIS(self.dmlabel, iset.iset) ) + * + * def getNumValues(self): # <<<<<<<<<<<<<< + * cdef PetscInt numValues = 0 + * CHKERR( DMLabelGetNumValues(self.dmlabel, &numValues) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getNumValues", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":82 + * return toInt(numValues) + * + * def getValueIS(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelGetValueIS(self.dmlabel, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_33getValueIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_32getValueIS[] = "DMLabel.getValueIS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_33getValueIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getValueIS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getValueIS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getValueIS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_32getValueIS(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_32getValueIS(struct PyPetscDMLabelObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getValueIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":83 + * + * def getValueIS(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetValueIS(self.dmlabel, &iset.iset) ) + * return iset + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":84 + * def getValueIS(self): + * cdef IS iset = IS() + * CHKERR( DMLabelGetValueIS(self.dmlabel, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetValueIS(__pyx_v_self->dmlabel, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 84, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":85 + * cdef IS iset = IS() + * CHKERR( DMLabelGetValueIS(self.dmlabel, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def stratumHasPoint(self, value, point): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":82 + * return toInt(numValues) + * + * def getValueIS(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelGetValueIS(self.dmlabel, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getValueIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":87 + * return iset + * + * def stratumHasPoint(self, value, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_35stratumHasPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_34stratumHasPoint[] = "DMLabel.stratumHasPoint(self, value, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_35stratumHasPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_value = 0; + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stratumHasPoint (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,&__pyx_n_s_point,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("stratumHasPoint", 1, 2, 2, 1); __PYX_ERR(60, 87, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "stratumHasPoint") < 0)) __PYX_ERR(60, 87, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_value = values[0]; + __pyx_v_point = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stratumHasPoint", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 87, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.stratumHasPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_34stratumHasPoint(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_value, __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_34stratumHasPoint(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscInt __pyx_v_cvalue; + PetscBool __pyx_v_ccontains; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stratumHasPoint", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":88 + * + * def stratumHasPoint(self, value, point): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool ccontains = PETSC_FALSE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 88, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":89 + * def stratumHasPoint(self, value, point): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef PetscBool ccontains = PETSC_FALSE + * CHKERR( DMLabelStratumHasPoint(self.dmlabel, cvalue, cpoint, &ccontains) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 89, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":90 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool ccontains = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMLabelStratumHasPoint(self.dmlabel, cvalue, cpoint, &ccontains) ) + * return toBool(ccontains) + */ + __pyx_v_ccontains = PETSC_FALSE; + + /* "petsc4py/PETSc/DMLabel.pyx":91 + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool ccontains = PETSC_FALSE + * CHKERR( DMLabelStratumHasPoint(self.dmlabel, cvalue, cpoint, &ccontains) ) # <<<<<<<<<<<<<< + * return toBool(ccontains) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelStratumHasPoint(__pyx_v_self->dmlabel, __pyx_v_cvalue, __pyx_v_cpoint, (&__pyx_v_ccontains))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 91, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":92 + * cdef PetscBool ccontains = PETSC_FALSE + * CHKERR( DMLabelStratumHasPoint(self.dmlabel, cvalue, cpoint, &ccontains) ) + * return toBool(ccontains) # <<<<<<<<<<<<<< + * + * def hasStratum(self, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_ccontains); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":87 + * return iset + * + * def stratumHasPoint(self, value, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscInt cvalue = asInt(value) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.stratumHasPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":94 + * return toBool(ccontains) + * + * def hasStratum(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_37hasStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_36hasStratum[] = "DMLabel.hasStratum(self, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_37hasStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasStratum") < 0)) __PYX_ERR(60, 94, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_value = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasStratum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 94, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_36hasStratum(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_36hasStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + PetscBool __pyx_v_cexists; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasStratum", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":95 + * + * def hasStratum(self, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasStratum(self.dmlabel, cvalue, &cexists) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 95, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":96 + * def hasStratum(self, value): + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMLabelHasStratum(self.dmlabel, cvalue, &cexists) ) + * return toBool(cexists) + */ + __pyx_v_cexists = PETSC_FALSE; + + /* "petsc4py/PETSc/DMLabel.pyx":97 + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasStratum(self.dmlabel, cvalue, &cexists) ) # <<<<<<<<<<<<<< + * return toBool(cexists) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelHasStratum(__pyx_v_self->dmlabel, __pyx_v_cvalue, (&__pyx_v_cexists))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":98 + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasStratum(self.dmlabel, cvalue, &cexists) ) + * return toBool(cexists) # <<<<<<<<<<<<<< + * + * def getStratumSize(self, stratum): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_cexists); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":94 + * return toBool(ccontains) + * + * def hasStratum(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":100 + * return toBool(cexists) + * + * def getStratumSize(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * cdef PetscInt csize = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_39getStratumSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_38getStratumSize[] = "DMLabel.getStratumSize(self, stratum)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_39getStratumSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stratum = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStratumSize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stratum,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stratum)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getStratumSize") < 0)) __PYX_ERR(60, 100, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stratum = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getStratumSize", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 100, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getStratumSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_38getStratumSize(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_stratum); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_38getStratumSize(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum) { + CYTHON_UNUSED PetscInt __pyx_v_cstratum; + PetscInt __pyx_v_csize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStratumSize", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":101 + * + * def getStratumSize(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) # <<<<<<<<<<<<<< + * cdef PetscInt csize = 0 + * CHKERR( DMLabelGetStratumSize(self.dmlabel, stratum, &csize) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stratum); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 101, __pyx_L1_error) + __pyx_v_cstratum = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":102 + * def getStratumSize(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) + * cdef PetscInt csize = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetStratumSize(self.dmlabel, stratum, &csize) ) + * return toInt(csize) + */ + __pyx_v_csize = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":103 + * cdef PetscInt cstratum = asInt(stratum) + * cdef PetscInt csize = 0 + * CHKERR( DMLabelGetStratumSize(self.dmlabel, stratum, &csize) ) # <<<<<<<<<<<<<< + * return toInt(csize) + * + */ + __pyx_t_1 = __Pyx_PyInt_As_PetscInt(__pyx_v_stratum); if (unlikely((__pyx_t_1 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(60, 103, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetStratumSize(__pyx_v_self->dmlabel, __pyx_t_1, (&__pyx_v_csize))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 103, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":104 + * cdef PetscInt csize = 0 + * CHKERR( DMLabelGetStratumSize(self.dmlabel, stratum, &csize) ) + * return toInt(csize) # <<<<<<<<<<<<<< + * + * def getStratumIS(self, stratum): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_csize); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":100 + * return toBool(cexists) + * + * def getStratumSize(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * cdef PetscInt csize = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getStratumSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":106 + * return toInt(csize) + * + * def getStratumIS(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * cdef IS iset = IS() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_41getStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_40getStratumIS[] = "DMLabel.getStratumIS(self, stratum)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_41getStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stratum = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getStratumIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stratum,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stratum)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getStratumIS") < 0)) __PYX_ERR(60, 106, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stratum = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getStratumIS", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 106, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_40getStratumIS(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_stratum); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_40getStratumIS(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum) { + PetscInt __pyx_v_cstratum; + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getStratumIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":107 + * + * def getStratumIS(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelGetStratumIS(self.dmlabel, cstratum, &iset.iset) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stratum); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 107, __pyx_L1_error) + __pyx_v_cstratum = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":108 + * def getStratumIS(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetStratumIS(self.dmlabel, cstratum, &iset.iset) ) + * return iset + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_2)) __PYX_ERR(60, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":109 + * cdef PetscInt cstratum = asInt(stratum) + * cdef IS iset = IS() + * CHKERR( DMLabelGetStratumIS(self.dmlabel, cstratum, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetStratumIS(__pyx_v_self->dmlabel, __pyx_v_cstratum, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":110 + * cdef IS iset = IS() + * CHKERR( DMLabelGetStratumIS(self.dmlabel, cstratum, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + * + * def setStratumIS(self, stratum, IS iset): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":106 + * return toInt(csize) + * + * def getStratumIS(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * cdef IS iset = IS() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":112 + * return iset + * + * def setStratumIS(self, stratum, IS iset): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_43setStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_42setStratumIS[] = "DMLabel.setStratumIS(self, stratum, IS iset)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_43setStratumIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stratum = 0; + struct PyPetscISObject *__pyx_v_iset = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setStratumIS (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stratum,&__pyx_n_s_iset,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stratum)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_iset)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setStratumIS", 1, 2, 2, 1); __PYX_ERR(60, 112, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setStratumIS") < 0)) __PYX_ERR(60, 112, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_stratum = values[0]; + __pyx_v_iset = ((struct PyPetscISObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setStratumIS", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 112, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_iset), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "iset", 0))) __PYX_ERR(60, 112, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_42setStratumIS(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_stratum, __pyx_v_iset); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_42setStratumIS(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum, struct PyPetscISObject *__pyx_v_iset) { + PetscInt __pyx_v_cstratum; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setStratumIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":113 + * + * def setStratumIS(self, stratum, IS iset): + * cdef PetscInt cstratum = asInt(stratum) # <<<<<<<<<<<<<< + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stratum); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 113, __pyx_L1_error) + __pyx_v_cstratum = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":114 + * def setStratumIS(self, stratum, IS iset): + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) # <<<<<<<<<<<<<< + * + * def clearStratum(self, stratum): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelSetStratumIS(__pyx_v_self->dmlabel, __pyx_v_cstratum, __pyx_v_iset->iset)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 114, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":112 + * return iset + * + * def setStratumIS(self, stratum, IS iset): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.setStratumIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":116 + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) + * + * def clearStratum(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_45clearStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_44clearStratum[] = "DMLabel.clearStratum(self, stratum)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_45clearStratum(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_stratum = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("clearStratum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_stratum,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_stratum)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "clearStratum") < 0)) __PYX_ERR(60, 116, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_stratum = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("clearStratum", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 116, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.clearStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_44clearStratum(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_stratum); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_44clearStratum(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_stratum) { + PetscInt __pyx_v_cstratum; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("clearStratum", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":117 + * + * def clearStratum(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) # <<<<<<<<<<<<<< + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_stratum); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 117, __pyx_L1_error) + __pyx_v_cstratum = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":118 + * def clearStratum(self, stratum): + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) # <<<<<<<<<<<<<< + * + * def computeIndex(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelClearStratum(__pyx_v_self->dmlabel, __pyx_v_cstratum)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":116 + * CHKERR( DMLabelSetStratumIS(self.dmlabel, cstratum, iset.iset) ) + * + * def clearStratum(self, stratum): # <<<<<<<<<<<<<< + * cdef PetscInt cstratum = asInt(stratum) + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.clearStratum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":120 + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) + * + * def computeIndex(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelComputeIndex(self.dmlabel) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_47computeIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_46computeIndex[] = "DMLabel.computeIndex(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_47computeIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("computeIndex (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("computeIndex", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "computeIndex", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_46computeIndex(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_46computeIndex(struct PyPetscDMLabelObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("computeIndex", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":121 + * + * def computeIndex(self): + * CHKERR( DMLabelComputeIndex(self.dmlabel) ) # <<<<<<<<<<<<<< + * + * def createIndex(self, pStart, pEnd): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelComputeIndex(__pyx_v_self->dmlabel)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":120 + * CHKERR( DMLabelClearStratum(self.dmlabel, cstratum) ) + * + * def computeIndex(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelComputeIndex(self.dmlabel) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.computeIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":123 + * CHKERR( DMLabelComputeIndex(self.dmlabel) ) + * + * def createIndex(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_49createIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_48createIndex[] = "DMLabel.createIndex(self, pStart, pEnd)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_49createIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_pStart = 0; + CYTHON_UNUSED PyObject *__pyx_v_pEnd = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createIndex (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pStart,&__pyx_n_s_pEnd,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pStart)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pEnd)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("createIndex", 1, 2, 2, 1); __PYX_ERR(60, 123, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createIndex") < 0)) __PYX_ERR(60, 123, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_pStart = values[0]; + __pyx_v_pEnd = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createIndex", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.createIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_48createIndex(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_pStart, __pyx_v_pEnd); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_48createIndex(struct PyPetscDMLabelObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_pStart, CYTHON_UNUSED PyObject *__pyx_v_pEnd) { + PetscInt __pyx_v_cpstart; + PetscInt __pyx_v_cpend; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createIndex", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":124 + * + * def createIndex(self, pStart, pEnd): + * cdef PetscInt cpstart = 0, cpend = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) + * + */ + __pyx_v_cpstart = 0; + __pyx_v_cpend = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":125 + * def createIndex(self, pStart, pEnd): + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) # <<<<<<<<<<<<<< + * + * def destroyIndex(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelCreateIndex(__pyx_v_self->dmlabel, __pyx_v_cpstart, __pyx_v_cpend)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 125, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":123 + * CHKERR( DMLabelComputeIndex(self.dmlabel) ) + * + * def createIndex(self, pStart, pEnd): # <<<<<<<<<<<<<< + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.createIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":127 + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) + * + * def destroyIndex(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelDestroyIndex(self.dmlabel) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_51destroyIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_50destroyIndex[] = "DMLabel.destroyIndex(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_51destroyIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroyIndex (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroyIndex", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroyIndex", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_50destroyIndex(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_50destroyIndex(struct PyPetscDMLabelObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroyIndex", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":128 + * + * def destroyIndex(self): + * CHKERR( DMLabelDestroyIndex(self.dmlabel) ) # <<<<<<<<<<<<<< + * + * def hasValue(self, value): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelDestroyIndex(__pyx_v_self->dmlabel)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":127 + * CHKERR( DMLabelCreateIndex(self.dmlabel, cpstart, cpend) ) + * + * def destroyIndex(self): # <<<<<<<<<<<<<< + * CHKERR( DMLabelDestroyIndex(self.dmlabel) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.destroyIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":130 + * CHKERR( DMLabelDestroyIndex(self.dmlabel) ) + * + * def hasValue(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_53hasValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_52hasValue[] = "DMLabel.hasValue(self, value)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_53hasValue(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_value = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasValue (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_value,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_value)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasValue") < 0)) __PYX_ERR(60, 130, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_value = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasValue", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 130, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_52hasValue(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_value); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_52hasValue(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_value) { + PetscInt __pyx_v_cvalue; + PetscBool __pyx_v_cexists; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasValue", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":131 + * + * def hasValue(self, value): + * cdef PetscInt cvalue = asInt(value) # <<<<<<<<<<<<<< + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasValue(self.dmlabel, cvalue, &cexists) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_value); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 131, __pyx_L1_error) + __pyx_v_cvalue = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":132 + * def hasValue(self, value): + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMLabelHasValue(self.dmlabel, cvalue, &cexists) ) + * return toBool(cexists) + */ + __pyx_v_cexists = PETSC_FALSE; + + /* "petsc4py/PETSc/DMLabel.pyx":133 + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasValue(self.dmlabel, cvalue, &cexists) ) # <<<<<<<<<<<<<< + * return toBool(cexists) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelHasValue(__pyx_v_self->dmlabel, __pyx_v_cvalue, (&__pyx_v_cexists))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 133, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":134 + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasValue(self.dmlabel, cvalue, &cexists) ) + * return toBool(cexists) # <<<<<<<<<<<<<< + * + * def hasPoint(self, point): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_cexists); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":130 + * CHKERR( DMLabelDestroyIndex(self.dmlabel) ) + * + * def hasValue(self, value): # <<<<<<<<<<<<<< + * cdef PetscInt cvalue = asInt(value) + * cdef PetscBool cexists = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasValue", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":136 + * return toBool(cexists) + * + * def hasPoint(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscBool cexists = PETSC_FALSE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_55hasPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_54hasPoint[] = "DMLabel.hasPoint(self, point)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_55hasPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_point = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("hasPoint (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_point,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_point)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "hasPoint") < 0)) __PYX_ERR(60, 136, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_point = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("hasPoint", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 136, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_54hasPoint(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_point); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_54hasPoint(struct PyPetscDMLabelObject *__pyx_v_self, PyObject *__pyx_v_point) { + PetscInt __pyx_v_cpoint; + PetscBool __pyx_v_cexists; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("hasPoint", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":137 + * + * def hasPoint(self, point): + * cdef PetscInt cpoint = asInt(point) # <<<<<<<<<<<<<< + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasPoint(self.dmlabel, cpoint, &cexists) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_point); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(60, 137, __pyx_L1_error) + __pyx_v_cpoint = __pyx_t_1; + + /* "petsc4py/PETSc/DMLabel.pyx":138 + * def hasPoint(self, point): + * cdef PetscInt cpoint = asInt(point) + * cdef PetscBool cexists = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( DMLabelHasPoint(self.dmlabel, cpoint, &cexists) ) + * return toBool(cexists) + */ + __pyx_v_cexists = PETSC_FALSE; + + /* "petsc4py/PETSc/DMLabel.pyx":139 + * cdef PetscInt cpoint = asInt(point) + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasPoint(self.dmlabel, cpoint, &cexists) ) # <<<<<<<<<<<<<< + * return toBool(cexists) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelHasPoint(__pyx_v_self->dmlabel, __pyx_v_cpoint, (&__pyx_v_cexists))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 139, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":140 + * cdef PetscBool cexists = PETSC_FALSE + * CHKERR( DMLabelHasPoint(self.dmlabel, cpoint, &cexists) ) + * return toBool(cexists) # <<<<<<<<<<<<<< + * + * def getBounds(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_cexists); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":136 + * return toBool(cexists) + * + * def hasPoint(self, point): # <<<<<<<<<<<<<< + * cdef PetscInt cpoint = asInt(point) + * cdef PetscBool cexists = PETSC_FALSE + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.hasPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":142 + * return toBool(cexists) + * + * def getBounds(self): # <<<<<<<<<<<<<< + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelGetBounds(self.dmlabel, &cpstart, &cpend) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_57getBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_56getBounds[] = "DMLabel.getBounds(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_57getBounds(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getBounds (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getBounds", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getBounds", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_56getBounds(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_56getBounds(struct PyPetscDMLabelObject *__pyx_v_self) { + PetscInt __pyx_v_cpstart; + PetscInt __pyx_v_cpend; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getBounds", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":143 + * + * def getBounds(self): + * cdef PetscInt cpstart = 0, cpend = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetBounds(self.dmlabel, &cpstart, &cpend) ) + * return toInt(cpstart), toInt(cpend) + */ + __pyx_v_cpstart = 0; + __pyx_v_cpend = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":144 + * def getBounds(self): + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelGetBounds(self.dmlabel, &cpstart, &cpend) ) # <<<<<<<<<<<<<< + * return toInt(cpstart), toInt(cpend) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetBounds(__pyx_v_self->dmlabel, (&__pyx_v_cpstart), (&__pyx_v_cpend))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 144, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":145 + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelGetBounds(self.dmlabel, &cpstart, &cpend) ) + * return toInt(cpstart), toInt(cpend) # <<<<<<<<<<<<<< + * + * def filter(self, start, end): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cpstart); if (unlikely(!__pyx_t_2)) __PYX_ERR(60, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cpend); if (unlikely(!__pyx_t_3)) __PYX_ERR(60, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(60, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":142 + * return toBool(cexists) + * + * def getBounds(self): # <<<<<<<<<<<<<< + * cdef PetscInt cpstart = 0, cpend = 0 + * CHKERR( DMLabelGetBounds(self.dmlabel, &cpstart, &cpend) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getBounds", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":147 + * return toInt(cpstart), toInt(cpend) + * + * def filter(self, start, end): # <<<<<<<<<<<<<< + * cdef PetscInt cstart = 0, cend = 0 + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_59filter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_58filter[] = "DMLabel.filter(self, start, end)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_59filter(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + CYTHON_UNUSED PyObject *__pyx_v_start = 0; + CYTHON_UNUSED PyObject *__pyx_v_end = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("filter (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_start,&__pyx_n_s_end,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_end)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("filter", 1, 2, 2, 1); __PYX_ERR(60, 147, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "filter") < 0)) __PYX_ERR(60, 147, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_start = values[0]; + __pyx_v_end = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("filter", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 147, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.filter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_58filter(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_start, __pyx_v_end); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_58filter(struct PyPetscDMLabelObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_start, CYTHON_UNUSED PyObject *__pyx_v_end) { + PetscInt __pyx_v_cstart; + PetscInt __pyx_v_cend; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("filter", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":148 + * + * def filter(self, start, end): + * cdef PetscInt cstart = 0, cend = 0 # <<<<<<<<<<<<<< + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) + * + */ + __pyx_v_cstart = 0; + __pyx_v_cend = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":149 + * def filter(self, start, end): + * cdef PetscInt cstart = 0, cend = 0 + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) # <<<<<<<<<<<<<< + * + * def permute(self, IS permutation): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelFilter(__pyx_v_self->dmlabel, __pyx_v_cstart, __pyx_v_cend)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 149, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":147 + * return toInt(cpstart), toInt(cpend) + * + * def filter(self, start, end): # <<<<<<<<<<<<<< + * cdef PetscInt cstart = 0, cend = 0 + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.filter", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":151 + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) + * + * def permute(self, IS permutation): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelPermute(self.dmlabel, permutation.iset, &new.dmlabel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_61permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_60permute[] = "DMLabel.permute(self, IS permutation)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_61permute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscISObject *__pyx_v_permutation = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("permute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_permutation,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_permutation)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "permute") < 0)) __PYX_ERR(60, 151, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_permutation = ((struct PyPetscISObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("permute", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 151, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_permutation), __pyx_ptype_8petsc4py_5PETSc_IS, 0, "permutation", 0))) __PYX_ERR(60, 151, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_60permute(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_permutation); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_60permute(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscISObject *__pyx_v_permutation) { + struct PyPetscDMLabelObject *__pyx_v_new = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("permute", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":152 + * + * def permute(self, IS permutation): + * cdef DMLabel new = DMLabel() # <<<<<<<<<<<<<< + * CHKERR( DMLabelPermute(self.dmlabel, permutation.iset, &new.dmlabel) ) + * return new + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_new = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":153 + * def permute(self, IS permutation): + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelPermute(self.dmlabel, permutation.iset, &new.dmlabel) ) # <<<<<<<<<<<<<< + * return new + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelPermute(__pyx_v_self->dmlabel, __pyx_v_permutation->iset, (&__pyx_v_new->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 153, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":154 + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelPermute(self.dmlabel, permutation.iset, &new.dmlabel) ) + * return new # <<<<<<<<<<<<<< + * + * def distribute(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_new)); + __pyx_r = ((PyObject *)__pyx_v_new); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":151 + * CHKERR( DMLabelFilter(self.dmlabel, cstart, cend) ) + * + * def permute(self, IS permutation): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelPermute(self.dmlabel, permutation.iset, &new.dmlabel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.permute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_new); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":156 + * return new + * + * def distribute(self, SF sf): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDistribute(self.dmlabel, sf.sf, &new.dmlabel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_63distribute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_62distribute[] = "DMLabel.distribute(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_63distribute(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("distribute (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distribute") < 0)) __PYX_ERR(60, 156, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("distribute", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 156, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.distribute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(60, 156, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_62distribute(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_62distribute(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + struct PyPetscDMLabelObject *__pyx_v_new = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("distribute", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":157 + * + * def distribute(self, SF sf): + * cdef DMLabel new = DMLabel() # <<<<<<<<<<<<<< + * CHKERR( DMLabelDistribute(self.dmlabel, sf.sf, &new.dmlabel) ) + * return new + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_new = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":158 + * def distribute(self, SF sf): + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDistribute(self.dmlabel, sf.sf, &new.dmlabel) ) # <<<<<<<<<<<<<< + * return new + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelDistribute(__pyx_v_self->dmlabel, __pyx_v_sf->sf, (&__pyx_v_new->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 158, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":159 + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDistribute(self.dmlabel, sf.sf, &new.dmlabel) ) + * return new # <<<<<<<<<<<<<< + * + * def gather(self, SF sf): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_new)); + __pyx_r = ((PyObject *)__pyx_v_new); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":156 + * return new + * + * def distribute(self, SF sf): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelDistribute(self.dmlabel, sf.sf, &new.dmlabel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.distribute", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_new); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":161 + * return new + * + * def gather(self, SF sf): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelGather(self.dmlabel, sf.sf, &new.dmlabel) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_65gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_64gather[] = "DMLabel.gather(self, SF sf)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_65gather(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscSFObject *__pyx_v_sf = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("gather (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_sf,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sf)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "gather") < 0)) __PYX_ERR(60, 161, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_sf = ((struct PyPetscSFObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("gather", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(60, 161, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.gather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_sf), __pyx_ptype_8petsc4py_5PETSc_SF, 0, "sf", 0))) __PYX_ERR(60, 161, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_64gather(((struct PyPetscDMLabelObject *)__pyx_v_self), __pyx_v_sf); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_64gather(struct PyPetscDMLabelObject *__pyx_v_self, struct PyPetscSFObject *__pyx_v_sf) { + struct PyPetscDMLabelObject *__pyx_v_new = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("gather", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":162 + * + * def gather(self, SF sf): + * cdef DMLabel new = DMLabel() # <<<<<<<<<<<<<< + * CHKERR( DMLabelGather(self.dmlabel, sf.sf, &new.dmlabel) ) + * return new + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_new = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":163 + * def gather(self, SF sf): + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelGather(self.dmlabel, sf.sf, &new.dmlabel) ) # <<<<<<<<<<<<<< + * return new + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGather(__pyx_v_self->dmlabel, __pyx_v_sf->sf, (&__pyx_v_new->dmlabel))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":164 + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelGather(self.dmlabel, sf.sf, &new.dmlabel) ) + * return new # <<<<<<<<<<<<<< + * + * def convertToSection(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_new)); + __pyx_r = ((PyObject *)__pyx_v_new); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":161 + * return new + * + * def gather(self, SF sf): # <<<<<<<<<<<<<< + * cdef DMLabel new = DMLabel() + * CHKERR( DMLabelGather(self.dmlabel, sf.sf, &new.dmlabel) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.gather", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_new); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":166 + * return new + * + * def convertToSection(self): # <<<<<<<<<<<<<< + * cdef Section section = Section() + * cdef IS iset = IS() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_67convertToSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_66convertToSection[] = "DMLabel.convertToSection(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_67convertToSection(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("convertToSection (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("convertToSection", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "convertToSection", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_66convertToSection(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_66convertToSection(struct PyPetscDMLabelObject *__pyx_v_self) { + struct PyPetscSectionObject *__pyx_v_section = 0; + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convertToSection", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":167 + * + * def convertToSection(self): + * cdef Section section = Section() # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelConvertToSection(self.dmlabel, §ion.sec, &iset.iset) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_section = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":168 + * def convertToSection(self): + * cdef Section section = Section() + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMLabelConvertToSection(self.dmlabel, §ion.sec, &iset.iset) ) + * return section, iset + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":169 + * cdef Section section = Section() + * cdef IS iset = IS() + * CHKERR( DMLabelConvertToSection(self.dmlabel, §ion.sec, &iset.iset) ) # <<<<<<<<<<<<<< + * return section, iset + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelConvertToSection(__pyx_v_self->dmlabel, (&__pyx_v_section->sec), (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 169, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":170 + * cdef IS iset = IS() + * CHKERR( DMLabelConvertToSection(self.dmlabel, §ion.sec, &iset.iset) ) + * return section, iset # <<<<<<<<<<<<<< + * + * def getNonEmptyStratumValuesIS(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_section)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_section)); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_section)); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_iset)); + PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_iset)); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":166 + * return new + * + * def convertToSection(self): # <<<<<<<<<<<<<< + * cdef Section section = Section() + * cdef IS iset = IS() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.convertToSection", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_section); + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMLabel.pyx":172 + * return section, iset + * + * def getNonEmptyStratumValuesIS(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelGetNonEmptyStratumValuesIS(self.dmlabel, &iset.iset) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_69getNonEmptyStratumValuesIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMLabel_68getNonEmptyStratumValuesIS[] = "DMLabel.getNonEmptyStratumValuesIS(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMLabel_69getNonEmptyStratumValuesIS(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNonEmptyStratumValuesIS (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNonEmptyStratumValuesIS", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNonEmptyStratumValuesIS", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMLabel_68getNonEmptyStratumValuesIS(((struct PyPetscDMLabelObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMLabel_68getNonEmptyStratumValuesIS(struct PyPetscDMLabelObject *__pyx_v_self) { + struct PyPetscISObject *__pyx_v_iset = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNonEmptyStratumValuesIS", 0); + + /* "petsc4py/PETSc/DMLabel.pyx":173 + * + * def getNonEmptyStratumValuesIS(self): + * cdef IS iset = IS() # <<<<<<<<<<<<<< + * CHKERR( DMLabelGetNonEmptyStratumValuesIS(self.dmlabel, &iset.iset) ) + * return iset + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(60, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_iset = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMLabel.pyx":174 + * def getNonEmptyStratumValuesIS(self): + * cdef IS iset = IS() + * CHKERR( DMLabelGetNonEmptyStratumValuesIS(self.dmlabel, &iset.iset) ) # <<<<<<<<<<<<<< + * return iset + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMLabelGetNonEmptyStratumValuesIS(__pyx_v_self->dmlabel, (&__pyx_v_iset->iset))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(60, 174, __pyx_L1_error) + + /* "petsc4py/PETSc/DMLabel.pyx":175 + * cdef IS iset = IS() + * CHKERR( DMLabelGetNonEmptyStratumValuesIS(self.dmlabel, &iset.iset) ) + * return iset # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_iset)); + __pyx_r = ((PyObject *)__pyx_v_iset); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMLabel.pyx":172 + * return section, iset + * + * def getNonEmptyStratumValuesIS(self): # <<<<<<<<<<<<<< + * cdef IS iset = IS() + * CHKERR( DMLabelGetNonEmptyStratumValuesIS(self.dmlabel, &iset.iset) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMLabel.getNonEmptyStratumValuesIS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_iset); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":32 + * PICLayoutType = DMSwarmPICLayoutType + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_create[] = "DMSwarm.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_1create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(61, 32, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 32, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_create(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_create(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DM __pyx_v_newdm; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":33 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(61, 33, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":34 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":35 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dm = newdm + * CHKERR( DMSetType(self.dm, DMSWARM) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMCreate(__pyx_v_ccomm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 35, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":36 + * cdef PetscDM newdm = NULL + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm # <<<<<<<<<<<<<< + * CHKERR( DMSetType(self.dm, DMSWARM) ) + * return self + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.__pyx_base.obj)); + __pyx_v_self->__pyx_base.dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMSwarm.pyx":37 + * CHKERR( DMCreate(ccomm, &newdm) ) + * PetscCLEAR(self.obj); self.dm = newdm + * CHKERR( DMSetType(self.dm, DMSWARM) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSetType(__pyx_v_self->__pyx_base.dm, DMSWARM)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 37, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":38 + * PetscCLEAR(self.obj); self.dm = newdm + * CHKERR( DMSetType(self.dm, DMSWARM) ) + * return self # <<<<<<<<<<<<<< + * + * def createGlobalVectorFromField(self, fieldname): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":32 + * PICLayoutType = DMSwarmPICLayoutType + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDM newdm = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":40 + * return self + * + * def createGlobalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef Vec vg = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_3createGlobalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_2createGlobalVectorFromField[] = "DMSwarm.createGlobalVectorFromField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_3createGlobalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createGlobalVectorFromField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createGlobalVectorFromField") < 0)) __PYX_ERR(61, 40, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createGlobalVectorFromField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 40, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.createGlobalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_2createGlobalVectorFromField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_2createGlobalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + struct PyPetscVecObject *__pyx_v_vg = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createGlobalVectorFromField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":41 + * + * def createGlobalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef Vec vg = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":42 + * def createGlobalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL + * cdef Vec vg = Vec() # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateGlobalVectorFromField(self.dm, cfieldname, &vg.vec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vg = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":43 + * cdef const char *cfieldname = NULL + * cdef Vec vg = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCreateGlobalVectorFromField(self.dm, cfieldname, &vg.vec) ) + * return vg + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":44 + * cdef Vec vg = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateGlobalVectorFromField(self.dm, cfieldname, &vg.vec) ) # <<<<<<<<<<<<<< + * return vg + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmCreateGlobalVectorFromField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_vg->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 44, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":45 + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateGlobalVectorFromField(self.dm, cfieldname, &vg.vec) ) + * return vg # <<<<<<<<<<<<<< + * + * def destroyGlobalVectorFromField(self, fieldname): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vg)); + __pyx_r = ((PyObject *)__pyx_v_vg); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":40 + * return self + * + * def createGlobalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef Vec vg = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.createGlobalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vg); + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":47 + * return vg + * + * def destroyGlobalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscVec vec = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_5destroyGlobalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_4destroyGlobalVectorFromField[] = "DMSwarm.destroyGlobalVectorFromField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_5destroyGlobalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroyGlobalVectorFromField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "destroyGlobalVectorFromField") < 0)) __PYX_ERR(61, 47, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("destroyGlobalVectorFromField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 47, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.destroyGlobalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_4destroyGlobalVectorFromField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_4destroyGlobalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + Vec __pyx_v_vec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroyGlobalVectorFromField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":48 + * + * def destroyGlobalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef PetscVec vec = NULL + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":49 + * def destroyGlobalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL + * cdef PetscVec vec = NULL # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmDestroyGlobalVectorFromField(self.dm, cfieldname, &vec) ) + */ + __pyx_v_vec = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":50 + * cdef const char *cfieldname = NULL + * cdef PetscVec vec = NULL + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmDestroyGlobalVectorFromField(self.dm, cfieldname, &vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":51 + * cdef PetscVec vec = NULL + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmDestroyGlobalVectorFromField(self.dm, cfieldname, &vec) ) # <<<<<<<<<<<<<< + * + * def createLocalVectorFromField(self, fieldname): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmDestroyGlobalVectorFromField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 51, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":47 + * return vg + * + * def destroyGlobalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscVec vec = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.destroyGlobalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":53 + * CHKERR( DMSwarmDestroyGlobalVectorFromField(self.dm, cfieldname, &vec) ) + * + * def createLocalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef Vec vl = Vec() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_7createLocalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_6createLocalVectorFromField[] = "DMSwarm.createLocalVectorFromField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_7createLocalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("createLocalVectorFromField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "createLocalVectorFromField") < 0)) __PYX_ERR(61, 53, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("createLocalVectorFromField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 53, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.createLocalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_6createLocalVectorFromField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_6createLocalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + struct PyPetscVecObject *__pyx_v_vl = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createLocalVectorFromField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":54 + * + * def createLocalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef Vec vl = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":55 + * def createLocalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL + * cdef Vec vl = Vec() # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateLocalVectorFromField(self.dm, cfieldname, &vl.vec) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vl = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":56 + * cdef const char *cfieldname = NULL + * cdef Vec vl = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCreateLocalVectorFromField(self.dm, cfieldname, &vl.vec) ) + * return vl + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":57 + * cdef Vec vl = Vec() + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateLocalVectorFromField(self.dm, cfieldname, &vl.vec) ) # <<<<<<<<<<<<<< + * return vl + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmCreateLocalVectorFromField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_vl->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 57, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":58 + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmCreateLocalVectorFromField(self.dm, cfieldname, &vl.vec) ) + * return vl # <<<<<<<<<<<<<< + * + * def destroyLocalVectorFromField(self, fieldname): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vl)); + __pyx_r = ((PyObject *)__pyx_v_vl); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":53 + * CHKERR( DMSwarmDestroyGlobalVectorFromField(self.dm, cfieldname, &vec) ) + * + * def createLocalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef Vec vl = Vec() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.createLocalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vl); + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":60 + * return vl + * + * def destroyLocalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscVec vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_9destroyLocalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_8destroyLocalVectorFromField[] = "DMSwarm.destroyLocalVectorFromField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_9destroyLocalVectorFromField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroyLocalVectorFromField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "destroyLocalVectorFromField") < 0)) __PYX_ERR(61, 60, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("destroyLocalVectorFromField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 60, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.destroyLocalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_8destroyLocalVectorFromField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_8destroyLocalVectorFromField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + Vec __pyx_v_vec; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroyLocalVectorFromField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":61 + * + * def destroyLocalVectorFromField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef PetscVec vec + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":63 + * cdef const char *cfieldname = NULL + * cdef PetscVec vec + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmDestroyLocalVectorFromField(self.dm, cfieldname, &vec) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":64 + * cdef PetscVec vec + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmDestroyLocalVectorFromField(self.dm, cfieldname, &vec) ) # <<<<<<<<<<<<<< + * + * def initializeFieldRegister(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmDestroyLocalVectorFromField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":60 + * return vl + * + * def destroyLocalVectorFromField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscVec vec + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.destroyLocalVectorFromField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":66 + * CHKERR( DMSwarmDestroyLocalVectorFromField(self.dm, cfieldname, &vec) ) + * + * def initializeFieldRegister(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmInitializeFieldRegister(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_11initializeFieldRegister(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_10initializeFieldRegister[] = "DMSwarm.initializeFieldRegister(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_11initializeFieldRegister(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("initializeFieldRegister (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("initializeFieldRegister", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "initializeFieldRegister", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_10initializeFieldRegister(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_10initializeFieldRegister(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("initializeFieldRegister", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":67 + * + * def initializeFieldRegister(self): + * CHKERR( DMSwarmInitializeFieldRegister(self.dm) ) # <<<<<<<<<<<<<< + * + * def finalizeFieldRegister(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmInitializeFieldRegister(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 67, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":66 + * CHKERR( DMSwarmDestroyLocalVectorFromField(self.dm, cfieldname, &vec) ) + * + * def initializeFieldRegister(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmInitializeFieldRegister(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.initializeFieldRegister", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":69 + * CHKERR( DMSwarmInitializeFieldRegister(self.dm) ) + * + * def finalizeFieldRegister(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmFinalizeFieldRegister(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_13finalizeFieldRegister(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_12finalizeFieldRegister[] = "DMSwarm.finalizeFieldRegister(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_13finalizeFieldRegister(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("finalizeFieldRegister (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("finalizeFieldRegister", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "finalizeFieldRegister", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_12finalizeFieldRegister(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_12finalizeFieldRegister(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("finalizeFieldRegister", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":70 + * + * def finalizeFieldRegister(self): + * CHKERR( DMSwarmFinalizeFieldRegister(self.dm) ) # <<<<<<<<<<<<<< + * + * def setLocalSizes(self, nlocal, buffer): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmFinalizeFieldRegister(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 70, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":69 + * CHKERR( DMSwarmInitializeFieldRegister(self.dm) ) + * + * def finalizeFieldRegister(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmFinalizeFieldRegister(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.finalizeFieldRegister", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":72 + * CHKERR( DMSwarmFinalizeFieldRegister(self.dm) ) + * + * def setLocalSizes(self, nlocal, buffer): # <<<<<<<<<<<<<< + * cdef PetscInt cnlocal = asInt(nlocal) + * cdef PetscInt cbuffer = asInt(buffer) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_15setLocalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_14setLocalSizes[] = "DMSwarm.setLocalSizes(self, nlocal, buffer)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_15setLocalSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nlocal = 0; + PyObject *__pyx_v_buffer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLocalSizes (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nlocal,&__pyx_n_s_buffer,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nlocal)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_buffer)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setLocalSizes", 1, 2, 2, 1); __PYX_ERR(61, 72, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLocalSizes") < 0)) __PYX_ERR(61, 72, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_nlocal = values[0]; + __pyx_v_buffer = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLocalSizes", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 72, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setLocalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_14setLocalSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_nlocal, __pyx_v_buffer); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_14setLocalSizes(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_nlocal, PyObject *__pyx_v_buffer) { + PetscInt __pyx_v_cnlocal; + PetscInt __pyx_v_cbuffer; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLocalSizes", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":73 + * + * def setLocalSizes(self, nlocal, buffer): + * cdef PetscInt cnlocal = asInt(nlocal) # <<<<<<<<<<<<<< + * cdef PetscInt cbuffer = asInt(buffer) + * CHKERR( DMSwarmSetLocalSizes(self.dm, cnlocal, cbuffer) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nlocal); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 73, __pyx_L1_error) + __pyx_v_cnlocal = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":74 + * def setLocalSizes(self, nlocal, buffer): + * cdef PetscInt cnlocal = asInt(nlocal) + * cdef PetscInt cbuffer = asInt(buffer) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetLocalSizes(self.dm, cnlocal, cbuffer) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_buffer); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 74, __pyx_L1_error) + __pyx_v_cbuffer = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":75 + * cdef PetscInt cnlocal = asInt(nlocal) + * cdef PetscInt cbuffer = asInt(buffer) + * CHKERR( DMSwarmSetLocalSizes(self.dm, cnlocal, cbuffer) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetLocalSizes(__pyx_v_self->__pyx_base.dm, __pyx_v_cnlocal, __pyx_v_cbuffer)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 75, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":76 + * cdef PetscInt cbuffer = asInt(buffer) + * CHKERR( DMSwarmSetLocalSizes(self.dm, cnlocal, cbuffer) ) + * return self # <<<<<<<<<<<<<< + * + * def registerField(self, fieldname, blocksize, dtype=ScalarType): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":72 + * CHKERR( DMSwarmFinalizeFieldRegister(self.dm) ) + * + * def setLocalSizes(self, nlocal, buffer): # <<<<<<<<<<<<<< + * cdef PetscInt cnlocal = asInt(nlocal) + * cdef PetscInt cbuffer = asInt(buffer) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setLocalSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":78 + * return self + * + * def registerField(self, fieldname, blocksize, dtype=ScalarType): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt cblocksize = asInt(blocksize) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_17registerField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_16registerField[] = "DMSwarm.registerField(self, fieldname, blocksize, dtype=ScalarType)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_17registerField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + PyObject *__pyx_v_blocksize = 0; + PyObject *__pyx_v_dtype = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("registerField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,&__pyx_n_s_blocksize,&__pyx_n_s_dtype,0}; + PyObject* values[3] = {0,0,0}; + values[2] = __pyx_k__55; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_blocksize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("registerField", 0, 2, 3, 1); __PYX_ERR(61, 78, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "registerField") < 0)) __PYX_ERR(61, 78, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_fieldname = values[0]; + __pyx_v_blocksize = values[1]; + __pyx_v_dtype = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("registerField", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 78, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.registerField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_16registerField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname, __pyx_v_blocksize, __pyx_v_dtype); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_16registerField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname, PyObject *__pyx_v_blocksize, PyObject *__pyx_v_dtype) { + char const *__pyx_v_cfieldname; + PetscInt __pyx_v_cblocksize; + PetscDataType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("registerField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":79 + * + * def registerField(self, fieldname, blocksize, dtype=ScalarType): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cblocksize = asInt(blocksize) + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":80 + * def registerField(self, fieldname, blocksize, dtype=ScalarType): + * cdef const char *cfieldname = NULL + * cdef PetscInt cblocksize = asInt(blocksize) # <<<<<<<<<<<<<< + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * if dtype == IntType: ctype = PETSC_INT + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_blocksize); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 80, __pyx_L1_error) + __pyx_v_cblocksize = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":81 + * cdef const char *cfieldname = NULL + * cdef PetscInt cblocksize = asInt(blocksize) + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN # <<<<<<<<<<<<<< + * if dtype == IntType: ctype = PETSC_INT + * if dtype == RealType: ctype = PETSC_REAL + */ + __pyx_v_ctype = PETSC_DATATYPE_UNKNOWN; + + /* "petsc4py/PETSc/DMSwarm.pyx":82 + * cdef PetscInt cblocksize = asInt(blocksize) + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * if dtype == IntType: ctype = PETSC_INT # <<<<<<<<<<<<<< + * if dtype == RealType: ctype = PETSC_REAL + * if dtype == ScalarType: ctype = PETSC_SCALAR + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_IntType); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(61, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_4) { + __pyx_v_ctype = PETSC_INT; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":83 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * if dtype == IntType: ctype = PETSC_INT + * if dtype == RealType: ctype = PETSC_REAL # <<<<<<<<<<<<<< + * if dtype == ScalarType: ctype = PETSC_SCALAR + * if dtype == ComplexType: ctype = PETSC_COMPLEX + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_RealType); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(61, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_4) { + __pyx_v_ctype = PETSC_REAL; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":84 + * if dtype == IntType: ctype = PETSC_INT + * if dtype == RealType: ctype = PETSC_REAL + * if dtype == ScalarType: ctype = PETSC_SCALAR # <<<<<<<<<<<<<< + * if dtype == ComplexType: ctype = PETSC_COMPLEX + * assert ctype != PETSC_DATATYPE_UNKNOWN + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ScalarType); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(61, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__pyx_t_4) { + __pyx_v_ctype = PETSC_SCALAR; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":85 + * if dtype == RealType: ctype = PETSC_REAL + * if dtype == ScalarType: ctype = PETSC_SCALAR + * if dtype == ComplexType: ctype = PETSC_COMPLEX # <<<<<<<<<<<<<< + * assert ctype != PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ComplexType); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyObject_RichCompare(__pyx_v_dtype, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(61, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_4) { + __pyx_v_ctype = PETSC_COMPLEX; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":86 + * if dtype == ScalarType: ctype = PETSC_SCALAR + * if dtype == ComplexType: ctype = PETSC_COMPLEX + * assert ctype != PETSC_DATATYPE_UNKNOWN # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmRegisterPetscDatatypeField(self.dm, cfieldname, cblocksize, ctype) ) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_ctype != PETSC_DATATYPE_UNKNOWN) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(61, 86, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMSwarm.pyx":87 + * if dtype == ComplexType: ctype = PETSC_COMPLEX + * assert ctype != PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmRegisterPetscDatatypeField(self.dm, cfieldname, cblocksize, ctype) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":88 + * assert ctype != PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmRegisterPetscDatatypeField(self.dm, cfieldname, cblocksize, ctype) ) # <<<<<<<<<<<<<< + * + * def getField(self, fieldname): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmRegisterPetscDatatypeField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, __pyx_v_cblocksize, __pyx_v_ctype)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 88, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":78 + * return self + * + * def registerField(self, fieldname, blocksize, dtype=ScalarType): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt cblocksize = asInt(blocksize) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.registerField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":90 + * CHKERR( DMSwarmRegisterPetscDatatypeField(self.dm, cfieldname, cblocksize, ctype) ) + * + * def getField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_19getField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_18getField[] = "DMSwarm.getField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_19getField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getField") < 0)) __PYX_ERR(61, 90, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 90, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.getField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_18getField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_18getField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + PetscInt __pyx_v_blocksize; + PetscDataType __pyx_v_ctype; + PetscReal *__pyx_v_data; + PetscInt __pyx_v_nlocal; + int __pyx_v_typenum; + npy_intp __pyx_v_s; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":91 + * + * def getField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":92 + * def getField(self, fieldname): + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 # <<<<<<<<<<<<<< + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * cdef PetscReal *data = NULL + */ + __pyx_v_blocksize = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":93 + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN # <<<<<<<<<<<<<< + * cdef PetscReal *data = NULL + * cdef PetscInt nlocal = 0 + */ + __pyx_v_ctype = PETSC_DATATYPE_UNKNOWN; + + /* "petsc4py/PETSc/DMSwarm.pyx":94 + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * cdef PetscReal *data = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nlocal = 0 + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_data = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":95 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * cdef PetscReal *data = NULL + * cdef PetscInt nlocal = 0 # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmGetField(self.dm, cfieldname, &blocksize, &ctype, &data) ) + */ + __pyx_v_nlocal = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":96 + * cdef PetscReal *data = NULL + * cdef PetscInt nlocal = 0 + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmGetField(self.dm, cfieldname, &blocksize, &ctype, &data) ) + * CHKERR( DMSwarmGetLocalSize(self.dm, &nlocal) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":97 + * cdef PetscInt nlocal = 0 + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmGetField(self.dm, cfieldname, &blocksize, &ctype, &data) ) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmGetLocalSize(self.dm, &nlocal) ) + * cdef int typenum = -1 + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmGetField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_blocksize), (&__pyx_v_ctype), ((void **)(&__pyx_v_data)))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":98 + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmGetField(self.dm, cfieldname, &blocksize, &ctype, &data) ) + * CHKERR( DMSwarmGetLocalSize(self.dm, &nlocal) ) # <<<<<<<<<<<<<< + * cdef int typenum = -1 + * if ctype == PETSC_INT: typenum = NPY_PETSC_INT + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmGetLocalSize(__pyx_v_self->__pyx_base.dm, (&__pyx_v_nlocal))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 98, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":99 + * CHKERR( DMSwarmGetField(self.dm, cfieldname, &blocksize, &ctype, &data) ) + * CHKERR( DMSwarmGetLocalSize(self.dm, &nlocal) ) + * cdef int typenum = -1 # <<<<<<<<<<<<<< + * if ctype == PETSC_INT: typenum = NPY_PETSC_INT + * if ctype == PETSC_REAL: typenum = NPY_PETSC_REAL + */ + __pyx_v_typenum = -1; + + /* "petsc4py/PETSc/DMSwarm.pyx":100 + * CHKERR( DMSwarmGetLocalSize(self.dm, &nlocal) ) + * cdef int typenum = -1 + * if ctype == PETSC_INT: typenum = NPY_PETSC_INT # <<<<<<<<<<<<<< + * if ctype == PETSC_REAL: typenum = NPY_PETSC_REAL + * if ctype == PETSC_SCALAR: typenum = NPY_PETSC_SCALAR + */ + __pyx_t_3 = ((__pyx_v_ctype == PETSC_INT) != 0); + if (__pyx_t_3) { + __pyx_v_typenum = NPY_PETSC_INT; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":101 + * cdef int typenum = -1 + * if ctype == PETSC_INT: typenum = NPY_PETSC_INT + * if ctype == PETSC_REAL: typenum = NPY_PETSC_REAL # <<<<<<<<<<<<<< + * if ctype == PETSC_SCALAR: typenum = NPY_PETSC_SCALAR + * if ctype == PETSC_COMPLEX: typenum = NPY_PETSC_COMPLEX + */ + __pyx_t_3 = ((__pyx_v_ctype == PETSC_REAL) != 0); + if (__pyx_t_3) { + __pyx_v_typenum = NPY_PETSC_REAL; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":102 + * if ctype == PETSC_INT: typenum = NPY_PETSC_INT + * if ctype == PETSC_REAL: typenum = NPY_PETSC_REAL + * if ctype == PETSC_SCALAR: typenum = NPY_PETSC_SCALAR # <<<<<<<<<<<<<< + * if ctype == PETSC_COMPLEX: typenum = NPY_PETSC_COMPLEX + * assert typenum != -1 + */ + __pyx_t_3 = ((__pyx_v_ctype == PETSC_SCALAR) != 0); + if (__pyx_t_3) { + __pyx_v_typenum = NPY_PETSC_SCALAR; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":103 + * if ctype == PETSC_REAL: typenum = NPY_PETSC_REAL + * if ctype == PETSC_SCALAR: typenum = NPY_PETSC_SCALAR + * if ctype == PETSC_COMPLEX: typenum = NPY_PETSC_COMPLEX # <<<<<<<<<<<<<< + * assert typenum != -1 + * cdef npy_intp s = nlocal * blocksize + */ + __pyx_t_3 = ((__pyx_v_ctype == PETSC_COMPLEX) != 0); + if (__pyx_t_3) { + __pyx_v_typenum = NPY_PETSC_COMPLEX; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":104 + * if ctype == PETSC_SCALAR: typenum = NPY_PETSC_SCALAR + * if ctype == PETSC_COMPLEX: typenum = NPY_PETSC_COMPLEX + * assert typenum != -1 # <<<<<<<<<<<<<< + * cdef npy_intp s = nlocal * blocksize + * return PyArray_SimpleNewFromData(1, &s, typenum, data) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_typenum != -1L) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(61, 104, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/DMSwarm.pyx":105 + * if ctype == PETSC_COMPLEX: typenum = NPY_PETSC_COMPLEX + * assert typenum != -1 + * cdef npy_intp s = nlocal * blocksize # <<<<<<<<<<<<<< + * return PyArray_SimpleNewFromData(1, &s, typenum, data) + * + */ + __pyx_v_s = (((npy_intp)__pyx_v_nlocal) * __pyx_v_blocksize); + + /* "petsc4py/PETSc/DMSwarm.pyx":106 + * assert typenum != -1 + * cdef npy_intp s = nlocal * blocksize + * return PyArray_SimpleNewFromData(1, &s, typenum, data) # <<<<<<<<<<<<<< + * + * def restoreField(self, fieldname): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((PyObject *)PyArray_SimpleNewFromData(1, (&__pyx_v_s), __pyx_v_typenum, __pyx_v_data)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_t_1)); + __pyx_r = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":90 + * CHKERR( DMSwarmRegisterPetscDatatypeField(self.dm, cfieldname, cblocksize, ctype) ) + * + * def getField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.getField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":108 + * return PyArray_SimpleNewFromData(1, &s, typenum, data) + * + * def restoreField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_21restoreField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_20restoreField[] = "DMSwarm.restoreField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_21restoreField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreField") < 0)) __PYX_ERR(61, 108, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 108, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.restoreField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_20restoreField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_20restoreField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cfieldname; + PetscInt __pyx_v_blocksize; + PetscDataType __pyx_v_ctype; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":109 + * + * def restoreField(self, fieldname): + * cdef const char *cfieldname = NULL # <<<<<<<<<<<<<< + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + */ + __pyx_v_cfieldname = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":110 + * def restoreField(self, fieldname): + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 # <<<<<<<<<<<<<< + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) + */ + __pyx_v_blocksize = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":111 + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmRestoreField(self.dm, cfieldname, &blocksize, &ctype, 0) ) + */ + __pyx_v_ctype = PETSC_DATATYPE_UNKNOWN; + + /* "petsc4py/PETSc/DMSwarm.pyx":112 + * cdef PetscInt blocksize = 0 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmRestoreField(self.dm, cfieldname, &blocksize, &ctype, 0) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cfieldname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":113 + * cdef PetscDataType ctype = PETSC_DATATYPE_UNKNOWN + * fieldname = str2bytes(fieldname, &cfieldname) + * CHKERR( DMSwarmRestoreField(self.dm, cfieldname, &blocksize, &ctype, 0) ) # <<<<<<<<<<<<<< + * + * def vectorDefineField(self, fieldname): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmRestoreField(__pyx_v_self->__pyx_base.dm, __pyx_v_cfieldname, (&__pyx_v_blocksize), (&__pyx_v_ctype), ((void **)0))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 113, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":108 + * return PyArray_SimpleNewFromData(1, &s, typenum, data) + * + * def restoreField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt blocksize = 0 + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.restoreField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":115 + * CHKERR( DMSwarmRestoreField(self.dm, cfieldname, &blocksize, &ctype, 0) ) + * + * def vectorDefineField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * fieldname = str2bytes(fieldname, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_23vectorDefineField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_22vectorDefineField[] = "DMSwarm.vectorDefineField(self, fieldname)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_23vectorDefineField(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldname = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("vectorDefineField (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldname,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldname)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "vectorDefineField") < 0)) __PYX_ERR(61, 115, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_fieldname = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("vectorDefineField", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 115, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.vectorDefineField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_22vectorDefineField(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldname); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_22vectorDefineField(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldname) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("vectorDefineField", 0); + __Pyx_INCREF(__pyx_v_fieldname); + + /* "petsc4py/PETSc/DMSwarm.pyx":116 + * + * def vectorDefineField(self, fieldname): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * fieldname = str2bytes(fieldname, &cval) + * CHKERR( DMSwarmVectorDefineField(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":117 + * def vectorDefineField(self, fieldname): + * cdef const char *cval = NULL + * fieldname = str2bytes(fieldname, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmVectorDefineField(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_fieldname, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_fieldname, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":118 + * cdef const char *cval = NULL + * fieldname = str2bytes(fieldname, &cval) + * CHKERR( DMSwarmVectorDefineField(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def addPoint(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmVectorDefineField(__pyx_v_self->__pyx_base.dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 118, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":115 + * CHKERR( DMSwarmRestoreField(self.dm, cfieldname, &blocksize, &ctype, 0) ) + * + * def vectorDefineField(self, fieldname): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * fieldname = str2bytes(fieldname, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.vectorDefineField", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_fieldname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":120 + * CHKERR( DMSwarmVectorDefineField(self.dm, cval) ) + * + * def addPoint(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmAddPoint(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_25addPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_24addPoint[] = "DMSwarm.addPoint(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_25addPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addPoint (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("addPoint", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "addPoint", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_24addPoint(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_24addPoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addPoint", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":121 + * + * def addPoint(self): + * CHKERR( DMSwarmAddPoint(self.dm) ) # <<<<<<<<<<<<<< + * + * def addNPoints(self, npoints): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmAddPoint(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 121, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":120 + * CHKERR( DMSwarmVectorDefineField(self.dm, cval) ) + * + * def addPoint(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmAddPoint(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.addPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":123 + * CHKERR( DMSwarmAddPoint(self.dm) ) + * + * def addNPoints(self, npoints): # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = asInt(npoints) + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_27addNPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_26addNPoints[] = "DMSwarm.addNPoints(self, npoints)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_27addNPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_npoints = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("addNPoints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_npoints,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_npoints)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "addNPoints") < 0)) __PYX_ERR(61, 123, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_npoints = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("addNPoints", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.addNPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_26addNPoints(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_npoints); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_26addNPoints(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_npoints) { + PetscInt __pyx_v_cnpoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("addNPoints", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":124 + * + * def addNPoints(self, npoints): + * cdef PetscInt cnpoints = asInt(npoints) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_npoints); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 124, __pyx_L1_error) + __pyx_v_cnpoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":125 + * def addNPoints(self, npoints): + * cdef PetscInt cnpoints = asInt(npoints) + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) # <<<<<<<<<<<<<< + * + * def removePoint(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmAddNPoints(__pyx_v_self->__pyx_base.dm, __pyx_v_cnpoints)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 125, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":123 + * CHKERR( DMSwarmAddPoint(self.dm) ) + * + * def addNPoints(self, npoints): # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = asInt(npoints) + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.addNPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":127 + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) + * + * def removePoint(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmRemovePoint(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_29removePoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_28removePoint[] = "DMSwarm.removePoint(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_29removePoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("removePoint (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("removePoint", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "removePoint", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_28removePoint(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_28removePoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("removePoint", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":128 + * + * def removePoint(self): + * CHKERR( DMSwarmRemovePoint(self.dm) ) # <<<<<<<<<<<<<< + * + * def removePointAtIndex(self, index): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmRemovePoint(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":127 + * CHKERR( DMSwarmAddNPoints(self.dm, cnpoints) ) + * + * def removePoint(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmRemovePoint(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.removePoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":130 + * CHKERR( DMSwarmRemovePoint(self.dm) ) + * + * def removePointAtIndex(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cindex = asInt(index) + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_31removePointAtIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_30removePointAtIndex[] = "DMSwarm.removePointAtIndex(self, index)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_31removePointAtIndex(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_index = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("removePointAtIndex (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_index,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "removePointAtIndex") < 0)) __PYX_ERR(61, 130, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_index = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("removePointAtIndex", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 130, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.removePointAtIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_30removePointAtIndex(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_index); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_30removePointAtIndex(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_index) { + PetscInt __pyx_v_cindex; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("removePointAtIndex", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":131 + * + * def removePointAtIndex(self, index): + * cdef PetscInt cindex = asInt(index) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_index); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 131, __pyx_L1_error) + __pyx_v_cindex = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":132 + * def removePointAtIndex(self, index): + * cdef PetscInt cindex = asInt(index) + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) # <<<<<<<<<<<<<< + * + * def copyPoint(self, pi, pj): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmRemovePointAtIndex(__pyx_v_self->__pyx_base.dm, __pyx_v_cindex)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 132, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":130 + * CHKERR( DMSwarmRemovePoint(self.dm) ) + * + * def removePointAtIndex(self, index): # <<<<<<<<<<<<<< + * cdef PetscInt cindex = asInt(index) + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.removePointAtIndex", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":134 + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) + * + * def copyPoint(self, pi, pj): # <<<<<<<<<<<<<< + * cdef PetscInt cpi = asInt(pi) + * cdef PetscInt cpj = asInt(pj) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_33copyPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_32copyPoint[] = "DMSwarm.copyPoint(self, pi, pj)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_33copyPoint(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_pi = 0; + PyObject *__pyx_v_pj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copyPoint (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pi,&__pyx_n_s_pj,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pi)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pj)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("copyPoint", 1, 2, 2, 1); __PYX_ERR(61, 134, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "copyPoint") < 0)) __PYX_ERR(61, 134, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_pi = values[0]; + __pyx_v_pj = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("copyPoint", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 134, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.copyPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_32copyPoint(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_pi, __pyx_v_pj); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_32copyPoint(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_pi, PyObject *__pyx_v_pj) { + PetscInt __pyx_v_cpi; + PetscInt __pyx_v_cpj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copyPoint", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":135 + * + * def copyPoint(self, pi, pj): + * cdef PetscInt cpi = asInt(pi) # <<<<<<<<<<<<<< + * cdef PetscInt cpj = asInt(pj) + * CHKERR( DMSwarmCopyPoint(self.dm, cpi, cpj) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pi); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 135, __pyx_L1_error) + __pyx_v_cpi = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":136 + * def copyPoint(self, pi, pj): + * cdef PetscInt cpi = asInt(pi) + * cdef PetscInt cpj = asInt(pj) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCopyPoint(self.dm, cpi, cpj) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pj); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 136, __pyx_L1_error) + __pyx_v_cpj = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":137 + * cdef PetscInt cpi = asInt(pi) + * cdef PetscInt cpj = asInt(pj) + * CHKERR( DMSwarmCopyPoint(self.dm, cpi, cpj) ) # <<<<<<<<<<<<<< + * + * def getLocalSize(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmCopyPoint(__pyx_v_self->__pyx_base.dm, __pyx_v_cpi, __pyx_v_cpj)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":134 + * CHKERR( DMSwarmRemovePointAtIndex(self.dm, cindex) ) + * + * def copyPoint(self, pi, pj): # <<<<<<<<<<<<<< + * cdef PetscInt cpi = asInt(pi) + * cdef PetscInt cpj = asInt(pj) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.copyPoint", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":139 + * CHKERR( DMSwarmCopyPoint(self.dm, cpi, cpj) ) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetLocalSize(self.dm, &size) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_35getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_34getLocalSize[] = "DMSwarm.getLocalSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_35getLocalSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLocalSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLocalSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLocalSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_34getLocalSize(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_34getLocalSize(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PetscInt __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLocalSize", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":140 + * + * def getLocalSize(self): + * cdef PetscInt size = asInt(0) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmGetLocalSize(self.dm, &size) ) + * return toInt(size) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 140, __pyx_L1_error) + __pyx_v_size = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":141 + * def getLocalSize(self): + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetLocalSize(self.dm, &size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmGetLocalSize(__pyx_v_self->__pyx_base.dm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 141, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":142 + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetLocalSize(self.dm, &size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def getSize(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":139 + * CHKERR( DMSwarmCopyPoint(self.dm, cpi, cpj) ) + * + * def getLocalSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetLocalSize(self.dm, &size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.getLocalSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":144 + * return toInt(size) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetSize(self.dm, &size) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_37getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_36getSize[] = "DMSwarm.getSize(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_37getSize(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_36getSize(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_36getSize(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PetscInt __pyx_v_size; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSize", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":145 + * + * def getSize(self): + * cdef PetscInt size = asInt(0) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmGetSize(self.dm, &size) ) + * return toInt(size) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 145, __pyx_L1_error) + __pyx_v_size = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":146 + * def getSize(self): + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetSize(self.dm, &size) ) # <<<<<<<<<<<<<< + * return toInt(size) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmGetSize(__pyx_v_self->__pyx_base.dm, (&__pyx_v_size))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 146, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":147 + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetSize(self.dm, &size) ) + * return toInt(size) # <<<<<<<<<<<<<< + * + * def migrate(self, remove_sent_points=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":144 + * return toInt(size) + * + * def getSize(self): # <<<<<<<<<<<<<< + * cdef PetscInt size = asInt(0) + * CHKERR( DMSwarmGetSize(self.dm, &size) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.getSize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":149 + * return toInt(size) + * + * def migrate(self, remove_sent_points=False): # <<<<<<<<<<<<<< + * cdef PetscBool remove_pts = asBool(remove_sent_points) + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_39migrate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_38migrate[] = "DMSwarm.migrate(self, remove_sent_points=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_39migrate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_remove_sent_points = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("migrate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_remove_sent_points,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_remove_sent_points); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "migrate") < 0)) __PYX_ERR(61, 149, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_remove_sent_points = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("migrate", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 149, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.migrate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_38migrate(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_remove_sent_points); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_38migrate(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_remove_sent_points) { + PetscBool __pyx_v_remove_pts; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("migrate", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":150 + * + * def migrate(self, remove_sent_points=False): + * cdef PetscBool remove_pts = asBool(remove_sent_points) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_remove_sent_points); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(61, 150, __pyx_L1_error) + __pyx_v_remove_pts = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":151 + * def migrate(self, remove_sent_points=False): + * cdef PetscBool remove_pts = asBool(remove_sent_points) + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) # <<<<<<<<<<<<<< + * + * def collectViewCreate(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmMigrate(__pyx_v_self->__pyx_base.dm, __pyx_v_remove_pts)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 151, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":149 + * return toInt(size) + * + * def migrate(self, remove_sent_points=False): # <<<<<<<<<<<<<< + * cdef PetscBool remove_pts = asBool(remove_sent_points) + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.migrate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":153 + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) + * + * def collectViewCreate(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCollectViewCreate(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_41collectViewCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_40collectViewCreate[] = "DMSwarm.collectViewCreate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_41collectViewCreate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("collectViewCreate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("collectViewCreate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "collectViewCreate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_40collectViewCreate(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_40collectViewCreate(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("collectViewCreate", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":154 + * + * def collectViewCreate(self): + * CHKERR( DMSwarmCollectViewCreate(self.dm) ) # <<<<<<<<<<<<<< + * + * def collectViewDestroy(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmCollectViewCreate(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 154, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":153 + * CHKERR( DMSwarmMigrate(self.dm, remove_pts) ) + * + * def collectViewCreate(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCollectViewCreate(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.collectViewCreate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":156 + * CHKERR( DMSwarmCollectViewCreate(self.dm) ) + * + * def collectViewDestroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCollectViewDestroy(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_43collectViewDestroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_42collectViewDestroy[] = "DMSwarm.collectViewDestroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_43collectViewDestroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("collectViewDestroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("collectViewDestroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "collectViewDestroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_42collectViewDestroy(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_42collectViewDestroy(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("collectViewDestroy", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":157 + * + * def collectViewDestroy(self): + * CHKERR( DMSwarmCollectViewDestroy(self.dm) ) # <<<<<<<<<<<<<< + * + * def setCellDM(self, DM dm): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmCollectViewDestroy(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":156 + * CHKERR( DMSwarmCollectViewCreate(self.dm) ) + * + * def collectViewDestroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmCollectViewDestroy(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.collectViewDestroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":159 + * CHKERR( DMSwarmCollectViewDestroy(self.dm) ) + * + * def setCellDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetCellDM(self.dm, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_45setCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_44setCellDM[] = "DMSwarm.setCellDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_45setCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setCellDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setCellDM") < 0)) __PYX_ERR(61, 159, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setCellDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 159, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setCellDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(61, 159, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_44setCellDM(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_44setCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setCellDM", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":160 + * + * def setCellDM(self, DM dm): + * CHKERR( DMSwarmSetCellDM(self.dm, dm.dm) ) # <<<<<<<<<<<<<< + * + * def getCellDM(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetCellDM(__pyx_v_self->__pyx_base.dm, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 160, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":159 + * CHKERR( DMSwarmCollectViewDestroy(self.dm) ) + * + * def setCellDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetCellDM(self.dm, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setCellDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":162 + * CHKERR( DMSwarmSetCellDM(self.dm, dm.dm) ) + * + * def getCellDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_47getCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_46getCellDM[] = "DMSwarm.getCellDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_47getCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCellDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCellDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCellDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_46getCellDM(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_46getCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + DM __pyx_v_newdm; + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCellDM", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":163 + * + * def getCellDM(self): + * cdef PetscDM newdm = NULL # <<<<<<<<<<<<<< + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + */ + __pyx_v_newdm = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":164 + * def getCellDM(self): + * cdef PetscDM newdm = NULL + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) # <<<<<<<<<<<<<< + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmGetCellDM(__pyx_v_self->__pyx_base.dm, (&__pyx_v_newdm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 164, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":165 + * cdef PetscDM newdm = NULL + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() # <<<<<<<<<<<<<< + * dm.dm = newdm + * PetscINCREF(dm.obj) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_newdm)); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(61, 165, __pyx_L1_error) + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":166 + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm # <<<<<<<<<<<<<< + * PetscINCREF(dm.obj) + * return dm + */ + __pyx_v_dm->dm = __pyx_v_newdm; + + /* "petsc4py/PETSc/DMSwarm.pyx":167 + * cdef DM dm = subtype_DM(newdm)() + * dm.dm = newdm + * PetscINCREF(dm.obj) # <<<<<<<<<<<<<< + * return dm + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscINCREF(__pyx_v_dm->__pyx_base.obj)); + + /* "petsc4py/PETSc/DMSwarm.pyx":168 + * dm.dm = newdm + * PetscINCREF(dm.obj) + * return dm # <<<<<<<<<<<<<< + * + * def setType(self, dmswarm_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":162 + * CHKERR( DMSwarmSetCellDM(self.dm, dm.dm) ) + * + * def getCellDM(self): # <<<<<<<<<<<<<< + * cdef PetscDM newdm = NULL + * CHKERR( DMSwarmGetCellDM(self.dm, &newdm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.getCellDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":170 + * return dm + * + * def setType(self, dmswarm_type): # <<<<<<<<<<<<<< + * cdef PetscDMSwarmType cval = dmswarm_type + * CHKERR( DMSwarmSetType(self.dm, cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_49setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_48setType[] = "DMSwarm.setType(self, dmswarm_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_49setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dmswarm_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dmswarm_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dmswarm_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(61, 170, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dmswarm_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 170, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_48setType(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_dmswarm_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_48setType(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_dmswarm_type) { + DMSwarmType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMSwarmType __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":171 + * + * def setType(self, dmswarm_type): + * cdef PetscDMSwarmType cval = dmswarm_type # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetType(self.dm, cval) ) + * + */ + __pyx_t_1 = ((DMSwarmType)__Pyx_PyInt_As_DMSwarmType(__pyx_v_dmswarm_type)); if (unlikely(PyErr_Occurred())) __PYX_ERR(61, 171, __pyx_L1_error) + __pyx_v_cval = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":172 + * def setType(self, dmswarm_type): + * cdef PetscDMSwarmType cval = dmswarm_type + * CHKERR( DMSwarmSetType(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def setPointsUniformCoordinates(self, min, max, npoints, mode=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetType(__pyx_v_self->__pyx_base.dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":170 + * return dm + * + * def setType(self, dmswarm_type): # <<<<<<<<<<<<<< + * cdef PetscDMSwarmType cval = dmswarm_type + * CHKERR( DMSwarmSetType(self.dm, cval) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":174 + * CHKERR( DMSwarmSetType(self.dm, cval) ) + * + * def setPointsUniformCoordinates(self, min, max, npoints, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInt dim = asInt(0) + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_51setPointsUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_50setPointsUniformCoordinates[] = "DMSwarm.setPointsUniformCoordinates(self, min, max, npoints, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_51setPointsUniformCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_min = 0; + PyObject *__pyx_v_max = 0; + PyObject *__pyx_v_npoints = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPointsUniformCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_min,&__pyx_n_s_max,&__pyx_n_s_npoints,&__pyx_n_s_mode,0}; + PyObject* values[4] = {0,0,0,0}; + values[3] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_min)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPointsUniformCoordinates", 0, 3, 4, 1); __PYX_ERR(61, 174, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_npoints)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setPointsUniformCoordinates", 0, 3, 4, 2); __PYX_ERR(61, 174, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPointsUniformCoordinates") < 0)) __PYX_ERR(61, 174, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_min = values[0]; + __pyx_v_max = values[1]; + __pyx_v_npoints = values[2]; + __pyx_v_mode = values[3]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPointsUniformCoordinates", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 174, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointsUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_50setPointsUniformCoordinates(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_min, __pyx_v_max, __pyx_v_npoints, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_50setPointsUniformCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_min, PyObject *__pyx_v_max, PyObject *__pyx_v_npoints, PyObject *__pyx_v_mode) { + PetscInt __pyx_v_dim; + PetscReal __pyx_v_cmin[3]; + long __pyx_v_i; + PetscReal __pyx_v_cmax[3]; + PetscInt __pyx_v_cnpoints[3]; + InsertMode __pyx_v_cmode; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscReal __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PetscInt __pyx_t_5; + InsertMode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPointsUniformCoordinates", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":175 + * + * def setPointsUniformCoordinates(self, min, max, npoints, mode=None): + * cdef PetscInt dim = asInt(0) # <<<<<<<<<<<<<< + * CHKERR( DMGetDimension(self.dm, &dim) ) + * cdef PetscReal cmin[3] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 175, __pyx_L1_error) + __pyx_v_dim = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":176 + * def setPointsUniformCoordinates(self, min, max, npoints, mode=None): + * cdef PetscInt dim = asInt(0) + * CHKERR( DMGetDimension(self.dm, &dim) ) # <<<<<<<<<<<<<< + * cdef PetscReal cmin[3] + * cmin[0] = cmin[1] = cmin[2] = asReal(0.) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMGetDimension(__pyx_v_self->__pyx_base.dm, (&__pyx_v_dim))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 176, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":178 + * CHKERR( DMGetDimension(self.dm, &dim) ) + * cdef PetscReal cmin[3] + * cmin[0] = cmin[1] = cmin[2] = asReal(0.) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: cmin[i] = min[i] + * cdef PetscReal cmax[3] + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_float_0_); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(61, 178, __pyx_L1_error) + (__pyx_v_cmin[0]) = __pyx_t_3; + (__pyx_v_cmin[1]) = __pyx_t_3; + (__pyx_v_cmin[2]) = __pyx_t_3; + + /* "petsc4py/PETSc/DMSwarm.pyx":179 + * cdef PetscReal cmin[3] + * cmin[0] = cmin[1] = cmin[2] = asReal(0.) + * for i from 0 <= i < dim: cmin[i] = min[i] # <<<<<<<<<<<<<< + * cdef PetscReal cmax[3] + * cmax[0] = cmax[1] = cmax[2] = asReal(0.) + */ + __pyx_t_1 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_min, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_3 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(61, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_cmin[__pyx_v_i]) = __pyx_t_3; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":181 + * for i from 0 <= i < dim: cmin[i] = min[i] + * cdef PetscReal cmax[3] + * cmax[0] = cmax[1] = cmax[2] = asReal(0.) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: cmax[i] = max[i] + * cdef PetscInt cnpoints[3] + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_float_0_); if (unlikely(__pyx_t_3 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(61, 181, __pyx_L1_error) + (__pyx_v_cmax[0]) = __pyx_t_3; + (__pyx_v_cmax[1]) = __pyx_t_3; + (__pyx_v_cmax[2]) = __pyx_t_3; + + /* "petsc4py/PETSc/DMSwarm.pyx":182 + * cdef PetscReal cmax[3] + * cmax[0] = cmax[1] = cmax[2] = asReal(0.) + * for i from 0 <= i < dim: cmax[i] = max[i] # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints[3] + * cnpoints[0] = cnpoints[1] = cnpoints[2] = asInt(0) + */ + __pyx_t_1 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_max, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_3 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(61, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_cmax[__pyx_v_i]) = __pyx_t_3; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":184 + * for i from 0 <= i < dim: cmax[i] = max[i] + * cdef PetscInt cnpoints[3] + * cnpoints[0] = cnpoints[1] = cnpoints[2] = asInt(0) # <<<<<<<<<<<<<< + * for i from 0 <= i < dim: cnpoints[i] = npoints[i] + * cdef PetscInsertMode cmode = insertmode(mode) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 184, __pyx_L1_error) + (__pyx_v_cnpoints[0]) = __pyx_t_1; + (__pyx_v_cnpoints[1]) = __pyx_t_1; + (__pyx_v_cnpoints[2]) = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":185 + * cdef PetscInt cnpoints[3] + * cnpoints[0] = cnpoints[1] = cnpoints[2] = asInt(0) + * for i from 0 <= i < dim: cnpoints[i] = npoints[i] # <<<<<<<<<<<<<< + * cdef PetscInsertMode cmode = insertmode(mode) + * CHKERR( DMSwarmSetPointsUniformCoordinates(self.dm, cmin, cmax, cnpoints, cmode) ) + */ + __pyx_t_1 = __pyx_v_dim; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_npoints, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyInt_As_PetscInt(__pyx_t_4); if (unlikely((__pyx_t_5 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(61, 185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + (__pyx_v_cnpoints[__pyx_v_i]) = __pyx_t_5; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":186 + * cnpoints[0] = cnpoints[1] = cnpoints[2] = asInt(0) + * for i from 0 <= i < dim: cnpoints[i] = npoints[i] + * cdef PetscInsertMode cmode = insertmode(mode) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetPointsUniformCoordinates(self.dm, cmin, cmax, cnpoints, cmode) ) + * return self + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_mode); if (unlikely(__pyx_t_6 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(61, 186, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_6; + + /* "petsc4py/PETSc/DMSwarm.pyx":187 + * for i from 0 <= i < dim: cnpoints[i] = npoints[i] + * cdef PetscInsertMode cmode = insertmode(mode) + * CHKERR( DMSwarmSetPointsUniformCoordinates(self.dm, cmin, cmax, cnpoints, cmode) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetPointsUniformCoordinates(__pyx_v_self->__pyx_base.dm, __pyx_v_cmin, __pyx_v_cmax, __pyx_v_cnpoints, __pyx_v_cmode)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":188 + * cdef PetscInsertMode cmode = insertmode(mode) + * CHKERR( DMSwarmSetPointsUniformCoordinates(self.dm, cmin, cmax, cnpoints, cmode) ) + * return self # <<<<<<<<<<<<<< + * + * def setPointCoordinates(self, coordinates, redundant=False, mode=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":174 + * CHKERR( DMSwarmSetType(self.dm, cval) ) + * + * def setPointsUniformCoordinates(self, min, max, npoints, mode=None): # <<<<<<<<<<<<<< + * cdef PetscInt dim = asInt(0) + * CHKERR( DMGetDimension(self.dm, &dim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointsUniformCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":190 + * return self + * + * def setPointCoordinates(self, coordinates, redundant=False, mode=None): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_53setPointCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_52setPointCoordinates[] = "DMSwarm.setPointCoordinates(self, coordinates, redundant=False, mode=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_53setPointCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_coordinates = 0; + PyObject *__pyx_v_redundant = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPointCoordinates (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coordinates,&__pyx_n_s_redundant,&__pyx_n_s_mode,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_False); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coordinates)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_redundant); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPointCoordinates") < 0)) __PYX_ERR(61, 190, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_coordinates = values[0]; + __pyx_v_redundant = values[1]; + __pyx_v_mode = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPointCoordinates", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 190, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_52setPointCoordinates(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_coordinates, __pyx_v_redundant, __pyx_v_mode); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_52setPointCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_coordinates, PyObject *__pyx_v_redundant, PyObject *__pyx_v_mode) { + PyArrayObject *__pyx_v_xyz = 0; + PetscInt __pyx_v_cnpoints; + PetscBool __pyx_v_credundant; + InsertMode __pyx_v_cmode; + PetscReal *__pyx_v_coords; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscBool __pyx_t_4; + InsertMode __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPointCoordinates", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":191 + * + * def setPointCoordinates(self, coordinates, redundant=False, mode=None): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_coordinates, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xyz = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":192 + * def setPointCoordinates(self, coordinates, redundant=False, mode=None): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) # <<<<<<<<<<<<<< + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_xyz) != 0); + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)PyArray_Copy(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_xyz, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":193 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_2 = ((PyArray_NDIM(__pyx_v_xyz) != 2) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/DMSwarm.pyx":195 + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscBool credundant = asBool(redundant) + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_coordinates_must_have_two_dimens, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":193 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(61, 193, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMSwarm.pyx":196 + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) # <<<<<<<<<<<<<< + * cdef PetscBool credundant = asBool(redundant) + * cdef PetscInsertMode cmode = insertmode(mode) + */ + __pyx_v_cnpoints = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 0)); + + /* "petsc4py/PETSc/DMSwarm.pyx":197 + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscBool credundant = asBool(redundant) # <<<<<<<<<<<<<< + * cdef PetscInsertMode cmode = insertmode(mode) + * cdef PetscReal *coords = PyArray_DATA(xyz) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_redundant); if (unlikely(__pyx_t_4 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(61, 197, __pyx_L1_error) + __pyx_v_credundant = __pyx_t_4; + + /* "petsc4py/PETSc/DMSwarm.pyx":198 + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscBool credundant = asBool(redundant) + * cdef PetscInsertMode cmode = insertmode(mode) # <<<<<<<<<<<<<< + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( DMSwarmSetPointCoordinates(self.dm, cnpoints, coords, credundant, cmode) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_insertmode(__pyx_v_mode); if (unlikely(__pyx_t_5 == ((InsertMode)((InsertMode)-1L)))) __PYX_ERR(61, 198, __pyx_L1_error) + __pyx_v_cmode = __pyx_t_5; + + /* "petsc4py/PETSc/DMSwarm.pyx":199 + * cdef PetscBool credundant = asBool(redundant) + * cdef PetscInsertMode cmode = insertmode(mode) + * cdef PetscReal *coords = PyArray_DATA(xyz) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetPointCoordinates(self.dm, cnpoints, coords, credundant, cmode) ) + * + */ + __pyx_v_coords = ((PetscReal *)PyArray_DATA(__pyx_v_xyz)); + + /* "petsc4py/PETSc/DMSwarm.pyx":200 + * cdef PetscInsertMode cmode = insertmode(mode) + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( DMSwarmSetPointCoordinates(self.dm, cnpoints, coords, credundant, cmode) ) # <<<<<<<<<<<<<< + * + * def insertPointUsingCellDM(self, layoutType, fill_param): + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetPointCoordinates(__pyx_v_self->__pyx_base.dm, __pyx_v_cnpoints, __pyx_v_coords, __pyx_v_credundant, __pyx_v_cmode)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 200, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":190 + * return self + * + * def setPointCoordinates(self, coordinates, redundant=False, mode=None): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xyz); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":202 + * CHKERR( DMSwarmSetPointCoordinates(self.dm, cnpoints, coords, credundant, cmode) ) + * + * def insertPointUsingCellDM(self, layoutType, fill_param): # <<<<<<<<<<<<<< + * cdef PetscDMSwarmPICLayoutType clayoutType = layoutType + * cdef PetscInt cfill_param = asInt(fill_param) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_55insertPointUsingCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_54insertPointUsingCellDM[] = "DMSwarm.insertPointUsingCellDM(self, layoutType, fill_param)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_55insertPointUsingCellDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_layoutType = 0; + PyObject *__pyx_v_fill_param = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("insertPointUsingCellDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_layoutType,&__pyx_n_s_fill_param,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_layoutType)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fill_param)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("insertPointUsingCellDM", 1, 2, 2, 1); __PYX_ERR(61, 202, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insertPointUsingCellDM") < 0)) __PYX_ERR(61, 202, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_layoutType = values[0]; + __pyx_v_fill_param = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("insertPointUsingCellDM", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 202, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.insertPointUsingCellDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_54insertPointUsingCellDM(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_layoutType, __pyx_v_fill_param); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_54insertPointUsingCellDM(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_layoutType, PyObject *__pyx_v_fill_param) { + DMSwarmPICLayoutType __pyx_v_clayoutType; + PetscInt __pyx_v_cfill_param; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + DMSwarmPICLayoutType __pyx_t_1; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("insertPointUsingCellDM", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":203 + * + * def insertPointUsingCellDM(self, layoutType, fill_param): + * cdef PetscDMSwarmPICLayoutType clayoutType = layoutType # <<<<<<<<<<<<<< + * cdef PetscInt cfill_param = asInt(fill_param) + * CHKERR( DMSwarmInsertPointsUsingCellDM(self.dm, clayoutType, cfill_param) ) + */ + __pyx_t_1 = ((DMSwarmPICLayoutType)__Pyx_PyInt_As_DMSwarmPICLayoutType(__pyx_v_layoutType)); if (unlikely(PyErr_Occurred())) __PYX_ERR(61, 203, __pyx_L1_error) + __pyx_v_clayoutType = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":204 + * def insertPointUsingCellDM(self, layoutType, fill_param): + * cdef PetscDMSwarmPICLayoutType clayoutType = layoutType + * cdef PetscInt cfill_param = asInt(fill_param) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmInsertPointsUsingCellDM(self.dm, clayoutType, cfill_param) ) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_fill_param); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 204, __pyx_L1_error) + __pyx_v_cfill_param = __pyx_t_2; + + /* "petsc4py/PETSc/DMSwarm.pyx":205 + * cdef PetscDMSwarmPICLayoutType clayoutType = layoutType + * cdef PetscInt cfill_param = asInt(fill_param) + * CHKERR( DMSwarmInsertPointsUsingCellDM(self.dm, clayoutType, cfill_param) ) # <<<<<<<<<<<<<< + * + * def setPointCoordinatesCellwise(self, coordinates): + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmInsertPointsUsingCellDM(__pyx_v_self->__pyx_base.dm, __pyx_v_clayoutType, __pyx_v_cfill_param)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 205, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":202 + * CHKERR( DMSwarmSetPointCoordinates(self.dm, cnpoints, coords, credundant, cmode) ) + * + * def insertPointUsingCellDM(self, layoutType, fill_param): # <<<<<<<<<<<<<< + * cdef PetscDMSwarmPICLayoutType clayoutType = layoutType + * cdef PetscInt cfill_param = asInt(fill_param) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.insertPointUsingCellDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":207 + * CHKERR( DMSwarmInsertPointsUsingCellDM(self.dm, clayoutType, cfill_param) ) + * + * def setPointCoordinatesCellwise(self, coordinates): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_57setPointCoordinatesCellwise(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_56setPointCoordinatesCellwise[] = "DMSwarm.setPointCoordinatesCellwise(self, coordinates)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_57setPointCoordinatesCellwise(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_coordinates = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPointCoordinatesCellwise (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_coordinates,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_coordinates)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPointCoordinatesCellwise") < 0)) __PYX_ERR(61, 207, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_coordinates = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPointCoordinatesCellwise", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 207, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointCoordinatesCellwise", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_56setPointCoordinatesCellwise(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_coordinates); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_56setPointCoordinatesCellwise(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_coordinates) { + PyArrayObject *__pyx_v_xyz = 0; + PetscInt __pyx_v_cnpoints; + PetscReal *__pyx_v_coords; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPointCoordinatesCellwise", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":208 + * + * def setPointCoordinatesCellwise(self, coordinates): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray(__pyx_v_coordinates, NPY_PETSC_REAL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_xyz = ((PyArrayObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":209 + * def setPointCoordinatesCellwise(self, coordinates): + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) # <<<<<<<<<<<<<< + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + */ + __pyx_t_2 = (PyArray_ISFORTRAN(__pyx_v_xyz) != 0); + if (__pyx_t_2) { + __pyx_t_1 = ((PyObject *)PyArray_Copy(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_xyz, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":210 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_2 = ((PyArray_NDIM(__pyx_v_xyz) != 2) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/DMSwarm.pyx":212 + * if PyArray_NDIM(xyz) != 2: raise ValueError( + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscReal *coords = PyArray_DATA(xyz) + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PyArray_NDIM(__pyx_v_xyz)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_coordinates_must_have_two_dimens, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":210 + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + * if PyArray_NDIM(xyz) != 2: raise ValueError( # <<<<<<<<<<<<<< + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(61, 210, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMSwarm.pyx":213 + * ("coordinates must have two dimensions: " + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) # <<<<<<<<<<<<<< + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( DMSwarmSetPointCoordinatesCellwise(self.dm, cnpoints, coords) ) + */ + __pyx_v_cnpoints = ((PetscInt)PyArray_DIM(__pyx_v_xyz, 0)); + + /* "petsc4py/PETSc/DMSwarm.pyx":214 + * "coordinates.ndim=%d") % (PyArray_NDIM(xyz)) ) + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscReal *coords = PyArray_DATA(xyz) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSetPointCoordinatesCellwise(self.dm, cnpoints, coords) ) + * + */ + __pyx_v_coords = ((PetscReal *)PyArray_DATA(__pyx_v_xyz)); + + /* "petsc4py/PETSc/DMSwarm.pyx":215 + * cdef PetscInt cnpoints = PyArray_DIM(xyz, 0) + * cdef PetscReal *coords = PyArray_DATA(xyz) + * CHKERR( DMSwarmSetPointCoordinatesCellwise(self.dm, cnpoints, coords) ) # <<<<<<<<<<<<<< + * + * def viewFieldsXDMF(self, filename, fieldnames): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSetPointCoordinatesCellwise(__pyx_v_self->__pyx_base.dm, __pyx_v_cnpoints, __pyx_v_coords)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 215, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":207 + * CHKERR( DMSwarmInsertPointsUsingCellDM(self.dm, clayoutType, cfill_param) ) + * + * def setPointCoordinatesCellwise(self, coordinates): # <<<<<<<<<<<<<< + * cdef ndarray xyz = iarray(coordinates, NPY_PETSC_REAL) + * if PyArray_ISFORTRAN(xyz): xyz = PyArray_Copy(xyz) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.setPointCoordinatesCellwise", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_xyz); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":217 + * CHKERR( DMSwarmSetPointCoordinatesCellwise(self.dm, cnpoints, coords) ) + * + * def viewFieldsXDMF(self, filename, fieldnames): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef const char *cfilename = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_59viewFieldsXDMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_58viewFieldsXDMF[] = "DMSwarm.viewFieldsXDMF(self, filename, fieldnames)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_59viewFieldsXDMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_filename = 0; + PyObject *__pyx_v_fieldnames = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFieldsXDMF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,&__pyx_n_s_fieldnames,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldnames)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("viewFieldsXDMF", 1, 2, 2, 1); __PYX_ERR(61, 217, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFieldsXDMF") < 0)) __PYX_ERR(61, 217, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_filename = values[0]; + __pyx_v_fieldnames = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFieldsXDMF", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 217, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.viewFieldsXDMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_58viewFieldsXDMF(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_filename, __pyx_v_fieldnames); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_58viewFieldsXDMF(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_filename, PyObject *__pyx_v_fieldnames) { + char const *__pyx_v_cval; + char const *__pyx_v_cfilename; + PetscInt __pyx_v_cnfields; + char const **__pyx_v_cfieldnames; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + long __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PetscInt __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFieldsXDMF", 0); + __Pyx_INCREF(__pyx_v_filename); + __Pyx_INCREF(__pyx_v_fieldnames); + + /* "petsc4py/PETSc/DMSwarm.pyx":218 + * + * def viewFieldsXDMF(self, filename, fieldnames): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef const char *cfilename = NULL + * filename = str2bytes(filename, &cfilename) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":219 + * def viewFieldsXDMF(self, filename, fieldnames): + * cdef const char *cval = NULL + * cdef const char *cfilename = NULL # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cfilename) + * cdef PetscInt cnfields = len(fieldnames) + */ + __pyx_v_cfilename = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":220 + * cdef const char *cval = NULL + * cdef const char *cfilename = NULL + * filename = str2bytes(filename, &cfilename) # <<<<<<<<<<<<<< + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cfilename)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":221 + * cdef const char *cfilename = NULL + * filename = str2bytes(filename, &cfilename) + * cdef PetscInt cnfields = len(fieldnames) # <<<<<<<<<<<<<< + * cdef const char** cfieldnames = NULL + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + */ + __pyx_t_2 = PyObject_Length(__pyx_v_fieldnames); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(61, 221, __pyx_L1_error) + __pyx_v_cnfields = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/DMSwarm.pyx":222 + * filename = str2bytes(filename, &cfilename) + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + * fieldnames = list(fieldnames) + */ + __pyx_v_cfieldnames = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":223 + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) # <<<<<<<<<<<<<< + * fieldnames = list(fieldnames) + * for i from 0 <= i < cnfields: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_cnfields)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_1, NULL, ((void **)(&__pyx_v_cfieldnames)))); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 223, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_tmp = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":224 + * cdef const char** cfieldnames = NULL + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + * fieldnames = list(fieldnames) # <<<<<<<<<<<<<< + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + */ + __pyx_t_3 = PySequence_List(__pyx_v_fieldnames); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_fieldnames, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":225 + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + * fieldnames = list(fieldnames) + * for i from 0 <= i < cnfields: # <<<<<<<<<<<<<< + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval + */ + __pyx_t_4 = __pyx_v_cnfields; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_4; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMSwarm.pyx":226 + * fieldnames = list(fieldnames) + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) # <<<<<<<<<<<<<< + * cfieldnames[i] = cval + * CHKERR( DMSwarmViewFieldsXDMF(self.dm, cfilename, cnfields, cfieldnames ) ) + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_fieldnames, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_t_3, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_fieldnames, __pyx_v_i, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(61, 226, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":227 + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval # <<<<<<<<<<<<<< + * CHKERR( DMSwarmViewFieldsXDMF(self.dm, cfilename, cnfields, cfieldnames ) ) + * + */ + (__pyx_v_cfieldnames[__pyx_v_i]) = __pyx_v_cval; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":228 + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval + * CHKERR( DMSwarmViewFieldsXDMF(self.dm, cfilename, cnfields, cfieldnames ) ) # <<<<<<<<<<<<<< + * + * def viewXDMF(self, filename): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmViewFieldsXDMF(__pyx_v_self->__pyx_base.dm, __pyx_v_cfilename, __pyx_v_cnfields, __pyx_v_cfieldnames)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 228, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":217 + * CHKERR( DMSwarmSetPointCoordinatesCellwise(self.dm, cnpoints, coords) ) + * + * def viewFieldsXDMF(self, filename, fieldnames): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef const char *cfilename = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.viewFieldsXDMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XDECREF(__pyx_v_fieldnames); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":230 + * CHKERR( DMSwarmViewFieldsXDMF(self.dm, cfilename, cnfields, cfieldnames ) ) + * + * def viewXDMF(self, filename): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * filename = str2bytes(filename, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_61viewXDMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_60viewXDMF[] = "DMSwarm.viewXDMF(self, filename)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_61viewXDMF(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_filename = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewXDMF (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_filename,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_filename)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewXDMF") < 0)) __PYX_ERR(61, 230, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_filename = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewXDMF", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 230, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.viewXDMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_60viewXDMF(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_filename); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_60viewXDMF(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_filename) { + char const *__pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewXDMF", 0); + __Pyx_INCREF(__pyx_v_filename); + + /* "petsc4py/PETSc/DMSwarm.pyx":231 + * + * def viewXDMF(self, filename): + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * filename = str2bytes(filename, &cval) + * CHKERR( DMSwarmViewXDMF(self.dm, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":232 + * def viewXDMF(self, filename): + * cdef const char *cval = NULL + * filename = str2bytes(filename, &cval) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmViewXDMF(self.dm, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_filename, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(61, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":233 + * cdef const char *cval = NULL + * filename = str2bytes(filename, &cval) + * CHKERR( DMSwarmViewXDMF(self.dm, cval) ) # <<<<<<<<<<<<<< + * + * def sortGetAccess(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmViewXDMF(__pyx_v_self->__pyx_base.dm, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":230 + * CHKERR( DMSwarmViewFieldsXDMF(self.dm, cfilename, cnfields, cfieldnames ) ) + * + * def viewXDMF(self, filename): # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * filename = str2bytes(filename, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.viewXDMF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_filename); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":235 + * CHKERR( DMSwarmViewXDMF(self.dm, cval) ) + * + * def sortGetAccess(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetAccess(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_63sortGetAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_62sortGetAccess[] = "DMSwarm.sortGetAccess(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_63sortGetAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortGetAccess (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sortGetAccess", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sortGetAccess", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_62sortGetAccess(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_62sortGetAccess(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortGetAccess", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":236 + * + * def sortGetAccess(self): + * CHKERR( DMSwarmSortGetAccess(self.dm) ) # <<<<<<<<<<<<<< + * + * def sortRestoreAccess(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortGetAccess(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 236, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":235 + * CHKERR( DMSwarmViewXDMF(self.dm, cval) ) + * + * def sortGetAccess(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetAccess(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetAccess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":238 + * CHKERR( DMSwarmSortGetAccess(self.dm) ) + * + * def sortRestoreAccess(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortRestoreAccess(self.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_65sortRestoreAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_64sortRestoreAccess[] = "DMSwarm.sortRestoreAccess(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_65sortRestoreAccess(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortRestoreAccess (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sortRestoreAccess", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sortRestoreAccess", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_64sortRestoreAccess(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_64sortRestoreAccess(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortRestoreAccess", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":239 + * + * def sortRestoreAccess(self): + * CHKERR( DMSwarmSortRestoreAccess(self.dm) ) # <<<<<<<<<<<<<< + * + * def sortGetPointsPerCell(self, e): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortRestoreAccess(__pyx_v_self->__pyx_base.dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 239, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":238 + * CHKERR( DMSwarmSortGetAccess(self.dm) ) + * + * def sortRestoreAccess(self): # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortRestoreAccess(self.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortRestoreAccess", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":241 + * CHKERR( DMSwarmSortRestoreAccess(self.dm) ) + * + * def sortGetPointsPerCell(self, e): # <<<<<<<<<<<<<< + * cdef PetscInt ce = asInt(e) + * cdef PetscInt cnpoints = asInt(0) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_67sortGetPointsPerCell(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_66sortGetPointsPerCell[] = "DMSwarm.sortGetPointsPerCell(self, e)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_67sortGetPointsPerCell(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_e = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortGetPointsPerCell (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_e)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sortGetPointsPerCell") < 0)) __PYX_ERR(61, 241, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_e = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sortGetPointsPerCell", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 241, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetPointsPerCell", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_66sortGetPointsPerCell(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_e); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_66sortGetPointsPerCell(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_e) { + PetscInt __pyx_v_ce; + PetscInt __pyx_v_cnpoints; + PetscInt *__pyx_v_cpidlist; + PyObject *__pyx_v_pidlist = 0; + PetscInt __pyx_v_npoints; + long __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + PetscInt __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortGetPointsPerCell", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":242 + * + * def sortGetPointsPerCell(self, e): + * cdef PetscInt ce = asInt(e) # <<<<<<<<<<<<<< + * cdef PetscInt cnpoints = asInt(0) + * cdef PetscInt *cpidlist = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_e); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 242, __pyx_L1_error) + __pyx_v_ce = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":243 + * def sortGetPointsPerCell(self, e): + * cdef PetscInt ce = asInt(e) + * cdef PetscInt cnpoints = asInt(0) # <<<<<<<<<<<<<< + * cdef PetscInt *cpidlist = NULL + * cdef list pidlist = [] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 243, __pyx_L1_error) + __pyx_v_cnpoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":244 + * cdef PetscInt ce = asInt(e) + * cdef PetscInt cnpoints = asInt(0) + * cdef PetscInt *cpidlist = NULL # <<<<<<<<<<<<<< + * cdef list pidlist = [] + * CHKERR( DMSwarmSortGetPointsPerCell(self.dm, ce, &cnpoints, &cpidlist) ) + */ + __pyx_v_cpidlist = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":245 + * cdef PetscInt cnpoints = asInt(0) + * cdef PetscInt *cpidlist = NULL + * cdef list pidlist = [] # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetPointsPerCell(self.dm, ce, &cnpoints, &cpidlist) ) + * npoints = asInt(cnpoints) + */ + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_pidlist = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":246 + * cdef PetscInt *cpidlist = NULL + * cdef list pidlist = [] + * CHKERR( DMSwarmSortGetPointsPerCell(self.dm, ce, &cnpoints, &cpidlist) ) # <<<<<<<<<<<<<< + * npoints = asInt(cnpoints) + * for i from 0 <= i < npoints: pidlist.append(asInt(cpidlist[i])) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortGetPointsPerCell(__pyx_v_self->__pyx_base.dm, __pyx_v_ce, (&__pyx_v_cnpoints), (&__pyx_v_cpidlist))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 246, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":247 + * cdef list pidlist = [] + * CHKERR( DMSwarmSortGetPointsPerCell(self.dm, ce, &cnpoints, &cpidlist) ) + * npoints = asInt(cnpoints) # <<<<<<<<<<<<<< + * for i from 0 <= i < npoints: pidlist.append(asInt(cpidlist[i])) + * return pidlist + */ + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_v_cnpoints); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_npoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":248 + * CHKERR( DMSwarmSortGetPointsPerCell(self.dm, ce, &cnpoints, &cpidlist) ) + * npoints = asInt(cnpoints) + * for i from 0 <= i < npoints: pidlist.append(asInt(cpidlist[i])) # <<<<<<<<<<<<<< + * return pidlist + * + */ + __pyx_t_1 = __pyx_v_npoints; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + __pyx_t_2 = __Pyx_PyInt_From_PetscInt((__pyx_v_cpidlist[__pyx_v_i])); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_2); if (unlikely(__pyx_t_4 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 248, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_PetscInt(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(61, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_pidlist, __pyx_t_2); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(61, 248, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":249 + * npoints = asInt(cnpoints) + * for i from 0 <= i < npoints: pidlist.append(asInt(cpidlist[i])) + * return pidlist # <<<<<<<<<<<<<< + * + * def sortGetNumberOfPointsPerCell(self, e): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_pidlist); + __pyx_r = __pyx_v_pidlist; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":241 + * CHKERR( DMSwarmSortRestoreAccess(self.dm) ) + * + * def sortGetPointsPerCell(self, e): # <<<<<<<<<<<<<< + * cdef PetscInt ce = asInt(e) + * cdef PetscInt cnpoints = asInt(0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetPointsPerCell", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_pidlist); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":251 + * return pidlist + * + * def sortGetNumberOfPointsPerCell(self, e): # <<<<<<<<<<<<<< + * cdef PetscInt ce = asInt(e) + * cdef PetscInt npoints = asInt(0) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_69sortGetNumberOfPointsPerCell(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_68sortGetNumberOfPointsPerCell[] = "DMSwarm.sortGetNumberOfPointsPerCell(self, e)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_69sortGetNumberOfPointsPerCell(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_e = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortGetNumberOfPointsPerCell (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_e,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_e)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "sortGetNumberOfPointsPerCell") < 0)) __PYX_ERR(61, 251, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_e = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("sortGetNumberOfPointsPerCell", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 251, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetNumberOfPointsPerCell", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_68sortGetNumberOfPointsPerCell(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_e); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_68sortGetNumberOfPointsPerCell(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_e) { + PetscInt __pyx_v_ce; + PetscInt __pyx_v_npoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortGetNumberOfPointsPerCell", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":252 + * + * def sortGetNumberOfPointsPerCell(self, e): + * cdef PetscInt ce = asInt(e) # <<<<<<<<<<<<<< + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetNumberOfPointsPerCell(self.dm, ce, &npoints) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_e); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 252, __pyx_L1_error) + __pyx_v_ce = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":253 + * def sortGetNumberOfPointsPerCell(self, e): + * cdef PetscInt ce = asInt(e) + * cdef PetscInt npoints = asInt(0) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetNumberOfPointsPerCell(self.dm, ce, &npoints) ) + * return toInt(npoints) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 253, __pyx_L1_error) + __pyx_v_npoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":254 + * cdef PetscInt ce = asInt(e) + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetNumberOfPointsPerCell(self.dm, ce, &npoints) ) # <<<<<<<<<<<<<< + * return toInt(npoints) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortGetNumberOfPointsPerCell(__pyx_v_self->__pyx_base.dm, __pyx_v_ce, (&__pyx_v_npoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 254, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":255 + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetNumberOfPointsPerCell(self.dm, ce, &npoints) ) + * return toInt(npoints) # <<<<<<<<<<<<<< + * + * def sortGetIsValid(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_npoints); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":251 + * return pidlist + * + * def sortGetNumberOfPointsPerCell(self, e): # <<<<<<<<<<<<<< + * cdef PetscInt ce = asInt(e) + * cdef PetscInt npoints = asInt(0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetNumberOfPointsPerCell", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":257 + * return toInt(npoints) + * + * def sortGetIsValid(self): # <<<<<<<<<<<<<< + * cdef PetscBool isValid = asBool(False) + * CHKERR( DMSwarmSortGetIsValid(self.dm, &isValid) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_71sortGetIsValid(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_70sortGetIsValid[] = "DMSwarm.sortGetIsValid(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_71sortGetIsValid(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortGetIsValid (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sortGetIsValid", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sortGetIsValid", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_70sortGetIsValid(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_70sortGetIsValid(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PetscBool __pyx_v_isValid; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortGetIsValid", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":258 + * + * def sortGetIsValid(self): + * cdef PetscBool isValid = asBool(False) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetIsValid(self.dm, &isValid) ) + * return toBool(isValid) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(Py_False); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(61, 258, __pyx_L1_error) + __pyx_v_isValid = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":259 + * def sortGetIsValid(self): + * cdef PetscBool isValid = asBool(False) + * CHKERR( DMSwarmSortGetIsValid(self.dm, &isValid) ) # <<<<<<<<<<<<<< + * return toBool(isValid) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortGetIsValid(__pyx_v_self->__pyx_base.dm, (&__pyx_v_isValid))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 259, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":260 + * cdef PetscBool isValid = asBool(False) + * CHKERR( DMSwarmSortGetIsValid(self.dm, &isValid) ) + * return toBool(isValid) # <<<<<<<<<<<<<< + * + * def sortGetSizes(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_isValid); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":257 + * return toInt(npoints) + * + * def sortGetIsValid(self): # <<<<<<<<<<<<<< + * cdef PetscBool isValid = asBool(False) + * CHKERR( DMSwarmSortGetIsValid(self.dm, &isValid) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetIsValid", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":262 + * return toBool(isValid) + * + * def sortGetSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt ncells = asInt(0) + * cdef PetscInt npoints = asInt(0) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_73sortGetSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_72sortGetSizes[] = "DMSwarm.sortGetSizes(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_73sortGetSizes(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("sortGetSizes (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("sortGetSizes", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "sortGetSizes", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_72sortGetSizes(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_72sortGetSizes(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self) { + PetscInt __pyx_v_ncells; + PetscInt __pyx_v_npoints; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("sortGetSizes", 0); + + /* "petsc4py/PETSc/DMSwarm.pyx":263 + * + * def sortGetSizes(self): + * cdef PetscInt ncells = asInt(0) # <<<<<<<<<<<<<< + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetSizes(self.dm, &ncells, &npoints) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 263, __pyx_L1_error) + __pyx_v_ncells = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":264 + * def sortGetSizes(self): + * cdef PetscInt ncells = asInt(0) + * cdef PetscInt npoints = asInt(0) # <<<<<<<<<<<<<< + * CHKERR( DMSwarmSortGetSizes(self.dm, &ncells, &npoints) ) + * return (toInt(ncells), toInt(npoints)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_int_0); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(61, 264, __pyx_L1_error) + __pyx_v_npoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":265 + * cdef PetscInt ncells = asInt(0) + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetSizes(self.dm, &ncells, &npoints) ) # <<<<<<<<<<<<<< + * return (toInt(ncells), toInt(npoints)) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmSortGetSizes(__pyx_v_self->__pyx_base.dm, (&__pyx_v_ncells), (&__pyx_v_npoints))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 265, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":266 + * cdef PetscInt npoints = asInt(0) + * CHKERR( DMSwarmSortGetSizes(self.dm, &ncells, &npoints) ) + * return (toInt(ncells), toInt(npoints)) # <<<<<<<<<<<<<< + * + * def projectFields(self, fieldnames, reuse=False): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_ncells); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_npoints); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":262 + * return toBool(isValid) + * + * def sortGetSizes(self): # <<<<<<<<<<<<<< + * cdef PetscInt ncells = asInt(0) + * cdef PetscInt npoints = asInt(0) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.sortGetSizes", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMSwarm.pyx":268 + * return (toInt(ncells), toInt(npoints)) + * + * def projectFields(self, fieldnames, reuse=False): # <<<<<<<<<<<<<< + * cdef PetscBool creuse = asBool(reuse) + * cdef const char *cval = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_75projectFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_7DMSwarm_74projectFields[] = "DMSwarm.projectFields(self, fieldnames, reuse=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7DMSwarm_75projectFields(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_fieldnames = 0; + PyObject *__pyx_v_reuse = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("projectFields (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_fieldnames,&__pyx_n_s_reuse,0}; + PyObject* values[2] = {0,0}; + values[1] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fieldnames)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reuse); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "projectFields") < 0)) __PYX_ERR(61, 268, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_fieldnames = values[0]; + __pyx_v_reuse = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("projectFields", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(61, 268, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.projectFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_7DMSwarm_74projectFields(((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)__pyx_v_self), __pyx_v_fieldnames, __pyx_v_reuse); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_7DMSwarm_74projectFields(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *__pyx_v_self, PyObject *__pyx_v_fieldnames, PyObject *__pyx_v_reuse) { + PetscBool __pyx_v_creuse; + char const *__pyx_v_cval; + PetscInt __pyx_v_cnfields; + char const **__pyx_v_cfieldnames; + CYTHON_UNUSED PyObject *__pyx_v_tmp = 0; + Vec *__pyx_v_cfieldvecs; + long __pyx_v_i; + PyObject *__pyx_v_fieldvecs = 0; + struct PyPetscVecObject *__pyx_v_newVec = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + Py_ssize_t __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PetscInt __pyx_t_5; + PetscErrorCode __pyx_t_6; + int __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("projectFields", 0); + __Pyx_INCREF(__pyx_v_fieldnames); + + /* "petsc4py/PETSc/DMSwarm.pyx":269 + * + * def projectFields(self, fieldnames, reuse=False): + * cdef PetscBool creuse = asBool(reuse) # <<<<<<<<<<<<<< + * cdef const char *cval = NULL + * cdef PetscInt cnfields = len(fieldnames) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_reuse); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(61, 269, __pyx_L1_error) + __pyx_v_creuse = __pyx_t_1; + + /* "petsc4py/PETSc/DMSwarm.pyx":270 + * def projectFields(self, fieldnames, reuse=False): + * cdef PetscBool creuse = asBool(reuse) + * cdef const char *cval = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":271 + * cdef PetscBool creuse = asBool(reuse) + * cdef const char *cval = NULL + * cdef PetscInt cnfields = len(fieldnames) # <<<<<<<<<<<<<< + * cdef const char** cfieldnames = NULL + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + */ + __pyx_t_2 = PyObject_Length(__pyx_v_fieldnames); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(61, 271, __pyx_L1_error) + __pyx_v_cnfields = ((PetscInt)__pyx_t_2); + + /* "petsc4py/PETSc/DMSwarm.pyx":272 + * cdef const char *cval = NULL + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL # <<<<<<<<<<<<<< + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + * cdef PetscVec *cfieldvecs + */ + __pyx_v_cfieldnames = NULL; + + /* "petsc4py/PETSc/DMSwarm.pyx":273 + * cdef PetscInt cnfields = len(fieldnames) + * cdef const char** cfieldnames = NULL + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) # <<<<<<<<<<<<<< + * cdef PetscVec *cfieldvecs + * fieldnames = list(fieldnames) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_empty_p(__pyx_v_cnfields)); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_oarray_p(__pyx_t_3, NULL, ((void **)(&__pyx_v_cfieldnames)))); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_tmp = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":275 + * cdef object tmp = oarray_p(empty_p(cnfields), NULL, &cfieldnames) + * cdef PetscVec *cfieldvecs + * fieldnames = list(fieldnames) # <<<<<<<<<<<<<< + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + */ + __pyx_t_4 = PySequence_List(__pyx_v_fieldnames); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_fieldnames, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":276 + * cdef PetscVec *cfieldvecs + * fieldnames = list(fieldnames) + * for i from 0 <= i < cnfields: # <<<<<<<<<<<<<< + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval + */ + __pyx_t_5 = __pyx_v_cnfields; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMSwarm.pyx":277 + * fieldnames = list(fieldnames) + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) # <<<<<<<<<<<<<< + * cfieldnames[i] = cval + * CHKERR( DMSwarmProjectFields(self.dm, cnfields, cfieldnames, &cfieldvecs, creuse) ) + */ + __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_fieldnames, __pyx_v_i, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(61, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_t_4, (&__pyx_v_cval)); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__Pyx_SetItemInt(__pyx_v_fieldnames, __pyx_v_i, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(61, 277, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":278 + * for i from 0 <= i < cnfields: + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval # <<<<<<<<<<<<<< + * CHKERR( DMSwarmProjectFields(self.dm, cnfields, cfieldnames, &cfieldvecs, creuse) ) + * cdef list fieldvecs = [] + */ + (__pyx_v_cfieldnames[__pyx_v_i]) = __pyx_v_cval; + } + + /* "petsc4py/PETSc/DMSwarm.pyx":279 + * fieldnames[i] = str2bytes(fieldnames[i], &cval) + * cfieldnames[i] = cval + * CHKERR( DMSwarmProjectFields(self.dm, cnfields, cfieldnames, &cfieldvecs, creuse) ) # <<<<<<<<<<<<<< + * cdef list fieldvecs = [] + * for i from 0 <= i < cnfields: + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMSwarmProjectFields(__pyx_v_self->__pyx_base.dm, __pyx_v_cnfields, __pyx_v_cfieldnames, (&__pyx_v_cfieldvecs), __pyx_v_creuse)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(61, 279, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":280 + * cfieldnames[i] = cval + * CHKERR( DMSwarmProjectFields(self.dm, cnfields, cfieldnames, &cfieldvecs, creuse) ) + * cdef list fieldvecs = [] # <<<<<<<<<<<<<< + * for i from 0 <= i < cnfields: + * newVec = Vec() + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_fieldvecs = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":281 + * CHKERR( DMSwarmProjectFields(self.dm, cnfields, cfieldnames, &cfieldvecs, creuse) ) + * cdef list fieldvecs = [] + * for i from 0 <= i < cnfields: # <<<<<<<<<<<<<< + * newVec = Vec() + * newVec.vec = cfieldvecs[i] + */ + __pyx_t_5 = __pyx_v_cnfields; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_5; __pyx_v_i++) { + + /* "petsc4py/PETSc/DMSwarm.pyx":282 + * cdef list fieldvecs = [] + * for i from 0 <= i < cnfields: + * newVec = Vec() # <<<<<<<<<<<<<< + * newVec.vec = cfieldvecs[i] + * fieldvecs.append(newVec) + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_3)) __PYX_ERR(61, 282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_newVec, ((struct PyPetscVecObject *)__pyx_t_3)); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":283 + * for i from 0 <= i < cnfields: + * newVec = Vec() + * newVec.vec = cfieldvecs[i] # <<<<<<<<<<<<<< + * fieldvecs.append(newVec) + * return fieldvecs + */ + __pyx_v_newVec->vec = (__pyx_v_cfieldvecs[__pyx_v_i]); + + /* "petsc4py/PETSc/DMSwarm.pyx":284 + * newVec = Vec() + * newVec.vec = cfieldvecs[i] + * fieldvecs.append(newVec) # <<<<<<<<<<<<<< + * return fieldvecs + * + */ + __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_fieldvecs, ((PyObject *)__pyx_v_newVec)); if (unlikely(__pyx_t_7 == ((int)-1))) __PYX_ERR(61, 284, __pyx_L1_error) + } + + /* "petsc4py/PETSc/DMSwarm.pyx":285 + * newVec.vec = cfieldvecs[i] + * fieldvecs.append(newVec) + * return fieldvecs # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_fieldvecs); + __pyx_r = __pyx_v_fieldvecs; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMSwarm.pyx":268 + * return (toInt(ncells), toInt(npoints)) + * + * def projectFields(self, fieldnames, reuse=False): # <<<<<<<<<<<<<< + * cdef PetscBool creuse = asBool(reuse) + * cdef const char *cval = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.DMSwarm.projectFields", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tmp); + __Pyx_XDECREF(__pyx_v_fieldvecs); + __Pyx_XDECREF((PyObject *)__pyx_v_newVec); + __Pyx_XDECREF(__pyx_v_fieldnames); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":18 + * Type = PartitionerType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.part + * self.part = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_11Partitioner_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_11Partitioner_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner___cinit__(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_11Partitioner___cinit__(struct PyPetscPartitionerObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":19 + * + * def __cinit__(self): + * self.obj = &self.part # <<<<<<<<<<<<<< + * self.part = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->part)); + + /* "petsc4py/PETSc/Partitioner.pyx":20 + * def __cinit__(self): + * self.obj = &self.part + * self.part = NULL # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __pyx_v_self->part = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":18 + * Type = PartitionerType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.part + * self.part = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":22 + * self.part = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_2view[] = "Partitioner.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_3view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(62, 22, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(62, 22, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(62, 22, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_2view(((struct PyPetscPartitionerObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_2view(struct PyPetscPartitionerObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":23 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscPartitionerView(self.part, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":24 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerView(self.part, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Partitioner.pyx":25 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscPartitionerView(self.part, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerView(__pyx_v_self->part, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 25, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":22 + * self.part = NULL + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":27 + * CHKERR( PetscPartitionerView(self.part, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerDestroy(&self.part) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_4destroy[] = "Partitioner.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_5destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_4destroy(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_4destroy(struct PyPetscPartitionerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":28 + * + * def destroy(self): + * CHKERR( PetscPartitionerDestroy(&self.part) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerDestroy((&__pyx_v_self->part))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 28, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":29 + * def destroy(self): + * CHKERR( PetscPartitionerDestroy(&self.part) ) + * return self # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Partitioner.pyx":27 + * CHKERR( PetscPartitionerView(self.part, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerDestroy(&self.part) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":31 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPartitioner newpart = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_6create[] = "Partitioner.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_7create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(62, 31, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(62, 31, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_6create(((struct PyPetscPartitionerObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_6create(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscPartitioner __pyx_v_newpart; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":32 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscPartitioner newpart = NULL + * CHKERR( PetscPartitionerCreate(ccomm, &newpart) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(62, 32, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Partitioner.pyx":33 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPartitioner newpart = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerCreate(ccomm, &newpart) ) + * PetscCLEAR(self.obj); self.part = newpart + */ + __pyx_v_newpart = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":34 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPartitioner newpart = NULL + * CHKERR( PetscPartitionerCreate(ccomm, &newpart) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.part = newpart + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerCreate(__pyx_v_ccomm, (&__pyx_v_newpart))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 34, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":35 + * cdef PetscPartitioner newpart = NULL + * CHKERR( PetscPartitionerCreate(ccomm, &newpart) ) + * PetscCLEAR(self.obj); self.part = newpart # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->part = __pyx_v_newpart; + + /* "petsc4py/PETSc/Partitioner.pyx":36 + * CHKERR( PetscPartitionerCreate(ccomm, &newpart) ) + * PetscCLEAR(self.obj); self.part = newpart + * return self # <<<<<<<<<<<<<< + * + * def setType(self, part_type): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Partitioner.pyx":31 + * return self + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscPartitioner newpart = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":38 + * return self + * + * def setType(self, part_type): # <<<<<<<<<<<<<< + * cdef PetscPartitionerType cval = NULL + * part_type = str2bytes(part_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_8setType[] = "Partitioner.setType(self, part_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_9setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_part_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_part_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_part_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(62, 38, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_part_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(62, 38, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_8setType(((struct PyPetscPartitionerObject *)__pyx_v_self), __pyx_v_part_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_8setType(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_part_type) { + PetscPartitionerType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_part_type); + + /* "petsc4py/PETSc/Partitioner.pyx":39 + * + * def setType(self, part_type): + * cdef PetscPartitionerType cval = NULL # <<<<<<<<<<<<<< + * part_type = str2bytes(part_type, &cval) + * CHKERR( PetscPartitionerSetType(self.part, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":40 + * def setType(self, part_type): + * cdef PetscPartitionerType cval = NULL + * part_type = str2bytes(part_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerSetType(self.part, cval) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_part_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(62, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_part_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":41 + * cdef PetscPartitionerType cval = NULL + * part_type = str2bytes(part_type, &cval) + * CHKERR( PetscPartitionerSetType(self.part, cval) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerSetType(__pyx_v_self->part, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":38 + * return self + * + * def setType(self, part_type): # <<<<<<<<<<<<<< + * cdef PetscPartitionerType cval = NULL + * part_type = str2bytes(part_type, &cval) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_part_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":43 + * CHKERR( PetscPartitionerSetType(self.part, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscPartitionerType cval = NULL + * CHKERR( PetscPartitionerGetType(self.part, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_10getType[] = "Partitioner.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_11getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_10getType(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_10getType(struct PyPetscPartitionerObject *__pyx_v_self) { + PetscPartitionerType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":44 + * + * def getType(self): + * cdef PetscPartitionerType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerGetType(self.part, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":45 + * def getType(self): + * cdef PetscPartitionerType cval = NULL + * CHKERR( PetscPartitionerGetType(self.part, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerGetType(__pyx_v_self->part, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 45, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":46 + * cdef PetscPartitionerType cval = NULL + * CHKERR( PetscPartitionerGetType(self.part, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(62, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Partitioner.pyx":43 + * CHKERR( PetscPartitionerSetType(self.part, cval) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscPartitionerType cval = NULL + * CHKERR( PetscPartitionerGetType(self.part, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":48 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerSetFromOptions(self.part) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_13setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_12setFromOptions[] = "Partitioner.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_13setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_12setFromOptions(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_12setFromOptions(struct PyPetscPartitionerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":49 + * + * def setFromOptions(self): + * CHKERR( PetscPartitionerSetFromOptions(self.part) ) # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerSetFromOptions(__pyx_v_self->part)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 49, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":48 + * return bytes2str(cval) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerSetFromOptions(self.part) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":51 + * CHKERR( PetscPartitionerSetFromOptions(self.part) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerSetUp(self.part) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_14setUp[] = "Partitioner.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_15setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_14setUp(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_14setUp(struct PyPetscPartitionerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":52 + * + * def setUp(self): + * CHKERR( PetscPartitionerSetUp(self.part) ) # <<<<<<<<<<<<<< + * + * def reset(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerSetUp(__pyx_v_self->part)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":51 + * CHKERR( PetscPartitionerSetFromOptions(self.part) ) + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerSetUp(self.part) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":54 + * CHKERR( PetscPartitionerSetUp(self.part) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerReset(self.part) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_17reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_16reset[] = "Partitioner.reset(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_17reset(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("reset (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("reset", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "reset", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_16reset(((struct PyPetscPartitionerObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_16reset(struct PyPetscPartitionerObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("reset", 0); + + /* "petsc4py/PETSc/Partitioner.pyx":55 + * + * def reset(self): + * CHKERR( PetscPartitionerReset(self.part) ) # <<<<<<<<<<<<<< + * + * def setShellPartition(self, numProcs, sizes=None, points=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerReset(__pyx_v_self->part)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 55, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":54 + * CHKERR( PetscPartitionerSetUp(self.part) ) + * + * def reset(self): # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerReset(self.part) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.reset", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Partitioner.pyx":57 + * CHKERR( PetscPartitionerReset(self.part) ) + * + * def setShellPartition(self, numProcs, sizes=None, points=None): # <<<<<<<<<<<<<< + * cdef PetscInt cnumProcs = asInt(numProcs) + * cdef PetscInt *csizes = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_19setShellPartition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_11Partitioner_18setShellPartition[] = "Partitioner.setShellPartition(self, numProcs, sizes=None, points=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11Partitioner_19setShellPartition(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numProcs = 0; + PyObject *__pyx_v_sizes = 0; + PyObject *__pyx_v_points = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setShellPartition (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numProcs,&__pyx_n_s_sizes,&__pyx_n_s_points,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_None); + values[2] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numProcs)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sizes); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_points); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setShellPartition") < 0)) __PYX_ERR(62, 57, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_numProcs = values[0]; + __pyx_v_sizes = values[1]; + __pyx_v_points = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setShellPartition", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(62, 57, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setShellPartition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_11Partitioner_18setShellPartition(((struct PyPetscPartitionerObject *)__pyx_v_self), __pyx_v_numProcs, __pyx_v_sizes, __pyx_v_points); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_11Partitioner_18setShellPartition(struct PyPetscPartitionerObject *__pyx_v_self, PyObject *__pyx_v_numProcs, PyObject *__pyx_v_sizes, PyObject *__pyx_v_points) { + PetscInt __pyx_v_cnumProcs; + PetscInt *__pyx_v_csizes; + PetscInt *__pyx_v_cpoints; + PetscInt __pyx_v_nsize; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setShellPartition", 0); + __Pyx_INCREF(__pyx_v_sizes); + __Pyx_INCREF(__pyx_v_points); + + /* "petsc4py/PETSc/Partitioner.pyx":58 + * + * def setShellPartition(self, numProcs, sizes=None, points=None): + * cdef PetscInt cnumProcs = asInt(numProcs) # <<<<<<<<<<<<<< + * cdef PetscInt *csizes = NULL + * cdef PetscInt *cpoints = NULL + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numProcs); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(62, 58, __pyx_L1_error) + __pyx_v_cnumProcs = __pyx_t_1; + + /* "petsc4py/PETSc/Partitioner.pyx":59 + * def setShellPartition(self, numProcs, sizes=None, points=None): + * cdef PetscInt cnumProcs = asInt(numProcs) + * cdef PetscInt *csizes = NULL # <<<<<<<<<<<<<< + * cdef PetscInt *cpoints = NULL + * cdef PetscInt nsize = 0 + */ + __pyx_v_csizes = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":60 + * cdef PetscInt cnumProcs = asInt(numProcs) + * cdef PetscInt *csizes = NULL + * cdef PetscInt *cpoints = NULL # <<<<<<<<<<<<<< + * cdef PetscInt nsize = 0 + * if sizes is not None: + */ + __pyx_v_cpoints = NULL; + + /* "petsc4py/PETSc/Partitioner.pyx":61 + * cdef PetscInt *csizes = NULL + * cdef PetscInt *cpoints = NULL + * cdef PetscInt nsize = 0 # <<<<<<<<<<<<<< + * if sizes is not None: + * sizes = iarray_i(sizes, &nsize, &csizes) + */ + __pyx_v_nsize = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":62 + * cdef PetscInt *cpoints = NULL + * cdef PetscInt nsize = 0 + * if sizes is not None: # <<<<<<<<<<<<<< + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: + */ + __pyx_t_2 = (__pyx_v_sizes != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Partitioner.pyx":63 + * cdef PetscInt nsize = 0 + * if sizes is not None: + * sizes = iarray_i(sizes, &nsize, &csizes) # <<<<<<<<<<<<<< + * if nsize != cnumProcs: + * raise ValueError("sizes array should have %d entries (has %d)" % + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_sizes, (&__pyx_v_nsize), (&__pyx_v_csizes))); if (unlikely(!__pyx_t_4)) __PYX_ERR(62, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_sizes, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":64 + * if sizes is not None: + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: # <<<<<<<<<<<<<< + * raise ValueError("sizes array should have %d entries (has %d)" % + * numProcs, toInt(nsize)) + */ + __pyx_t_3 = ((__pyx_v_nsize != __pyx_v_cnumProcs) != 0); + if (unlikely(__pyx_t_3)) { + + /* "petsc4py/PETSc/Partitioner.pyx":65 + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: + * raise ValueError("sizes array should have %d entries (has %d)" % # <<<<<<<<<<<<<< + * numProcs, toInt(nsize)) + * if points is None: + */ + __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_sizes_array_should_have_d_entrie, __pyx_v_numProcs); if (unlikely(!__pyx_t_4)) __PYX_ERR(62, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "petsc4py/PETSc/Partitioner.pyx":66 + * if nsize != cnumProcs: + * raise ValueError("sizes array should have %d entries (has %d)" % + * numProcs, toInt(nsize)) # <<<<<<<<<<<<<< + * if points is None: + * raise ValueError("Must provide both sizes and points arrays") + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_nsize); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + + /* "petsc4py/PETSc/Partitioner.pyx":65 + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: + * raise ValueError("sizes array should have %d entries (has %d)" % # <<<<<<<<<<<<<< + * numProcs, toInt(nsize)) + * if points is None: + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(62, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(62, 65, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":64 + * if sizes is not None: + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: # <<<<<<<<<<<<<< + * raise ValueError("sizes array should have %d entries (has %d)" % + * numProcs, toInt(nsize)) + */ + } + + /* "petsc4py/PETSc/Partitioner.pyx":67 + * raise ValueError("sizes array should have %d entries (has %d)" % + * numProcs, toInt(nsize)) + * if points is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide both sizes and points arrays") + * if points is not None: + */ + __pyx_t_3 = (__pyx_v_points == Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/Partitioner.pyx":68 + * numProcs, toInt(nsize)) + * if points is None: + * raise ValueError("Must provide both sizes and points arrays") # <<<<<<<<<<<<<< + * if points is not None: + * points = iarray_i(points, NULL, &cpoints) + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__56, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(62, 68, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":67 + * raise ValueError("sizes array should have %d entries (has %d)" % + * numProcs, toInt(nsize)) + * if points is None: # <<<<<<<<<<<<<< + * raise ValueError("Must provide both sizes and points arrays") + * if points is not None: + */ + } + + /* "petsc4py/PETSc/Partitioner.pyx":62 + * cdef PetscInt *cpoints = NULL + * cdef PetscInt nsize = 0 + * if sizes is not None: # <<<<<<<<<<<<<< + * sizes = iarray_i(sizes, &nsize, &csizes) + * if nsize != cnumProcs: + */ + } + + /* "petsc4py/PETSc/Partitioner.pyx":69 + * if points is None: + * raise ValueError("Must provide both sizes and points arrays") + * if points is not None: # <<<<<<<<<<<<<< + * points = iarray_i(points, NULL, &cpoints) + * CHKERR( PetscPartitionerShellSetPartition(self.part, cnumProcs, + */ + __pyx_t_2 = (__pyx_v_points != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/Partitioner.pyx":70 + * raise ValueError("Must provide both sizes and points arrays") + * if points is not None: + * points = iarray_i(points, NULL, &cpoints) # <<<<<<<<<<<<<< + * CHKERR( PetscPartitionerShellSetPartition(self.part, cnumProcs, + * csizes, cpoints) ) + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_iarray_i(__pyx_v_points, NULL, (&__pyx_v_cpoints))); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF_SET(__pyx_v_points, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":69 + * if points is None: + * raise ValueError("Must provide both sizes and points arrays") + * if points is not None: # <<<<<<<<<<<<<< + * points = iarray_i(points, NULL, &cpoints) + * CHKERR( PetscPartitionerShellSetPartition(self.part, cnumProcs, + */ + } + + /* "petsc4py/PETSc/Partitioner.pyx":71 + * if points is not None: + * points = iarray_i(points, NULL, &cpoints) + * CHKERR( PetscPartitionerShellSetPartition(self.part, cnumProcs, # <<<<<<<<<<<<<< + * csizes, cpoints) ) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPartitionerShellSetPartition(__pyx_v_self->part, __pyx_v_cnumProcs, __pyx_v_csizes, __pyx_v_cpoints)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(62, 71, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":57 + * CHKERR( PetscPartitionerReset(self.part) ) + * + * def setShellPartition(self, numProcs, sizes=None, points=None): # <<<<<<<<<<<<<< + * cdef PetscInt cnumProcs = asInt(numProcs) + * cdef PetscInt *csizes = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.Partitioner.setShellPartition", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_sizes); + __Pyx_XDECREF(__pyx_v_points); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":18 + * Type = SpaceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.space + * self.space = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_5Space_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_5Space_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space___cinit__(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_5Space___cinit__(struct PyPetscSpaceObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Space.pyx":19 + * + * def __cinit__(self): + * self.obj = &self.space # <<<<<<<<<<<<<< + * self.space = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->space)); + + /* "petsc4py/PETSc/Space.pyx":20 + * def __cinit__(self): + * self.obj = &self.space + * self.space = NULL # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_v_self->space = NULL; + + /* "petsc4py/PETSc/Space.pyx":18 + * Type = SpaceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.space + * self.space = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":22 + * self.space = NULL + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetUp(self.space) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_3setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_2setUp[] = "Space.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_3setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_2setUp(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_2setUp(struct PyPetscSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Space.pyx":23 + * + * def setUp(self): + * CHKERR( PetscSpaceSetUp(self.space) ) # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetUp(__pyx_v_self->space)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 23, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":22 + * self.space = NULL + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetUp(self.space) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":25 + * CHKERR( PetscSpaceSetUp(self.space) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSpace newsp = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_4create[] = "Space.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(63, 25, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 25, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_4create(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_4create(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscSpace __pyx_v_newsp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Space.pyx":26 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscSpace newsp = NULL + * CHKERR( PetscSpaceCreate(ccomm, &newsp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(63, 26, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":27 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSpace newsp = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceCreate(ccomm, &newsp) ) + * PetscCLEAR(self.obj); self.space = newsp + */ + __pyx_v_newsp = NULL; + + /* "petsc4py/PETSc/Space.pyx":28 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSpace newsp = NULL + * CHKERR( PetscSpaceCreate(ccomm, &newsp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.space = newsp + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceCreate(__pyx_v_ccomm, (&__pyx_v_newsp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 28, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":29 + * cdef PetscSpace newsp = NULL + * CHKERR( PetscSpaceCreate(ccomm, &newsp) ) + * PetscCLEAR(self.obj); self.space = newsp # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->space = __pyx_v_newsp; + + /* "petsc4py/PETSc/Space.pyx":30 + * CHKERR( PetscSpaceCreate(ccomm, &newsp) ) + * PetscCLEAR(self.obj); self.space = newsp + * return self # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":25 + * CHKERR( PetscSpaceSetUp(self.space) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscSpace newsp = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":32 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceDestroy(&self.space) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_6destroy[] = "Space.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_6destroy(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_6destroy(struct PyPetscSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Space.pyx":33 + * + * def destroy(self): + * CHKERR( PetscSpaceDestroy(&self.space) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceDestroy((&__pyx_v_self->space))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":34 + * def destroy(self): + * CHKERR( PetscSpaceDestroy(&self.space) ) + * return self # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":32 + * return self + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceDestroy(&self.space) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":36 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_9view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_8view[] = "Space.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_9view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(63, 36, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 36, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(63, 36, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_8view(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_8view(struct PyPetscSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Space.pyx":37 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSpaceView(self.space, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Space.pyx":38 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceView(self.space, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Space.pyx":39 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscSpaceView(self.space, vwr) ) # <<<<<<<<<<<<<< + * + * def setFromOptions(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceView(__pyx_v_self->space, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 39, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":36 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":41 + * CHKERR( PetscSpaceView(self.space, vwr) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetFromOptions(self.space) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_11setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_10setFromOptions[] = "Space.setFromOptions(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_11setFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setFromOptions (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setFromOptions", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setFromOptions", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_10setFromOptions(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_10setFromOptions(struct PyPetscSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setFromOptions", 0); + + /* "petsc4py/PETSc/Space.pyx":42 + * + * def setFromOptions(self): + * CHKERR( PetscSpaceSetFromOptions(self.space) ) # <<<<<<<<<<<<<< + * + * def getDimension(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetFromOptions(__pyx_v_self->space)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 42, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":41 + * CHKERR( PetscSpaceView(self.space, vwr) ) + * + * def setFromOptions(self): # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetFromOptions(self.space) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":44 + * CHKERR( PetscSpaceSetFromOptions(self.space) ) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim + * CHKERR( PetscSpaceGetDimension(self.space, &cdim)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_13getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_12getDimension[] = "Space.getDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_13getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_12getDimension(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_12getDimension(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDimension", 0); + + /* "petsc4py/PETSc/Space.pyx":46 + * def getDimension(self): + * cdef PetscInt cdim + * CHKERR( PetscSpaceGetDimension(self.space, &cdim)) # <<<<<<<<<<<<<< + * return toInt(cdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceGetDimension(__pyx_v_self->space, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 46, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":47 + * cdef PetscInt cdim + * CHKERR( PetscSpaceGetDimension(self.space, &cdim)) + * return toInt(cdim) # <<<<<<<<<<<<<< + * + * def getDegree(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":44 + * CHKERR( PetscSpaceSetFromOptions(self.space) ) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim + * CHKERR( PetscSpaceGetDimension(self.space, &cdim)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":49 + * return toInt(cdim) + * + * def getDegree(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdegmax, cdegmin + * CHKERR( PetscSpaceGetDegree(self.space, &cdegmin, &cdegmax)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_15getDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_14getDegree[] = "Space.getDegree(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_15getDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDegree (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDegree", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDegree", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_14getDegree(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_14getDegree(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cdegmax; + PetscInt __pyx_v_cdegmin; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDegree", 0); + + /* "petsc4py/PETSc/Space.pyx":51 + * def getDegree(self): + * cdef PetscInt cdegmax, cdegmin + * CHKERR( PetscSpaceGetDegree(self.space, &cdegmin, &cdegmax)) # <<<<<<<<<<<<<< + * return toInt(cdegmin), toInt(cdegmax) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceGetDegree(__pyx_v_self->space, (&__pyx_v_cdegmin), (&__pyx_v_cdegmax))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 51, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":52 + * cdef PetscInt cdegmax, cdegmin + * CHKERR( PetscSpaceGetDegree(self.space, &cdegmin, &cdegmax)) + * return toInt(cdegmin), toInt(cdegmax) # <<<<<<<<<<<<<< + * + * def setDegree(self, degree, maxDegree): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdegmin); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdegmax); if (unlikely(!__pyx_t_3)) __PYX_ERR(63, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(63, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":49 + * return toInt(cdim) + * + * def getDegree(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdegmax, cdegmin + * CHKERR( PetscSpaceGetDegree(self.space, &cdegmin, &cdegmax)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":54 + * return toInt(cdegmin), toInt(cdegmax) + * + * def setDegree(self, degree, maxDegree): # <<<<<<<<<<<<<< + * assert( (degree != None) & (maxDegree != None)) + * cdef PetscInt cdegree = PETSC_DETERMINE + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_17setDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_16setDegree[] = "Space.setDegree(self, degree, maxDegree)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_17setDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_degree = 0; + PyObject *__pyx_v_maxDegree = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDegree (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_degree,&__pyx_n_s_maxDegree,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degree)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_maxDegree)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setDegree", 1, 2, 2, 1); __PYX_ERR(63, 54, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDegree") < 0)) __PYX_ERR(63, 54, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_degree = values[0]; + __pyx_v_maxDegree = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDegree", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 54, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_16setDegree(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_degree, __pyx_v_maxDegree); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_16setDegree(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_degree, PyObject *__pyx_v_maxDegree) { + PetscInt __pyx_v_cdegree; + PetscInt __pyx_v_cmaxdegree; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PetscInt __pyx_t_6; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDegree", 0); + + /* "petsc4py/PETSc/Space.pyx":55 + * + * def setDegree(self, degree, maxDegree): + * assert( (degree != None) & (maxDegree != None)) # <<<<<<<<<<<<<< + * cdef PetscInt cdegree = PETSC_DETERMINE + * if degree is not None: cdegree = asInt(degree) + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + __pyx_t_1 = PyObject_RichCompare(__pyx_v_degree, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 55, __pyx_L1_error) + __pyx_t_2 = PyObject_RichCompare(__pyx_v_maxDegree, Py_None, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 55, __pyx_L1_error) + __pyx_t_3 = PyNumber_And(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(63, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(63, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_4)) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(63, 55, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/Space.pyx":56 + * def setDegree(self, degree, maxDegree): + * assert( (degree != None) & (maxDegree != None)) + * cdef PetscInt cdegree = PETSC_DETERMINE # <<<<<<<<<<<<<< + * if degree is not None: cdegree = asInt(degree) + * cdef PetscInt cmaxdegree = PETSC_DETERMINE + */ + __pyx_v_cdegree = PETSC_DETERMINE; + + /* "petsc4py/PETSc/Space.pyx":57 + * assert( (degree != None) & (maxDegree != None)) + * cdef PetscInt cdegree = PETSC_DETERMINE + * if degree is not None: cdegree = asInt(degree) # <<<<<<<<<<<<<< + * cdef PetscInt cmaxdegree = PETSC_DETERMINE + * if maxDegree is not None: cmaxdegree = asInt(maxDegree) + */ + __pyx_t_4 = (__pyx_v_degree != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_degree); if (unlikely(__pyx_t_6 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 57, __pyx_L1_error) + __pyx_v_cdegree = __pyx_t_6; + } + + /* "petsc4py/PETSc/Space.pyx":58 + * cdef PetscInt cdegree = PETSC_DETERMINE + * if degree is not None: cdegree = asInt(degree) + * cdef PetscInt cmaxdegree = PETSC_DETERMINE # <<<<<<<<<<<<<< + * if maxDegree is not None: cmaxdegree = asInt(maxDegree) + * CHKERR( PetscSpaceSetDegree(self.space, cdegree, cmaxdegree) ) + */ + __pyx_v_cmaxdegree = PETSC_DETERMINE; + + /* "petsc4py/PETSc/Space.pyx":59 + * if degree is not None: cdegree = asInt(degree) + * cdef PetscInt cmaxdegree = PETSC_DETERMINE + * if maxDegree is not None: cmaxdegree = asInt(maxDegree) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetDegree(self.space, cdegree, cmaxdegree) ) + * + */ + __pyx_t_5 = (__pyx_v_maxDegree != Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + if (__pyx_t_4) { + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_maxDegree); if (unlikely(__pyx_t_6 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 59, __pyx_L1_error) + __pyx_v_cmaxdegree = __pyx_t_6; + } + + /* "petsc4py/PETSc/Space.pyx":60 + * cdef PetscInt cmaxdegree = PETSC_DETERMINE + * if maxDegree is not None: cmaxdegree = asInt(maxDegree) + * CHKERR( PetscSpaceSetDegree(self.space, cdegree, cmaxdegree) ) # <<<<<<<<<<<<<< + * + * def getNumVariables(self): + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetDegree(__pyx_v_self->space, __pyx_v_cdegree, __pyx_v_cmaxdegree)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 60, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":54 + * return toInt(cdegmin), toInt(cdegmax) + * + * def setDegree(self, degree, maxDegree): # <<<<<<<<<<<<<< + * assert( (degree != None) & (maxDegree != None)) + * cdef PetscInt cdegree = PETSC_DETERMINE + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.Space.setDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":62 + * CHKERR( PetscSpaceSetDegree(self.space, cdegree, cmaxdegree) ) + * + * def getNumVariables(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnvars + * CHKERR( PetscSpaceGetNumVariables(self.space, &cnvars)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_19getNumVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_18getNumVariables[] = "Space.getNumVariables(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_19getNumVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumVariables (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumVariables", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumVariables", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_18getNumVariables(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_18getNumVariables(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cnvars; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumVariables", 0); + + /* "petsc4py/PETSc/Space.pyx":64 + * def getNumVariables(self): + * cdef PetscInt cnvars + * CHKERR( PetscSpaceGetNumVariables(self.space, &cnvars)) # <<<<<<<<<<<<<< + * return toInt(cnvars) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceGetNumVariables(__pyx_v_self->space, (&__pyx_v_cnvars))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":65 + * cdef PetscInt cnvars + * CHKERR( PetscSpaceGetNumVariables(self.space, &cnvars)) + * return toInt(cnvars) # <<<<<<<<<<<<<< + * + * def setNumVariables(self, n): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnvars); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":62 + * CHKERR( PetscSpaceSetDegree(self.space, cdegree, cmaxdegree) ) + * + * def getNumVariables(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnvars + * CHKERR( PetscSpaceGetNumVariables(self.space, &cnvars)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getNumVariables", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":67 + * return toInt(cnvars) + * + * def setNumVariables(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn = asInt(n) + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_21setNumVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_20setNumVariables[] = "Space.setNumVariables(self, n)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_21setNumVariables(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_n = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumVariables (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumVariables") < 0)) __PYX_ERR(63, 67, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_n = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumVariables", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 67, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setNumVariables", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_20setNumVariables(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_n); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_20setNumVariables(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_n) { + PetscInt __pyx_v_cn; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumVariables", 0); + + /* "petsc4py/PETSc/Space.pyx":68 + * + * def setNumVariables(self, n): + * cdef PetscInt cn = asInt(n) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_n); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 68, __pyx_L1_error) + __pyx_v_cn = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":69 + * def setNumVariables(self, n): + * cdef PetscInt cn = asInt(n) + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) # <<<<<<<<<<<<<< + * + * def getNumComponents(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetNumVariables(__pyx_v_self->space, __pyx_v_cn)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 69, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":67 + * return toInt(cnvars) + * + * def setNumVariables(self, n): # <<<<<<<<<<<<<< + * cdef PetscInt cn = asInt(n) + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setNumVariables", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":71 + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cncomps + * CHKERR( PetscSpaceGetNumComponents(self.space, &cncomps)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_23getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_22getNumComponents[] = "Space.getNumComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_23getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_22getNumComponents(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_22getNumComponents(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cncomps; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumComponents", 0); + + /* "petsc4py/PETSc/Space.pyx":73 + * def getNumComponents(self): + * cdef PetscInt cncomps + * CHKERR( PetscSpaceGetNumComponents(self.space, &cncomps)) # <<<<<<<<<<<<<< + * return toInt(cncomps) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceGetNumComponents(__pyx_v_self->space, (&__pyx_v_cncomps))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 73, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":74 + * cdef PetscInt cncomps + * CHKERR( PetscSpaceGetNumComponents(self.space, &cncomps)) + * return toInt(cncomps) # <<<<<<<<<<<<<< + * + * def setNumComponents(self, nc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cncomps); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":71 + * CHKERR( PetscSpaceSetNumVariables(self.space, cn) ) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cncomps + * CHKERR( PetscSpaceGetNumComponents(self.space, &cncomps)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":76 + * return toInt(cncomps) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscSpaceSetNumComponents(self.space, cnc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_25setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_24setNumComponents[] = "Space.setNumComponents(self, nc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_25setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumComponents") < 0)) __PYX_ERR(63, 76, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nc = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumComponents", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 76, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_24setNumComponents(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_nc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_24setNumComponents(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_nc) { + PetscInt __pyx_v_cnc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumComponents", 0); + + /* "petsc4py/PETSc/Space.pyx":77 + * + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetNumComponents(self.space, cnc) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nc); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 77, __pyx_L1_error) + __pyx_v_cnc = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":78 + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscSpaceSetNumComponents(self.space, cnc) ) # <<<<<<<<<<<<<< + * + * #def evaluate(self, points): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetNumComponents(__pyx_v_self->space, __pyx_v_cnc)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 78, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":76 + * return toInt(cncomps) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscSpaceSetNumComponents(self.space, cnc) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":91 + * # return array_r(cnpoints*cdim, B), array_r(cnpoints*cnc, D), array_r(, H) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSpaceType cval = NULL + * CHKERR( PetscSpaceGetType(self.space, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_27getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_26getType[] = "Space.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_27getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_26getType(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_26getType(struct PyPetscSpaceObject *__pyx_v_self) { + PetscSpaceType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Space.pyx":92 + * + * def getType(self): + * cdef PetscSpaceType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceGetType(self.space, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Space.pyx":93 + * def getType(self): + * cdef PetscSpaceType cval = NULL + * CHKERR( PetscSpaceGetType(self.space, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceGetType(__pyx_v_self->space, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 93, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":94 + * cdef PetscSpaceType cval = NULL + * CHKERR( PetscSpaceGetType(self.space, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setType(self, space_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":91 + * # return array_r(cnpoints*cdim, B), array_r(cnpoints*cnc, D), array_r(, H) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscSpaceType cval = NULL + * CHKERR( PetscSpaceGetType(self.space, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":96 + * return bytes2str(cval) + * + * def setType(self, space_type): # <<<<<<<<<<<<<< + * cdef PetscSpaceType cval = NULL + * space_type = str2bytes(space_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_29setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_28setType[] = "Space.setType(self, space_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_29setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_space_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_space_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_space_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(63, 96, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_space_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 96, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_28setType(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_space_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_28setType(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_space_type) { + PetscSpaceType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + __Pyx_INCREF(__pyx_v_space_type); + + /* "petsc4py/PETSc/Space.pyx":97 + * + * def setType(self, space_type): + * cdef PetscSpaceType cval = NULL # <<<<<<<<<<<<<< + * space_type = str2bytes(space_type, &cval) + * CHKERR( PetscSpaceSetType(self.space, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Space.pyx":98 + * def setType(self, space_type): + * cdef PetscSpaceType cval = NULL + * space_type = str2bytes(space_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSetType(self.space, cval) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_space_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_space_type, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":99 + * cdef PetscSpaceType cval = NULL + * space_type = str2bytes(space_type, &cval) + * CHKERR( PetscSpaceSetType(self.space, cval) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSetType(__pyx_v_self->space, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 99, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":100 + * space_type = str2bytes(space_type, &cval) + * CHKERR( PetscSpaceSetType(self.space, cval) ) + * return self # <<<<<<<<<<<<<< + * + * def getSumConcatenate(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":96 + * return bytes2str(cval) + * + * def setType(self, space_type): # <<<<<<<<<<<<<< + * cdef PetscSpaceType cval = NULL + * space_type = str2bytes(space_type, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Space.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_space_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":102 + * return self + * + * def getSumConcatenate(self): # <<<<<<<<<<<<<< + * cdef PetscBool concatenate + * CHKERR( PetscSpaceSumGetConcatenate(self.space, &concatenate)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_31getSumConcatenate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_30getSumConcatenate[] = "Space.getSumConcatenate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_31getSumConcatenate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSumConcatenate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSumConcatenate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSumConcatenate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_30getSumConcatenate(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_30getSumConcatenate(struct PyPetscSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_concatenate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSumConcatenate", 0); + + /* "petsc4py/PETSc/Space.pyx":104 + * def getSumConcatenate(self): + * cdef PetscBool concatenate + * CHKERR( PetscSpaceSumGetConcatenate(self.space, &concatenate)) # <<<<<<<<<<<<<< + * return toBool(concatenate) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumGetConcatenate(__pyx_v_self->space, (&__pyx_v_concatenate))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":105 + * cdef PetscBool concatenate + * CHKERR( PetscSpaceSumGetConcatenate(self.space, &concatenate)) + * return toBool(concatenate) # <<<<<<<<<<<<<< + * + * def setSumConcatenate(self, concatenate): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_concatenate); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":102 + * return self + * + * def getSumConcatenate(self): # <<<<<<<<<<<<<< + * cdef PetscBool concatenate + * CHKERR( PetscSpaceSumGetConcatenate(self.space, &concatenate)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getSumConcatenate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":107 + * return toBool(concatenate) + * + * def setSumConcatenate(self, concatenate): # <<<<<<<<<<<<<< + * cdef PetscBool cconcatenate = asBool(concatenate) + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_33setSumConcatenate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_32setSumConcatenate[] = "Space.setSumConcatenate(self, concatenate)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_33setSumConcatenate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_concatenate = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSumConcatenate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_concatenate,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_concatenate)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSumConcatenate") < 0)) __PYX_ERR(63, 107, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_concatenate = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSumConcatenate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 107, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumConcatenate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_32setSumConcatenate(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_concatenate); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_32setSumConcatenate(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_concatenate) { + CYTHON_UNUSED PetscBool __pyx_v_cconcatenate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSumConcatenate", 0); + + /* "petsc4py/PETSc/Space.pyx":108 + * + * def setSumConcatenate(self, concatenate): + * cdef PetscBool cconcatenate = asBool(concatenate) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_concatenate); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(63, 108, __pyx_L1_error) + __pyx_v_cconcatenate = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":109 + * def setSumConcatenate(self, concatenate): + * cdef PetscBool cconcatenate = asBool(concatenate) + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) # <<<<<<<<<<<<<< + * + * def getSumNumSubspaces(self): + */ + __pyx_t_1 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_concatenate)); if (unlikely(PyErr_Occurred())) __PYX_ERR(63, 109, __pyx_L1_error) + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumSetConcatenate(__pyx_v_self->space, __pyx_t_1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":107 + * return toBool(concatenate) + * + * def setSumConcatenate(self, concatenate): # <<<<<<<<<<<<<< + * cdef PetscBool cconcatenate = asBool(concatenate) + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumConcatenate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":111 + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) + * + * def getSumNumSubspaces(self): # <<<<<<<<<<<<<< + * cdef PetscInt numSumSpaces + * CHKERR( PetscSpaceSumGetNumSubspaces(self.space, &numSumSpaces)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_35getSumNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_34getSumNumSubspaces[] = "Space.getSumNumSubspaces(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_35getSumNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSumNumSubspaces (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getSumNumSubspaces", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getSumNumSubspaces", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_34getSumNumSubspaces(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_34getSumNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_numSumSpaces; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSumNumSubspaces", 0); + + /* "petsc4py/PETSc/Space.pyx":113 + * def getSumNumSubspaces(self): + * cdef PetscInt numSumSpaces + * CHKERR( PetscSpaceSumGetNumSubspaces(self.space, &numSumSpaces)) # <<<<<<<<<<<<<< + * return toInt(numSumSpaces) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumGetNumSubspaces(__pyx_v_self->space, (&__pyx_v_numSumSpaces))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 113, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":114 + * cdef PetscInt numSumSpaces + * CHKERR( PetscSpaceSumGetNumSubspaces(self.space, &numSumSpaces)) + * return toInt(numSumSpaces) # <<<<<<<<<<<<<< + * + * def getSumSubspace(self, s): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_numSumSpaces); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":111 + * CHKERR( PetscSpaceSumSetConcatenate(self.space, concatenate)) + * + * def getSumNumSubspaces(self): # <<<<<<<<<<<<<< + * cdef PetscInt numSumSpaces + * CHKERR( PetscSpaceSumGetNumSubspaces(self.space, &numSumSpaces)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getSumNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":116 + * return toInt(numSumSpaces) + * + * def getSumSubspace(self, s): # <<<<<<<<<<<<<< + * cdef Space subsp = Space() + * cdef PetscInt cs = asInt(s) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_37getSumSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_36getSumSubspace[] = "Space.getSumSubspace(self, s)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_37getSumSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_s = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getSumSubspace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getSumSubspace") < 0)) __PYX_ERR(63, 116, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_s = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getSumSubspace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 116, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.getSumSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_36getSumSubspace(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_s); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_36getSumSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s) { + struct PyPetscSpaceObject *__pyx_v_subsp = 0; + CYTHON_UNUSED PetscInt __pyx_v_cs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscInt __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getSumSubspace", 0); + + /* "petsc4py/PETSc/Space.pyx":117 + * + * def getSumSubspace(self, s): + * cdef Space subsp = Space() # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumGetSubspace(self.space, s, &subsp.space) ) + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Space)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_subsp = ((struct PyPetscSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":118 + * def getSumSubspace(self, s): + * cdef Space subsp = Space() + * cdef PetscInt cs = asInt(s) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSumGetSubspace(self.space, s, &subsp.space) ) + * return subsp + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_s); if (unlikely(__pyx_t_2 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 118, __pyx_L1_error) + __pyx_v_cs = __pyx_t_2; + + /* "petsc4py/PETSc/Space.pyx":119 + * cdef Space subsp = Space() + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumGetSubspace(self.space, s, &subsp.space) ) # <<<<<<<<<<<<<< + * return subsp + * + */ + __pyx_t_2 = __Pyx_PyInt_As_PetscInt(__pyx_v_s); if (unlikely((__pyx_t_2 == ((PetscInt)-1)) && PyErr_Occurred())) __PYX_ERR(63, 119, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumGetSubspace(__pyx_v_self->space, __pyx_t_2, (&__pyx_v_subsp->space))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 119, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":120 + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumGetSubspace(self.space, s, &subsp.space) ) + * return subsp # <<<<<<<<<<<<<< + * + * def setSumSubspace(self, s, Space subsp): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_subsp)); + __pyx_r = ((PyObject *)__pyx_v_subsp); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":116 + * return toInt(numSumSpaces) + * + * def getSumSubspace(self, s): # <<<<<<<<<<<<<< + * cdef Space subsp = Space() + * cdef PetscInt cs = asInt(s) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getSumSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_subsp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":122 + * return subsp + * + * def setSumSubspace(self, s, Space subsp): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_39setSumSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_38setSumSubspace[] = "Space.setSumSubspace(self, s, Space subsp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_39setSumSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_s = 0; + struct PyPetscSpaceObject *__pyx_v_subsp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSumSubspace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_subsp,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subsp)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setSumSubspace", 1, 2, 2, 1); __PYX_ERR(63, 122, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSumSubspace") < 0)) __PYX_ERR(63, 122, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_s = values[0]; + __pyx_v_subsp = ((struct PyPetscSpaceObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSumSubspace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 122, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subsp), __pyx_ptype_8petsc4py_5PETSc_Space, 0, "subsp", 0))) __PYX_ERR(63, 122, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_38setSumSubspace(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_s, __pyx_v_subsp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_38setSumSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s, struct PyPetscSpaceObject *__pyx_v_subsp) { + PetscInt __pyx_v_cs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSumSubspace", 0); + + /* "petsc4py/PETSc/Space.pyx":123 + * + * def setSumSubspace(self, s, Space subsp): + * cdef PetscInt cs = asInt(s) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_s); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 123, __pyx_L1_error) + __pyx_v_cs = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":124 + * def setSumSubspace(self, s, Space subsp): + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) # <<<<<<<<<<<<<< + * + * def setSumNumSubspaces(self, numSumSpaces): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumSetSubspace(__pyx_v_self->space, __pyx_v_cs, __pyx_v_subsp->space)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 124, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":122 + * return subsp + * + * def setSumSubspace(self, s, Space subsp): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":126 + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) + * + * def setSumNumSubspaces(self, numSumSpaces): # <<<<<<<<<<<<<< + * cdef PetscInt cnumSumSpaces = asInt(numSumSpaces) + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_41setSumNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_40setSumNumSubspaces[] = "Space.setSumNumSubspaces(self, numSumSpaces)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_41setSumNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numSumSpaces = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSumNumSubspaces (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numSumSpaces,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numSumSpaces)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSumNumSubspaces") < 0)) __PYX_ERR(63, 126, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_numSumSpaces = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSumNumSubspaces", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 126, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_40setSumNumSubspaces(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_numSumSpaces); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_40setSumNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_numSumSpaces) { + PetscInt __pyx_v_cnumSumSpaces; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSumNumSubspaces", 0); + + /* "petsc4py/PETSc/Space.pyx":127 + * + * def setSumNumSubspaces(self, numSumSpaces): + * cdef PetscInt cnumSumSpaces = asInt(numSumSpaces) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numSumSpaces); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 127, __pyx_L1_error) + __pyx_v_cnumSumSpaces = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":128 + * def setSumNumSubspaces(self, numSumSpaces): + * cdef PetscInt cnumSumSpaces = asInt(numSumSpaces) + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) # <<<<<<<<<<<<<< + * + * def getTensorNumSubspaces(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceSumSetNumSubspaces(__pyx_v_self->space, __pyx_v_cnumSumSpaces)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 128, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":126 + * CHKERR( PetscSpaceSumSetSubspace(self.space, cs, subsp.space) ) + * + * def setSumNumSubspaces(self, numSumSpaces): # <<<<<<<<<<<<<< + * cdef PetscInt cnumSumSpaces = asInt(numSumSpaces) + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setSumNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":130 + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) + * + * def getTensorNumSubspaces(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnumTensSpaces = 0 + * CHKERR( PetscSpaceTensorGetNumSubspaces(self.space, &cnumTensSpaces) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_43getTensorNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_42getTensorNumSubspaces[] = "Space.getTensorNumSubspaces(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_43getTensorNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTensorNumSubspaces (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getTensorNumSubspaces", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getTensorNumSubspaces", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_42getTensorNumSubspaces(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_42getTensorNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cnumTensSpaces; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTensorNumSubspaces", 0); + + /* "petsc4py/PETSc/Space.pyx":131 + * + * def getTensorNumSubspaces(self): + * cdef PetscInt cnumTensSpaces = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceTensorGetNumSubspaces(self.space, &cnumTensSpaces) ) + * return toInt(cnumTensSpaces) + */ + __pyx_v_cnumTensSpaces = 0; + + /* "petsc4py/PETSc/Space.pyx":132 + * def getTensorNumSubspaces(self): + * cdef PetscInt cnumTensSpaces = 0 + * CHKERR( PetscSpaceTensorGetNumSubspaces(self.space, &cnumTensSpaces) ) # <<<<<<<<<<<<<< + * return toInt(cnumTensSpaces) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceTensorGetNumSubspaces(__pyx_v_self->space, (&__pyx_v_cnumTensSpaces))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 132, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":133 + * cdef PetscInt cnumTensSpaces = 0 + * CHKERR( PetscSpaceTensorGetNumSubspaces(self.space, &cnumTensSpaces) ) + * return toInt(cnumTensSpaces) # <<<<<<<<<<<<<< + * + * def setTensorSubspace(self, s, Space subsp): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cnumTensSpaces); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":130 + * CHKERR( PetscSpaceSumSetNumSubspaces(self.space, cnumSumSpaces) ) + * + * def getTensorNumSubspaces(self): # <<<<<<<<<<<<<< + * cdef PetscInt cnumTensSpaces = 0 + * CHKERR( PetscSpaceTensorGetNumSubspaces(self.space, &cnumTensSpaces) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getTensorNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":135 + * return toInt(cnumTensSpaces) + * + * def setTensorSubspace(self, s, Space subsp): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_45setTensorSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_44setTensorSubspace[] = "Space.setTensorSubspace(self, s, Space subsp)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_45setTensorSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_s = 0; + struct PyPetscSpaceObject *__pyx_v_subsp = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTensorSubspace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,&__pyx_n_s_subsp,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_subsp)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setTensorSubspace", 1, 2, 2, 1); __PYX_ERR(63, 135, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTensorSubspace") < 0)) __PYX_ERR(63, 135, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_s = values[0]; + __pyx_v_subsp = ((struct PyPetscSpaceObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTensorSubspace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 135, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setTensorSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_subsp), __pyx_ptype_8petsc4py_5PETSc_Space, 0, "subsp", 0))) __PYX_ERR(63, 135, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_44setTensorSubspace(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_s, __pyx_v_subsp); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_44setTensorSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s, struct PyPetscSpaceObject *__pyx_v_subsp) { + PetscInt __pyx_v_cs; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTensorSubspace", 0); + + /* "petsc4py/PETSc/Space.pyx":136 + * + * def setTensorSubspace(self, s, Space subsp): + * cdef PetscInt cs = asInt(s) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_s); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 136, __pyx_L1_error) + __pyx_v_cs = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":137 + * def setTensorSubspace(self, s, Space subsp): + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) # <<<<<<<<<<<<<< + * + * def getTensorSubspace(self, s): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceTensorSetSubspace(__pyx_v_self->space, __pyx_v_cs, __pyx_v_subsp->space)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 137, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":135 + * return toInt(cnumTensSpaces) + * + * def setTensorSubspace(self, s, Space subsp): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setTensorSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":139 + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) + * + * def getTensorSubspace(self, s): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * cdef Space subsp = Space() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_47getTensorSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_46getTensorSubspace[] = "Space.getTensorSubspace(self, s)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_47getTensorSubspace(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_s = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getTensorSubspace (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_s_2,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_s_2)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getTensorSubspace") < 0)) __PYX_ERR(63, 139, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_s = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getTensorSubspace", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 139, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.getTensorSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_46getTensorSubspace(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_s); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_46getTensorSubspace(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_s) { + PetscInt __pyx_v_cs; + struct PyPetscSpaceObject *__pyx_v_subsp = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getTensorSubspace", 0); + + /* "petsc4py/PETSc/Space.pyx":140 + * + * def getTensorSubspace(self, s): + * cdef PetscInt cs = asInt(s) # <<<<<<<<<<<<<< + * cdef Space subsp = Space() + * CHKERR( PetscSpaceTensorGetSubspace(self.space, cs, &subsp.space) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_s); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 140, __pyx_L1_error) + __pyx_v_cs = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":141 + * def getTensorSubspace(self, s): + * cdef PetscInt cs = asInt(s) + * cdef Space subsp = Space() # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceTensorGetSubspace(self.space, cs, &subsp.space) ) + * return subsp + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Space)); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_subsp = ((struct PyPetscSpaceObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Space.pyx":142 + * cdef PetscInt cs = asInt(s) + * cdef Space subsp = Space() + * CHKERR( PetscSpaceTensorGetSubspace(self.space, cs, &subsp.space) ) # <<<<<<<<<<<<<< + * return subsp + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceTensorGetSubspace(__pyx_v_self->space, __pyx_v_cs, (&__pyx_v_subsp->space))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 142, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":143 + * cdef Space subsp = Space() + * CHKERR( PetscSpaceTensorGetSubspace(self.space, cs, &subsp.space) ) + * return subsp # <<<<<<<<<<<<<< + * + * def setTensorNumSubspaces(self, numTensSpaces): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_subsp)); + __pyx_r = ((PyObject *)__pyx_v_subsp); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":139 + * CHKERR( PetscSpaceTensorSetSubspace(self.space, cs, subsp.space) ) + * + * def getTensorSubspace(self, s): # <<<<<<<<<<<<<< + * cdef PetscInt cs = asInt(s) + * cdef Space subsp = Space() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getTensorSubspace", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_subsp); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":145 + * return subsp + * + * def setTensorNumSubspaces(self, numTensSpaces): # <<<<<<<<<<<<<< + * cdef PetscInt cnumTensSpaces = asInt(numTensSpaces) + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_49setTensorNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_48setTensorNumSubspaces[] = "Space.setTensorNumSubspaces(self, numTensSpaces)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_49setTensorNumSubspaces(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_numTensSpaces = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setTensorNumSubspaces (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_numTensSpaces,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_numTensSpaces)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setTensorNumSubspaces") < 0)) __PYX_ERR(63, 145, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_numTensSpaces = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setTensorNumSubspaces", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 145, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setTensorNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_48setTensorNumSubspaces(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_numTensSpaces); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_48setTensorNumSubspaces(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_numTensSpaces) { + PetscInt __pyx_v_cnumTensSpaces; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setTensorNumSubspaces", 0); + + /* "petsc4py/PETSc/Space.pyx":146 + * + * def setTensorNumSubspaces(self, numTensSpaces): + * cdef PetscInt cnumTensSpaces = asInt(numTensSpaces) # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_numTensSpaces); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 146, __pyx_L1_error) + __pyx_v_cnumTensSpaces = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":147 + * def setTensorNumSubspaces(self, numTensSpaces): + * cdef PetscInt cnumTensSpaces = asInt(numTensSpaces) + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) # <<<<<<<<<<<<<< + * + * def getPolynomialTensor(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceTensorSetNumSubspaces(__pyx_v_self->space, __pyx_v_cnumTensSpaces)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 147, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":145 + * return subsp + * + * def setTensorNumSubspaces(self, numTensSpaces): # <<<<<<<<<<<<<< + * cdef PetscInt cnumTensSpaces = asInt(numTensSpaces) + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setTensorNumSubspaces", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":149 + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) + * + * def getPolynomialTensor(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor + * CHKERR( PetscSpacePolynomialGetTensor(self.space, &ctensor) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_51getPolynomialTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_50getPolynomialTensor[] = "Space.getPolynomialTensor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_51getPolynomialTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPolynomialTensor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPolynomialTensor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPolynomialTensor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_50getPolynomialTensor(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_50getPolynomialTensor(struct PyPetscSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_ctensor; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPolynomialTensor", 0); + + /* "petsc4py/PETSc/Space.pyx":151 + * def getPolynomialTensor(self): + * cdef PetscBool ctensor + * CHKERR( PetscSpacePolynomialGetTensor(self.space, &ctensor) ) # <<<<<<<<<<<<<< + * return toBool(ctensor) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePolynomialGetTensor(__pyx_v_self->space, (&__pyx_v_ctensor))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 151, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":152 + * cdef PetscBool ctensor + * CHKERR( PetscSpacePolynomialGetTensor(self.space, &ctensor) ) + * return toBool(ctensor) # <<<<<<<<<<<<<< + * + * def setPolynomialTensor(self, tensor): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_ctensor); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":149 + * CHKERR( PetscSpaceTensorSetNumSubspaces(self.space, cnumTensSpaces) ) + * + * def getPolynomialTensor(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor + * CHKERR( PetscSpacePolynomialGetTensor(self.space, &ctensor) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getPolynomialTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":154 + * return toBool(ctensor) + * + * def setPolynomialTensor(self, tensor): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_53setPolynomialTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_52setPolynomialTensor[] = "Space.setPolynomialTensor(self, tensor)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_53setPolynomialTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tensor = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPolynomialTensor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tensor,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tensor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPolynomialTensor") < 0)) __PYX_ERR(63, 154, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tensor = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPolynomialTensor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 154, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPolynomialTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_52setPolynomialTensor(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_tensor); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_52setPolynomialTensor(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_tensor) { + PetscBool __pyx_v_ctensor; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPolynomialTensor", 0); + + /* "petsc4py/PETSc/Space.pyx":155 + * + * def setPolynomialTensor(self, tensor): + * cdef PetscBool ctensor = asBool(tensor) # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_tensor); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(63, 155, __pyx_L1_error) + __pyx_v_ctensor = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":156 + * def setPolynomialTensor(self, tensor): + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) # <<<<<<<<<<<<<< + * + * def setPointPoints(self, Quad quad): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePolynomialSetTensor(__pyx_v_self->space, __pyx_v_ctensor)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 156, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":154 + * return toBool(ctensor) + * + * def setPolynomialTensor(self, tensor): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPolynomialTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":158 + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) + * + * def setPointPoints(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePointSetPoints(self.space, quad.quad)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_55setPointPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_54setPointPoints[] = "Space.setPointPoints(self, Quad quad)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_55setPointPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPointPoints (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_quad,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_quad)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPointPoints") < 0)) __PYX_ERR(63, 158, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_quad = ((struct PyPetscQuadObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPointPoints", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 158, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPointPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_quad), __pyx_ptype_8petsc4py_5PETSc_Quad, 0, "quad", 0))) __PYX_ERR(63, 158, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_54setPointPoints(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_quad); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_54setPointPoints(struct PyPetscSpaceObject *__pyx_v_self, struct PyPetscQuadObject *__pyx_v_quad) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPointPoints", 0); + + /* "petsc4py/PETSc/Space.pyx":159 + * + * def setPointPoints(self, Quad quad): + * CHKERR( PetscSpacePointSetPoints(self.space, quad.quad)) # <<<<<<<<<<<<<< + * + * def getPointPoints(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePointSetPoints(__pyx_v_self->space, __pyx_v_quad->quad)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":158 + * CHKERR( PetscSpacePolynomialSetTensor(self.space, ctensor) ) + * + * def setPointPoints(self, Quad quad): # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePointSetPoints(self.space, quad.quad)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPointPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":161 + * CHKERR( PetscSpacePointSetPoints(self.space, quad.quad)) + * + * def getPointPoints(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscSpacePointGetPoints(self.space, &quad.quad)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_57getPointPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_56getPointPoints[] = "Space.getPointPoints(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_57getPointPoints(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPointPoints (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPointPoints", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPointPoints", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_56getPointPoints(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_56getPointPoints(struct PyPetscSpaceObject *__pyx_v_self) { + struct PyPetscQuadObject *__pyx_v_quad = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPointPoints", 0); + + /* "petsc4py/PETSc/Space.pyx":162 + * + * def getPointPoints(self): + * cdef Quad quad = Quad() # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePointGetPoints(self.space, &quad.quad)) + * return quad + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_quad = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":163 + * def getPointPoints(self): + * cdef Quad quad = Quad() + * CHKERR( PetscSpacePointGetPoints(self.space, &quad.quad)) # <<<<<<<<<<<<<< + * return quad + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePointGetPoints(__pyx_v_self->space, (&__pyx_v_quad->quad))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 163, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":164 + * cdef Quad quad = Quad() + * CHKERR( PetscSpacePointGetPoints(self.space, &quad.quad)) + * return quad # <<<<<<<<<<<<<< + * + * def setPTrimmedFormDegree(self, formDegree): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_quad)); + __pyx_r = ((PyObject *)__pyx_v_quad); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":161 + * CHKERR( PetscSpacePointSetPoints(self.space, quad.quad)) + * + * def getPointPoints(self): # <<<<<<<<<<<<<< + * cdef Quad quad = Quad() + * CHKERR( PetscSpacePointGetPoints(self.space, &quad.quad)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getPointPoints", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_quad); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":166 + * return quad + * + * def setPTrimmedFormDegree(self, formDegree): # <<<<<<<<<<<<<< + * cdef PetscInt cformDegree = asInt(formDegree) + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_59setPTrimmedFormDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_58setPTrimmedFormDegree[] = "Space.setPTrimmedFormDegree(self, formDegree)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_59setPTrimmedFormDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_formDegree = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setPTrimmedFormDegree (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_formDegree,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_formDegree)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setPTrimmedFormDegree") < 0)) __PYX_ERR(63, 166, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_formDegree = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setPTrimmedFormDegree", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 166, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPTrimmedFormDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_58setPTrimmedFormDegree(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_formDegree); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_58setPTrimmedFormDegree(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_formDegree) { + PetscInt __pyx_v_cformDegree; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setPTrimmedFormDegree", 0); + + /* "petsc4py/PETSc/Space.pyx":167 + * + * def setPTrimmedFormDegree(self, formDegree): + * cdef PetscInt cformDegree = asInt(formDegree) # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_formDegree); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 167, __pyx_L1_error) + __pyx_v_cformDegree = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":168 + * def setPTrimmedFormDegree(self, formDegree): + * cdef PetscInt cformDegree = asInt(formDegree) + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) # <<<<<<<<<<<<<< + * + * def getPTrimmedFormDegree(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePTrimmedSetFormDegree(__pyx_v_self->space, __pyx_v_cformDegree)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 168, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":166 + * return quad + * + * def setPTrimmedFormDegree(self, formDegree): # <<<<<<<<<<<<<< + * cdef PetscInt cformDegree = asInt(formDegree) + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.setPTrimmedFormDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":170 + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) + * + * def getPTrimmedFormDegree(self): # <<<<<<<<<<<<<< + * cdef PetscInt cformDegree = 0 + * CHKERR( PetscSpacePTrimmedGetFormDegree(self.space, &cformDegree) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_61getPTrimmedFormDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_60getPTrimmedFormDegree[] = "Space.getPTrimmedFormDegree(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_61getPTrimmedFormDegree(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getPTrimmedFormDegree (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getPTrimmedFormDegree", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getPTrimmedFormDegree", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_60getPTrimmedFormDegree(((struct PyPetscSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_60getPTrimmedFormDegree(struct PyPetscSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cformDegree; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getPTrimmedFormDegree", 0); + + /* "petsc4py/PETSc/Space.pyx":171 + * + * def getPTrimmedFormDegree(self): + * cdef PetscInt cformDegree = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscSpacePTrimmedGetFormDegree(self.space, &cformDegree) ) + * return toInt(cformDegree) + */ + __pyx_v_cformDegree = 0; + + /* "petsc4py/PETSc/Space.pyx":172 + * def getPTrimmedFormDegree(self): + * cdef PetscInt cformDegree = 0 + * CHKERR( PetscSpacePTrimmedGetFormDegree(self.space, &cformDegree) ) # <<<<<<<<<<<<<< + * return toInt(cformDegree) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpacePTrimmedGetFormDegree(__pyx_v_self->space, (&__pyx_v_cformDegree))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 172, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":173 + * cdef PetscInt cformDegree = 0 + * CHKERR( PetscSpacePTrimmedGetFormDegree(self.space, &cformDegree) ) + * return toInt(cformDegree) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object obj=None): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cformDegree); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":170 + * CHKERR( PetscSpacePTrimmedSetFormDegree(self.space, cformDegree) ) + * + * def getPTrimmedFormDegree(self): # <<<<<<<<<<<<<< + * cdef PetscInt cformDegree = 0 + * CHKERR( PetscSpacePTrimmedGetFormDegree(self.space, &cformDegree) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.Space.getPTrimmedFormDegree", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":175 + * return toInt(cformDegree) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_63viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_5Space_62viewFromOptions[] = "Space.viewFromOptions(self, name, Object obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5Space_63viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(63, 175, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 175, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.Space.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(63, 175, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_5Space_62viewFromOptions(((struct PyPetscSpaceObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_5Space_62viewFromOptions(struct PyPetscSpaceObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cname; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + + /* "petsc4py/PETSc/Space.pyx":176 + * + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Space.pyx":177 + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__ = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":178 + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscSpaceViewFromOptions(self.space, cobj, cname) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/Space.pyx":179 + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] # <<<<<<<<<<<<<< + * CHKERR( PetscSpaceViewFromOptions(self.space, cobj, cname) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + } + + /* "petsc4py/PETSc/Space.pyx":180 + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscSpaceViewFromOptions(self.space, cobj, cname) ) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscSpaceViewFromOptions(__pyx_v_self->space, __pyx_v_cobj, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 180, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":175 + * return toInt(cformDegree) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Space.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":196 + * Type = DualSpaceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dualspace + * self.dualspace = NULL + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_9DualSpace_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_9DualSpace_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace___cinit__(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_9DualSpace___cinit__(struct PyPetscDualSpaceObject *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/Space.pyx":197 + * + * def __cinit__(self): + * self.obj = &self.dualspace # <<<<<<<<<<<<<< + * self.dualspace = NULL + * + */ + __pyx_v_self->__pyx_base.obj = ((PetscObject *)(&__pyx_v_self->dualspace)); + + /* "petsc4py/PETSc/Space.pyx":198 + * def __cinit__(self): + * self.obj = &self.dualspace + * self.dualspace = NULL # <<<<<<<<<<<<<< + * + * def setUp(self): + */ + __pyx_v_self->dualspace = NULL; + + /* "petsc4py/PETSc/Space.pyx":196 + * Type = DualSpaceType + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.obj = &self.dualspace + * self.dualspace = NULL + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":200 + * self.dualspace = NULL + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetUp(self.dualspace) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_3setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_2setUp[] = "DualSpace.setUp(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_3setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("setUp", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "setUp", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_2setUp(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_2setUp(struct PyPetscDualSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/Space.pyx":201 + * + * def setUp(self): + * CHKERR( PetscDualSpaceSetUp(self.dualspace) ) # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSetUp(__pyx_v_self->dualspace)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 201, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":200 + * self.dualspace = NULL + * + * def setUp(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetUp(self.dualspace) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":203 + * CHKERR( PetscDualSpaceSetUp(self.dualspace) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDualSpace newdsp = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_4create[] = "DualSpace.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(63, 203, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 203, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_4create(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_4create(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + PetscDualSpace __pyx_v_newdsp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/Space.pyx":204 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) # <<<<<<<<<<<<<< + * cdef PetscDualSpace newdsp = NULL + * CHKERR( PetscDualSpaceCreate(ccomm, &newdsp) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT); if (unlikely(PyErr_Occurred())) __PYX_ERR(63, 204, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":205 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDualSpace newdsp = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceCreate(ccomm, &newdsp) ) + * PetscCLEAR(self.obj); self.dualspace = newdsp + */ + __pyx_v_newdsp = NULL; + + /* "petsc4py/PETSc/Space.pyx":206 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDualSpace newdsp = NULL + * CHKERR( PetscDualSpaceCreate(ccomm, &newdsp) ) # <<<<<<<<<<<<<< + * PetscCLEAR(self.obj); self.dualspace = newdsp + * return self + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceCreate(__pyx_v_ccomm, (&__pyx_v_newdsp))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 206, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":207 + * cdef PetscDualSpace newdsp = NULL + * CHKERR( PetscDualSpaceCreate(ccomm, &newdsp) ) + * PetscCLEAR(self.obj); self.dualspace = newdsp # <<<<<<<<<<<<<< + * return self + * + */ + (void)(__pyx_f_8petsc4py_5PETSc_PetscCLEAR(__pyx_v_self->__pyx_base.obj)); + __pyx_v_self->dualspace = __pyx_v_newdsp; + + /* "petsc4py/PETSc/Space.pyx":208 + * CHKERR( PetscDualSpaceCreate(ccomm, &newdsp) ) + * PetscCLEAR(self.obj); self.dualspace = newdsp + * return self # <<<<<<<<<<<<<< + * + * def view(self, Viewer viewer=None): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":203 + * CHKERR( PetscDualSpaceSetUp(self.dualspace) ) + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscDualSpace newdsp = NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":210 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_7view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_6view[] = "DualSpace.view(self, Viewer viewer=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_7view(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscViewerObject *__pyx_v_viewer = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("view (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_viewer,0}; + PyObject* values[1] = {0}; + values[0] = (PyObject *)((struct PyPetscViewerObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_viewer); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "view") < 0)) __PYX_ERR(63, 210, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_viewer = ((struct PyPetscViewerObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("view", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 210, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_viewer), __pyx_ptype_8petsc4py_5PETSc_Viewer, 1, "viewer", 0))) __PYX_ERR(63, 210, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_6view(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_viewer); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_6view(struct PyPetscDualSpaceObject *__pyx_v_self, struct PyPetscViewerObject *__pyx_v_viewer) { + PetscViewer __pyx_v_vwr; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PetscViewer __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("view", 0); + + /* "petsc4py/PETSc/Space.pyx":211 + * + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL # <<<<<<<<<<<<<< + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscDualSpaceView(self.dualspace, vwr) ) + */ + __pyx_v_vwr = NULL; + + /* "petsc4py/PETSc/Space.pyx":212 + * def view(self, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceView(self.dualspace, vwr) ) + * + */ + __pyx_t_1 = (((PyObject *)__pyx_v_viewer) != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = __pyx_v_viewer->vwr; + __pyx_v_vwr = __pyx_t_3; + } + + /* "petsc4py/PETSc/Space.pyx":213 + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + * CHKERR( PetscDualSpaceView(self.dualspace, vwr) ) # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceView(__pyx_v_self->dualspace, __pyx_v_vwr)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":210 + * return self + * + * def view(self, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.view", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":215 + * CHKERR( PetscDualSpaceView(self.dualspace, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceDestroy(&self.dualspace) ) + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_8destroy[] = "DualSpace.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_9destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_8destroy(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_8destroy(struct PyPetscDualSpaceObject *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/Space.pyx":216 + * + * def destroy(self): + * CHKERR( PetscDualSpaceDestroy(&self.dualspace) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceDestroy((&__pyx_v_self->dualspace))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 216, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":217 + * def destroy(self): + * CHKERR( PetscDualSpaceDestroy(&self.dualspace) ) + * return self # <<<<<<<<<<<<<< + * + * def duplicate(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":215 + * CHKERR( PetscDualSpaceView(self.dualspace, vwr) ) + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceDestroy(&self.dualspace) ) + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":219 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef DualSpace spNew = DualSpace() + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_11duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_10duplicate[] = "DualSpace.duplicate(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_11duplicate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("duplicate (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("duplicate", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "duplicate", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_10duplicate(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_10duplicate(struct PyPetscDualSpaceObject *__pyx_v_self) { + struct PyPetscDualSpaceObject *__pyx_v_spNew = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("duplicate", 0); + + /* "petsc4py/PETSc/Space.pyx":220 + * + * def duplicate(self): + * cdef DualSpace spNew = DualSpace() # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) + * + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DualSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_spNew = ((struct PyPetscDualSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":221 + * def duplicate(self): + * cdef DualSpace spNew = DualSpace() + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) # <<<<<<<<<<<<<< + * + * def getDM(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceDuplicate(__pyx_v_self->dualspace, (&__pyx_v_spNew->dualspace))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 221, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":219 + * return self + * + * def duplicate(self): # <<<<<<<<<<<<<< + * cdef DualSpace spNew = DualSpace() + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.duplicate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_spNew); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":223 + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef DM dm = DM() + * CHKERR( PetscDualSpaceGetDM(self.dualspace, &dm.dm) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_13getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_12getDM[] = "DualSpace.getDM(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_13getDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDM (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDM", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDM", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_12getDM(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_12getDM(struct PyPetscDualSpaceObject *__pyx_v_self) { + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDM", 0); + + /* "petsc4py/PETSc/Space.pyx":224 + * + * def getDM(self): + * cdef DM dm = DM() # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetDM(self.dualspace, &dm.dm) ) + * return dm + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_dm = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":225 + * def getDM(self): + * cdef DM dm = DM() + * CHKERR( PetscDualSpaceGetDM(self.dualspace, &dm.dm) ) # <<<<<<<<<<<<<< + * return dm + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetDM(__pyx_v_self->dualspace, (&__pyx_v_dm->dm))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 225, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":226 + * cdef DM dm = DM() + * CHKERR( PetscDualSpaceGetDM(self.dualspace, &dm.dm) ) + * return dm # <<<<<<<<<<<<<< + * + * def setDM(self, DM dm): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_dm)); + __pyx_r = ((PyObject *)__pyx_v_dm); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":223 + * CHKERR( PetscDualSpaceDuplicate(self.dualspace, &spNew.dualspace) ) + * + * def getDM(self): # <<<<<<<<<<<<<< + * cdef DM dm = DM() + * CHKERR( PetscDualSpaceGetDM(self.dualspace, &dm.dm) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_dm); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":228 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetDM(self.dualspace, dm.dm) ) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_15setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_14setDM[] = "DualSpace.setDM(self, DM dm)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_15setDM(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDM (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDM") < 0)) __PYX_ERR(63, 228, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDM", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 228, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(63, 228, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_14setDM(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_dm); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_14setDM(struct PyPetscDualSpaceObject *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDM", 0); + + /* "petsc4py/PETSc/Space.pyx":229 + * + * def setDM(self, DM dm): + * CHKERR( PetscDualSpaceSetDM(self.dualspace, dm.dm) ) # <<<<<<<<<<<<<< + * + * def getDimension(self): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSetDM(__pyx_v_self->dualspace, __pyx_v_dm->dm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 229, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":228 + * return dm + * + * def setDM(self, DM dm): # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetDM(self.dualspace, dm.dm) ) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setDM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":231 + * CHKERR( PetscDualSpaceSetDM(self.dualspace, dm.dm) ) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_17getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_16getDimension[] = "DualSpace.getDimension(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_17getDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDimension (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDimension", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDimension", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_16getDimension(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_16getDimension(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDimension", 0); + + /* "petsc4py/PETSc/Space.pyx":233 + * def getDimension(self): + * cdef PetscInt cdim + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim)) # <<<<<<<<<<<<<< + * return toInt(cdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetDimension(__pyx_v_self->dualspace, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 233, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":234 + * cdef PetscInt cdim + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim)) + * return toInt(cdim) # <<<<<<<<<<<<<< + * + * def getNumComponents(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":231 + * CHKERR( PetscDualSpaceSetDM(self.dualspace, dm.dm) ) + * + * def getDimension(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":236 + * return toInt(cdim) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cncomps + * CHKERR( PetscDualSpaceGetNumComponents(self.dualspace, &cncomps)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_19getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_18getNumComponents[] = "DualSpace.getNumComponents(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_19getNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumComponents (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumComponents", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumComponents", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_18getNumComponents(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_18getNumComponents(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_cncomps; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumComponents", 0); + + /* "petsc4py/PETSc/Space.pyx":238 + * def getNumComponents(self): + * cdef PetscInt cncomps + * CHKERR( PetscDualSpaceGetNumComponents(self.dualspace, &cncomps)) # <<<<<<<<<<<<<< + * return toInt(cncomps) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetNumComponents(__pyx_v_self->dualspace, (&__pyx_v_cncomps))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 238, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":239 + * cdef PetscInt cncomps + * CHKERR( PetscDualSpaceGetNumComponents(self.dualspace, &cncomps)) + * return toInt(cncomps) # <<<<<<<<<<<<<< + * + * def setNumComponents(self, nc): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cncomps); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":236 + * return toInt(cdim) + * + * def getNumComponents(self): # <<<<<<<<<<<<<< + * cdef PetscInt cncomps + * CHKERR( PetscDualSpaceGetNumComponents(self.dualspace, &cncomps)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":241 + * return toInt(cncomps) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_21setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_20setNumComponents[] = "DualSpace.setNumComponents(self, nc)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_21setNumComponents(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_nc = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setNumComponents (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_nc,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nc)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setNumComponents") < 0)) __PYX_ERR(63, 241, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_nc = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setNumComponents", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 241, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_20setNumComponents(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_nc); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_20setNumComponents(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_nc) { + PetscInt __pyx_v_cnc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setNumComponents", 0); + + /* "petsc4py/PETSc/Space.pyx":242 + * + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_nc); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 242, __pyx_L1_error) + __pyx_v_cnc = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":243 + * def setNumComponents(self, nc): + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) # <<<<<<<<<<<<<< + * + * def getType(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSetNumComponents(__pyx_v_self->dualspace, __pyx_v_cnc)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 243, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":241 + * return toInt(cncomps) + * + * def setNumComponents(self, nc): # <<<<<<<<<<<<<< + * cdef PetscInt cnc = asInt(nc) + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setNumComponents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":245 + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDualSpaceType cval = NULL + * CHKERR( PetscDualSpaceGetType(self.dualspace, &cval) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_23getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_22getType[] = "DualSpace.getType(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_23getType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getType (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getType", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getType", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_22getType(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_22getType(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscDualSpaceType __pyx_v_cval; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getType", 0); + + /* "petsc4py/PETSc/Space.pyx":246 + * + * def getType(self): + * cdef PetscDualSpaceType cval = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetType(self.dualspace, &cval) ) + * return bytes2str(cval) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Space.pyx":247 + * def getType(self): + * cdef PetscDualSpaceType cval = NULL + * CHKERR( PetscDualSpaceGetType(self.dualspace, &cval) ) # <<<<<<<<<<<<<< + * return bytes2str(cval) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetType(__pyx_v_self->dualspace, (&__pyx_v_cval))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 247, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":248 + * cdef PetscDualSpaceType cval = NULL + * CHKERR( PetscDualSpaceGetType(self.dualspace, &cval) ) + * return bytes2str(cval) # <<<<<<<<<<<<<< + * + * def setType(self, dualspace_type): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cval); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":245 + * CHKERR( PetscDualSpaceSetNumComponents(self.dualspace, cnc) ) + * + * def getType(self): # <<<<<<<<<<<<<< + * cdef PetscDualSpaceType cval = NULL + * CHKERR( PetscDualSpaceGetType(self.dualspace, &cval) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":250 + * return bytes2str(cval) + * + * def setType(self, dualspace_type): # <<<<<<<<<<<<<< + * cdef PetscDualSpaceType cval = NULL + * space_type = str2bytes(dualspace_type, &cval) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_25setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_24setType[] = "DualSpace.setType(self, dualspace_type)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_25setType(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dualspace_type = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setType (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dualspace_type,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dualspace_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setType") < 0)) __PYX_ERR(63, 250, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dualspace_type = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setType", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 250, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_24setType(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_dualspace_type); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_24setType(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_dualspace_type) { + PetscDualSpaceType __pyx_v_cval; + CYTHON_UNUSED PyObject *__pyx_v_space_type = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setType", 0); + + /* "petsc4py/PETSc/Space.pyx":251 + * + * def setType(self, dualspace_type): + * cdef PetscDualSpaceType cval = NULL # <<<<<<<<<<<<<< + * space_type = str2bytes(dualspace_type, &cval) + * CHKERR( PetscDualSpaceSetType(self.dualspace, cval) ) + */ + __pyx_v_cval = NULL; + + /* "petsc4py/PETSc/Space.pyx":252 + * def setType(self, dualspace_type): + * cdef PetscDualSpaceType cval = NULL + * space_type = str2bytes(dualspace_type, &cval) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetType(self.dualspace, cval) ) + * return self + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_dualspace_type, (&__pyx_v_cval)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_space_type = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":253 + * cdef PetscDualSpaceType cval = NULL + * space_type = str2bytes(dualspace_type, &cval) + * CHKERR( PetscDualSpaceSetType(self.dualspace, cval) ) # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSetType(__pyx_v_self->dualspace, __pyx_v_cval)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 253, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":254 + * space_type = str2bytes(dualspace_type, &cval) + * CHKERR( PetscDualSpaceSetType(self.dualspace, cval) ) + * return self # <<<<<<<<<<<<<< + * + * def getOrder(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":250 + * return bytes2str(cval) + * + * def setType(self, dualspace_type): # <<<<<<<<<<<<<< + * cdef PetscDualSpaceType cval = NULL + * space_type = str2bytes(dualspace_type, &cval) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setType", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_space_type); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":256 + * return self + * + * def getOrder(self): # <<<<<<<<<<<<<< + * cdef PetscInt corder + * CHKERR( PetscDualSpaceGetOrder(self.dualspace, &corder)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_27getOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_26getOrder[] = "DualSpace.getOrder(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_27getOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getOrder (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getOrder", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getOrder", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_26getOrder(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_26getOrder(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscInt __pyx_v_corder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getOrder", 0); + + /* "petsc4py/PETSc/Space.pyx":258 + * def getOrder(self): + * cdef PetscInt corder + * CHKERR( PetscDualSpaceGetOrder(self.dualspace, &corder)) # <<<<<<<<<<<<<< + * return toInt(corder) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetOrder(__pyx_v_self->dualspace, (&__pyx_v_corder))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 258, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":259 + * cdef PetscInt corder + * CHKERR( PetscDualSpaceGetOrder(self.dualspace, &corder)) + * return toInt(corder) # <<<<<<<<<<<<<< + * + * def setOrder(self, order): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_corder); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":256 + * return self + * + * def getOrder(self): # <<<<<<<<<<<<<< + * cdef PetscInt corder + * CHKERR( PetscDualSpaceGetOrder(self.dualspace, &corder)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":261 + * return toInt(corder) + * + * def setOrder(self, order): # <<<<<<<<<<<<<< + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_29setOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_28setOrder[] = "DualSpace.setOrder(self, order)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_29setOrder(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_order = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setOrder (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_order,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_order)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setOrder") < 0)) __PYX_ERR(63, 261, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_order = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setOrder", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 261, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_28setOrder(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_order); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_28setOrder(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_order) { + PetscInt __pyx_v_corder; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setOrder", 0); + + /* "petsc4py/PETSc/Space.pyx":262 + * + * def setOrder(self, order): + * cdef PetscInt corder = asInt(order) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_order); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 262, __pyx_L1_error) + __pyx_v_corder = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":263 + * def setOrder(self, order): + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) # <<<<<<<<<<<<<< + * + * def getNumDof(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSetOrder(__pyx_v_self->dualspace, __pyx_v_corder)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 263, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":261 + * return toInt(corder) + * + * def setOrder(self, order): # <<<<<<<<<<<<<< + * cdef PetscInt corder = asInt(order) + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setOrder", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":265 + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) + * + * def getNumDof(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *cndof = NULL + * cdef PetscInt cdim = 0 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_31getNumDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_30getNumDof[] = "DualSpace.getNumDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_31getNumDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getNumDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getNumDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getNumDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_30getNumDof(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_30getNumDof(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscInt const *__pyx_v_cndof; + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getNumDof", 0); + + /* "petsc4py/PETSc/Space.pyx":266 + * + * def getNumDof(self): + * cdef const PetscInt *cndof = NULL # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim) ) + */ + __pyx_v_cndof = NULL; + + /* "petsc4py/PETSc/Space.pyx":267 + * def getNumDof(self): + * cdef const PetscInt *cndof = NULL + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim) ) + * CHKERR( PetscDualSpaceGetNumDof(self.dualspace, &cndof) ) + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/Space.pyx":268 + * cdef const PetscInt *cndof = NULL + * cdef PetscInt cdim = 0 + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim) ) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetNumDof(self.dualspace, &cndof) ) + * return array_i(cdim + 1, cndof) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetDimension(__pyx_v_self->dualspace, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 268, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":269 + * cdef PetscInt cdim = 0 + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim) ) + * CHKERR( PetscDualSpaceGetNumDof(self.dualspace, &cndof) ) # <<<<<<<<<<<<<< + * return array_i(cdim + 1, cndof) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetNumDof(__pyx_v_self->dualspace, (&__pyx_v_cndof))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 269, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":270 + * CHKERR( PetscDualSpaceGetDimension(self.dualspace, &cdim) ) + * CHKERR( PetscDualSpaceGetNumDof(self.dualspace, &cndof) ) + * return array_i(cdim + 1, cndof) # <<<<<<<<<<<<<< + * + * def getFunctional(self, i): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i((__pyx_v_cdim + 1), __pyx_v_cndof)); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":265 + * CHKERR( PetscDualSpaceSetOrder(self.dualspace, corder) ) + * + * def getNumDof(self): # <<<<<<<<<<<<<< + * cdef const PetscInt *cndof = NULL + * cdef PetscInt cdim = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getNumDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":272 + * return array_i(cdim + 1, cndof) + * + * def getFunctional(self, i): # <<<<<<<<<<<<<< + * cdef PetscInt ci = asInt(i) + * cdef Quad functional = Quad() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_33getFunctional(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_32getFunctional[] = "DualSpace.getFunctional(self, i)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_33getFunctional(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_i = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getFunctional (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_i,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_i)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getFunctional") < 0)) __PYX_ERR(63, 272, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_i = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getFunctional", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 272, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getFunctional", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_32getFunctional(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_i); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_32getFunctional(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_i) { + PetscInt __pyx_v_ci; + struct PyPetscQuadObject *__pyx_v_functional = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getFunctional", 0); + + /* "petsc4py/PETSc/Space.pyx":273 + * + * def getFunctional(self, i): + * cdef PetscInt ci = asInt(i) # <<<<<<<<<<<<<< + * cdef Quad functional = Quad() + * CHKERR( PetscDualSpaceGetFunctional( self.dualspace, ci, &functional.quad) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_i); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 273, __pyx_L1_error) + __pyx_v_ci = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":274 + * def getFunctional(self, i): + * cdef PetscInt ci = asInt(i) + * cdef Quad functional = Quad() # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetFunctional( self.dualspace, ci, &functional.quad) ) + * return functional + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_functional = ((struct PyPetscQuadObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/Space.pyx":275 + * cdef PetscInt ci = asInt(i) + * cdef Quad functional = Quad() + * CHKERR( PetscDualSpaceGetFunctional( self.dualspace, ci, &functional.quad) ) # <<<<<<<<<<<<<< + * return functional + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetFunctional(__pyx_v_self->dualspace, __pyx_v_ci, (&__pyx_v_functional->quad))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":276 + * cdef Quad functional = Quad() + * CHKERR( PetscDualSpaceGetFunctional( self.dualspace, ci, &functional.quad) ) + * return functional # <<<<<<<<<<<<<< + * + * def getInteriorDimension(self, intdim): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_functional)); + __pyx_r = ((PyObject *)__pyx_v_functional); + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":272 + * return array_i(cdim + 1, cndof) + * + * def getFunctional(self, i): # <<<<<<<<<<<<<< + * cdef PetscInt ci = asInt(i) + * cdef Quad functional = Quad() + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getFunctional", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_functional); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":278 + * return functional + * + * def getInteriorDimension(self, intdim): # <<<<<<<<<<<<<< + * cdef PetscInt cintdim = asInt(intdim) + * CHKERR( PetscDualSpaceGetInteriorDimension(self.dualspace, &cintdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_35getInteriorDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_34getInteriorDimension[] = "DualSpace.getInteriorDimension(self, intdim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_35getInteriorDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_intdim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getInteriorDimension (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_intdim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_intdim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "getInteriorDimension") < 0)) __PYX_ERR(63, 278, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_intdim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("getInteriorDimension", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 278, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getInteriorDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_34getInteriorDimension(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_intdim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_34getInteriorDimension(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_intdim) { + PetscInt __pyx_v_cintdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getInteriorDimension", 0); + + /* "petsc4py/PETSc/Space.pyx":279 + * + * def getInteriorDimension(self, intdim): + * cdef PetscInt cintdim = asInt(intdim) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceGetInteriorDimension(self.dualspace, &cintdim) ) + * return toInt(cintdim) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_intdim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 279, __pyx_L1_error) + __pyx_v_cintdim = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":280 + * def getInteriorDimension(self, intdim): + * cdef PetscInt cintdim = asInt(intdim) + * CHKERR( PetscDualSpaceGetInteriorDimension(self.dualspace, &cintdim) ) # <<<<<<<<<<<<<< + * return toInt(cintdim) + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceGetInteriorDimension(__pyx_v_self->dualspace, (&__pyx_v_cintdim))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":281 + * cdef PetscInt cintdim = asInt(intdim) + * CHKERR( PetscDualSpaceGetInteriorDimension(self.dualspace, &cintdim) ) + * return toInt(cintdim) # <<<<<<<<<<<<<< + * + * def getLagrangeContinuity(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cintdim); if (unlikely(!__pyx_t_3)) __PYX_ERR(63, 281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":278 + * return functional + * + * def getInteriorDimension(self, intdim): # <<<<<<<<<<<<<< + * cdef PetscInt cintdim = asInt(intdim) + * CHKERR( PetscDualSpaceGetInteriorDimension(self.dualspace, &cintdim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getInteriorDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":283 + * return toInt(cintdim) + * + * def getLagrangeContinuity(self): # <<<<<<<<<<<<<< + * cdef PetscBool ccontinuous = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetContinuity(self.dualspace, &ccontinuous)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_37getLagrangeContinuity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_36getLagrangeContinuity[] = "DualSpace.getLagrangeContinuity(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_37getLagrangeContinuity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLagrangeContinuity (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLagrangeContinuity", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLagrangeContinuity", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_36getLagrangeContinuity(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_36getLagrangeContinuity(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_ccontinuous; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLagrangeContinuity", 0); + + /* "petsc4py/PETSc/Space.pyx":284 + * + * def getLagrangeContinuity(self): + * cdef PetscBool ccontinuous = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeGetContinuity(self.dualspace, &ccontinuous)) + * return toBool(ccontinuous) + */ + __pyx_v_ccontinuous = PETSC_FALSE; + + /* "petsc4py/PETSc/Space.pyx":285 + * def getLagrangeContinuity(self): + * cdef PetscBool ccontinuous = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetContinuity(self.dualspace, &ccontinuous)) # <<<<<<<<<<<<<< + * return toBool(ccontinuous) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeGetContinuity(__pyx_v_self->dualspace, (&__pyx_v_ccontinuous))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 285, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":286 + * cdef PetscBool ccontinuous = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetContinuity(self.dualspace, &ccontinuous)) + * return toBool(ccontinuous) # <<<<<<<<<<<<<< + * + * def setLagrangeContinuity(self, continuous): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_ccontinuous); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":283 + * return toInt(cintdim) + * + * def getLagrangeContinuity(self): # <<<<<<<<<<<<<< + * cdef PetscBool ccontinuous = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetContinuity(self.dualspace, &ccontinuous)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getLagrangeContinuity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":288 + * return toBool(ccontinuous) + * + * def setLagrangeContinuity(self, continuous): # <<<<<<<<<<<<<< + * cdef PetscBool ccontinuous = asBool(continuous) + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_39setLagrangeContinuity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_38setLagrangeContinuity[] = "DualSpace.setLagrangeContinuity(self, continuous)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_39setLagrangeContinuity(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_continuous = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLagrangeContinuity (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_continuous,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_continuous)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLagrangeContinuity") < 0)) __PYX_ERR(63, 288, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_continuous = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLagrangeContinuity", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 288, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeContinuity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_38setLagrangeContinuity(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_continuous); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_38setLagrangeContinuity(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_continuous) { + PetscBool __pyx_v_ccontinuous; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLagrangeContinuity", 0); + + /* "petsc4py/PETSc/Space.pyx":289 + * + * def setLagrangeContinuity(self, continuous): + * cdef PetscBool ccontinuous = asBool(continuous) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_continuous); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(63, 289, __pyx_L1_error) + __pyx_v_ccontinuous = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":290 + * def setLagrangeContinuity(self, continuous): + * cdef PetscBool ccontinuous = asBool(continuous) + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) # <<<<<<<<<<<<<< + * + * def getLagrangeTensor(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeSetContinuity(__pyx_v_self->dualspace, __pyx_v_ccontinuous)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 290, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":288 + * return toBool(ccontinuous) + * + * def setLagrangeContinuity(self, continuous): # <<<<<<<<<<<<<< + * cdef PetscBool ccontinuous = asBool(continuous) + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeContinuity", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":292 + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) + * + * def getLagrangeTensor(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTensor(self.dualspace, &ctensor)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_41getLagrangeTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_40getLagrangeTensor[] = "DualSpace.getLagrangeTensor(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_41getLagrangeTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLagrangeTensor (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLagrangeTensor", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLagrangeTensor", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_40getLagrangeTensor(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_40getLagrangeTensor(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_ctensor; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLagrangeTensor", 0); + + /* "petsc4py/PETSc/Space.pyx":293 + * + * def getLagrangeTensor(self): + * cdef PetscBool ctensor = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeGetTensor(self.dualspace, &ctensor)) + * return toBool(ctensor) + */ + __pyx_v_ctensor = PETSC_FALSE; + + /* "petsc4py/PETSc/Space.pyx":294 + * def getLagrangeTensor(self): + * cdef PetscBool ctensor = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTensor(self.dualspace, &ctensor)) # <<<<<<<<<<<<<< + * return toBool(ctensor) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeGetTensor(__pyx_v_self->dualspace, (&__pyx_v_ctensor))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 294, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":295 + * cdef PetscBool ctensor = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTensor(self.dualspace, &ctensor)) + * return toBool(ctensor) # <<<<<<<<<<<<<< + * + * def setLagrangeTensor(self, tensor): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_ctensor); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":292 + * CHKERR( PetscDualSpaceLagrangeSetContinuity(self.dualspace, ccontinuous)) + * + * def getLagrangeTensor(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTensor(self.dualspace, &ctensor)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getLagrangeTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":297 + * return toBool(ctensor) + * + * def setLagrangeTensor(self, tensor): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_43setLagrangeTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_42setLagrangeTensor[] = "DualSpace.setLagrangeTensor(self, tensor)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_43setLagrangeTensor(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_tensor = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLagrangeTensor (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_tensor,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tensor)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLagrangeTensor") < 0)) __PYX_ERR(63, 297, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_tensor = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLagrangeTensor", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 297, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_42setLagrangeTensor(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_tensor); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_42setLagrangeTensor(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_tensor) { + PetscBool __pyx_v_ctensor; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLagrangeTensor", 0); + + /* "petsc4py/PETSc/Space.pyx":298 + * + * def setLagrangeTensor(self, tensor): + * cdef PetscBool ctensor = asBool(tensor) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_tensor); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(63, 298, __pyx_L1_error) + __pyx_v_ctensor = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":299 + * def setLagrangeTensor(self, tensor): + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) # <<<<<<<<<<<<<< + * + * def getLagrangeTrimmed(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeSetTensor(__pyx_v_self->dualspace, __pyx_v_ctensor)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 299, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":297 + * return toBool(ctensor) + * + * def setLagrangeTensor(self, tensor): # <<<<<<<<<<<<<< + * cdef PetscBool ctensor = asBool(tensor) + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeTensor", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":301 + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) + * + * def getLagrangeTrimmed(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctrimmed = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTrimmed(self.dualspace, &ctrimmed)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_45getLagrangeTrimmed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_44getLagrangeTrimmed[] = "DualSpace.getLagrangeTrimmed(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_45getLagrangeTrimmed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getLagrangeTrimmed (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getLagrangeTrimmed", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getLagrangeTrimmed", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_44getLagrangeTrimmed(((struct PyPetscDualSpaceObject *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_44getLagrangeTrimmed(struct PyPetscDualSpaceObject *__pyx_v_self) { + PetscBool __pyx_v_ctrimmed; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getLagrangeTrimmed", 0); + + /* "petsc4py/PETSc/Space.pyx":302 + * + * def getLagrangeTrimmed(self): + * cdef PetscBool ctrimmed = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeGetTrimmed(self.dualspace, &ctrimmed)) + * return toBool(ctrimmed) + */ + __pyx_v_ctrimmed = PETSC_FALSE; + + /* "petsc4py/PETSc/Space.pyx":303 + * def getLagrangeTrimmed(self): + * cdef PetscBool ctrimmed = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTrimmed(self.dualspace, &ctrimmed)) # <<<<<<<<<<<<<< + * return toBool(ctrimmed) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeGetTrimmed(__pyx_v_self->dualspace, (&__pyx_v_ctrimmed))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 303, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":304 + * cdef PetscBool ctrimmed = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTrimmed(self.dualspace, &ctrimmed)) + * return toBool(ctrimmed) # <<<<<<<<<<<<<< + * + * def setLagrangeTrimmed(self, trimmed): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toBool(__pyx_v_ctrimmed); if (unlikely(!__pyx_t_2)) __PYX_ERR(63, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/Space.pyx":301 + * CHKERR( PetscDualSpaceLagrangeSetTensor(self.dualspace, ctensor)) + * + * def getLagrangeTrimmed(self): # <<<<<<<<<<<<<< + * cdef PetscBool ctrimmed = PETSC_FALSE + * CHKERR( PetscDualSpaceLagrangeGetTrimmed(self.dualspace, &ctrimmed)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.getLagrangeTrimmed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":306 + * return toBool(ctrimmed) + * + * def setLagrangeTrimmed(self, trimmed): # <<<<<<<<<<<<<< + * cdef PetscBool ctrimmed = asBool(trimmed) + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_47setLagrangeTrimmed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_46setLagrangeTrimmed[] = "DualSpace.setLagrangeTrimmed(self, trimmed)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_47setLagrangeTrimmed(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_trimmed = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setLagrangeTrimmed (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_trimmed,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trimmed)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setLagrangeTrimmed") < 0)) __PYX_ERR(63, 306, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_trimmed = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setLagrangeTrimmed", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 306, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeTrimmed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_46setLagrangeTrimmed(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_trimmed); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_46setLagrangeTrimmed(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_trimmed) { + PetscBool __pyx_v_ctrimmed; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setLagrangeTrimmed", 0); + + /* "petsc4py/PETSc/Space.pyx":307 + * + * def setLagrangeTrimmed(self, trimmed): + * cdef PetscBool ctrimmed = asBool(trimmed) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_trimmed); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(63, 307, __pyx_L1_error) + __pyx_v_ctrimmed = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":308 + * def setLagrangeTrimmed(self, trimmed): + * cdef PetscBool ctrimmed = asBool(trimmed) + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) # <<<<<<<<<<<<<< + * + * def viewFromOptions(self, name, Object obj=None): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceLagrangeSetTrimmed(__pyx_v_self->dualspace, __pyx_v_ctrimmed)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 308, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":306 + * return toBool(ctrimmed) + * + * def setLagrangeTrimmed(self, trimmed): # <<<<<<<<<<<<<< + * cdef PetscBool ctrimmed = asBool(trimmed) + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setLagrangeTrimmed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":310 + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_49viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_48viewFromOptions[] = "DualSpace.viewFromOptions(self, name, Object obj=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_49viewFromOptions(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + struct PyPetscObjectObject *__pyx_v_obj = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("viewFromOptions (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_obj,0}; + PyObject* values[2] = {0,0}; + values[1] = (PyObject *)((struct PyPetscObjectObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "viewFromOptions") < 0)) __PYX_ERR(63, 310, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_name = values[0]; + __pyx_v_obj = ((struct PyPetscObjectObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("viewFromOptions", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 310, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_obj), __pyx_ptype_8petsc4py_5PETSc_Object, 1, "obj", 0))) __PYX_ERR(63, 310, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_48viewFromOptions(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_name, __pyx_v_obj); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_48viewFromOptions(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_name, struct PyPetscObjectObject *__pyx_v_obj) { + char const *__pyx_v_cname; + CYTHON_UNUSED PyObject *__pyx_v__ = NULL; + PetscObject __pyx_v_cobj; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewFromOptions", 0); + + /* "petsc4py/PETSc/Space.pyx":311 + * + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL # <<<<<<<<<<<<<< + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + */ + __pyx_v_cname = NULL; + + /* "petsc4py/PETSc/Space.pyx":312 + * def viewFromOptions(self, name, Object obj=None): + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) # <<<<<<<<<<<<<< + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_str2bytes(__pyx_v_name, (&__pyx_v_cname)); if (unlikely(!__pyx_t_1)) __PYX_ERR(63, 312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__ = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Space.pyx":313 + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL # <<<<<<<<<<<<<< + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscDualSpaceViewFromOptions(self.dualspace, cobj, cname) ) + */ + __pyx_v_cobj = NULL; + + /* "petsc4py/PETSc/Space.pyx":314 + * _ = str2bytes(name, &cname) + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceViewFromOptions(self.dualspace, cobj, cname) ) + * + */ + __pyx_t_2 = (((PyObject *)__pyx_v_obj) != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + __pyx_v_cobj = (__pyx_v_obj->obj[0]); + } + + /* "petsc4py/PETSc/Space.pyx":315 + * cdef PetscObject cobj = NULL + * if obj is not None: cobj = obj.obj[0] + * CHKERR( PetscDualSpaceViewFromOptions(self.dualspace, cobj, cname) ) # <<<<<<<<<<<<<< + * + * def setSimpleDimension(self, dim): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceViewFromOptions(__pyx_v_self->dualspace, __pyx_v_cobj, __pyx_v_cname)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 315, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":310 + * CHKERR( PetscDualSpaceLagrangeSetTrimmed(self.dualspace, ctrimmed)) + * + * def viewFromOptions(self, name, Object obj=None): # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * _ = str2bytes(name, &cname) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.viewFromOptions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v__); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":317 + * CHKERR( PetscDualSpaceViewFromOptions(self.dualspace, cobj, cname) ) + * + * def setSimpleDimension(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_51setSimpleDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_50setSimpleDimension[] = "DualSpace.setSimpleDimension(self, dim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_51setSimpleDimension(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSimpleDimension (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSimpleDimension") < 0)) __PYX_ERR(63, 317, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSimpleDimension", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 317, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setSimpleDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_50setSimpleDimension(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_dim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_50setSimpleDimension(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_dim) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSimpleDimension", 0); + + /* "petsc4py/PETSc/Space.pyx":318 + * + * def setSimpleDimension(self, dim): + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 318, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":319 + * def setSimpleDimension(self, dim): + * cdef PetscInt cdim = asInt(dim) + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) # <<<<<<<<<<<<<< + * + * def setSimpleFunctional(self, func, Quad functional): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSimpleSetDimension(__pyx_v_self->dualspace, __pyx_v_cdim)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 319, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":317 + * CHKERR( PetscDualSpaceViewFromOptions(self.dualspace, cobj, cname) ) + * + * def setSimpleDimension(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setSimpleDimension", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/Space.pyx":321 + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) + * + * def setSimpleFunctional(self, func, Quad functional): # <<<<<<<<<<<<<< + * cdef PetscInt cfunc = asInt(func) + * CHKERR( PetscDualSpaceSimpleSetFunctional(self.dualspace, cfunc, functional.quad) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_53setSimpleFunctional(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_9DualSpace_52setSimpleFunctional[] = "DualSpace.setSimpleFunctional(self, func, Quad functional)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9DualSpace_53setSimpleFunctional(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_func = 0; + struct PyPetscQuadObject *__pyx_v_functional = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setSimpleFunctional (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_func,&__pyx_n_s_functional,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_func)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_functional)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("setSimpleFunctional", 1, 2, 2, 1); __PYX_ERR(63, 321, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setSimpleFunctional") < 0)) __PYX_ERR(63, 321, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_func = values[0]; + __pyx_v_functional = ((struct PyPetscQuadObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setSimpleFunctional", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(63, 321, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setSimpleFunctional", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_functional), __pyx_ptype_8petsc4py_5PETSc_Quad, 0, "functional", 0))) __PYX_ERR(63, 321, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_9DualSpace_52setSimpleFunctional(((struct PyPetscDualSpaceObject *)__pyx_v_self), __pyx_v_func, __pyx_v_functional); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_9DualSpace_52setSimpleFunctional(struct PyPetscDualSpaceObject *__pyx_v_self, PyObject *__pyx_v_func, struct PyPetscQuadObject *__pyx_v_functional) { + PetscInt __pyx_v_cfunc; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setSimpleFunctional", 0); + + /* "petsc4py/PETSc/Space.pyx":322 + * + * def setSimpleFunctional(self, func, Quad functional): + * cdef PetscInt cfunc = asInt(func) # <<<<<<<<<<<<<< + * CHKERR( PetscDualSpaceSimpleSetFunctional(self.dualspace, cfunc, functional.quad) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_func); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(63, 322, __pyx_L1_error) + __pyx_v_cfunc = __pyx_t_1; + + /* "petsc4py/PETSc/Space.pyx":323 + * def setSimpleFunctional(self, func, Quad functional): + * cdef PetscInt cfunc = asInt(func) + * CHKERR( PetscDualSpaceSimpleSetFunctional(self.dualspace, cfunc, functional.quad) ) # <<<<<<<<<<<<<< + * + * del SpaceType + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscDualSpaceSimpleSetFunctional(__pyx_v_self->dualspace, __pyx_v_cfunc, __pyx_v_functional->quad)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(63, 323, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":321 + * CHKERR( PetscDualSpaceSimpleSetDimension(self.dualspace, cdim) ) + * + * def setSimpleFunctional(self, func, Quad functional): # <<<<<<<<<<<<<< + * cdef PetscInt cfunc = asInt(func) + * CHKERR( PetscDualSpaceSimpleSetFunctional(self.dualspace, cfunc, functional.quad) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DualSpace.setSimpleFunctional", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":6 + * cdef PetscDMInterpolation dminterp + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.dminterp = NULL + * + */ + +/* Python wrapper */ +static int __pyx_pw_8petsc4py_5PETSc_15DMInterpolation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_pw_8petsc4py_5PETSc_15DMInterpolation_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__cinit__", 0))) return -1; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation___cinit__(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_pf_8petsc4py_5PETSc_15DMInterpolation___cinit__(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":7 + * + * def __cinit__(self): + * self.dminterp = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(self): + */ + __pyx_v_self->dminterp = NULL; + + /* "petsc4py/PETSc/DMUtils.pyx":6 + * cdef PetscDMInterpolation dminterp + * + * def __cinit__(self): # <<<<<<<<<<<<<< + * self.dminterp = NULL + * + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":9 + * self.dminterp = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + +/* Python wrapper */ +static void __pyx_pw_8petsc4py_5PETSc_15DMInterpolation_3__dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_pw_8petsc4py_5PETSc_15DMInterpolation_3__dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_2__dealloc__(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_2__dealloc__(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":10 + * + * def __dealloc__(self): + * self.destroy() # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_destroy); if (unlikely(!__pyx_t_2)) __PYX_ERR(64, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(64, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":9 + * self.dminterp = NULL + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * self.destroy() + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_WriteUnraisable("petsc4py.PETSc.DMInterpolation.__dealloc__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_L0:; + __Pyx_RefNannyFinishContext(); +} + +/* "petsc4py/PETSc/DMUtils.pyx":12 + * self.destroy() + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMInterpolation new = NULL + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_4create[] = "DMInterpolation.create(self, comm=None)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_5create(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("create (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_comm,0}; + PyObject* values[1] = {0}; + values[0] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[0] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "create") < 0)) __PYX_ERR(64, 12, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_comm = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("create", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 12, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_4create(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_4create(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_comm) { + MPI_Comm __pyx_v_ccomm; + DMInterpolationInfo __pyx_v_new; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + MPI_Comm __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("create", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":13 + * + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) # <<<<<<<<<<<<<< + * cdef PetscDMInterpolation new = NULL + * CHKERR( DMInterpolationCreate(ccomm, &new) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_SELF); if (unlikely(PyErr_Occurred())) __PYX_ERR(64, 13, __pyx_L1_error) + __pyx_v_ccomm = __pyx_t_1; + + /* "petsc4py/PETSc/DMUtils.pyx":14 + * def create(self, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMInterpolation new = NULL # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationCreate(ccomm, &new) ) + * self.dminterp = new + */ + __pyx_v_new = NULL; + + /* "petsc4py/PETSc/DMUtils.pyx":15 + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMInterpolation new = NULL + * CHKERR( DMInterpolationCreate(ccomm, &new) ) # <<<<<<<<<<<<<< + * self.dminterp = new + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationCreate(__pyx_v_ccomm, (&__pyx_v_new))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 15, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":16 + * cdef PetscDMInterpolation new = NULL + * CHKERR( DMInterpolationCreate(ccomm, &new) ) + * self.dminterp = new # <<<<<<<<<<<<<< + * + * def destroy(self): + */ + __pyx_v_self->dminterp = __pyx_v_new; + + /* "petsc4py/PETSc/DMUtils.pyx":12 + * self.destroy() + * + * def create(self, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_SELF) + * cdef PetscDMInterpolation new = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.create", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":18 + * self.dminterp = new + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationDestroy(&self.dminterp)) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_6destroy[] = "DMInterpolation.destroy(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_7destroy(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("destroy (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("destroy", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "destroy", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_6destroy(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_6destroy(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("destroy", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":19 + * + * def destroy(self): + * CHKERR( DMInterpolationDestroy(&self.dminterp)) # <<<<<<<<<<<<<< + * + * def evaluate(self, DM dm, Vec x): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationDestroy((&__pyx_v_self->dminterp))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 19, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":18 + * self.dminterp = new + * + * def destroy(self): # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationDestroy(&self.dminterp)) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.destroy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":21 + * CHKERR( DMInterpolationDestroy(&self.dminterp)) + * + * def evaluate(self, DM dm, Vec x): # <<<<<<<<<<<<<< + * cdef Vec v = Vec() + * CHKERR( DMInterpolationEvaluate(self.dminterp, dm.dm, x.vec, v.vec ) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_9evaluate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_8evaluate[] = "DMInterpolation.evaluate(self, DM dm, Vec x)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_9evaluate(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + struct PyPetscVecObject *__pyx_v_x = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("evaluate (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,&__pyx_n_s_x,0}; + PyObject* values[2] = {0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("evaluate", 1, 2, 2, 1); __PYX_ERR(64, 21, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "evaluate") < 0)) __PYX_ERR(64, 21, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + __pyx_v_x = ((struct PyPetscVecObject *)values[1]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("evaluate", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 21, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.evaluate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(64, 21, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "x", 0))) __PYX_ERR(64, 21, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_8evaluate(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_dm, __pyx_v_x); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_8evaluate(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, struct PyPetscVecObject *__pyx_v_x) { + struct PyPetscVecObject *__pyx_v_v = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("evaluate", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":22 + * + * def evaluate(self, DM dm, Vec x): + * cdef Vec v = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationEvaluate(self.dminterp, dm.dm, x.vec, v.vec ) ) + * return v + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(64, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_v = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":23 + * def evaluate(self, DM dm, Vec x): + * cdef Vec v = Vec() + * CHKERR( DMInterpolationEvaluate(self.dminterp, dm.dm, x.vec, v.vec ) ) # <<<<<<<<<<<<<< + * return v + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationEvaluate(__pyx_v_self->dminterp, __pyx_v_dm->dm, __pyx_v_x->vec, __pyx_v_v->vec)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 23, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":24 + * cdef Vec v = Vec() + * CHKERR( DMInterpolationEvaluate(self.dminterp, dm.dm, x.vec, v.vec ) ) + * return v # <<<<<<<<<<<<<< + * + * def getCoordinates(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_v)); + __pyx_r = ((PyObject *)__pyx_v_v); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":21 + * CHKERR( DMInterpolationDestroy(&self.dminterp)) + * + * def evaluate(self, DM dm, Vec x): # <<<<<<<<<<<<<< + * cdef Vec v = Vec() + * CHKERR( DMInterpolationEvaluate(self.dminterp, dm.dm, x.vec, v.vec ) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.evaluate", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_v); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":26 + * return v + * + * def getCoordinates(self): # <<<<<<<<<<<<<< + * cdef Vec coords = Vec() + * CHKERR( DMInterpolationGetCoordinates(self.dminterp, &coords.vec) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_11getCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_10getCoordinates[] = "DMInterpolation.getCoordinates(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_11getCoordinates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getCoordinates (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getCoordinates", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getCoordinates", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_10getCoordinates(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_10getCoordinates(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_coords = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getCoordinates", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":27 + * + * def getCoordinates(self): + * cdef Vec coords = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationGetCoordinates(self.dminterp, &coords.vec) ) + * return coords + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(64, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_coords = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":28 + * def getCoordinates(self): + * cdef Vec coords = Vec() + * CHKERR( DMInterpolationGetCoordinates(self.dminterp, &coords.vec) ) # <<<<<<<<<<<<<< + * return coords + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationGetCoordinates(__pyx_v_self->dminterp, (&__pyx_v_coords->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 28, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":29 + * cdef Vec coords = Vec() + * CHKERR( DMInterpolationGetCoordinates(self.dminterp, &coords.vec) ) + * return coords # <<<<<<<<<<<<<< + * + * def getDim(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_coords)); + __pyx_r = ((PyObject *)__pyx_v_coords); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":26 + * return v + * + * def getCoordinates(self): # <<<<<<<<<<<<<< + * cdef Vec coords = Vec() + * CHKERR( DMInterpolationGetCoordinates(self.dminterp, &coords.vec) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.getCoordinates", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_coords); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":31 + * return coords + * + * def getDim(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( DMInterpolationGetDim(self.dminterp, &cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_13getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_12getDim[] = "DMInterpolation.getDim(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_13getDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDim (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDim", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDim", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_12getDim(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_12getDim(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDim", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":32 + * + * def getDim(self): + * cdef PetscInt cdim = 0 # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationGetDim(self.dminterp, &cdim) ) + * return toInt(cdim) + */ + __pyx_v_cdim = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":33 + * def getDim(self): + * cdef PetscInt cdim = 0 + * CHKERR( DMInterpolationGetDim(self.dminterp, &cdim) ) # <<<<<<<<<<<<<< + * return toInt(cdim) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationGetDim(__pyx_v_self->dminterp, (&__pyx_v_cdim))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 33, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":34 + * cdef PetscInt cdim = 0 + * CHKERR( DMInterpolationGetDim(self.dminterp, &cdim) ) + * return toInt(cdim) # <<<<<<<<<<<<<< + * + * def getDof(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdim); if (unlikely(!__pyx_t_2)) __PYX_ERR(64, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":31 + * return coords + * + * def getDim(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = 0 + * CHKERR( DMInterpolationGetDim(self.dminterp, &cdim) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.getDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":36 + * return toInt(cdim) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdof = 0 + * CHKERR( DMInterpolationGetDof(self.dminterp, &cdof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_15getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_14getDof[] = "DMInterpolation.getDof(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_15getDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getDof (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getDof", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getDof", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_14getDof(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_14getDof(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + PetscInt __pyx_v_cdof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getDof", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":37 + * + * def getDof(self): + * cdef PetscInt cdof = 0 # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationGetDof(self.dminterp, &cdof) ) + * return toInt(cdof) + */ + __pyx_v_cdof = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":38 + * def getDof(self): + * cdef PetscInt cdof = 0 + * CHKERR( DMInterpolationGetDof(self.dminterp, &cdof) ) # <<<<<<<<<<<<<< + * return toInt(cdof) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationGetDof(__pyx_v_self->dminterp, (&__pyx_v_cdof))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 38, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":39 + * cdef PetscInt cdof = 0 + * CHKERR( DMInterpolationGetDof(self.dminterp, &cdof) ) + * return toInt(cdof) # <<<<<<<<<<<<<< + * + * def setDim(self, dim): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_cdof); if (unlikely(!__pyx_t_2)) __PYX_ERR(64, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":36 + * return toInt(cdim) + * + * def getDof(self): # <<<<<<<<<<<<<< + * cdef PetscInt cdof = 0 + * CHKERR( DMInterpolationGetDof(self.dminterp, &cdof) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.getDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":41 + * return toInt(cdof) + * + * def setDim(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_17setDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_16setDim[] = "DMInterpolation.setDim(self, dim)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_17setDim(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dim = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDim (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dim,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dim)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDim") < 0)) __PYX_ERR(64, 41, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dim = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDim", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 41, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_16setDim(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_dim); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_16setDim(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_dim) { + PetscInt __pyx_v_cdim; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDim", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":42 + * + * def setDim(self, dim): + * cdef PetscInt cdim = asInt(dim) # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dim); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(64, 42, __pyx_L1_error) + __pyx_v_cdim = __pyx_t_1; + + /* "petsc4py/PETSc/DMUtils.pyx":43 + * def setDim(self, dim): + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) # <<<<<<<<<<<<<< + * + * def setDof(self, dof): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationSetDim(__pyx_v_self->dminterp, __pyx_v_cdim)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 43, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":41 + * return toInt(cdof) + * + * def setDim(self, dim): # <<<<<<<<<<<<<< + * cdef PetscInt cdim = asInt(dim) + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setDim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":45 + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) + * + * def setDof(self, dof): # <<<<<<<<<<<<<< + * cdef PetscInt cdof = asInt(dof) + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_19setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_18setDof[] = "DMInterpolation.setDof(self, dof)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_19setDof(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_dof = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setDof (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dof,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dof)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setDof") < 0)) __PYX_ERR(64, 45, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_dof = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setDof", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 45, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_18setDof(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_dof); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_18setDof(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, PyObject *__pyx_v_dof) { + PetscInt __pyx_v_cdof; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscInt __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setDof", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":46 + * + * def setDof(self, dof): + * cdef PetscInt cdof = asInt(dof) # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_dof); if (unlikely(__pyx_t_1 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(64, 46, __pyx_L1_error) + __pyx_v_cdof = __pyx_t_1; + + /* "petsc4py/PETSc/DMUtils.pyx":47 + * def setDof(self, dof): + * cdef PetscInt cdof = asInt(dof) + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) # <<<<<<<<<<<<<< + * + * def setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationSetDof(__pyx_v_self->dminterp, __pyx_v_cdof)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 47, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":45 + * CHKERR( DMInterpolationSetDim(self.dminterp, cdim) ) + * + * def setDof(self, dof): # <<<<<<<<<<<<<< + * cdef PetscInt cdof = asInt(dof) + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setDof", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":49 + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) + * + * def setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False): # <<<<<<<<<<<<<< + * cdef PetscBool credundantPoints = asBool(redundantPoints) + * cdef PetscBool cignoreOutsideDomain = asBool(ignoreOutsideDomain) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_21setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_20setUp[] = "DMInterpolation.setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_21setUp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscDMObject *__pyx_v_dm = 0; + PyObject *__pyx_v_redundantPoints = 0; + PyObject *__pyx_v_ignoreOutsideDomain = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("setUp (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_dm,&__pyx_n_s_redundantPoints,&__pyx_n_s_ignoreOutsideDomain,0}; + PyObject* values[3] = {0,0,0}; + values[1] = ((PyObject *)Py_False); + values[2] = ((PyObject *)Py_False); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dm)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_redundantPoints); + if (value) { values[1] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_ignoreOutsideDomain); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "setUp") < 0)) __PYX_ERR(64, 49, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_dm = ((struct PyPetscDMObject *)values[0]); + __pyx_v_redundantPoints = values[1]; + __pyx_v_ignoreOutsideDomain = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("setUp", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 49, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_dm), __pyx_ptype_8petsc4py_5PETSc_DM, 0, "dm", 0))) __PYX_ERR(64, 49, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_20setUp(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_dm, __pyx_v_redundantPoints, __pyx_v_ignoreOutsideDomain); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_20setUp(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscDMObject *__pyx_v_dm, PyObject *__pyx_v_redundantPoints, PyObject *__pyx_v_ignoreOutsideDomain) { + PetscBool __pyx_v_credundantPoints; + PetscBool __pyx_v_cignoreOutsideDomain; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscBool __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setUp", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":50 + * + * def setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False): + * cdef PetscBool credundantPoints = asBool(redundantPoints) # <<<<<<<<<<<<<< + * cdef PetscBool cignoreOutsideDomain = asBool(ignoreOutsideDomain) + * CHKERR( DMInterpolationSetUp(self.dminterp, dm.dm, credundantPoints, cignoreOutsideDomain) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_redundantPoints); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(64, 50, __pyx_L1_error) + __pyx_v_credundantPoints = __pyx_t_1; + + /* "petsc4py/PETSc/DMUtils.pyx":51 + * def setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False): + * cdef PetscBool credundantPoints = asBool(redundantPoints) + * cdef PetscBool cignoreOutsideDomain = asBool(ignoreOutsideDomain) # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationSetUp(self.dminterp, dm.dm, credundantPoints, cignoreOutsideDomain) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_asBool(__pyx_v_ignoreOutsideDomain); if (unlikely(__pyx_t_1 == ((PetscBool)((PetscBool)0)) && PyErr_Occurred())) __PYX_ERR(64, 51, __pyx_L1_error) + __pyx_v_cignoreOutsideDomain = __pyx_t_1; + + /* "petsc4py/PETSc/DMUtils.pyx":52 + * cdef PetscBool credundantPoints = asBool(redundantPoints) + * cdef PetscBool cignoreOutsideDomain = asBool(ignoreOutsideDomain) + * CHKERR( DMInterpolationSetUp(self.dminterp, dm.dm, credundantPoints, cignoreOutsideDomain) ) # <<<<<<<<<<<<<< + * + * def getVector(self): + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationSetUp(__pyx_v_self->dminterp, __pyx_v_dm->dm, __pyx_v_credundantPoints, __pyx_v_cignoreOutsideDomain)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 52, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":49 + * CHKERR( DMInterpolationSetDof(self.dminterp, cdof) ) + * + * def setUp(self, DM dm, redundantPoints=False, ignoreOutsideDomain=False): # <<<<<<<<<<<<<< + * cdef PetscBool credundantPoints = asBool(redundantPoints) + * cdef PetscBool cignoreOutsideDomain = asBool(ignoreOutsideDomain) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.setUp", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":54 + * CHKERR( DMInterpolationSetUp(self.dminterp, dm.dm, credundantPoints, cignoreOutsideDomain) ) + * + * def getVector(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( DMInterpolationGetVector(self.dminterp, &vec.vec)) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_23getVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_22getVector[] = "DMInterpolation.getVector(self)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_23getVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("getVector (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("getVector", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "getVector", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_22getVector(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_22getVector(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self) { + struct PyPetscVecObject *__pyx_v_vec = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getVector", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":55 + * + * def getVector(self): + * cdef Vec vec = Vec() # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationGetVector(self.dminterp, &vec.vec)) + * return vec + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(64, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_vec = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/DMUtils.pyx":56 + * def getVector(self): + * cdef Vec vec = Vec() + * CHKERR( DMInterpolationGetVector(self.dminterp, &vec.vec)) # <<<<<<<<<<<<<< + * return vec + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationGetVector(__pyx_v_self->dminterp, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 56, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":57 + * cdef Vec vec = Vec() + * CHKERR( DMInterpolationGetVector(self.dminterp, &vec.vec)) + * return vec # <<<<<<<<<<<<<< + * + * def restoreVector(self, Vec vec): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":54 + * CHKERR( DMInterpolationSetUp(self.dminterp, dm.dm, credundantPoints, cignoreOutsideDomain) ) + * + * def getVector(self): # <<<<<<<<<<<<<< + * cdef Vec vec = Vec() + * CHKERR( DMInterpolationGetVector(self.dminterp, &vec.vec)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.getVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_vec); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/DMUtils.pyx":59 + * return vec + * + * def restoreVector(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationRestoreVector(self.dminterp, &vec.vec) ) + * return vec + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_25restoreVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_24restoreVector[] = "DMInterpolation.restoreVector(self, Vec vec)"; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_25restoreVector(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + struct PyPetscVecObject *__pyx_v_vec = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("restoreVector (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_vec,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_vec)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "restoreVector") < 0)) __PYX_ERR(64, 59, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_vec = ((struct PyPetscVecObject *)values[0]); + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("restoreVector", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(64, 59, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.restoreVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_vec), __pyx_ptype_8petsc4py_5PETSc_Vec, 0, "vec", 0))) __PYX_ERR(64, 59, __pyx_L1_error) + __pyx_r = __pyx_pf_8petsc4py_5PETSc_15DMInterpolation_24restoreVector(((struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *)__pyx_v_self), __pyx_v_vec); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_15DMInterpolation_24restoreVector(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation *__pyx_v_self, struct PyPetscVecObject *__pyx_v_vec) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("restoreVector", 0); + + /* "petsc4py/PETSc/DMUtils.pyx":60 + * + * def restoreVector(self, Vec vec): + * CHKERR( DMInterpolationRestoreVector(self.dminterp, &vec.vec) ) # <<<<<<<<<<<<<< + * return vec + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(DMInterpolationRestoreVector(__pyx_v_self->dminterp, (&__pyx_v_vec->vec))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(64, 60, __pyx_L1_error) + + /* "petsc4py/PETSc/DMUtils.pyx":61 + * def restoreVector(self, Vec vec): + * CHKERR( DMInterpolationRestoreVector(self.dminterp, &vec.vec) ) + * return vec # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_vec)); + __pyx_r = ((PyObject *)__pyx_v_vec); + goto __pyx_L0; + + /* "petsc4py/PETSc/DMUtils.pyx":59 + * return vec + * + * def restoreVector(self, Vec vec): # <<<<<<<<<<<<<< + * CHKERR( DMInterpolationRestoreVector(self.dminterp, &vec.vec) ) + * return vec + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.DMInterpolation.restoreVector", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":3 + * #--------------------------------------------------------------------- + * + * cdef inline int setref(void *d, void *s) except -1: # <<<<<<<<<<<<<< + * cdef PetscObject *dest = d + * cdef PetscObject source = s + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_setref(void *__pyx_v_d, void *__pyx_v_s) { + PetscObject *__pyx_v_dest; + PetscObject __pyx_v_source; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setref", 0); + + /* "petsc4py/PETSc/CAPI.pyx":4 + * + * cdef inline int setref(void *d, void *s) except -1: + * cdef PetscObject *dest = d # <<<<<<<<<<<<<< + * cdef PetscObject source = s + * CHKERR( PetscINCREF(&source) ) + */ + __pyx_v_dest = ((PetscObject *)__pyx_v_d); + + /* "petsc4py/PETSc/CAPI.pyx":5 + * cdef inline int setref(void *d, void *s) except -1: + * cdef PetscObject *dest = d + * cdef PetscObject source = s # <<<<<<<<<<<<<< + * CHKERR( PetscINCREF(&source) ) + * dest[0] = source + */ + __pyx_v_source = ((PetscObject)__pyx_v_s); + + /* "petsc4py/PETSc/CAPI.pyx":6 + * cdef PetscObject *dest = d + * cdef PetscObject source = s + * CHKERR( PetscINCREF(&source) ) # <<<<<<<<<<<<<< + * dest[0] = source + * return 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_f_8petsc4py_5PETSc_PetscINCREF((&__pyx_v_source))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(65, 6, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":7 + * cdef PetscObject source = s + * CHKERR( PetscINCREF(&source) ) + * dest[0] = source # <<<<<<<<<<<<<< + * return 0 + * + */ + (__pyx_v_dest[0]) = __pyx_v_source; + + /* "petsc4py/PETSc/CAPI.pyx":8 + * CHKERR( PetscINCREF(&source) ) + * dest[0] = source + * return 0 # <<<<<<<<<<<<<< + * + * #--------------------------------------------------------------------- + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":3 + * #--------------------------------------------------------------------- + * + * cdef inline int setref(void *d, void *s) except -1: # <<<<<<<<<<<<<< + * cdef PetscObject *dest = d + * cdef PetscObject source = s + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.setref", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":14 + * # -- Error -- + * + * cdef api int PyPetscError_Set(PetscErrorCode ierr): # <<<<<<<<<<<<<< + * return SETERR(ierr) + * + */ + +static int __pyx_f_8petsc4py_5PETSc_PyPetscError_Set(PetscErrorCode __pyx_v_ierr) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("PyPetscError_Set", 0); + + /* "petsc4py/PETSc/CAPI.pyx":15 + * + * cdef api int PyPetscError_Set(PetscErrorCode ierr): + * return SETERR(ierr) # <<<<<<<<<<<<<< + * + * # -- Comm -- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_SETERR(__pyx_v_ierr); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":14 + * # -- Error -- + * + * cdef api int PyPetscError_Set(PetscErrorCode ierr): # <<<<<<<<<<<<<< + * return SETERR(ierr) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":19 + * # -- Comm -- + * + * cdef api object PyPetscComm_New(MPI_Comm arg): # <<<<<<<<<<<<<< + * cdef Comm retv = Comm() + * retv.comm = arg + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscComm_New(MPI_Comm __pyx_v_arg) { + struct PyPetscCommObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscComm_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":20 + * + * cdef api object PyPetscComm_New(MPI_Comm arg): + * cdef Comm retv = Comm() # <<<<<<<<<<<<<< + * retv.comm = arg + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscCommObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":21 + * cdef api object PyPetscComm_New(MPI_Comm arg): + * cdef Comm retv = Comm() + * retv.comm = arg # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_v_retv->comm = __pyx_v_arg; + + /* "petsc4py/PETSc/CAPI.pyx":22 + * cdef Comm retv = Comm() + * retv.comm = arg + * return retv # <<<<<<<<<<<<<< + * + * cdef api MPI_Comm PyPetscComm_Get(object arg) except *: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":19 + * # -- Comm -- + * + * cdef api object PyPetscComm_New(MPI_Comm arg): # <<<<<<<<<<<<<< + * cdef Comm retv = Comm() + * retv.comm = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscComm_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":24 + * return retv + * + * cdef api MPI_Comm PyPetscComm_Get(object arg) except *: # <<<<<<<<<<<<<< + * cdef MPI_Comm retv = MPI_COMM_NULL + * cdef Comm ob = arg + */ + +static MPI_Comm __pyx_f_8petsc4py_5PETSc_PyPetscComm_Get(PyObject *__pyx_v_arg) { + MPI_Comm __pyx_v_retv; + struct PyPetscCommObject *__pyx_v_ob = 0; + MPI_Comm __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + MPI_Comm __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscComm_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":25 + * + * cdef api MPI_Comm PyPetscComm_Get(object arg) except *: + * cdef MPI_Comm retv = MPI_COMM_NULL # <<<<<<<<<<<<<< + * cdef Comm ob = arg + * retv = ob.comm + */ + __pyx_v_retv = MPI_COMM_NULL; + + /* "petsc4py/PETSc/CAPI.pyx":26 + * cdef api MPI_Comm PyPetscComm_Get(object arg) except *: + * cdef MPI_Comm retv = MPI_COMM_NULL + * cdef Comm ob = arg # <<<<<<<<<<<<<< + * retv = ob.comm + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Comm)))) __PYX_ERR(65, 26, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscCommObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":27 + * cdef MPI_Comm retv = MPI_COMM_NULL + * cdef Comm ob = arg + * retv = ob.comm # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->comm; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":28 + * cdef Comm ob = arg + * retv = ob.comm + * return retv # <<<<<<<<<<<<<< + * + * cdef api MPI_Comm* PyPetscComm_GetPtr(object arg) except NULL: + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":24 + * return retv + * + * cdef api MPI_Comm PyPetscComm_Get(object arg) except *: # <<<<<<<<<<<<<< + * cdef MPI_Comm retv = MPI_COMM_NULL + * cdef Comm ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscComm_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":30 + * return retv + * + * cdef api MPI_Comm* PyPetscComm_GetPtr(object arg) except NULL: # <<<<<<<<<<<<<< + * cdef MPI_Comm *retv = NULL + * cdef Comm ob = arg + */ + +static MPI_Comm *__pyx_f_8petsc4py_5PETSc_PyPetscComm_GetPtr(PyObject *__pyx_v_arg) { + MPI_Comm *__pyx_v_retv; + struct PyPetscCommObject *__pyx_v_ob = 0; + MPI_Comm *__pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscComm_GetPtr", 0); + + /* "petsc4py/PETSc/CAPI.pyx":31 + * + * cdef api MPI_Comm* PyPetscComm_GetPtr(object arg) except NULL: + * cdef MPI_Comm *retv = NULL # <<<<<<<<<<<<<< + * cdef Comm ob = arg + * retv = &ob.comm + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":32 + * cdef api MPI_Comm* PyPetscComm_GetPtr(object arg) except NULL: + * cdef MPI_Comm *retv = NULL + * cdef Comm ob = arg # <<<<<<<<<<<<<< + * retv = &ob.comm + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Comm)))) __PYX_ERR(65, 32, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscCommObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":33 + * cdef MPI_Comm *retv = NULL + * cdef Comm ob = arg + * retv = &ob.comm # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_v_retv = (&__pyx_v_ob->comm); + + /* "petsc4py/PETSc/CAPI.pyx":34 + * cdef Comm ob = arg + * retv = &ob.comm + * return retv # <<<<<<<<<<<<<< + * + * # -- Object -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":30 + * return retv + * + * cdef api MPI_Comm* PyPetscComm_GetPtr(object arg) except NULL: # <<<<<<<<<<<<<< + * cdef MPI_Comm *retv = NULL + * cdef Comm ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscComm_GetPtr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":38 + * # -- Object -- + * + * cdef api object PyPetscObject_New(PetscObject arg): # <<<<<<<<<<<<<< + * cdef Object retv = subtype_Object(arg)() + * setref(&retv.obj[0], arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscObject_New(PetscObject __pyx_v_arg) { + struct PyPetscObjectObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscObject_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":39 + * + * cdef api object PyPetscObject_New(PetscObject arg): + * cdef Object retv = subtype_Object(arg)() # <<<<<<<<<<<<<< + * setref(&retv.obj[0], arg) + * return retv + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_Object(__pyx_v_arg)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(65, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(65, 39, __pyx_L1_error) + __pyx_v_retv = ((struct PyPetscObjectObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":40 + * cdef api object PyPetscObject_New(PetscObject arg): + * cdef Object retv = subtype_Object(arg)() + * setref(&retv.obj[0], arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_setref((&(__pyx_v_retv->obj[0])), __pyx_v_arg); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(65, 40, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":41 + * cdef Object retv = subtype_Object(arg)() + * setref(&retv.obj[0], arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscObject PyPetscObject_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":38 + * # -- Object -- + * + * cdef api object PyPetscObject_New(PetscObject arg): # <<<<<<<<<<<<<< + * cdef Object retv = subtype_Object(arg)() + * setref(&retv.obj[0], arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscObject_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":43 + * return retv + * + * cdef api PetscObject PyPetscObject_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscObject retv = NULL + * cdef Object ob = arg + */ + +static PetscObject __pyx_f_8petsc4py_5PETSc_PyPetscObject_Get(PyObject *__pyx_v_arg) { + PetscObject __pyx_v_retv; + struct PyPetscObjectObject *__pyx_v_ob = 0; + PetscObject __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscObject_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":44 + * + * cdef api PetscObject PyPetscObject_Get(object arg) except ? NULL: + * cdef PetscObject retv = NULL # <<<<<<<<<<<<<< + * cdef Object ob = arg + * retv = ob.obj[0] + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":45 + * cdef api PetscObject PyPetscObject_Get(object arg) except ? NULL: + * cdef PetscObject retv = NULL + * cdef Object ob = arg # <<<<<<<<<<<<<< + * retv = ob.obj[0] + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Object)))) __PYX_ERR(65, 45, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscObjectObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":46 + * cdef PetscObject retv = NULL + * cdef Object ob = arg + * retv = ob.obj[0] # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_v_retv = (__pyx_v_ob->obj[0]); + + /* "petsc4py/PETSc/CAPI.pyx":47 + * cdef Object ob = arg + * retv = ob.obj[0] + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscObject* PyPetscObject_GetPtr(object arg) except NULL: + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":43 + * return retv + * + * cdef api PetscObject PyPetscObject_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscObject retv = NULL + * cdef Object ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscObject_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":49 + * return retv + * + * cdef api PetscObject* PyPetscObject_GetPtr(object arg) except NULL: # <<<<<<<<<<<<<< + * cdef PetscObject *retv = NULL + * cdef Object ob = arg + */ + +static PetscObject *__pyx_f_8petsc4py_5PETSc_PyPetscObject_GetPtr(PyObject *__pyx_v_arg) { + PetscObject *__pyx_v_retv; + struct PyPetscObjectObject *__pyx_v_ob = 0; + PetscObject *__pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscObject *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscObject_GetPtr", 0); + + /* "petsc4py/PETSc/CAPI.pyx":50 + * + * cdef api PetscObject* PyPetscObject_GetPtr(object arg) except NULL: + * cdef PetscObject *retv = NULL # <<<<<<<<<<<<<< + * cdef Object ob = arg + * retv = ob.obj + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":51 + * cdef api PetscObject* PyPetscObject_GetPtr(object arg) except NULL: + * cdef PetscObject *retv = NULL + * cdef Object ob = arg # <<<<<<<<<<<<<< + * retv = ob.obj + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Object)))) __PYX_ERR(65, 51, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscObjectObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":52 + * cdef PetscObject *retv = NULL + * cdef Object ob = arg + * retv = ob.obj # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->obj; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":53 + * cdef Object ob = arg + * retv = ob.obj + * return retv # <<<<<<<<<<<<<< + * + * # -- Viewer -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":49 + * return retv + * + * cdef api PetscObject* PyPetscObject_GetPtr(object arg) except NULL: # <<<<<<<<<<<<<< + * cdef PetscObject *retv = NULL + * cdef Object ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscObject_GetPtr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":57 + * # -- Viewer -- + * + * cdef api object PyPetscViewer_New(PetscViewer arg): # <<<<<<<<<<<<<< + * cdef Viewer retv = Viewer() + * setref(&retv.vwr, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscViewer_New(PetscViewer __pyx_v_arg) { + struct PyPetscViewerObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscViewer_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":58 + * + * cdef api object PyPetscViewer_New(PetscViewer arg): + * cdef Viewer retv = Viewer() # <<<<<<<<<<<<<< + * setref(&retv.vwr, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscViewerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":59 + * cdef api object PyPetscViewer_New(PetscViewer arg): + * cdef Viewer retv = Viewer() + * setref(&retv.vwr, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->vwr), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 59, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":60 + * cdef Viewer retv = Viewer() + * setref(&retv.vwr, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscViewer PyPetscViewer_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":57 + * # -- Viewer -- + * + * cdef api object PyPetscViewer_New(PetscViewer arg): # <<<<<<<<<<<<<< + * cdef Viewer retv = Viewer() + * setref(&retv.vwr, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscViewer_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":62 + * return retv + * + * cdef api PetscViewer PyPetscViewer_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscViewer retv = NULL + * cdef Viewer ob = arg + */ + +static PetscViewer __pyx_f_8petsc4py_5PETSc_PyPetscViewer_Get(PyObject *__pyx_v_arg) { + PetscViewer __pyx_v_retv; + struct PyPetscViewerObject *__pyx_v_ob = 0; + PetscViewer __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscViewer __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscViewer_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":63 + * + * cdef api PetscViewer PyPetscViewer_Get(object arg) except ? NULL: + * cdef PetscViewer retv = NULL # <<<<<<<<<<<<<< + * cdef Viewer ob = arg + * retv = ob.vwr + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":64 + * cdef api PetscViewer PyPetscViewer_Get(object arg) except ? NULL: + * cdef PetscViewer retv = NULL + * cdef Viewer ob = arg # <<<<<<<<<<<<<< + * retv = ob.vwr + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Viewer)))) __PYX_ERR(65, 64, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscViewerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":65 + * cdef PetscViewer retv = NULL + * cdef Viewer ob = arg + * retv = ob.vwr # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->vwr; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":66 + * cdef Viewer ob = arg + * retv = ob.vwr + * return retv # <<<<<<<<<<<<<< + * + * # -- Random -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":62 + * return retv + * + * cdef api PetscViewer PyPetscViewer_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscViewer retv = NULL + * cdef Viewer ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscViewer_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":70 + * # -- Random -- + * + * cdef api object PyPetscRandom_New(PetscRandom arg): # <<<<<<<<<<<<<< + * cdef Random retv = Random() + * setref(&retv.rnd, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscRandom_New(PetscRandom __pyx_v_arg) { + struct PyPetscRandomObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscRandom_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":71 + * + * cdef api object PyPetscRandom_New(PetscRandom arg): + * cdef Random retv = Random() # <<<<<<<<<<<<<< + * setref(&retv.rnd, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Random)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscRandomObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":72 + * cdef api object PyPetscRandom_New(PetscRandom arg): + * cdef Random retv = Random() + * setref(&retv.rnd, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->rnd), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 72, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":73 + * cdef Random retv = Random() + * setref(&retv.rnd, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscRandom PyPetscRandom_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":70 + * # -- Random -- + * + * cdef api object PyPetscRandom_New(PetscRandom arg): # <<<<<<<<<<<<<< + * cdef Random retv = Random() + * setref(&retv.rnd, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscRandom_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":75 + * return retv + * + * cdef api PetscRandom PyPetscRandom_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscRandom retv = NULL + * cdef Random ob = arg + */ + +static PetscRandom __pyx_f_8petsc4py_5PETSc_PyPetscRandom_Get(PyObject *__pyx_v_arg) { + PetscRandom __pyx_v_retv; + struct PyPetscRandomObject *__pyx_v_ob = 0; + PetscRandom __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscRandom __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscRandom_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":76 + * + * cdef api PetscRandom PyPetscRandom_Get(object arg) except ? NULL: + * cdef PetscRandom retv = NULL # <<<<<<<<<<<<<< + * cdef Random ob = arg + * retv = ob.rnd + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":77 + * cdef api PetscRandom PyPetscRandom_Get(object arg) except ? NULL: + * cdef PetscRandom retv = NULL + * cdef Random ob = arg # <<<<<<<<<<<<<< + * retv = ob.rnd + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Random)))) __PYX_ERR(65, 77, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscRandomObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":78 + * cdef PetscRandom retv = NULL + * cdef Random ob = arg + * retv = ob.rnd # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->rnd; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":79 + * cdef Random ob = arg + * retv = ob.rnd + * return retv # <<<<<<<<<<<<<< + * + * # -- Device -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":75 + * return retv + * + * cdef api PetscRandom PyPetscRandom_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscRandom retv = NULL + * cdef Random ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscRandom_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":83 + * # -- Device -- + * + * cdef api Device PyPetscDevice_New(PetscDevice arg): # <<<<<<<<<<<<<< + * cdef Device ret = Device() + * ret.device = arg + */ + +static struct PyPetscDeviceObject *__pyx_f_8petsc4py_5PETSc_PyPetscDevice_New(PetscDevice __pyx_v_arg) { + struct PyPetscDeviceObject *__pyx_v_ret = 0; + struct PyPetscDeviceObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDevice_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":84 + * + * cdef api Device PyPetscDevice_New(PetscDevice arg): + * cdef Device ret = Device() # <<<<<<<<<<<<<< + * ret.device = arg + * return ret + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_ret = ((struct PyPetscDeviceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":85 + * cdef api Device PyPetscDevice_New(PetscDevice arg): + * cdef Device ret = Device() + * ret.device = arg # <<<<<<<<<<<<<< + * return ret + * + */ + __pyx_v_ret->device = __pyx_v_arg; + + /* "petsc4py/PETSc/CAPI.pyx":86 + * cdef Device ret = Device() + * ret.device = arg + * return ret # <<<<<<<<<<<<<< + * + * cdef api PetscDevice PyPetscDevice_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ret)); + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":83 + * # -- Device -- + * + * cdef api Device PyPetscDevice_New(PetscDevice arg): # <<<<<<<<<<<<<< + * cdef Device ret = Device() + * ret.device = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDevice_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ret); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":88 + * return ret + * + * cdef api PetscDevice PyPetscDevice_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef Device obj = arg + * cdef PetscDevice ret = obj.device + */ + +static PetscDevice __pyx_f_8petsc4py_5PETSc_PyPetscDevice_Get(PyObject *__pyx_v_arg) { + struct PyPetscDeviceObject *__pyx_v_obj = 0; + PetscDevice __pyx_v_ret; + PetscDevice __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscDevice __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDevice_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":89 + * + * cdef api PetscDevice PyPetscDevice_Get(object arg) except ? NULL: + * cdef Device obj = arg # <<<<<<<<<<<<<< + * cdef PetscDevice ret = obj.device + * return ret + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Device)))) __PYX_ERR(65, 89, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_obj = ((struct PyPetscDeviceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":90 + * cdef api PetscDevice PyPetscDevice_Get(object arg) except ? NULL: + * cdef Device obj = arg + * cdef PetscDevice ret = obj.device # <<<<<<<<<<<<<< + * return ret + * + */ + __pyx_t_2 = __pyx_v_obj->device; + __pyx_v_ret = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":91 + * cdef Device obj = arg + * cdef PetscDevice ret = obj.device + * return ret # <<<<<<<<<<<<<< + * + * # -- DeviceContext -- + */ + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":88 + * return ret + * + * cdef api PetscDevice PyPetscDevice_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef Device obj = arg + * cdef PetscDevice ret = obj.device + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDevice_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":95 + * # -- DeviceContext -- + * + * cdef api DeviceContext PyPetscDeviceContext_New(PetscDeviceContext arg): # <<<<<<<<<<<<<< + * cdef DeviceContext retv = DeviceContext() + * setref(&retv.dctx, arg) + */ + +static struct PyPetscDeviceContextObject *__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New(PetscDeviceContext __pyx_v_arg) { + struct PyPetscDeviceContextObject *__pyx_v_retv = 0; + struct PyPetscDeviceContextObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDeviceContext_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":96 + * + * cdef api DeviceContext PyPetscDeviceContext_New(PetscDeviceContext arg): + * cdef DeviceContext retv = DeviceContext() # <<<<<<<<<<<<<< + * setref(&retv.dctx, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscDeviceContextObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":97 + * cdef api DeviceContext PyPetscDeviceContext_New(PetscDeviceContext arg): + * cdef DeviceContext retv = DeviceContext() + * setref(&retv.dctx, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->dctx), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 97, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":98 + * cdef DeviceContext retv = DeviceContext() + * setref(&retv.dctx, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscDeviceContext PyPetscDeviceContext_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":95 + * # -- DeviceContext -- + * + * cdef api DeviceContext PyPetscDeviceContext_New(PetscDeviceContext arg): # <<<<<<<<<<<<<< + * cdef DeviceContext retv = DeviceContext() + * setref(&retv.dctx, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDeviceContext_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":100 + * return retv + * + * cdef api PetscDeviceContext PyPetscDeviceContext_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef DeviceContext obj = arg + * cdef PetscDeviceContext ret = obj.dctx + */ + +static PetscDeviceContext __pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get(PyObject *__pyx_v_arg) { + struct PyPetscDeviceContextObject *__pyx_v_obj = 0; + PetscDeviceContext __pyx_v_ret; + PetscDeviceContext __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscDeviceContext __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDeviceContext_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":101 + * + * cdef api PetscDeviceContext PyPetscDeviceContext_Get(object arg) except ? NULL: + * cdef DeviceContext obj = arg # <<<<<<<<<<<<<< + * cdef PetscDeviceContext ret = obj.dctx + * return ret + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_DeviceContext)))) __PYX_ERR(65, 101, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_obj = ((struct PyPetscDeviceContextObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":102 + * cdef api PetscDeviceContext PyPetscDeviceContext_Get(object arg) except ? NULL: + * cdef DeviceContext obj = arg + * cdef PetscDeviceContext ret = obj.dctx # <<<<<<<<<<<<<< + * return ret + * + */ + __pyx_t_2 = __pyx_v_obj->dctx; + __pyx_v_ret = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":103 + * cdef DeviceContext obj = arg + * cdef PetscDeviceContext ret = obj.dctx + * return ret # <<<<<<<<<<<<<< + * + * # -- IS -- + */ + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":100 + * return retv + * + * cdef api PetscDeviceContext PyPetscDeviceContext_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef DeviceContext obj = arg + * cdef PetscDeviceContext ret = obj.dctx + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDeviceContext_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":107 + * # -- IS -- + * + * cdef api object PyPetscIS_New(PetscIS arg): # <<<<<<<<<<<<<< + * cdef IS retv = IS() + * setref(&retv.iset, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscIS_New(IS __pyx_v_arg) { + struct PyPetscISObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscIS_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":108 + * + * cdef api object PyPetscIS_New(PetscIS arg): + * cdef IS retv = IS() # <<<<<<<<<<<<<< + * setref(&retv.iset, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":109 + * cdef api object PyPetscIS_New(PetscIS arg): + * cdef IS retv = IS() + * setref(&retv.iset, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->iset), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 109, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":110 + * cdef IS retv = IS() + * setref(&retv.iset, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscIS PyPetscIS_Get(object arg) except? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":107 + * # -- IS -- + * + * cdef api object PyPetscIS_New(PetscIS arg): # <<<<<<<<<<<<<< + * cdef IS retv = IS() + * setref(&retv.iset, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscIS_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":112 + * return retv + * + * cdef api PetscIS PyPetscIS_Get(object arg) except? NULL: # <<<<<<<<<<<<<< + * cdef PetscIS retv = NULL + * cdef IS ob = arg + */ + +static IS __pyx_f_8petsc4py_5PETSc_PyPetscIS_Get(PyObject *__pyx_v_arg) { + IS __pyx_v_retv; + struct PyPetscISObject *__pyx_v_ob = 0; + IS __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + IS __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscIS_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":113 + * + * cdef api PetscIS PyPetscIS_Get(object arg) except? NULL: + * cdef PetscIS retv = NULL # <<<<<<<<<<<<<< + * cdef IS ob = arg + * retv = ob.iset + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":114 + * cdef api PetscIS PyPetscIS_Get(object arg) except? NULL: + * cdef PetscIS retv = NULL + * cdef IS ob = arg # <<<<<<<<<<<<<< + * retv = ob.iset + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_IS)))) __PYX_ERR(65, 114, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":115 + * cdef PetscIS retv = NULL + * cdef IS ob = arg + * retv = ob.iset # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->iset; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":116 + * cdef IS ob = arg + * retv = ob.iset + * return retv # <<<<<<<<<<<<<< + * + * # -- LGMap -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":112 + * return retv + * + * cdef api PetscIS PyPetscIS_Get(object arg) except? NULL: # <<<<<<<<<<<<<< + * cdef PetscIS retv = NULL + * cdef IS ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscIS_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":120 + * # -- LGMap -- + * + * cdef api object PyPetscLGMap_New(PetscLGMap arg): # <<<<<<<<<<<<<< + * cdef LGMap retv = LGMap() + * setref(&retv.lgm, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscLGMap_New(ISLocalToGlobalMapping __pyx_v_arg) { + struct PyPetscLGMapObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscLGMap_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":121 + * + * cdef api object PyPetscLGMap_New(PetscLGMap arg): + * cdef LGMap retv = LGMap() # <<<<<<<<<<<<<< + * setref(&retv.lgm, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":122 + * cdef api object PyPetscLGMap_New(PetscLGMap arg): + * cdef LGMap retv = LGMap() + * setref(&retv.lgm, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->lgm), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 122, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":123 + * cdef LGMap retv = LGMap() + * setref(&retv.lgm, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscLGMap PyPetscLGMap_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":120 + * # -- LGMap -- + * + * cdef api object PyPetscLGMap_New(PetscLGMap arg): # <<<<<<<<<<<<<< + * cdef LGMap retv = LGMap() + * setref(&retv.lgm, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscLGMap_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":125 + * return retv + * + * cdef api PetscLGMap PyPetscLGMap_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscLGMap retv = NULL + * cdef LGMap ob = arg + */ + +static ISLocalToGlobalMapping __pyx_f_8petsc4py_5PETSc_PyPetscLGMap_Get(PyObject *__pyx_v_arg) { + ISLocalToGlobalMapping __pyx_v_retv; + struct PyPetscLGMapObject *__pyx_v_ob = 0; + ISLocalToGlobalMapping __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + ISLocalToGlobalMapping __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscLGMap_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":126 + * + * cdef api PetscLGMap PyPetscLGMap_Get(object arg) except ? NULL: + * cdef PetscLGMap retv = NULL # <<<<<<<<<<<<<< + * cdef LGMap ob = arg + * retv = ob.lgm + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":127 + * cdef api PetscLGMap PyPetscLGMap_Get(object arg) except ? NULL: + * cdef PetscLGMap retv = NULL + * cdef LGMap ob = arg # <<<<<<<<<<<<<< + * retv = ob.lgm + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_LGMap)))) __PYX_ERR(65, 127, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscLGMapObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":128 + * cdef PetscLGMap retv = NULL + * cdef LGMap ob = arg + * retv = ob.lgm # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->lgm; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":129 + * cdef LGMap ob = arg + * retv = ob.lgm + * return retv # <<<<<<<<<<<<<< + * + * # -- SF -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":125 + * return retv + * + * cdef api PetscLGMap PyPetscLGMap_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscLGMap retv = NULL + * cdef LGMap ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscLGMap_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":133 + * # -- SF -- + * + * cdef api object PyPetscSF_New(PetscSF arg): # <<<<<<<<<<<<<< + * cdef SF retv = SF() + * setref(&retv.sf, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSF_New(PetscSF __pyx_v_arg) { + struct PyPetscSFObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSF_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":134 + * + * cdef api object PyPetscSF_New(PetscSF arg): + * cdef SF retv = SF() # <<<<<<<<<<<<<< + * setref(&retv.sf, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":135 + * cdef api object PyPetscSF_New(PetscSF arg): + * cdef SF retv = SF() + * setref(&retv.sf, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->sf), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 135, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":136 + * cdef SF retv = SF() + * setref(&retv.sf, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscSF PyPetscSF_Get(object arg) except? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":133 + * # -- SF -- + * + * cdef api object PyPetscSF_New(PetscSF arg): # <<<<<<<<<<<<<< + * cdef SF retv = SF() + * setref(&retv.sf, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSF_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":138 + * return retv + * + * cdef api PetscSF PyPetscSF_Get(object arg) except? NULL: # <<<<<<<<<<<<<< + * cdef PetscSF retv = NULL + * cdef SF ob = arg + */ + +static PetscSF __pyx_f_8petsc4py_5PETSc_PyPetscSF_Get(PyObject *__pyx_v_arg) { + PetscSF __pyx_v_retv; + struct PyPetscSFObject *__pyx_v_ob = 0; + PetscSF __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscSF __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSF_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":139 + * + * cdef api PetscSF PyPetscSF_Get(object arg) except? NULL: + * cdef PetscSF retv = NULL # <<<<<<<<<<<<<< + * cdef SF ob = arg + * retv = ob.sf + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":140 + * cdef api PetscSF PyPetscSF_Get(object arg) except? NULL: + * cdef PetscSF retv = NULL + * cdef SF ob = arg # <<<<<<<<<<<<<< + * retv = ob.sf + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_SF)))) __PYX_ERR(65, 140, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscSFObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":141 + * cdef PetscSF retv = NULL + * cdef SF ob = arg + * retv = ob.sf # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->sf; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":142 + * cdef SF ob = arg + * retv = ob.sf + * return retv # <<<<<<<<<<<<<< + * + * # -- Vec -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":138 + * return retv + * + * cdef api PetscSF PyPetscSF_Get(object arg) except? NULL: # <<<<<<<<<<<<<< + * cdef PetscSF retv = NULL + * cdef SF ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSF_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":146 + * # -- Vec -- + * + * cdef api object PyPetscVec_New(PetscVec arg): # <<<<<<<<<<<<<< + * cdef Vec retv = Vec() + * setref(&retv.vec, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscVec_New(Vec __pyx_v_arg) { + struct PyPetscVecObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscVec_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":147 + * + * cdef api object PyPetscVec_New(PetscVec arg): + * cdef Vec retv = Vec() # <<<<<<<<<<<<<< + * setref(&retv.vec, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":148 + * cdef api object PyPetscVec_New(PetscVec arg): + * cdef Vec retv = Vec() + * setref(&retv.vec, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->vec), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 148, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":149 + * cdef Vec retv = Vec() + * setref(&retv.vec, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscVec PyPetscVec_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":146 + * # -- Vec -- + * + * cdef api object PyPetscVec_New(PetscVec arg): # <<<<<<<<<<<<<< + * cdef Vec retv = Vec() + * setref(&retv.vec, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscVec_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":151 + * return retv + * + * cdef api PetscVec PyPetscVec_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscVec retv = NULL + * cdef Vec ob = arg + */ + +static Vec __pyx_f_8petsc4py_5PETSc_PyPetscVec_Get(PyObject *__pyx_v_arg) { + Vec __pyx_v_retv; + struct PyPetscVecObject *__pyx_v_ob = 0; + Vec __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Vec __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscVec_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":152 + * + * cdef api PetscVec PyPetscVec_Get(object arg) except ? NULL: + * cdef PetscVec retv = NULL # <<<<<<<<<<<<<< + * cdef Vec ob = arg + * retv = ob.vec + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":153 + * cdef api PetscVec PyPetscVec_Get(object arg) except ? NULL: + * cdef PetscVec retv = NULL + * cdef Vec ob = arg # <<<<<<<<<<<<<< + * retv = ob.vec + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Vec)))) __PYX_ERR(65, 153, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":154 + * cdef PetscVec retv = NULL + * cdef Vec ob = arg + * retv = ob.vec # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->vec; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":155 + * cdef Vec ob = arg + * retv = ob.vec + * return retv # <<<<<<<<<<<<<< + * + * # -- Scatter -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":151 + * return retv + * + * cdef api PetscVec PyPetscVec_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscVec retv = NULL + * cdef Vec ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscVec_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":159 + * # -- Scatter -- + * + * cdef api object PyPetscScatter_New(PetscScatter arg): # <<<<<<<<<<<<<< + * cdef Scatter retv = Scatter() + * setref(&retv.sct, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscScatter_New(VecScatter __pyx_v_arg) { + struct PyPetscScatterObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscScatter_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":160 + * + * cdef api object PyPetscScatter_New(PetscScatter arg): + * cdef Scatter retv = Scatter() # <<<<<<<<<<<<<< + * setref(&retv.sct, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":161 + * cdef api object PyPetscScatter_New(PetscScatter arg): + * cdef Scatter retv = Scatter() + * setref(&retv.sct, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->sct), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 161, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":162 + * cdef Scatter retv = Scatter() + * setref(&retv.sct, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscScatter PyPetscScatter_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":159 + * # -- Scatter -- + * + * cdef api object PyPetscScatter_New(PetscScatter arg): # <<<<<<<<<<<<<< + * cdef Scatter retv = Scatter() + * setref(&retv.sct, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscScatter_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":164 + * return retv + * + * cdef api PetscScatter PyPetscScatter_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscScatter retv = NULL + * cdef Scatter ob = arg + */ + +static VecScatter __pyx_f_8petsc4py_5PETSc_PyPetscScatter_Get(PyObject *__pyx_v_arg) { + VecScatter __pyx_v_retv; + struct PyPetscScatterObject *__pyx_v_ob = 0; + VecScatter __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + VecScatter __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscScatter_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":165 + * + * cdef api PetscScatter PyPetscScatter_Get(object arg) except ? NULL: + * cdef PetscScatter retv = NULL # <<<<<<<<<<<<<< + * cdef Scatter ob = arg + * retv = ob.sct + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":166 + * cdef api PetscScatter PyPetscScatter_Get(object arg) except ? NULL: + * cdef PetscScatter retv = NULL + * cdef Scatter ob = arg # <<<<<<<<<<<<<< + * retv = ob.sct + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Scatter)))) __PYX_ERR(65, 166, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscScatterObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":167 + * cdef PetscScatter retv = NULL + * cdef Scatter ob = arg + * retv = ob.sct # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->sct; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":168 + * cdef Scatter ob = arg + * retv = ob.sct + * return retv # <<<<<<<<<<<<<< + * + * # -- Section -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":164 + * return retv + * + * cdef api PetscScatter PyPetscScatter_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscScatter retv = NULL + * cdef Scatter ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscScatter_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":172 + * # -- Section -- + * + * cdef api object PyPetscSection_New(PetscSection arg): # <<<<<<<<<<<<<< + * cdef Section retv = Section() + * setref(&retv.sec, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSection_New(PetscSection __pyx_v_arg) { + struct PyPetscSectionObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSection_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":173 + * + * cdef api object PyPetscSection_New(PetscSection arg): + * cdef Section retv = Section() # <<<<<<<<<<<<<< + * setref(&retv.sec, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Section)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":174 + * cdef api object PyPetscSection_New(PetscSection arg): + * cdef Section retv = Section() + * setref(&retv.sec, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->sec), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 174, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":175 + * cdef Section retv = Section() + * setref(&retv.sec, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscSection PyPetscSection_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":172 + * # -- Section -- + * + * cdef api object PyPetscSection_New(PetscSection arg): # <<<<<<<<<<<<<< + * cdef Section retv = Section() + * setref(&retv.sec, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSection_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":177 + * return retv + * + * cdef api PetscSection PyPetscSection_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSection retv = NULL + * cdef Section ob = arg + */ + +static PetscSection __pyx_f_8petsc4py_5PETSc_PyPetscSection_Get(PyObject *__pyx_v_arg) { + PetscSection __pyx_v_retv; + struct PyPetscSectionObject *__pyx_v_ob = 0; + PetscSection __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscSection __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSection_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":178 + * + * cdef api PetscSection PyPetscSection_Get(object arg) except ? NULL: + * cdef PetscSection retv = NULL # <<<<<<<<<<<<<< + * cdef Section ob = arg + * retv = ob.sec + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":179 + * cdef api PetscSection PyPetscSection_Get(object arg) except ? NULL: + * cdef PetscSection retv = NULL + * cdef Section ob = arg # <<<<<<<<<<<<<< + * retv = ob.sec + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Section)))) __PYX_ERR(65, 179, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscSectionObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":180 + * cdef PetscSection retv = NULL + * cdef Section ob = arg + * retv = ob.sec # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->sec; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":181 + * cdef Section ob = arg + * retv = ob.sec + * return retv # <<<<<<<<<<<<<< + * + * # -- Mat -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":177 + * return retv + * + * cdef api PetscSection PyPetscSection_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSection retv = NULL + * cdef Section ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSection_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":185 + * # -- Mat -- + * + * cdef api object PyPetscMat_New(PetscMat arg): # <<<<<<<<<<<<<< + * cdef Mat retv = Mat() + * setref(&retv.mat, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscMat_New(Mat __pyx_v_arg) { + struct PyPetscMatObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscMat_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":186 + * + * cdef api object PyPetscMat_New(PetscMat arg): + * cdef Mat retv = Mat() # <<<<<<<<<<<<<< + * setref(&retv.mat, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":187 + * cdef api object PyPetscMat_New(PetscMat arg): + * cdef Mat retv = Mat() + * setref(&retv.mat, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->mat), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 187, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":188 + * cdef Mat retv = Mat() + * setref(&retv.mat, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscMat PyPetscMat_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":185 + * # -- Mat -- + * + * cdef api object PyPetscMat_New(PetscMat arg): # <<<<<<<<<<<<<< + * cdef Mat retv = Mat() + * setref(&retv.mat, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscMat_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":190 + * return retv + * + * cdef api PetscMat PyPetscMat_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscMat retv = NULL + * cdef Mat ob = arg + */ + +static Mat __pyx_f_8petsc4py_5PETSc_PyPetscMat_Get(PyObject *__pyx_v_arg) { + Mat __pyx_v_retv; + struct PyPetscMatObject *__pyx_v_ob = 0; + Mat __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Mat __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscMat_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":191 + * + * cdef api PetscMat PyPetscMat_Get(object arg) except ? NULL: + * cdef PetscMat retv = NULL # <<<<<<<<<<<<<< + * cdef Mat ob = arg + * retv = ob.mat + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":192 + * cdef api PetscMat PyPetscMat_Get(object arg) except ? NULL: + * cdef PetscMat retv = NULL + * cdef Mat ob = arg # <<<<<<<<<<<<<< + * retv = ob.mat + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Mat)))) __PYX_ERR(65, 192, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":193 + * cdef PetscMat retv = NULL + * cdef Mat ob = arg + * retv = ob.mat # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->mat; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":194 + * cdef Mat ob = arg + * retv = ob.mat + * return retv # <<<<<<<<<<<<<< + * + * # -- MatPartitioning -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":190 + * return retv + * + * cdef api PetscMat PyPetscMat_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscMat retv = NULL + * cdef Mat ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscMat_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":198 + * # -- MatPartitioning -- + * + * cdef api object PyPetscMatPartitioning_New(PetscMatPartitioning arg): # <<<<<<<<<<<<<< + * cdef MatPartitioning retv = MatPartitioning() + * setref(&retv.part, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New(MatPartitioning __pyx_v_arg) { + struct PyPetscMatPartitioningObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscMatPartitioning_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":199 + * + * cdef api object PyPetscMatPartitioning_New(PetscMatPartitioning arg): + * cdef MatPartitioning retv = MatPartitioning() # <<<<<<<<<<<<<< + * setref(&retv.part, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_MatPartitioning)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscMatPartitioningObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":200 + * cdef api object PyPetscMatPartitioning_New(PetscMatPartitioning arg): + * cdef MatPartitioning retv = MatPartitioning() + * setref(&retv.part, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->part), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 200, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":201 + * cdef MatPartitioning retv = MatPartitioning() + * setref(&retv.part, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscMatPartitioning PyPetscMatPartitioning_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":198 + * # -- MatPartitioning -- + * + * cdef api object PyPetscMatPartitioning_New(PetscMatPartitioning arg): # <<<<<<<<<<<<<< + * cdef MatPartitioning retv = MatPartitioning() + * setref(&retv.part, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscMatPartitioning_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":203 + * return retv + * + * cdef api PetscMatPartitioning PyPetscMatPartitioning_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscMatPartitioning retv = NULL + * cdef MatPartitioning ob = arg + */ + +static MatPartitioning __pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get(PyObject *__pyx_v_arg) { + MatPartitioning __pyx_v_retv; + struct PyPetscMatPartitioningObject *__pyx_v_ob = 0; + MatPartitioning __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + MatPartitioning __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscMatPartitioning_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":204 + * + * cdef api PetscMatPartitioning PyPetscMatPartitioning_Get(object arg) except ? NULL: + * cdef PetscMatPartitioning retv = NULL # <<<<<<<<<<<<<< + * cdef MatPartitioning ob = arg + * retv = ob.part + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":205 + * cdef api PetscMatPartitioning PyPetscMatPartitioning_Get(object arg) except ? NULL: + * cdef PetscMatPartitioning retv = NULL + * cdef MatPartitioning ob = arg # <<<<<<<<<<<<<< + * retv = ob.part + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_MatPartitioning)))) __PYX_ERR(65, 205, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscMatPartitioningObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":206 + * cdef PetscMatPartitioning retv = NULL + * cdef MatPartitioning ob = arg + * retv = ob.part # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->part; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":207 + * cdef MatPartitioning ob = arg + * retv = ob.part + * return retv # <<<<<<<<<<<<<< + * + * # -- PC -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":203 + * return retv + * + * cdef api PetscMatPartitioning PyPetscMatPartitioning_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscMatPartitioning retv = NULL + * cdef MatPartitioning ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscMatPartitioning_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":211 + * # -- PC -- + * + * cdef api object PyPetscPC_New(PetscPC arg): # <<<<<<<<<<<<<< + * cdef PC retv = PC() + * setref(&retv.pc, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscPC_New(PC __pyx_v_arg) { + struct PyPetscPCObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscPC_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":212 + * + * cdef api object PyPetscPC_New(PetscPC arg): + * cdef PC retv = PC() # <<<<<<<<<<<<<< + * setref(&retv.pc, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":213 + * cdef api object PyPetscPC_New(PetscPC arg): + * cdef PC retv = PC() + * setref(&retv.pc, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->pc), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 213, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":214 + * cdef PC retv = PC() + * setref(&retv.pc, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscPC PyPetscPC_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":211 + * # -- PC -- + * + * cdef api object PyPetscPC_New(PetscPC arg): # <<<<<<<<<<<<<< + * cdef PC retv = PC() + * setref(&retv.pc, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscPC_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":216 + * return retv + * + * cdef api PetscPC PyPetscPC_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscPC retv = NULL + * cdef PC ob = arg + */ + +static PC __pyx_f_8petsc4py_5PETSc_PyPetscPC_Get(PyObject *__pyx_v_arg) { + PC __pyx_v_retv; + struct PyPetscPCObject *__pyx_v_ob = 0; + PC __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PC __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscPC_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":217 + * + * cdef api PetscPC PyPetscPC_Get(object arg) except ? NULL: + * cdef PetscPC retv = NULL # <<<<<<<<<<<<<< + * cdef PC ob = arg + * retv = ob.pc + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":218 + * cdef api PetscPC PyPetscPC_Get(object arg) except ? NULL: + * cdef PetscPC retv = NULL + * cdef PC ob = arg # <<<<<<<<<<<<<< + * retv = ob.pc + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_PC)))) __PYX_ERR(65, 218, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":219 + * cdef PetscPC retv = NULL + * cdef PC ob = arg + * retv = ob.pc # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->pc; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":220 + * cdef PC ob = arg + * retv = ob.pc + * return retv # <<<<<<<<<<<<<< + * + * # -- KSP -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":216 + * return retv + * + * cdef api PetscPC PyPetscPC_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscPC retv = NULL + * cdef PC ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscPC_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":224 + * # -- KSP -- + * + * cdef api object PyPetscKSP_New(PetscKSP arg): # <<<<<<<<<<<<<< + * cdef KSP retv = KSP() + * setref(&retv.ksp, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscKSP_New(KSP __pyx_v_arg) { + struct PyPetscKSPObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscKSP_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":225 + * + * cdef api object PyPetscKSP_New(PetscKSP arg): + * cdef KSP retv = KSP() # <<<<<<<<<<<<<< + * setref(&retv.ksp, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":226 + * cdef api object PyPetscKSP_New(PetscKSP arg): + * cdef KSP retv = KSP() + * setref(&retv.ksp, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->ksp), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 226, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":227 + * cdef KSP retv = KSP() + * setref(&retv.ksp, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscKSP PyPetscKSP_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":224 + * # -- KSP -- + * + * cdef api object PyPetscKSP_New(PetscKSP arg): # <<<<<<<<<<<<<< + * cdef KSP retv = KSP() + * setref(&retv.ksp, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscKSP_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":229 + * return retv + * + * cdef api PetscKSP PyPetscKSP_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscKSP retv = NULL + * cdef KSP ob = arg + */ + +static KSP __pyx_f_8petsc4py_5PETSc_PyPetscKSP_Get(PyObject *__pyx_v_arg) { + KSP __pyx_v_retv; + struct PyPetscKSPObject *__pyx_v_ob = 0; + KSP __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + KSP __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscKSP_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":230 + * + * cdef api PetscKSP PyPetscKSP_Get(object arg) except ? NULL: + * cdef PetscKSP retv = NULL # <<<<<<<<<<<<<< + * cdef KSP ob = arg + * retv = ob.ksp + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":231 + * cdef api PetscKSP PyPetscKSP_Get(object arg) except ? NULL: + * cdef PetscKSP retv = NULL + * cdef KSP ob = arg # <<<<<<<<<<<<<< + * retv = ob.ksp + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_KSP)))) __PYX_ERR(65, 231, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":232 + * cdef PetscKSP retv = NULL + * cdef KSP ob = arg + * retv = ob.ksp # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->ksp; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":233 + * cdef KSP ob = arg + * retv = ob.ksp + * return retv # <<<<<<<<<<<<<< + * + * # -- SNES -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":229 + * return retv + * + * cdef api PetscKSP PyPetscKSP_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscKSP retv = NULL + * cdef KSP ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscKSP_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":237 + * # -- SNES -- + * + * cdef api object PyPetscSNES_New(PetscSNES arg): # <<<<<<<<<<<<<< + * cdef SNES retv = SNES() + * setref(&retv.snes, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSNES_New(SNES __pyx_v_arg) { + struct PyPetscSNESObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSNES_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":238 + * + * cdef api object PyPetscSNES_New(PetscSNES arg): + * cdef SNES retv = SNES() # <<<<<<<<<<<<<< + * setref(&retv.snes, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":239 + * cdef api object PyPetscSNES_New(PetscSNES arg): + * cdef SNES retv = SNES() + * setref(&retv.snes, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->snes), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 239, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":240 + * cdef SNES retv = SNES() + * setref(&retv.snes, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscSNES PyPetscSNES_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":237 + * # -- SNES -- + * + * cdef api object PyPetscSNES_New(PetscSNES arg): # <<<<<<<<<<<<<< + * cdef SNES retv = SNES() + * setref(&retv.snes, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSNES_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":242 + * return retv + * + * cdef api PetscSNES PyPetscSNES_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSNES retv = NULL + * cdef SNES ob = arg + */ + +static SNES __pyx_f_8petsc4py_5PETSc_PyPetscSNES_Get(PyObject *__pyx_v_arg) { + SNES __pyx_v_retv; + struct PyPetscSNESObject *__pyx_v_ob = 0; + SNES __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + SNES __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSNES_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":243 + * + * cdef api PetscSNES PyPetscSNES_Get(object arg) except ? NULL: + * cdef PetscSNES retv = NULL # <<<<<<<<<<<<<< + * cdef SNES ob = arg + * retv = ob.snes + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":244 + * cdef api PetscSNES PyPetscSNES_Get(object arg) except ? NULL: + * cdef PetscSNES retv = NULL + * cdef SNES ob = arg # <<<<<<<<<<<<<< + * retv = ob.snes + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_SNES)))) __PYX_ERR(65, 244, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":245 + * cdef PetscSNES retv = NULL + * cdef SNES ob = arg + * retv = ob.snes # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->snes; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":246 + * cdef SNES ob = arg + * retv = ob.snes + * return retv # <<<<<<<<<<<<<< + * + * # -- TS -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":242 + * return retv + * + * cdef api PetscSNES PyPetscSNES_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSNES retv = NULL + * cdef SNES ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSNES_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":250 + * # -- TS -- + * + * cdef api object PyPetscTS_New(PetscTS arg): # <<<<<<<<<<<<<< + * cdef TS retv = TS() + * setref(&retv.ts, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscTS_New(TS __pyx_v_arg) { + struct PyPetscTSObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscTS_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":251 + * + * cdef api object PyPetscTS_New(PetscTS arg): + * cdef TS retv = TS() # <<<<<<<<<<<<<< + * setref(&retv.ts, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":252 + * cdef api object PyPetscTS_New(PetscTS arg): + * cdef TS retv = TS() + * setref(&retv.ts, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->ts), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 252, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":253 + * cdef TS retv = TS() + * setref(&retv.ts, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscTS PyPetscTS_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":250 + * # -- TS -- + * + * cdef api object PyPetscTS_New(PetscTS arg): # <<<<<<<<<<<<<< + * cdef TS retv = TS() + * setref(&retv.ts, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscTS_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":255 + * return retv + * + * cdef api PetscTS PyPetscTS_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscTS retv = NULL + * cdef TS ob = arg + */ + +static TS __pyx_f_8petsc4py_5PETSc_PyPetscTS_Get(PyObject *__pyx_v_arg) { + TS __pyx_v_retv; + struct PyPetscTSObject *__pyx_v_ob = 0; + TS __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + TS __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscTS_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":256 + * + * cdef api PetscTS PyPetscTS_Get(object arg) except ? NULL: + * cdef PetscTS retv = NULL # <<<<<<<<<<<<<< + * cdef TS ob = arg + * retv = ob.ts + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":257 + * cdef api PetscTS PyPetscTS_Get(object arg) except ? NULL: + * cdef PetscTS retv = NULL + * cdef TS ob = arg # <<<<<<<<<<<<<< + * retv = ob.ts + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_TS)))) __PYX_ERR(65, 257, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":258 + * cdef PetscTS retv = NULL + * cdef TS ob = arg + * retv = ob.ts # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->ts; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":259 + * cdef TS ob = arg + * retv = ob.ts + * return retv # <<<<<<<<<<<<<< + * + * # -- TAO -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":255 + * return retv + * + * cdef api PetscTS PyPetscTS_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscTS retv = NULL + * cdef TS ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscTS_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":263 + * # -- TAO -- + * + * cdef api object PyPetscTAO_New(PetscTAO arg): # <<<<<<<<<<<<<< + * cdef TAO retv = TAO() + * setref(&retv.tao, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscTAO_New(Tao __pyx_v_arg) { + struct PyPetscTAOObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscTAO_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":264 + * + * cdef api object PyPetscTAO_New(PetscTAO arg): + * cdef TAO retv = TAO() # <<<<<<<<<<<<<< + * setref(&retv.tao, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":265 + * cdef api object PyPetscTAO_New(PetscTAO arg): + * cdef TAO retv = TAO() + * setref(&retv.tao, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->tao), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 265, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":266 + * cdef TAO retv = TAO() + * setref(&retv.tao, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscTAO PyPetscTAO_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":263 + * # -- TAO -- + * + * cdef api object PyPetscTAO_New(PetscTAO arg): # <<<<<<<<<<<<<< + * cdef TAO retv = TAO() + * setref(&retv.tao, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscTAO_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":268 + * return retv + * + * cdef api PetscTAO PyPetscTAO_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscTAO retv = NULL + * cdef TAO ob = arg + */ + +static Tao __pyx_f_8petsc4py_5PETSc_PyPetscTAO_Get(PyObject *__pyx_v_arg) { + Tao __pyx_v_retv; + struct PyPetscTAOObject *__pyx_v_ob = 0; + Tao __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Tao __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscTAO_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":269 + * + * cdef api PetscTAO PyPetscTAO_Get(object arg) except ? NULL: + * cdef PetscTAO retv = NULL # <<<<<<<<<<<<<< + * cdef TAO ob = arg + * retv = ob.tao + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":270 + * cdef api PetscTAO PyPetscTAO_Get(object arg) except ? NULL: + * cdef PetscTAO retv = NULL + * cdef TAO ob = arg # <<<<<<<<<<<<<< + * retv = ob.tao + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_TAO)))) __PYX_ERR(65, 270, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":271 + * cdef PetscTAO retv = NULL + * cdef TAO ob = arg + * retv = ob.tao # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->tao; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":272 + * cdef TAO ob = arg + * retv = ob.tao + * return retv # <<<<<<<<<<<<<< + * + * # -- AO -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":268 + * return retv + * + * cdef api PetscTAO PyPetscTAO_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscTAO retv = NULL + * cdef TAO ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscTAO_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":276 + * # -- AO -- + * + * cdef api object PyPetscAO_New(PetscAO arg): # <<<<<<<<<<<<<< + * cdef AO retv = AO() + * setref(&retv.ao, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscAO_New(AO __pyx_v_arg) { + struct PyPetscAOObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscAO_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":277 + * + * cdef api object PyPetscAO_New(PetscAO arg): + * cdef AO retv = AO() # <<<<<<<<<<<<<< + * setref(&retv.ao, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_AO)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":278 + * cdef api object PyPetscAO_New(PetscAO arg): + * cdef AO retv = AO() + * setref(&retv.ao, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->ao), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 278, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":279 + * cdef AO retv = AO() + * setref(&retv.ao, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscAO PyPetscAO_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":276 + * # -- AO -- + * + * cdef api object PyPetscAO_New(PetscAO arg): # <<<<<<<<<<<<<< + * cdef AO retv = AO() + * setref(&retv.ao, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscAO_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":281 + * return retv + * + * cdef api PetscAO PyPetscAO_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscAO retv = NULL + * cdef AO ob = arg + */ + +static AO __pyx_f_8petsc4py_5PETSc_PyPetscAO_Get(PyObject *__pyx_v_arg) { + AO __pyx_v_retv; + struct PyPetscAOObject *__pyx_v_ob = 0; + AO __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + AO __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscAO_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":282 + * + * cdef api PetscAO PyPetscAO_Get(object arg) except ? NULL: + * cdef PetscAO retv = NULL # <<<<<<<<<<<<<< + * cdef AO ob = arg + * retv = ob.ao + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":283 + * cdef api PetscAO PyPetscAO_Get(object arg) except ? NULL: + * cdef PetscAO retv = NULL + * cdef AO ob = arg # <<<<<<<<<<<<<< + * retv = ob.ao + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_AO)))) __PYX_ERR(65, 283, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":284 + * cdef PetscAO retv = NULL + * cdef AO ob = arg + * retv = ob.ao # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->ao; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":285 + * cdef AO ob = arg + * retv = ob.ao + * return retv # <<<<<<<<<<<<<< + * + * # -- DM -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":281 + * return retv + * + * cdef api PetscAO PyPetscAO_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscAO retv = NULL + * cdef AO ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscAO_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":289 + * # -- DM -- + * + * cdef api object PyPetscDM_New(PetscDM arg): # <<<<<<<<<<<<<< + * cdef DM retv = subtype_DM(arg)() + * setref(&retv.dm, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDM_New(DM __pyx_v_arg) { + struct PyPetscDMObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDM_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":290 + * + * cdef api object PyPetscDM_New(PetscDM arg): + * cdef DM retv = subtype_DM(arg)() # <<<<<<<<<<<<<< + * setref(&retv.dm, arg) + * return retv + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_subtype_DM(__pyx_v_arg)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_CallNoArg(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(65, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_DM))))) __PYX_ERR(65, 290, __pyx_L1_error) + __pyx_v_retv = ((struct PyPetscDMObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":291 + * cdef api object PyPetscDM_New(PetscDM arg): + * cdef DM retv = subtype_DM(arg)() + * setref(&retv.dm, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->dm), __pyx_v_arg); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(65, 291, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":292 + * cdef DM retv = subtype_DM(arg)() + * setref(&retv.dm, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscDM PyPetscDM_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":289 + * # -- DM -- + * + * cdef api object PyPetscDM_New(PetscDM arg): # <<<<<<<<<<<<<< + * cdef DM retv = subtype_DM(arg)() + * setref(&retv.dm, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDM_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":294 + * return retv + * + * cdef api PetscDM PyPetscDM_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDM retv = NULL + * cdef DM ob = arg + */ + +static DM __pyx_f_8petsc4py_5PETSc_PyPetscDM_Get(PyObject *__pyx_v_arg) { + DM __pyx_v_retv; + struct PyPetscDMObject *__pyx_v_ob = 0; + DM __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + DM __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDM_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":295 + * + * cdef api PetscDM PyPetscDM_Get(object arg) except ? NULL: + * cdef PetscDM retv = NULL # <<<<<<<<<<<<<< + * cdef DM ob = arg + * retv = ob.dm + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":296 + * cdef api PetscDM PyPetscDM_Get(object arg) except ? NULL: + * cdef PetscDM retv = NULL + * cdef DM ob = arg # <<<<<<<<<<<<<< + * retv = ob.dm + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_DM)))) __PYX_ERR(65, 296, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscDMObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":297 + * cdef PetscDM retv = NULL + * cdef DM ob = arg + * retv = ob.dm # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->dm; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":298 + * cdef DM ob = arg + * retv = ob.dm + * return retv # <<<<<<<<<<<<<< + * + * # -- DS -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":294 + * return retv + * + * cdef api PetscDM PyPetscDM_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDM retv = NULL + * cdef DM ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDM_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":302 + * # -- DS -- + * + * cdef api object PyPetscDS_New(PetscDS arg): # <<<<<<<<<<<<<< + * cdef DS retv = DS() + * setref(&retv.ds, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDS_New(PetscDS __pyx_v_arg) { + struct PyPetscDSObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDS_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":303 + * + * cdef api object PyPetscDS_New(PetscDS arg): + * cdef DS retv = DS() # <<<<<<<<<<<<<< + * setref(&retv.ds, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DS)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscDSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":304 + * cdef api object PyPetscDS_New(PetscDS arg): + * cdef DS retv = DS() + * setref(&retv.ds, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->ds), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 304, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":305 + * cdef DS retv = DS() + * setref(&retv.ds, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscDS PyPetscDS_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":302 + * # -- DS -- + * + * cdef api object PyPetscDS_New(PetscDS arg): # <<<<<<<<<<<<<< + * cdef DS retv = DS() + * setref(&retv.ds, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDS_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":307 + * return retv + * + * cdef api PetscDS PyPetscDS_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDS retv = NULL + * cdef DS ob = arg + */ + +static PetscDS __pyx_f_8petsc4py_5PETSc_PyPetscDS_Get(PyObject *__pyx_v_arg) { + PetscDS __pyx_v_retv; + struct PyPetscDSObject *__pyx_v_ob = 0; + PetscDS __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscDS __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDS_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":308 + * + * cdef api PetscDS PyPetscDS_Get(object arg) except ? NULL: + * cdef PetscDS retv = NULL # <<<<<<<<<<<<<< + * cdef DS ob = arg + * retv = ob.ds + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":309 + * cdef api PetscDS PyPetscDS_Get(object arg) except ? NULL: + * cdef PetscDS retv = NULL + * cdef DS ob = arg # <<<<<<<<<<<<<< + * retv = ob.ds + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_DS)))) __PYX_ERR(65, 309, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscDSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":310 + * cdef PetscDS retv = NULL + * cdef DS ob = arg + * retv = ob.ds # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->ds; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":311 + * cdef DS ob = arg + * retv = ob.ds + * return retv # <<<<<<<<<<<<<< + * + * # -- Partitioner -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":307 + * return retv + * + * cdef api PetscDS PyPetscDS_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDS retv = NULL + * cdef DS ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDS_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":315 + * # -- Partitioner -- + * + * cdef api object PyPetscPartitioner_New(PetscPartitioner arg): # <<<<<<<<<<<<<< + * cdef Partitioner retv = Partitioner() + * setref(&retv.part, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_New(PetscPartitioner __pyx_v_arg) { + struct PyPetscPartitionerObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscPartitioner_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":316 + * + * cdef api object PyPetscPartitioner_New(PetscPartitioner arg): + * cdef Partitioner retv = Partitioner() # <<<<<<<<<<<<<< + * setref(&retv.part, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Partitioner)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscPartitionerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":317 + * cdef api object PyPetscPartitioner_New(PetscPartitioner arg): + * cdef Partitioner retv = Partitioner() + * setref(&retv.part, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->part), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 317, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":318 + * cdef Partitioner retv = Partitioner() + * setref(&retv.part, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscPartitioner PyPetscPartitioner_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":315 + * # -- Partitioner -- + * + * cdef api object PyPetscPartitioner_New(PetscPartitioner arg): # <<<<<<<<<<<<<< + * cdef Partitioner retv = Partitioner() + * setref(&retv.part, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscPartitioner_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":320 + * return retv + * + * cdef api PetscPartitioner PyPetscPartitioner_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscPartitioner retv = NULL + * cdef Partitioner ob = arg + */ + +static PetscPartitioner __pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_Get(PyObject *__pyx_v_arg) { + PetscPartitioner __pyx_v_retv; + struct PyPetscPartitionerObject *__pyx_v_ob = 0; + PetscPartitioner __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscPartitioner __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscPartitioner_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":321 + * + * cdef api PetscPartitioner PyPetscPartitioner_Get(object arg) except ? NULL: + * cdef PetscPartitioner retv = NULL # <<<<<<<<<<<<<< + * cdef Partitioner ob = arg + * retv = ob.part + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":322 + * cdef api PetscPartitioner PyPetscPartitioner_Get(object arg) except ? NULL: + * cdef PetscPartitioner retv = NULL + * cdef Partitioner ob = arg # <<<<<<<<<<<<<< + * retv = ob.part + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Partitioner)))) __PYX_ERR(65, 322, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscPartitionerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":323 + * cdef PetscPartitioner retv = NULL + * cdef Partitioner ob = arg + * retv = ob.part # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->part; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":324 + * cdef Partitioner ob = arg + * retv = ob.part + * return retv # <<<<<<<<<<<<<< + * + * # -- FE -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":320 + * return retv + * + * cdef api PetscPartitioner PyPetscPartitioner_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscPartitioner retv = NULL + * cdef Partitioner ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscPartitioner_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":328 + * # -- FE -- + * + * cdef api object PyPetscFE_New(PetscFE arg): # <<<<<<<<<<<<<< + * cdef FE retv = FE() + * setref(&retv.fe, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscFE_New(PetscFE __pyx_v_arg) { + struct PyPetscFEObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscFE_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":329 + * + * cdef api object PyPetscFE_New(PetscFE arg): + * cdef FE retv = FE() # <<<<<<<<<<<<<< + * setref(&retv.fe, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_FE)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscFEObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":330 + * cdef api object PyPetscFE_New(PetscFE arg): + * cdef FE retv = FE() + * setref(&retv.fe, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->fe), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 330, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":331 + * cdef FE retv = FE() + * setref(&retv.fe, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscFE PyPetscFE_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":328 + * # -- FE -- + * + * cdef api object PyPetscFE_New(PetscFE arg): # <<<<<<<<<<<<<< + * cdef FE retv = FE() + * setref(&retv.fe, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscFE_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":333 + * return retv + * + * cdef api PetscFE PyPetscFE_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscFE retv = NULL + * cdef FE ob = arg + */ + +static PetscFE __pyx_f_8petsc4py_5PETSc_PyPetscFE_Get(PyObject *__pyx_v_arg) { + PetscFE __pyx_v_retv; + struct PyPetscFEObject *__pyx_v_ob = 0; + PetscFE __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscFE __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscFE_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":334 + * + * cdef api PetscFE PyPetscFE_Get(object arg) except ? NULL: + * cdef PetscFE retv = NULL # <<<<<<<<<<<<<< + * cdef FE ob = arg + * retv = ob.fe + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":335 + * cdef api PetscFE PyPetscFE_Get(object arg) except ? NULL: + * cdef PetscFE retv = NULL + * cdef FE ob = arg # <<<<<<<<<<<<<< + * retv = ob.fe + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_FE)))) __PYX_ERR(65, 335, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscFEObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":336 + * cdef PetscFE retv = NULL + * cdef FE ob = arg + * retv = ob.fe # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->fe; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":337 + * cdef FE ob = arg + * retv = ob.fe + * return retv # <<<<<<<<<<<<<< + * + * # -- QUAD -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":333 + * return retv + * + * cdef api PetscFE PyPetscFE_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscFE retv = NULL + * cdef FE ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscFE_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":341 + * # -- QUAD -- + * + * cdef api object PyPetscQuad_New(PetscQuadrature arg): # <<<<<<<<<<<<<< + * cdef Quad retv = Quad() + * setref(&retv.quad, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscQuad_New(PetscQuadrature __pyx_v_arg) { + struct PyPetscQuadObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscQuad_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":342 + * + * cdef api object PyPetscQuad_New(PetscQuadrature arg): + * cdef Quad retv = Quad() # <<<<<<<<<<<<<< + * setref(&retv.quad, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Quad)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":343 + * cdef api object PyPetscQuad_New(PetscQuadrature arg): + * cdef Quad retv = Quad() + * setref(&retv.quad, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->quad), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 343, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":344 + * cdef Quad retv = Quad() + * setref(&retv.quad, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscQuadrature PyPetscQuad_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":341 + * # -- QUAD -- + * + * cdef api object PyPetscQuad_New(PetscQuadrature arg): # <<<<<<<<<<<<<< + * cdef Quad retv = Quad() + * setref(&retv.quad, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscQuad_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":346 + * return retv + * + * cdef api PetscQuadrature PyPetscQuad_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscQuadrature retv = NULL + * cdef Quad ob = arg + */ + +static PetscQuadrature __pyx_f_8petsc4py_5PETSc_PyPetscQuad_Get(PyObject *__pyx_v_arg) { + PetscQuadrature __pyx_v_retv; + struct PyPetscQuadObject *__pyx_v_ob = 0; + PetscQuadrature __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscQuadrature __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscQuad_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":347 + * + * cdef api PetscQuadrature PyPetscQuad_Get(object arg) except ? NULL: + * cdef PetscQuadrature retv = NULL # <<<<<<<<<<<<<< + * cdef Quad ob = arg + * retv = ob.quad + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":348 + * cdef api PetscQuadrature PyPetscQuad_Get(object arg) except ? NULL: + * cdef PetscQuadrature retv = NULL + * cdef Quad ob = arg # <<<<<<<<<<<<<< + * retv = ob.quad + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Quad)))) __PYX_ERR(65, 348, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscQuadObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":349 + * cdef PetscQuadrature retv = NULL + * cdef Quad ob = arg + * retv = ob.quad # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->quad; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":350 + * cdef Quad ob = arg + * retv = ob.quad + * return retv # <<<<<<<<<<<<<< + * + * # -- DMLabel -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":346 + * return retv + * + * cdef api PetscQuadrature PyPetscQuad_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscQuadrature retv = NULL + * cdef Quad ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscQuad_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":354 + * # -- DMLabel -- + * + * cdef api object PyPetscDMLabel_New(PetscDMLabel arg): # <<<<<<<<<<<<<< + * cdef DMLabel retv = DMLabel() + * setref(&retv.dmlabel, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_New(DMLabel __pyx_v_arg) { + struct PyPetscDMLabelObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDMLabel_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":355 + * + * cdef api object PyPetscDMLabel_New(PetscDMLabel arg): + * cdef DMLabel retv = DMLabel() # <<<<<<<<<<<<<< + * setref(&retv.dmlabel, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMLabel)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":356 + * cdef api object PyPetscDMLabel_New(PetscDMLabel arg): + * cdef DMLabel retv = DMLabel() + * setref(&retv.dmlabel, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->dmlabel), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 356, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":357 + * cdef DMLabel retv = DMLabel() + * setref(&retv.dmlabel, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscDMLabel PyPetscDMLabel_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":354 + * # -- DMLabel -- + * + * cdef api object PyPetscDMLabel_New(PetscDMLabel arg): # <<<<<<<<<<<<<< + * cdef DMLabel retv = DMLabel() + * setref(&retv.dmlabel, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDMLabel_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":359 + * return retv + * + * cdef api PetscDMLabel PyPetscDMLabel_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDMLabel retv = NULL + * cdef DMLabel ob = arg + */ + +static DMLabel __pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_Get(PyObject *__pyx_v_arg) { + DMLabel __pyx_v_retv; + struct PyPetscDMLabelObject *__pyx_v_ob = 0; + DMLabel __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + DMLabel __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDMLabel_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":360 + * + * cdef api PetscDMLabel PyPetscDMLabel_Get(object arg) except ? NULL: + * cdef PetscDMLabel retv = NULL # <<<<<<<<<<<<<< + * cdef DMLabel ob = arg + * retv = ob.dmlabel + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":361 + * cdef api PetscDMLabel PyPetscDMLabel_Get(object arg) except ? NULL: + * cdef PetscDMLabel retv = NULL + * cdef DMLabel ob = arg # <<<<<<<<<<<<<< + * retv = ob.dmlabel + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_DMLabel)))) __PYX_ERR(65, 361, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscDMLabelObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":362 + * cdef PetscDMLabel retv = NULL + * cdef DMLabel ob = arg + * retv = ob.dmlabel # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->dmlabel; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":363 + * cdef DMLabel ob = arg + * retv = ob.dmlabel + * return retv # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":359 + * return retv + * + * cdef api PetscDMLabel PyPetscDMLabel_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDMLabel retv = NULL + * cdef DMLabel ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDMLabel_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":368 + * # -- SPACE -- + * + * cdef api object PyPetscSpace_New(PetscSpace arg): # <<<<<<<<<<<<<< + * cdef Space retv = Space() + * setref(&retv.space, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscSpace_New(PetscSpace __pyx_v_arg) { + struct PyPetscSpaceObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSpace_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":369 + * + * cdef api object PyPetscSpace_New(PetscSpace arg): + * cdef Space retv = Space() # <<<<<<<<<<<<<< + * setref(&retv.space, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Space)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":370 + * cdef api object PyPetscSpace_New(PetscSpace arg): + * cdef Space retv = Space() + * setref(&retv.space, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->space), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 370, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":371 + * cdef Space retv = Space() + * setref(&retv.space, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscSpace PyPetscSpace_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":368 + * # -- SPACE -- + * + * cdef api object PyPetscSpace_New(PetscSpace arg): # <<<<<<<<<<<<<< + * cdef Space retv = Space() + * setref(&retv.space, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSpace_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":373 + * return retv + * + * cdef api PetscSpace PyPetscSpace_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSpace retv = NULL + * cdef Space ob = arg + */ + +static PetscSpace __pyx_f_8petsc4py_5PETSc_PyPetscSpace_Get(PyObject *__pyx_v_arg) { + PetscSpace __pyx_v_retv; + struct PyPetscSpaceObject *__pyx_v_ob = 0; + PetscSpace __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscSpace __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscSpace_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":374 + * + * cdef api PetscSpace PyPetscSpace_Get(object arg) except ? NULL: + * cdef PetscSpace retv = NULL # <<<<<<<<<<<<<< + * cdef Space ob = arg + * retv = ob.space + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":375 + * cdef api PetscSpace PyPetscSpace_Get(object arg) except ? NULL: + * cdef PetscSpace retv = NULL + * cdef Space ob = arg # <<<<<<<<<<<<<< + * retv = ob.space + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_Space)))) __PYX_ERR(65, 375, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":376 + * cdef PetscSpace retv = NULL + * cdef Space ob = arg + * retv = ob.space # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->space; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":377 + * cdef Space ob = arg + * retv = ob.space + * return retv # <<<<<<<<<<<<<< + * + * # -- DUALSPACE -- + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":373 + * return retv + * + * cdef api PetscSpace PyPetscSpace_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscSpace retv = NULL + * cdef Space ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscSpace_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":381 + * # -- DUALSPACE -- + * + * cdef api object PyPetscDualSpace_New(PetscDualSpace arg): # <<<<<<<<<<<<<< + * cdef DualSpace retv = DualSpace() + * setref(&retv.dualspace, arg) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_New(PetscDualSpace __pyx_v_arg) { + struct PyPetscDualSpaceObject *__pyx_v_retv = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDualSpace_New", 0); + + /* "petsc4py/PETSc/CAPI.pyx":382 + * + * cdef api object PyPetscDualSpace_New(PetscDualSpace arg): + * cdef DualSpace retv = DualSpace() # <<<<<<<<<<<<<< + * setref(&retv.dualspace, arg) + * return retv + */ + __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DualSpace)); if (unlikely(!__pyx_t_1)) __PYX_ERR(65, 382, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_retv = ((struct PyPetscDualSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":383 + * cdef api object PyPetscDualSpace_New(PetscDualSpace arg): + * cdef DualSpace retv = DualSpace() + * setref(&retv.dualspace, arg) # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_setref((&__pyx_v_retv->dualspace), __pyx_v_arg); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(65, 383, __pyx_L1_error) + + /* "petsc4py/PETSc/CAPI.pyx":384 + * cdef DualSpace retv = DualSpace() + * setref(&retv.dualspace, arg) + * return retv # <<<<<<<<<<<<<< + * + * cdef api PetscDualSpace PyPetscDualSpace_Get(object arg) except ? NULL: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_retv)); + __pyx_r = ((PyObject *)__pyx_v_retv); + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":381 + * # -- DUALSPACE -- + * + * cdef api object PyPetscDualSpace_New(PetscDualSpace arg): # <<<<<<<<<<<<<< + * cdef DualSpace retv = DualSpace() + * setref(&retv.dualspace, arg) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDualSpace_New", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_retv); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/CAPI.pyx":386 + * return retv + * + * cdef api PetscDualSpace PyPetscDualSpace_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDualSpace retv = NULL + * cdef DualSpace ob = arg + */ + +static PetscDualSpace __pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_Get(PyObject *__pyx_v_arg) { + PetscDualSpace __pyx_v_retv; + struct PyPetscDualSpaceObject *__pyx_v_ob = 0; + PetscDualSpace __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PetscDualSpace __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPetscDualSpace_Get", 0); + + /* "petsc4py/PETSc/CAPI.pyx":387 + * + * cdef api PetscDualSpace PyPetscDualSpace_Get(object arg) except ? NULL: + * cdef PetscDualSpace retv = NULL # <<<<<<<<<<<<<< + * cdef DualSpace ob = arg + * retv = ob.dualspace + */ + __pyx_v_retv = NULL; + + /* "petsc4py/PETSc/CAPI.pyx":388 + * cdef api PetscDualSpace PyPetscDualSpace_Get(object arg) except ? NULL: + * cdef PetscDualSpace retv = NULL + * cdef DualSpace ob = arg # <<<<<<<<<<<<<< + * retv = ob.dualspace + * return retv + */ + if (!(likely(__Pyx_TypeTest(__pyx_v_arg, __pyx_ptype_8petsc4py_5PETSc_DualSpace)))) __PYX_ERR(65, 388, __pyx_L1_error) + __pyx_t_1 = __pyx_v_arg; + __Pyx_INCREF(__pyx_t_1); + __pyx_v_ob = ((struct PyPetscDualSpaceObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/CAPI.pyx":389 + * cdef PetscDualSpace retv = NULL + * cdef DualSpace ob = arg + * retv = ob.dualspace # <<<<<<<<<<<<<< + * return retv + * + */ + __pyx_t_2 = __pyx_v_ob->dualspace; + __pyx_v_retv = __pyx_t_2; + + /* "petsc4py/PETSc/CAPI.pyx":390 + * cdef DualSpace ob = arg + * retv = ob.dualspace + * return retv # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_retv; + goto __pyx_L0; + + /* "petsc4py/PETSc/CAPI.pyx":386 + * return retv + * + * cdef api PetscDualSpace PyPetscDualSpace_Get(object arg) except ? NULL: # <<<<<<<<<<<<<< + * cdef PetscDualSpace retv = NULL + * cdef DualSpace ob = arg + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PyPetscDualSpace_Get", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":36 + * cdef int istack = 0 + * + * cdef inline void FunctionBegin(char name[]) nogil: # <<<<<<<<<<<<<< + * global istack, fstack, FUNCT + * FUNCT = name + */ + +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_FunctionBegin(char *__pyx_v_name) { + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":38 + * cdef inline void FunctionBegin(char name[]) nogil: + * global istack, fstack, FUNCT + * FUNCT = name # <<<<<<<<<<<<<< + * fstack[istack] = FUNCT + * istack += 1 + */ + __pyx_v_8petsc4py_5PETSc_FUNCT = __pyx_v_name; + + /* "petsc4py/PETSc/libpetsc4py.pyx":39 + * global istack, fstack, FUNCT + * FUNCT = name + * fstack[istack] = FUNCT # <<<<<<<<<<<<<< + * istack += 1 + * if istack >= 1024: + */ + (__pyx_v_8petsc4py_5PETSc_fstack[__pyx_v_8petsc4py_5PETSc_istack]) = __pyx_v_8petsc4py_5PETSc_FUNCT; + + /* "petsc4py/PETSc/libpetsc4py.pyx":40 + * FUNCT = name + * fstack[istack] = FUNCT + * istack += 1 # <<<<<<<<<<<<<< + * if istack >= 1024: + * istack = 0 + */ + __pyx_v_8petsc4py_5PETSc_istack = (__pyx_v_8petsc4py_5PETSc_istack + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":41 + * fstack[istack] = FUNCT + * istack += 1 + * if istack >= 1024: # <<<<<<<<<<<<<< + * istack = 0 + * return + */ + __pyx_t_1 = ((__pyx_v_8petsc4py_5PETSc_istack >= 0x400) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":42 + * istack += 1 + * if istack >= 1024: + * istack = 0 # <<<<<<<<<<<<<< + * return + * + */ + __pyx_v_8petsc4py_5PETSc_istack = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":41 + * fstack[istack] = FUNCT + * istack += 1 + * if istack >= 1024: # <<<<<<<<<<<<<< + * istack = 0 + * return + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":43 + * if istack >= 1024: + * istack = 0 + * return # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode FunctionEnd() nogil: + */ + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":36 + * cdef int istack = 0 + * + * cdef inline void FunctionBegin(char name[]) nogil: # <<<<<<<<<<<<<< + * global istack, fstack, FUNCT + * FUNCT = name + */ + + /* function exit code */ + __pyx_L0:; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":45 + * return + * + * cdef inline PetscErrorCode FunctionEnd() nogil: # <<<<<<<<<<<<<< + * global istack, fstack, FUNCT + * FUNCT = NULL + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_FunctionEnd(void) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":47 + * cdef inline PetscErrorCode FunctionEnd() nogil: + * global istack, fstack, FUNCT + * FUNCT = NULL # <<<<<<<<<<<<<< + * istack -= 1 + * if istack < 0: + */ + __pyx_v_8petsc4py_5PETSc_FUNCT = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":48 + * global istack, fstack, FUNCT + * FUNCT = NULL + * istack -= 1 # <<<<<<<<<<<<<< + * if istack < 0: + * istack = 1024 + */ + __pyx_v_8petsc4py_5PETSc_istack = (__pyx_v_8petsc4py_5PETSc_istack - 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":49 + * FUNCT = NULL + * istack -= 1 + * if istack < 0: # <<<<<<<<<<<<<< + * istack = 1024 + * FUNCT = fstack[istack] + */ + __pyx_t_1 = ((__pyx_v_8petsc4py_5PETSc_istack < 0) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":50 + * istack -= 1 + * if istack < 0: + * istack = 1024 # <<<<<<<<<<<<<< + * FUNCT = fstack[istack] + * return PETSC_SUCCESS + */ + __pyx_v_8petsc4py_5PETSc_istack = 0x400; + + /* "petsc4py/PETSc/libpetsc4py.pyx":49 + * FUNCT = NULL + * istack -= 1 + * if istack < 0: # <<<<<<<<<<<<<< + * istack = 1024 + * FUNCT = fstack[istack] + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":51 + * if istack < 0: + * istack = 1024 + * FUNCT = fstack[istack] # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_8petsc4py_5PETSc_FUNCT = (__pyx_v_8petsc4py_5PETSc_fstack[__pyx_v_8petsc4py_5PETSc_istack]); + + /* "petsc4py/PETSc/libpetsc4py.pyx":52 + * istack = 1024 + * FUNCT = fstack[istack] + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PetscSETERR(PetscErrorCode ierr,char msg[]) nogil: + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":45 + * return + * + * cdef inline PetscErrorCode FunctionEnd() nogil: # <<<<<<<<<<<<<< + * global istack, fstack, FUNCT + * FUNCT = NULL + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":54 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PetscSETERR(PetscErrorCode ierr,char msg[]) nogil: # <<<<<<<<<<<<<< + * global istack, fstack + * istack = 0 + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscSETERR(PetscErrorCode __pyx_v_ierr, char *__pyx_v_msg) { + PetscErrorCode __pyx_r; + + /* "petsc4py/PETSc/libpetsc4py.pyx":56 + * cdef PetscErrorCode PetscSETERR(PetscErrorCode ierr,char msg[]) nogil: + * global istack, fstack + * istack = 0 # <<<<<<<<<<<<<< + * fstack[istack] = NULL; + * return PetscERROR(PETSC_COMM_SELF,FUNCT,ierr, + */ + __pyx_v_8petsc4py_5PETSc_istack = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":57 + * global istack, fstack + * istack = 0 + * fstack[istack] = NULL; # <<<<<<<<<<<<<< + * return PetscERROR(PETSC_COMM_SELF,FUNCT,ierr, + * PETSC_ERROR_INITIAL, msg, NULL) + */ + (__pyx_v_8petsc4py_5PETSc_fstack[__pyx_v_8petsc4py_5PETSc_istack]) = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":58 + * istack = 0 + * fstack[istack] = NULL; + * return PetscERROR(PETSC_COMM_SELF,FUNCT,ierr, # <<<<<<<<<<<<<< + * PETSC_ERROR_INITIAL, msg, NULL) + * + */ + __pyx_r = PetscERROR(PETSC_COMM_SELF, __pyx_v_8petsc4py_5PETSc_FUNCT, __pyx_v_ierr, PETSC_ERROR_INITIAL, __pyx_v_msg, NULL); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":54 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PetscSETERR(PetscErrorCode ierr,char msg[]) nogil: # <<<<<<<<<<<<<< + * global istack, fstack + * istack = 0 + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":61 + * PETSC_ERROR_INITIAL, msg, NULL) + * + * cdef PetscErrorCode UNSUPPORTED(char msg[]) nogil: # <<<<<<<<<<<<<< + * return PetscERROR(PETSC_COMM_SELF,FUNCT,PETSC_ERR_USER, + * PETSC_ERROR_INITIAL,b"method %s()",msg) + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(char *__pyx_v_msg) { + PetscErrorCode __pyx_r; + + /* "petsc4py/PETSc/libpetsc4py.pyx":62 + * + * cdef PetscErrorCode UNSUPPORTED(char msg[]) nogil: + * return PetscERROR(PETSC_COMM_SELF,FUNCT,PETSC_ERR_USER, # <<<<<<<<<<<<<< + * PETSC_ERROR_INITIAL,b"method %s()",msg) + * + */ + __pyx_r = PetscERROR(PETSC_COMM_SELF, __pyx_v_8petsc4py_5PETSc_FUNCT, PETSC_ERR_USER, PETSC_ERROR_INITIAL, ((char *)"method %s()"), __pyx_v_msg); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":61 + * PETSC_ERROR_INITIAL, msg, NULL) + * + * cdef PetscErrorCode UNSUPPORTED(char msg[]) nogil: # <<<<<<<<<<<<<< + * return PetscERROR(PETSC_COMM_SELF,FUNCT,PETSC_ERR_USER, + * PETSC_ERROR_INITIAL,b"method %s()",msg) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":67 + * # -------------------------------------------------------------------- + * + * cdef inline PetscInt getRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + */ + +static CYTHON_INLINE PetscInt __pyx_f_8petsc4py_5PETSc_getRef(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + PetscInt __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":68 + * + * cdef inline PetscInt getRef(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * if obj == NULL: return 0 + * else: return obj.refct + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":69 + * cdef inline PetscInt getRef(void *pobj) nogil: + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 # <<<<<<<<<<<<<< + * else: return obj.refct + * + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":70 + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + * else: return obj.refct # <<<<<<<<<<<<<< + * + * cdef inline void addRef(void *pobj) nogil: + */ + /*else*/ { + __pyx_r = __pyx_v_obj->refct; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":67 + * # -------------------------------------------------------------------- + * + * cdef inline PetscInt getRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":72 + * else: return obj.refct + * + * cdef inline void addRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct += 1 + */ + +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_addRef(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":73 + * + * cdef inline void addRef(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * if obj != NULL: obj.refct += 1 + * + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":74 + * cdef inline void addRef(void *pobj) nogil: + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct += 1 # <<<<<<<<<<<<<< + * + * cdef inline void delRef(void *pobj) nogil: + */ + __pyx_t_1 = ((__pyx_v_obj != NULL) != 0); + if (__pyx_t_1) { + __pyx_v_obj->refct = (__pyx_v_obj->refct + 1); + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":72 + * else: return obj.refct + * + * cdef inline void addRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct += 1 + */ + + /* function exit code */ +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":76 + * if obj != NULL: obj.refct += 1 + * + * cdef inline void delRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct -= 1 + */ + +static CYTHON_INLINE void __pyx_f_8petsc4py_5PETSc_delRef(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":77 + * + * cdef inline void delRef(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * if obj != NULL: obj.refct -= 1 + * + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":78 + * cdef inline void delRef(void *pobj) nogil: + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct -= 1 # <<<<<<<<<<<<<< + * + * cdef inline PetscObject newRef(void *pobj) nogil: + */ + __pyx_t_1 = ((__pyx_v_obj != NULL) != 0); + if (__pyx_t_1) { + __pyx_v_obj->refct = (__pyx_v_obj->refct - 1); + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":76 + * if obj != NULL: obj.refct += 1 + * + * cdef inline void delRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj != NULL: obj.refct -= 1 + */ + + /* function exit code */ +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":80 + * if obj != NULL: obj.refct -= 1 + * + * cdef inline PetscObject newRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * cdef int ierr = 0 + */ + +static CYTHON_INLINE PetscObject __pyx_f_8petsc4py_5PETSc_newRef(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + int __pyx_v_ierr; + PetscObject __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":81 + * + * cdef inline PetscObject newRef(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * cdef int ierr = 0 + * if obj != NULL: + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":82 + * cdef inline PetscObject newRef(void *pobj) nogil: + * cdef PetscObject obj = pobj + * cdef int ierr = 0 # <<<<<<<<<<<<<< + * if obj != NULL: + * ierr = PetscObjectReference(obj) + */ + __pyx_v_ierr = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":83 + * cdef PetscObject obj = pobj + * cdef int ierr = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * ierr = PetscObjectReference(obj) + * if ierr: return NULL # XXX warning! + */ + __pyx_t_1 = ((__pyx_v_obj != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":84 + * cdef int ierr = 0 + * if obj != NULL: + * ierr = PetscObjectReference(obj) # <<<<<<<<<<<<<< + * if ierr: return NULL # XXX warning! + * return obj + */ + __pyx_v_ierr = PetscObjectReference(__pyx_v_obj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":85 + * if obj != NULL: + * ierr = PetscObjectReference(obj) + * if ierr: return NULL # XXX warning! # <<<<<<<<<<<<<< + * return obj + * + */ + __pyx_t_1 = (__pyx_v_ierr != 0); + if (__pyx_t_1) { + __pyx_r = NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":83 + * cdef PetscObject obj = pobj + * cdef int ierr = 0 + * if obj != NULL: # <<<<<<<<<<<<<< + * ierr = PetscObjectReference(obj) + * if ierr: return NULL # XXX warning! + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":86 + * ierr = PetscObjectReference(obj) + * if ierr: return NULL # XXX warning! + * return obj # <<<<<<<<<<<<<< + * + * cdef inline const char* getPrefix(void *pobj) nogil: + */ + __pyx_r = __pyx_v_obj; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":80 + * if obj != NULL: obj.refct -= 1 + * + * cdef inline PetscObject newRef(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * cdef int ierr = 0 + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":88 + * return obj + * + * cdef inline const char* getPrefix(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return NULL + */ + +static CYTHON_INLINE char const *__pyx_f_8petsc4py_5PETSc_getPrefix(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + char const *__pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":89 + * + * cdef inline const char* getPrefix(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * if obj == NULL: return NULL + * return obj.prefix + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":90 + * cdef inline const char* getPrefix(void *pobj) nogil: + * cdef PetscObject obj = pobj + * if obj == NULL: return NULL # <<<<<<<<<<<<<< + * return obj.prefix + * + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = NULL; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":91 + * cdef PetscObject obj = pobj + * if obj == NULL: return NULL + * return obj.prefix # <<<<<<<<<<<<<< + * + * cdef inline int getCommSize(void *pobj) nogil: + */ + __pyx_r = __pyx_v_obj->prefix; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":88 + * return obj + * + * cdef inline const char* getPrefix(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return NULL + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":93 + * return obj.prefix + * + * cdef inline int getCommSize(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + */ + +static CYTHON_INLINE int __pyx_f_8petsc4py_5PETSc_getCommSize(void *__pyx_v_pobj) { + PetscObject __pyx_v_obj; + int __pyx_v_size; + int __pyx_r; + int __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":94 + * + * cdef inline int getCommSize(void *pobj) nogil: + * cdef PetscObject obj = pobj # <<<<<<<<<<<<<< + * if obj == NULL: return 0 + * cdef int size = 0 + */ + __pyx_v_obj = ((PetscObject)__pyx_v_pobj); + + /* "petsc4py/PETSc/libpetsc4py.pyx":95 + * cdef inline int getCommSize(void *pobj) nogil: + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 # <<<<<<<<<<<<<< + * cdef int size = 0 + * MPI_Comm_size(obj.comm, &size) + */ + __pyx_t_1 = ((__pyx_v_obj == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":96 + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + * cdef int size = 0 # <<<<<<<<<<<<<< + * MPI_Comm_size(obj.comm, &size) + * return size + */ + __pyx_v_size = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":97 + * if obj == NULL: return 0 + * cdef int size = 0 + * MPI_Comm_size(obj.comm, &size) # <<<<<<<<<<<<<< + * return size + * + */ + (void)(MPI_Comm_size(__pyx_v_obj->comm, (&__pyx_v_size))); + + /* "petsc4py/PETSc/libpetsc4py.pyx":98 + * cdef int size = 0 + * MPI_Comm_size(obj.comm, &size) + * return size # <<<<<<<<<<<<<< + * + * cdef inline Viewer Viewer_(PetscViewer p): + */ + __pyx_r = __pyx_v_size; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":93 + * return obj.prefix + * + * cdef inline int getCommSize(void *pobj) nogil: # <<<<<<<<<<<<<< + * cdef PetscObject obj = pobj + * if obj == NULL: return 0 + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":100 + * return size + * + * cdef inline Viewer Viewer_(PetscViewer p): # <<<<<<<<<<<<<< + * cdef Viewer ob = Viewer.__new__(Viewer) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscViewerObject *__pyx_f_8petsc4py_5PETSc_Viewer_(PetscViewer __pyx_v_p) { + struct PyPetscViewerObject *__pyx_v_ob = 0; + struct PyPetscViewerObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Viewer_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":101 + * + * cdef inline Viewer Viewer_(PetscViewer p): + * cdef Viewer ob = Viewer.__new__(Viewer) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_Viewer(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 101, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscViewerObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":102 + * cdef inline Viewer Viewer_(PetscViewer p): + * cdef Viewer ob = Viewer.__new__(Viewer) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":103 + * cdef Viewer ob = Viewer.__new__(Viewer) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline IS IS_(PetscIS p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":100 + * return size + * + * cdef inline Viewer Viewer_(PetscViewer p): # <<<<<<<<<<<<<< + * cdef Viewer ob = Viewer.__new__(Viewer) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Viewer_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":105 + * return ob + * + * cdef inline IS IS_(PetscIS p): # <<<<<<<<<<<<<< + * cdef IS ob = IS.__new__(IS) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscISObject *__pyx_f_8petsc4py_5PETSc_IS_(IS __pyx_v_p) { + struct PyPetscISObject *__pyx_v_ob = 0; + struct PyPetscISObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("IS_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":106 + * + * cdef inline IS IS_(PetscIS p): + * cdef IS ob = IS.__new__(IS) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_IS(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_IS), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 106, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscISObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":107 + * cdef inline IS IS_(PetscIS p): + * cdef IS ob = IS.__new__(IS) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":108 + * cdef IS ob = IS.__new__(IS) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline Vec Vec_(PetscVec p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":105 + * return ob + * + * cdef inline IS IS_(PetscIS p): # <<<<<<<<<<<<<< + * cdef IS ob = IS.__new__(IS) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.IS_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":110 + * return ob + * + * cdef inline Vec Vec_(PetscVec p): # <<<<<<<<<<<<<< + * cdef Vec ob = Vec.__new__(Vec) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscVecObject *__pyx_f_8petsc4py_5PETSc_Vec_(Vec __pyx_v_p) { + struct PyPetscVecObject *__pyx_v_ob = 0; + struct PyPetscVecObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Vec_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":111 + * + * cdef inline Vec Vec_(PetscVec p): + * cdef Vec ob = Vec.__new__(Vec) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_Vec(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_Vec), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 111, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":112 + * cdef inline Vec Vec_(PetscVec p): + * cdef Vec ob = Vec.__new__(Vec) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":113 + * cdef Vec ob = Vec.__new__(Vec) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline Mat Mat_(PetscMat p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":110 + * return ob + * + * cdef inline Vec Vec_(PetscVec p): # <<<<<<<<<<<<<< + * cdef Vec ob = Vec.__new__(Vec) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Vec_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":115 + * return ob + * + * cdef inline Mat Mat_(PetscMat p): # <<<<<<<<<<<<<< + * cdef Mat ob = Mat.__new__(Mat) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscMatObject *__pyx_f_8petsc4py_5PETSc_Mat_(Mat __pyx_v_p) { + struct PyPetscMatObject *__pyx_v_ob = 0; + struct PyPetscMatObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("Mat_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":116 + * + * cdef inline Mat Mat_(PetscMat p): + * cdef Mat ob = Mat.__new__(Mat) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_Mat(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_Mat), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 116, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscMatObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":117 + * cdef inline Mat Mat_(PetscMat p): + * cdef Mat ob = Mat.__new__(Mat) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":118 + * cdef Mat ob = Mat.__new__(Mat) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline PC PC_(PetscPC p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":115 + * return ob + * + * cdef inline Mat Mat_(PetscMat p): # <<<<<<<<<<<<<< + * cdef Mat ob = Mat.__new__(Mat) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.Mat_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":120 + * return ob + * + * cdef inline PC PC_(PetscPC p): # <<<<<<<<<<<<<< + * cdef PC ob = PC.__new__(PC) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscPCObject *__pyx_f_8petsc4py_5PETSc_PC_(PC __pyx_v_p) { + struct PyPetscPCObject *__pyx_v_ob = 0; + struct PyPetscPCObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PC_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":121 + * + * cdef inline PC PC_(PetscPC p): + * cdef PC ob = PC.__new__(PC) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_PC(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_PC), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 121, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscPCObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":122 + * cdef inline PC PC_(PetscPC p): + * cdef PC ob = PC.__new__(PC) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":123 + * cdef PC ob = PC.__new__(PC) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline KSP KSP_(PetscKSP p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":120 + * return ob + * + * cdef inline PC PC_(PetscPC p): # <<<<<<<<<<<<<< + * cdef PC ob = PC.__new__(PC) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PC_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":125 + * return ob + * + * cdef inline KSP KSP_(PetscKSP p): # <<<<<<<<<<<<<< + * cdef KSP ob = KSP.__new__(KSP) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscKSPObject *__pyx_f_8petsc4py_5PETSc_KSP_(KSP __pyx_v_p) { + struct PyPetscKSPObject *__pyx_v_ob = 0; + struct PyPetscKSPObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KSP_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":126 + * + * cdef inline KSP KSP_(PetscKSP p): + * cdef KSP ob = KSP.__new__(KSP) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_KSP(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_KSP), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 126, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscKSPObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":127 + * cdef inline KSP KSP_(PetscKSP p): + * cdef KSP ob = KSP.__new__(KSP) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":128 + * cdef KSP ob = KSP.__new__(KSP) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline SNES SNES_(PetscSNES p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":125 + * return ob + * + * cdef inline KSP KSP_(PetscKSP p): # <<<<<<<<<<<<<< + * cdef KSP ob = KSP.__new__(KSP) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSP_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":130 + * return ob + * + * cdef inline SNES SNES_(PetscSNES p): # <<<<<<<<<<<<<< + * cdef SNES ob = SNES.__new__(SNES) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscSNESObject *__pyx_f_8petsc4py_5PETSc_SNES_(SNES __pyx_v_p) { + struct PyPetscSNESObject *__pyx_v_ob = 0; + struct PyPetscSNESObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SNES_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":131 + * + * cdef inline SNES SNES_(PetscSNES p): + * cdef SNES ob = SNES.__new__(SNES) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_SNES(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_SNES), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 131, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscSNESObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":132 + * cdef inline SNES SNES_(PetscSNES p): + * cdef SNES ob = SNES.__new__(SNES) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":133 + * cdef SNES ob = SNES.__new__(SNES) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline TS TS_(PetscTS p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":130 + * return ob + * + * cdef inline SNES SNES_(PetscSNES p): # <<<<<<<<<<<<<< + * cdef SNES ob = SNES.__new__(SNES) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNES_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":135 + * return ob + * + * cdef inline TS TS_(PetscTS p): # <<<<<<<<<<<<<< + * cdef TS ob = TS.__new__(TS) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscTSObject *__pyx_f_8petsc4py_5PETSc_TS_(TS __pyx_v_p) { + struct PyPetscTSObject *__pyx_v_ob = 0; + struct PyPetscTSObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TS_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":136 + * + * cdef inline TS TS_(PetscTS p): + * cdef TS ob = TS.__new__(TS) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_TS(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_TS), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 136, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscTSObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":137 + * cdef inline TS TS_(PetscTS p): + * cdef TS ob = TS.__new__(TS) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":138 + * cdef TS ob = TS.__new__(TS) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * cdef inline TAO TAO_(PetscTAO p): + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":135 + * return ob + * + * cdef inline TS TS_(PetscTS p): # <<<<<<<<<<<<<< + * cdef TS ob = TS.__new__(TS) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TS_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":140 + * return ob + * + * cdef inline TAO TAO_(PetscTAO p): # <<<<<<<<<<<<<< + * cdef TAO ob = TAO.__new__(TAO) + * ob.obj[0] = newRef(p) + */ + +static CYTHON_INLINE struct PyPetscTAOObject *__pyx_f_8petsc4py_5PETSc_TAO_(Tao __pyx_v_p) { + struct PyPetscTAOObject *__pyx_v_ob = 0; + struct PyPetscTAOObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TAO_", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":141 + * + * cdef inline TAO TAO_(PetscTAO p): + * cdef TAO ob = TAO.__new__(TAO) # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(p) + * return ob + */ + __pyx_t_1 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc_TAO(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc_TAO), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 141, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_1)); + __pyx_v_ob = ((struct PyPetscTAOObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":142 + * cdef inline TAO TAO_(PetscTAO p): + * cdef TAO ob = TAO.__new__(TAO) + * ob.obj[0] = newRef(p) # <<<<<<<<<<<<<< + * return ob + * + */ + (__pyx_v_ob->__pyx_base.obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":143 + * cdef TAO ob = TAO.__new__(TAO) + * ob.obj[0] = newRef(p) + * return ob # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_ob)); + __pyx_r = __pyx_v_ob; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":140 + * return ob + * + * cdef inline TAO TAO_(PetscTAO p): # <<<<<<<<<<<<<< + * cdef TAO ob = TAO.__new__(TAO) + * ob.obj[0] = newRef(p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TAO_", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":147 + * # -------------------------------------------------------------------- + * + * cdef object parse_url(object url): # <<<<<<<<<<<<<< + * path, name = url.rsplit(":", 1) + * return (path, name) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_parse_url(PyObject *__pyx_v_url) { + PyObject *__pyx_v_path = NULL; + PyObject *__pyx_v_name = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *(*__pyx_t_5)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("parse_url", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":148 + * + * cdef object parse_url(object url): + * path, name = url.rsplit(":", 1) # <<<<<<<<<<<<<< + * return (path, name) + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_url, __pyx_n_s_rsplit); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_tuple__58, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 148, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_1 = PyList_GET_ITEM(sequence, 0); + __pyx_t_3 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_3); + #else + __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext; + index = 0; __pyx_t_1 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) __PYX_ERR(11, 148, __pyx_L1_error) + __pyx_t_5 = NULL; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + goto __pyx_L4_unpacking_done; + __pyx_L3_unpacking_failed:; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_5 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 148, __pyx_L1_error) + __pyx_L4_unpacking_done:; + } + __pyx_v_path = __pyx_t_1; + __pyx_t_1 = 0; + __pyx_v_name = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":149 + * cdef object parse_url(object url): + * path, name = url.rsplit(":", 1) + * return (path, name) # <<<<<<<<<<<<<< + * + * cdef dict module_cache = {} + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_path); + __Pyx_GIVEREF(__pyx_v_path); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_path); + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_name); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":147 + * # -------------------------------------------------------------------- + * + * cdef object parse_url(object url): # <<<<<<<<<<<<<< + * path, name = url.rsplit(":", 1) + * return (path, name) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("petsc4py.PETSc.parse_url", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_path); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":153 + * cdef dict module_cache = {} + * + * cdef object load_module(object path): # <<<<<<<<<<<<<< + * if path in module_cache: + * return module_cache[path] + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_load_module(PyObject *__pyx_v_path) { + PyObject *__pyx_v_module = NULL; + PyObject *__pyx_v_source = NULL; + PyObject *__pyx_v_code = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("load_module", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":154 + * + * cdef object load_module(object path): + * if path in module_cache: # <<<<<<<<<<<<<< + * return module_cache[path] + * module = PyModule_New("__petsc__") + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_module_cache == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); + __PYX_ERR(11, 154, __pyx_L1_error) + } + __pyx_t_1 = (__Pyx_PyDict_ContainsTF(__pyx_v_path, __pyx_v_8petsc4py_5PETSc_module_cache, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 154, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":155 + * cdef object load_module(object path): + * if path in module_cache: + * return module_cache[path] # <<<<<<<<<<<<<< + * module = PyModule_New("__petsc__") + * module.__file__ = path + */ + __Pyx_XDECREF(__pyx_r); + if (unlikely(__pyx_v_8petsc4py_5PETSc_module_cache == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(11, 155, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_8petsc4py_5PETSc_module_cache, __pyx_v_path); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":154 + * + * cdef object load_module(object path): + * if path in module_cache: # <<<<<<<<<<<<<< + * return module_cache[path] + * module = PyModule_New("__petsc__") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":156 + * if path in module_cache: + * return module_cache[path] + * module = PyModule_New("__petsc__") # <<<<<<<<<<<<<< + * module.__file__ = path + * module.__package__ = None + */ + __pyx_t_3 = PyModule_New(((char *)"__petsc__")); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_module = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":157 + * return module_cache[path] + * module = PyModule_New("__petsc__") + * module.__file__ = path # <<<<<<<<<<<<<< + * module.__package__ = None + * module_cache[path] = module + */ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_module, __pyx_n_s_file, __pyx_v_path) < 0) __PYX_ERR(11, 157, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":158 + * module = PyModule_New("__petsc__") + * module.__file__ = path + * module.__package__ = None # <<<<<<<<<<<<<< + * module_cache[path] = module + * try: + */ + if (__Pyx_PyObject_SetAttrStr(__pyx_v_module, __pyx_n_s_package_2, Py_None) < 0) __PYX_ERR(11, 158, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":159 + * module.__file__ = path + * module.__package__ = None + * module_cache[path] = module # <<<<<<<<<<<<<< + * try: + * with open(path, 'r') as source: + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_module_cache == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(11, 159, __pyx_L1_error) + } + if (unlikely(PyDict_SetItem(__pyx_v_8petsc4py_5PETSc_module_cache, __pyx_v_path, __pyx_v_module) < 0)) __PYX_ERR(11, 159, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":160 + * module.__package__ = None + * module_cache[path] = module + * try: # <<<<<<<<<<<<<< + * with open(path, 'r') as source: + * code = compile(source.read(), path, 'exec') + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":161 + * module_cache[path] = module + * try: + * with open(path, 'r') as source: # <<<<<<<<<<<<<< + * code = compile(source.read(), path, 'exec') + * exec(code, module.__dict__) + */ + /*with:*/ { + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 161, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_path); + __Pyx_GIVEREF(__pyx_v_path); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_path); + __Pyx_INCREF(__pyx_n_s_r); + __Pyx_GIVEREF(__pyx_n_s_r); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_s_r); + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 161, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_8 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_exit); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 161, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_LookupSpecial(__pyx_t_7, __pyx_n_s_enter); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 161, __pyx_L10_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); + } + } + __pyx_t_3 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 161, __pyx_L10_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __pyx_t_3; + __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /*try:*/ { + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + /*try:*/ { + __pyx_v_source = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":162 + * try: + * with open(path, 'r') as source: + * code = compile(source.read(), path, 'exec') # <<<<<<<<<<<<<< + * exec(code, module.__dict__) + * except: + */ + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s_read); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 162, __pyx_L14_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 162, __pyx_L14_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 162, __pyx_L14_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9); + __Pyx_INCREF(__pyx_v_path); + __Pyx_GIVEREF(__pyx_v_path); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_path); + __Pyx_INCREF(__pyx_n_s_exec); + __Pyx_GIVEREF(__pyx_n_s_exec); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_n_s_exec); + __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_compile, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 162, __pyx_L14_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_code = __pyx_t_9; + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":161 + * module_cache[path] = module + * try: + * with open(path, 'r') as source: # <<<<<<<<<<<<<< + * code = compile(source.read(), path, 'exec') + * exec(code, module.__dict__) + */ + } + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0; + goto __pyx_L19_try_end; + __pyx_L14_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + /*except:*/ { + __Pyx_AddTraceback("petsc4py.PETSc.load_module", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_7, &__pyx_t_3) < 0) __PYX_ERR(11, 161, __pyx_L16_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = PyTuple_Pack(3, __pyx_t_9, __pyx_t_7, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 161, __pyx_L16_except_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, NULL); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (unlikely(!__pyx_t_14)) __PYX_ERR(11, 161, __pyx_L16_except_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__pyx_t_2 < 0) __PYX_ERR(11, 161, __pyx_L16_except_error) + __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_1) { + __Pyx_GIVEREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_ErrRestoreWithState(__pyx_t_9, __pyx_t_7, __pyx_t_3); + __pyx_t_9 = 0; __pyx_t_7 = 0; __pyx_t_3 = 0; + __PYX_ERR(11, 161, __pyx_L16_except_error) + } + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + goto __pyx_L15_exception_handled; + } + __pyx_L16_except_error:; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + goto __pyx_L4_error; + __pyx_L15_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13); + __pyx_L19_try_end:; + } + } + /*finally:*/ { + /*normal exit:*/{ + if (__pyx_t_8) { + __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_tuple__21, NULL); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_13)) __PYX_ERR(11, 161, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + } + goto __pyx_L13; + } + __pyx_L13:; + } + goto __pyx_L23; + __pyx_L10_error:; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L4_error; + __pyx_L23:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":163 + * with open(path, 'r') as source: + * code = compile(source.read(), path, 'exec') + * exec(code, module.__dict__) # <<<<<<<<<<<<<< + * except: + * del module_cache[path] + */ + if (unlikely(!__pyx_v_code)) { __Pyx_RaiseUnboundLocalError("code"); __PYX_ERR(11, 163, __pyx_L4_error) } + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_module, __pyx_n_s_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 163, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = __Pyx_PyExec2(__pyx_v_code, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 163, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":160 + * module.__package__ = None + * module_cache[path] = module + * try: # <<<<<<<<<<<<<< + * with open(path, 'r') as source: + * code = compile(source.read(), path, 'exec') + */ + } + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L9_try_end; + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":164 + * code = compile(source.read(), path, 'exec') + * exec(code, module.__dict__) + * except: # <<<<<<<<<<<<<< + * del module_cache[path] + * raise + */ + /*except:*/ { + __Pyx_AddTraceback("petsc4py.PETSc.load_module", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_3, &__pyx_t_9) < 0) __PYX_ERR(11, 164, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_9); + + /* "petsc4py/PETSc/libpetsc4py.pyx":165 + * exec(code, module.__dict__) + * except: + * del module_cache[path] # <<<<<<<<<<<<<< + * raise + * return module + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_module_cache == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(11, 165, __pyx_L6_except_error) + } + if (unlikely(PyDict_DelItem(__pyx_v_8petsc4py_5PETSc_module_cache, __pyx_v_path) < 0)) __PYX_ERR(11, 165, __pyx_L6_except_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":166 + * except: + * del module_cache[path] + * raise # <<<<<<<<<<<<<< + * return module + * + */ + __Pyx_GIVEREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestoreWithState(__pyx_t_7, __pyx_t_3, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_3 = 0; __pyx_t_9 = 0; + __PYX_ERR(11, 166, __pyx_L6_except_error) + } + __pyx_L6_except_error:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":160 + * module.__package__ = None + * module_cache[path] = module + * try: # <<<<<<<<<<<<<< + * with open(path, 'r') as source: + * code = compile(source.read(), path, 'exec') + */ + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6); + goto __pyx_L1_error; + __pyx_L9_try_end:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":167 + * del module_cache[path] + * raise + * return module # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_module); + __pyx_r = __pyx_v_module; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":153 + * cdef dict module_cache = {} + * + * cdef object load_module(object path): # <<<<<<<<<<<<<< + * if path in module_cache: + * return module_cache[path] + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.load_module", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_module); + __Pyx_XDECREF(__pyx_v_source); + __Pyx_XDECREF(__pyx_v_code); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":177 + * cdef bytes name + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.self, attr, None) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6_PyObj_1__getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ +static PyObject *__pyx_pw_8petsc4py_5PETSc_6_PyObj_1__getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6_PyObj___getattr__(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6_PyObj___getattr__(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getattr__", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":178 + * + * def __getattr__(self, attr): + * return getattr(self.self, attr, None) # <<<<<<<<<<<<<< + * + * cdef int setcontext(self, void *ctx, Object base) except -1: + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_v_self->self; + __Pyx_INCREF(__pyx_t_1); + __pyx_t_2 = __Pyx_GetAttr3(__pyx_t_1, __pyx_v_attr, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":177 + * cdef bytes name + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.self, attr, None) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc._PyObj.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":180 + * return getattr(self.self, attr, None) + * + * cdef int setcontext(self, void *ctx, Object base) except -1: # <<<<<<<<<<<<<< + * # + * if ctx == self.self: + */ + +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_setcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, void *__pyx_v_ctx, struct PyPetscObjectObject *__pyx_v_base) { + PyObject *__pyx_v_destroy = 0; + PyObject *__pyx_v_create = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setcontext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":182 + * cdef int setcontext(self, void *ctx, Object base) except -1: + * # + * if ctx == self.self: # <<<<<<<<<<<<<< + * return 0 + * # + */ + __pyx_t_1 = ((__pyx_v_ctx == ((void *)__pyx_v_self->self)) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":183 + * # + * if ctx == self.self: + * return 0 # <<<<<<<<<<<<<< + * # + * cdef object destroy = self.destroy + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":182 + * cdef int setcontext(self, void *ctx, Object base) except -1: + * # + * if ctx == self.self: # <<<<<<<<<<<<<< + * return 0 + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":185 + * return 0 + * # + * cdef object destroy = self.destroy # <<<<<<<<<<<<<< + * if destroy is not None: + * destroy(base) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_destroy); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_destroy = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":186 + * # + * cdef object destroy = self.destroy + * if destroy is not None: # <<<<<<<<<<<<<< + * destroy(base) + * destroy = None + */ + __pyx_t_1 = (__pyx_v_destroy != Py_None); + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":187 + * cdef object destroy = self.destroy + * if destroy is not None: + * destroy(base) # <<<<<<<<<<<<<< + * destroy = None + * # + */ + __Pyx_INCREF(__pyx_v_destroy); + __pyx_t_4 = __pyx_v_destroy; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_base)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_base)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":188 + * if destroy is not None: + * destroy(base) + * destroy = None # <<<<<<<<<<<<<< + * # + * if ctx == NULL: + */ + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_destroy, Py_None); + + /* "petsc4py/PETSc/libpetsc4py.pyx":186 + * # + * cdef object destroy = self.destroy + * if destroy is not None: # <<<<<<<<<<<<<< + * destroy(base) + * destroy = None + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":190 + * destroy = None + * # + * if ctx == NULL: # <<<<<<<<<<<<<< + * self.self = None + * self.name = None + */ + __pyx_t_3 = ((__pyx_v_ctx == NULL) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":191 + * # + * if ctx == NULL: + * self.self = None # <<<<<<<<<<<<<< + * self.name = None + * return 0 + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->self); + __Pyx_DECREF(__pyx_v_self->self); + __pyx_v_self->self = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":192 + * if ctx == NULL: + * self.self = None + * self.name = None # <<<<<<<<<<<<<< + * return 0 + * # + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = ((PyObject*)Py_None); + + /* "petsc4py/PETSc/libpetsc4py.pyx":193 + * self.self = None + * self.name = None + * return 0 # <<<<<<<<<<<<<< + * # + * self.self = ctx + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":190 + * destroy = None + * # + * if ctx == NULL: # <<<<<<<<<<<<<< + * self.self = None + * self.name = None + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":195 + * return 0 + * # + * self.self = ctx # <<<<<<<<<<<<<< + * self.name = None + * cdef object create = self.create + */ + __pyx_t_2 = ((PyObject *)__pyx_v_ctx); + __Pyx_INCREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_self->self); + __Pyx_DECREF(__pyx_v_self->self); + __pyx_v_self->self = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":196 + * # + * self.self = ctx + * self.name = None # <<<<<<<<<<<<<< + * cdef object create = self.create + * if create is not None: + */ + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = ((PyObject*)Py_None); + + /* "petsc4py/PETSc/libpetsc4py.pyx":197 + * self.self = ctx + * self.name = None + * cdef object create = self.create # <<<<<<<<<<<<<< + * if create is not None: + * create(base) + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_create); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_create = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":198 + * self.name = None + * cdef object create = self.create + * if create is not None: # <<<<<<<<<<<<<< + * create(base) + * create = None + */ + __pyx_t_3 = (__pyx_v_create != Py_None); + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":199 + * cdef object create = self.create + * if create is not None: + * create(base) # <<<<<<<<<<<<<< + * create = None + * return 0 + */ + __Pyx_INCREF(__pyx_v_create); + __pyx_t_4 = __pyx_v_create; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, ((PyObject *)__pyx_v_base)) : __Pyx_PyObject_CallOneArg(__pyx_t_4, ((PyObject *)__pyx_v_base)); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":200 + * if create is not None: + * create(base) + * create = None # <<<<<<<<<<<<<< + * return 0 + * + */ + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_create, Py_None); + + /* "petsc4py/PETSc/libpetsc4py.pyx":198 + * self.name = None + * cdef object create = self.create + * if create is not None: # <<<<<<<<<<<<<< + * create(base) + * create = None + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":201 + * create(base) + * create = None + * return 0 # <<<<<<<<<<<<<< + * + * cdef int getcontext(self, void **ctx) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":180 + * return getattr(self.self, attr, None) + * + * cdef int setcontext(self, void *ctx, Object base) except -1: # <<<<<<<<<<<<<< + * # + * if ctx == self.self: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("petsc4py.PETSc._PyObj.setcontext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_destroy); + __Pyx_XDECREF(__pyx_v_create); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":203 + * return 0 + * + * cdef int getcontext(self, void **ctx) except -1: # <<<<<<<<<<<<<< + * if ctx == NULL: return 0 + * if self.self is not None: + */ + +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_getcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, void **__pyx_v_ctx) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + __Pyx_RefNannySetupContext("getcontext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":204 + * + * cdef int getcontext(self, void **ctx) except -1: + * if ctx == NULL: return 0 # <<<<<<<<<<<<<< + * if self.self is not None: + * ctx[0] = self.self + */ + __pyx_t_1 = ((__pyx_v_ctx == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":205 + * cdef int getcontext(self, void **ctx) except -1: + * if ctx == NULL: return 0 + * if self.self is not None: # <<<<<<<<<<<<<< + * ctx[0] = self.self + * else: + */ + __pyx_t_1 = (__pyx_v_self->self != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":206 + * if ctx == NULL: return 0 + * if self.self is not None: + * ctx[0] = self.self # <<<<<<<<<<<<<< + * else: + * ctx[0] = NULL + */ + (__pyx_v_ctx[0]) = ((void *)__pyx_v_self->self); + + /* "petsc4py/PETSc/libpetsc4py.pyx":205 + * cdef int getcontext(self, void **ctx) except -1: + * if ctx == NULL: return 0 + * if self.self is not None: # <<<<<<<<<<<<<< + * ctx[0] = self.self + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":208 + * ctx[0] = self.self + * else: + * ctx[0] = NULL # <<<<<<<<<<<<<< + * return 0 + * + */ + /*else*/ { + (__pyx_v_ctx[0]) = NULL; + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":209 + * else: + * ctx[0] = NULL + * return 0 # <<<<<<<<<<<<<< + * + * cdef int setname(self, char name[]) except -1: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":203 + * return 0 + * + * cdef int getcontext(self, void **ctx) except -1: # <<<<<<<<<<<<<< + * if ctx == NULL: return 0 + * if self.self is not None: + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":211 + * return 0 + * + * cdef int setname(self, char name[]) except -1: # <<<<<<<<<<<<<< + * if name != NULL and name[0] != 0: + * self.name = name + */ + +static int __pyx_f_8petsc4py_5PETSc_6_PyObj_setname(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self, char *__pyx_v_name) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setname", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":212 + * + * cdef int setname(self, char name[]) except -1: + * if name != NULL and name[0] != 0: # <<<<<<<<<<<<<< + * self.name = name + * else: + */ + __pyx_t_2 = ((__pyx_v_name != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_name[0]) != 0) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":213 + * cdef int setname(self, char name[]) except -1: + * if name != NULL and name[0] != 0: + * self.name = name # <<<<<<<<<<<<<< + * else: + * self.name = None + */ + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":212 + * + * cdef int setname(self, char name[]) except -1: + * if name != NULL and name[0] != 0: # <<<<<<<<<<<<<< + * self.name = name + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":215 + * self.name = name + * else: + * self.name = None # <<<<<<<<<<<<<< + * return 0 + * + */ + /*else*/ { + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = ((PyObject*)Py_None); + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":216 + * else: + * self.name = None + * return 0 # <<<<<<<<<<<<<< + * + * cdef char* getname(self) except? NULL: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":211 + * return 0 + * + * cdef int setname(self, char name[]) except -1: # <<<<<<<<<<<<<< + * if name != NULL and name[0] != 0: + * self.name = name + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc._PyObj.setname", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":218 + * return 0 + * + * cdef char* getname(self) except? NULL: # <<<<<<<<<<<<<< + * if self.self is None: + * return NULL + */ + +static char *__pyx_f_8petsc4py_5PETSc_6_PyObj_getname(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_self) { + PyObject *__pyx_v_ctx = 0; + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_modname = NULL; + PyObject *__pyx_v_clsname = NULL; + PyObject *__pyx_v_cls = NULL; + char *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + char *__pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getname", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":219 + * + * cdef char* getname(self) except? NULL: + * if self.self is None: # <<<<<<<<<<<<<< + * return NULL + * if self.name is not None: + */ + __pyx_t_1 = (__pyx_v_self->self == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":220 + * cdef char* getname(self) except? NULL: + * if self.self is None: + * return NULL # <<<<<<<<<<<<<< + * if self.name is not None: + * return self.name + */ + __pyx_r = NULL; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":219 + * + * cdef char* getname(self) except? NULL: + * if self.self is None: # <<<<<<<<<<<<<< + * return NULL + * if self.name is not None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":221 + * if self.self is None: + * return NULL + * if self.name is not None: # <<<<<<<<<<<<<< + * return self.name + * cdef ctx = self.self + */ + __pyx_t_2 = (__pyx_v_self->name != ((PyObject*)Py_None)); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":222 + * return NULL + * if self.name is not None: + * return self.name # <<<<<<<<<<<<<< + * cdef ctx = self.self + * cdef name = None + */ + if (unlikely(__pyx_v_self->name == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(11, 222, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(11, 222, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":221 + * if self.self is None: + * return NULL + * if self.name is not None: # <<<<<<<<<<<<<< + * return self.name + * cdef ctx = self.self + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":223 + * if self.name is not None: + * return self.name + * cdef ctx = self.self # <<<<<<<<<<<<<< + * cdef name = None + * if PyModule_Check(ctx): + */ + __pyx_t_4 = __pyx_v_self->self; + __Pyx_INCREF(__pyx_t_4); + __pyx_v_ctx = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":224 + * return self.name + * cdef ctx = self.self + * cdef name = None # <<<<<<<<<<<<<< + * if PyModule_Check(ctx): + * name = getattr(ctx, '__name__', None) + */ + __Pyx_INCREF(Py_None); + __pyx_v_name = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":225 + * cdef ctx = self.self + * cdef name = None + * if PyModule_Check(ctx): # <<<<<<<<<<<<<< + * name = getattr(ctx, '__name__', None) + * else: + */ + __pyx_t_1 = (PyModule_Check(__pyx_v_ctx) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":226 + * cdef name = None + * if PyModule_Check(ctx): + * name = getattr(ctx, '__name__', None) # <<<<<<<<<<<<<< + * else: + * modname = getattr(ctx, '__module__', None) + */ + __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_ctx, __pyx_n_s_name_2, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":225 + * cdef ctx = self.self + * cdef name = None + * if PyModule_Check(ctx): # <<<<<<<<<<<<<< + * name = getattr(ctx, '__name__', None) + * else: + */ + goto __pyx_L5; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":228 + * name = getattr(ctx, '__name__', None) + * else: + * modname = getattr(ctx, '__module__', None) # <<<<<<<<<<<<<< + * clsname = None + * cls = getattr(ctx, '__class__', None) + */ + /*else*/ { + __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_ctx, __pyx_n_s_module, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 228, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_modname = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":229 + * else: + * modname = getattr(ctx, '__module__', None) + * clsname = None # <<<<<<<<<<<<<< + * cls = getattr(ctx, '__class__', None) + * if cls: + */ + __Pyx_INCREF(Py_None); + __pyx_v_clsname = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":230 + * modname = getattr(ctx, '__module__', None) + * clsname = None + * cls = getattr(ctx, '__class__', None) # <<<<<<<<<<<<<< + * if cls: + * clsname = getattr(cls, '__name__', None) + */ + __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_ctx, __pyx_n_s_class, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_cls = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":231 + * clsname = None + * cls = getattr(ctx, '__class__', None) + * if cls: # <<<<<<<<<<<<<< + * clsname = getattr(cls, '__name__', None) + * if not modname: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_cls); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 231, __pyx_L1_error) + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":232 + * cls = getattr(ctx, '__class__', None) + * if cls: + * clsname = getattr(cls, '__name__', None) # <<<<<<<<<<<<<< + * if not modname: + * modname = getattr(cls, '__module__', None) + */ + __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_cls, __pyx_n_s_name_2, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_clsname, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":233 + * if cls: + * clsname = getattr(cls, '__name__', None) + * if not modname: # <<<<<<<<<<<<<< + * modname = getattr(cls, '__module__', None) + * if modname and clsname: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_modname); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 233, __pyx_L1_error) + __pyx_t_2 = ((!__pyx_t_1) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":234 + * clsname = getattr(cls, '__name__', None) + * if not modname: + * modname = getattr(cls, '__module__', None) # <<<<<<<<<<<<<< + * if modname and clsname: + * name = modname + '.' + clsname + */ + __pyx_t_4 = __Pyx_GetAttr3(__pyx_v_cls, __pyx_n_s_module, Py_None); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF_SET(__pyx_v_modname, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":233 + * if cls: + * clsname = getattr(cls, '__name__', None) + * if not modname: # <<<<<<<<<<<<<< + * modname = getattr(cls, '__module__', None) + * if modname and clsname: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":231 + * clsname = None + * cls = getattr(ctx, '__class__', None) + * if cls: # <<<<<<<<<<<<<< + * clsname = getattr(cls, '__name__', None) + * if not modname: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":235 + * if not modname: + * modname = getattr(cls, '__module__', None) + * if modname and clsname: # <<<<<<<<<<<<<< + * name = modname + '.' + clsname + * elif clsname: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_modname); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 235, __pyx_L1_error) + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_clsname); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 235, __pyx_L1_error) + __pyx_t_2 = __pyx_t_1; + __pyx_L9_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":236 + * modname = getattr(cls, '__module__', None) + * if modname and clsname: + * name = modname + '.' + clsname # <<<<<<<<<<<<<< + * elif clsname: + * name = clsname + */ + __pyx_t_4 = PyNumber_Add(__pyx_v_modname, __pyx_kp_s__20); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_v_clsname); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":235 + * if not modname: + * modname = getattr(cls, '__module__', None) + * if modname and clsname: # <<<<<<<<<<<<<< + * name = modname + '.' + clsname + * elif clsname: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":237 + * if modname and clsname: + * name = modname + '.' + clsname + * elif clsname: # <<<<<<<<<<<<<< + * name = clsname + * elif modname: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_clsname); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 237, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":238 + * name = modname + '.' + clsname + * elif clsname: + * name = clsname # <<<<<<<<<<<<<< + * elif modname: + * name = modname + */ + __Pyx_INCREF(__pyx_v_clsname); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_v_clsname); + + /* "petsc4py/PETSc/libpetsc4py.pyx":237 + * if modname and clsname: + * name = modname + '.' + clsname + * elif clsname: # <<<<<<<<<<<<<< + * name = clsname + * elif modname: + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":239 + * elif clsname: + * name = clsname + * elif modname: # <<<<<<<<<<<<<< + * name = modname + * if name is not None: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_modname); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 239, __pyx_L1_error) + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":240 + * name = clsname + * elif modname: + * name = modname # <<<<<<<<<<<<<< + * if name is not None: + * self.name = name.encode() + */ + __Pyx_INCREF(__pyx_v_modname); + __Pyx_DECREF_SET(__pyx_v_name, __pyx_v_modname); + + /* "petsc4py/PETSc/libpetsc4py.pyx":239 + * elif clsname: + * name = clsname + * elif modname: # <<<<<<<<<<<<<< + * name = modname + * if name is not None: + */ + } + __pyx_L8:; + } + __pyx_L5:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":241 + * elif modname: + * name = modname + * if name is not None: # <<<<<<<<<<<<<< + * self.name = name.encode() + * if self.name is not None: + */ + __pyx_t_2 = (__pyx_v_name != Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":242 + * name = modname + * if name is not None: + * self.name = name.encode() # <<<<<<<<<<<<<< + * if self.name is not None: + * return self.name + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 242, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(11, 242, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":241 + * elif modname: + * name = modname + * if name is not None: # <<<<<<<<<<<<<< + * self.name = name.encode() + * if self.name is not None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":243 + * if name is not None: + * self.name = name.encode() + * if self.name is not None: # <<<<<<<<<<<<<< + * return self.name + * return NULL + */ + __pyx_t_1 = (__pyx_v_self->name != ((PyObject*)Py_None)); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":244 + * self.name = name.encode() + * if self.name is not None: + * return self.name # <<<<<<<<<<<<<< + * return NULL + * + */ + if (unlikely(__pyx_v_self->name == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(11, 244, __pyx_L1_error) + } + __pyx_t_3 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->name); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) __PYX_ERR(11, 244, __pyx_L1_error) + __pyx_r = __pyx_t_3; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":243 + * if name is not None: + * self.name = name.encode() + * if self.name is not None: # <<<<<<<<<<<<<< + * return self.name + * return NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":245 + * if self.name is not None: + * return self.name + * return NULL # <<<<<<<<<<<<<< + * + * cdef createcontext(char name_p[]): + */ + __pyx_r = NULL; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":218 + * return 0 + * + * cdef char* getname(self) except? NULL: # <<<<<<<<<<<<<< + * if self.self is None: + * return NULL + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc._PyObj.getname", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_modname); + __Pyx_XDECREF(__pyx_v_clsname); + __Pyx_XDECREF(__pyx_v_cls); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":247 + * return NULL + * + * cdef createcontext(char name_p[]): # <<<<<<<<<<<<<< + * if name_p == NULL: return None + * cdef name = bytes2str(name_p) + */ + +static PyObject *__pyx_f_8petsc4py_5PETSc_createcontext(char *__pyx_v_name_p) { + PyObject *__pyx_v_name = 0; + PyObject *__pyx_v_mod = 0; + PyObject *__pyx_v_path = 0; + PyObject *__pyx_v_modname = 0; + PyObject *__pyx_v_cls = 0; + PyObject *__pyx_v_attr = 0; + PyObject *__pyx_v_clsname = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("createcontext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":248 + * + * cdef createcontext(char name_p[]): + * if name_p == NULL: return None # <<<<<<<<<<<<<< + * cdef name = bytes2str(name_p) + * cdef mod, path, modname=None + */ + __pyx_t_1 = ((__pyx_v_name_p == NULL) != 0); + if (__pyx_t_1) { + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":249 + * cdef createcontext(char name_p[]): + * if name_p == NULL: return None + * cdef name = bytes2str(name_p) # <<<<<<<<<<<<<< + * cdef mod, path, modname=None + * cdef cls, attr, clsname=None + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_name_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":250 + * if name_p == NULL: return None + * cdef name = bytes2str(name_p) + * cdef mod, path, modname=None # <<<<<<<<<<<<<< + * cdef cls, attr, clsname=None + * # path/to/filename.py:{function|class} + */ + __Pyx_INCREF(Py_None); + __pyx_v_modname = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":251 + * cdef name = bytes2str(name_p) + * cdef mod, path, modname=None + * cdef cls, attr, clsname=None # <<<<<<<<<<<<<< + * # path/to/filename.py:{function|class} + * if ':' in name: + */ + __Pyx_INCREF(Py_None); + __pyx_v_clsname = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":253 + * cdef cls, attr, clsname=None + * # path/to/filename.py:{function|class} + * if ':' in name: # <<<<<<<<<<<<<< + * path, attr = parse_url(name) + * mod = load_module(path) + */ + __pyx_t_1 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__57, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(11, 253, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":254 + * # path/to/filename.py:{function|class} + * if ':' in name: + * path, attr = parse_url(name) # <<<<<<<<<<<<<< + * mod = load_module(path) + * if attr: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_parse_url(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 254, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_4 = PyList_GET_ITEM(sequence, 0); + __pyx_t_5 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(11, 254, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 254, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_v_path = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_attr = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":255 + * if ':' in name: + * path, attr = parse_url(name) + * mod = load_module(path) # <<<<<<<<<<<<<< + * if attr: + * cls = getattr(mod, attr) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_load_module(__pyx_v_path); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_mod = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":256 + * path, attr = parse_url(name) + * mod = load_module(path) + * if attr: # <<<<<<<<<<<<<< + * cls = getattr(mod, attr) + * return cls() + */ + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_attr); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(11, 256, __pyx_L1_error) + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":257 + * mod = load_module(path) + * if attr: + * cls = getattr(mod, attr) # <<<<<<<<<<<<<< + * return cls() + * else: + */ + __pyx_t_2 = __Pyx_GetAttr(__pyx_v_mod, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_cls = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":258 + * if attr: + * cls = getattr(mod, attr) + * return cls() # <<<<<<<<<<<<<< + * else: + * return mod + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_cls); + __pyx_t_5 = __pyx_v_cls; __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":256 + * path, attr = parse_url(name) + * mod = load_module(path) + * if attr: # <<<<<<<<<<<<<< + * cls = getattr(mod, attr) + * return cls() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":260 + * return cls() + * else: + * return mod # <<<<<<<<<<<<<< + * # package.module[.{function|class}] + * if '.' in name: + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_mod); + __pyx_r = __pyx_v_mod; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":253 + * cdef cls, attr, clsname=None + * # path/to/filename.py:{function|class} + * if ':' in name: # <<<<<<<<<<<<<< + * path, attr = parse_url(name) + * mod = load_module(path) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":262 + * return mod + * # package.module[.{function|class}] + * if '.' in name: # <<<<<<<<<<<<<< + * modname, clsname = name.rsplit('.', 1) + * mod = PyImport_Import(modname) + */ + __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__20, __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(11, 262, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_3 != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":263 + * # package.module[.{function|class}] + * if '.' in name: + * modname, clsname = name.rsplit('.', 1) # <<<<<<<<<<<<<< + * mod = PyImport_Import(modname) + * if hasattr(mod, clsname): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_rsplit); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__59, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) { + PyObject* sequence = __pyx_t_5; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 263, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_2 = PyList_GET_ITEM(sequence, 0); + __pyx_t_4 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_2 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_2)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_2); + index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(11, 263, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 263, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + __Pyx_DECREF_SET(__pyx_v_modname, __pyx_t_2); + __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_clsname, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":264 + * if '.' in name: + * modname, clsname = name.rsplit('.', 1) + * mod = PyImport_Import(modname) # <<<<<<<<<<<<<< + * if hasattr(mod, clsname): + * cls = getattr(mod, clsname) + */ + __pyx_t_5 = PyImport_Import(__pyx_v_modname); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_mod = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":265 + * modname, clsname = name.rsplit('.', 1) + * mod = PyImport_Import(modname) + * if hasattr(mod, clsname): # <<<<<<<<<<<<<< + * cls = getattr(mod, clsname) + * if not PyModule_Check(cls): + */ + __pyx_t_1 = __Pyx_HasAttr(__pyx_v_mod, __pyx_v_clsname); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(11, 265, __pyx_L1_error) + __pyx_t_3 = (__pyx_t_1 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":266 + * mod = PyImport_Import(modname) + * if hasattr(mod, clsname): + * cls = getattr(mod, clsname) # <<<<<<<<<<<<<< + * if not PyModule_Check(cls): + * return cls() + */ + __pyx_t_5 = __Pyx_GetAttr(__pyx_v_mod, __pyx_v_clsname); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_cls = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":267 + * if hasattr(mod, clsname): + * cls = getattr(mod, clsname) + * if not PyModule_Check(cls): # <<<<<<<<<<<<<< + * return cls() + * # package[.module] + */ + __pyx_t_3 = ((!(PyModule_Check(__pyx_v_cls) != 0)) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":268 + * cls = getattr(mod, clsname) + * if not PyModule_Check(cls): + * return cls() # <<<<<<<<<<<<<< + * # package[.module] + * mod = PyImport_Import(name) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_cls); + __pyx_t_4 = __pyx_v_cls; __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":267 + * if hasattr(mod, clsname): + * cls = getattr(mod, clsname) + * if not PyModule_Check(cls): # <<<<<<<<<<<<<< + * return cls() + * # package[.module] + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":265 + * modname, clsname = name.rsplit('.', 1) + * mod = PyImport_Import(modname) + * if hasattr(mod, clsname): # <<<<<<<<<<<<<< + * cls = getattr(mod, clsname) + * if not PyModule_Check(cls): + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":262 + * return mod + * # package.module[.{function|class}] + * if '.' in name: # <<<<<<<<<<<<<< + * modname, clsname = name.rsplit('.', 1) + * mod = PyImport_Import(modname) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":270 + * return cls() + * # package[.module] + * mod = PyImport_Import(name) # <<<<<<<<<<<<<< + * return mod + * + */ + __pyx_t_5 = PyImport_Import(__pyx_v_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_XDECREF_SET(__pyx_v_mod, __pyx_t_5); + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":271 + * # package[.module] + * mod = PyImport_Import(name) + * return mod # <<<<<<<<<<<<<< + * + * cdef int viewcontext(_PyObj ctx, PetscViewer viewer) except -1: + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_mod); + __pyx_r = __pyx_v_mod; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":247 + * return NULL + * + * cdef createcontext(char name_p[]): # <<<<<<<<<<<<<< + * if name_p == NULL: return None + * cdef name = bytes2str(name_p) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.createcontext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_XDECREF(__pyx_v_mod); + __Pyx_XDECREF(__pyx_v_path); + __Pyx_XDECREF(__pyx_v_modname); + __Pyx_XDECREF(__pyx_v_cls); + __Pyx_XDECREF(__pyx_v_attr); + __Pyx_XDECREF(__pyx_v_clsname); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":273 + * return mod + * + * cdef int viewcontext(_PyObj ctx, PetscViewer viewer) except -1: # <<<<<<<<<<<<<< + * cdef PetscBool isascii = PETSC_FALSE, isstring = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) + */ + +static int __pyx_f_8petsc4py_5PETSc_viewcontext(struct __pyx_obj_8petsc4py_5PETSc__PyObj *__pyx_v_ctx, PetscViewer __pyx_v_viewer) { + PetscBool __pyx_v_isascii; + PetscBool __pyx_v_isstring; + char *__pyx_v_name; + int __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + char *__pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("viewcontext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":274 + * + * cdef int viewcontext(_PyObj ctx, PetscViewer viewer) except -1: + * cdef PetscBool isascii = PETSC_FALSE, isstring = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) + */ + __pyx_v_isascii = PETSC_FALSE; + __pyx_v_isstring = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":275 + * cdef int viewcontext(_PyObj ctx, PetscViewer viewer) except -1: + * cdef PetscBool isascii = PETSC_FALSE, isstring = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) + * cdef char *name = ctx.getname() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(((PetscObject)__pyx_v_viewer), PETSCVIEWERASCII, (&__pyx_v_isascii))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 275, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":276 + * cdef PetscBool isascii = PETSC_FALSE, isstring = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) # <<<<<<<<<<<<<< + * cdef char *name = ctx.getname() + * if isascii: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(((PetscObject)__pyx_v_viewer), PETSCVIEWERSTRING, (&__pyx_v_isstring))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 276, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":277 + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) + * cdef char *name = ctx.getname() # <<<<<<<<<<<<<< + * if isascii: + * if name == NULL: name = b"unknown/no yet set" + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj *)__pyx_v_ctx->__pyx_vtab)->getname(__pyx_v_ctx); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 277, __pyx_L1_error) + __pyx_v_name = __pyx_t_2; + + /* "petsc4py/PETSc/libpetsc4py.pyx":278 + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) + * cdef char *name = ctx.getname() + * if isascii: # <<<<<<<<<<<<<< + * if name == NULL: name = b"unknown/no yet set" + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + */ + if (__pyx_v_isascii) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":279 + * cdef char *name = ctx.getname() + * if isascii: + * if name == NULL: name = b"unknown/no yet set" # <<<<<<<<<<<<<< + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + * if isstring: + */ + __pyx_t_3 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_3) { + __pyx_v_name = ((char *)"unknown/no yet set"); + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":280 + * if isascii: + * if name == NULL: name = b"unknown/no yet set" + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) # <<<<<<<<<<<<<< + * if isstring: + * if name == NULL: name = b"" + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerASCIIPrintf(__pyx_v_viewer, ((char *)" Python: %s\n"), __pyx_v_name)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":278 + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERSTRING, &isstring) ) + * cdef char *name = ctx.getname() + * if isascii: # <<<<<<<<<<<<<< + * if name == NULL: name = b"unknown/no yet set" + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":281 + * if name == NULL: name = b"unknown/no yet set" + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + * if isstring: # <<<<<<<<<<<<<< + * if name == NULL: name = b"" + * CHKERR( PetscViewerStringSPrintf(viewer, "%s", name) ) + */ + if (__pyx_v_isstring) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":282 + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + * if isstring: + * if name == NULL: name = b"" # <<<<<<<<<<<<<< + * CHKERR( PetscViewerStringSPrintf(viewer, "%s", name) ) + * return 0 + */ + __pyx_t_3 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_3) { + __pyx_v_name = ((char *)""); + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":283 + * if isstring: + * if name == NULL: name = b"" + * CHKERR( PetscViewerStringSPrintf(viewer, "%s", name) ) # <<<<<<<<<<<<<< + * return 0 + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscViewerStringSPrintf(__pyx_v_viewer, ((char *)"%s"), __pyx_v_name)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 283, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":281 + * if name == NULL: name = b"unknown/no yet set" + * CHKERR( PetscViewerASCIIPrintf(viewer, b" Python: %s\n", name) ) + * if isstring: # <<<<<<<<<<<<<< + * if name == NULL: name = b"" + * CHKERR( PetscViewerStringSPrintf(viewer, "%s", name) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":284 + * if name == NULL: name = b"" + * CHKERR( PetscViewerStringSPrintf(viewer, "%s", name) ) + * return 0 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":273 + * return mod + * + * cdef int viewcontext(_PyObj ctx, PetscViewer viewer) except -1: # <<<<<<<<<<<<<< + * cdef PetscBool isascii = PETSC_FALSE, isstring = PETSC_FALSE + * CHKERR( PetscObjectTypeCompare(viewer, PETSCVIEWERASCII, &isascii) ) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.viewcontext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":344 + * @cython.internal + * cdef class _PyMat(_PyObj): pass + * cdef inline _PyMat PyMat(PetscMat mat): # <<<<<<<<<<<<<< + * if mat != NULL and mat.data != NULL: + * return <_PyMat>mat.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyMat *__pyx_f_8petsc4py_5PETSc_PyMat(Mat __pyx_v_mat) { + struct __pyx_obj_8petsc4py_5PETSc__PyMat *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyMat", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":345 + * cdef class _PyMat(_PyObj): pass + * cdef inline _PyMat PyMat(PetscMat mat): + * if mat != NULL and mat.data != NULL: # <<<<<<<<<<<<<< + * return <_PyMat>mat.data + * else: + */ + __pyx_t_2 = ((__pyx_v_mat != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_mat->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":346 + * cdef inline _PyMat PyMat(PetscMat mat): + * if mat != NULL and mat.data != NULL: + * return <_PyMat>mat.data # <<<<<<<<<<<<<< + * else: + * return _PyMat.__new__(_PyMat) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_v_mat->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_v_mat->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":345 + * cdef class _PyMat(_PyObj): pass + * cdef inline _PyMat PyMat(PetscMat mat): + * if mat != NULL and mat.data != NULL: # <<<<<<<<<<<<<< + * return <_PyMat>mat.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":348 + * return <_PyMat>mat.data + * else: + * return _PyMat.__new__(_PyMat) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode MatPythonGetContext(PetscMat mat, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PyMat(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PyMat), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 348, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":344 + * @cython.internal + * cdef class _PyMat(_PyObj): pass + * cdef inline _PyMat PyMat(PetscMat mat): # <<<<<<<<<<<<<< + * if mat != NULL and mat.data != NULL: + * return <_PyMat>mat.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PyMat", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":350 + * return _PyMat.__new__(_PyMat) + * + * cdef public PetscErrorCode MatPythonGetContext(PetscMat mat, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonGetContext") + */ + +PetscErrorCode MatPythonGetContext(Mat __pyx_v_mat, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MatPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":352 + * cdef public PetscErrorCode MatPythonGetContext(PetscMat mat, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonGetContext") # <<<<<<<<<<<<<< + * PyMat(mat).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatPythonGetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":353 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonGetContext") + * PyMat(mat).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 353, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":354 + * FunctionBegin(b"MatPythonGetContext") + * PyMat(mat).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode MatPythonSetContext(PetscMat mat, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":350 + * return _PyMat.__new__(_PyMat) + * + * cdef public PetscErrorCode MatPythonGetContext(PetscMat mat, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonGetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.MatPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":356 + * return FunctionEnd() + * + * cdef public PetscErrorCode MatPythonSetContext(PetscMat mat, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonSetContext") + */ + +PetscErrorCode MatPythonSetContext(Mat __pyx_v_mat, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("MatPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":358 + * cdef public PetscErrorCode MatPythonSetContext(PetscMat mat, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonSetContext") # <<<<<<<<<<<<<< + * PyMat(mat).setcontext(ctx, Mat_(mat)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatPythonSetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":359 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonSetContext") + * PyMat(mat).setcontext(ctx, Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":360 + * FunctionBegin(b"MatPythonSetContext") + * PyMat(mat).setcontext(ctx, Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatPythonSetType_PYTHON(PetscMat mat, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":356 + * return FunctionEnd() + * + * cdef public PetscErrorCode MatPythonSetContext(PetscMat mat, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"MatPythonSetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.MatPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":362 + * return FunctionEnd() + * + * cdef PetscErrorCode MatPythonSetType_PYTHON(PetscMat mat, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatPythonSetType_PYTHON(Mat __pyx_v_mat, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":364 + * cdef PetscErrorCode MatPythonSetType_PYTHON(PetscMat mat, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":365 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * MatPythonSetContext(mat, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":366 + * FunctionBegin(b"MatPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * MatPythonSetContext(mat, ctx) + * PyMat(mat).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":367 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * MatPythonSetContext(mat, ctx) # <<<<<<<<<<<<<< + * PyMat(mat).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = MatPythonSetContext(__pyx_v_mat, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 367, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":368 + * cdef object ctx = createcontext(name) + * MatPythonSetContext(mat, ctx) + * PyMat(mat).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 368, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":369 + * MatPythonSetContext(mat, ctx) + * PyMat(mat).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatPythonGetType_PYTHON(PetscMat mat, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":362 + * return FunctionEnd() + * + * cdef PetscErrorCode MatPythonSetType_PYTHON(PetscMat mat, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.MatPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":371 + * return FunctionEnd() + * + * cdef PetscErrorCode MatPythonGetType_PYTHON(PetscMat mat, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatPythonGetType_PYTHON(Mat __pyx_v_mat, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":373 + * cdef PetscErrorCode MatPythonGetType_PYTHON(PetscMat mat, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PyMat(mat).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":374 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonGetType_PYTHON") + * name[0] = PyMat(mat).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 374, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":375 + * FunctionBegin(b"MatPythonGetType_PYTHON") + * name[0] = PyMat(mat).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef dict dMatOps = { 3 : 'mult', + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":371 + * return FunctionEnd() + * + * cdef PetscErrorCode MatPythonGetType_PYTHON(PetscMat mat, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.MatPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":408 + * } + * + * cdef PetscErrorCode MatCreate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreate_Python(Mat __pyx_v_mat) { + MatOps __pyx_v_ops; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + MatOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":412 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef MatOps ops = mat.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":414 + * FunctionBegin(b"MatCreate_Python") + * # + * cdef MatOps ops = mat.ops # <<<<<<<<<<<<<< + * ops.destroy = MatDestroy_Python + * ops.setfromoptions = MatSetFromOptions_Python + */ + __pyx_t_1 = __pyx_v_mat->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":415 + * # + * cdef MatOps ops = mat.ops + * ops.destroy = MatDestroy_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = MatSetFromOptions_Python + * ops.view = MatView_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_MatDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":416 + * cdef MatOps ops = mat.ops + * ops.destroy = MatDestroy_Python + * ops.setfromoptions = MatSetFromOptions_Python # <<<<<<<<<<<<<< + * ops.view = MatView_Python + * ops.duplicate = MatDuplicate_Python + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_MatSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":417 + * ops.destroy = MatDestroy_Python + * ops.setfromoptions = MatSetFromOptions_Python + * ops.view = MatView_Python # <<<<<<<<<<<<<< + * ops.duplicate = MatDuplicate_Python + * ops.copy = MatCopy_Python + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_MatView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":418 + * ops.setfromoptions = MatSetFromOptions_Python + * ops.view = MatView_Python + * ops.duplicate = MatDuplicate_Python # <<<<<<<<<<<<<< + * ops.copy = MatCopy_Python + * ops.createsubmatrix = MatCreateSubMatrix_Python + */ + __pyx_v_ops->duplicate = __pyx_f_8petsc4py_5PETSc_MatDuplicate_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":419 + * ops.view = MatView_Python + * ops.duplicate = MatDuplicate_Python + * ops.copy = MatCopy_Python # <<<<<<<<<<<<<< + * ops.createsubmatrix = MatCreateSubMatrix_Python + * ops.setoption = MatSetOption_Python + */ + __pyx_v_ops->copy = __pyx_f_8petsc4py_5PETSc_MatCopy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":420 + * ops.duplicate = MatDuplicate_Python + * ops.copy = MatCopy_Python + * ops.createsubmatrix = MatCreateSubMatrix_Python # <<<<<<<<<<<<<< + * ops.setoption = MatSetOption_Python + * ops.setup = MatSetUp_Python + */ + __pyx_v_ops->createsubmatrix = __pyx_f_8petsc4py_5PETSc_MatCreateSubMatrix_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":421 + * ops.copy = MatCopy_Python + * ops.createsubmatrix = MatCreateSubMatrix_Python + * ops.setoption = MatSetOption_Python # <<<<<<<<<<<<<< + * ops.setup = MatSetUp_Python + * ops.assemblybegin = MatAssemblyBegin_Python + */ + __pyx_v_ops->setoption = __pyx_f_8petsc4py_5PETSc_MatSetOption_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":422 + * ops.createsubmatrix = MatCreateSubMatrix_Python + * ops.setoption = MatSetOption_Python + * ops.setup = MatSetUp_Python # <<<<<<<<<<<<<< + * ops.assemblybegin = MatAssemblyBegin_Python + * ops.assemblyend = MatAssemblyEnd_Python + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_MatSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":423 + * ops.setoption = MatSetOption_Python + * ops.setup = MatSetUp_Python + * ops.assemblybegin = MatAssemblyBegin_Python # <<<<<<<<<<<<<< + * ops.assemblyend = MatAssemblyEnd_Python + * ops.zeroentries = MatZeroEntries_Python + */ + __pyx_v_ops->assemblybegin = __pyx_f_8petsc4py_5PETSc_MatAssemblyBegin_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":424 + * ops.setup = MatSetUp_Python + * ops.assemblybegin = MatAssemblyBegin_Python + * ops.assemblyend = MatAssemblyEnd_Python # <<<<<<<<<<<<<< + * ops.zeroentries = MatZeroEntries_Python + * ops.zerorowscolumns = MatZeroRowsColumns_Python + */ + __pyx_v_ops->assemblyend = __pyx_f_8petsc4py_5PETSc_MatAssemblyEnd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":425 + * ops.assemblybegin = MatAssemblyBegin_Python + * ops.assemblyend = MatAssemblyEnd_Python + * ops.zeroentries = MatZeroEntries_Python # <<<<<<<<<<<<<< + * ops.zerorowscolumns = MatZeroRowsColumns_Python + * ops.scale = MatScale_Python + */ + __pyx_v_ops->zeroentries = __pyx_f_8petsc4py_5PETSc_MatZeroEntries_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":426 + * ops.assemblyend = MatAssemblyEnd_Python + * ops.zeroentries = MatZeroEntries_Python + * ops.zerorowscolumns = MatZeroRowsColumns_Python # <<<<<<<<<<<<<< + * ops.scale = MatScale_Python + * ops.shift = MatShift_Python + */ + __pyx_v_ops->zerorowscolumns = __pyx_f_8petsc4py_5PETSc_MatZeroRowsColumns_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":427 + * ops.zeroentries = MatZeroEntries_Python + * ops.zerorowscolumns = MatZeroRowsColumns_Python + * ops.scale = MatScale_Python # <<<<<<<<<<<<<< + * ops.shift = MatShift_Python + * ops.getvecs = MatCreateVecs_Python + */ + __pyx_v_ops->scale = __pyx_f_8petsc4py_5PETSc_MatScale_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":428 + * ops.zerorowscolumns = MatZeroRowsColumns_Python + * ops.scale = MatScale_Python + * ops.shift = MatShift_Python # <<<<<<<<<<<<<< + * ops.getvecs = MatCreateVecs_Python + * ops.mult = MatMult_Python + */ + __pyx_v_ops->shift = __pyx_f_8petsc4py_5PETSc_MatShift_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":429 + * ops.scale = MatScale_Python + * ops.shift = MatShift_Python + * ops.getvecs = MatCreateVecs_Python # <<<<<<<<<<<<<< + * ops.mult = MatMult_Python + * ops.sor = MatSOR_Python + */ + __pyx_v_ops->getvecs = __pyx_f_8petsc4py_5PETSc_MatCreateVecs_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":430 + * ops.shift = MatShift_Python + * ops.getvecs = MatCreateVecs_Python + * ops.mult = MatMult_Python # <<<<<<<<<<<<<< + * ops.sor = MatSOR_Python + * ops.multtranspose = MatMultTranspose_Python + */ + __pyx_v_ops->mult = __pyx_f_8petsc4py_5PETSc_MatMult_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":431 + * ops.getvecs = MatCreateVecs_Python + * ops.mult = MatMult_Python + * ops.sor = MatSOR_Python # <<<<<<<<<<<<<< + * ops.multtranspose = MatMultTranspose_Python + * ops.multhermitian = MatMultHermitian_Python + */ + __pyx_v_ops->sor = __pyx_f_8petsc4py_5PETSc_MatSOR_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":432 + * ops.mult = MatMult_Python + * ops.sor = MatSOR_Python + * ops.multtranspose = MatMultTranspose_Python # <<<<<<<<<<<<<< + * ops.multhermitian = MatMultHermitian_Python + * ops.multadd = MatMultAdd_Python + */ + __pyx_v_ops->multtranspose = __pyx_f_8petsc4py_5PETSc_MatMultTranspose_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":433 + * ops.sor = MatSOR_Python + * ops.multtranspose = MatMultTranspose_Python + * ops.multhermitian = MatMultHermitian_Python # <<<<<<<<<<<<<< + * ops.multadd = MatMultAdd_Python + * ops.multtransposeadd = MatMultTransposeAdd_Python + */ + __pyx_v_ops->multhermitiantranspose = __pyx_f_8petsc4py_5PETSc_MatMultHermitian_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":434 + * ops.multtranspose = MatMultTranspose_Python + * ops.multhermitian = MatMultHermitian_Python + * ops.multadd = MatMultAdd_Python # <<<<<<<<<<<<<< + * ops.multtransposeadd = MatMultTransposeAdd_Python + * ops.multhermitianadd = MatMultHermitianAdd_Python + */ + __pyx_v_ops->multadd = __pyx_f_8petsc4py_5PETSc_MatMultAdd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":435 + * ops.multhermitian = MatMultHermitian_Python + * ops.multadd = MatMultAdd_Python + * ops.multtransposeadd = MatMultTransposeAdd_Python # <<<<<<<<<<<<<< + * ops.multhermitianadd = MatMultHermitianAdd_Python + * ops.multdiagonalblock = MatMultDiagonalBlock_Python + */ + __pyx_v_ops->multtransposeadd = __pyx_f_8petsc4py_5PETSc_MatMultTransposeAdd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":436 + * ops.multadd = MatMultAdd_Python + * ops.multtransposeadd = MatMultTransposeAdd_Python + * ops.multhermitianadd = MatMultHermitianAdd_Python # <<<<<<<<<<<<<< + * ops.multdiagonalblock = MatMultDiagonalBlock_Python + * ops.solve = MatSolve_Python + */ + __pyx_v_ops->multhermitiantransposeadd = __pyx_f_8petsc4py_5PETSc_MatMultHermitianAdd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":437 + * ops.multtransposeadd = MatMultTransposeAdd_Python + * ops.multhermitianadd = MatMultHermitianAdd_Python + * ops.multdiagonalblock = MatMultDiagonalBlock_Python # <<<<<<<<<<<<<< + * ops.solve = MatSolve_Python + * ops.solvetranspose = MatSolveTranspose_Python + */ + __pyx_v_ops->multdiagonalblock = __pyx_f_8petsc4py_5PETSc_MatMultDiagonalBlock_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":438 + * ops.multhermitianadd = MatMultHermitianAdd_Python + * ops.multdiagonalblock = MatMultDiagonalBlock_Python + * ops.solve = MatSolve_Python # <<<<<<<<<<<<<< + * ops.solvetranspose = MatSolveTranspose_Python + * ops.solveadd = MatSolveAdd_Python + */ + __pyx_v_ops->solve = __pyx_f_8petsc4py_5PETSc_MatSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":439 + * ops.multdiagonalblock = MatMultDiagonalBlock_Python + * ops.solve = MatSolve_Python + * ops.solvetranspose = MatSolveTranspose_Python # <<<<<<<<<<<<<< + * ops.solveadd = MatSolveAdd_Python + * ops.solvetransposeadd = MatSolveTransposeAdd_Python + */ + __pyx_v_ops->solvetranspose = __pyx_f_8petsc4py_5PETSc_MatSolveTranspose_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":440 + * ops.solve = MatSolve_Python + * ops.solvetranspose = MatSolveTranspose_Python + * ops.solveadd = MatSolveAdd_Python # <<<<<<<<<<<<<< + * ops.solvetransposeadd = MatSolveTransposeAdd_Python + * ops.getdiagonal = MatGetDiagonal_Python + */ + __pyx_v_ops->solveadd = __pyx_f_8petsc4py_5PETSc_MatSolveAdd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":441 + * ops.solvetranspose = MatSolveTranspose_Python + * ops.solveadd = MatSolveAdd_Python + * ops.solvetransposeadd = MatSolveTransposeAdd_Python # <<<<<<<<<<<<<< + * ops.getdiagonal = MatGetDiagonal_Python + * ops.setdiagonal = MatSetDiagonal_Python + */ + __pyx_v_ops->solvetransposeadd = __pyx_f_8petsc4py_5PETSc_MatSolveTransposeAdd_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":442 + * ops.solveadd = MatSolveAdd_Python + * ops.solvetransposeadd = MatSolveTransposeAdd_Python + * ops.getdiagonal = MatGetDiagonal_Python # <<<<<<<<<<<<<< + * ops.setdiagonal = MatSetDiagonal_Python + * ops.diagonalscale = MatDiagonalScale_Python + */ + __pyx_v_ops->getdiagonal = __pyx_f_8petsc4py_5PETSc_MatGetDiagonal_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":443 + * ops.solvetransposeadd = MatSolveTransposeAdd_Python + * ops.getdiagonal = MatGetDiagonal_Python + * ops.setdiagonal = MatSetDiagonal_Python # <<<<<<<<<<<<<< + * ops.diagonalscale = MatDiagonalScale_Python + * ops.missingdiagonal = MatMissingDiagonal_Python + */ + __pyx_v_ops->diagonalset = __pyx_f_8petsc4py_5PETSc_MatSetDiagonal_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":444 + * ops.getdiagonal = MatGetDiagonal_Python + * ops.setdiagonal = MatSetDiagonal_Python + * ops.diagonalscale = MatDiagonalScale_Python # <<<<<<<<<<<<<< + * ops.missingdiagonal = MatMissingDiagonal_Python + * ops.norm = MatNorm_Python + */ + __pyx_v_ops->diagonalscale = __pyx_f_8petsc4py_5PETSc_MatDiagonalScale_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":445 + * ops.setdiagonal = MatSetDiagonal_Python + * ops.diagonalscale = MatDiagonalScale_Python + * ops.missingdiagonal = MatMissingDiagonal_Python # <<<<<<<<<<<<<< + * ops.norm = MatNorm_Python + * ops.realpart = MatRealPart_Python + */ + __pyx_v_ops->missingdiagonal = __pyx_f_8petsc4py_5PETSc_MatMissingDiagonal_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":446 + * ops.diagonalscale = MatDiagonalScale_Python + * ops.missingdiagonal = MatMissingDiagonal_Python + * ops.norm = MatNorm_Python # <<<<<<<<<<<<<< + * ops.realpart = MatRealPart_Python + * ops.imagpart = MatImagPart_Python + */ + __pyx_v_ops->norm = __pyx_f_8petsc4py_5PETSc_MatNorm_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":447 + * ops.missingdiagonal = MatMissingDiagonal_Python + * ops.norm = MatNorm_Python + * ops.realpart = MatRealPart_Python # <<<<<<<<<<<<<< + * ops.imagpart = MatImagPart_Python + * ops.conjugate = MatConjugate_Python + */ + __pyx_v_ops->realpart = __pyx_f_8petsc4py_5PETSc_MatRealPart_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":448 + * ops.norm = MatNorm_Python + * ops.realpart = MatRealPart_Python + * ops.imagpart = MatImagPart_Python # <<<<<<<<<<<<<< + * ops.conjugate = MatConjugate_Python + * ops.hasoperation = MatHasOperation_Python + */ + __pyx_v_ops->imaginarypart = __pyx_f_8petsc4py_5PETSc_MatImagPart_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":449 + * ops.realpart = MatRealPart_Python + * ops.imagpart = MatImagPart_Python + * ops.conjugate = MatConjugate_Python # <<<<<<<<<<<<<< + * ops.hasoperation = MatHasOperation_Python + * ops.getdiagonalblock = MatGetDiagonalBlock_Python + */ + __pyx_v_ops->conjugate = __pyx_f_8petsc4py_5PETSc_MatConjugate_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":450 + * ops.imagpart = MatImagPart_Python + * ops.conjugate = MatConjugate_Python + * ops.hasoperation = MatHasOperation_Python # <<<<<<<<<<<<<< + * ops.getdiagonalblock = MatGetDiagonalBlock_Python + * + */ + __pyx_v_ops->hasoperation = __pyx_f_8petsc4py_5PETSc_MatHasOperation_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":451 + * ops.conjugate = MatConjugate_Python + * ops.hasoperation = MatHasOperation_Python + * ops.getdiagonalblock = MatGetDiagonalBlock_Python # <<<<<<<<<<<<<< + * + * ops.productsetfromoptions = MatProductSetFromOptions_Python + */ + __pyx_v_ops->getdiagonalblock = __pyx_f_8petsc4py_5PETSc_MatGetDiagonalBlock_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":453 + * ops.getdiagonalblock = MatGetDiagonalBlock_Python + * + * ops.productsetfromoptions = MatProductSetFromOptions_Python # <<<<<<<<<<<<<< + * + * # + */ + __pyx_v_ops->productsetfromoptions = __pyx_f_8petsc4py_5PETSc_MatProductSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":456 + * + * # + * mat.assembled = PETSC_TRUE # XXX # <<<<<<<<<<<<<< + * mat.preallocated = PETSC_FALSE # XXX + * # + */ + __pyx_v_mat->assembled = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":457 + * # + * mat.assembled = PETSC_TRUE # XXX + * mat.preallocated = PETSC_FALSE # XXX # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_mat->preallocated = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":459 + * mat.preallocated = PETSC_FALSE # XXX + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatPythonSetType_C", + * MatPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_MatPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 459, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":462 + * mat, b"MatPythonSetType_C", + * MatPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatPythonGetType_C", + * MatPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_MatPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 462, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":465 + * mat, b"MatPythonGetType_C", + * MatPythonGetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatProductSetFromOptions_anytype_C", + * MatProductSetFromOptions_Python) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatProductSetFromOptions_anytype_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_MatProductSetFromOptions_Python))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 465, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":468 + * mat, b"MatProductSetFromOptions_anytype_C", + * MatProductSetFromOptions_Python) ) + * CHKERR( PetscObjectChangeTypeName( # <<<<<<<<<<<<<< + * mat, MATPYTHON) ) + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectChangeTypeName(((PetscObject)__pyx_v_mat), MATPYTHON)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 468, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":471 + * mat, MATPYTHON) ) + * # + * cdef ctx = PyMat(NULL) # <<<<<<<<<<<<<< + * mat.data = ctx + * Py_INCREF(mat.data) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":472 + * # + * cdef ctx = PyMat(NULL) + * mat.data = ctx # <<<<<<<<<<<<<< + * Py_INCREF(mat.data) + * return FunctionEnd() + */ + __pyx_v_mat->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":473 + * cdef ctx = PyMat(NULL) + * mat.data = ctx + * Py_INCREF(mat.data) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + Py_INCREF(((PyObject *)__pyx_v_mat->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":474 + * mat.data = ctx + * Py_INCREF(mat.data) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode MatDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":408 + * } + * + * cdef PetscErrorCode MatCreate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.MatCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":476 + * return FunctionEnd() + * + * cdef inline PetscErrorCode MatDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDestroy_Python_inner(Mat __pyx_v_mat) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":480 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(mat) + * MatPythonSetContext(mat, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":481 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(mat) # <<<<<<<<<<<<<< + * MatPythonSetContext(mat, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_mat); + + /* "petsc4py/PETSc/libpetsc4py.pyx":482 + * try: + * addRef(mat) + * MatPythonSetContext(mat, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(mat) + */ + __pyx_t_1 = MatPythonSetContext(__pyx_v_mat, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 482, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":484 + * MatPythonSetContext(mat, NULL) + * finally: + * delRef(mat) # <<<<<<<<<<<<<< + * Py_DECREF(mat.data) + * mat.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_mat); + + /* "petsc4py/PETSc/libpetsc4py.pyx":485 + * finally: + * delRef(mat) + * Py_DECREF(mat.data) # <<<<<<<<<<<<<< + * mat.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_mat->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":486 + * delRef(mat) + * Py_DECREF(mat.data) + * mat.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_mat->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":484 + * MatPythonSetContext(mat, NULL) + * finally: + * delRef(mat) # <<<<<<<<<<<<<< + * Py_DECREF(mat.data) + * mat.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_mat); + + /* "petsc4py/PETSc/libpetsc4py.pyx":485 + * finally: + * delRef(mat) + * Py_DECREF(mat.data) # <<<<<<<<<<<<<< + * mat.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_mat->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":486 + * delRef(mat) + * Py_DECREF(mat.data) + * mat.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_mat->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":487 + * Py_DECREF(mat.data) + * mat.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":476 + * return FunctionEnd() + * + * cdef inline PetscErrorCode MatDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.MatDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":489 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode MatDestroy_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDestroy_Python(Mat __pyx_v_mat) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":494 + * nogil except PETSC_ERR_PYTHON: + * + * FunctionBegin(b"MatDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * mat, b"MatPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":495 + * + * FunctionBegin(b"MatDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatPythonSetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 495, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":498 + * mat, b"MatPythonSetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatPythonGetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 498, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":501 + * mat, b"MatPythonGetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * mat, b"MatProductSetFromOptions_anytype_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_mat), ((char *)"MatProductSetFromOptions_anytype_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 501, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":504 + * mat, b"MatProductSetFromOptions_anytype_C", + * NULL) ) + * CHKERR( PetscObjectChangeTypeName( # <<<<<<<<<<<<<< + * mat, NULL) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectChangeTypeName(((PetscObject)__pyx_v_mat), NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 504, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":507 + * mat, NULL) ) + * + * if Py_IsInitialized(): MatDestroy_Python_inner(mat) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_MatDestroy_Python_inner(__pyx_v_mat); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 507, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":508 + * + * if Py_IsInitialized(): MatDestroy_Python_inner(mat) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":489 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode MatDestroy_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.MatDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":510 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscOptionItems *PetscOptionsObject, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetFromOptions_Python(Mat __pyx_v_mat, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":515 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetFromOptions_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048], *defval = PyMat(mat).getname() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":517 + * FunctionBegin(b"MatSetFromOptions_Python") + * # + * cdef char name[2048], *defval = PyMat(mat).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat *)((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 517, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":518 + * # + * cdef char name[2048], *defval = PyMat(mat).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":519 + * cdef char name[2048], *defval = PyMat(mat).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-mat_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":520 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-mat_python_type", b"Python [package.]module[.{class|function}]", + * b"MatPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-mat_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"MatPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 520, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":522 + * CHKERR( PetscOptionsString( + * b"-mat_python_type", b"Python [package.]module[.{class|function}]", + * b"MatPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":523 + * b"-mat_python_type", b"Python [package.]module[.{class|function}]", + * b"MatPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":524 + * b"MatPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PyMat(mat).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_MatPythonSetType_PYTHON(__pyx_v_mat, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 524, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 524, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":523 + * b"-mat_python_type", b"Python [package.]module[.{class|function}]", + * b"MatPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":526 + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * # + * cdef setFromOptions = PyMat(mat).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":527 + * # + * cdef setFromOptions = PyMat(mat).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":528 + * cdef setFromOptions = PyMat(mat).setFromOptions + * if setFromOptions is not None: + * setFromOptions(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":527 + * # + * cdef setFromOptions = PyMat(mat).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(Mat_(mat)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":529 + * if setFromOptions is not None: + * setFromOptions(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":510 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscOptionItems *PetscOptionsObject, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":531 + * return FunctionEnd() + * + * cdef PetscErrorCode MatView_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatView_Python(Mat __pyx_v_mat, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":536 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatView_Python") # <<<<<<<<<<<<<< + * viewcontext(PyMat(mat), vwr) + * cdef view = PyMat(mat).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":537 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatView_Python") + * viewcontext(PyMat(mat), vwr) # <<<<<<<<<<<<<< + * cdef view = PyMat(mat).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 537, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":538 + * FunctionBegin(b"MatView_Python") + * viewcontext(PyMat(mat), vwr) + * cdef view = PyMat(mat).view # <<<<<<<<<<<<<< + * if view is not None: + * view(Mat_(mat), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":539 + * viewcontext(PyMat(mat), vwr) + * cdef view = PyMat(mat).view + * if view is not None: # <<<<<<<<<<<<<< + * view(Mat_(mat), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":540 + * cdef view = PyMat(mat).view + * if view is not None: + * view(Mat_(mat), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":539 + * viewcontext(PyMat(mat), vwr) + * cdef view = PyMat(mat).view + * if view is not None: # <<<<<<<<<<<<<< + * view(Mat_(mat), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":541 + * if view is not None: + * view(Mat_(mat), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatDuplicate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":531 + * return FunctionEnd() + * + * cdef PetscErrorCode MatView_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":543 + * return FunctionEnd() + * + * cdef PetscErrorCode MatDuplicate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatDuplicateOption op, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDuplicate_Python(Mat __pyx_v_mat, MatDuplicateOption __pyx_v_op, Mat *__pyx_v_out) { + PyObject *__pyx_v_duplicate = 0; + struct PyPetscMatObject *__pyx_v_m = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + Mat __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatDuplicate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":549 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatDuplicate_Python") # <<<<<<<<<<<<<< + * cdef duplicate = PyMat(mat).duplicate + * if duplicate is None: return UNSUPPORTED(b"duplicate") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatDuplicate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":550 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatDuplicate_Python") + * cdef duplicate = PyMat(mat).duplicate # <<<<<<<<<<<<<< + * if duplicate is None: return UNSUPPORTED(b"duplicate") + * cdef Mat m = duplicate(Mat_(mat), op) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_duplicate); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_duplicate = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":551 + * FunctionBegin(b"MatDuplicate_Python") + * cdef duplicate = PyMat(mat).duplicate + * if duplicate is None: return UNSUPPORTED(b"duplicate") # <<<<<<<<<<<<<< + * cdef Mat m = duplicate(Mat_(mat), op) + * out[0] = m.mat; m.mat = NULL + */ + __pyx_t_3 = (__pyx_v_duplicate == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"duplicate")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":552 + * cdef duplicate = PyMat(mat).duplicate + * if duplicate is None: return UNSUPPORTED(b"duplicate") + * cdef Mat m = duplicate(Mat_(mat), op) # <<<<<<<<<<<<<< + * out[0] = m.mat; m.mat = NULL + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyInt_From_long(((long)__pyx_v_op)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_duplicate); + __pyx_t_6 = __pyx_v_duplicate; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(11, 552, __pyx_L1_error) + __pyx_v_m = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":553 + * if duplicate is None: return UNSUPPORTED(b"duplicate") + * cdef Mat m = duplicate(Mat_(mat), op) + * out[0] = m.mat; m.mat = NULL # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_10 = __pyx_v_m->mat; + (__pyx_v_out[0]) = __pyx_t_10; + __pyx_v_m->mat = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":554 + * cdef Mat m = duplicate(Mat_(mat), op) + * out[0] = m.mat; m.mat = NULL + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatCopy_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":543 + * return FunctionEnd() + * + * cdef PetscErrorCode MatDuplicate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatDuplicateOption op, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatDuplicate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_duplicate); + __Pyx_XDECREF((PyObject *)__pyx_v_m); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":556 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCopy_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMat out, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCopy_Python(Mat __pyx_v_mat, Mat __pyx_v_out, MatStructure __pyx_v_op) { + PyObject *__pyx_v_copy = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatCopy_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":562 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCopy_Python") # <<<<<<<<<<<<<< + * cdef copy = PyMat(mat).copy + * if copy is None: return UNSUPPORTED(b"copy") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatCopy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":563 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCopy_Python") + * cdef copy = PyMat(mat).copy # <<<<<<<<<<<<<< + * if copy is None: return UNSUPPORTED(b"copy") + * copy(Mat_(mat), Mat_(out), op) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_copy); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_copy = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":564 + * FunctionBegin(b"MatCopy_Python") + * cdef copy = PyMat(mat).copy + * if copy is None: return UNSUPPORTED(b"copy") # <<<<<<<<<<<<<< + * copy(Mat_(mat), Mat_(out), op) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_copy == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"copy")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":565 + * cdef copy = PyMat(mat).copy + * if copy is None: return UNSUPPORTED(b"copy") + * copy(Mat_(mat), Mat_(out), op) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_out)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyInt_From_long(((long)__pyx_v_op)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_copy); + __pyx_t_7 = __pyx_v_copy; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":566 + * if copy is None: return UNSUPPORTED(b"copy") + * copy(Mat_(mat), Mat_(out), op) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatGetDiagonalBlock_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":556 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCopy_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMat out, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatCopy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_copy); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":568 + * return FunctionEnd() + * + * cdef PetscErrorCode MatGetDiagonalBlock_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMat *out + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatGetDiagonalBlock_Python(Mat __pyx_v_mat, Mat *__pyx_v_out) { + PyObject *__pyx_v_getDiagonalBlock = 0; + struct PyPetscMatObject *__pyx_v_sub = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + Mat __pyx_t_17; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatGetDiagonalBlock_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":573 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatGetDiagonalBlock_Python") # <<<<<<<<<<<<<< + * cdef getDiagonalBlock = PyMat(mat).getDiagonalBlock + * if getDiagonalBlock is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatGetDiagonalBlock_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":574 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatGetDiagonalBlock_Python") + * cdef getDiagonalBlock = PyMat(mat).getDiagonalBlock # <<<<<<<<<<<<<< + * if getDiagonalBlock is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getDiagonalBlock); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_getDiagonalBlock = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":575 + * FunctionBegin(b"MatGetDiagonalBlock_Python") + * cdef getDiagonalBlock = PyMat(mat).getDiagonalBlock + * if getDiagonalBlock is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.getdiagonalblock = NULL + */ + __pyx_t_3 = (__pyx_v_getDiagonalBlock == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":576 + * cdef getDiagonalBlock = PyMat(mat).getDiagonalBlock + * if getDiagonalBlock is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.getdiagonalblock = NULL + * CHKERR( MatGetDiagonalBlock(mat, out) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":577 + * if getDiagonalBlock is None: + * try: + * mat.ops.getdiagonalblock = NULL # <<<<<<<<<<<<<< + * CHKERR( MatGetDiagonalBlock(mat, out) ) + * finally: + */ + __pyx_v_mat->ops->getdiagonalblock = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":578 + * try: + * mat.ops.getdiagonalblock = NULL + * CHKERR( MatGetDiagonalBlock(mat, out) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.getdiagonalblock = MatGetDiagonalBlock_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatGetDiagonalBlock(__pyx_v_mat, __pyx_v_out)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 578, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":580 + * CHKERR( MatGetDiagonalBlock(mat, out) ) + * finally: + * mat.ops.getdiagonalblock = MatGetDiagonalBlock_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * cdef Mat sub = getDiagonalBlock(Mat_(mat)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->getdiagonalblock = __pyx_f_8petsc4py_5PETSc_MatGetDiagonalBlock_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->getdiagonalblock = __pyx_f_8petsc4py_5PETSc_MatGetDiagonalBlock_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":581 + * finally: + * mat.ops.getdiagonalblock = MatGetDiagonalBlock_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * cdef Mat sub = getDiagonalBlock(Mat_(mat)) + * if sub is not None: out[0] = sub.mat + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":575 + * FunctionBegin(b"MatGetDiagonalBlock_Python") + * cdef getDiagonalBlock = PyMat(mat).getDiagonalBlock + * if getDiagonalBlock is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.getdiagonalblock = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":582 + * mat.ops.getdiagonalblock = MatGetDiagonalBlock_Python + * return FunctionEnd() + * cdef Mat sub = getDiagonalBlock(Mat_(mat)) # <<<<<<<<<<<<<< + * if sub is not None: out[0] = sub.mat + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_getDiagonalBlock); + __pyx_t_15 = __pyx_v_getDiagonalBlock; __pyx_t_16 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { + __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(__pyx_t_16)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); + __Pyx_INCREF(__pyx_t_16); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_15, function); + } + } + __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(11, 582, __pyx_L1_error) + __pyx_v_sub = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":583 + * return FunctionEnd() + * cdef Mat sub = getDiagonalBlock(Mat_(mat)) + * if sub is not None: out[0] = sub.mat # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_4 = (((PyObject *)__pyx_v_sub) != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + __pyx_t_17 = __pyx_v_sub->mat; + (__pyx_v_out[0]) = __pyx_t_17; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":584 + * cdef Mat sub = getDiagonalBlock(Mat_(mat)) + * if sub is not None: out[0] = sub.mat + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatCreateSubMatrix_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":568 + * return FunctionEnd() + * + * cdef PetscErrorCode MatGetDiagonalBlock_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMat *out + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("petsc4py.PETSc.MatGetDiagonalBlock_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_getDiagonalBlock); + __Pyx_XDECREF((PyObject *)__pyx_v_sub); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":586 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCreateSubMatrix_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscIS row, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreateSubMatrix_Python(Mat __pyx_v_mat, IS __pyx_v_row, IS __pyx_v_col, MatReuse __pyx_v_op, Mat *__pyx_v_out) { + PyObject *__pyx_v_createSubMatrix = 0; + struct PyPetscMatObject *__pyx_v_sub = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + Mat __pyx_t_21; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatCreateSubMatrix_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":594 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCreateSubMatrix_Python") # <<<<<<<<<<<<<< + * cdef createSubMatrix = PyMat(mat).createSubMatrix + * if createSubMatrix is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatCreateSubMatrix_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":595 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCreateSubMatrix_Python") + * cdef createSubMatrix = PyMat(mat).createSubMatrix # <<<<<<<<<<<<<< + * if createSubMatrix is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_createSubMatrix); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_createSubMatrix = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":596 + * FunctionBegin(b"MatCreateSubMatrix_Python") + * cdef createSubMatrix = PyMat(mat).createSubMatrix + * if createSubMatrix is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.createsubmatrix = NULL + */ + __pyx_t_3 = (__pyx_v_createSubMatrix == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":597 + * cdef createSubMatrix = PyMat(mat).createSubMatrix + * if createSubMatrix is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.createsubmatrix = NULL + * CHKERR( MatCreateSubMatrix(mat, row, col, op, out) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":598 + * if createSubMatrix is None: + * try: + * mat.ops.createsubmatrix = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateSubMatrix(mat, row, col, op, out) ) + * finally: + */ + __pyx_v_mat->ops->createsubmatrix = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":599 + * try: + * mat.ops.createsubmatrix = NULL + * CHKERR( MatCreateSubMatrix(mat, row, col, op, out) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.createsubmatrix = MatCreateSubMatrix_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateSubMatrix(__pyx_v_mat, __pyx_v_row, __pyx_v_col, __pyx_v_op, __pyx_v_out)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 599, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":601 + * CHKERR( MatCreateSubMatrix(mat, row, col, op, out) ) + * finally: + * mat.ops.createsubmatrix = MatCreateSubMatrix_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * cdef Mat sub = None + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->createsubmatrix = __pyx_f_8petsc4py_5PETSc_MatCreateSubMatrix_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->createsubmatrix = __pyx_f_8petsc4py_5PETSc_MatCreateSubMatrix_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":602 + * finally: + * mat.ops.createsubmatrix = MatCreateSubMatrix_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * cdef Mat sub = None + * if op == MAT_IGNORE_MATRIX: + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":596 + * FunctionBegin(b"MatCreateSubMatrix_Python") + * cdef createSubMatrix = PyMat(mat).createSubMatrix + * if createSubMatrix is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.createsubmatrix = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":603 + * mat.ops.createsubmatrix = MatCreateSubMatrix_Python + * return FunctionEnd() + * cdef Mat sub = None # <<<<<<<<<<<<<< + * if op == MAT_IGNORE_MATRIX: + * sub = None + */ + __Pyx_INCREF(Py_None); + __pyx_v_sub = ((struct PyPetscMatObject *)Py_None); + + /* "petsc4py/PETSc/libpetsc4py.pyx":604 + * return FunctionEnd() + * cdef Mat sub = None + * if op == MAT_IGNORE_MATRIX: # <<<<<<<<<<<<<< + * sub = None + * elif op == MAT_INITIAL_MATRIX: + */ + __pyx_t_4 = ((__pyx_v_op == MAT_IGNORE_MATRIX) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":605 + * cdef Mat sub = None + * if op == MAT_IGNORE_MATRIX: + * sub = None # <<<<<<<<<<<<<< + * elif op == MAT_INITIAL_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + */ + __Pyx_INCREF(Py_None); + __Pyx_DECREF_SET(__pyx_v_sub, ((struct PyPetscMatObject *)Py_None)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":604 + * return FunctionEnd() + * cdef Mat sub = None + * if op == MAT_IGNORE_MATRIX: # <<<<<<<<<<<<<< + * sub = None + * elif op == MAT_INITIAL_MATRIX: + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":606 + * if op == MAT_IGNORE_MATRIX: + * sub = None + * elif op == MAT_INITIAL_MATRIX: # <<<<<<<<<<<<<< + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + * if sub is not None: + */ + __pyx_t_4 = ((__pyx_v_op == MAT_INITIAL_MATRIX) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":607 + * sub = None + * elif op == MAT_INITIAL_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) # <<<<<<<<<<<<<< + * if sub is not None: + * addRef(sub.mat) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_IS_(__pyx_v_row)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_IS_(__pyx_v_col)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF(__pyx_v_createSubMatrix); + __pyx_t_17 = __pyx_v_createSubMatrix; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_17, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16, Py_None}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16, Py_None}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + { + __pyx_t_19 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_7, __pyx_t_16); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_7, Py_None); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(11, 607, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_sub, ((struct PyPetscMatObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":608 + * elif op == MAT_INITIAL_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + * if sub is not None: # <<<<<<<<<<<<<< + * addRef(sub.mat) + * elif op == MAT_REUSE_MATRIX: + */ + __pyx_t_4 = (((PyObject *)__pyx_v_sub) != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":609 + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + * if sub is not None: + * addRef(sub.mat) # <<<<<<<<<<<<<< + * elif op == MAT_REUSE_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_sub->mat); + + /* "petsc4py/PETSc/libpetsc4py.pyx":608 + * elif op == MAT_INITIAL_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + * if sub is not None: # <<<<<<<<<<<<<< + * addRef(sub.mat) + * elif op == MAT_REUSE_MATRIX: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":606 + * if op == MAT_IGNORE_MATRIX: + * sub = None + * elif op == MAT_INITIAL_MATRIX: # <<<<<<<<<<<<<< + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), None) + * if sub is not None: + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":610 + * if sub is not None: + * addRef(sub.mat) + * elif op == MAT_REUSE_MATRIX: # <<<<<<<<<<<<<< + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + * if sub is not None: + */ + __pyx_t_3 = ((__pyx_v_op == MAT_REUSE_MATRIX) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":611 + * addRef(sub.mat) + * elif op == MAT_REUSE_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) # <<<<<<<<<<<<<< + * if sub is not None: + * out[0] = sub.mat + */ + __pyx_t_17 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_17)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __pyx_t_19 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_IS_(__pyx_v_row)); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_IS_(__pyx_v_col)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_((__pyx_v_out[0]))); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_INCREF(__pyx_v_createSubMatrix); + __pyx_t_1 = __pyx_v_createSubMatrix; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_17, __pyx_t_19, __pyx_t_16, __pyx_t_15}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) { + PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_17, __pyx_t_19, __pyx_t_16, __pyx_t_15}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + } else + #endif + { + __pyx_t_20 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_17); + PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_7, __pyx_t_17); + __Pyx_GIVEREF(__pyx_t_19); + PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_7, __pyx_t_19); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_7, __pyx_t_16); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_7, __pyx_t_15); + __pyx_t_17 = 0; + __pyx_t_19 = 0; + __pyx_t_16 = 0; + __pyx_t_15 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + } + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(11, 611, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_sub, ((struct PyPetscMatObject *)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":610 + * if sub is not None: + * addRef(sub.mat) + * elif op == MAT_REUSE_MATRIX: # <<<<<<<<<<<<<< + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + * if sub is not None: + */ + } + __pyx_L9:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":612 + * elif op == MAT_REUSE_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + * if sub is not None: # <<<<<<<<<<<<<< + * out[0] = sub.mat + * return FunctionEnd() + */ + __pyx_t_3 = (((PyObject *)__pyx_v_sub) != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":613 + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + * if sub is not None: + * out[0] = sub.mat # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_21 = __pyx_v_sub->mat; + (__pyx_v_out[0]) = __pyx_t_21; + + /* "petsc4py/PETSc/libpetsc4py.pyx":612 + * elif op == MAT_REUSE_MATRIX: + * sub = createSubMatrix(Mat_(mat), IS_(row), IS_(col), Mat_(out[0])) + * if sub is not None: # <<<<<<<<<<<<<< + * out[0] = sub.mat + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":614 + * if sub is not None: + * out[0] = sub.mat + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSetOption_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":586 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCreateSubMatrix_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscIS row, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("petsc4py.PETSc.MatCreateSubMatrix_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_createSubMatrix); + __Pyx_XDECREF((PyObject *)__pyx_v_sub); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":616 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetOption_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatOption op, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetOption_Python(Mat __pyx_v_mat, MatOption __pyx_v_op, PetscBool __pyx_v_flag) { + PyObject *__pyx_v_setOption = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSetOption_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":622 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetOption_Python") # <<<<<<<<<<<<<< + * cdef setOption = PyMat(mat).setOption + * if setOption is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSetOption_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":623 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetOption_Python") + * cdef setOption = PyMat(mat).setOption # <<<<<<<<<<<<<< + * if setOption is not None: + * setOption(Mat_(mat), op, (flag)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setOption); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setOption = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":624 + * FunctionBegin(b"MatSetOption_Python") + * cdef setOption = PyMat(mat).setOption + * if setOption is not None: # <<<<<<<<<<<<<< + * setOption(Mat_(mat), op, (flag)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_setOption != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":625 + * cdef setOption = PyMat(mat).setOption + * if setOption is not None: + * setOption(Mat_(mat), op, (flag)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyInt_From_long(((long)__pyx_v_op)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBool_FromLong((((int)__pyx_v_flag) != 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_setOption); + __pyx_t_7 = __pyx_v_setOption; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":624 + * FunctionBegin(b"MatSetOption_Python") + * cdef setOption = PyMat(mat).setOption + * if setOption is not None: # <<<<<<<<<<<<<< + * setOption(Mat_(mat), op, (flag)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":626 + * if setOption is not None: + * setOption(Mat_(mat), op, (flag)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":616 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetOption_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatOption op, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatSetOption_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setOption); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":628 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetUp_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetUp_Python(Mat __pyx_v_mat) { + PetscInt __pyx_v_rbs; + PetscInt __pyx_v_cbs; + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":632 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetUp_Python") # <<<<<<<<<<<<<< + * cdef PetscInt rbs = -1, cbs = -1 + * CHKERR( PetscLayoutGetBlockSize(mat.rmap, &rbs) ) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":633 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetUp_Python") + * cdef PetscInt rbs = -1, cbs = -1 # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutGetBlockSize(mat.rmap, &rbs) ) + * CHKERR( PetscLayoutGetBlockSize(mat.cmap, &cbs) ) + */ + __pyx_v_rbs = -1L; + __pyx_v_cbs = -1L; + + /* "petsc4py/PETSc/libpetsc4py.pyx":634 + * FunctionBegin(b"MatSetUp_Python") + * cdef PetscInt rbs = -1, cbs = -1 + * CHKERR( PetscLayoutGetBlockSize(mat.rmap, &rbs) ) # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutGetBlockSize(mat.cmap, &cbs) ) + * if rbs == -1: rbs = 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutGetBlockSize(__pyx_v_mat->rmap, (&__pyx_v_rbs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 634, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":635 + * cdef PetscInt rbs = -1, cbs = -1 + * CHKERR( PetscLayoutGetBlockSize(mat.rmap, &rbs) ) + * CHKERR( PetscLayoutGetBlockSize(mat.cmap, &cbs) ) # <<<<<<<<<<<<<< + * if rbs == -1: rbs = 1 + * if cbs == -1: cbs = rbs + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutGetBlockSize(__pyx_v_mat->cmap, (&__pyx_v_cbs))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 635, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":636 + * CHKERR( PetscLayoutGetBlockSize(mat.rmap, &rbs) ) + * CHKERR( PetscLayoutGetBlockSize(mat.cmap, &cbs) ) + * if rbs == -1: rbs = 1 # <<<<<<<<<<<<<< + * if cbs == -1: cbs = rbs + * CHKERR( PetscLayoutSetBlockSize(mat.rmap, rbs) ) + */ + __pyx_t_2 = ((__pyx_v_rbs == -1L) != 0); + if (__pyx_t_2) { + __pyx_v_rbs = 1; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":637 + * CHKERR( PetscLayoutGetBlockSize(mat.cmap, &cbs) ) + * if rbs == -1: rbs = 1 + * if cbs == -1: cbs = rbs # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutSetBlockSize(mat.rmap, rbs) ) + * CHKERR( PetscLayoutSetBlockSize(mat.cmap, cbs) ) + */ + __pyx_t_2 = ((__pyx_v_cbs == -1L) != 0); + if (__pyx_t_2) { + __pyx_v_cbs = __pyx_v_rbs; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":638 + * if rbs == -1: rbs = 1 + * if cbs == -1: cbs = rbs + * CHKERR( PetscLayoutSetBlockSize(mat.rmap, rbs) ) # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutSetBlockSize(mat.cmap, cbs) ) + * CHKERR( PetscLayoutSetUp(mat.rmap) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutSetBlockSize(__pyx_v_mat->rmap, __pyx_v_rbs)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 638, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":639 + * if cbs == -1: cbs = rbs + * CHKERR( PetscLayoutSetBlockSize(mat.rmap, rbs) ) + * CHKERR( PetscLayoutSetBlockSize(mat.cmap, cbs) ) # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutSetUp(mat.rmap) ) + * CHKERR( PetscLayoutSetUp(mat.cmap) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutSetBlockSize(__pyx_v_mat->cmap, __pyx_v_cbs)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 639, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":640 + * CHKERR( PetscLayoutSetBlockSize(mat.rmap, rbs) ) + * CHKERR( PetscLayoutSetBlockSize(mat.cmap, cbs) ) + * CHKERR( PetscLayoutSetUp(mat.rmap) ) # <<<<<<<<<<<<<< + * CHKERR( PetscLayoutSetUp(mat.cmap) ) + * mat.preallocated = PETSC_TRUE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutSetUp(__pyx_v_mat->rmap)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 640, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":641 + * CHKERR( PetscLayoutSetBlockSize(mat.cmap, cbs) ) + * CHKERR( PetscLayoutSetUp(mat.rmap) ) + * CHKERR( PetscLayoutSetUp(mat.cmap) ) # <<<<<<<<<<<<<< + * mat.preallocated = PETSC_TRUE + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscLayoutSetUp(__pyx_v_mat->cmap)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 641, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":642 + * CHKERR( PetscLayoutSetUp(mat.rmap) ) + * CHKERR( PetscLayoutSetUp(mat.cmap) ) + * mat.preallocated = PETSC_TRUE # <<<<<<<<<<<<<< + * # + * cdef char name[2048] + */ + __pyx_v_mat->preallocated = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":645 + * # + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PyMat(mat).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":646 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyMat(mat).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(mat), b"-mat_python_type", + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = (((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_3)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":647 + * cdef PetscBool found = PETSC_FALSE + * if PyMat(mat).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(mat), b"-mat_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_mat), ((char *)"-mat_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 647, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":650 + * getPrefix(mat), b"-mat_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * if PyMat(mat).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_2; + __pyx_L7_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":651 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) # <<<<<<<<<<<<<< + * if PyMat(mat).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_MatPythonSetType_PYTHON(__pyx_v_mat, __pyx_v_name); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 651, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 651, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":650 + * getPrefix(mat), b"-mat_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * if PyMat(mat).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":646 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyMat(mat).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(mat), b"-mat_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":652 + * if found and name[0]: + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * if PyMat(mat).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = (((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)__pyx_t_3)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_2 = (__pyx_t_4 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":653 + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * if PyMat(mat).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * MatPythonSetType(mat, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * MatPythonSetType(mat, \"[package.]module.class\")\n * MatSetFromOptions(mat) and pass option -mat_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":652 + * if found and name[0]: + * CHKERR( MatPythonSetType_PYTHON(mat, name) ) + * if PyMat(mat).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":659 + * "-mat_python_type [package.]module.class") + * # + * cdef setUp = PyMat(mat).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(Mat_(mat)) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":660 + * # + * cdef setUp = PyMat(mat).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_2 = (__pyx_v_setUp != Py_None); + __pyx_t_4 = (__pyx_t_2 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":661 + * cdef setUp = PyMat(mat).setUp + * if setUp is not None: + * setUp(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 661, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":660 + * # + * cdef setUp = PyMat(mat).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(Mat_(mat)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":662 + * if setUp is not None: + * setUp(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatAssemblyBegin_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":628 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetUp_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.MatSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":664 + * return FunctionEnd() + * + * cdef PetscErrorCode MatAssemblyBegin_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatAssemblyType at, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatAssemblyBegin_Python(Mat __pyx_v_mat, MatAssemblyType __pyx_v_at) { + PyObject *__pyx_v_assembly = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatAssemblyBegin_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":669 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatAssemblyBegin_Python") # <<<<<<<<<<<<<< + * cdef assembly = PyMat(mat).assemblyBegin + * if assembly is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatAssemblyBegin_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":670 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatAssemblyBegin_Python") + * cdef assembly = PyMat(mat).assemblyBegin # <<<<<<<<<<<<<< + * if assembly is not None: + * assembly(Mat_(mat), at) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_assemblyBegin); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 670, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_assembly = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":671 + * FunctionBegin(b"MatAssemblyBegin_Python") + * cdef assembly = PyMat(mat).assemblyBegin + * if assembly is not None: # <<<<<<<<<<<<<< + * assembly(Mat_(mat), at) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_assembly != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":672 + * cdef assembly = PyMat(mat).assemblyBegin + * if assembly is not None: + * assembly(Mat_(mat), at) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyInt_From_long(((long)__pyx_v_at)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_assembly); + __pyx_t_6 = __pyx_v_assembly; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":671 + * FunctionBegin(b"MatAssemblyBegin_Python") + * cdef assembly = PyMat(mat).assemblyBegin + * if assembly is not None: # <<<<<<<<<<<<<< + * assembly(Mat_(mat), at) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":673 + * if assembly is not None: + * assembly(Mat_(mat), at) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatAssemblyEnd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":664 + * return FunctionEnd() + * + * cdef PetscErrorCode MatAssemblyBegin_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatAssemblyType at, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatAssemblyBegin_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_assembly); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":675 + * return FunctionEnd() + * + * cdef PetscErrorCode MatAssemblyEnd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatAssemblyType at, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatAssemblyEnd_Python(Mat __pyx_v_mat, MatAssemblyType __pyx_v_at) { + PyObject *__pyx_v_assembly = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatAssemblyEnd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":680 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatAssemblyEnd_Python") # <<<<<<<<<<<<<< + * cdef assembly = PyMat(mat).assemblyEnd + * if assembly is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatAssemblyEnd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":681 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatAssemblyEnd_Python") + * cdef assembly = PyMat(mat).assemblyEnd # <<<<<<<<<<<<<< + * if assembly is None: + * assembly = PyMat(mat).assembly + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_assemblyEnd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_assembly = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":682 + * FunctionBegin(b"MatAssemblyEnd_Python") + * cdef assembly = PyMat(mat).assemblyEnd + * if assembly is None: # <<<<<<<<<<<<<< + * assembly = PyMat(mat).assembly + * if assembly is not None: + */ + __pyx_t_3 = (__pyx_v_assembly == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":683 + * cdef assembly = PyMat(mat).assemblyEnd + * if assembly is None: + * assembly = PyMat(mat).assembly # <<<<<<<<<<<<<< + * if assembly is not None: + * assembly(Mat_(mat), at) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_assembly); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_assembly, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":682 + * FunctionBegin(b"MatAssemblyEnd_Python") + * cdef assembly = PyMat(mat).assemblyEnd + * if assembly is None: # <<<<<<<<<<<<<< + * assembly = PyMat(mat).assembly + * if assembly is not None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":684 + * if assembly is None: + * assembly = PyMat(mat).assembly + * if assembly is not None: # <<<<<<<<<<<<<< + * assembly(Mat_(mat), at) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_assembly != Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":685 + * assembly = PyMat(mat).assembly + * if assembly is not None: + * assembly(Mat_(mat), at) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = __Pyx_PyInt_From_long(((long)__pyx_v_at)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_assembly); + __pyx_t_6 = __pyx_v_assembly; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_5}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_2 = 0; + __pyx_t_5 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":684 + * if assembly is None: + * assembly = PyMat(mat).assembly + * if assembly is not None: # <<<<<<<<<<<<<< + * assembly(Mat_(mat), at) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":686 + * if assembly is not None: + * assembly(Mat_(mat), at) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatZeroEntries_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":675 + * return FunctionEnd() + * + * cdef PetscErrorCode MatAssemblyEnd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatAssemblyType at, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatAssemblyEnd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_assembly); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":688 + * return FunctionEnd() + * + * cdef PetscErrorCode MatZeroEntries_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatZeroEntries_Python(Mat __pyx_v_mat) { + PyObject *__pyx_v_zeroEntries = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatZeroEntries_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":692 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatZeroEntries_Python") # <<<<<<<<<<<<<< + * cdef zeroEntries = PyMat(mat).zeroEntries + * if zeroEntries is None: return UNSUPPORTED(b"zeroEntries") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatZeroEntries_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":693 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatZeroEntries_Python") + * cdef zeroEntries = PyMat(mat).zeroEntries # <<<<<<<<<<<<<< + * if zeroEntries is None: return UNSUPPORTED(b"zeroEntries") + * zeroEntries(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeroEntries); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_zeroEntries = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":694 + * FunctionBegin(b"MatZeroEntries_Python") + * cdef zeroEntries = PyMat(mat).zeroEntries + * if zeroEntries is None: return UNSUPPORTED(b"zeroEntries") # <<<<<<<<<<<<<< + * zeroEntries(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_zeroEntries == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"zeroEntries")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":695 + * cdef zeroEntries = PyMat(mat).zeroEntries + * if zeroEntries is None: return UNSUPPORTED(b"zeroEntries") + * zeroEntries(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_zeroEntries); + __pyx_t_5 = __pyx_v_zeroEntries; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 695, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":696 + * if zeroEntries is None: return UNSUPPORTED(b"zeroEntries") + * zeroEntries(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatZeroRowsColumns_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":688 + * return FunctionEnd() + * + * cdef PetscErrorCode MatZeroEntries_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.MatZeroEntries_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_zeroEntries); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":698 + * return FunctionEnd() + * + * cdef PetscErrorCode MatZeroRowsColumns_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscInt numRows, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatZeroRowsColumns_Python(Mat __pyx_v_mat, PetscInt __pyx_v_numRows, PetscInt const *__pyx_v_rows, PetscScalar __pyx_v_diag, Vec __pyx_v_x, Vec __pyx_v_b) { + PyObject *__pyx_v_zeroRowsColumns = 0; + PyArrayObject *__pyx_v_pyrows = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatZeroRowsColumns_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":707 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatZeroRowsColumns_Python") # <<<<<<<<<<<<<< + * cdef zeroRowsColumns = PyMat(mat).zeroRowsColumns + * if zeroRowsColumns is None: return UNSUPPORTED(b"zeroRowsColumns") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatZeroRowsColumns_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":708 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatZeroRowsColumns_Python") + * cdef zeroRowsColumns = PyMat(mat).zeroRowsColumns # <<<<<<<<<<<<<< + * if zeroRowsColumns is None: return UNSUPPORTED(b"zeroRowsColumns") + * cdef ndarray pyrows = array_i(numRows, rows) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeroRowsColumns); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 708, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_zeroRowsColumns = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":709 + * FunctionBegin(b"MatZeroRowsColumns_Python") + * cdef zeroRowsColumns = PyMat(mat).zeroRowsColumns + * if zeroRowsColumns is None: return UNSUPPORTED(b"zeroRowsColumns") # <<<<<<<<<<<<<< + * cdef ndarray pyrows = array_i(numRows, rows) + * zeroRowsColumns(Mat_(mat), pyrows, toScalar(diag), Vec_(x), Vec_(b)) + */ + __pyx_t_3 = (__pyx_v_zeroRowsColumns == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"zeroRowsColumns")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":710 + * cdef zeroRowsColumns = PyMat(mat).zeroRowsColumns + * if zeroRowsColumns is None: return UNSUPPORTED(b"zeroRowsColumns") + * cdef ndarray pyrows = array_i(numRows, rows) # <<<<<<<<<<<<<< + * zeroRowsColumns(Mat_(mat), pyrows, toScalar(diag), Vec_(x), Vec_(b)) + * return FunctionEnd() + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_array_i(__pyx_v_numRows, __pyx_v_rows)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 710, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_pyrows = ((PyArrayObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":711 + * if zeroRowsColumns is None: return UNSUPPORTED(b"zeroRowsColumns") + * cdef ndarray pyrows = array_i(numRows, rows) + * zeroRowsColumns(Mat_(mat), pyrows, toScalar(diag), Vec_(x), Vec_(b)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_diag); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_zeroRowsColumns); + __pyx_t_8 = __pyx_v_zeroRowsColumns; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_1, ((PyObject *)__pyx_v_pyrows), __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[6] = {__pyx_t_9, __pyx_t_1, ((PyObject *)__pyx_v_pyrows), __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 5+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(5+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_1); + __Pyx_INCREF(((PyObject *)__pyx_v_pyrows)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_pyrows)); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, ((PyObject *)__pyx_v_pyrows)); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_10, __pyx_t_7); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":712 + * cdef ndarray pyrows = array_i(numRows, rows) + * zeroRowsColumns(Mat_(mat), pyrows, toScalar(diag), Vec_(x), Vec_(b)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatScale_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":698 + * return FunctionEnd() + * + * cdef PetscErrorCode MatZeroRowsColumns_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscInt numRows, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.MatZeroRowsColumns_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_zeroRowsColumns); + __Pyx_XDECREF((PyObject *)__pyx_v_pyrows); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":714 + * return FunctionEnd() + * + * cdef PetscErrorCode MatScale_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscScalar s, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatScale_Python(Mat __pyx_v_mat, PetscScalar __pyx_v_s) { + PyObject *__pyx_v_scale = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatScale_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":719 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatScale_Python") # <<<<<<<<<<<<<< + * cdef scale = PyMat(mat).scale + * if scale is None: return UNSUPPORTED(b"scale") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatScale_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":720 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatScale_Python") + * cdef scale = PyMat(mat).scale # <<<<<<<<<<<<<< + * if scale is None: return UNSUPPORTED(b"scale") + * scale(Mat_(mat), toScalar(s)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_scale); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 720, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_scale = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":721 + * FunctionBegin(b"MatScale_Python") + * cdef scale = PyMat(mat).scale + * if scale is None: return UNSUPPORTED(b"scale") # <<<<<<<<<<<<<< + * scale(Mat_(mat), toScalar(s)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_scale == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"scale")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":722 + * cdef scale = PyMat(mat).scale + * if scale is None: return UNSUPPORTED(b"scale") + * scale(Mat_(mat), toScalar(s)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_scale); + __pyx_t_6 = __pyx_v_scale; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":723 + * if scale is None: return UNSUPPORTED(b"scale") + * scale(Mat_(mat), toScalar(s)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatShift_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":714 + * return FunctionEnd() + * + * cdef PetscErrorCode MatScale_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscScalar s, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatScale_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_scale); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":725 + * return FunctionEnd() + * + * cdef PetscErrorCode MatShift_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscScalar s, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatShift_Python(Mat __pyx_v_mat, PetscScalar __pyx_v_s) { + PyObject *__pyx_v_shift = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatShift_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":730 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatShift_Python") # <<<<<<<<<<<<<< + * cdef shift = PyMat(mat).shift + * if shift is None: return UNSUPPORTED(b"shift") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatShift_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":731 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatShift_Python") + * cdef shift = PyMat(mat).shift # <<<<<<<<<<<<<< + * if shift is None: return UNSUPPORTED(b"shift") + * shift(Mat_(mat), toScalar(s)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_shift); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 731, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_shift = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":732 + * FunctionBegin(b"MatShift_Python") + * cdef shift = PyMat(mat).shift + * if shift is None: return UNSUPPORTED(b"shift") # <<<<<<<<<<<<<< + * shift(Mat_(mat), toScalar(s)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_shift == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"shift")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":733 + * cdef shift = PyMat(mat).shift + * if shift is None: return UNSUPPORTED(b"shift") + * shift(Mat_(mat), toScalar(s)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toScalar(__pyx_v_s); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_shift); + __pyx_t_6 = __pyx_v_shift; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 733, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":734 + * if shift is None: return UNSUPPORTED(b"shift") + * shift(Mat_(mat), toScalar(s)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatCreateVecs_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":725 + * return FunctionEnd() + * + * cdef PetscErrorCode MatShift_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscScalar s, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatShift_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_shift); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":736 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCreateVecs_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec *x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatCreateVecs_Python(Mat __pyx_v_mat, Vec *__pyx_v_x, Vec *__pyx_v_y) { + PyObject *__pyx_v_createVecs = 0; + struct PyPetscVecObject *__pyx_v_u = 0; + struct PyPetscVecObject *__pyx_v_v = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *(*__pyx_t_17)(PyObject *); + Vec __pyx_t_18; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatCreateVecs_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":742 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCreateVecs_Python") # <<<<<<<<<<<<<< + * cdef createVecs = PyMat(mat).createVecs + * if createVecs is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatCreateVecs_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":743 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatCreateVecs_Python") + * cdef createVecs = PyMat(mat).createVecs # <<<<<<<<<<<<<< + * if createVecs is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_createVecs); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_createVecs = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":744 + * FunctionBegin(b"MatCreateVecs_Python") + * cdef createVecs = PyMat(mat).createVecs + * if createVecs is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.getvecs = NULL + */ + __pyx_t_3 = (__pyx_v_createVecs == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":745 + * cdef createVecs = PyMat(mat).createVecs + * if createVecs is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.getvecs = NULL + * CHKERR( MatCreateVecs(mat, x, y) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":746 + * if createVecs is None: + * try: + * mat.ops.getvecs = NULL # <<<<<<<<<<<<<< + * CHKERR( MatCreateVecs(mat, x, y) ) + * finally: + */ + __pyx_v_mat->ops->getvecs = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":747 + * try: + * mat.ops.getvecs = NULL + * CHKERR( MatCreateVecs(mat, x, y) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.getvecs = MatCreateVecs_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatCreateVecs(__pyx_v_mat, __pyx_v_x, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 747, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":749 + * CHKERR( MatCreateVecs(mat, x, y) ) + * finally: + * mat.ops.getvecs = MatCreateVecs_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * cdef Vec u, v + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->getvecs = __pyx_f_8petsc4py_5PETSc_MatCreateVecs_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->getvecs = __pyx_f_8petsc4py_5PETSc_MatCreateVecs_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":750 + * finally: + * mat.ops.getvecs = MatCreateVecs_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * cdef Vec u, v + * u, v = createVecs(Mat_(mat)) + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":744 + * FunctionBegin(b"MatCreateVecs_Python") + * cdef createVecs = PyMat(mat).createVecs + * if createVecs is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.getvecs = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":752 + * return FunctionEnd() + * cdef Vec u, v + * u, v = createVecs(Mat_(mat)) # <<<<<<<<<<<<<< + * if x != NULL: + * x[0] = u.vec + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_createVecs); + __pyx_t_15 = __pyx_v_createVecs; __pyx_t_16 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) { + __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_15); + if (likely(__pyx_t_16)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15); + __Pyx_INCREF(__pyx_t_16); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_15, function); + } + } + __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_16, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 752, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_15 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_16 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 752, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_17 = Py_TYPE(__pyx_t_16)->tp_iternext; + index = 0; __pyx_t_15 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_15)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + index = 1; __pyx_t_1 = __pyx_t_17(__pyx_t_16); if (unlikely(!__pyx_t_1)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_17(__pyx_t_16), 2) < 0) __PYX_ERR(11, 752, __pyx_L1_error) + __pyx_t_17 = NULL; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __pyx_t_17 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 752, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(11, 752, __pyx_L1_error) + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8petsc4py_5PETSc_Vec))))) __PYX_ERR(11, 752, __pyx_L1_error) + __pyx_v_u = ((struct PyPetscVecObject *)__pyx_t_15); + __pyx_t_15 = 0; + __pyx_v_v = ((struct PyPetscVecObject *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":753 + * cdef Vec u, v + * u, v = createVecs(Mat_(mat)) + * if x != NULL: # <<<<<<<<<<<<<< + * x[0] = u.vec + * u.vec = NULL + */ + __pyx_t_4 = ((__pyx_v_x != NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":754 + * u, v = createVecs(Mat_(mat)) + * if x != NULL: + * x[0] = u.vec # <<<<<<<<<<<<<< + * u.vec = NULL + * if y != NULL: + */ + __pyx_t_18 = __pyx_v_u->vec; + (__pyx_v_x[0]) = __pyx_t_18; + + /* "petsc4py/PETSc/libpetsc4py.pyx":755 + * if x != NULL: + * x[0] = u.vec + * u.vec = NULL # <<<<<<<<<<<<<< + * if y != NULL: + * y[0] = v.vec + */ + __pyx_v_u->vec = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":753 + * cdef Vec u, v + * u, v = createVecs(Mat_(mat)) + * if x != NULL: # <<<<<<<<<<<<<< + * x[0] = u.vec + * u.vec = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":756 + * x[0] = u.vec + * u.vec = NULL + * if y != NULL: # <<<<<<<<<<<<<< + * y[0] = v.vec + * v.vec = NULL + */ + __pyx_t_4 = ((__pyx_v_y != NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":757 + * u.vec = NULL + * if y != NULL: + * y[0] = v.vec # <<<<<<<<<<<<<< + * v.vec = NULL + * return FunctionEnd() + */ + __pyx_t_18 = __pyx_v_v->vec; + (__pyx_v_y[0]) = __pyx_t_18; + + /* "petsc4py/PETSc/libpetsc4py.pyx":758 + * if y != NULL: + * y[0] = v.vec + * v.vec = NULL # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_v_v->vec = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":756 + * x[0] = u.vec + * u.vec = NULL + * if y != NULL: # <<<<<<<<<<<<<< + * y[0] = v.vec + * v.vec = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":759 + * y[0] = v.vec + * v.vec = NULL + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMult_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":736 + * return FunctionEnd() + * + * cdef PetscErrorCode MatCreateVecs_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec *x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_AddTraceback("petsc4py.PETSc.MatCreateVecs_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_createVecs); + __Pyx_XDECREF((PyObject *)__pyx_v_u); + __Pyx_XDECREF((PyObject *)__pyx_v_v); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":761 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMult_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMult_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_mult = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMult_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":767 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMult_Python") # <<<<<<<<<<<<<< + * cdef mult = PyMat(mat).mult + * if mult is None: return UNSUPPORTED(b"mult") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMult_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":768 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMult_Python") + * cdef mult = PyMat(mat).mult # <<<<<<<<<<<<<< + * if mult is None: return UNSUPPORTED(b"mult") + * mult(Mat_(mat), Vec_(x), Vec_(y)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_mult); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_mult = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":769 + * FunctionBegin(b"MatMult_Python") + * cdef mult = PyMat(mat).mult + * if mult is None: return UNSUPPORTED(b"mult") # <<<<<<<<<<<<<< + * mult(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_mult == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"mult")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":770 + * cdef mult = PyMat(mat).mult + * if mult is None: return UNSUPPORTED(b"mult") + * mult(Mat_(mat), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_mult); + __pyx_t_7 = __pyx_v_mult; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":771 + * if mult is None: return UNSUPPORTED(b"mult") + * mult(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultTranspose_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":761 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMult_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatMult_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mult); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":773 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultTranspose_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultTranspose_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_multTranspose = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultTranspose_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":779 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultTranspose_Python") # <<<<<<<<<<<<<< + * cdef multTranspose = PyMat(mat).multTranspose + * if multTranspose is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultTranspose_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":780 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultTranspose_Python") + * cdef multTranspose = PyMat(mat).multTranspose # <<<<<<<<<<<<<< + * if multTranspose is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multTranspose); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multTranspose = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":781 + * FunctionBegin(b"MatMultTranspose_Python") + * cdef multTranspose = PyMat(mat).multTranspose + * if multTranspose is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multtranspose = NULL + */ + __pyx_t_3 = (__pyx_v_multTranspose == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":782 + * cdef multTranspose = PyMat(mat).multTranspose + * if multTranspose is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.multtranspose = NULL + * CHKERR( MatMultTranspose(mat, x, y) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":783 + * if multTranspose is None: + * try: + * mat.ops.multtranspose = NULL # <<<<<<<<<<<<<< + * CHKERR( MatMultTranspose(mat, x, y) ) + * finally: + */ + __pyx_v_mat->ops->multtranspose = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":784 + * try: + * mat.ops.multtranspose = NULL + * CHKERR( MatMultTranspose(mat, x, y) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.multtranspose = MatMultTranspose_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultTranspose(__pyx_v_mat, __pyx_v_x, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 784, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":786 + * CHKERR( MatMultTranspose(mat, x, y) ) + * finally: + * mat.ops.multtranspose = MatMultTranspose_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * multTranspose(Mat_(mat), Vec_(x), Vec_(y)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->multtranspose = __pyx_f_8petsc4py_5PETSc_MatMultTranspose_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->multtranspose = __pyx_f_8petsc4py_5PETSc_MatMultTranspose_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":787 + * finally: + * mat.ops.multtranspose = MatMultTranspose_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * multTranspose(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":781 + * FunctionBegin(b"MatMultTranspose_Python") + * cdef multTranspose = PyMat(mat).multTranspose + * if multTranspose is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multtranspose = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":788 + * mat.ops.multtranspose = MatMultTranspose_Python + * return FunctionEnd() + * multTranspose(Mat_(mat), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF(__pyx_v_multTranspose); + __pyx_t_17 = __pyx_v_multTranspose; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_17, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + { + __pyx_t_19 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_7, __pyx_t_16); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":789 + * return FunctionEnd() + * multTranspose(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultHermitian_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":773 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultTranspose_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultTranspose_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multTranspose); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":791 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultHermitian_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultHermitian_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_multHermitian = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultHermitian_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":797 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultHermitian_Python") # <<<<<<<<<<<<<< + * cdef multHermitian = PyMat(mat).multHermitian + * if multHermitian is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultHermitian_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":798 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultHermitian_Python") + * cdef multHermitian = PyMat(mat).multHermitian # <<<<<<<<<<<<<< + * if multHermitian is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multHermitian); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 798, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multHermitian = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":799 + * FunctionBegin(b"MatMultHermitian_Python") + * cdef multHermitian = PyMat(mat).multHermitian + * if multHermitian is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multhermitian = NULL + */ + __pyx_t_3 = (__pyx_v_multHermitian == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":800 + * cdef multHermitian = PyMat(mat).multHermitian + * if multHermitian is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.multhermitian = NULL + * CHKERR( MatMultHermitian(mat, x, y) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":801 + * if multHermitian is None: + * try: + * mat.ops.multhermitian = NULL # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitian(mat, x, y) ) + * finally: + */ + __pyx_v_mat->ops->multhermitiantranspose = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":802 + * try: + * mat.ops.multhermitian = NULL + * CHKERR( MatMultHermitian(mat, x, y) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.multhermitian = MatMultHermitian_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultHermitianTranspose(__pyx_v_mat, __pyx_v_x, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 802, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":804 + * CHKERR( MatMultHermitian(mat, x, y) ) + * finally: + * mat.ops.multhermitian = MatMultHermitian_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * multHermitian(Mat_(mat), Vec_(x), Vec_(y)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->multhermitiantranspose = __pyx_f_8petsc4py_5PETSc_MatMultHermitian_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->multhermitiantranspose = __pyx_f_8petsc4py_5PETSc_MatMultHermitian_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":805 + * finally: + * mat.ops.multhermitian = MatMultHermitian_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * multHermitian(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":799 + * FunctionBegin(b"MatMultHermitian_Python") + * cdef multHermitian = PyMat(mat).multHermitian + * if multHermitian is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multhermitian = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":806 + * mat.ops.multhermitian = MatMultHermitian_Python + * return FunctionEnd() + * multHermitian(Mat_(mat), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF(__pyx_v_multHermitian); + __pyx_t_17 = __pyx_v_multHermitian; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_17, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + { + __pyx_t_19 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_7, __pyx_t_16); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":807 + * return FunctionEnd() + * multHermitian(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultAdd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":791 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultHermitian_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultHermitian_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multHermitian); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":809 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultAdd_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_v, Vec __pyx_v_y) { + PyObject *__pyx_v_multAdd = 0; + Vec __pyx_v_t; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultAdd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":816 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultAdd_Python") # <<<<<<<<<<<<<< + * cdef multAdd = PyMat(mat).multAdd + * cdef PetscVec t = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultAdd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":817 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultAdd_Python") + * cdef multAdd = PyMat(mat).multAdd # <<<<<<<<<<<<<< + * cdef PetscVec t = NULL + * if multAdd is None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multAdd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multAdd = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":818 + * FunctionBegin(b"MatMultAdd_Python") + * cdef multAdd = PyMat(mat).multAdd + * cdef PetscVec t = NULL # <<<<<<<<<<<<<< + * if multAdd is None: + * if v == y: + */ + __pyx_v_t = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":819 + * cdef multAdd = PyMat(mat).multAdd + * cdef PetscVec t = NULL + * if multAdd is None: # <<<<<<<<<<<<<< + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + */ + __pyx_t_3 = (__pyx_v_multAdd == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":820 + * cdef PetscVec t = NULL + * if multAdd is None: + * if v == y: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMult(mat, x, t) ) + */ + __pyx_t_4 = ((__pyx_v_v == __pyx_v_y) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":821 + * if multAdd is None: + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) # <<<<<<<<<<<<<< + * CHKERR( MatMult(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_y, (&__pyx_v_t))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 821, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":822 + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMult(mat, x, t) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(y, 1.0, t) ) + * CHKERR( VecDestroy(&t) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMult(__pyx_v_mat, __pyx_v_x, __pyx_v_t)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 822, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":823 + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMult(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&t) ) + * else: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_y, 1.0, __pyx_v_t)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 823, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":824 + * CHKERR( MatMult(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) + * CHKERR( VecDestroy(&t) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatMult(mat, x, y) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_t))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 824, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":820 + * cdef PetscVec t = NULL + * if multAdd is None: + * if v == y: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMult(mat, x, t) ) + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":826 + * CHKERR( VecDestroy(&t) ) + * else: + * CHKERR( MatMult(mat, x, y) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMult(__pyx_v_mat, __pyx_v_x, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 826, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":827 + * else: + * CHKERR( MatMult(mat, x, y) ) + * CHKERR( VecAXPY(y, 1.0, v) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * if multAdd is None: return UNSUPPORTED(b"multAdd") + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_y, 1.0, __pyx_v_v)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 827, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":828 + * CHKERR( MatMult(mat, x, y) ) + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * if multAdd is None: return UNSUPPORTED(b"multAdd") + * multAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":819 + * cdef multAdd = PyMat(mat).multAdd + * cdef PetscVec t = NULL + * if multAdd is None: # <<<<<<<<<<<<<< + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":829 + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() + * if multAdd is None: return UNSUPPORTED(b"multAdd") # <<<<<<<<<<<<<< + * multAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_multAdd == Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"multAdd")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":830 + * return FunctionEnd() + * if multAdd is None: return UNSUPPORTED(b"multAdd") + * multAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_multAdd); + __pyx_t_9 = __pyx_v_multAdd; __pyx_t_10 = NULL; + __pyx_t_11 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); + __pyx_t_11 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_9)) { + PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_1, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 4+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { + PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_1, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 4+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + { + __pyx_t_12 = PyTuple_New(4+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + if (__pyx_t_10) { + __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_11, __pyx_t_8); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_8 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 830, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + } + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":831 + * if multAdd is None: return UNSUPPORTED(b"multAdd") + * multAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultTransposeAdd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":809 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultAdd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multAdd); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":833 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultTransposeAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultTransposeAdd_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_v, Vec __pyx_v_y) { + PyObject *__pyx_v_multTransposeAdd = 0; + Vec __pyx_v_t; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_t_11; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultTransposeAdd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":840 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultTransposeAdd_Python") # <<<<<<<<<<<<<< + * cdef multTransposeAdd = PyMat(mat).multTransposeAdd + * cdef PetscVec t = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultTransposeAdd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":841 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultTransposeAdd_Python") + * cdef multTransposeAdd = PyMat(mat).multTransposeAdd # <<<<<<<<<<<<<< + * cdef PetscVec t = NULL + * if multTransposeAdd is None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multTransposeAdd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multTransposeAdd = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":842 + * FunctionBegin(b"MatMultTransposeAdd_Python") + * cdef multTransposeAdd = PyMat(mat).multTransposeAdd + * cdef PetscVec t = NULL # <<<<<<<<<<<<<< + * if multTransposeAdd is None: + * if v == y: + */ + __pyx_v_t = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":843 + * cdef multTransposeAdd = PyMat(mat).multTransposeAdd + * cdef PetscVec t = NULL + * if multTransposeAdd is None: # <<<<<<<<<<<<<< + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + */ + __pyx_t_3 = (__pyx_v_multTransposeAdd == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":844 + * cdef PetscVec t = NULL + * if multTransposeAdd is None: + * if v == y: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMultTranspose(mat, x, t) ) + */ + __pyx_t_4 = ((__pyx_v_v == __pyx_v_y) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":845 + * if multTransposeAdd is None: + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) # <<<<<<<<<<<<<< + * CHKERR( MatMultTranspose(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_y, (&__pyx_v_t))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 845, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":846 + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMultTranspose(mat, x, t) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(y, 1.0, t) ) + * CHKERR( VecDestroy(&t) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultTranspose(__pyx_v_mat, __pyx_v_x, __pyx_v_t)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 846, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":847 + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMultTranspose(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) # <<<<<<<<<<<<<< + * CHKERR( VecDestroy(&t) ) + * else: + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_y, 1.0, __pyx_v_t)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 847, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":848 + * CHKERR( MatMultTranspose(mat, x, t) ) + * CHKERR( VecAXPY(y, 1.0, t) ) + * CHKERR( VecDestroy(&t) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( MatMultTranspose(mat, x, y) ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_t))); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 848, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":844 + * cdef PetscVec t = NULL + * if multTransposeAdd is None: + * if v == y: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(y, &t) ) + * CHKERR( MatMultTranspose(mat, x, t) ) + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":850 + * CHKERR( VecDestroy(&t) ) + * else: + * CHKERR( MatMultTranspose(mat, x, y) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() + */ + /*else*/ { + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultTranspose(__pyx_v_mat, __pyx_v_x, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 850, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":851 + * else: + * CHKERR( MatMultTranspose(mat, x, y) ) + * CHKERR( VecAXPY(y, 1.0, v) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * if multTransposeAdd is None: return UNSUPPORTED(b"multTransposeAdd") + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPY(__pyx_v_y, 1.0, __pyx_v_v)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 851, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":852 + * CHKERR( MatMultTranspose(mat, x, y) ) + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * if multTransposeAdd is None: return UNSUPPORTED(b"multTransposeAdd") + * multTransposeAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":843 + * cdef multTransposeAdd = PyMat(mat).multTransposeAdd + * cdef PetscVec t = NULL + * if multTransposeAdd is None: # <<<<<<<<<<<<<< + * if v == y: + * CHKERR( VecDuplicate(y, &t) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":853 + * CHKERR( VecAXPY(y, 1.0, v) ) + * return FunctionEnd() + * if multTransposeAdd is None: return UNSUPPORTED(b"multTransposeAdd") # <<<<<<<<<<<<<< + * multTransposeAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_multTransposeAdd == Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"multTransposeAdd")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":854 + * return FunctionEnd() + * if multTransposeAdd is None: return UNSUPPORTED(b"multTransposeAdd") + * multTransposeAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_multTransposeAdd); + __pyx_t_9 = __pyx_v_multTransposeAdd; __pyx_t_10 = NULL; + __pyx_t_11 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_10)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); + __pyx_t_11 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_9)) { + PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_1, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 4+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) { + PyObject *__pyx_temp[5] = {__pyx_t_10, __pyx_t_1, __pyx_t_6, __pyx_t_7, __pyx_t_8}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_11, 4+__pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } else + #endif + { + __pyx_t_12 = PyTuple_New(4+__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + if (__pyx_t_10) { + __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_10); __pyx_t_10 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_11, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_11, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_11, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_11, __pyx_t_8); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_8 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 854, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + } + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":855 + * if multTransposeAdd is None: return UNSUPPORTED(b"multTransposeAdd") + * multTransposeAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultHermitianAdd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":833 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultTransposeAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultTransposeAdd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multTransposeAdd); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":857 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultHermitianAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultHermitianAdd_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_v, Vec __pyx_v_y) { + PyObject *__pyx_v_multHermitianAdd = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultHermitianAdd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":864 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultHermitianAdd_Python") # <<<<<<<<<<<<<< + * cdef multHermitianAdd = PyMat(mat).multHermitianAdd + * if multHermitianAdd is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultHermitianAdd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":865 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultHermitianAdd_Python") + * cdef multHermitianAdd = PyMat(mat).multHermitianAdd # <<<<<<<<<<<<<< + * if multHermitianAdd is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multHermitianAdd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multHermitianAdd = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":866 + * FunctionBegin(b"MatMultHermitianAdd_Python") + * cdef multHermitianAdd = PyMat(mat).multHermitianAdd + * if multHermitianAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multhermitianadd = NULL + */ + __pyx_t_3 = (__pyx_v_multHermitianAdd == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":867 + * cdef multHermitianAdd = PyMat(mat).multHermitianAdd + * if multHermitianAdd is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.multhermitianadd = NULL + * CHKERR( MatMultHermitianAdd(mat, x, v, y) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":868 + * if multHermitianAdd is None: + * try: + * mat.ops.multhermitianadd = NULL # <<<<<<<<<<<<<< + * CHKERR( MatMultHermitianAdd(mat, x, v, y) ) + * finally: + */ + __pyx_v_mat->ops->multhermitiantransposeadd = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":869 + * try: + * mat.ops.multhermitianadd = NULL + * CHKERR( MatMultHermitianAdd(mat, x, v, y) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.multhermitianadd = MatMultHermitianAdd_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatMultHermitianTransposeAdd(__pyx_v_mat, __pyx_v_x, __pyx_v_v, __pyx_v_y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 869, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":871 + * CHKERR( MatMultHermitianAdd(mat, x, v, y) ) + * finally: + * mat.ops.multhermitianadd = MatMultHermitianAdd_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * multHermitianAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->multhermitiantransposeadd = __pyx_f_8petsc4py_5PETSc_MatMultHermitianAdd_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->multhermitiantransposeadd = __pyx_f_8petsc4py_5PETSc_MatMultHermitianAdd_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":872 + * finally: + * mat.ops.multhermitianadd = MatMultHermitianAdd_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * multHermitianAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":866 + * FunctionBegin(b"MatMultHermitianAdd_Python") + * cdef multHermitianAdd = PyMat(mat).multHermitianAdd + * if multHermitianAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.multhermitianadd = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":873 + * mat.ops.multhermitianadd = MatMultHermitianAdd_Python + * return FunctionEnd() + * multHermitianAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_17 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_17)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __Pyx_INCREF(__pyx_v_multHermitianAdd); + __pyx_t_18 = __pyx_v_multHermitianAdd; __pyx_t_19 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { + __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); + if (likely(__pyx_t_19)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); + __Pyx_INCREF(__pyx_t_19); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_18, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + { + __pyx_t_20 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + if (__pyx_t_19) { + __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __pyx_t_19 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_7, __pyx_t_16); + __Pyx_GIVEREF(__pyx_t_17); + PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_7, __pyx_t_17); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_17 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":874 + * return FunctionEnd() + * multHermitianAdd(Mat_(mat), Vec_(x), Vec_(v), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMultDiagonalBlock_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":857 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultHermitianAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultHermitianAdd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multHermitianAdd); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":876 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultDiagonalBlock_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMultDiagonalBlock_Python(Mat __pyx_v_mat, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_multDiagonalBlock = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMultDiagonalBlock_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":882 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultDiagonalBlock_Python") # <<<<<<<<<<<<<< + * cdef multDiagonalBlock = PyMat(mat).multDiagonalBlock + * if multDiagonalBlock is None: return UNSUPPORTED(b"multDiagonalBlock") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMultDiagonalBlock_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":883 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMultDiagonalBlock_Python") + * cdef multDiagonalBlock = PyMat(mat).multDiagonalBlock # <<<<<<<<<<<<<< + * if multDiagonalBlock is None: return UNSUPPORTED(b"multDiagonalBlock") + * multDiagonalBlock(Mat_(mat), Vec_(x), Vec_(y)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_multDiagonalBlock); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_multDiagonalBlock = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":884 + * FunctionBegin(b"MatMultDiagonalBlock_Python") + * cdef multDiagonalBlock = PyMat(mat).multDiagonalBlock + * if multDiagonalBlock is None: return UNSUPPORTED(b"multDiagonalBlock") # <<<<<<<<<<<<<< + * multDiagonalBlock(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_multDiagonalBlock == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"multDiagonalBlock")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":885 + * cdef multDiagonalBlock = PyMat(mat).multDiagonalBlock + * if multDiagonalBlock is None: return UNSUPPORTED(b"multDiagonalBlock") + * multDiagonalBlock(Mat_(mat), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_multDiagonalBlock); + __pyx_t_7 = __pyx_v_multDiagonalBlock; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 885, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":886 + * if multDiagonalBlock is None: return UNSUPPORTED(b"multDiagonalBlock") + * multDiagonalBlock(Mat_(mat), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":876 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMultDiagonalBlock_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatMultDiagonalBlock_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_multDiagonalBlock); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":888 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolve_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolve_Python(Mat __pyx_v_mat, Vec __pyx_v_b, Vec __pyx_v_x) { + PyObject *__pyx_v_solve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":894 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolve_Python") # <<<<<<<<<<<<<< + * cdef solve = PyMat(mat).solve + * if solve is None: return UNSUPPORTED(b"solve") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":895 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolve_Python") + * cdef solve = PyMat(mat).solve # <<<<<<<<<<<<<< + * if solve is None: return UNSUPPORTED(b"solve") + * solve(Mat_(mat), Vec_(b), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solve); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solve = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":896 + * FunctionBegin(b"MatSolve_Python") + * cdef solve = PyMat(mat).solve + * if solve is None: return UNSUPPORTED(b"solve") # <<<<<<<<<<<<<< + * solve(Mat_(mat), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_solve == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"solve")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":897 + * cdef solve = PyMat(mat).solve + * if solve is None: return UNSUPPORTED(b"solve") + * solve(Mat_(mat), Vec_(b), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_solve); + __pyx_t_7 = __pyx_v_solve; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 897, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":898 + * if solve is None: return UNSUPPORTED(b"solve") + * solve(Mat_(mat), Vec_(b), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSolveTranspose_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":888 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolve_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":900 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveTranspose_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveTranspose_Python(Mat __pyx_v_mat, Vec __pyx_v_b, Vec __pyx_v_x) { + PyObject *__pyx_v_solveTranspose = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSolveTranspose_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":906 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveTranspose_Python") # <<<<<<<<<<<<<< + * cdef solveTranspose = PyMat(mat).solveTranspose + * if solveTranspose is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSolveTranspose_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":907 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveTranspose_Python") + * cdef solveTranspose = PyMat(mat).solveTranspose # <<<<<<<<<<<<<< + * if solveTranspose is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solveTranspose); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solveTranspose = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":908 + * FunctionBegin(b"MatSolveTranspose_Python") + * cdef solveTranspose = PyMat(mat).solveTranspose + * if solveTranspose is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solvetranspose = NULL + */ + __pyx_t_3 = (__pyx_v_solveTranspose == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":909 + * cdef solveTranspose = PyMat(mat).solveTranspose + * if solveTranspose is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.solvetranspose = NULL + * CHKERR( MatSolveTranspose(mat, b, x) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":910 + * if solveTranspose is None: + * try: + * mat.ops.solvetranspose = NULL # <<<<<<<<<<<<<< + * CHKERR( MatSolveTranspose(mat, b, x) ) + * finally: + */ + __pyx_v_mat->ops->solvetranspose = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":911 + * try: + * mat.ops.solvetranspose = NULL + * CHKERR( MatSolveTranspose(mat, b, x) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.solvetranspose = MatSolveTranspose_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveTranspose(__pyx_v_mat, __pyx_v_b, __pyx_v_x)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 911, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":913 + * CHKERR( MatSolveTranspose(mat, b, x) ) + * finally: + * mat.ops.solvetranspose = MatSolveTranspose_Python # <<<<<<<<<<<<<< + * solveTranspose(Mat_(mat), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->solvetranspose = __pyx_f_8petsc4py_5PETSc_MatSolveTranspose_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->solvetranspose = __pyx_f_8petsc4py_5PETSc_MatSolveTranspose_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":908 + * FunctionBegin(b"MatSolveTranspose_Python") + * cdef solveTranspose = PyMat(mat).solveTranspose + * if solveTranspose is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solvetranspose = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":914 + * finally: + * mat.ops.solvetranspose = MatSolveTranspose_Python + * solveTranspose(Mat_(mat), Vec_(b), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF(__pyx_v_solveTranspose); + __pyx_t_17 = __pyx_v_solveTranspose; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_17, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + { + __pyx_t_19 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_7, __pyx_t_16); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":915 + * mat.ops.solvetranspose = MatSolveTranspose_Python + * solveTranspose(Mat_(mat), Vec_(b), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSolveAdd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":900 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveTranspose_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_AddTraceback("petsc4py.PETSc.MatSolveTranspose_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solveTranspose); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":917 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveAdd_Python(Mat __pyx_v_mat, Vec __pyx_v_b, Vec __pyx_v_y, Vec __pyx_v_x) { + PyObject *__pyx_v_solveAdd = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSolveAdd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":924 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveAdd_Python") # <<<<<<<<<<<<<< + * cdef solveAdd = PyMat(mat).solveAdd + * if solveAdd is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSolveAdd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":925 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveAdd_Python") + * cdef solveAdd = PyMat(mat).solveAdd # <<<<<<<<<<<<<< + * if solveAdd is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solveAdd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solveAdd = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":926 + * FunctionBegin(b"MatSolveAdd_Python") + * cdef solveAdd = PyMat(mat).solveAdd + * if solveAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solveadd = NULL + */ + __pyx_t_3 = (__pyx_v_solveAdd == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":927 + * cdef solveAdd = PyMat(mat).solveAdd + * if solveAdd is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.solveadd = NULL + * CHKERR( MatSolveAdd(mat, b, y, x) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":928 + * if solveAdd is None: + * try: + * mat.ops.solveadd = NULL # <<<<<<<<<<<<<< + * CHKERR( MatSolveAdd(mat, b, y, x) ) + * finally: + */ + __pyx_v_mat->ops->solveadd = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":929 + * try: + * mat.ops.solveadd = NULL + * CHKERR( MatSolveAdd(mat, b, y, x) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.solveadd = MatSolveAdd_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveAdd(__pyx_v_mat, __pyx_v_b, __pyx_v_y, __pyx_v_x)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 929, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":931 + * CHKERR( MatSolveAdd(mat, b, y, x) ) + * finally: + * mat.ops.solveadd = MatSolveAdd_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * solveAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->solveadd = __pyx_f_8petsc4py_5PETSc_MatSolveAdd_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->solveadd = __pyx_f_8petsc4py_5PETSc_MatSolveAdd_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":932 + * finally: + * mat.ops.solveadd = MatSolveAdd_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * solveAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":926 + * FunctionBegin(b"MatSolveAdd_Python") + * cdef solveAdd = PyMat(mat).solveAdd + * if solveAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solveadd = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":933 + * mat.ops.solveadd = MatSolveAdd_Python + * return FunctionEnd() + * solveAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_17 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_17)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __Pyx_INCREF(__pyx_v_solveAdd); + __pyx_t_18 = __pyx_v_solveAdd; __pyx_t_19 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { + __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); + if (likely(__pyx_t_19)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); + __Pyx_INCREF(__pyx_t_19); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_18, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + { + __pyx_t_20 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + if (__pyx_t_19) { + __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __pyx_t_19 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_7, __pyx_t_16); + __Pyx_GIVEREF(__pyx_t_17); + PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_7, __pyx_t_17); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_17 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":934 + * return FunctionEnd() + * solveAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSolveTransposeAdd_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":917 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("petsc4py.PETSc.MatSolveAdd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solveAdd); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":936 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveTransposeAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSolveTransposeAdd_Python(Mat __pyx_v_mat, Vec __pyx_v_b, Vec __pyx_v_y, Vec __pyx_v_x) { + PyObject *__pyx_v_solveTransposeAdd = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSolveTransposeAdd_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":943 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveTransposeAdd_Python") # <<<<<<<<<<<<<< + * cdef solveTransposeAdd = PyMat(mat).solveTransposeAdd + * if solveTransposeAdd is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSolveTransposeAdd_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":944 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSolveTransposeAdd_Python") + * cdef solveTransposeAdd = PyMat(mat).solveTransposeAdd # <<<<<<<<<<<<<< + * if solveTransposeAdd is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solveTransposeAdd); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 944, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solveTransposeAdd = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":945 + * FunctionBegin(b"MatSolveTransposeAdd_Python") + * cdef solveTransposeAdd = PyMat(mat).solveTransposeAdd + * if solveTransposeAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solvetransposeadd = NULL + */ + __pyx_t_3 = (__pyx_v_solveTransposeAdd == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":946 + * cdef solveTransposeAdd = PyMat(mat).solveTransposeAdd + * if solveTransposeAdd is None: + * try: # <<<<<<<<<<<<<< + * mat.ops.solvetransposeadd = NULL + * CHKERR( MatSolveTransposeAdd(mat, b, y, x) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":947 + * if solveTransposeAdd is None: + * try: + * mat.ops.solvetransposeadd = NULL # <<<<<<<<<<<<<< + * CHKERR( MatSolveTransposeAdd(mat, b, y, x) ) + * finally: + */ + __pyx_v_mat->ops->solvetransposeadd = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":948 + * try: + * mat.ops.solvetransposeadd = NULL + * CHKERR( MatSolveTransposeAdd(mat, b, y, x) ) # <<<<<<<<<<<<<< + * finally: + * mat.ops.solvetransposeadd = MatSolveTransposeAdd_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatSolveTransposeAdd(__pyx_v_mat, __pyx_v_b, __pyx_v_y, __pyx_v_x)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 948, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":950 + * CHKERR( MatSolveTransposeAdd(mat, b, y, x) ) + * finally: + * mat.ops.solvetransposeadd = MatSolveTransposeAdd_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * solveTransposeAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_mat->ops->solvetransposeadd = __pyx_f_8petsc4py_5PETSc_MatSolveTransposeAdd_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_mat->ops->solvetransposeadd = __pyx_f_8petsc4py_5PETSc_MatSolveTransposeAdd_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":951 + * finally: + * mat.ops.solvetransposeadd = MatSolveTransposeAdd_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * solveTransposeAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":945 + * FunctionBegin(b"MatSolveTransposeAdd_Python") + * cdef solveTransposeAdd = PyMat(mat).solveTransposeAdd + * if solveTransposeAdd is None: # <<<<<<<<<<<<<< + * try: + * mat.ops.solvetransposeadd = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":952 + * mat.ops.solvetransposeadd = MatSolveTransposeAdd_Python + * return FunctionEnd() + * solveTransposeAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __pyx_t_17 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_17)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + __Pyx_INCREF(__pyx_v_solveTransposeAdd); + __pyx_t_18 = __pyx_v_solveTransposeAdd; __pyx_t_19 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) { + __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18); + if (likely(__pyx_t_19)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18); + __Pyx_INCREF(__pyx_t_19); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_18, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) { + PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_t_1, __pyx_t_15, __pyx_t_16, __pyx_t_17}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_7, 4+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } else + #endif + { + __pyx_t_20 = PyTuple_New(4+__pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + if (__pyx_t_19) { + __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_19); __pyx_t_19 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_20, 2+__pyx_t_7, __pyx_t_16); + __Pyx_GIVEREF(__pyx_t_17); + PyTuple_SET_ITEM(__pyx_t_20, 3+__pyx_t_7, __pyx_t_17); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_17 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + } + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":953 + * return FunctionEnd() + * solveTransposeAdd(Mat_(mat), Vec_(b), Vec_(y), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSOR_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":936 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSolveTransposeAdd_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_XDECREF(__pyx_t_20); + __Pyx_AddTraceback("petsc4py.PETSc.MatSolveTransposeAdd_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solveTransposeAdd); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":955 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSOR_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSOR_Python(Mat __pyx_v_mat, Vec __pyx_v_b, PetscReal __pyx_v_omega, MatSORType __pyx_v_sortype, PetscReal __pyx_v_shift, PetscInt __pyx_v_its, PetscInt __pyx_v_lits, Vec __pyx_v_x) { + PyObject *__pyx_v_SOR = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscReal __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PetscInt __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + int __pyx_t_16; + PyObject *__pyx_t_17 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSOR_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":966 + * )\ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSOR_Python") # <<<<<<<<<<<<<< + * cdef SOR = PyMat(mat).SOR + * if SOR is None: return UNSUPPORTED(b"SOR") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSOR_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":967 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSOR_Python") + * cdef SOR = PyMat(mat).SOR # <<<<<<<<<<<<<< + * if SOR is None: return UNSUPPORTED(b"SOR") + * SOR(Mat_(mat), Vec_(b), asReal(omega), asInt(sortype), asReal(shift), asInt(its), asInt(lits), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SOR); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_SOR = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":968 + * FunctionBegin(b"MatSOR_Python") + * cdef SOR = PyMat(mat).SOR + * if SOR is None: return UNSUPPORTED(b"SOR") # <<<<<<<<<<<<<< + * SOR(Mat_(mat), Vec_(b), asReal(omega), asInt(sortype), asReal(shift), asInt(its), asInt(lits), Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_SOR == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"SOR")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":969 + * cdef SOR = PyMat(mat).SOR + * if SOR is None: return UNSUPPORTED(b"SOR") + * SOR(Mat_(mat), Vec_(b), asReal(omega), asInt(sortype), asReal(shift), asInt(its), asInt(lits), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyFloat_FromDouble(__pyx_v_omega); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_t_6); if (unlikely(__pyx_t_7 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyInt_From_MatSORType(__pyx_v_sortype); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_8); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyInt_From_PetscInt(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_10 = PyFloat_FromDouble(__pyx_v_shift); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_asReal(__pyx_t_10); if (unlikely(__pyx_t_7 == ((PetscReal)-1.0) && PyErr_Occurred())) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __pyx_t_11 = __Pyx_PyInt_From_PetscInt(__pyx_v_its); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_11); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_11 = __Pyx_PyInt_From_PetscInt(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_12 = __Pyx_PyInt_From_PetscInt(__pyx_v_lits); if (unlikely(!__pyx_t_12)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_t_12); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __pyx_t_12 = __Pyx_PyInt_From_PetscInt(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_12); + __pyx_t_13 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_13)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_13); + __Pyx_INCREF(__pyx_v_SOR); + __pyx_t_14 = __pyx_v_SOR; __pyx_t_15 = NULL; + __pyx_t_16 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) { + __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14); + if (likely(__pyx_t_15)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14); + __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_14, function); + __pyx_t_16 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_14)) { + PyObject *__pyx_temp[9] = {__pyx_t_15, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_8, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_16, 8+__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) { + PyObject *__pyx_temp[9] = {__pyx_t_15, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_8, __pyx_t_10, __pyx_t_11, __pyx_t_12, __pyx_t_13}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_16, 8+__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + } else + #endif + { + __pyx_t_17 = PyTuple_New(8+__pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_17); + if (__pyx_t_15) { + __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_15); __pyx_t_15 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_16, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_16, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_16, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_16, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_10); + PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_16, __pyx_t_10); + __Pyx_GIVEREF(__pyx_t_11); + PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_16, __pyx_t_11); + __Pyx_GIVEREF(__pyx_t_12); + PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_16, __pyx_t_12); + __Pyx_GIVEREF(__pyx_t_13); + PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_16, __pyx_t_13); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_8 = 0; + __pyx_t_10 = 0; + __pyx_t_11 = 0; + __pyx_t_12 = 0; + __pyx_t_13 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_17, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + } + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":970 + * if SOR is None: return UNSUPPORTED(b"SOR") + * SOR(Mat_(mat), Vec_(b), asReal(omega), asInt(sortype), asReal(shift), asInt(its), asInt(lits), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatGetDiagonal_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":955 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSOR_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec b, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_XDECREF(__pyx_t_12); + __Pyx_XDECREF(__pyx_t_13); + __Pyx_XDECREF(__pyx_t_14); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_AddTraceback("petsc4py.PETSc.MatSOR_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_SOR); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":972 + * return FunctionEnd() + * + * cdef PetscErrorCode MatGetDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec v, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatGetDiagonal_Python(Mat __pyx_v_mat, Vec __pyx_v_v) { + PyObject *__pyx_v_getDiagonal = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatGetDiagonal_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":977 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatGetDiagonal_Python") # <<<<<<<<<<<<<< + * cdef getDiagonal = PyMat(mat).getDiagonal + * if getDiagonal is None: return UNSUPPORTED(b"getDiagonal") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatGetDiagonal_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":978 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatGetDiagonal_Python") + * cdef getDiagonal = PyMat(mat).getDiagonal # <<<<<<<<<<<<<< + * if getDiagonal is None: return UNSUPPORTED(b"getDiagonal") + * getDiagonal(Mat_(mat), Vec_(v)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_getDiagonal); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 978, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_getDiagonal = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":979 + * FunctionBegin(b"MatGetDiagonal_Python") + * cdef getDiagonal = PyMat(mat).getDiagonal + * if getDiagonal is None: return UNSUPPORTED(b"getDiagonal") # <<<<<<<<<<<<<< + * getDiagonal(Mat_(mat), Vec_(v)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_getDiagonal == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"getDiagonal")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":980 + * cdef getDiagonal = PyMat(mat).getDiagonal + * if getDiagonal is None: return UNSUPPORTED(b"getDiagonal") + * getDiagonal(Mat_(mat), Vec_(v)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_getDiagonal); + __pyx_t_6 = __pyx_v_getDiagonal; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":981 + * if getDiagonal is None: return UNSUPPORTED(b"getDiagonal") + * getDiagonal(Mat_(mat), Vec_(v)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatSetDiagonal_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":972 + * return FunctionEnd() + * + * cdef PetscErrorCode MatGetDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec v, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatGetDiagonal_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_getDiagonal); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":983 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec v, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatSetDiagonal_Python(Mat __pyx_v_mat, Vec __pyx_v_v, InsertMode __pyx_v_im) { + PyObject *__pyx_v_setDiagonal = 0; + int __pyx_v_addv; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatSetDiagonal_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":989 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetDiagonal_Python") # <<<<<<<<<<<<<< + * cdef setDiagonal = PyMat(mat).setDiagonal + * cdef bint addv = True if im == PETSC_ADD_VALUES else False + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatSetDiagonal_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":990 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatSetDiagonal_Python") + * cdef setDiagonal = PyMat(mat).setDiagonal # <<<<<<<<<<<<<< + * cdef bint addv = True if im == PETSC_ADD_VALUES else False + * if setDiagonal is None: return UNSUPPORTED(b"setDiagonal") + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setDiagonal); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setDiagonal = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":991 + * FunctionBegin(b"MatSetDiagonal_Python") + * cdef setDiagonal = PyMat(mat).setDiagonal + * cdef bint addv = True if im == PETSC_ADD_VALUES else False # <<<<<<<<<<<<<< + * if setDiagonal is None: return UNSUPPORTED(b"setDiagonal") + * setDiagonal(Mat_(mat), Vec_(v), addv) + */ + if (((__pyx_v_im == ADD_VALUES) != 0)) { + __pyx_t_3 = 1; + } else { + __pyx_t_3 = 0; + } + __pyx_v_addv = __pyx_t_3; + + /* "petsc4py/PETSc/libpetsc4py.pyx":992 + * cdef setDiagonal = PyMat(mat).setDiagonal + * cdef bint addv = True if im == PETSC_ADD_VALUES else False + * if setDiagonal is None: return UNSUPPORTED(b"setDiagonal") # <<<<<<<<<<<<<< + * setDiagonal(Mat_(mat), Vec_(v), addv) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_setDiagonal == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"setDiagonal")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":993 + * cdef bint addv = True if im == PETSC_ADD_VALUES else False + * if setDiagonal is None: return UNSUPPORTED(b"setDiagonal") + * setDiagonal(Mat_(mat), Vec_(v), addv) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBool_FromLong(__pyx_v_addv); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_setDiagonal); + __pyx_t_7 = __pyx_v_setDiagonal; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 993, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":994 + * if setDiagonal is None: return UNSUPPORTED(b"setDiagonal") + * setDiagonal(Mat_(mat), Vec_(v), addv) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatDiagonalScale_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":983 + * return FunctionEnd() + * + * cdef PetscErrorCode MatSetDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec v, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatSetDiagonal_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setDiagonal); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":996 + * return FunctionEnd() + * + * cdef PetscErrorCode MatDiagonalScale_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec l, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatDiagonalScale_Python(Mat __pyx_v_mat, Vec __pyx_v_l, Vec __pyx_v_r) { + PyObject *__pyx_v_diagonalScale = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatDiagonalScale_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1002 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatDiagonalScale_Python") # <<<<<<<<<<<<<< + * cdef diagonalScale = PyMat(mat).diagonalScale + * if diagonalScale is None: return UNSUPPORTED(b"diagonalScale") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatDiagonalScale_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1003 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatDiagonalScale_Python") + * cdef diagonalScale = PyMat(mat).diagonalScale # <<<<<<<<<<<<<< + * if diagonalScale is None: return UNSUPPORTED(b"diagonalScale") + * diagonalScale(Mat_(mat), Vec_(l), Vec_(r)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_diagonalScale); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_diagonalScale = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1004 + * FunctionBegin(b"MatDiagonalScale_Python") + * cdef diagonalScale = PyMat(mat).diagonalScale + * if diagonalScale is None: return UNSUPPORTED(b"diagonalScale") # <<<<<<<<<<<<<< + * diagonalScale(Mat_(mat), Vec_(l), Vec_(r)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_diagonalScale == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"diagonalScale")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1005 + * cdef diagonalScale = PyMat(mat).diagonalScale + * if diagonalScale is None: return UNSUPPORTED(b"diagonalScale") + * diagonalScale(Mat_(mat), Vec_(l), Vec_(r)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_l)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_r)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_diagonalScale); + __pyx_t_7 = __pyx_v_diagonalScale; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1006 + * if diagonalScale is None: return UNSUPPORTED(b"diagonalScale") + * diagonalScale(Mat_(mat), Vec_(l), Vec_(r)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatMissingDiagonal_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":996 + * return FunctionEnd() + * + * cdef PetscErrorCode MatDiagonalScale_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscVec l, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatDiagonalScale_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_diagonalScale); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1008 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMissingDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscBool *missing, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatMissingDiagonal_Python(Mat __pyx_v_mat, PetscBool *__pyx_v_missing, PetscInt *__pyx_v_loc) { + PyObject *__pyx_v_missingDiagonal = 0; + PyObject *__pyx_v_pymissing = NULL; + PyObject *__pyx_v_pyloc = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *(*__pyx_t_7)(PyObject *); + PetscBool __pyx_t_8; + PetscInt __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatMissingDiagonal_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1014 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMissingDiagonal_Python") # <<<<<<<<<<<<<< + * cdef missingDiagonal = PyMat(mat).missingDiagonal + * if missingDiagonal is None: return UNSUPPORTED(b"missingDiagonal") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatMissingDiagonal_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1015 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatMissingDiagonal_Python") + * cdef missingDiagonal = PyMat(mat).missingDiagonal # <<<<<<<<<<<<<< + * if missingDiagonal is None: return UNSUPPORTED(b"missingDiagonal") + * pymissing, pyloc = missingDiagonal(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_missingDiagonal); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_missingDiagonal = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1016 + * FunctionBegin(b"MatMissingDiagonal_Python") + * cdef missingDiagonal = PyMat(mat).missingDiagonal + * if missingDiagonal is None: return UNSUPPORTED(b"missingDiagonal") # <<<<<<<<<<<<<< + * pymissing, pyloc = missingDiagonal(Mat_(mat)) + * missing[0] = pymissing + */ + __pyx_t_3 = (__pyx_v_missingDiagonal == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"missingDiagonal")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1017 + * cdef missingDiagonal = PyMat(mat).missingDiagonal + * if missingDiagonal is None: return UNSUPPORTED(b"missingDiagonal") + * pymissing, pyloc = missingDiagonal(Mat_(mat)) # <<<<<<<<<<<<<< + * missing[0] = pymissing + * if loc: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_missingDiagonal); + __pyx_t_5 = __pyx_v_missingDiagonal; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 1017, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_1 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_1); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext; + index = 0; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_1 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_1)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) __PYX_ERR(11, 1017, __pyx_L1_error) + __pyx_t_7 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 1017, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __pyx_v_pymissing = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_pyloc = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1018 + * if missingDiagonal is None: return UNSUPPORTED(b"missingDiagonal") + * pymissing, pyloc = missingDiagonal(Mat_(mat)) + * missing[0] = pymissing # <<<<<<<<<<<<<< + * if loc: + * loc[0] = asInt(pyloc) + */ + __pyx_t_8 = ((PetscBool)__Pyx_PyInt_As_PetscBool(__pyx_v_pymissing)); if (unlikely(PyErr_Occurred())) __PYX_ERR(11, 1018, __pyx_L1_error) + (__pyx_v_missing[0]) = ((PetscBool)__pyx_t_8); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1019 + * pymissing, pyloc = missingDiagonal(Mat_(mat)) + * missing[0] = pymissing + * if loc: # <<<<<<<<<<<<<< + * loc[0] = asInt(pyloc) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_loc != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1020 + * missing[0] = pymissing + * if loc: + * loc[0] = asInt(pyloc) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_asInt(__pyx_v_pyloc); if (unlikely(__pyx_t_9 == ((PetscInt)-1L) && PyErr_Occurred())) __PYX_ERR(11, 1020, __pyx_L1_error) + (__pyx_v_loc[0]) = __pyx_t_9; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1019 + * pymissing, pyloc = missingDiagonal(Mat_(mat)) + * missing[0] = pymissing + * if loc: # <<<<<<<<<<<<<< + * loc[0] = asInt(pyloc) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1021 + * if loc: + * loc[0] = asInt(pyloc) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatNorm_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1008 + * return FunctionEnd() + * + * cdef PetscErrorCode MatMissingDiagonal_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscBool *missing, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.MatMissingDiagonal_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_missingDiagonal); + __Pyx_XDECREF(__pyx_v_pymissing); + __Pyx_XDECREF(__pyx_v_pyloc); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1023 + * return FunctionEnd() + * + * cdef PetscErrorCode MatNorm_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscNormType ntype, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatNorm_Python(Mat __pyx_v_mat, NormType __pyx_v_ntype, PetscReal *__pyx_v_nrm) { + PyObject *__pyx_v_norm = 0; + PyObject *__pyx_v_retval = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PetscReal __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatNorm_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1029 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatNorm_Python") # <<<<<<<<<<<<<< + * cdef norm = PyMat(mat).norm + * if norm is None: return UNSUPPORTED(b"norm") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatNorm_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1030 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatNorm_Python") + * cdef norm = PyMat(mat).norm # <<<<<<<<<<<<<< + * if norm is None: return UNSUPPORTED(b"norm") + * retval = norm(Mat_(mat), ntype) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_norm); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1030, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_norm = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1031 + * FunctionBegin(b"MatNorm_Python") + * cdef norm = PyMat(mat).norm + * if norm is None: return UNSUPPORTED(b"norm") # <<<<<<<<<<<<<< + * retval = norm(Mat_(mat), ntype) + * nrm[0] = retval + */ + __pyx_t_3 = (__pyx_v_norm == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"norm")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1032 + * cdef norm = PyMat(mat).norm + * if norm is None: return UNSUPPORTED(b"norm") + * retval = norm(Mat_(mat), ntype) # <<<<<<<<<<<<<< + * nrm[0] = retval + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyInt_From_NormType(__pyx_v_ntype); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_norm); + __pyx_t_6 = __pyx_v_norm; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1032, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_retval = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1033 + * if norm is None: return UNSUPPORTED(b"norm") + * retval = norm(Mat_(mat), ntype) + * nrm[0] = retval # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_10 = __pyx_PyFloat_AsDouble(__pyx_v_retval); if (unlikely((__pyx_t_10 == ((PetscReal)-1)) && PyErr_Occurred())) __PYX_ERR(11, 1033, __pyx_L1_error) + (__pyx_v_nrm[0]) = ((PetscReal)__pyx_t_10); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1034 + * retval = norm(Mat_(mat), ntype) + * nrm[0] = retval + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatRealPart_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1023 + * return FunctionEnd() + * + * cdef PetscErrorCode MatNorm_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscNormType ntype, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatNorm_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_norm); + __Pyx_XDECREF(__pyx_v_retval); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1036 + * return FunctionEnd() + * + * cdef PetscErrorCode MatRealPart_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatRealPart_Python(Mat __pyx_v_mat) { + PyObject *__pyx_v_realPart = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatRealPart_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1040 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatRealPart_Python") # <<<<<<<<<<<<<< + * cdef realPart = PyMat(mat).realPart + * if realPart is None: return UNSUPPORTED(b"realPart") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatRealPart_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1041 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatRealPart_Python") + * cdef realPart = PyMat(mat).realPart # <<<<<<<<<<<<<< + * if realPart is None: return UNSUPPORTED(b"realPart") + * realPart(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_realPart); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1041, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_realPart = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1042 + * FunctionBegin(b"MatRealPart_Python") + * cdef realPart = PyMat(mat).realPart + * if realPart is None: return UNSUPPORTED(b"realPart") # <<<<<<<<<<<<<< + * realPart(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_realPart == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"realPart")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1043 + * cdef realPart = PyMat(mat).realPart + * if realPart is None: return UNSUPPORTED(b"realPart") + * realPart(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_realPart); + __pyx_t_5 = __pyx_v_realPart; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1043, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1044 + * if realPart is None: return UNSUPPORTED(b"realPart") + * realPart(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatImagPart_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1036 + * return FunctionEnd() + * + * cdef PetscErrorCode MatRealPart_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.MatRealPart_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_realPart); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1046 + * return FunctionEnd() + * + * cdef PetscErrorCode MatImagPart_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatImagPart_Python(Mat __pyx_v_mat) { + PyObject *__pyx_v_imagPart = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatImagPart_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1050 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatImagPart_Python") # <<<<<<<<<<<<<< + * cdef imagPart = PyMat(mat).imagPart + * if imagPart is None: return UNSUPPORTED(b"imagPart") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatImagPart_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1051 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatImagPart_Python") + * cdef imagPart = PyMat(mat).imagPart # <<<<<<<<<<<<<< + * if imagPart is None: return UNSUPPORTED(b"imagPart") + * imagPart(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_imagPart); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_imagPart = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1052 + * FunctionBegin(b"MatImagPart_Python") + * cdef imagPart = PyMat(mat).imagPart + * if imagPart is None: return UNSUPPORTED(b"imagPart") # <<<<<<<<<<<<<< + * imagPart(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_imagPart == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"imagPart")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1053 + * cdef imagPart = PyMat(mat).imagPart + * if imagPart is None: return UNSUPPORTED(b"imagPart") + * imagPart(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_imagPart); + __pyx_t_5 = __pyx_v_imagPart; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1054 + * if imagPart is None: return UNSUPPORTED(b"imagPart") + * imagPart(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatConjugate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1046 + * return FunctionEnd() + * + * cdef PetscErrorCode MatImagPart_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.MatImagPart_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_imagPart); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1056 + * return FunctionEnd() + * + * cdef PetscErrorCode MatConjugate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatConjugate_Python(Mat __pyx_v_mat) { + PyObject *__pyx_v_conjugate = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatConjugate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1060 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatConjugate_Python") # <<<<<<<<<<<<<< + * cdef conjugate = PyMat(mat).conjugate + * if conjugate is None: return UNSUPPORTED(b"conjugate") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatConjugate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1061 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatConjugate_Python") + * cdef conjugate = PyMat(mat).conjugate # <<<<<<<<<<<<<< + * if conjugate is None: return UNSUPPORTED(b"conjugate") + * conjugate(Mat_(mat)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_conjugate); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_conjugate = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1062 + * FunctionBegin(b"MatConjugate_Python") + * cdef conjugate = PyMat(mat).conjugate + * if conjugate is None: return UNSUPPORTED(b"conjugate") # <<<<<<<<<<<<<< + * conjugate(Mat_(mat)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_conjugate == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"conjugate")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1063 + * cdef conjugate = PyMat(mat).conjugate + * if conjugate is None: return UNSUPPORTED(b"conjugate") + * conjugate(Mat_(mat)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_conjugate); + __pyx_t_5 = __pyx_v_conjugate; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1064 + * if conjugate is None: return UNSUPPORTED(b"conjugate") + * conjugate(Mat_(mat)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatHasOperation_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1056 + * return FunctionEnd() + * + * cdef PetscErrorCode MatConjugate_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.MatConjugate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_conjugate); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1066 + * return FunctionEnd() + * + * cdef PetscErrorCode MatHasOperation_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatOperation op, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatHasOperation_Python(Mat __pyx_v_mat, MatOperation __pyx_v_op, PetscBool *__pyx_v_flag) { + long __pyx_v_i; + PyObject *__pyx_v_name = NULL; + void **__pyx_v_ops; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscBool __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatHasOperation_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1072 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatHasOperation_Python") # <<<<<<<<<<<<<< + * flag[0] = PETSC_FALSE + * cdef long i = op + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatHasOperation_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1073 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatHasOperation_Python") + * flag[0] = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef long i = op + * global dMatOps + */ + (__pyx_v_flag[0]) = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1074 + * FunctionBegin(b"MatHasOperation_Python") + * flag[0] = PETSC_FALSE + * cdef long i = op # <<<<<<<<<<<<<< + * global dMatOps + * name = dMatOps.get(i, None) + */ + __pyx_v_i = ((long)__pyx_v_op); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1076 + * cdef long i = op + * global dMatOps + * name = dMatOps.get(i, None) # <<<<<<<<<<<<<< + * cdef void** ops = NULL + * if name is None: + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_dMatOps == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "get"); + __PYX_ERR(11, 1076, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyDict_GetItemDefault(__pyx_v_8petsc4py_5PETSc_dMatOps, __pyx_t_1, Py_None); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_name = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1077 + * global dMatOps + * name = dMatOps.get(i, None) + * cdef void** ops = NULL # <<<<<<<<<<<<<< + * if name is None: + * ops = mat.ops + */ + __pyx_v_ops = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1078 + * name = dMatOps.get(i, None) + * cdef void** ops = NULL + * if name is None: # <<<<<<<<<<<<<< + * ops = mat.ops + * if ops and ops[i]: flag[0] = PETSC_TRUE + */ + __pyx_t_3 = (__pyx_v_name == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1079 + * cdef void** ops = NULL + * if name is None: + * ops = mat.ops # <<<<<<<<<<<<<< + * if ops and ops[i]: flag[0] = PETSC_TRUE + * else: + */ + __pyx_v_ops = ((void **)__pyx_v_mat->ops); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1080 + * if name is None: + * ops = mat.ops + * if ops and ops[i]: flag[0] = PETSC_TRUE # <<<<<<<<<<<<<< + * else: + * flag[0] = PETSC_TRUE if getattr(PyMat(mat), name) is not None else PETSC_FALSE + */ + __pyx_t_3 = (__pyx_v_ops != 0); + if (__pyx_t_3) { + } else { + __pyx_t_4 = __pyx_t_3; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_ops[__pyx_v_i]) != 0); + __pyx_t_4 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + if (__pyx_t_4) { + (__pyx_v_flag[0]) = PETSC_TRUE; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1078 + * name = dMatOps.get(i, None) + * cdef void** ops = NULL + * if name is None: # <<<<<<<<<<<<<< + * ops = mat.ops + * if ops and ops[i]: flag[0] = PETSC_TRUE + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1082 + * if ops and ops[i]: flag[0] = PETSC_TRUE + * else: + * flag[0] = PETSC_TRUE if getattr(PyMat(mat), name) is not None else PETSC_FALSE # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_GetAttr(__pyx_t_2, __pyx_v_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = (__pyx_t_1 != Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if ((__pyx_t_4 != 0)) { + __pyx_t_5 = PETSC_TRUE; + } else { + __pyx_t_5 = PETSC_FALSE; + } + (__pyx_v_flag[0]) = __pyx_t_5; + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1083 + * else: + * flag[0] = PETSC_TRUE if getattr(PyMat(mat), name) is not None else PETSC_FALSE + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatProductNumeric_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1066 + * return FunctionEnd() + * + * cdef PetscErrorCode MatHasOperation_Python( # <<<<<<<<<<<<<< + * PetscMat mat, + * PetscMatOperation op, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.MatHasOperation_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_name); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1085 + * return FunctionEnd() + * + * cdef PetscErrorCode MatProductNumeric_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductNumeric_Python(Mat __pyx_v_mat) { + Mat __pyx_v_A; + Mat __pyx_v_B; + Mat __pyx_v_C; + MatProductType __pyx_v_mtype; + PyObject *__pyx_v_mtypes = NULL; + Mat_Product *__pyx_v_product; + PetscInt __pyx_v_i; + Mat __pyx_v_pM; + struct PyPetscMatObject *__pyx_v_PyA = 0; + struct PyPetscMatObject *__pyx_v_PyB = 0; + struct PyPetscMatObject *__pyx_v_PyC = 0; + PyObject *__pyx_v_mats = NULL; + PyObject *__pyx_v_productNumeric = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Mat_Product *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + Mat __pyx_t_7; + Mat __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatProductNumeric_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1089 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductNumeric_Python") # <<<<<<<<<<<<<< + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatProductNumeric_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1090 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductNumeric_Python") + * cdef PetscMat A = NULL # <<<<<<<<<<<<<< + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + */ + __pyx_v_A = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1091 + * FunctionBegin(b"MatProductNumeric_Python") + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL # <<<<<<<<<<<<<< + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + */ + __pyx_v_B = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1092 + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL # <<<<<<<<<<<<<< + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + */ + __pyx_v_C = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1093 + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED # <<<<<<<<<<<<<< + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * CHKERR( MatProductGetType(mat, &mtype) ) + */ + __pyx_v_mtype = MATPRODUCT_UNSPECIFIED; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1094 + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) # <<<<<<<<<<<<<< + * CHKERR( MatProductGetType(mat, &mtype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetMats(__pyx_v_mat, (&__pyx_v_A), (&__pyx_v_B), (&__pyx_v_C))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1094, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1095 + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * CHKERR( MatProductGetType(mat, &mtype) ) # <<<<<<<<<<<<<< + * + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetType(__pyx_v_mat, (&__pyx_v_mtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1095, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1097 + * CHKERR( MatProductGetType(mat, &mtype) ) + * + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} # <<<<<<<<<<<<<< + * + * cdef Mat_Product *product = mat.product + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AB); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_AB) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABt); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_ABt) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AtB); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_AtB) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_PtAP); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_PtAP) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_RARt); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_RARt) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABC); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_ABC) < 0) __PYX_ERR(11, 1097, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_mtypes = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1099 + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} + * + * cdef Mat_Product *product = mat.product # <<<<<<<<<<<<<< + * cdef PetscInt i = product.data + * if i < 0 or i > 2: + */ + __pyx_t_4 = __pyx_v_mat->product; + __pyx_v_product = __pyx_t_4; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1100 + * + * cdef Mat_Product *product = mat.product + * cdef PetscInt i = product.data # <<<<<<<<<<<<<< + * if i < 0 or i > 2: + * return PetscSETERR(PETSC_ERR_PLIB, + */ + __pyx_v_i = ((PetscInt)((Py_uintptr_t)__pyx_v_product->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1101 + * cdef Mat_Product *product = mat.product + * cdef PetscInt i = product.data + * if i < 0 or i > 2: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + */ + __pyx_t_6 = ((__pyx_v_i < 0) != 0); + if (!__pyx_t_6) { + } else { + __pyx_t_5 = __pyx_t_6; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_6 = ((__pyx_v_i > 2) != 0); + __pyx_t_5 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1102 + * cdef PetscInt i = product.data + * if i < 0 or i > 2: + * return PetscSETERR(PETSC_ERR_PLIB, # <<<<<<<<<<<<<< + * "Corrupted composed id") + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_PLIB, ((char *)"Corrupted composed id")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1101 + * cdef Mat_Product *product = mat.product + * cdef PetscInt i = product.data + * if i < 0 or i > 2: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1104 + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A # <<<<<<<<<<<<<< + * + * cdef Mat PyA = Mat_(A) + */ + if (((__pyx_v_i == 2) != 0)) { + __pyx_t_7 = __pyx_v_C; + } else { + if (((__pyx_v_i == 1) != 0)) { + __pyx_t_8 = __pyx_v_B; + } else { + __pyx_t_8 = __pyx_v_A; + } + __pyx_t_7 = __pyx_t_8; + } + __pyx_v_pM = __pyx_t_7; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1106 + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A + * + * cdef Mat PyA = Mat_(A) # <<<<<<<<<<<<<< + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_A)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyA = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1107 + * + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) # <<<<<<<<<<<<<< + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_B)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyB = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1108 + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) # <<<<<<<<<<<<<< + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_C)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyC = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1109 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + __pyx_t_5 = ((__pyx_v_mtype == MATPRODUCT_ABC) != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1110 + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) # <<<<<<<<<<<<<< + * else: + * mats = (PyA, PyB, None) + */ + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyC)); + PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_PyC)); + __pyx_v_mats = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1109 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + goto __pyx_L6; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1112 + * mats = (PyA, PyB, PyC) + * else: + * mats = (PyA, PyB, None) # <<<<<<<<<<<<<< + * + * cdef productNumeric = PyMat(pM).productNumeric + */ + /*else*/ { + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None); + __pyx_v_mats = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + } + __pyx_L6:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1114 + * mats = (PyA, PyB, None) + * + * cdef productNumeric = PyMat(pM).productNumeric # <<<<<<<<<<<<<< + * if productNumeric is None: return UNSUPPORTED(b"productNumeric") + * productNumeric(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_pM)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_productNumeric); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_productNumeric = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1115 + * + * cdef productNumeric = PyMat(pM).productNumeric + * if productNumeric is None: return UNSUPPORTED(b"productNumeric") # <<<<<<<<<<<<<< + * productNumeric(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) + * + */ + __pyx_t_5 = (__pyx_v_productNumeric == Py_None); + __pyx_t_6 = (__pyx_t_5 != 0); + if (__pyx_t_6) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"productNumeric")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1116 + * cdef productNumeric = PyMat(pM).productNumeric + * if productNumeric is None: return UNSUPPORTED(b"productNumeric") + * productNumeric(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) # <<<<<<<<<<<<<< + * + * return FunctionEnd() + */ + if (((__pyx_v_C == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __pyx_t_3 = ((PyObject *)__pyx_v_PyC); + } else { + if (((__pyx_v_B == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __pyx_t_2 = ((PyObject *)__pyx_v_PyB); + } else { + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __pyx_t_2 = ((PyObject *)__pyx_v_PyA); + } + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_9 = __Pyx_PyInt_From_MatProductType(__pyx_v_mtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_mtypes, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_10); + PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_10); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_10 = 0; + __pyx_t_10 = PyNumber_Add(__pyx_t_9, __pyx_v_mats); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_v_productNumeric, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1118 + * productNumeric(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) + * + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscInt matmatid = -1 + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1085 + * return FunctionEnd() + * + * cdef PetscErrorCode MatProductNumeric_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatProductNumeric_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mtypes); + __Pyx_XDECREF((PyObject *)__pyx_v_PyA); + __Pyx_XDECREF((PyObject *)__pyx_v_PyB); + __Pyx_XDECREF((PyObject *)__pyx_v_PyC); + __Pyx_XDECREF(__pyx_v_mats); + __Pyx_XDECREF(__pyx_v_productNumeric); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1122 + * cdef PetscInt matmatid = -1 + * + * cdef PetscErrorCode MatProductSymbolic_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductSymbolic_Python(Mat __pyx_v_mat) { + Mat __pyx_v_A; + Mat __pyx_v_B; + Mat __pyx_v_C; + MatProductType __pyx_v_mtype; + PyObject *__pyx_v_mtypes = NULL; + PetscInt __pyx_v_i; + PetscBool __pyx_v_flg; + Mat __pyx_v_pM; + struct PyPetscMatObject *__pyx_v_PyA = 0; + struct PyPetscMatObject *__pyx_v_PyB = 0; + struct PyPetscMatObject *__pyx_v_PyC = 0; + PyObject *__pyx_v_mats = NULL; + PyObject *__pyx_v_productSymbolic = 0; + Mat_Product *__pyx_v_product; + MatOps __pyx_v_ops; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + Mat __pyx_t_6; + Mat __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + Mat_Product *__pyx_t_10; + MatOps __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatProductSymbolic_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1126 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductSymbolic_Python") # <<<<<<<<<<<<<< + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatProductSymbolic_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1127 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductSymbolic_Python") + * cdef PetscMat A = NULL # <<<<<<<<<<<<<< + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + */ + __pyx_v_A = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1128 + * FunctionBegin(b"MatProductSymbolic_Python") + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL # <<<<<<<<<<<<<< + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + */ + __pyx_v_B = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1129 + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL # <<<<<<<<<<<<<< + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + */ + __pyx_v_C = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1130 + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED # <<<<<<<<<<<<<< + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * CHKERR( MatProductGetType(mat, &mtype) ) + */ + __pyx_v_mtype = MATPRODUCT_UNSPECIFIED; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1131 + * cdef PetscMat C = NULL + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) # <<<<<<<<<<<<<< + * CHKERR( MatProductGetType(mat, &mtype) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetMats(__pyx_v_mat, (&__pyx_v_A), (&__pyx_v_B), (&__pyx_v_C))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1131, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1132 + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * CHKERR( MatProductGetType(mat, &mtype) ) # <<<<<<<<<<<<<< + * + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetType(__pyx_v_mat, (&__pyx_v_mtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1132, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1134 + * CHKERR( MatProductGetType(mat, &mtype) ) + * + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} # <<<<<<<<<<<<<< + * + * global matmatid + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AB); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_AB) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABt); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_ABt) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AtB); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_AtB) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_PtAP); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_PtAP) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_RARt); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_RARt) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABC); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_2, __pyx_t_3, __pyx_n_s_ABC) < 0) __PYX_ERR(11, 1134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_mtypes = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1137 + * + * global matmatid + * cdef PetscInt i = -1 # <<<<<<<<<<<<<< + * cdef PetscBool flg = PETSC_FALSE + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) + */ + __pyx_v_i = -1L; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1138 + * global matmatid + * cdef PetscInt i = -1 + * cdef PetscBool flg = PETSC_FALSE # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) + * if flg is not PETSC_TRUE: + */ + __pyx_v_flg = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1139 + * cdef PetscInt i = -1 + * cdef PetscBool flg = PETSC_FALSE + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) # <<<<<<<<<<<<<< + * if flg is not PETSC_TRUE: + * return PetscSETERR(PETSC_ERR_PLIB, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposedDataGetIntPy(((PetscObject)__pyx_v_mat), __pyx_v_8petsc4py_5PETSc_matmatid, (&__pyx_v_i), (&__pyx_v_flg))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1139, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1140 + * cdef PetscBool flg = PETSC_FALSE + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) + * if flg is not PETSC_TRUE: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing composed id") + */ + __pyx_t_4 = ((__pyx_v_flg != PETSC_TRUE) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1141 + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) + * if flg is not PETSC_TRUE: + * return PetscSETERR(PETSC_ERR_PLIB, # <<<<<<<<<<<<<< + * "Missing composed id") + * if i < 0 or i > 2: + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_PLIB, ((char *)"Missing composed id")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1140 + * cdef PetscBool flg = PETSC_FALSE + * CHKERR( PetscObjectComposedDataGetIntPy(mat, matmatid, &i, &flg) ) + * if flg is not PETSC_TRUE: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing composed id") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1143 + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing composed id") + * if i < 0 or i > 2: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + */ + __pyx_t_5 = ((__pyx_v_i < 0) != 0); + if (!__pyx_t_5) { + } else { + __pyx_t_4 = __pyx_t_5; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_i > 2) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L5_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1144 + * "Missing composed id") + * if i < 0 or i > 2: + * return PetscSETERR(PETSC_ERR_PLIB, # <<<<<<<<<<<<<< + * "Corrupted composed id") + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_PLIB, ((char *)"Corrupted composed id")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1143 + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing composed id") + * if i < 0 or i > 2: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1146 + * return PetscSETERR(PETSC_ERR_PLIB, + * "Corrupted composed id") + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A # <<<<<<<<<<<<<< + * + * cdef Mat PyA = Mat_(A) + */ + if (((__pyx_v_i == 2) != 0)) { + __pyx_t_6 = __pyx_v_C; + } else { + if (((__pyx_v_i == 1) != 0)) { + __pyx_t_7 = __pyx_v_B; + } else { + __pyx_t_7 = __pyx_v_A; + } + __pyx_t_6 = __pyx_t_7; + } + __pyx_v_pM = __pyx_t_6; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1148 + * cdef PetscMat pM = C if i == 2 else B if i == 1 else A + * + * cdef Mat PyA = Mat_(A) # <<<<<<<<<<<<<< + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_A)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyA = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1149 + * + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) # <<<<<<<<<<<<<< + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_B)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyB = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1150 + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) # <<<<<<<<<<<<<< + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_C)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_PyC = ((struct PyPetscMatObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1151 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + __pyx_t_4 = ((__pyx_v_mtype == MATPRODUCT_ABC) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1152 + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) # <<<<<<<<<<<<<< + * else: + * mats = (PyA, PyB, None) + */ + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyC)); + PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_PyC)); + __pyx_v_mats = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1151 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + goto __pyx_L7; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1154 + * mats = (PyA, PyB, PyC) + * else: + * mats = (PyA, PyB, None) # <<<<<<<<<<<<<< + * + * cdef productSymbolic = PyMat(pM).productSymbolic + */ + /*else*/ { + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_2, 2, Py_None); + __pyx_v_mats = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + } + __pyx_L7:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1156 + * mats = (PyA, PyB, None) + * + * cdef productSymbolic = PyMat(pM).productSymbolic # <<<<<<<<<<<<<< + * if productSymbolic is None: return UNSUPPORTED(b"productSymbolic") + * productSymbolic(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_pM)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_productSymbolic); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_productSymbolic = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1157 + * + * cdef productSymbolic = PyMat(pM).productSymbolic + * if productSymbolic is None: return UNSUPPORTED(b"productSymbolic") # <<<<<<<<<<<<<< + * productSymbolic(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) + * + */ + __pyx_t_4 = (__pyx_v_productSymbolic == Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"productSymbolic")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1158 + * cdef productSymbolic = PyMat(pM).productSymbolic + * if productSymbolic is None: return UNSUPPORTED(b"productSymbolic") + * productSymbolic(PyC if C == pM else PyB if B == pM else PyA, Mat_(mat), mtypes[mtype], *mats) # <<<<<<<<<<<<<< + * + * # Store id in matrix product + */ + if (((__pyx_v_C == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __pyx_t_3 = ((PyObject *)__pyx_v_PyC); + } else { + if (((__pyx_v_B == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __pyx_t_2 = ((PyObject *)__pyx_v_PyB); + } else { + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __pyx_t_2 = ((PyObject *)__pyx_v_PyA); + } + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; + } + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_mat)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_8 = __Pyx_PyInt_From_MatProductType(__pyx_v_mtype); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_mtypes, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_9); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_9); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_9 = 0; + __pyx_t_9 = PyNumber_Add(__pyx_t_8, __pyx_v_mats); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_productSymbolic, __pyx_t_9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1161 + * + * # Store id in matrix product + * cdef Mat_Product *product = mat.product # <<<<<<<<<<<<<< + * product.data = i + * + */ + __pyx_t_10 = __pyx_v_mat->product; + __pyx_v_product = __pyx_t_10; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1162 + * # Store id in matrix product + * cdef Mat_Product *product = mat.product + * product.data = i # <<<<<<<<<<<<<< + * + * cdef MatOps ops = mat.ops + */ + __pyx_v_product->data = ((void *)((Py_uintptr_t)__pyx_v_i)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1164 + * product.data = i + * + * cdef MatOps ops = mat.ops # <<<<<<<<<<<<<< + * ops.productnumeric = MatProductNumeric_Python + * return FunctionEnd() + */ + __pyx_t_11 = __pyx_v_mat->ops; + __pyx_v_ops = __pyx_t_11; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1165 + * + * cdef MatOps ops = mat.ops + * ops.productnumeric = MatProductNumeric_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_v_ops->productnumeric = __pyx_f_8petsc4py_5PETSc_MatProductNumeric_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1166 + * cdef MatOps ops = mat.ops + * ops.productnumeric = MatProductNumeric_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatProductSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1122 + * cdef PetscInt matmatid = -1 + * + * cdef PetscErrorCode MatProductSymbolic_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.MatProductSymbolic_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mtypes); + __Pyx_XDECREF((PyObject *)__pyx_v_PyA); + __Pyx_XDECREF((PyObject *)__pyx_v_PyB); + __Pyx_XDECREF((PyObject *)__pyx_v_PyC); + __Pyx_XDECREF(__pyx_v_mats); + __Pyx_XDECREF(__pyx_v_productSymbolic); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1168 + * return FunctionEnd() + * + * cdef PetscErrorCode MatProductSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_MatProductSetFromOptions_Python(Mat __pyx_v_mat) { + Mat __pyx_v_A; + Mat __pyx_v_B; + Mat __pyx_v_C; + MatProductType __pyx_v_mtype; + PyObject *__pyx_v_mtypes = NULL; + struct PyPetscMatObject *__pyx_v_PyA = 0; + struct PyPetscMatObject *__pyx_v_PyB = 0; + struct PyPetscMatObject *__pyx_v_PyC = 0; + PyObject *__pyx_v_mats = NULL; + PyObject *__pyx_v_found = NULL; + PetscBool __pyx_v_mispy; + Mat __pyx_v_pM; + struct PyPetscMatObject *__pyx_v_mm = 0; + PetscInt __pyx_v_i; + MatOps __pyx_v_ops; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + Py_ssize_t __pyx_t_7; + PetscInt __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + MatOps __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("MatProductSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1172 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductSetFromOptions_Python") # <<<<<<<<<<<<<< + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"MatProductSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1173 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"MatProductSetFromOptions_Python") + * cdef PetscMat A = NULL # <<<<<<<<<<<<<< + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + */ + __pyx_v_A = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1174 + * FunctionBegin(b"MatProductSetFromOptions_Python") + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL # <<<<<<<<<<<<<< + * cdef PetscMat C = NULL + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + */ + __pyx_v_B = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1175 + * cdef PetscMat A = NULL + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL # <<<<<<<<<<<<<< + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * if A == NULL or B == NULL: + */ + __pyx_v_C = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1176 + * cdef PetscMat B = NULL + * cdef PetscMat C = NULL + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) # <<<<<<<<<<<<<< + * if A == NULL or B == NULL: + * return PetscSETERR(PETSC_ERR_PLIB, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetMats(__pyx_v_mat, (&__pyx_v_A), (&__pyx_v_B), (&__pyx_v_C))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1176, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1177 + * cdef PetscMat C = NULL + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * if A == NULL or B == NULL: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing matrices") + */ + __pyx_t_3 = ((__pyx_v_A == NULL) != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_B == NULL) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1178 + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * if A == NULL or B == NULL: + * return PetscSETERR(PETSC_ERR_PLIB, # <<<<<<<<<<<<<< + * "Missing matrices") + * + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_PLIB, ((char *)"Missing matrices")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1177 + * cdef PetscMat C = NULL + * CHKERR( MatProductGetMats(mat, &A, &B, &C) ) + * if A == NULL or B == NULL: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Missing matrices") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1181 + * "Missing matrices") + * + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED # <<<<<<<<<<<<<< + * CHKERR( MatProductGetType(mat, &mtype) ) + * if mtype == MATPRODUCT_UNSPECIFIED: + */ + __pyx_v_mtype = MATPRODUCT_UNSPECIFIED; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1182 + * + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetType(mat, &mtype) ) # <<<<<<<<<<<<<< + * if mtype == MATPRODUCT_UNSPECIFIED: + * return PetscSETERR(PETSC_ERR_PLIB, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatProductGetType(__pyx_v_mat, (&__pyx_v_mtype))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1182, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1183 + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetType(mat, &mtype) ) + * if mtype == MATPRODUCT_UNSPECIFIED: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Unknown product type") + */ + __pyx_t_2 = ((__pyx_v_mtype == MATPRODUCT_UNSPECIFIED) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1184 + * CHKERR( MatProductGetType(mat, &mtype) ) + * if mtype == MATPRODUCT_UNSPECIFIED: + * return PetscSETERR(PETSC_ERR_PLIB, # <<<<<<<<<<<<<< + * "Unknown product type") + * + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_PLIB, ((char *)"Unknown product type")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1183 + * cdef PetscMatProductType mtype = MATPRODUCT_UNSPECIFIED + * CHKERR( MatProductGetType(mat, &mtype) ) + * if mtype == MATPRODUCT_UNSPECIFIED: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_PLIB, + * "Unknown product type") + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1187 + * "Unknown product type") + * + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} # <<<<<<<<<<<<<< + * + * cdef Mat PyA = Mat_(A) + */ + __pyx_t_4 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AB); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_AB) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABt); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_ABt) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_AtB); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_AtB) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_PtAP); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_PtAP) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_RARt); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_RARt) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = __Pyx_PyInt_From_MatProductType(MATPRODUCT_ABC); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_t_4, __pyx_t_5, __pyx_n_s_ABC) < 0) __PYX_ERR(11, 1187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_mtypes = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1189 + * mtypes = {MATPRODUCT_AB : 'AB', MATPRODUCT_ABt : 'ABt', MATPRODUCT_AtB : 'AtB', MATPRODUCT_PtAP : 'PtAP', MATPRODUCT_RARt: 'RARt', MATPRODUCT_ABC: 'ABC'} + * + * cdef Mat PyA = Mat_(A) # <<<<<<<<<<<<<< + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_A)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_PyA = ((struct PyPetscMatObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1190 + * + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) # <<<<<<<<<<<<<< + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_B)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_PyB = ((struct PyPetscMatObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1191 + * cdef Mat PyA = Mat_(A) + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) # <<<<<<<<<<<<<< + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_C)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_PyC = ((struct PyPetscMatObject *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1192 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + __pyx_t_2 = ((__pyx_v_mtype == MATPRODUCT_ABC) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1193 + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: + * mats = (PyA, PyB, PyC) # <<<<<<<<<<<<<< + * else: + * mats = (PyA, PyB, None) + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyC)); + PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_PyC)); + __pyx_v_mats = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1192 + * cdef Mat PyB = Mat_(B) + * cdef Mat PyC = Mat_(C) + * if mtype == MATPRODUCT_ABC: # <<<<<<<<<<<<<< + * mats = (PyA, PyB, PyC) + * else: + */ + goto __pyx_L7; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1195 + * mats = (PyA, PyB, PyC) + * else: + * mats = (PyA, PyB, None) # <<<<<<<<<<<<<< + * + * # Find Python matrix in mats able to perform the product + */ + /*else*/ { + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyA)); + PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_PyA)); + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_PyB)); + PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_PyB)); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_4, 2, Py_None); + __pyx_v_mats = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L7:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1198 + * + * # Find Python matrix in mats able to perform the product + * found = False # <<<<<<<<<<<<<< + * cdef PetscBool mispy = PETSC_FALSE + * cdef PetscMat pM = NULL + */ + __Pyx_INCREF(Py_False); + __pyx_v_found = Py_False; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1199 + * # Find Python matrix in mats able to perform the product + * found = False + * cdef PetscBool mispy = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscMat pM = NULL + * cdef Mat mm + */ + __pyx_v_mispy = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1200 + * found = False + * cdef PetscBool mispy = PETSC_FALSE + * cdef PetscMat pM = NULL # <<<<<<<<<<<<<< + * cdef Mat mm + * cdef PetscInt i = -1 + */ + __pyx_v_pM = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1202 + * cdef PetscMat pM = NULL + * cdef Mat mm + * cdef PetscInt i = -1 # <<<<<<<<<<<<<< + * for i in range(len(mats)): + * if mats[i] is None: continue + */ + __pyx_v_i = -1L; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1203 + * cdef Mat mm + * cdef PetscInt i = -1 + * for i in range(len(mats)): # <<<<<<<<<<<<<< + * if mats[i] is None: continue + * mm = mats[i] + */ + __pyx_t_6 = PyTuple_GET_SIZE(__pyx_v_mats); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(11, 1203, __pyx_L1_error) + __pyx_t_7 = __pyx_t_6; + for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) { + __pyx_v_i = __pyx_t_8; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1204 + * cdef PetscInt i = -1 + * for i in range(len(mats)): + * if mats[i] is None: continue # <<<<<<<<<<<<<< + * mm = mats[i] + * pM = mm.mat + */ + __pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_mats, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = (__pyx_t_4 == Py_None); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + goto __pyx_L8_continue; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1205 + * for i in range(len(mats)): + * if mats[i] is None: continue + * mm = mats[i] # <<<<<<<<<<<<<< + * pM = mm.mat + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + */ + __pyx_t_4 = __Pyx_GetItemInt_Tuple(__pyx_v_mats, __pyx_v_i, PetscInt, 1, __Pyx_PyInt_From_PetscInt, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1205, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_8petsc4py_5PETSc_Mat))))) __PYX_ERR(11, 1205, __pyx_L1_error) + __Pyx_XDECREF_SET(__pyx_v_mm, ((struct PyPetscMatObject *)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1206 + * if mats[i] is None: continue + * mm = mats[i] + * pM = mm.mat # <<<<<<<<<<<<<< + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + * if mispy: + */ + __pyx_v_pM = ((Mat)__pyx_v_mm->mat); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1207 + * mm = mats[i] + * pM = mm.mat + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) # <<<<<<<<<<<<<< + * if mispy: + * if PyMat(pM).productSetFromOptions is not None: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectTypeCompare(((PetscObject)__pyx_v_pM), MATPYTHON, (&__pyx_v_mispy))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1207, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1208 + * pM = mm.mat + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + * if mispy: # <<<<<<<<<<<<<< + * if PyMat(pM).productSetFromOptions is not None: + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + */ + if (__pyx_v_mispy) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1209 + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + * if mispy: + * if PyMat(pM).productSetFromOptions is not None: # <<<<<<<<<<<<<< + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + * if found: break + */ + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_pM)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_productSetFromOptions); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = (__pyx_t_5 != Py_None); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1210 + * if mispy: + * if PyMat(pM).productSetFromOptions is not None: + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) # <<<<<<<<<<<<<< + * if found: break + * if not found: + */ + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyMat(__pyx_v_pM)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_productSetFromOptions); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (((__pyx_v_C == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyC)); + __pyx_t_5 = ((PyObject *)__pyx_v_PyC); + } else { + if (((__pyx_v_B == __pyx_v_pM) != 0)) { + __Pyx_INCREF(((PyObject *)__pyx_v_PyB)); + __pyx_t_9 = ((PyObject *)__pyx_v_PyB); + } else { + __Pyx_INCREF(((PyObject *)__pyx_v_PyA)); + __pyx_t_9 = ((PyObject *)__pyx_v_PyA); + } + __pyx_t_5 = __pyx_t_9; + __pyx_t_9 = 0; + } + __pyx_t_9 = __Pyx_PyInt_From_MatProductType(__pyx_v_mtype); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_mtypes, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_10); + PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_10); + __pyx_t_5 = 0; + __pyx_t_10 = 0; + __pyx_t_10 = PyNumber_Add(__pyx_t_9, __pyx_v_mats); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_DECREF_SET(__pyx_v_found, __pyx_t_9); + __pyx_t_9 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1211 + * if PyMat(pM).productSetFromOptions is not None: + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + * if found: break # <<<<<<<<<<<<<< + * if not found: + * return FunctionEnd() + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_found); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 1211, __pyx_L1_error) + if (__pyx_t_2) { + goto __pyx_L9_break; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1209 + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + * if mispy: + * if PyMat(pM).productSetFromOptions is not None: # <<<<<<<<<<<<<< + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + * if found: break + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1208 + * pM = mm.mat + * CHKERR( PetscObjectTypeCompare(pM, MATPYTHON, &mispy) ) + * if mispy: # <<<<<<<<<<<<<< + * if PyMat(pM).productSetFromOptions is not None: + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + */ + } + __pyx_L8_continue:; + } + __pyx_L9_break:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1212 + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + * if found: break + * if not found: # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_found); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(11, 1212, __pyx_L1_error) + __pyx_t_3 = ((!__pyx_t_2) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1213 + * if found: break + * if not found: + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef MatOps ops = mat.ops + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1212 + * found = PyMat(pM).productSetFromOptions(PyC if C == pM else PyB if B == pM else PyA, mtypes[mtype], *mats) + * if found: break + * if not found: # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1215 + * return FunctionEnd() + * + * cdef MatOps ops = mat.ops # <<<<<<<<<<<<<< + * ops.productsymbolic = MatProductSymbolic_Python + * + */ + __pyx_t_11 = __pyx_v_mat->ops; + __pyx_v_ops = __pyx_t_11; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1216 + * + * cdef MatOps ops = mat.ops + * ops.productsymbolic = MatProductSymbolic_Python # <<<<<<<<<<<<<< + * + * # Store index (within the product) of the Python matrix which is capable of performing the operation + */ + __pyx_v_ops->productsymbolic = __pyx_f_8petsc4py_5PETSc_MatProductSymbolic_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1222 + * # Symbolic operation will get this index and store it in the product data + * global matmatid + * if matmatid < 0: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposedDataRegisterPy(&matmatid) ) + * CHKERR( PetscObjectComposedDataSetIntPy(mat, matmatid, i) ) + */ + __pyx_t_3 = ((__pyx_v_8petsc4py_5PETSc_matmatid < 0) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1223 + * global matmatid + * if matmatid < 0: + * CHKERR( PetscObjectComposedDataRegisterPy(&matmatid) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposedDataSetIntPy(mat, matmatid, i) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposedDataRegisterPy((&__pyx_v_8petsc4py_5PETSc_matmatid))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1223, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1222 + * # Symbolic operation will get this index and store it in the product data + * global matmatid + * if matmatid < 0: # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposedDataRegisterPy(&matmatid) ) + * CHKERR( PetscObjectComposedDataSetIntPy(mat, matmatid, i) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1224 + * if matmatid < 0: + * CHKERR( PetscObjectComposedDataRegisterPy(&matmatid) ) + * CHKERR( PetscObjectComposedDataSetIntPy(mat, matmatid, i) ) # <<<<<<<<<<<<<< + * + * return FunctionEnd() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposedDataSetIntPy(((PetscObject)__pyx_v_mat), __pyx_v_8petsc4py_5PETSc_matmatid, __pyx_v_i)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1224, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1226 + * CHKERR( PetscObjectComposedDataSetIntPy(mat, matmatid, i) ) + * + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1168 + * return FunctionEnd() + * + * cdef PetscErrorCode MatProductSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscMat mat + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.MatProductSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_mtypes); + __Pyx_XDECREF((PyObject *)__pyx_v_PyA); + __Pyx_XDECREF((PyObject *)__pyx_v_PyB); + __Pyx_XDECREF((PyObject *)__pyx_v_PyC); + __Pyx_XDECREF(__pyx_v_mats); + __Pyx_XDECREF(__pyx_v_found); + __Pyx_XDECREF((PyObject *)__pyx_v_mm); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1252 + * @cython.internal + * cdef class _PyPC(_PyObj): pass + * cdef inline _PyPC PyPC(PetscPC pc): # <<<<<<<<<<<<<< + * if pc != NULL and pc.data != NULL: + * return <_PyPC>pc.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyPC *__pyx_f_8petsc4py_5PETSc_PyPC(PC __pyx_v_pc) { + struct __pyx_obj_8petsc4py_5PETSc__PyPC *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyPC", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1253 + * cdef class _PyPC(_PyObj): pass + * cdef inline _PyPC PyPC(PetscPC pc): + * if pc != NULL and pc.data != NULL: # <<<<<<<<<<<<<< + * return <_PyPC>pc.data + * else: + */ + __pyx_t_2 = ((__pyx_v_pc != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_pc->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1254 + * cdef inline _PyPC PyPC(PetscPC pc): + * if pc != NULL and pc.data != NULL: + * return <_PyPC>pc.data # <<<<<<<<<<<<<< + * else: + * return _PyPC.__new__(_PyPC) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_v_pc->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_v_pc->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1253 + * cdef class _PyPC(_PyObj): pass + * cdef inline _PyPC PyPC(PetscPC pc): + * if pc != NULL and pc.data != NULL: # <<<<<<<<<<<<<< + * return <_PyPC>pc.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1256 + * return <_PyPC>pc.data + * else: + * return _PyPC.__new__(_PyPC) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode PCPythonGetContext(PetscPC pc, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PyPC(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PyPC), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1256, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1252 + * @cython.internal + * cdef class _PyPC(_PyObj): pass + * cdef inline _PyPC PyPC(PetscPC pc): # <<<<<<<<<<<<<< + * if pc != NULL and pc.data != NULL: + * return <_PyPC>pc.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PyPC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1258 + * return _PyPC.__new__(_PyPC) + * + * cdef public PetscErrorCode PCPythonGetContext(PetscPC pc, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonGetContext") + */ + +PetscErrorCode PCPythonGetContext(PC __pyx_v_pc, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PCPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1260 + * cdef public PetscErrorCode PCPythonGetContext(PetscPC pc, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonGetContext") # <<<<<<<<<<<<<< + * PyPC(pc).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPythonGetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1261 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonGetContext") + * PyPC(pc).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 1261, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1262 + * FunctionBegin(b"PCPythonGetContext") + * PyPC(pc).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode PCPythonSetContext(PetscPC pc, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1258 + * return _PyPC.__new__(_PyPC) + * + * cdef public PetscErrorCode PCPythonGetContext(PetscPC pc, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonGetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1264 + * return FunctionEnd() + * + * cdef public PetscErrorCode PCPythonSetContext(PetscPC pc, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonSetContext") + */ + +PetscErrorCode PCPythonSetContext(PC __pyx_v_pc, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PCPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1266 + * cdef public PetscErrorCode PCPythonSetContext(PetscPC pc, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonSetContext") # <<<<<<<<<<<<<< + * PyPC(pc).setcontext(ctx, PC_(pc)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPythonSetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1267 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonSetContext") + * PyPC(pc).setcontext(ctx, PC_(pc)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 1267, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1268 + * FunctionBegin(b"PCPythonSetContext") + * PyPC(pc).setcontext(ctx, PC_(pc)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPythonSetType_PYTHON(PetscPC pc, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1264 + * return FunctionEnd() + * + * cdef public PetscErrorCode PCPythonSetContext(PetscPC pc, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCPythonSetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PCPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1270 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPythonSetType_PYTHON(PetscPC pc, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPythonSetType_PYTHON(PC __pyx_v_pc, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1272 + * cdef PetscErrorCode PCPythonSetType_PYTHON(PetscPC pc, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1273 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * PCPythonSetContext(pc, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1274 + * FunctionBegin(b"PCPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * PCPythonSetContext(pc, ctx) + * PyPC(pc).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1275 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * PCPythonSetContext(pc, ctx) # <<<<<<<<<<<<<< + * PyPC(pc).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = PCPythonSetContext(__pyx_v_pc, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1275, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1276 + * cdef object ctx = createcontext(name) + * PCPythonSetContext(pc, ctx) + * PyPC(pc).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 1276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1277 + * PCPythonSetContext(pc, ctx) + * PyPC(pc).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPythonGetType_PYTHON(PetscPC pc, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1270 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPythonSetType_PYTHON(PetscPC pc, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.PCPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1279 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPythonGetType_PYTHON(PetscPC pc, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPythonGetType_PYTHON(PC __pyx_v_pc, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1281 + * cdef PetscErrorCode PCPythonGetType_PYTHON(PetscPC pc, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PyPC(pc).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1282 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonGetType_PYTHON") + * name[0] = PyPC(pc).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 1282, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1283 + * FunctionBegin(b"PCPythonGetType_PYTHON") + * name[0] = PyPC(pc).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCCreate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1279 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPythonGetType_PYTHON(PetscPC pc, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.PCPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1285 + * return FunctionEnd() + * + * cdef PetscErrorCode PCCreate_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCCreate_Python(PC __pyx_v_pc) { + PCOps __pyx_v_ops; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PCOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1289 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef PCOps ops = pc.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1291 + * FunctionBegin(b"PCCreate_Python") + * # + * cdef PCOps ops = pc.ops # <<<<<<<<<<<<<< + * ops.reset = PCReset_Python + * ops.destroy = PCDestroy_Python + */ + __pyx_t_1 = __pyx_v_pc->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1292 + * # + * cdef PCOps ops = pc.ops + * ops.reset = PCReset_Python # <<<<<<<<<<<<<< + * ops.destroy = PCDestroy_Python + * ops.setup = PCSetUp_Python + */ + __pyx_v_ops->reset = __pyx_f_8petsc4py_5PETSc_PCReset_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1293 + * cdef PCOps ops = pc.ops + * ops.reset = PCReset_Python + * ops.destroy = PCDestroy_Python # <<<<<<<<<<<<<< + * ops.setup = PCSetUp_Python + * ops.setfromoptions = PCSetFromOptions_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_PCDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1294 + * ops.reset = PCReset_Python + * ops.destroy = PCDestroy_Python + * ops.setup = PCSetUp_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = PCSetFromOptions_Python + * ops.view = PCView_Python + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_PCSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1295 + * ops.destroy = PCDestroy_Python + * ops.setup = PCSetUp_Python + * ops.setfromoptions = PCSetFromOptions_Python # <<<<<<<<<<<<<< + * ops.view = PCView_Python + * ops.presolve = PCPreSolve_Python + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_PCSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1296 + * ops.setup = PCSetUp_Python + * ops.setfromoptions = PCSetFromOptions_Python + * ops.view = PCView_Python # <<<<<<<<<<<<<< + * ops.presolve = PCPreSolve_Python + * ops.postsolve = PCPostSolve_Python + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_PCView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1297 + * ops.setfromoptions = PCSetFromOptions_Python + * ops.view = PCView_Python + * ops.presolve = PCPreSolve_Python # <<<<<<<<<<<<<< + * ops.postsolve = PCPostSolve_Python + * ops.apply = PCApply_Python + */ + __pyx_v_ops->presolve = __pyx_f_8petsc4py_5PETSc_PCPreSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1298 + * ops.view = PCView_Python + * ops.presolve = PCPreSolve_Python + * ops.postsolve = PCPostSolve_Python # <<<<<<<<<<<<<< + * ops.apply = PCApply_Python + * ops.matapply = PCMatApply_Python + */ + __pyx_v_ops->postsolve = __pyx_f_8petsc4py_5PETSc_PCPostSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1299 + * ops.presolve = PCPreSolve_Python + * ops.postsolve = PCPostSolve_Python + * ops.apply = PCApply_Python # <<<<<<<<<<<<<< + * ops.matapply = PCMatApply_Python + * ops.applytranspose = PCApplyTranspose_Python + */ + __pyx_v_ops->apply = __pyx_f_8petsc4py_5PETSc_PCApply_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1300 + * ops.postsolve = PCPostSolve_Python + * ops.apply = PCApply_Python + * ops.matapply = PCMatApply_Python # <<<<<<<<<<<<<< + * ops.applytranspose = PCApplyTranspose_Python + * ops.applysymmetricleft = PCApplySymmetricLeft_Python + */ + __pyx_v_ops->matapply = __pyx_f_8petsc4py_5PETSc_PCMatApply_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1301 + * ops.apply = PCApply_Python + * ops.matapply = PCMatApply_Python + * ops.applytranspose = PCApplyTranspose_Python # <<<<<<<<<<<<<< + * ops.applysymmetricleft = PCApplySymmetricLeft_Python + * ops.applysymmetricright = PCApplySymmetricRight_Python + */ + __pyx_v_ops->applytranspose = __pyx_f_8petsc4py_5PETSc_PCApplyTranspose_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1302 + * ops.matapply = PCMatApply_Python + * ops.applytranspose = PCApplyTranspose_Python + * ops.applysymmetricleft = PCApplySymmetricLeft_Python # <<<<<<<<<<<<<< + * ops.applysymmetricright = PCApplySymmetricRight_Python + * # + */ + __pyx_v_ops->applysymmetricleft = __pyx_f_8petsc4py_5PETSc_PCApplySymmetricLeft_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1303 + * ops.applytranspose = PCApplyTranspose_Python + * ops.applysymmetricleft = PCApplySymmetricLeft_Python + * ops.applysymmetricright = PCApplySymmetricRight_Python # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_ops->applysymmetricright = __pyx_f_8petsc4py_5PETSc_PCApplySymmetricRight_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1305 + * ops.applysymmetricright = PCApplySymmetricRight_Python + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * pc, b"PCPythonSetType_C", + * PCPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_pc), ((char *)"PCPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_PCPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1305, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1308 + * pc, b"PCPythonSetType_C", + * PCPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * pc, b"PCPythonGetType_C", + * PCPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_pc), ((char *)"PCPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_PCPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1308, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1312 + * PCPythonGetType_PYTHON) ) + * # + * cdef ctx = PyPC(NULL) # <<<<<<<<<<<<<< + * pc.data = ctx + * Py_INCREF(pc.data) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1313 + * # + * cdef ctx = PyPC(NULL) + * pc.data = ctx # <<<<<<<<<<<<<< + * Py_INCREF(pc.data) + * return FunctionEnd() + */ + __pyx_v_pc->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1314 + * cdef ctx = PyPC(NULL) + * pc.data = ctx + * Py_INCREF(pc.data) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + Py_INCREF(((PyObject *)__pyx_v_pc->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1315 + * pc.data = ctx + * Py_INCREF(pc.data) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode PCDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1285 + * return FunctionEnd() + * + * cdef PetscErrorCode PCCreate_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PCCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1317 + * return FunctionEnd() + * + * cdef inline PetscErrorCode PCDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCDestroy_Python_inner(PC __pyx_v_pc) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1321 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(pc) + * PCPythonSetContext(pc, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1322 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(pc) # <<<<<<<<<<<<<< + * PCPythonSetContext(pc, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_pc); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1323 + * try: + * addRef(pc) + * PCPythonSetContext(pc, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(pc) + */ + __pyx_t_1 = PCPythonSetContext(__pyx_v_pc, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1323, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1325 + * PCPythonSetContext(pc, NULL) + * finally: + * delRef(pc) # <<<<<<<<<<<<<< + * Py_DECREF(pc.data) + * pc.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_pc); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1326 + * finally: + * delRef(pc) + * Py_DECREF(pc.data) # <<<<<<<<<<<<<< + * pc.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_pc->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1327 + * delRef(pc) + * Py_DECREF(pc.data) + * pc.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_pc->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1325 + * PCPythonSetContext(pc, NULL) + * finally: + * delRef(pc) # <<<<<<<<<<<<<< + * Py_DECREF(pc.data) + * pc.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_pc); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1326 + * finally: + * delRef(pc) + * Py_DECREF(pc.data) # <<<<<<<<<<<<<< + * pc.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_pc->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1327 + * delRef(pc) + * Py_DECREF(pc.data) + * pc.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_pc->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1328 + * Py_DECREF(pc.data) + * pc.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1317 + * return FunctionEnd() + * + * cdef inline PetscErrorCode PCDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PCDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1330 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCDestroy_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCDestroy_Python(PC __pyx_v_pc) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1334 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * pc, b"PCPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1335 + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"PCDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * pc, b"PCPythonSetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_pc), ((char *)"PCPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1335, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1338 + * pc, b"PCPythonSetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * pc, b"PCPythonGetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_pc), ((char *)"PCPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1338, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1342 + * NULL) ) + * # + * if Py_IsInitialized(): PCDestroy_Python_inner(pc) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_PCDestroy_Python_inner(__pyx_v_pc); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1342, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1343 + * # + * if Py_IsInitialized(): PCDestroy_Python_inner(pc) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1330 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCDestroy_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.PCDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1345 + * return FunctionEnd() + * + * cdef PetscErrorCode PCSetUp_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCSetUp_Python(PC __pyx_v_pc) { + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PyObject *__pyx_v_o = 0; + PCOps __pyx_v_ops; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PCOps __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1349 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCSetUp_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048] + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1352 + * # + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PyPC(pc).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1353 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyPC(pc).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(pc), b"-pc_python_type", + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1354 + * cdef PetscBool found = PETSC_FALSE + * if PyPC(pc).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(pc), b"-pc_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_pc), ((char *)"-pc_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1354, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1357 + * getPrefix(pc), b"-pc_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * if PyPC(pc).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_3 = __pyx_v_found; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_name[0]) != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1358 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) # <<<<<<<<<<<<<< + * if PyPC(pc).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PCPythonSetType_PYTHON(__pyx_v_pc, __pyx_v_name); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1358, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_4); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1358, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1357 + * getPrefix(pc), b"-pc_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * if PyPC(pc).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1353 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyPC(pc).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(pc), b"-pc_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1359 + * if found and name[0]: + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * if PyPC(pc).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1360 + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * if PyPC(pc).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * PCPythonSetType(pc, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * PCPythonSetType(pc, \"[package.]module.class\")\n * PCSetFromOptions(pc) and pass option -pc_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1359 + * if found and name[0]: + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * if PyPC(pc).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1366 + * "-pc_python_type [package.]module.class") + * # + * cdef setUp = PyPC(pc).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(PC_(pc)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1367 + * # + * cdef setUp = PyPC(pc).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(PC_(pc)) + * # + */ + __pyx_t_2 = (__pyx_v_setUp != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1368 + * cdef setUp = PyPC(pc).setUp + * if setUp is not None: + * setUp(PC_(pc)) # <<<<<<<<<<<<<< + * # + * cdef o = PyPC(pc) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1367 + * # + * cdef setUp = PyPC(pc).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(PC_(pc)) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1370 + * setUp(PC_(pc)) + * # + * cdef o = PyPC(pc) # <<<<<<<<<<<<<< + * cdef PCOps ops = pc.ops + * if o.applyTranspose is None: + */ + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_o = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1371 + * # + * cdef o = PyPC(pc) + * cdef PCOps ops = pc.ops # <<<<<<<<<<<<<< + * if o.applyTranspose is None: + * ops.applytranspose = NULL + */ + __pyx_t_9 = __pyx_v_pc->ops; + __pyx_v_ops = __pyx_t_9; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1372 + * cdef o = PyPC(pc) + * cdef PCOps ops = pc.ops + * if o.applyTranspose is None: # <<<<<<<<<<<<<< + * ops.applytranspose = NULL + * if o.applySymmetricLeft is None: + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_o, __pyx_n_s_applyTranspose); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = (__pyx_t_6 == Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1373 + * cdef PCOps ops = pc.ops + * if o.applyTranspose is None: + * ops.applytranspose = NULL # <<<<<<<<<<<<<< + * if o.applySymmetricLeft is None: + * ops.applysymmetricleft = NULL + */ + __pyx_v_ops->applytranspose = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1372 + * cdef o = PyPC(pc) + * cdef PCOps ops = pc.ops + * if o.applyTranspose is None: # <<<<<<<<<<<<<< + * ops.applytranspose = NULL + * if o.applySymmetricLeft is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1374 + * if o.applyTranspose is None: + * ops.applytranspose = NULL + * if o.applySymmetricLeft is None: # <<<<<<<<<<<<<< + * ops.applysymmetricleft = NULL + * if o.applySymmetricRight is None: + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_o, __pyx_n_s_applySymmetricLeft); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = (__pyx_t_6 == Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1375 + * ops.applytranspose = NULL + * if o.applySymmetricLeft is None: + * ops.applysymmetricleft = NULL # <<<<<<<<<<<<<< + * if o.applySymmetricRight is None: + * ops.applysymmetricright = NULL + */ + __pyx_v_ops->applysymmetricleft = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1374 + * if o.applyTranspose is None: + * ops.applytranspose = NULL + * if o.applySymmetricLeft is None: # <<<<<<<<<<<<<< + * ops.applysymmetricleft = NULL + * if o.applySymmetricRight is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1376 + * if o.applySymmetricLeft is None: + * ops.applysymmetricleft = NULL + * if o.applySymmetricRight is None: # <<<<<<<<<<<<<< + * ops.applysymmetricright = NULL + * # + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_o, __pyx_n_s_applySymmetricRight); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = (__pyx_t_6 == Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1377 + * ops.applysymmetricleft = NULL + * if o.applySymmetricRight is None: + * ops.applysymmetricright = NULL # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + __pyx_v_ops->applysymmetricright = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1376 + * if o.applySymmetricLeft is None: + * ops.applysymmetricleft = NULL + * if o.applySymmetricRight is None: # <<<<<<<<<<<<<< + * ops.applysymmetricright = NULL + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1379 + * ops.applysymmetricright = NULL + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode PCReset_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1345 + * return FunctionEnd() + * + * cdef PetscErrorCode PCSetUp_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PCSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_XDECREF(__pyx_v_o); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1381 + * return FunctionEnd() + * + * cdef inline PetscErrorCode PCReset_Python_inner( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCReset_Python_inner(PC __pyx_v_pc) { + PyObject *__pyx_v_reset = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCReset_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1385 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyPC(pc).reset # <<<<<<<<<<<<<< + * if reset is not None: + * reset(PC_(pc)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_reset = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1386 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyPC(pc).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(PC_(pc)) + * return PETSC_SUCCESS + */ + __pyx_t_3 = (__pyx_v_reset != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1387 + * cdef reset = PyPC(pc).reset + * if reset is not None: + * reset(PC_(pc)) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_reset); + __pyx_t_5 = __pyx_v_reset; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1386 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyPC(pc).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(PC_(pc)) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1388 + * if reset is not None: + * reset(PC_(pc)) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCReset_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1381 + * return FunctionEnd() + * + * cdef inline PetscErrorCode PCReset_Python_inner( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.PCReset_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_reset); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1390 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCReset_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCReset_Python(PC __pyx_v_pc) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1394 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * if getRef(pc) == 0: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * FunctionBegin(b"PCReset_Python") + * if Py_IsInitialized(): PCReset_Python_inner(pc) + */ + __pyx_t_1 = ((__pyx_f_8petsc4py_5PETSc_getRef(__pyx_v_pc) == 0) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1395 + * nogil except PETSC_ERR_PYTHON: + * if getRef(pc) == 0: return PETSC_SUCCESS + * FunctionBegin(b"PCReset_Python") # <<<<<<<<<<<<<< + * if Py_IsInitialized(): PCReset_Python_inner(pc) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCReset_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1396 + * if getRef(pc) == 0: return PETSC_SUCCESS + * FunctionBegin(b"PCReset_Python") + * if Py_IsInitialized(): PCReset_Python_inner(pc) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = (Py_IsInitialized() != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_PCReset_Python_inner(__pyx_v_pc); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1396, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1397 + * FunctionBegin(b"PCReset_Python") + * if Py_IsInitialized(): PCReset_Python_inner(pc) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1390 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode PCReset_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.PCReset_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1399 + * return FunctionEnd() + * + * cdef PetscErrorCode PCSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscOptionItems *PetscOptionsObject, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCSetFromOptions_Python(PC __pyx_v_pc, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1404 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCSetFromOptions_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048], *defval = PyPC(pc).getname() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1406 + * FunctionBegin(b"PCSetFromOptions_Python") + * # + * cdef char name[2048], *defval = PyPC(pc).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC *)((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 1406, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1407 + * # + * cdef char name[2048], *defval = PyPC(pc).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1408 + * cdef char name[2048], *defval = PyPC(pc).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-pc_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1409 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-pc_python_type", b"Python [package.]module[.{class|function}]", + * b"PCPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-pc_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"PCPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1409, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1411 + * CHKERR( PetscOptionsString( + * b"-pc_python_type", b"Python [package.]module[.{class|function}]", + * b"PCPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1412 + * b"-pc_python_type", b"Python [package.]module[.{class|function}]", + * b"PCPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1413 + * b"PCPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PyPC(pc).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_PCPythonSetType_PYTHON(__pyx_v_pc, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1413, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1413, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1412 + * b"-pc_python_type", b"Python [package.]module[.{class|function}]", + * b"PCPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1415 + * CHKERR( PCPythonSetType_PYTHON(pc, name) ) + * # + * cdef setFromOptions = PyPC(pc).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(PC_(pc)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1416 + * # + * cdef setFromOptions = PyPC(pc).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(PC_(pc)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1417 + * cdef setFromOptions = PyPC(pc).setFromOptions + * if setFromOptions is not None: + * setFromOptions(PC_(pc)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1416 + * # + * cdef setFromOptions = PyPC(pc).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(PC_(pc)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1418 + * if setFromOptions is not None: + * setFromOptions(PC_(pc)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1399 + * return FunctionEnd() + * + * cdef PetscErrorCode PCSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscOptionItems *PetscOptionsObject, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.PCSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1420 + * return FunctionEnd() + * + * cdef PetscErrorCode PCView_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCView_Python(PC __pyx_v_pc, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1425 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCView_Python") # <<<<<<<<<<<<<< + * viewcontext(PyPC(pc), vwr) + * cdef view = PyPC(pc).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1426 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCView_Python") + * viewcontext(PyPC(pc), vwr) # <<<<<<<<<<<<<< + * cdef view = PyPC(pc).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 1426, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1427 + * FunctionBegin(b"PCView_Python") + * viewcontext(PyPC(pc), vwr) + * cdef view = PyPC(pc).view # <<<<<<<<<<<<<< + * if view is not None: + * view(PC_(pc), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1428 + * viewcontext(PyPC(pc), vwr) + * cdef view = PyPC(pc).view + * if view is not None: # <<<<<<<<<<<<<< + * view(PC_(pc), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1429 + * cdef view = PyPC(pc).view + * if view is not None: + * view(PC_(pc), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1428 + * viewcontext(PyPC(pc), vwr) + * cdef view = PyPC(pc).view + * if view is not None: # <<<<<<<<<<<<<< + * view(PC_(pc), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1430 + * if view is not None: + * view(PC_(pc), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPreSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1420 + * return FunctionEnd() + * + * cdef PetscErrorCode PCView_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.PCView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1432 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPreSolve_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscKSP ksp, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPreSolve_Python(PC __pyx_v_pc, KSP __pyx_v_ksp, Vec __pyx_v_b, Vec __pyx_v_x) { + PyObject *__pyx_v_preSolve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPreSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1439 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPreSolve_Python") # <<<<<<<<<<<<<< + * cdef preSolve = PyPC(pc).preSolve + * if preSolve is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPreSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1440 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPreSolve_Python") + * cdef preSolve = PyPC(pc).preSolve # <<<<<<<<<<<<<< + * if preSolve is not None: + * preSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_preSolve); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_preSolve = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1441 + * FunctionBegin(b"PCPreSolve_Python") + * cdef preSolve = PyPC(pc).preSolve + * if preSolve is not None: # <<<<<<<<<<<<<< + * preSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_preSolve != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1442 + * cdef preSolve = PyPC(pc).preSolve + * if preSolve is not None: + * preSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_preSolve); + __pyx_t_8 = __pyx_v_preSolve; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_7); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1441 + * FunctionBegin(b"PCPreSolve_Python") + * cdef preSolve = PyPC(pc).preSolve + * if preSolve is not None: # <<<<<<<<<<<<<< + * preSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1443 + * if preSolve is not None: + * preSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCPostSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1432 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPreSolve_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscKSP ksp, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.PCPreSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_preSolve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1445 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPostSolve_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscKSP ksp, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCPostSolve_Python(PC __pyx_v_pc, KSP __pyx_v_ksp, Vec __pyx_v_b, Vec __pyx_v_x) { + PyObject *__pyx_v_postSolve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCPostSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1452 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPostSolve_Python") # <<<<<<<<<<<<<< + * cdef postSolve = PyPC(pc).postSolve + * if postSolve is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCPostSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1453 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCPostSolve_Python") + * cdef postSolve = PyPC(pc).postSolve # <<<<<<<<<<<<<< + * if postSolve is not None: + * postSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_postSolve); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_postSolve = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1454 + * FunctionBegin(b"PCPostSolve_Python") + * cdef postSolve = PyPC(pc).postSolve + * if postSolve is not None: # <<<<<<<<<<<<<< + * postSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_postSolve != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1455 + * cdef postSolve = PyPC(pc).postSolve + * if postSolve is not None: + * postSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_postSolve); + __pyx_t_8 = __pyx_v_postSolve; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_7); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1454 + * FunctionBegin(b"PCPostSolve_Python") + * cdef postSolve = PyPC(pc).postSolve + * if postSolve is not None: # <<<<<<<<<<<<<< + * postSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1456 + * if postSolve is not None: + * postSolve(PC_(pc), KSP_(ksp), Vec_(b), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCApply_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1445 + * return FunctionEnd() + * + * cdef PetscErrorCode PCPostSolve_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscKSP ksp, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.PCPostSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_postSolve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1458 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApply_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApply_Python(PC __pyx_v_pc, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_apply = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCApply_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1464 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApply_Python") # <<<<<<<<<<<<<< + * cdef apply = PyPC(pc).apply + * apply(PC_(pc), Vec_(x), Vec_(y)) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCApply_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1465 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApply_Python") + * cdef apply = PyPC(pc).apply # <<<<<<<<<<<<<< + * apply(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_apply); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_apply = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1466 + * FunctionBegin(b"PCApply_Python") + * cdef apply = PyPC(pc).apply + * apply(PC_(pc), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_apply); + __pyx_t_5 = __pyx_v_apply; __pyx_t_6 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1466, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1467 + * cdef apply = PyPC(pc).apply + * apply(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCApplyTranspose_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1458 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApply_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PCApply_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_apply); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1469 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplyTranspose_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplyTranspose_Python(PC __pyx_v_pc, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_applyTranspose = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCApplyTranspose_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1475 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplyTranspose_Python") # <<<<<<<<<<<<<< + * cdef applyTranspose = PyPC(pc).applyTranspose + * applyTranspose(PC_(pc), Vec_(x), Vec_(y)) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCApplyTranspose_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1476 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplyTranspose_Python") + * cdef applyTranspose = PyPC(pc).applyTranspose # <<<<<<<<<<<<<< + * applyTranspose(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_applyTranspose); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1476, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_applyTranspose = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1477 + * FunctionBegin(b"PCApplyTranspose_Python") + * cdef applyTranspose = PyPC(pc).applyTranspose + * applyTranspose(PC_(pc), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_applyTranspose); + __pyx_t_5 = __pyx_v_applyTranspose; __pyx_t_6 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1478 + * cdef applyTranspose = PyPC(pc).applyTranspose + * applyTranspose(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCApplySymmetricLeft_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1469 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplyTranspose_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PCApplyTranspose_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_applyTranspose); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1480 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplySymmetricLeft_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplySymmetricLeft_Python(PC __pyx_v_pc, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_applySymmetricLeft = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCApplySymmetricLeft_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1486 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplySymmetricLeft_Python") # <<<<<<<<<<<<<< + * cdef applySymmetricLeft = PyPC(pc).applySymmetricLeft + * applySymmetricLeft(PC_(pc), Vec_(x), Vec_(y)) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCApplySymmetricLeft_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1487 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplySymmetricLeft_Python") + * cdef applySymmetricLeft = PyPC(pc).applySymmetricLeft # <<<<<<<<<<<<<< + * applySymmetricLeft(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_applySymmetricLeft); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_applySymmetricLeft = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1488 + * FunctionBegin(b"PCApplySymmetricLeft_Python") + * cdef applySymmetricLeft = PyPC(pc).applySymmetricLeft + * applySymmetricLeft(PC_(pc), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_applySymmetricLeft); + __pyx_t_5 = __pyx_v_applySymmetricLeft; __pyx_t_6 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1488, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1489 + * cdef applySymmetricLeft = PyPC(pc).applySymmetricLeft + * applySymmetricLeft(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCApplySymmetricRight_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1480 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplySymmetricLeft_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PCApplySymmetricLeft_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_applySymmetricLeft); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1491 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplySymmetricRight_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCApplySymmetricRight_Python(PC __pyx_v_pc, Vec __pyx_v_x, Vec __pyx_v_y) { + PyObject *__pyx_v_applySymmetricRight = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCApplySymmetricRight_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1497 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplySymmetricRight_Python") # <<<<<<<<<<<<<< + * cdef applySymmetricRight = PyPC(pc).applySymmetricRight + * applySymmetricRight(PC_(pc), Vec_(x), Vec_(y)) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCApplySymmetricRight_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1498 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCApplySymmetricRight_Python") + * cdef applySymmetricRight = PyPC(pc).applySymmetricRight # <<<<<<<<<<<<<< + * applySymmetricRight(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_applySymmetricRight); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_applySymmetricRight = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1499 + * FunctionBegin(b"PCApplySymmetricRight_Python") + * cdef applySymmetricRight = PyPC(pc).applySymmetricRight + * applySymmetricRight(PC_(pc), Vec_(x), Vec_(y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_y)); if (unlikely(!__pyx_t_4)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_v_applySymmetricRight); + __pyx_t_5 = __pyx_v_applySymmetricRight; __pyx_t_6 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_1, __pyx_t_3, __pyx_t_4}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_6) { + __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_7, __pyx_t_4); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1500 + * cdef applySymmetricRight = PyPC(pc).applySymmetricRight + * applySymmetricRight(PC_(pc), Vec_(x), Vec_(y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PCMatApply_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1491 + * return FunctionEnd() + * + * cdef PetscErrorCode PCApplySymmetricRight_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.PCApplySymmetricRight_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_applySymmetricRight); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1502 + * return FunctionEnd() + * + * cdef PetscErrorCode PCMatApply_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscMat X, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PCMatApply_Python(PC __pyx_v_pc, Mat __pyx_v_X, Mat __pyx_v_Y) { + PyObject *__pyx_v_matApply = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + int __pyx_t_6; + int __pyx_t_7; + char const *__pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + PyObject *__pyx_t_13 = NULL; + PyObject *__pyx_t_14 = NULL; + PyObject *__pyx_t_15 = NULL; + PyObject *__pyx_t_16 = NULL; + PyObject *__pyx_t_17 = NULL; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PCMatApply_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1508 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCMatApply_Python") # <<<<<<<<<<<<<< + * cdef matApply = PyPC(pc).matApply + * if matApply is None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PCMatApply_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1509 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PCMatApply_Python") + * cdef matApply = PyPC(pc).matApply # <<<<<<<<<<<<<< + * if matApply is None: + * try: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPC(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_matApply); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_matApply = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1510 + * FunctionBegin(b"PCMatApply_Python") + * cdef matApply = PyPC(pc).matApply + * if matApply is None: # <<<<<<<<<<<<<< + * try: + * pc.ops.matapply = NULL + */ + __pyx_t_3 = (__pyx_v_matApply == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1511 + * cdef matApply = PyPC(pc).matApply + * if matApply is None: + * try: # <<<<<<<<<<<<<< + * pc.ops.matapply = NULL + * CHKERR( PCMatApply(pc, X, Y) ) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1512 + * if matApply is None: + * try: + * pc.ops.matapply = NULL # <<<<<<<<<<<<<< + * CHKERR( PCMatApply(pc, X, Y) ) + * finally: + */ + __pyx_v_pc->ops->matapply = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1513 + * try: + * pc.ops.matapply = NULL + * CHKERR( PCMatApply(pc, X, Y) ) # <<<<<<<<<<<<<< + * finally: + * pc.ops.matapply = PCMatApply_Python + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCMatApply(__pyx_v_pc, __pyx_v_X, __pyx_v_Y)); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1513, __pyx_L5_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1515 + * CHKERR( PCMatApply(pc, X, Y) ) + * finally: + * pc.ops.matapply = PCMatApply_Python # <<<<<<<<<<<<<< + * return FunctionEnd() + * matApply(PC_(pc), Mat_(X), Mat_(Y)) + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_v_pc->ops->matapply = __pyx_f_8petsc4py_5PETSc_PCMatApply_Python; + goto __pyx_L6; + } + __pyx_L5_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11) < 0)) __Pyx_ErrFetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_13); + __Pyx_XGOTREF(__pyx_t_14); + __pyx_t_6 = __pyx_lineno; __pyx_t_7 = __pyx_clineno; __pyx_t_8 = __pyx_filename; + { + __pyx_v_pc->ops->matapply = __pyx_f_8petsc4py_5PETSc_PCMatApply_Python; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_XGIVEREF(__pyx_t_13); + __Pyx_XGIVEREF(__pyx_t_14); + __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14); + } + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_ErrRestore(__pyx_t_9, __pyx_t_10, __pyx_t_11); + __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_14 = 0; + __pyx_lineno = __pyx_t_6; __pyx_clineno = __pyx_t_7; __pyx_filename = __pyx_t_8; + goto __pyx_L1_error; + } + __pyx_L6:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1516 + * finally: + * pc.ops.matapply = PCMatApply_Python + * return FunctionEnd() # <<<<<<<<<<<<<< + * matApply(PC_(pc), Mat_(X), Mat_(Y)) + * return FunctionEnd() + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1510 + * FunctionBegin(b"PCMatApply_Python") + * cdef matApply = PyPC(pc).matApply + * if matApply is None: # <<<<<<<<<<<<<< + * try: + * pc.ops.matapply = NULL + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1517 + * pc.ops.matapply = PCMatApply_Python + * return FunctionEnd() + * matApply(PC_(pc), Mat_(X), Mat_(Y)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PC_(__pyx_v_pc)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_15 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_X)); if (unlikely(!__pyx_t_15)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_16 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_Y)); if (unlikely(!__pyx_t_16)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_16); + __Pyx_INCREF(__pyx_v_matApply); + __pyx_t_17 = __pyx_v_matApply; __pyx_t_18 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) { + __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17); + if (likely(__pyx_t_18)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_17, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) { + PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_1, __pyx_t_15, __pyx_t_16}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0; + } else + #endif + { + __pyx_t_19 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + if (__pyx_t_18) { + __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_7, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_15); + PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_7, __pyx_t_15); + __Pyx_GIVEREF(__pyx_t_16); + PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_7, __pyx_t_16); + __pyx_t_1 = 0; + __pyx_t_15 = 0; + __pyx_t_16 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + } + __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1518 + * return FunctionEnd() + * matApply(PC_(pc), Mat_(X), Mat_(Y)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1502 + * return FunctionEnd() + * + * cdef PetscErrorCode PCMatApply_Python( # <<<<<<<<<<<<<< + * PetscPC pc, + * PetscMat X, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_15); + __Pyx_XDECREF(__pyx_t_16); + __Pyx_XDECREF(__pyx_t_17); + __Pyx_XDECREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_t_19); + __Pyx_AddTraceback("petsc4py.PETSc.PCMatApply_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_matApply); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1549 + * @cython.internal + * cdef class _PyKSP(_PyObj): pass + * cdef inline _PyKSP PyKSP(PetscKSP ksp): # <<<<<<<<<<<<<< + * if ksp != NULL and ksp.data != NULL: + * return <_PyKSP>ksp.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyKSP *__pyx_f_8petsc4py_5PETSc_PyKSP(KSP __pyx_v_ksp) { + struct __pyx_obj_8petsc4py_5PETSc__PyKSP *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyKSP", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1550 + * cdef class _PyKSP(_PyObj): pass + * cdef inline _PyKSP PyKSP(PetscKSP ksp): + * if ksp != NULL and ksp.data != NULL: # <<<<<<<<<<<<<< + * return <_PyKSP>ksp.data + * else: + */ + __pyx_t_2 = ((__pyx_v_ksp != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_ksp->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1551 + * cdef inline _PyKSP PyKSP(PetscKSP ksp): + * if ksp != NULL and ksp.data != NULL: + * return <_PyKSP>ksp.data # <<<<<<<<<<<<<< + * else: + * return _PyKSP.__new__(_PyKSP) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_v_ksp->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_v_ksp->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1550 + * cdef class _PyKSP(_PyObj): pass + * cdef inline _PyKSP PyKSP(PetscKSP ksp): + * if ksp != NULL and ksp.data != NULL: # <<<<<<<<<<<<<< + * return <_PyKSP>ksp.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1553 + * return <_PyKSP>ksp.data + * else: + * return _PyKSP.__new__(_PyKSP) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode KSPPythonGetContext(PetscKSP ksp, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PyKSP(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PyKSP), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1553, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1549 + * @cython.internal + * cdef class _PyKSP(_PyObj): pass + * cdef inline _PyKSP PyKSP(PetscKSP ksp): # <<<<<<<<<<<<<< + * if ksp != NULL and ksp.data != NULL: + * return <_PyKSP>ksp.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PyKSP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1555 + * return _PyKSP.__new__(_PyKSP) + * + * cdef public PetscErrorCode KSPPythonGetContext(PetscKSP ksp, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonGetContext") + */ + +PetscErrorCode KSPPythonGetContext(KSP __pyx_v_ksp, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KSPPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1557 + * cdef public PetscErrorCode KSPPythonGetContext(PetscKSP ksp, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonGetContext") # <<<<<<<<<<<<<< + * PyKSP(ksp).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPythonGetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1558 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonGetContext") + * PyKSP(ksp).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 1558, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1559 + * FunctionBegin(b"KSPPythonGetContext") + * PyKSP(ksp).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode KSPPythonSetContext(PetscKSP ksp, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1555 + * return _PyKSP.__new__(_PyKSP) + * + * cdef public PetscErrorCode KSPPythonGetContext(PetscKSP ksp, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonGetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1561 + * return FunctionEnd() + * + * cdef public PetscErrorCode KSPPythonSetContext(PetscKSP ksp, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonSetContext") + */ + +PetscErrorCode KSPPythonSetContext(KSP __pyx_v_ksp, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("KSPPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1563 + * cdef public PetscErrorCode KSPPythonSetContext(PetscKSP ksp, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonSetContext") # <<<<<<<<<<<<<< + * PyKSP(ksp).setcontext(ctx, KSP_(ksp)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPythonSetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1564 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonSetContext") + * PyKSP(ksp).setcontext(ctx, KSP_(ksp)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 1564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1565 + * FunctionBegin(b"KSPPythonSetContext") + * PyKSP(ksp).setcontext(ctx, KSP_(ksp)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPPythonSetType_PYTHON(PetscKSP ksp, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1561 + * return FunctionEnd() + * + * cdef public PetscErrorCode KSPPythonSetContext(PetscKSP ksp, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPPythonSetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1567 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPythonSetType_PYTHON(PetscKSP ksp, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPythonSetType_PYTHON(KSP __pyx_v_ksp, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1569 + * cdef PetscErrorCode KSPPythonSetType_PYTHON(PetscKSP ksp, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1570 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * KSPPythonSetContext(ksp, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1571 + * FunctionBegin(b"KSPPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * KSPPythonSetContext(ksp, ctx) + * PyKSP(ksp).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1572 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * KSPPythonSetContext(ksp, ctx) # <<<<<<<<<<<<<< + * PyKSP(ksp).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = KSPPythonSetContext(__pyx_v_ksp, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1572, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1573 + * cdef object ctx = createcontext(name) + * KSPPythonSetContext(ksp, ctx) + * PyKSP(ksp).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1573, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 1573, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1574 + * KSPPythonSetContext(ksp, ctx) + * PyKSP(ksp).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPPythonGetType_PYTHON(PetscKSP ksp, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1567 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPythonSetType_PYTHON(PetscKSP ksp, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1576 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPythonGetType_PYTHON(PetscKSP ksp, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPythonGetType_PYTHON(KSP __pyx_v_ksp, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1578 + * cdef PetscErrorCode KSPPythonGetType_PYTHON(PetscKSP ksp, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PyKSP(ksp).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1579 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonGetType_PYTHON") + * name[0] = PyKSP(ksp).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 1579, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1580 + * FunctionBegin(b"KSPPythonGetType_PYTHON") + * name[0] = PyKSP(ksp).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPCreate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1576 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPythonGetType_PYTHON(PetscKSP ksp, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1582 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPCreate_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPCreate_Python(KSP __pyx_v_ksp) { + KSPOps __pyx_v_ops; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + KSPOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1586 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef KSPOps ops = ksp.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1588 + * FunctionBegin(b"KSPCreate_Python") + * # + * cdef KSPOps ops = ksp.ops # <<<<<<<<<<<<<< + * ops.reset = KSPReset_Python + * ops.destroy = KSPDestroy_Python + */ + __pyx_t_1 = __pyx_v_ksp->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1589 + * # + * cdef KSPOps ops = ksp.ops + * ops.reset = KSPReset_Python # <<<<<<<<<<<<<< + * ops.destroy = KSPDestroy_Python + * ops.setup = KSPSetUp_Python + */ + __pyx_v_ops->reset = __pyx_f_8petsc4py_5PETSc_KSPReset_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1590 + * cdef KSPOps ops = ksp.ops + * ops.reset = KSPReset_Python + * ops.destroy = KSPDestroy_Python # <<<<<<<<<<<<<< + * ops.setup = KSPSetUp_Python + * ops.setfromoptions = KSPSetFromOptions_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1591 + * ops.reset = KSPReset_Python + * ops.destroy = KSPDestroy_Python + * ops.setup = KSPSetUp_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = KSPSetFromOptions_Python + * ops.view = KSPView_Python + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_KSPSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1592 + * ops.destroy = KSPDestroy_Python + * ops.setup = KSPSetUp_Python + * ops.setfromoptions = KSPSetFromOptions_Python # <<<<<<<<<<<<<< + * ops.view = KSPView_Python + * ops.solve = KSPSolve_Python + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_KSPSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1593 + * ops.setup = KSPSetUp_Python + * ops.setfromoptions = KSPSetFromOptions_Python + * ops.view = KSPView_Python # <<<<<<<<<<<<<< + * ops.solve = KSPSolve_Python + * ops.buildsolution = KSPBuildSolution_Python + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_KSPView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1594 + * ops.setfromoptions = KSPSetFromOptions_Python + * ops.view = KSPView_Python + * ops.solve = KSPSolve_Python # <<<<<<<<<<<<<< + * ops.buildsolution = KSPBuildSolution_Python + * ops.buildresidual = KSPBuildResidual_Python + */ + __pyx_v_ops->solve = __pyx_f_8petsc4py_5PETSc_KSPSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1595 + * ops.view = KSPView_Python + * ops.solve = KSPSolve_Python + * ops.buildsolution = KSPBuildSolution_Python # <<<<<<<<<<<<<< + * ops.buildresidual = KSPBuildResidual_Python + * # + */ + __pyx_v_ops->buildsolution = __pyx_f_8petsc4py_5PETSc_KSPBuildSolution_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1596 + * ops.solve = KSPSolve_Python + * ops.buildsolution = KSPBuildSolution_Python + * ops.buildresidual = KSPBuildResidual_Python # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_ops->buildresidual = __pyx_f_8petsc4py_5PETSc_KSPBuildResidual_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1598 + * ops.buildresidual = KSPBuildResidual_Python + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ksp, b"KSPPythonSetType_C", + * KSPPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ksp), ((char *)"KSPPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_KSPPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1598, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1601 + * ksp, b"KSPPythonSetType_C", + * KSPPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ksp, b"KSPPythonGetType_C", + * KSPPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ksp), ((char *)"KSPPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_KSPPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1601, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1605 + * KSPPythonGetType_PYTHON) ) + * # + * cdef ctx = PyKSP(NULL) # <<<<<<<<<<<<<< + * ksp.data = ctx + * Py_INCREF(ksp.data) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1606 + * # + * cdef ctx = PyKSP(NULL) + * ksp.data = ctx # <<<<<<<<<<<<<< + * Py_INCREF(ksp.data) + * # + */ + __pyx_v_ksp->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1607 + * cdef ctx = PyKSP(NULL) + * ksp.data = ctx + * Py_INCREF(ksp.data) # <<<<<<<<<<<<<< + * # + * CHKERR( KSPSetSupportedNorm( + */ + Py_INCREF(((PyObject *)__pyx_v_ksp->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1609 + * Py_INCREF(ksp.data) + * # + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_PRECONDITIONED, PC_LEFT, 3) ) + * CHKERR( KSPSetSupportedNorm( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_PRECONDITIONED, PC_LEFT, 3)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1609, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1611 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_PRECONDITIONED, PC_LEFT, 3) ) + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_UNPRECONDITIONED, PC_RIGHT, 3) ) + * CHKERR( KSPSetSupportedNorm( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_UNPRECONDITIONED, PC_RIGHT, 3)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1611, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1613 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_UNPRECONDITIONED, PC_RIGHT, 3) ) + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_UNPRECONDITIONED, PC_LEFT, 2) ) + * CHKERR( KSPSetSupportedNorm( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_UNPRECONDITIONED, PC_LEFT, 2)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1613, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1615 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_UNPRECONDITIONED, PC_LEFT, 2) ) + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_PRECONDITIONED, PC_RIGHT, 2) ) + * CHKERR( KSPSetSupportedNorm( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_PRECONDITIONED, PC_RIGHT, 2)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1615, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1617 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_PRECONDITIONED, PC_RIGHT, 2) ) + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_PRECONDITIONED, PC_SYMMETRIC, 1) ) + * CHKERR( KSPSetSupportedNorm( + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_PRECONDITIONED, PC_SYMMETRIC, 1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1617, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1619 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_PRECONDITIONED, PC_SYMMETRIC, 1) ) + * CHKERR( KSPSetSupportedNorm( # <<<<<<<<<<<<<< + * ksp, KSP_NORM_UNPRECONDITIONED, PC_SYMMETRIC, 1) ) + * return FunctionEnd() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetSupportedNorm(__pyx_v_ksp, KSP_NORM_UNPRECONDITIONED, PC_SYMMETRIC, 1)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1619, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1621 + * CHKERR( KSPSetSupportedNorm( + * ksp, KSP_NORM_UNPRECONDITIONED, PC_SYMMETRIC, 1) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode KSPDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1582 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPCreate_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.KSPCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1623 + * return FunctionEnd() + * + * cdef inline PetscErrorCode KSPDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python_inner(KSP __pyx_v_ksp) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1627 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(ksp) + * KSPPythonSetContext(ksp, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1628 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(ksp) # <<<<<<<<<<<<<< + * KSPPythonSetContext(ksp, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_ksp); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1629 + * try: + * addRef(ksp) + * KSPPythonSetContext(ksp, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(ksp) + */ + __pyx_t_1 = KSPPythonSetContext(__pyx_v_ksp, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1629, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1631 + * KSPPythonSetContext(ksp, NULL) + * finally: + * delRef(ksp) # <<<<<<<<<<<<<< + * Py_DECREF(ksp.data) + * ksp.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_ksp); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1632 + * finally: + * delRef(ksp) + * Py_DECREF(ksp.data) # <<<<<<<<<<<<<< + * ksp.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_ksp->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1633 + * delRef(ksp) + * Py_DECREF(ksp.data) + * ksp.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_ksp->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1631 + * KSPPythonSetContext(ksp, NULL) + * finally: + * delRef(ksp) # <<<<<<<<<<<<<< + * Py_DECREF(ksp.data) + * ksp.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_ksp); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1632 + * finally: + * delRef(ksp) + * Py_DECREF(ksp.data) # <<<<<<<<<<<<<< + * ksp.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_ksp->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1633 + * delRef(ksp) + * Py_DECREF(ksp.data) + * ksp.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_ksp->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1634 + * Py_DECREF(ksp.data) + * ksp.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1623 + * return FunctionEnd() + * + * cdef inline PetscErrorCode KSPDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSPDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1636 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSPDestroy_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python(KSP __pyx_v_ksp) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1640 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * ksp, b"KSPPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1641 + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"KSPDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ksp, b"KSPPythonSetType_C", + * NULL)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ksp), ((char *)"KSPPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1641, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1644 + * ksp, b"KSPPythonSetType_C", + * NULL)) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ksp, b"KSPPythonGetType_C", + * NULL)) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ksp), ((char *)"KSPPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1644, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1648 + * NULL)) + * # + * if Py_IsInitialized(): KSPDestroy_Python_inner(ksp) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_KSPDestroy_Python_inner(__pyx_v_ksp); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1648, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1649 + * # + * if Py_IsInitialized(): KSPDestroy_Python_inner(ksp) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1636 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSPDestroy_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.KSPDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1651 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSetUp_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSetUp_Python(KSP __pyx_v_ksp) { + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1655 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPSetUp_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048] + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1658 + * # + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PyKSP(ksp).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1659 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyKSP(ksp).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(ksp), b"-ksp_python_type", + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1659, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1660 + * cdef PetscBool found = PETSC_FALSE + * if PyKSP(ksp).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(ksp), b"-ksp_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_ksp), ((char *)"-ksp_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1660, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1663 + * getPrefix(ksp), b"-ksp_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * if PyKSP(ksp).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_3 = __pyx_v_found; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_name[0]) != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1664 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) # <<<<<<<<<<<<<< + * if PyKSP(ksp).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_KSPPythonSetType_PYTHON(__pyx_v_ksp, __pyx_v_name); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1664, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_4); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1664, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1663 + * getPrefix(ksp), b"-ksp_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * if PyKSP(ksp).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1659 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyKSP(ksp).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(ksp), b"-ksp_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1665 + * if found and name[0]: + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * if PyKSP(ksp).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1666 + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * if PyKSP(ksp).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * KSPPythonSetType(ksp, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * KSPPythonSetType(ksp, \"[package.]module.class\")\n * KSPSetFromOptions(ksp) and pass option -ksp_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1665 + * if found and name[0]: + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * if PyKSP(ksp).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1672 + * "-ksp_python_type [package.]module.class") + * # + * cdef setUp = PyKSP(ksp).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(KSP_(ksp)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1672, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1673 + * # + * cdef setUp = PyKSP(ksp).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(KSP_(ksp)) + * return FunctionEnd() + */ + __pyx_t_2 = (__pyx_v_setUp != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1674 + * cdef setUp = PyKSP(ksp).setUp + * if setUp is not None: + * setUp(KSP_(ksp)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1673 + * # + * cdef setUp = PyKSP(ksp).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(KSP_(ksp)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1675 + * if setUp is not None: + * setUp(KSP_(ksp)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode KSPReset_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1651 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSetUp_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.KSPSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1677 + * return FunctionEnd() + * + * cdef inline PetscErrorCode KSPReset_Python_inner( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPReset_Python_inner(KSP __pyx_v_ksp) { + PyObject *__pyx_v_reset = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPReset_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1681 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyKSP(ksp).reset # <<<<<<<<<<<<<< + * if reset is not None: + * reset(KSP_(ksp)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_reset = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1682 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyKSP(ksp).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(KSP_(ksp)) + * return PETSC_SUCCESS + */ + __pyx_t_3 = (__pyx_v_reset != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1683 + * cdef reset = PyKSP(ksp).reset + * if reset is not None: + * reset(KSP_(ksp)) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_reset); + __pyx_t_5 = __pyx_v_reset; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1682 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyKSP(ksp).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(KSP_(ksp)) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1684 + * if reset is not None: + * reset(KSP_(ksp)) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPReset_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1677 + * return FunctionEnd() + * + * cdef inline PetscErrorCode KSPReset_Python_inner( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.KSPReset_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_reset); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1686 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSPReset_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPReset_Python(KSP __pyx_v_ksp) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1690 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * if getRef(ksp) == 0: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * FunctionBegin(b"KSPReset_Python") + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_sol", NULL) ) + */ + __pyx_t_1 = ((__pyx_f_8petsc4py_5PETSc_getRef(__pyx_v_ksp) == 0) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1691 + * nogil except PETSC_ERR_PYTHON: + * if getRef(ksp) == 0: return PETSC_SUCCESS + * FunctionBegin(b"KSPReset_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_sol", NULL) ) + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_res", NULL) ) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPReset_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1692 + * if getRef(ksp) == 0: return PETSC_SUCCESS + * FunctionBegin(b"KSPReset_Python") + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_sol", NULL) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_res", NULL) ) + * if Py_IsInitialized(): KSPReset_Python_inner(ksp) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_sol"), NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1692, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1693 + * FunctionBegin(b"KSPReset_Python") + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_sol", NULL) ) + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_res", NULL) ) # <<<<<<<<<<<<<< + * if Py_IsInitialized(): KSPReset_Python_inner(ksp) + * return FunctionEnd() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_res"), NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1693, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1694 + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_sol", NULL) ) + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_res", NULL) ) + * if Py_IsInitialized(): KSPReset_Python_inner(ksp) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = (Py_IsInitialized() != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_KSPReset_Python_inner(__pyx_v_ksp); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1694, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1695 + * CHKERR( PetscObjectCompose(ksp, b"@ksp.vec_work_res", NULL) ) + * if Py_IsInitialized(): KSPReset_Python_inner(ksp) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1686 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode KSPReset_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.KSPReset_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1697 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscOptionItems *PetscOptionsObject + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSetFromOptions_Python(KSP __pyx_v_ksp, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1702 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPSetFromOptions_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048], *defval = PyKSP(ksp).getname() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1704 + * FunctionBegin(b"KSPSetFromOptions_Python") + * # + * cdef char name[2048], *defval = PyKSP(ksp).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1704, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP *)((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 1704, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1705 + * # + * cdef char name[2048], *defval = PyKSP(ksp).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1706 + * cdef char name[2048], *defval = PyKSP(ksp).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-ksp_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1707 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-ksp_python_type", b"Python [package.]module[.{class|function}]", + * b"KSPPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-ksp_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"KSPPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1707, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1709 + * CHKERR( PetscOptionsString( + * b"-ksp_python_type", b"Python [package.]module[.{class|function}]", + * b"KSPPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1710 + * b"-ksp_python_type", b"Python [package.]module[.{class|function}]", + * b"KSPPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1711 + * b"KSPPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PyKSP(ksp).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_KSPPythonSetType_PYTHON(__pyx_v_ksp, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1711, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1711, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1710 + * b"-ksp_python_type", b"Python [package.]module[.{class|function}]", + * b"KSPPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1713 + * CHKERR( KSPPythonSetType_PYTHON(ksp, name) ) + * # + * cdef setFromOptions = PyKSP(ksp).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(KSP_(ksp)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1714 + * # + * cdef setFromOptions = PyKSP(ksp).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(KSP_(ksp)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1715 + * cdef setFromOptions = PyKSP(ksp).setFromOptions + * if setFromOptions is not None: + * setFromOptions(KSP_(ksp)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1714 + * # + * cdef setFromOptions = PyKSP(ksp).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(KSP_(ksp)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1716 + * if setFromOptions is not None: + * setFromOptions(KSP_(ksp)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1697 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscOptionItems *PetscOptionsObject + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.KSPSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1718 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPView_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPView_Python(KSP __pyx_v_ksp, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1723 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPView_Python") # <<<<<<<<<<<<<< + * viewcontext(PyKSP(ksp), vwr) + * cdef view = PyKSP(ksp).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1724 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPView_Python") + * viewcontext(PyKSP(ksp), vwr) # <<<<<<<<<<<<<< + * cdef view = PyKSP(ksp).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 1724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1725 + * FunctionBegin(b"KSPView_Python") + * viewcontext(PyKSP(ksp), vwr) + * cdef view = PyKSP(ksp).view # <<<<<<<<<<<<<< + * if view is not None: + * view(KSP_(ksp), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1726 + * viewcontext(PyKSP(ksp), vwr) + * cdef view = PyKSP(ksp).view + * if view is not None: # <<<<<<<<<<<<<< + * view(KSP_(ksp), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1727 + * cdef view = PyKSP(ksp).view + * if view is not None: + * view(KSP_(ksp), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1726 + * viewcontext(PyKSP(ksp), vwr) + * cdef view = PyKSP(ksp).view + * if view is not None: # <<<<<<<<<<<<<< + * view(KSP_(ksp), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1728 + * if view is not None: + * view(KSP_(ksp), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPBuildSolution_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1718 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPView_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.KSPView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1730 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPBuildSolution_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec v, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPBuildSolution_Python(KSP __pyx_v_ksp, Vec __pyx_v_v, Vec *__pyx_v_V) { + Vec __pyx_v_x; + PyObject *__pyx_v_buildSolution = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + PetscErrorCode __pyx_t_10; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPBuildSolution_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1736 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPBuildSolution_Python") # <<<<<<<<<<<<<< + * cdef PetscVec x = v + * cdef buildSolution = PyKSP(ksp).buildSolution + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPBuildSolution_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1737 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPBuildSolution_Python") + * cdef PetscVec x = v # <<<<<<<<<<<<<< + * cdef buildSolution = PyKSP(ksp).buildSolution + * if buildSolution is not None: + */ + __pyx_v_x = __pyx_v_v; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1738 + * FunctionBegin(b"KSPBuildSolution_Python") + * cdef PetscVec x = v + * cdef buildSolution = PyKSP(ksp).buildSolution # <<<<<<<<<<<<<< + * if buildSolution is not None: + * if x == NULL: pass # XXX + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_buildSolution); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1738, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_buildSolution = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1739 + * cdef PetscVec x = v + * cdef buildSolution = PyKSP(ksp).buildSolution + * if buildSolution is not None: # <<<<<<<<<<<<<< + * if x == NULL: pass # XXX + * buildSolution(KSP_(ksp), Vec_(x)) + */ + __pyx_t_3 = (__pyx_v_buildSolution != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1740 + * cdef buildSolution = PyKSP(ksp).buildSolution + * if buildSolution is not None: + * if x == NULL: pass # XXX # <<<<<<<<<<<<<< + * buildSolution(KSP_(ksp), Vec_(x)) + * if V != NULL: V[0] = x + */ + __pyx_t_4 = ((__pyx_v_x == NULL) != 0); + if (__pyx_t_4) { + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1741 + * if buildSolution is not None: + * if x == NULL: pass # XXX + * buildSolution(KSP_(ksp), Vec_(x)) # <<<<<<<<<<<<<< + * if V != NULL: V[0] = x + * else: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_buildSolution); + __pyx_t_6 = __pyx_v_buildSolution; __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_1, __pyx_t_5}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1742 + * if x == NULL: pass # XXX + * buildSolution(KSP_(ksp), Vec_(x)) + * if V != NULL: V[0] = x # <<<<<<<<<<<<<< + * else: + * CHKERR( KSPBuildSolutionDefault(ksp, v, V) ) + */ + __pyx_t_4 = ((__pyx_v_V != NULL) != 0); + if (__pyx_t_4) { + (__pyx_v_V[0]) = __pyx_v_x; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1739 + * cdef PetscVec x = v + * cdef buildSolution = PyKSP(ksp).buildSolution + * if buildSolution is not None: # <<<<<<<<<<<<<< + * if x == NULL: pass # XXX + * buildSolution(KSP_(ksp), Vec_(x)) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1744 + * if V != NULL: V[0] = x + * else: + * CHKERR( KSPBuildSolutionDefault(ksp, v, V) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_10 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildSolutionDefault(__pyx_v_ksp, __pyx_v_v, __pyx_v_V)); if (unlikely(__pyx_t_10 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1744, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1745 + * else: + * CHKERR( KSPBuildSolutionDefault(ksp, v, V) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPBuildResidual_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1730 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPBuildSolution_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec v, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.KSPBuildSolution_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_buildSolution); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1747 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPBuildResidual_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPBuildResidual_Python(KSP __pyx_v_ksp, Vec __pyx_v_t, Vec __pyx_v_v, Vec *__pyx_v_V) { + PyObject *__pyx_v_buildResidual = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PetscErrorCode __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPBuildResidual_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1754 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPBuildResidual_Python") # <<<<<<<<<<<<<< + * cdef buildResidual = PyKSP(ksp).buildResidual + * if buildResidual is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPBuildResidual_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1755 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPBuildResidual_Python") + * cdef buildResidual = PyKSP(ksp).buildResidual # <<<<<<<<<<<<<< + * if buildResidual is not None: + * buildResidual(KSP_(ksp), Vec_(t), Vec_(v)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_buildResidual); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_buildResidual = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1756 + * FunctionBegin(b"KSPBuildResidual_Python") + * cdef buildResidual = PyKSP(ksp).buildResidual + * if buildResidual is not None: # <<<<<<<<<<<<<< + * buildResidual(KSP_(ksp), Vec_(t), Vec_(v)) + * if V != NULL: V[0] = v + */ + __pyx_t_3 = (__pyx_v_buildResidual != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1757 + * cdef buildResidual = PyKSP(ksp).buildResidual + * if buildResidual is not None: + * buildResidual(KSP_(ksp), Vec_(t), Vec_(v)) # <<<<<<<<<<<<<< + * if V != NULL: V[0] = v + * else: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_t)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_v)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_buildResidual); + __pyx_t_7 = __pyx_v_buildResidual; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1758 + * if buildResidual is not None: + * buildResidual(KSP_(ksp), Vec_(t), Vec_(v)) + * if V != NULL: V[0] = v # <<<<<<<<<<<<<< + * else: + * CHKERR( KSPBuildResidualDefault(ksp, t, v, V) ) + */ + __pyx_t_4 = ((__pyx_v_V != NULL) != 0); + if (__pyx_t_4) { + (__pyx_v_V[0]) = __pyx_v_v; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1756 + * FunctionBegin(b"KSPBuildResidual_Python") + * cdef buildResidual = PyKSP(ksp).buildResidual + * if buildResidual is not None: # <<<<<<<<<<<<<< + * buildResidual(KSP_(ksp), Vec_(t), Vec_(v)) + * if V != NULL: V[0] = v + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1760 + * if V != NULL: V[0] = v + * else: + * CHKERR( KSPBuildResidualDefault(ksp, t, v, V) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildResidualDefault(__pyx_v_ksp, __pyx_v_t, __pyx_v_v, __pyx_v_V)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1760, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1761 + * else: + * CHKERR( KSPBuildResidualDefault(ksp, t, v, V) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1747 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPBuildResidual_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.KSPBuildResidual_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_buildResidual); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1763 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSolve_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSolve_Python(KSP __pyx_v_ksp) { + Vec __pyx_v_B; + Vec __pyx_v_X; + PyObject *__pyx_v_solve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1767 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPSolve_Python") # <<<<<<<<<<<<<< + * cdef PetscVec B = NULL, X = NULL + * CHKERR( KSPGetRhs(ksp, &B) ) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1768 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPSolve_Python") + * cdef PetscVec B = NULL, X = NULL # <<<<<<<<<<<<<< + * CHKERR( KSPGetRhs(ksp, &B) ) + * CHKERR( KSPGetSolution(ksp, &X) ) + */ + __pyx_v_B = NULL; + __pyx_v_X = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1769 + * FunctionBegin(b"KSPSolve_Python") + * cdef PetscVec B = NULL, X = NULL + * CHKERR( KSPGetRhs(ksp, &B) ) # <<<<<<<<<<<<<< + * CHKERR( KSPGetSolution(ksp, &X) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetRhs(__pyx_v_ksp, (&__pyx_v_B))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1769, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1770 + * cdef PetscVec B = NULL, X = NULL + * CHKERR( KSPGetRhs(ksp, &B) ) + * CHKERR( KSPGetSolution(ksp, &X) ) # <<<<<<<<<<<<<< + * # + * ksp.iter = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetSolution(__pyx_v_ksp, (&__pyx_v_X))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1770, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1772 + * CHKERR( KSPGetSolution(ksp, &X) ) + * # + * ksp.iter = 0 # <<<<<<<<<<<<<< + * ksp.reason = KSP_CONVERGED_ITERATING + * # + */ + __pyx_v_ksp->its = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1773 + * # + * ksp.iter = 0 + * ksp.reason = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * # + * cdef solve = None + */ + __pyx_v_ksp->reason = KSP_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1775 + * ksp.reason = KSP_CONVERGED_ITERATING + * # + * cdef solve = None # <<<<<<<<<<<<<< + * if ksp.transpose_solve: + * solve = PyKSP(ksp).solveTranspose + */ + __Pyx_INCREF(Py_None); + __pyx_v_solve = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1776 + * # + * cdef solve = None + * if ksp.transpose_solve: # <<<<<<<<<<<<<< + * solve = PyKSP(ksp).solveTranspose + * else: + */ + if (__pyx_v_ksp->transpose_solve) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1777 + * cdef solve = None + * if ksp.transpose_solve: + * solve = PyKSP(ksp).solveTranspose # <<<<<<<<<<<<<< + * else: + * solve = PyKSP(ksp).solve + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_solveTranspose); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_solve, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1776 + * # + * cdef solve = None + * if ksp.transpose_solve: # <<<<<<<<<<<<<< + * solve = PyKSP(ksp).solveTranspose + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1779 + * solve = PyKSP(ksp).solveTranspose + * else: + * solve = PyKSP(ksp).solve # <<<<<<<<<<<<<< + * if solve is not None: + * solve(KSP_(ksp), Vec_(B), Vec_(X)) + */ + /*else*/ { + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_solve); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_solve, __pyx_t_2); + __pyx_t_2 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1780 + * else: + * solve = PyKSP(ksp).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(KSP_(ksp), Vec_(B), Vec_(X)) + * else: + */ + __pyx_t_4 = (__pyx_v_solve != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1781 + * solve = PyKSP(ksp).solve + * if solve is not None: + * solve(KSP_(ksp), Vec_(B), Vec_(X)) # <<<<<<<<<<<<<< + * else: + * KSPSolve_Python_default(ksp, B, X) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_B)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_X)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_solve); + __pyx_t_8 = __pyx_v_solve; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_3, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_3, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_7); + __pyx_t_3 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1780 + * else: + * solve = PyKSP(ksp).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(KSP_(ksp), Vec_(B), Vec_(X)) + * else: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1783 + * solve(KSP_(ksp), Vec_(B), Vec_(X)) + * else: + * KSPSolve_Python_default(ksp, B, X) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_KSPSolve_Python_default(__pyx_v_ksp, __pyx_v_B, __pyx_v_X); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1783, __pyx_L1_error) + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1784 + * else: + * KSPSolve_Python_default(ksp, B, X) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPSolve_Python_default( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1763 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSolve_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.KSPSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1786 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSolve_Python_default( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec B, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPSolve_Python_default(KSP __pyx_v_ksp, Vec __pyx_v_B, Vec __pyx_v_X) { + Vec __pyx_v_t; + Vec __pyx_v_v; + CYTHON_UNUSED PetscInt __pyx_v_its; + Vec __pyx_v_R; + PetscReal __pyx_v_rnorm; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPSolve_Python_default", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1792 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPSolve_Python_default") # <<<<<<<<<<<<<< + * # + * cdef PetscVec t = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPSolve_Python_default")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1794 + * FunctionBegin(b"KSPSolve_Python_default") + * # + * cdef PetscVec t = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery( + * ksp, + */ + __pyx_v_t = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1795 + * # + * cdef PetscVec t = NULL + * CHKERR( PetscObjectQuery( # <<<<<<<<<<<<<< + * ksp, + * b"@ksp.vec_work_sol", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_sol"), ((PetscObject *)(&__pyx_v_t)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1795, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1799 + * b"@ksp.vec_work_sol", + * &t) ) + * if t == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(X, &t) ) + * CHKERR( PetscObjectCompose( + */ + __pyx_t_2 = ((__pyx_v_t == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1800 + * &t) ) + * if t == NULL: + * CHKERR( VecDuplicate(X, &t) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose( + * ksp, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_X, (&__pyx_v_t))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1800, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1801 + * if t == NULL: + * CHKERR( VecDuplicate(X, &t) ) + * CHKERR( PetscObjectCompose( # <<<<<<<<<<<<<< + * ksp, + * b"@ksp.vec_work_sol", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_sol"), ((PetscObject)__pyx_v_t))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1801, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1799 + * b"@ksp.vec_work_sol", + * &t) ) + * if t == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(X, &t) ) + * CHKERR( PetscObjectCompose( + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1805 + * b"@ksp.vec_work_sol", + * t) ) + * cdef PetscVec v = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery( + * ksp, + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1806 + * t) ) + * cdef PetscVec v = NULL + * CHKERR( PetscObjectQuery( # <<<<<<<<<<<<<< + * ksp, + * b"@ksp.vec_work_res", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_res"), ((PetscObject *)(&__pyx_v_v)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1806, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1810 + * b"@ksp.vec_work_res", + * &v) ) + * if v == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(B, &v) ) + * CHKERR( PetscObjectCompose( + */ + __pyx_t_2 = ((__pyx_v_v == NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1811 + * &v) ) + * if v == NULL: + * CHKERR( VecDuplicate(B, &v) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose( + * ksp, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_B, (&__pyx_v_v))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1811, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1812 + * if v == NULL: + * CHKERR( VecDuplicate(B, &v) ) + * CHKERR( PetscObjectCompose( # <<<<<<<<<<<<<< + * ksp, + * b"@ksp.vec_work_res", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ksp), ((char *)"@ksp.vec_work_res"), ((PetscObject)__pyx_v_v))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1812, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1810 + * b"@ksp.vec_work_res", + * &v) ) + * if v == NULL: # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(B, &v) ) + * CHKERR( PetscObjectCompose( + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1817 + * v) ) + * # + * cdef PetscInt its = 0 # <<<<<<<<<<<<<< + * cdef PetscVec R = NULL + * cdef PetscReal rnorm = 0 + */ + __pyx_v_its = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1818 + * # + * cdef PetscInt its = 0 + * cdef PetscVec R = NULL # <<<<<<<<<<<<<< + * cdef PetscReal rnorm = 0 + * # + */ + __pyx_v_R = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1819 + * cdef PetscInt its = 0 + * cdef PetscVec R = NULL + * cdef PetscReal rnorm = 0 # <<<<<<<<<<<<<< + * # + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) + */ + __pyx_v_rnorm = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1821 + * cdef PetscReal rnorm = 0 + * # + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildResidual(__pyx_v_ksp, __pyx_v_t, __pyx_v_v, (&__pyx_v_R))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1821, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1822 + * # + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) # <<<<<<<<<<<<<< + * # + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_R, NORM_2, (&__pyx_v_rnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1822, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1824 + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) + * # + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) # <<<<<<<<<<<<<< + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPConverged(__pyx_v_ksp, __pyx_v_ksp->its, __pyx_v_rnorm, (&__pyx_v_ksp->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1824, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1825 + * # + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) # <<<<<<<<<<<<<< + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * for its from 0 <= its < ksp.max_its: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPLogHistory(__pyx_v_ksp, __pyx_v_ksp->rnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1825, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1826 + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) # <<<<<<<<<<<<<< + * for its from 0 <= its < ksp.max_its: + * if ksp.reason: break + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMonitor(__pyx_v_ksp, __pyx_v_ksp->its, __pyx_v_ksp->rnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1826, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1827 + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * for its from 0 <= its < ksp.max_its: # <<<<<<<<<<<<<< + * if ksp.reason: break + * KSPPreStep_Python(ksp) + */ + __pyx_t_3 = __pyx_v_ksp->max_it; + for (__pyx_v_its = 0; __pyx_v_its < __pyx_t_3; __pyx_v_its++) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1828 + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * for its from 0 <= its < ksp.max_its: + * if ksp.reason: break # <<<<<<<<<<<<<< + * KSPPreStep_Python(ksp) + * # + */ + if (__pyx_v_ksp->reason) { + goto __pyx_L6_break; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1829 + * for its from 0 <= its < ksp.max_its: + * if ksp.reason: break + * KSPPreStep_Python(ksp) # <<<<<<<<<<<<<< + * # + * KSPStep_Python(ksp, B, X) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_KSPPreStep_Python(__pyx_v_ksp); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1829, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1831 + * KSPPreStep_Python(ksp) + * # + * KSPStep_Python(ksp, B, X) # <<<<<<<<<<<<<< + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_KSPStep_Python(__pyx_v_ksp, __pyx_v_B, __pyx_v_X); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1831, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1832 + * # + * KSPStep_Python(ksp, B, X) + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) + * ksp.iter += 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPBuildResidual(__pyx_v_ksp, __pyx_v_t, __pyx_v_v, (&__pyx_v_R))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1832, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1833 + * KSPStep_Python(ksp, B, X) + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) # <<<<<<<<<<<<<< + * ksp.iter += 1 + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_R, NORM_2, (&__pyx_v_rnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1833, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1834 + * CHKERR( KSPBuildResidual(ksp, t, v, &R) ) + * CHKERR( VecNorm(R, PETSC_NORM_2, &rnorm) ) + * ksp.iter += 1 # <<<<<<<<<<<<<< + * # + * KSPPostStep_Python(ksp) + */ + __pyx_v_ksp->its = (__pyx_v_ksp->its + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1836 + * ksp.iter += 1 + * # + * KSPPostStep_Python(ksp) # <<<<<<<<<<<<<< + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_KSPPostStep_Python(__pyx_v_ksp); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1836, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1837 + * # + * KSPPostStep_Python(ksp) + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) # <<<<<<<<<<<<<< + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPConverged(__pyx_v_ksp, __pyx_v_ksp->its, __pyx_v_rnorm, (&__pyx_v_ksp->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1837, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1838 + * KSPPostStep_Python(ksp) + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) # <<<<<<<<<<<<<< + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * if ksp.iter == ksp.max_its: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPLogHistory(__pyx_v_ksp, __pyx_v_ksp->rnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1838, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1839 + * CHKERR( KSPConverged(ksp, ksp.iter, rnorm, &ksp.reason) ) + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) # <<<<<<<<<<<<<< + * if ksp.iter == ksp.max_its: + * if ksp.reason == KSP_CONVERGED_ITERATING: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPMonitor(__pyx_v_ksp, __pyx_v_ksp->its, __pyx_v_ksp->rnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1839, __pyx_L1_error) + } + __pyx_L6_break:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1840 + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * if ksp.iter == ksp.max_its: # <<<<<<<<<<<<<< + * if ksp.reason == KSP_CONVERGED_ITERATING: + * ksp.reason = KSP_DIVERGED_MAX_IT + */ + __pyx_t_2 = ((__pyx_v_ksp->its == __pyx_v_ksp->max_it) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1841 + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * if ksp.iter == ksp.max_its: + * if ksp.reason == KSP_CONVERGED_ITERATING: # <<<<<<<<<<<<<< + * ksp.reason = KSP_DIVERGED_MAX_IT + * # + */ + __pyx_t_2 = ((__pyx_v_ksp->reason == KSP_CONVERGED_ITERATING) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1842 + * if ksp.iter == ksp.max_its: + * if ksp.reason == KSP_CONVERGED_ITERATING: + * ksp.reason = KSP_DIVERGED_MAX_IT # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + __pyx_v_ksp->reason = KSP_DIVERGED_ITS; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1841 + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * if ksp.iter == ksp.max_its: + * if ksp.reason == KSP_CONVERGED_ITERATING: # <<<<<<<<<<<<<< + * ksp.reason = KSP_DIVERGED_MAX_IT + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1840 + * CHKERR( KSPLogHistory(ksp, ksp.norm) ) + * CHKERR( KSPMonitor(ksp, ksp.iter, ksp.norm) ) + * if ksp.iter == ksp.max_its: # <<<<<<<<<<<<<< + * if ksp.reason == KSP_CONVERGED_ITERATING: + * ksp.reason = KSP_DIVERGED_MAX_IT + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1844 + * ksp.reason = KSP_DIVERGED_MAX_IT + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPPreStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1786 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPSolve_Python_default( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec B, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.KSPSolve_Python_default", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1846 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPreStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPreStep_Python(KSP __pyx_v_ksp) { + PyObject *__pyx_v_preStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPPreStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1850 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPreStep_Python") # <<<<<<<<<<<<<< + * cdef preStep = PyKSP(ksp).preStep + * if preStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPreStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1851 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPreStep_Python") + * cdef preStep = PyKSP(ksp).preStep # <<<<<<<<<<<<<< + * if preStep is not None: + * preStep(KSP_(ksp)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_preStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1851, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_preStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1852 + * FunctionBegin(b"KSPPreStep_Python") + * cdef preStep = PyKSP(ksp).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(KSP_(ksp)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_preStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1853 + * cdef preStep = PyKSP(ksp).preStep + * if preStep is not None: + * preStep(KSP_(ksp)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_preStep); + __pyx_t_5 = __pyx_v_preStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1852 + * FunctionBegin(b"KSPPreStep_Python") + * cdef preStep = PyKSP(ksp).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(KSP_(ksp)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1854 + * if preStep is not None: + * preStep(KSP_(ksp)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPPostStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1846 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPreStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPreStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_preStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1856 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPostStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPPostStep_Python(KSP __pyx_v_ksp) { + PyObject *__pyx_v_postStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPPostStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1860 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPostStep_Python") # <<<<<<<<<<<<<< + * cdef postStep = PyKSP(ksp).postStep + * if postStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPPostStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1861 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPPostStep_Python") + * cdef postStep = PyKSP(ksp).postStep # <<<<<<<<<<<<<< + * if postStep is not None: + * postStep(KSP_(ksp)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_postStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1861, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_postStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1862 + * FunctionBegin(b"KSPPostStep_Python") + * cdef postStep = PyKSP(ksp).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(KSP_(ksp)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_postStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1863 + * cdef postStep = PyKSP(ksp).postStep + * if postStep is not None: + * postStep(KSP_(ksp)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_postStep); + __pyx_t_5 = __pyx_v_postStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1863, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1862 + * FunctionBegin(b"KSPPostStep_Python") + * cdef postStep = PyKSP(ksp).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(KSP_(ksp)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1864 + * if postStep is not None: + * postStep(KSP_(ksp)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode KSPStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1856 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPPostStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.KSPPostStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_postStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1866 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec B, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_KSPStep_Python(KSP __pyx_v_ksp, Vec __pyx_v_B, Vec __pyx_v_X) { + PyObject *__pyx_v_step = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("KSPStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1872 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPStep_Python") # <<<<<<<<<<<<<< + * cdef step = None + * if ksp.transpose_solve: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"KSPStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1873 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"KSPStep_Python") + * cdef step = None # <<<<<<<<<<<<<< + * if ksp.transpose_solve: + * step = PyKSP(ksp).stepTranspose + */ + __Pyx_INCREF(Py_None); + __pyx_v_step = Py_None; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1874 + * FunctionBegin(b"KSPStep_Python") + * cdef step = None + * if ksp.transpose_solve: # <<<<<<<<<<<<<< + * step = PyKSP(ksp).stepTranspose + * if step is None: return UNSUPPORTED(b"stepTranspose") + */ + if (__pyx_v_ksp->transpose_solve) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1875 + * cdef step = None + * if ksp.transpose_solve: + * step = PyKSP(ksp).stepTranspose # <<<<<<<<<<<<<< + * if step is None: return UNSUPPORTED(b"stepTranspose") + * else: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_stepTranspose); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_step, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1876 + * if ksp.transpose_solve: + * step = PyKSP(ksp).stepTranspose + * if step is None: return UNSUPPORTED(b"stepTranspose") # <<<<<<<<<<<<<< + * else: + * step = PyKSP(ksp).step + */ + __pyx_t_3 = (__pyx_v_step == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"stepTranspose")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1874 + * FunctionBegin(b"KSPStep_Python") + * cdef step = None + * if ksp.transpose_solve: # <<<<<<<<<<<<<< + * step = PyKSP(ksp).stepTranspose + * if step is None: return UNSUPPORTED(b"stepTranspose") + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1878 + * if step is None: return UNSUPPORTED(b"stepTranspose") + * else: + * step = PyKSP(ksp).step # <<<<<<<<<<<<<< + * if step is None: return UNSUPPORTED(b"step") + * step(KSP_(ksp), Vec_(B), Vec_(X)) + */ + /*else*/ { + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyKSP(__pyx_v_ksp)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_step); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF_SET(__pyx_v_step, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1879 + * else: + * step = PyKSP(ksp).step + * if step is None: return UNSUPPORTED(b"step") # <<<<<<<<<<<<<< + * step(KSP_(ksp), Vec_(B), Vec_(X)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_step == Py_None); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"step")); + goto __pyx_L0; + } + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1880 + * step = PyKSP(ksp).step + * if step is None: return UNSUPPORTED(b"step") + * step(KSP_(ksp), Vec_(B), Vec_(X)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_KSP_(__pyx_v_ksp)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_B)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_X)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_step); + __pyx_t_7 = __pyx_v_step; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_2, __pyx_t_5, __pyx_t_6}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_2, __pyx_t_5, __pyx_t_6}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_2 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1880, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1881 + * if step is None: return UNSUPPORTED(b"step") + * step(KSP_(ksp), Vec_(B), Vec_(X)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1866 + * return FunctionEnd() + * + * cdef PetscErrorCode KSPStep_Python( # <<<<<<<<<<<<<< + * PetscKSP ksp, + * PetscVec B, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.KSPStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_step); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1911 + * @cython.internal + * cdef class _PySNES(_PyObj): pass + * cdef inline _PySNES PySNES(PetscSNES snes): # <<<<<<<<<<<<<< + * if snes != NULL and snes.data != NULL: + * return <_PySNES>snes.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PySNES *__pyx_f_8petsc4py_5PETSc_PySNES(SNES __pyx_v_snes) { + struct __pyx_obj_8petsc4py_5PETSc__PySNES *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PySNES", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1912 + * cdef class _PySNES(_PyObj): pass + * cdef inline _PySNES PySNES(PetscSNES snes): + * if snes != NULL and snes.data != NULL: # <<<<<<<<<<<<<< + * return <_PySNES>snes.data + * else: + */ + __pyx_t_2 = ((__pyx_v_snes != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_snes->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1913 + * cdef inline _PySNES PySNES(PetscSNES snes): + * if snes != NULL and snes.data != NULL: + * return <_PySNES>snes.data # <<<<<<<<<<<<<< + * else: + * return _PySNES.__new__(_PySNES) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_v_snes->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_v_snes->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1912 + * cdef class _PySNES(_PyObj): pass + * cdef inline _PySNES PySNES(PetscSNES snes): + * if snes != NULL and snes.data != NULL: # <<<<<<<<<<<<<< + * return <_PySNES>snes.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1915 + * return <_PySNES>snes.data + * else: + * return _PySNES.__new__(_PySNES) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode SNESPythonGetContext(PetscSNES snes, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PySNES(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PySNES), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1915, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1911 + * @cython.internal + * cdef class _PySNES(_PyObj): pass + * cdef inline _PySNES PySNES(PetscSNES snes): # <<<<<<<<<<<<<< + * if snes != NULL and snes.data != NULL: + * return <_PySNES>snes.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PySNES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1917 + * return _PySNES.__new__(_PySNES) + * + * cdef public PetscErrorCode SNESPythonGetContext(PetscSNES snes, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonGetContext ") + */ + +PetscErrorCode SNESPythonGetContext(SNES __pyx_v_snes, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SNESPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1919 + * cdef public PetscErrorCode SNESPythonGetContext(PetscSNES snes, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonGetContext ") # <<<<<<<<<<<<<< + * PySNES(snes).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPythonGetContext ")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1920 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonGetContext ") + * PySNES(snes).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 1920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1921 + * FunctionBegin(b"SNESPythonGetContext ") + * PySNES(snes).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode SNESPythonSetContext(PetscSNES snes, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1917 + * return _PySNES.__new__(_PySNES) + * + * cdef public PetscErrorCode SNESPythonGetContext(PetscSNES snes, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonGetContext ") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1923 + * return FunctionEnd() + * + * cdef public PetscErrorCode SNESPythonSetContext(PetscSNES snes, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonSetContext ") + */ + +PetscErrorCode SNESPythonSetContext(SNES __pyx_v_snes, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("SNESPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1925 + * cdef public PetscErrorCode SNESPythonSetContext(PetscSNES snes, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonSetContext ") # <<<<<<<<<<<<<< + * PySNES(snes).setcontext(ctx, SNES_(snes)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPythonSetContext ")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1926 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonSetContext ") + * PySNES(snes).setcontext(ctx, SNES_(snes)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 1926, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1927 + * FunctionBegin(b"SNESPythonSetContext ") + * PySNES(snes).setcontext(ctx, SNES_(snes)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESPythonSetType_PYTHON(PetscSNES snes, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1923 + * return FunctionEnd() + * + * cdef public PetscErrorCode SNESPythonSetContext(PetscSNES snes, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESPythonSetContext ") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1929 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPythonSetType_PYTHON(PetscSNES snes, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPythonSetType_PYTHON(SNES __pyx_v_snes, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1931 + * cdef PetscErrorCode SNESPythonSetType_PYTHON(PetscSNES snes, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1932 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * SNESPythonSetContext(snes, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1933 + * FunctionBegin(b"SNESPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * SNESPythonSetContext(snes, ctx) + * PySNES(snes).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1934 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * SNESPythonSetContext(snes, ctx) # <<<<<<<<<<<<<< + * PySNES(snes).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = SNESPythonSetContext(__pyx_v_snes, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1934, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1935 + * cdef object ctx = createcontext(name) + * SNESPythonSetContext(snes, ctx) + * PySNES(snes).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 1935, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 1935, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1936 + * SNESPythonSetContext(snes, ctx) + * PySNES(snes).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESPythonGetType_PYTHON(PetscSNES snes, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1929 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPythonSetType_PYTHON(PetscSNES snes, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1938 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPythonGetType_PYTHON(PetscSNES snes, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPythonGetType_PYTHON(SNES __pyx_v_snes, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1940 + * cdef PetscErrorCode SNESPythonGetType_PYTHON(PetscSNES snes, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PySNES(snes).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1941 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonGetType_PYTHON") + * name[0] = PySNES(snes).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 1941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 1941, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1942 + * FunctionBegin(b"SNESPythonGetType_PYTHON") + * name[0] = PySNES(snes).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESCreate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1938 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPythonGetType_PYTHON(PetscSNES snes, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1944 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESCreate_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESCreate_Python(SNES __pyx_v_snes) { + SNESOps __pyx_v_ops; + SNESLineSearch __pyx_v_ls; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + SNESOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1948 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef SNESOps ops = snes.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1950 + * FunctionBegin(b"SNESCreate_Python") + * # + * cdef SNESOps ops = snes.ops # <<<<<<<<<<<<<< + * cdef PetscSNESLineSearch ls = NULL + * ops.reset = SNESReset_Python + */ + __pyx_t_1 = __pyx_v_snes->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1951 + * # + * cdef SNESOps ops = snes.ops + * cdef PetscSNESLineSearch ls = NULL # <<<<<<<<<<<<<< + * ops.reset = SNESReset_Python + * ops.destroy = SNESDestroy_Python + */ + __pyx_v_ls = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1952 + * cdef SNESOps ops = snes.ops + * cdef PetscSNESLineSearch ls = NULL + * ops.reset = SNESReset_Python # <<<<<<<<<<<<<< + * ops.destroy = SNESDestroy_Python + * ops.setup = SNESSetUp_Python + */ + __pyx_v_ops->reset = __pyx_f_8petsc4py_5PETSc_SNESReset_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1953 + * cdef PetscSNESLineSearch ls = NULL + * ops.reset = SNESReset_Python + * ops.destroy = SNESDestroy_Python # <<<<<<<<<<<<<< + * ops.setup = SNESSetUp_Python + * ops.setfromoptions = SNESSetFromOptions_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1954 + * ops.reset = SNESReset_Python + * ops.destroy = SNESDestroy_Python + * ops.setup = SNESSetUp_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = SNESSetFromOptions_Python + * ops.view = SNESView_Python + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_SNESSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1955 + * ops.destroy = SNESDestroy_Python + * ops.setup = SNESSetUp_Python + * ops.setfromoptions = SNESSetFromOptions_Python # <<<<<<<<<<<<<< + * ops.view = SNESView_Python + * ops.solve = SNESSolve_Python + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_SNESSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1956 + * ops.setup = SNESSetUp_Python + * ops.setfromoptions = SNESSetFromOptions_Python + * ops.view = SNESView_Python # <<<<<<<<<<<<<< + * ops.solve = SNESSolve_Python + * # + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_SNESView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1957 + * ops.setfromoptions = SNESSetFromOptions_Python + * ops.view = SNESView_Python + * ops.solve = SNESSolve_Python # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_ops->solve = __pyx_f_8petsc4py_5PETSc_SNESSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1959 + * ops.solve = SNESSolve_Python + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * snes, b"SNESPythonSetType_C", + * SNESPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_snes), ((char *)"SNESPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_SNESPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1959, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1962 + * snes, b"SNESPythonSetType_C", + * SNESPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * snes, b"SNESPythonGetType_C", + * SNESPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_snes), ((char *)"SNESPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_SNESPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1962, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1966 + * SNESPythonGetType_PYTHON) ) + * # + * cdef ctx = PySNES(NULL) # <<<<<<<<<<<<<< + * snes.data = ctx + * + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 1966, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1967 + * # + * cdef ctx = PySNES(NULL) + * snes.data = ctx # <<<<<<<<<<<<<< + * + * # Ensure that the SNES has a linesearch object early enough that + */ + __pyx_v_snes->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1971 + * # Ensure that the SNES has a linesearch object early enough that + * # it gets setFromOptions. + * CHKERR( SNESGetLineSearch(snes, &ls) ) # <<<<<<<<<<<<<< + * Py_INCREF(snes.data) + * return FunctionEnd() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLineSearch(__pyx_v_snes, (&__pyx_v_ls))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1971, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1972 + * # it gets setFromOptions. + * CHKERR( SNESGetLineSearch(snes, &ls) ) + * Py_INCREF(snes.data) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + Py_INCREF(((PyObject *)__pyx_v_snes->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1973 + * CHKERR( SNESGetLineSearch(snes, &ls) ) + * Py_INCREF(snes.data) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode SNESDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1944 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESCreate_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.SNESCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1975 + * return FunctionEnd() + * + * cdef inline PetscErrorCode SNESDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python_inner(SNES __pyx_v_snes) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1979 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(snes) + * SNESPythonSetContext(snes, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1980 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(snes) # <<<<<<<<<<<<<< + * SNESPythonSetContext(snes, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_snes); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1981 + * try: + * addRef(snes) + * SNESPythonSetContext(snes, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(snes) + */ + __pyx_t_1 = SNESPythonSetContext(__pyx_v_snes, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1981, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1983 + * SNESPythonSetContext(snes, NULL) + * finally: + * delRef(snes) # <<<<<<<<<<<<<< + * Py_DECREF(snes.data) + * snes.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_snes); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1984 + * finally: + * delRef(snes) + * Py_DECREF(snes.data) # <<<<<<<<<<<<<< + * snes.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_snes->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1985 + * delRef(snes) + * Py_DECREF(snes.data) + * snes.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_snes->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":1983 + * SNESPythonSetContext(snes, NULL) + * finally: + * delRef(snes) # <<<<<<<<<<<<<< + * Py_DECREF(snes.data) + * snes.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_snes); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1984 + * finally: + * delRef(snes) + * Py_DECREF(snes.data) # <<<<<<<<<<<<<< + * snes.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_snes->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1985 + * delRef(snes) + * Py_DECREF(snes.data) + * snes.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_snes->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":1986 + * Py_DECREF(snes.data) + * snes.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1975 + * return FunctionEnd() + * + * cdef inline PetscErrorCode SNESDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNESDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":1988 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode SNESDestroy_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python(SNES __pyx_v_snes) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1992 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * snes, b"SNESPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":1993 + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"SNESDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * snes, b"SNESPythonSetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_snes), ((char *)"SNESPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1993, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":1996 + * snes, b"SNESPythonSetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * snes, b"SNESPythonGetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_snes), ((char *)"SNESPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 1996, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2000 + * NULL) ) + * # + * if Py_IsInitialized(): SNESDestroy_Python_inner(snes) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_SNESDestroy_Python_inner(__pyx_v_snes); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2000, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2001 + * # + * if Py_IsInitialized(): SNESDestroy_Python_inner(snes) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1988 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode SNESDestroy_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.SNESDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2003 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSetUp_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSetUp_Python(SNES __pyx_v_snes) { + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2007 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESSetUp_Python") # <<<<<<<<<<<<<< + * # + * #SNESGetKSP(snes,&snes.ksp) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2012 + * # + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PySNES(snes).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2013 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PySNES(snes).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(snes), b"-snes_python_type", + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2014 + * cdef PetscBool found = PETSC_FALSE + * if PySNES(snes).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(snes), b"-snes_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_snes), ((char *)"-snes_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2014, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2017 + * getPrefix(snes), b"-snes_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * if PySNES(snes).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_3 = __pyx_v_found; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_name[0]) != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2018 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) # <<<<<<<<<<<<<< + * if PySNES(snes).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_SNESPythonSetType_PYTHON(__pyx_v_snes, __pyx_v_name); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2018, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_4); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2018, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2017 + * getPrefix(snes), b"-snes_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * if PySNES(snes).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2013 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PySNES(snes).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(snes), b"-snes_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2019 + * if found and name[0]: + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * if PySNES(snes).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2020 + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * if PySNES(snes).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * SNESPythonSetType(snes, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * SNESPythonSetType(snes, \"[package.]module.class\")\n * SNESSetFromOptions(snes) and pass option -snes_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2019 + * if found and name[0]: + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * if PySNES(snes).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2026 + * "-snes_python_type [package.]module.class") + * # + * cdef setUp = PySNES(snes).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(SNES_(snes)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2027 + * # + * cdef setUp = PySNES(snes).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(SNES_(snes)) + * return FunctionEnd() + */ + __pyx_t_2 = (__pyx_v_setUp != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2028 + * cdef setUp = PySNES(snes).setUp + * if setUp is not None: + * setUp(SNES_(snes)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2028, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2027 + * # + * cdef setUp = PySNES(snes).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(SNES_(snes)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2029 + * if setUp is not None: + * setUp(SNES_(snes)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode SNESReset_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2003 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSetUp_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.SNESSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2031 + * return FunctionEnd() + * + * cdef inline PetscErrorCode SNESReset_Python_inner( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESReset_Python_inner(SNES __pyx_v_snes) { + PyObject *__pyx_v_reset = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESReset_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2035 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PySNES(snes).reset # <<<<<<<<<<<<<< + * if reset is not None: + * reset(SNES_(snes)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_reset = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2036 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PySNES(snes).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(SNES_(snes)) + * return PETSC_SUCCESS + */ + __pyx_t_3 = (__pyx_v_reset != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2037 + * cdef reset = PySNES(snes).reset + * if reset is not None: + * reset(SNES_(snes)) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_reset); + __pyx_t_5 = __pyx_v_reset; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2036 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PySNES(snes).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(SNES_(snes)) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2038 + * if reset is not None: + * reset(SNES_(snes)) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESReset_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2031 + * return FunctionEnd() + * + * cdef inline PetscErrorCode SNESReset_Python_inner( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.SNESReset_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_reset); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2040 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode SNESReset_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESReset_Python(SNES __pyx_v_snes) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2044 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * if getRef(snes) == 0: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * FunctionBegin(b"SNESReset_Python") + * if Py_IsInitialized(): SNESReset_Python_inner(snes) + */ + __pyx_t_1 = ((__pyx_f_8petsc4py_5PETSc_getRef(__pyx_v_snes) == 0) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2045 + * nogil except PETSC_ERR_PYTHON: + * if getRef(snes) == 0: return PETSC_SUCCESS + * FunctionBegin(b"SNESReset_Python") # <<<<<<<<<<<<<< + * if Py_IsInitialized(): SNESReset_Python_inner(snes) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESReset_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2046 + * if getRef(snes) == 0: return PETSC_SUCCESS + * FunctionBegin(b"SNESReset_Python") + * if Py_IsInitialized(): SNESReset_Python_inner(snes) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = (Py_IsInitialized() != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_SNESReset_Python_inner(__pyx_v_snes); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2046, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2047 + * FunctionBegin(b"SNESReset_Python") + * if Py_IsInitialized(): SNESReset_Python_inner(snes) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2040 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode SNESReset_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.SNESReset_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2049 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscOptionItems *PetscOptionsObject, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSetFromOptions_Python(SNES __pyx_v_snes, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2054 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESSetFromOptions_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048], *defval = PySNES(snes).getname() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2056 + * FunctionBegin(b"SNESSetFromOptions_Python") + * # + * cdef char name[2048], *defval = PySNES(snes).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2056, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES *)((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 2056, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2057 + * # + * cdef char name[2048], *defval = PySNES(snes).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2058 + * cdef char name[2048], *defval = PySNES(snes).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-snes_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2059 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-snes_python_type", b"Python [package.]module[.{class|function}]", + * b"SNESPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-snes_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"SNESPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2059, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2061 + * CHKERR( PetscOptionsString( + * b"-snes_python_type", b"Python [package.]module[.{class|function}]", + * b"SNESPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2062 + * b"-snes_python_type", b"Python [package.]module[.{class|function}]", + * b"SNESPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2063 + * b"SNESPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PySNES(snes).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_SNESPythonSetType_PYTHON(__pyx_v_snes, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2063, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2063, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2062 + * b"-snes_python_type", b"Python [package.]module[.{class|function}]", + * b"SNESPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2065 + * CHKERR( SNESPythonSetType_PYTHON(snes, name) ) + * # + * cdef setFromOptions = PySNES(snes).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(SNES_(snes)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2065, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2066 + * # + * cdef setFromOptions = PySNES(snes).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(SNES_(snes)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2067 + * cdef setFromOptions = PySNES(snes).setFromOptions + * if setFromOptions is not None: + * setFromOptions(SNES_(snes)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2067, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2066 + * # + * cdef setFromOptions = PySNES(snes).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(SNES_(snes)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2068 + * if setFromOptions is not None: + * setFromOptions(SNES_(snes)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2049 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscOptionItems *PetscOptionsObject, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.SNESSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2070 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESView_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESView_Python(SNES __pyx_v_snes, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2075 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESView_Python") # <<<<<<<<<<<<<< + * viewcontext(PySNES(snes), vwr) + * cdef view = PySNES(snes).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2076 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESView_Python") + * viewcontext(PySNES(snes), vwr) # <<<<<<<<<<<<<< + * cdef view = PySNES(snes).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2076, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 2076, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2077 + * FunctionBegin(b"SNESView_Python") + * viewcontext(PySNES(snes), vwr) + * cdef view = PySNES(snes).view # <<<<<<<<<<<<<< + * if view is not None: + * view(SNES_(snes), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2078 + * viewcontext(PySNES(snes), vwr) + * cdef view = PySNES(snes).view + * if view is not None: # <<<<<<<<<<<<<< + * view(SNES_(snes), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2079 + * cdef view = PySNES(snes).view + * if view is not None: + * view(SNES_(snes), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2078 + * viewcontext(PySNES(snes), vwr) + * cdef view = PySNES(snes).view + * if view is not None: # <<<<<<<<<<<<<< + * view(SNES_(snes), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2080 + * if view is not None: + * view(SNES_(snes), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2070 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESView_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.SNESView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2082 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSolve_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSolve_Python(SNES __pyx_v_snes) { + Vec __pyx_v_b; + Vec __pyx_v_x; + PyObject *__pyx_v_solve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2086 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESSolve_Python") # <<<<<<<<<<<<<< + * cdef PetscVec b = NULL, x = NULL + * CHKERR( SNESGetRhs(snes, &b) ) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2087 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESSolve_Python") + * cdef PetscVec b = NULL, x = NULL # <<<<<<<<<<<<<< + * CHKERR( SNESGetRhs(snes, &b) ) + * CHKERR( SNESGetSolution(snes, &x) ) + */ + __pyx_v_b = NULL; + __pyx_v_x = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2088 + * FunctionBegin(b"SNESSolve_Python") + * cdef PetscVec b = NULL, x = NULL + * CHKERR( SNESGetRhs(snes, &b) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetSolution(snes, &x) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetRhs(__pyx_v_snes, (&__pyx_v_b))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2088, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2089 + * cdef PetscVec b = NULL, x = NULL + * CHKERR( SNESGetRhs(snes, &b) ) + * CHKERR( SNESGetSolution(snes, &x) ) # <<<<<<<<<<<<<< + * # + * snes.iter = 0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetSolution(__pyx_v_snes, (&__pyx_v_x))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2089, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2091 + * CHKERR( SNESGetSolution(snes, &x) ) + * # + * snes.iter = 0 # <<<<<<<<<<<<<< + * snes.reason = SNES_CONVERGED_ITERATING + * # + */ + __pyx_v_snes->iter = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2092 + * # + * snes.iter = 0 + * snes.reason = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * # + * cdef solve = PySNES(snes).solve + */ + __pyx_v_snes->reason = SNES_CONVERGED_ITERATING; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2094 + * snes.reason = SNES_CONVERGED_ITERATING + * # + * cdef solve = PySNES(snes).solve # <<<<<<<<<<<<<< + * if solve is not None: + * solve(SNES_(snes), Vec_(b) if b != NULL else None, Vec_(x)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_solve); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2094, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_solve = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2095 + * # + * cdef solve = PySNES(snes).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(SNES_(snes), Vec_(b) if b != NULL else None, Vec_(x)) + * else: + */ + __pyx_t_4 = (__pyx_v_solve != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2096 + * cdef solve = PySNES(snes).solve + * if solve is not None: + * solve(SNES_(snes), Vec_(b) if b != NULL else None, Vec_(x)) # <<<<<<<<<<<<<< + * else: + * SNESSolve_Python_default(snes) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (((__pyx_v_b != NULL) != 0)) { + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_b)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __pyx_t_7; + __pyx_t_7 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_6 = Py_None; + } + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_solve); + __pyx_t_8 = __pyx_v_solve; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_2, __pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_2, __pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_7); + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2095 + * # + * cdef solve = PySNES(snes).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(SNES_(snes), Vec_(b) if b != NULL else None, Vec_(x)) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2098 + * solve(SNES_(snes), Vec_(b) if b != NULL else None, Vec_(x)) + * else: + * SNESSolve_Python_default(snes) # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_SNESSolve_Python_default(__pyx_v_snes); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2098, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2100 + * SNESSolve_Python_default(snes) + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESSolve_Python_default( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2082 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSolve_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.SNESSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2102 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSolve_Python_default( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESSolve_Python_default(SNES __pyx_v_snes) { + Vec __pyx_v_X; + Vec __pyx_v_F; + Vec __pyx_v_Y; + SNESLineSearch __pyx_v_ls; + CYTHON_UNUSED PetscInt __pyx_v_its; + PetscInt __pyx_v_lits; + PetscReal __pyx_v_xnorm; + PetscReal __pyx_v_fnorm; + PetscReal __pyx_v_ynorm; + PetscObjectState __pyx_v_ostate; + PetscObjectState __pyx_v_nstate; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscInt __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESSolve_Python_default", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2106 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESSolve_Python_default") # <<<<<<<<<<<<<< + * # + * cdef PetscVec X=NULL, F=NULL, Y=NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESSolve_Python_default")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2108 + * FunctionBegin(b"SNESSolve_Python_default") + * # + * cdef PetscVec X=NULL, F=NULL, Y=NULL # <<<<<<<<<<<<<< + * cdef PetscSNESLineSearch ls + * CHKERR( SNESGetSolution(snes, &X) ) + */ + __pyx_v_X = NULL; + __pyx_v_F = NULL; + __pyx_v_Y = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2110 + * cdef PetscVec X=NULL, F=NULL, Y=NULL + * cdef PetscSNESLineSearch ls + * CHKERR( SNESGetSolution(snes, &X) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetFunction(snes, &F, NULL, NULL) ) + * CHKERR( SNESGetSolutionUpdate(snes, &Y) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetSolution(__pyx_v_snes, (&__pyx_v_X))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2110, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2111 + * cdef PetscSNESLineSearch ls + * CHKERR( SNESGetSolution(snes, &X) ) + * CHKERR( SNESGetFunction(snes, &F, NULL, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetSolutionUpdate(snes, &Y) ) + * CHKERR( SNESGetLineSearch(snes, &ls) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetFunction(__pyx_v_snes, (&__pyx_v_F), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2111, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2112 + * CHKERR( SNESGetSolution(snes, &X) ) + * CHKERR( SNESGetFunction(snes, &F, NULL, NULL) ) + * CHKERR( SNESGetSolutionUpdate(snes, &Y) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetLineSearch(snes, &ls) ) + * cdef PetscInt its=0, lits=0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetSolutionUpdate(__pyx_v_snes, (&__pyx_v_Y))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2112, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2113 + * CHKERR( SNESGetFunction(snes, &F, NULL, NULL) ) + * CHKERR( SNESGetSolutionUpdate(snes, &Y) ) + * CHKERR( SNESGetLineSearch(snes, &ls) ) # <<<<<<<<<<<<<< + * cdef PetscInt its=0, lits=0 + * cdef PetscReal xnorm = 0.0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLineSearch(__pyx_v_snes, (&__pyx_v_ls))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2113, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2114 + * CHKERR( SNESGetSolutionUpdate(snes, &Y) ) + * CHKERR( SNESGetLineSearch(snes, &ls) ) + * cdef PetscInt its=0, lits=0 # <<<<<<<<<<<<<< + * cdef PetscReal xnorm = 0.0 + * cdef PetscReal fnorm = 0.0 + */ + __pyx_v_its = 0; + __pyx_v_lits = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2115 + * CHKERR( SNESGetLineSearch(snes, &ls) ) + * cdef PetscInt its=0, lits=0 + * cdef PetscReal xnorm = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal fnorm = 0.0 + * cdef PetscReal ynorm = 0.0 + */ + __pyx_v_xnorm = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2116 + * cdef PetscInt its=0, lits=0 + * cdef PetscReal xnorm = 0.0 + * cdef PetscReal fnorm = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal ynorm = 0.0 + * # + */ + __pyx_v_fnorm = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2117 + * cdef PetscReal xnorm = 0.0 + * cdef PetscReal fnorm = 0.0 + * cdef PetscReal ynorm = 0.0 # <<<<<<<<<<<<<< + * # + * CHKERR( VecSet(Y, 0.0) ) + */ + __pyx_v_ynorm = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2119 + * cdef PetscReal ynorm = 0.0 + * # + * CHKERR( VecSet(Y, 0.0) ) # <<<<<<<<<<<<<< + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(X, PETSC_NORM_2, &xnorm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecSet(__pyx_v_Y, 0.0)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2119, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2120 + * # + * CHKERR( VecSet(Y, 0.0) ) + * CHKERR( SNESComputeFunction(snes, X, F) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(X, PETSC_NORM_2, &xnorm) ) + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeFunction(__pyx_v_snes, __pyx_v_X, __pyx_v_F)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2120, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2121 + * CHKERR( VecSet(Y, 0.0) ) + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(X, PETSC_NORM_2, &xnorm) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_X, NORM_2, (&__pyx_v_xnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2121, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2122 + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(X, PETSC_NORM_2, &xnorm) ) + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) # <<<<<<<<<<<<<< + * # + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_F, NORM_2, (&__pyx_v_fnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2122, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2124 + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + * # + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) # <<<<<<<<<<<<<< + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESConverged(__pyx_v_snes, __pyx_v_snes->iter, __pyx_v_xnorm, __pyx_v_ynorm, __pyx_v_fnorm, (&__pyx_v_snes->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2124, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2125 + * # + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) # <<<<<<<<<<<<<< + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLogHistory(__pyx_v_snes, __pyx_v_snes->norm, __pyx_v_lits)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2125, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2126 + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) # <<<<<<<<<<<<<< + * + * cdef PetscObjectState ostate = -1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESMonitor(__pyx_v_snes, __pyx_v_snes->iter, __pyx_v_snes->norm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2126, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2128 + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * + * cdef PetscObjectState ostate = -1 # <<<<<<<<<<<<<< + * cdef PetscObjectState nstate = -1 + * for its from 0 <= its < snes.max_its: + */ + __pyx_v_ostate = -1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2129 + * + * cdef PetscObjectState ostate = -1 + * cdef PetscObjectState nstate = -1 # <<<<<<<<<<<<<< + * for its from 0 <= its < snes.max_its: + * if snes.reason: break + */ + __pyx_v_nstate = -1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2130 + * cdef PetscObjectState ostate = -1 + * cdef PetscObjectState nstate = -1 + * for its from 0 <= its < snes.max_its: # <<<<<<<<<<<<<< + * if snes.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) + */ + __pyx_t_2 = __pyx_v_snes->max_its; + for (__pyx_v_its = 0; __pyx_v_its < __pyx_t_2; __pyx_v_its++) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2131 + * cdef PetscObjectState nstate = -1 + * for its from 0 <= its < snes.max_its: + * if snes.reason: break # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateGet(X, &ostate) ) + * SNESPreStep_Python(snes) + */ + if (__pyx_v_snes->reason) { + goto __pyx_L4_break; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2132 + * for its from 0 <= its < snes.max_its: + * if snes.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) # <<<<<<<<<<<<<< + * SNESPreStep_Python(snes) + * CHKERR( PetscObjectStateGet(X, &nstate) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateGet(((PetscObject)__pyx_v_X), (&__pyx_v_ostate))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2132, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2133 + * if snes.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) + * SNESPreStep_Python(snes) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_SNESPreStep_Python(__pyx_v_snes); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2133, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2134 + * CHKERR( PetscObjectStateGet(X, &ostate) ) + * SNESPreStep_Python(snes) + * CHKERR( PetscObjectStateGet(X, &nstate) ) # <<<<<<<<<<<<<< + * if ostate != nstate: + * CHKERR( SNESComputeFunction(snes, X, F) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateGet(((PetscObject)__pyx_v_X), (&__pyx_v_nstate))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2134, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2135 + * SNESPreStep_Python(snes) + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: # <<<<<<<<<<<<<< + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + */ + __pyx_t_3 = ((__pyx_v_ostate != __pyx_v_nstate) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2136 + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: + * CHKERR( SNESComputeFunction(snes, X, F) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeFunction(__pyx_v_snes, __pyx_v_X, __pyx_v_F)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2136, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2137 + * if ostate != nstate: + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) # <<<<<<<<<<<<<< + * # + * lits = -snes.linear_its + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_F, NORM_2, (&__pyx_v_fnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2137, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2135 + * SNESPreStep_Python(snes) + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: # <<<<<<<<<<<<<< + * CHKERR( SNESComputeFunction(snes, X, F) ) + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2139 + * CHKERR( VecNorm(F, PETSC_NORM_2, &fnorm) ) + * # + * lits = -snes.linear_its # <<<<<<<<<<<<<< + * SNESStep_Python(snes, X, F, Y) + * lits += snes.linear_its + */ + __pyx_v_lits = (-__pyx_v_snes->linear_its); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2140 + * # + * lits = -snes.linear_its + * SNESStep_Python(snes, X, F, Y) # <<<<<<<<<<<<<< + * lits += snes.linear_its + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_SNESStep_Python(__pyx_v_snes, __pyx_v_X, __pyx_v_F, __pyx_v_Y); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2140, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2141 + * lits = -snes.linear_its + * SNESStep_Python(snes, X, F, Y) + * lits += snes.linear_its # <<<<<<<<<<<<<< + * # + * CHKERR( SNESLineSearchApply(ls, X, F, NULL, Y) ) + */ + __pyx_v_lits = (__pyx_v_lits + __pyx_v_snes->linear_its); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2143 + * lits += snes.linear_its + * # + * CHKERR( SNESLineSearchApply(ls, X, F, NULL, Y) ) # <<<<<<<<<<<<<< + * CHKERR( SNESLineSearchGetNorms(ls, &xnorm, &fnorm, &ynorm) ) + * snes.iter += 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLineSearchApply(__pyx_v_ls, __pyx_v_X, __pyx_v_F, NULL, __pyx_v_Y)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2143, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2144 + * # + * CHKERR( SNESLineSearchApply(ls, X, F, NULL, Y) ) + * CHKERR( SNESLineSearchGetNorms(ls, &xnorm, &fnorm, &ynorm) ) # <<<<<<<<<<<<<< + * snes.iter += 1 + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLineSearchGetNorms(__pyx_v_ls, (&__pyx_v_xnorm), (&__pyx_v_fnorm), (&__pyx_v_ynorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2144, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2145 + * CHKERR( SNESLineSearchApply(ls, X, F, NULL, Y) ) + * CHKERR( SNESLineSearchGetNorms(ls, &xnorm, &fnorm, &ynorm) ) + * snes.iter += 1 # <<<<<<<<<<<<<< + * # + * SNESPostStep_Python(snes) + */ + __pyx_v_snes->iter = (__pyx_v_snes->iter + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2147 + * snes.iter += 1 + * # + * SNESPostStep_Python(snes) # <<<<<<<<<<<<<< + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_SNESPostStep_Python(__pyx_v_snes); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2147, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2148 + * # + * SNESPostStep_Python(snes) + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) # <<<<<<<<<<<<<< + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESConverged(__pyx_v_snes, __pyx_v_snes->iter, __pyx_v_xnorm, __pyx_v_ynorm, __pyx_v_fnorm, (&__pyx_v_snes->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2148, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2149 + * SNESPostStep_Python(snes) + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) # <<<<<<<<<<<<<< + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * if snes.iter == snes.max_its: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESLogHistory(__pyx_v_snes, __pyx_v_snes->norm, __pyx_v_lits)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2149, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2150 + * CHKERR( SNESConverged(snes, snes.iter, xnorm, ynorm, fnorm, &snes.reason) ) + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) # <<<<<<<<<<<<<< + * if snes.iter == snes.max_its: + * if snes.reason == SNES_CONVERGED_ITERATING: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESMonitor(__pyx_v_snes, __pyx_v_snes->iter, __pyx_v_snes->norm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2150, __pyx_L1_error) + } + __pyx_L4_break:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2151 + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * if snes.iter == snes.max_its: # <<<<<<<<<<<<<< + * if snes.reason == SNES_CONVERGED_ITERATING: + * snes.reason = SNES_DIVERGED_MAX_IT + */ + __pyx_t_3 = ((__pyx_v_snes->iter == __pyx_v_snes->max_its) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2152 + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * if snes.iter == snes.max_its: + * if snes.reason == SNES_CONVERGED_ITERATING: # <<<<<<<<<<<<<< + * snes.reason = SNES_DIVERGED_MAX_IT + * # + */ + __pyx_t_3 = ((__pyx_v_snes->reason == SNES_CONVERGED_ITERATING) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2153 + * if snes.iter == snes.max_its: + * if snes.reason == SNES_CONVERGED_ITERATING: + * snes.reason = SNES_DIVERGED_MAX_IT # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + __pyx_v_snes->reason = SNES_DIVERGED_MAX_IT; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2152 + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * if snes.iter == snes.max_its: + * if snes.reason == SNES_CONVERGED_ITERATING: # <<<<<<<<<<<<<< + * snes.reason = SNES_DIVERGED_MAX_IT + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2151 + * CHKERR( SNESLogHistory(snes, snes.norm, lits) ) + * CHKERR( SNESMonitor(snes, snes.iter, snes.norm) ) + * if snes.iter == snes.max_its: # <<<<<<<<<<<<<< + * if snes.reason == SNES_CONVERGED_ITERATING: + * snes.reason = SNES_DIVERGED_MAX_IT + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2155 + * snes.reason = SNES_DIVERGED_MAX_IT + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESPreStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2102 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESSolve_Python_default( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNESSolve_Python_default", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2157 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPreStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPreStep_Python(SNES __pyx_v_snes) { + PyObject *__pyx_v_preStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESPreStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2161 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPreStep_Python") # <<<<<<<<<<<<<< + * cdef preStep = PySNES(snes).preStep + * if preStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPreStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2162 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPreStep_Python") + * cdef preStep = PySNES(snes).preStep # <<<<<<<<<<<<<< + * if preStep is not None: + * preStep(SNES_(snes)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_preStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_preStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2163 + * FunctionBegin(b"SNESPreStep_Python") + * cdef preStep = PySNES(snes).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(SNES_(snes)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_preStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2164 + * cdef preStep = PySNES(snes).preStep + * if preStep is not None: + * preStep(SNES_(snes)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_preStep); + __pyx_t_5 = __pyx_v_preStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2163 + * FunctionBegin(b"SNESPreStep_Python") + * cdef preStep = PySNES(snes).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(SNES_(snes)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2165 + * if preStep is not None: + * preStep(SNES_(snes)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESPostStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2157 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPreStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPreStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_preStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2167 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPostStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESPostStep_Python(SNES __pyx_v_snes) { + PyObject *__pyx_v_postStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESPostStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2171 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPostStep_Python") # <<<<<<<<<<<<<< + * cdef postStep = PySNES(snes).postStep + * if postStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESPostStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2172 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESPostStep_Python") + * cdef postStep = PySNES(snes).postStep # <<<<<<<<<<<<<< + * if postStep is not None: + * postStep(SNES_(snes)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_postStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_postStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2173 + * FunctionBegin(b"SNESPostStep_Python") + * cdef postStep = PySNES(snes).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(SNES_(snes)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_postStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2174 + * cdef postStep = PySNES(snes).postStep + * if postStep is not None: + * postStep(SNES_(snes)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_postStep); + __pyx_t_5 = __pyx_v_postStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2173 + * FunctionBegin(b"SNESPostStep_Python") + * cdef postStep = PySNES(snes).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(SNES_(snes)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2175 + * if postStep is not None: + * postStep(SNES_(snes)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2167 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESPostStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.SNESPostStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_postStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2177 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec X, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESStep_Python(SNES __pyx_v_snes, Vec __pyx_v_X, Vec __pyx_v_F, Vec __pyx_v_Y) { + PyObject *__pyx_v_step = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PetscErrorCode __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2184 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESStep_Python") # <<<<<<<<<<<<<< + * cdef step = PySNES(snes).step + * if step is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2185 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESStep_Python") + * cdef step = PySNES(snes).step # <<<<<<<<<<<<<< + * if step is not None: + * step(SNES_(snes), Vec_(X), Vec_(F), Vec_(Y)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PySNES(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_step); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_step = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2186 + * FunctionBegin(b"SNESStep_Python") + * cdef step = PySNES(snes).step + * if step is not None: # <<<<<<<<<<<<<< + * step(SNES_(snes), Vec_(X), Vec_(F), Vec_(Y)) + * else: + */ + __pyx_t_3 = (__pyx_v_step != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2187 + * cdef step = PySNES(snes).step + * if step is not None: + * step(SNES_(snes), Vec_(X), Vec_(F), Vec_(Y)) # <<<<<<<<<<<<<< + * else: + * SNESStep_Python_default(snes, X, F, Y) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_X)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_F)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_Y)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_step); + __pyx_t_8 = __pyx_v_step; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_7); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2186 + * FunctionBegin(b"SNESStep_Python") + * cdef step = PySNES(snes).step + * if step is not None: # <<<<<<<<<<<<<< + * step(SNES_(snes), Vec_(X), Vec_(F), Vec_(Y)) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2189 + * step(SNES_(snes), Vec_(X), Vec_(F), Vec_(Y)) + * else: + * SNESStep_Python_default(snes, X, F, Y) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_SNESStep_Python_default(__pyx_v_snes, __pyx_v_X, __pyx_v_F, __pyx_v_Y); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2189, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2190 + * else: + * SNESStep_Python_default(snes, X, F, Y) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESStep_Python_default( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2177 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESStep_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec X, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.SNESStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_step); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2192 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESStep_Python_default( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec X, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESStep_Python_default(SNES __pyx_v_snes, Vec __pyx_v_X, Vec __pyx_v_F, Vec __pyx_v_Y) { + Mat __pyx_v_J; + Mat __pyx_v_P; + PetscInt __pyx_v_lits; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESStep_Python_default", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2199 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESStep_Python_default") # <<<<<<<<<<<<<< + * cdef PetscMat J = NULL, P = NULL + * cdef PetscInt lits = 0 + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"SNESStep_Python_default")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2200 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"SNESStep_Python_default") + * cdef PetscMat J = NULL, P = NULL # <<<<<<<<<<<<<< + * cdef PetscInt lits = 0 + * CHKERR( SNESGetJacobian(snes, &J, &P, NULL, NULL) ) + */ + __pyx_v_J = NULL; + __pyx_v_P = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2201 + * FunctionBegin(b"SNESStep_Python_default") + * cdef PetscMat J = NULL, P = NULL + * cdef PetscInt lits = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESGetJacobian(snes, &J, &P, NULL, NULL) ) + * CHKERR( SNESComputeJacobian(snes, X, J, P) ) + */ + __pyx_v_lits = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2202 + * cdef PetscMat J = NULL, P = NULL + * cdef PetscInt lits = 0 + * CHKERR( SNESGetJacobian(snes, &J, &P, NULL, NULL) ) # <<<<<<<<<<<<<< + * CHKERR( SNESComputeJacobian(snes, X, J, P) ) + * CHKERR( KSPSetOperators(snes.ksp, J, P) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetJacobian(__pyx_v_snes, (&__pyx_v_J), (&__pyx_v_P), NULL, NULL)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2202, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2203 + * cdef PetscInt lits = 0 + * CHKERR( SNESGetJacobian(snes, &J, &P, NULL, NULL) ) + * CHKERR( SNESComputeJacobian(snes, X, J, P) ) # <<<<<<<<<<<<<< + * CHKERR( KSPSetOperators(snes.ksp, J, P) ) + * CHKERR( KSPSolve(snes.ksp, F, Y) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESComputeJacobian(__pyx_v_snes, __pyx_v_X, __pyx_v_J, __pyx_v_P)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2203, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2204 + * CHKERR( SNESGetJacobian(snes, &J, &P, NULL, NULL) ) + * CHKERR( SNESComputeJacobian(snes, X, J, P) ) + * CHKERR( KSPSetOperators(snes.ksp, J, P) ) # <<<<<<<<<<<<<< + * CHKERR( KSPSolve(snes.ksp, F, Y) ) + * CHKERR( KSPGetIterationNumber(snes.ksp, &lits) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetOperators(__pyx_v_snes->ksp, __pyx_v_J, __pyx_v_P)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2204, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2205 + * CHKERR( SNESComputeJacobian(snes, X, J, P) ) + * CHKERR( KSPSetOperators(snes.ksp, J, P) ) + * CHKERR( KSPSolve(snes.ksp, F, Y) ) # <<<<<<<<<<<<<< + * CHKERR( KSPGetIterationNumber(snes.ksp, &lits) ) + * snes.linear_its += lits + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSolve(__pyx_v_snes->ksp, __pyx_v_F, __pyx_v_Y)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2205, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2206 + * CHKERR( KSPSetOperators(snes.ksp, J, P) ) + * CHKERR( KSPSolve(snes.ksp, F, Y) ) + * CHKERR( KSPGetIterationNumber(snes.ksp, &lits) ) # <<<<<<<<<<<<<< + * snes.linear_its += lits + * return FunctionEnd() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetIterationNumber(__pyx_v_snes->ksp, (&__pyx_v_lits))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2206, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2207 + * CHKERR( KSPSolve(snes.ksp, F, Y) ) + * CHKERR( KSPGetIterationNumber(snes.ksp, &lits) ) + * snes.linear_its += lits # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_v_snes->linear_its = (__pyx_v_snes->linear_its + __pyx_v_lits); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2208 + * CHKERR( KSPGetIterationNumber(snes.ksp, &lits) ) + * snes.linear_its += lits + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2192 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESStep_Python_default( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec X, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.SNESStep_Python_default", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2262 + * @cython.internal + * cdef class _PyTS(_PyObj): pass + * cdef inline _PyTS PyTS(PetscTS ts): # <<<<<<<<<<<<<< + * if ts != NULL and ts.data != NULL: + * return <_PyTS>ts.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyTS *__pyx_f_8petsc4py_5PETSc_PyTS(TS __pyx_v_ts) { + struct __pyx_obj_8petsc4py_5PETSc__PyTS *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyTS", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2263 + * cdef class _PyTS(_PyObj): pass + * cdef inline _PyTS PyTS(PetscTS ts): + * if ts != NULL and ts.data != NULL: # <<<<<<<<<<<<<< + * return <_PyTS>ts.data + * else: + */ + __pyx_t_2 = ((__pyx_v_ts != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_ts->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2264 + * cdef inline _PyTS PyTS(PetscTS ts): + * if ts != NULL and ts.data != NULL: + * return <_PyTS>ts.data # <<<<<<<<<<<<<< + * else: + * return _PyTS.__new__(_PyTS) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_v_ts->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_v_ts->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2263 + * cdef class _PyTS(_PyObj): pass + * cdef inline _PyTS PyTS(PetscTS ts): + * if ts != NULL and ts.data != NULL: # <<<<<<<<<<<<<< + * return <_PyTS>ts.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2266 + * return <_PyTS>ts.data + * else: + * return _PyTS.__new__(_PyTS) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode TSPythonGetContext(PetscTS ts, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PyTS(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PyTS), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2266, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2262 + * @cython.internal + * cdef class _PyTS(_PyObj): pass + * cdef inline _PyTS PyTS(PetscTS ts): # <<<<<<<<<<<<<< + * if ts != NULL and ts.data != NULL: + * return <_PyTS>ts.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PyTS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2268 + * return _PyTS.__new__(_PyTS) + * + * cdef public PetscErrorCode TSPythonGetContext(PetscTS ts, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonGetContext") + */ + +PetscErrorCode TSPythonGetContext(TS __pyx_v_ts, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TSPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2270 + * cdef public PetscErrorCode TSPythonGetContext(PetscTS ts, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonGetContext") # <<<<<<<<<<<<<< + * PyTS(ts).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSPythonGetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2271 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonGetContext") + * PyTS(ts).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 2271, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2272 + * FunctionBegin(b"TSPythonGetContext") + * PyTS(ts).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode TSPythonSetContext(PetscTS ts, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2268 + * return _PyTS.__new__(_PyTS) + * + * cdef public PetscErrorCode TSPythonGetContext(PetscTS ts, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonGetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TSPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2274 + * return FunctionEnd() + * + * cdef public PetscErrorCode TSPythonSetContext(PetscTS ts, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonSetContext") + */ + +PetscErrorCode TSPythonSetContext(TS __pyx_v_ts, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TSPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2276 + * cdef public PetscErrorCode TSPythonSetContext(PetscTS ts, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonSetContext") # <<<<<<<<<<<<<< + * PyTS(ts).setcontext(ctx, TS_(ts)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSPythonSetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2277 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonSetContext") + * PyTS(ts).setcontext(ctx, TS_(ts)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 2277, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2278 + * FunctionBegin(b"TSPythonSetContext") + * PyTS(ts).setcontext(ctx, TS_(ts)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSPythonSetType_PYTHON(PetscTS ts, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2274 + * return FunctionEnd() + * + * cdef public PetscErrorCode TSPythonSetContext(PetscTS ts, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSPythonSetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TSPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2280 + * return FunctionEnd() + * + * cdef PetscErrorCode TSPythonSetType_PYTHON(PetscTS ts, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSPythonSetType_PYTHON(TS __pyx_v_ts, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2282 + * cdef PetscErrorCode TSPythonSetType_PYTHON(PetscTS ts, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2283 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * TSPythonSetContext(ts, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2284 + * FunctionBegin(b"TSPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * TSPythonSetContext(ts, ctx) + * PyTS(ts).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2284, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2285 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * TSPythonSetContext(ts, ctx) # <<<<<<<<<<<<<< + * PyTS(ts).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = TSPythonSetContext(__pyx_v_ts, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2285, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2286 + * cdef object ctx = createcontext(name) + * TSPythonSetContext(ts, ctx) + * PyTS(ts).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 2286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2287 + * TSPythonSetContext(ts, ctx) + * PyTS(ts).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSPythonGetType_PYTHON(PetscTS ts, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2280 + * return FunctionEnd() + * + * cdef PetscErrorCode TSPythonSetType_PYTHON(PetscTS ts, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TSPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2289 + * return FunctionEnd() + * + * cdef PetscErrorCode TSPythonGetType_PYTHON(PetscTS ts, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSPythonGetType_PYTHON(TS __pyx_v_ts, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2291 + * cdef PetscErrorCode TSPythonGetType_PYTHON(PetscTS ts, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PyTS(ts).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2292 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonGetType_PYTHON") + * name[0] = PyTS(ts).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 2292, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2293 + * FunctionBegin(b"TSPythonGetType_PYTHON") + * name[0] = PyTS(ts).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSCreate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2289 + * return FunctionEnd() + * + * cdef PetscErrorCode TSPythonGetType_PYTHON(PetscTS ts, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TSPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2295 + * return FunctionEnd() + * + * cdef PetscErrorCode TSCreate_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSCreate_Python(TS __pyx_v_ts) { + TSOps __pyx_v_ops; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + TSOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2299 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef TSOps ops = ts.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2301 + * FunctionBegin(b"TSCreate_Python") + * # + * cdef TSOps ops = ts.ops # <<<<<<<<<<<<<< + * ops.reset = TSReset_Python + * ops.destroy = TSDestroy_Python + */ + __pyx_t_1 = __pyx_v_ts->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2302 + * # + * cdef TSOps ops = ts.ops + * ops.reset = TSReset_Python # <<<<<<<<<<<<<< + * ops.destroy = TSDestroy_Python + * ops.setup = TSSetUp_Python + */ + __pyx_v_ops->reset = __pyx_f_8petsc4py_5PETSc_TSReset_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2303 + * cdef TSOps ops = ts.ops + * ops.reset = TSReset_Python + * ops.destroy = TSDestroy_Python # <<<<<<<<<<<<<< + * ops.setup = TSSetUp_Python + * ops.setfromoptions = TSSetFromOptions_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_TSDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2304 + * ops.reset = TSReset_Python + * ops.destroy = TSDestroy_Python + * ops.setup = TSSetUp_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = TSSetFromOptions_Python + * ops.view = TSView_Python + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_TSSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2305 + * ops.destroy = TSDestroy_Python + * ops.setup = TSSetUp_Python + * ops.setfromoptions = TSSetFromOptions_Python # <<<<<<<<<<<<<< + * ops.view = TSView_Python + * ops.step = TSStep_Python + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_TSSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2306 + * ops.setup = TSSetUp_Python + * ops.setfromoptions = TSSetFromOptions_Python + * ops.view = TSView_Python # <<<<<<<<<<<<<< + * ops.step = TSStep_Python + * ops.rollback = TSRollBack_Python + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_TSView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2307 + * ops.setfromoptions = TSSetFromOptions_Python + * ops.view = TSView_Python + * ops.step = TSStep_Python # <<<<<<<<<<<<<< + * ops.rollback = TSRollBack_Python + * ops.interpolate = TSInterpolate_Python + */ + __pyx_v_ops->step = __pyx_f_8petsc4py_5PETSc_TSStep_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2308 + * ops.view = TSView_Python + * ops.step = TSStep_Python + * ops.rollback = TSRollBack_Python # <<<<<<<<<<<<<< + * ops.interpolate = TSInterpolate_Python + * ops.evaluatestep = TSEvaluateStep_Python + */ + __pyx_v_ops->rollback = __pyx_f_8petsc4py_5PETSc_TSRollBack_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2309 + * ops.step = TSStep_Python + * ops.rollback = TSRollBack_Python + * ops.interpolate = TSInterpolate_Python # <<<<<<<<<<<<<< + * ops.evaluatestep = TSEvaluateStep_Python + * ops.snesfunction = SNESTSFormFunction_Python + */ + __pyx_v_ops->interpolate = __pyx_f_8petsc4py_5PETSc_TSInterpolate_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2310 + * ops.rollback = TSRollBack_Python + * ops.interpolate = TSInterpolate_Python + * ops.evaluatestep = TSEvaluateStep_Python # <<<<<<<<<<<<<< + * ops.snesfunction = SNESTSFormFunction_Python + * ops.snesjacobian = SNESTSFormJacobian_Python + */ + __pyx_v_ops->evaluatestep = __pyx_f_8petsc4py_5PETSc_TSEvaluateStep_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2311 + * ops.interpolate = TSInterpolate_Python + * ops.evaluatestep = TSEvaluateStep_Python + * ops.snesfunction = SNESTSFormFunction_Python # <<<<<<<<<<<<<< + * ops.snesjacobian = SNESTSFormJacobian_Python + * # + */ + __pyx_v_ops->snesfunction = __pyx_f_8petsc4py_5PETSc_SNESTSFormFunction_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2312 + * ops.evaluatestep = TSEvaluateStep_Python + * ops.snesfunction = SNESTSFormFunction_Python + * ops.snesjacobian = SNESTSFormJacobian_Python # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_ops->snesjacobian = __pyx_f_8petsc4py_5PETSc_SNESTSFormJacobian_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2314 + * ops.snesjacobian = SNESTSFormJacobian_Python + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ts, b"TSPythonSetType_C", + * TSPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ts), ((char *)"TSPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_TSPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2314, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2317 + * ts, b"TSPythonSetType_C", + * TSPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ts, b"TSPythonGetType_C", + * TSPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ts), ((char *)"TSPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_TSPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2317, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2321 + * TSPythonGetType_PYTHON) ) + * # + * ts.usessnes = PETSC_TRUE # <<<<<<<<<<<<<< + * # + * cdef ctx = PyTS(NULL) + */ + __pyx_v_ts->usessnes = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2323 + * ts.usessnes = PETSC_TRUE + * # + * cdef ctx = PyTS(NULL) # <<<<<<<<<<<<<< + * ts.data = ctx + * Py_INCREF(ts.data) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2324 + * # + * cdef ctx = PyTS(NULL) + * ts.data = ctx # <<<<<<<<<<<<<< + * Py_INCREF(ts.data) + * return FunctionEnd() + */ + __pyx_v_ts->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2325 + * cdef ctx = PyTS(NULL) + * ts.data = ctx + * Py_INCREF(ts.data) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + Py_INCREF(((PyObject *)__pyx_v_ts->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2326 + * ts.data = ctx + * Py_INCREF(ts.data) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode TSDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2295 + * return FunctionEnd() + * + * cdef PetscErrorCode TSCreate_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TSCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2328 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TSDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSDestroy_Python_inner(TS __pyx_v_ts) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2332 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(ts) + * TSPythonSetContext(ts, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2333 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(ts) # <<<<<<<<<<<<<< + * TSPythonSetContext(ts, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_ts); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2334 + * try: + * addRef(ts) + * TSPythonSetContext(ts, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(ts) + */ + __pyx_t_1 = TSPythonSetContext(__pyx_v_ts, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2334, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2336 + * TSPythonSetContext(ts, NULL) + * finally: + * delRef(ts) # <<<<<<<<<<<<<< + * Py_DECREF(ts.data) + * ts.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_ts); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2337 + * finally: + * delRef(ts) + * Py_DECREF(ts.data) # <<<<<<<<<<<<<< + * ts.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_ts->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2338 + * delRef(ts) + * Py_DECREF(ts.data) + * ts.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_ts->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2336 + * TSPythonSetContext(ts, NULL) + * finally: + * delRef(ts) # <<<<<<<<<<<<<< + * Py_DECREF(ts.data) + * ts.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_ts); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2337 + * finally: + * delRef(ts) + * Py_DECREF(ts.data) # <<<<<<<<<<<<<< + * ts.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_ts->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2338 + * delRef(ts) + * Py_DECREF(ts.data) + * ts.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_ts->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2339 + * Py_DECREF(ts.data) + * ts.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2328 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TSDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TSDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2341 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TSDestroy_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSDestroy_Python(TS __pyx_v_ts) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2345 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * ts, b"TSPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2346 + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"TSDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ts, b"TSPythonSetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ts), ((char *)"TSPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2346, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2349 + * ts, b"TSPythonSetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * ts, b"TSPythonGetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_ts), ((char *)"TSPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2349, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2353 + * NULL) ) + * # + * if Py_IsInitialized(): TSDestroy_Python_inner(ts) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TSDestroy_Python_inner(__pyx_v_ts); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2353, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2354 + * # + * if Py_IsInitialized(): TSDestroy_Python_inner(ts) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2341 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TSDestroy_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.TSDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2356 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSetUp_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSetUp_Python(TS __pyx_v_ts) { + Vec __pyx_v_vec_update; + Vec __pyx_v_vec_dot; + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2360 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSSetUp_Python") # <<<<<<<<<<<<<< + * # + * cdef PetscVec vec_update = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2362 + * FunctionBegin(b"TSSetUp_Python") + * # + * cdef PetscVec vec_update = NULL # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(ts.vec_sol, &vec_update) ) + * CHKERR( PetscObjectCompose(ts, + */ + __pyx_v_vec_update = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2363 + * # + * cdef PetscVec vec_update = NULL + * CHKERR( VecDuplicate(ts.vec_sol, &vec_update) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ts, + * b"@ts.vec_update", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_ts->vec_sol, (&__pyx_v_vec_update))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2363, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2364 + * cdef PetscVec vec_update = NULL + * CHKERR( VecDuplicate(ts.vec_sol, &vec_update) ) + * CHKERR( PetscObjectCompose(ts, # <<<<<<<<<<<<<< + * b"@ts.vec_update", + * vec_update) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_update"), ((PetscObject)__pyx_v_vec_update))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2364, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2367 + * b"@ts.vec_update", + * vec_update) ) + * CHKERR( VecDestroy(&vec_update) ) # <<<<<<<<<<<<<< + * cdef PetscVec vec_dot = NULL + * CHKERR( VecDuplicate(ts.vec_sol, &vec_dot) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_vec_update))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2367, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2368 + * vec_update) ) + * CHKERR( VecDestroy(&vec_update) ) + * cdef PetscVec vec_dot = NULL # <<<<<<<<<<<<<< + * CHKERR( VecDuplicate(ts.vec_sol, &vec_dot) ) + * CHKERR( PetscObjectCompose(ts, + */ + __pyx_v_vec_dot = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2369 + * CHKERR( VecDestroy(&vec_update) ) + * cdef PetscVec vec_dot = NULL + * CHKERR( VecDuplicate(ts.vec_sol, &vec_dot) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ts, + * b"@ts.vec_dot", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDuplicate(__pyx_v_ts->vec_sol, (&__pyx_v_vec_dot))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2369, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2370 + * cdef PetscVec vec_dot = NULL + * CHKERR( VecDuplicate(ts.vec_sol, &vec_dot) ) + * CHKERR( PetscObjectCompose(ts, # <<<<<<<<<<<<<< + * b"@ts.vec_dot", + * vec_dot) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_dot"), ((PetscObject)__pyx_v_vec_dot))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2370, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2373 + * b"@ts.vec_dot", + * vec_dot) ) + * CHKERR( VecDestroy(&vec_dot) ) # <<<<<<<<<<<<<< + * # + * cdef char name[2048] + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecDestroy((&__pyx_v_vec_dot))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2373, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2376 + * # + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PyTS(ts).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2377 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyTS(ts).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(ts), b"-ts_python_type", + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = (((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_2)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2378 + * cdef PetscBool found = PETSC_FALSE + * if PyTS(ts).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(ts), b"-ts_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_ts), ((char *)"-ts_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2378, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2381 + * getPrefix(ts), b"-ts_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * if PyTS(ts).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_3 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2382 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) # <<<<<<<<<<<<<< + * if PyTS(ts).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TSPythonSetType_PYTHON(__pyx_v_ts, __pyx_v_name); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2382, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_1); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2382, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2381 + * getPrefix(ts), b"-ts_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * if PyTS(ts).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2377 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyTS(ts).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(ts), b"-ts_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2383 + * if found and name[0]: + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * if PyTS(ts).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_2)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2384 + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * if PyTS(ts).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * TSPythonSetType(ts, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * TSPythonSetType(ts, \"[package.]module.class\")\n * TSSetFromOptions(ts) and pass option -ts_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2383 + * if found and name[0]: + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * if PyTS(ts).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2390 + * "-ts_python_type [package.]module.class") + * # + * cdef setUp = PyTS(ts).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(TS_(ts)) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2391 + * # + * cdef setUp = PyTS(ts).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(TS_(ts)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_setUp != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2392 + * cdef setUp = PyTS(ts).setUp + * if setUp is not None: + * setUp(TS_(ts)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2391 + * # + * cdef setUp = PyTS(ts).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(TS_(ts)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2393 + * if setUp is not None: + * setUp(TS_(ts)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode TSReset_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2356 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSetUp_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.TSSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2395 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TSReset_Python_inner( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSReset_Python_inner(TS __pyx_v_ts) { + PyObject *__pyx_v_reset = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSReset_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2399 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyTS(ts).reset # <<<<<<<<<<<<<< + * if reset is not None: + * reset(TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_reset); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_reset = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2400 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyTS(ts).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(TS_(ts)) + * return PETSC_SUCCESS + */ + __pyx_t_3 = (__pyx_v_reset != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2401 + * cdef reset = PyTS(ts).reset + * if reset is not None: + * reset(TS_(ts)) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_reset); + __pyx_t_5 = __pyx_v_reset; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2400 + * except PETSC_ERR_PYTHON with gil: + * cdef reset = PyTS(ts).reset + * if reset is not None: # <<<<<<<<<<<<<< + * reset(TS_(ts)) + * return PETSC_SUCCESS + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2402 + * if reset is not None: + * reset(TS_(ts)) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSReset_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2395 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TSReset_Python_inner( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TSReset_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_reset); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2404 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TSReset_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSReset_Python(TS __pyx_v_ts) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2408 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * if getRef(ts) == 0: return PETSC_SUCCESS # <<<<<<<<<<<<<< + * FunctionBegin(b"TSReset_Python") + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_update", NULL) ) + */ + __pyx_t_1 = ((__pyx_f_8petsc4py_5PETSc_getRef(__pyx_v_ts) == 0) != 0); + if (__pyx_t_1) { + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2409 + * nogil except PETSC_ERR_PYTHON: + * if getRef(ts) == 0: return PETSC_SUCCESS + * FunctionBegin(b"TSReset_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_update", NULL) ) + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_dot", NULL) ) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSReset_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2410 + * if getRef(ts) == 0: return PETSC_SUCCESS + * FunctionBegin(b"TSReset_Python") + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_update", NULL) ) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_dot", NULL) ) + * if Py_IsInitialized(): TSReset_Python_inner(ts) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_update"), NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2410, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2411 + * FunctionBegin(b"TSReset_Python") + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_update", NULL) ) + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_dot", NULL) ) # <<<<<<<<<<<<<< + * if Py_IsInitialized(): TSReset_Python_inner(ts) + * return FunctionEnd() + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectCompose(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_dot"), NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2411, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2412 + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_update", NULL) ) + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_dot", NULL) ) + * if Py_IsInitialized(): TSReset_Python_inner(ts) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = (Py_IsInitialized() != 0); + if (__pyx_t_1) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_TSReset_Python_inner(__pyx_v_ts); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2412, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2413 + * CHKERR( PetscObjectCompose(ts, b"@ts.vec_dot", NULL) ) + * if Py_IsInitialized(): TSReset_Python_inner(ts) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2404 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TSReset_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.TSReset_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2415 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscOptionItems *PetscOptionsObject, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSetFromOptions_Python(TS __pyx_v_ts, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2420 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSSetFromOptions_Python") # <<<<<<<<<<<<<< + * cdef char name[2048], *defval = PyTS(ts).getname() + * cdef PetscBool found = PETSC_FALSE + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2421 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSSetFromOptions_Python") + * cdef char name[2048], *defval = PyTS(ts).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS *)((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 2421, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2422 + * FunctionBegin(b"TSSetFromOptions_Python") + * cdef char name[2048], *defval = PyTS(ts).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2423 + * cdef char name[2048], *defval = PyTS(ts).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-ts_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2424 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-ts_python_type", b"Python [package.]module[.{class|function}]", + * b"TSPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-ts_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"TSPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2424, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2426 + * CHKERR( PetscOptionsString( + * b"-ts_python_type", b"Python [package.]module[.{class|function}]", + * b"TSPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2427 + * b"-ts_python_type", b"Python [package.]module[.{class|function}]", + * b"TSPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2428 + * b"TSPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PyTS(ts).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_TSPythonSetType_PYTHON(__pyx_v_ts, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2428, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2428, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2427 + * b"-ts_python_type", b"Python [package.]module[.{class|function}]", + * b"TSPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2430 + * CHKERR( TSPythonSetType_PYTHON(ts, name) ) + * # + * cdef setFromOptions = PyTS(ts).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2431 + * # + * cdef setFromOptions = PyTS(ts).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(TS_(ts)) + * CHKERR( SNESSetFromOptions(ts.snes) ) + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2432 + * cdef setFromOptions = PyTS(ts).setFromOptions + * if setFromOptions is not None: + * setFromOptions(TS_(ts)) # <<<<<<<<<<<<<< + * CHKERR( SNESSetFromOptions(ts.snes) ) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2431 + * # + * cdef setFromOptions = PyTS(ts).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(TS_(ts)) + * CHKERR( SNESSetFromOptions(ts.snes) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2433 + * if setFromOptions is not None: + * setFromOptions(TS_(ts)) + * CHKERR( SNESSetFromOptions(ts.snes) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSetFromOptions(__pyx_v_ts->snes)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2433, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2434 + * setFromOptions(TS_(ts)) + * CHKERR( SNESSetFromOptions(ts.snes) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2415 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscOptionItems *PetscOptionsObject, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.TSSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2436 + * return FunctionEnd() + * + * cdef PetscErrorCode TSView_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSView_Python(TS __pyx_v_ts, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2441 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSView_Python") # <<<<<<<<<<<<<< + * viewcontext(PyTS(ts), vwr) + * cdef view = PyTS(ts).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2442 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSView_Python") + * viewcontext(PyTS(ts), vwr) # <<<<<<<<<<<<<< + * cdef view = PyTS(ts).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 2442, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2443 + * FunctionBegin(b"TSView_Python") + * viewcontext(PyTS(ts), vwr) + * cdef view = PyTS(ts).view # <<<<<<<<<<<<<< + * if view is not None: + * view(TS_(ts), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2443, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2444 + * viewcontext(PyTS(ts), vwr) + * cdef view = PyTS(ts).view + * if view is not None: # <<<<<<<<<<<<<< + * view(TS_(ts), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2445 + * cdef view = PyTS(ts).view + * if view is not None: + * view(TS_(ts), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2444 + * viewcontext(PyTS(ts), vwr) + * cdef view = PyTS(ts).view + * if view is not None: # <<<<<<<<<<<<<< + * view(TS_(ts), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2446 + * if view is not None: + * view(TS_(ts), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2436 + * return FunctionEnd() + * + * cdef PetscErrorCode TSView_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.TSView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2448 + * return FunctionEnd() + * + * cdef PetscErrorCode TSStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSStep_Python(TS __pyx_v_ts) { + PyObject *__pyx_v_step = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2452 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSStep_Python") # <<<<<<<<<<<<<< + * cdef step = PyTS(ts).step + * if step is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2453 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSStep_Python") + * cdef step = PyTS(ts).step # <<<<<<<<<<<<<< + * if step is not None: + * step(TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_step); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_step = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2454 + * FunctionBegin(b"TSStep_Python") + * cdef step = PyTS(ts).step + * if step is not None: # <<<<<<<<<<<<<< + * step(TS_(ts)) + * else: + */ + __pyx_t_3 = (__pyx_v_step != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2455 + * cdef step = PyTS(ts).step + * if step is not None: + * step(TS_(ts)) # <<<<<<<<<<<<<< + * else: + * TSStep_Python_default(ts) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_step); + __pyx_t_5 = __pyx_v_step; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2454 + * FunctionBegin(b"TSStep_Python") + * cdef step = PyTS(ts).step + * if step is not None: # <<<<<<<<<<<<<< + * step(TS_(ts)) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2457 + * step(TS_(ts)) + * else: + * TSStep_Python_default(ts) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + /*else*/ { + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_TSStep_Python_default(__pyx_v_ts); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2457, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2458 + * else: + * TSStep_Python_default(ts) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSRollBack_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2448 + * return FunctionEnd() + * + * cdef PetscErrorCode TSStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TSStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_step); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2460 + * return FunctionEnd() + * + * cdef PetscErrorCode TSRollBack_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSRollBack_Python(TS __pyx_v_ts) { + PyObject *__pyx_v_rollback = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSRollBack_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2464 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSRollBack_Python") # <<<<<<<<<<<<<< + * cdef rollback = PyTS(ts).rollback + * if rollback is None: return UNSUPPORTED(b"rollback") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSRollBack_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2465 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSRollBack_Python") + * cdef rollback = PyTS(ts).rollback # <<<<<<<<<<<<<< + * if rollback is None: return UNSUPPORTED(b"rollback") + * rollback(TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_rollback); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_rollback = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2466 + * FunctionBegin(b"TSRollBack_Python") + * cdef rollback = PyTS(ts).rollback + * if rollback is None: return UNSUPPORTED(b"rollback") # <<<<<<<<<<<<<< + * rollback(TS_(ts)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_rollback == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"rollback")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2467 + * cdef rollback = PyTS(ts).rollback + * if rollback is None: return UNSUPPORTED(b"rollback") + * rollback(TS_(ts)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_rollback); + __pyx_t_5 = __pyx_v_rollback; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2468 + * if rollback is None: return UNSUPPORTED(b"rollback") + * rollback(TS_(ts)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSInterpolate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2460 + * return FunctionEnd() + * + * cdef PetscErrorCode TSRollBack_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TSRollBack_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_rollback); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2470 + * return FunctionEnd() + * + * cdef PetscErrorCode TSInterpolate_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSInterpolate_Python(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x) { + PyObject *__pyx_v_interpolate = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSInterpolate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2476 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSInterpolate _Python") # <<<<<<<<<<<<<< + * cdef interpolate = PyTS(ts).interpolate + * if interpolate is None: return UNSUPPORTED(b"interpolate") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSInterpolate _Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2477 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSInterpolate _Python") + * cdef interpolate = PyTS(ts).interpolate # <<<<<<<<<<<<<< + * if interpolate is None: return UNSUPPORTED(b"interpolate") + * interpolate(TS_(ts), toReal(t), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_interpolate); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_interpolate = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2478 + * FunctionBegin(b"TSInterpolate _Python") + * cdef interpolate = PyTS(ts).interpolate + * if interpolate is None: return UNSUPPORTED(b"interpolate") # <<<<<<<<<<<<<< + * interpolate(TS_(ts), toReal(t), Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_interpolate == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"interpolate")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2479 + * cdef interpolate = PyTS(ts).interpolate + * if interpolate is None: return UNSUPPORTED(b"interpolate") + * interpolate(TS_(ts), toReal(t), Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toReal(__pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_interpolate); + __pyx_t_7 = __pyx_v_interpolate; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2480 + * if interpolate is None: return UNSUPPORTED(b"interpolate") + * interpolate(TS_(ts), toReal(t), Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSEvaluateStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2470 + * return FunctionEnd() + * + * cdef PetscErrorCode TSInterpolate_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.TSInterpolate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_interpolate); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2482 + * return FunctionEnd() + * + * cdef PetscErrorCode TSEvaluateStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt o, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSEvaluateStep_Python(TS __pyx_v_ts, PetscInt __pyx_v_o, Vec __pyx_v_x, PetscBool *__pyx_v_flag) { + PyObject *__pyx_v_evaluatestep = 0; + PyObject *__pyx_v_done = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PetscBool __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSEvaluateStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2489 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSEvaluateStep _Python") # <<<<<<<<<<<<<< + * cdef evaluatestep = PyTS(ts).evaluatestep + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSEvaluateStep _Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2490 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSEvaluateStep _Python") + * cdef evaluatestep = PyTS(ts).evaluatestep # <<<<<<<<<<<<<< + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_evaluatestep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_evaluatestep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2491 + * FunctionBegin(b"TSEvaluateStep _Python") + * cdef evaluatestep = PyTS(ts).evaluatestep + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") # <<<<<<<<<<<<<< + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) + * if flag != NULL: + */ + __pyx_t_3 = (__pyx_v_evaluatestep == Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_UNSUPPORTED(((char *)"evaluatestep")); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2492 + * cdef evaluatestep = PyTS(ts).evaluatestep + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) # <<<<<<<<<<<<<< + * if flag != NULL: + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_toInt(__pyx_v_o); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_evaluatestep); + __pyx_t_7 = __pyx_v_evaluatestep; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_done = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2493 + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) + * if flag != NULL: # <<<<<<<<<<<<<< + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + * elif not done: + */ + __pyx_t_4 = ((__pyx_v_flag != NULL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2494 + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) + * if flag != NULL: + * flag[0] = PETSC_TRUE if done else PETSC_FALSE # <<<<<<<<<<<<<< + * elif not done: + * return PetscSETERR(PETSC_ERR_USER, "Cannot evaluate step") + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_done); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(11, 2494, __pyx_L1_error) + if (__pyx_t_4) { + __pyx_t_11 = PETSC_TRUE; + } else { + __pyx_t_11 = PETSC_FALSE; + } + (__pyx_v_flag[0]) = __pyx_t_11; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2493 + * if evaluatestep is None: return UNSUPPORTED(b"evaluatestep") + * cdef done = evaluatestep(TS_(ts), toInt(o), Vec_(x)) + * if flag != NULL: # <<<<<<<<<<<<<< + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + * elif not done: + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2495 + * if flag != NULL: + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + * elif not done: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, "Cannot evaluate step") + * return FunctionEnd() + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_done); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(11, 2495, __pyx_L1_error) + __pyx_t_3 = ((!__pyx_t_4) != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2496 + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + * elif not done: + * return PetscSETERR(PETSC_ERR_USER, "Cannot evaluate step") # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Cannot evaluate step")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2495 + * if flag != NULL: + * flag[0] = PETSC_TRUE if done else PETSC_FALSE + * elif not done: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, "Cannot evaluate step") + * return FunctionEnd() + */ + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2497 + * elif not done: + * return PetscSETERR(PETSC_ERR_USER, "Cannot evaluate step") + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESTSFormFunction_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2482 + * return FunctionEnd() + * + * cdef PetscErrorCode TSEvaluateStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscInt o, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.TSEvaluateStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_evaluatestep); + __Pyx_XDECREF(__pyx_v_done); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2499 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESTSFormFunction_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESTSFormFunction_Python(SNES __pyx_v_snes, Vec __pyx_v_x, Vec __pyx_v_f, TS __pyx_v_ts) { + PyObject *__pyx_v_formSNESFunction = 0; + PyObject *__pyx_v_args = NULL; + Vec __pyx_v_dx; + PetscReal __pyx_v_t; + PetscReal __pyx_v_a; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PetscErrorCode __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESTSFormFunction_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2507 + * except PETSC_ERR_PYTHON with gil: + * # + * cdef formSNESFunction = PyTS(ts).formSNESFunction # <<<<<<<<<<<<<< + * if formSNESFunction is not None: + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_formSNESFunction); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_formSNESFunction = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2508 + * # + * cdef formSNESFunction = PyTS(ts).formSNESFunction + * if formSNESFunction is not None: # <<<<<<<<<<<<<< + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) + * formSNESFunction(args) + */ + __pyx_t_3 = (__pyx_v_formSNESFunction != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2509 + * cdef formSNESFunction = PyTS(ts).formSNESFunction + * if formSNESFunction is not None: + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) # <<<<<<<<<<<<<< + * formSNESFunction(args) + * return FunctionEnd() + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_f)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_v_args = ((PyObject*)__pyx_t_7); + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2510 + * if formSNESFunction is not None: + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) + * formSNESFunction(args) # <<<<<<<<<<<<<< + * return FunctionEnd() + * # + */ + __Pyx_INCREF(__pyx_v_formSNESFunction); + __pyx_t_6 = __pyx_v_formSNESFunction; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + } + } + __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_args) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_args); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2510, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2511 + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) + * formSNESFunction(args) + * return FunctionEnd() # <<<<<<<<<<<<<< + * # + * cdef PetscVec dx = NULL + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2508 + * # + * cdef formSNESFunction = PyTS(ts).formSNESFunction + * if formSNESFunction is not None: # <<<<<<<<<<<<<< + * args = (SNES_(snes), Vec_(x), Vec_(f), TS_(ts)) + * formSNESFunction(args) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2513 + * return FunctionEnd() + * # + * cdef PetscVec dx = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery( + * ts, + */ + __pyx_v_dx = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2514 + * # + * cdef PetscVec dx = NULL + * CHKERR( PetscObjectQuery( # <<<<<<<<<<<<<< + * ts, + * b"@ts.vec_dot", + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_dot"), ((PetscObject *)(&__pyx_v_dx)))); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2514, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2519 + * &dx) ) + * # + * cdef PetscReal t = ts.ptime + ts.time_step # <<<<<<<<<<<<<< + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) + */ + __pyx_v_t = (__pyx_v_ts->ptime + __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2520 + * # + * cdef PetscReal t = ts.ptime + ts.time_step + * cdef PetscReal a = 1.0/ts.time_step # <<<<<<<<<<<<<< + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + */ + __pyx_v_a = (((PetscReal)1.0) / __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2521 + * cdef PetscReal t = ts.ptime + ts.time_step + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIFunction(ts, t, x, dx, f, PETSC_FALSE) ) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_ts->vec_sol, __pyx_v_dx)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2521, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2522 + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) # <<<<<<<<<<<<<< + * CHKERR( TSComputeIFunction(ts, t, x, dx, f, PETSC_FALSE) ) + * return FunctionEnd() + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPBY(__pyx_v_dx, __pyx_v_a, (-__pyx_v_a), __pyx_v_x)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2522, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2523 + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIFunction(ts, t, x, dx, f, PETSC_FALSE) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeIFunction(__pyx_v_ts, __pyx_v_t, __pyx_v_x, __pyx_v_dx, __pyx_v_f, PETSC_FALSE)); if (unlikely(__pyx_t_8 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2523, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2524 + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIFunction(ts, t, x, dx, f, PETSC_FALSE) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SNESTSFormJacobian_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2499 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESTSFormFunction_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.SNESTSFormFunction_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_formSNESFunction); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2526 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESTSFormJacobian_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_SNESTSFormJacobian_Python(SNES __pyx_v_snes, Vec __pyx_v_x, Mat __pyx_v_A, Mat __pyx_v_B, TS __pyx_v_ts) { + PyObject *__pyx_v_formSNESJacobian = 0; + PyObject *__pyx_v_args = NULL; + Vec __pyx_v_dx; + PetscReal __pyx_v_t; + PetscReal __pyx_v_a; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PetscErrorCode __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("SNESTSFormJacobian_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2535 + * except PETSC_ERR_PYTHON with gil: + * # + * cdef formSNESJacobian = PyTS(ts).formSNESJacobian # <<<<<<<<<<<<<< + * if formSNESJacobian is not None: + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_formSNESJacobian); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_formSNESJacobian = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2536 + * # + * cdef formSNESJacobian = PyTS(ts).formSNESJacobian + * if formSNESJacobian is not None: # <<<<<<<<<<<<<< + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) + * formSNESJacobian(*args) + */ + __pyx_t_3 = (__pyx_v_formSNESJacobian != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2537 + * cdef formSNESJacobian = PyTS(ts).formSNESJacobian + * if formSNESJacobian is not None: + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) # <<<<<<<<<<<<<< + * formSNESJacobian(*args) + * return FunctionEnd() + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_SNES_(__pyx_v_snes)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_A)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Mat_(__pyx_v_B)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 2537, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_7); + __pyx_t_2 = 0; + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_v_args = ((PyObject*)__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2538 + * if formSNESJacobian is not None: + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) + * formSNESJacobian(*args) # <<<<<<<<<<<<<< + * return FunctionEnd() + * # + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_v_formSNESJacobian, __pyx_v_args, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 2538, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2539 + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) + * formSNESJacobian(*args) + * return FunctionEnd() # <<<<<<<<<<<<<< + * # + * cdef PetscVec dx = NULL + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2536 + * # + * cdef formSNESJacobian = PyTS(ts).formSNESJacobian + * if formSNESJacobian is not None: # <<<<<<<<<<<<<< + * args = (SNES_(snes), Vec_(x), Mat_(A), Mat_(B), TS_(ts)) + * formSNESJacobian(*args) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2541 + * return FunctionEnd() + * # + * cdef PetscVec dx = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery( + * ts, + */ + __pyx_v_dx = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2542 + * # + * cdef PetscVec dx = NULL + * CHKERR( PetscObjectQuery( # <<<<<<<<<<<<<< + * ts, + * b"@ts.vec_dot", + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_dot"), ((PetscObject *)(&__pyx_v_dx)))); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2542, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2547 + * &dx) ) + * # + * cdef PetscReal t = ts.ptime + ts.time_step # <<<<<<<<<<<<<< + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) + */ + __pyx_v_t = (__pyx_v_ts->ptime + __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2548 + * # + * cdef PetscReal t = ts.ptime + ts.time_step + * cdef PetscReal a = 1.0/ts.time_step # <<<<<<<<<<<<<< + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + */ + __pyx_v_a = (((PetscReal)1.0) / __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2549 + * cdef PetscReal t = ts.ptime + ts.time_step + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) # <<<<<<<<<<<<<< + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIJacobian(ts, t, x, dx, a, A, B, PETSC_FALSE) ) + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_ts->vec_sol, __pyx_v_dx)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2549, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2550 + * cdef PetscReal a = 1.0/ts.time_step + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) # <<<<<<<<<<<<<< + * CHKERR( TSComputeIJacobian(ts, t, x, dx, a, A, B, PETSC_FALSE) ) + * return FunctionEnd() + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecAXPBY(__pyx_v_dx, __pyx_v_a, (-__pyx_v_a), __pyx_v_x)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2550, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2551 + * CHKERR( VecCopy(ts.vec_sol, dx) ) + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIJacobian(ts, t, x, dx, a, A, B, PETSC_FALSE) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_9 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSComputeIJacobian(__pyx_v_ts, __pyx_v_t, __pyx_v_x, __pyx_v_dx, __pyx_v_a, __pyx_v_A, __pyx_v_B, PETSC_FALSE)); if (unlikely(__pyx_t_9 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2551, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2552 + * CHKERR( VecAXPBY(dx, +a, -a, x) ) + * CHKERR( TSComputeIJacobian(ts, t, x, dx, a, A, B, PETSC_FALSE) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSSolveStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2526 + * return FunctionEnd() + * + * cdef PetscErrorCode SNESTSFormJacobian_Python( # <<<<<<<<<<<<<< + * PetscSNES snes, + * PetscVec x, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.SNESTSFormJacobian_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_formSNESJacobian); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2554 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSolveStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSSolveStep_Python(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x) { + PyObject *__pyx_v_solveStep = 0; + PetscInt __pyx_v_nits; + PetscInt __pyx_v_lits; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + PetscErrorCode __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSSolveStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2560 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSSolveStep_Python") # <<<<<<<<<<<<<< + * # + * cdef solveStep = PyTS(ts).solveStep + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSSolveStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2562 + * FunctionBegin(b"TSSolveStep_Python") + * # + * cdef solveStep = PyTS(ts).solveStep # <<<<<<<<<<<<<< + * if solveStep is not None: + * solveStep(TS_(ts), t, Vec_(x)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solveStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solveStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2563 + * # + * cdef solveStep = PyTS(ts).solveStep + * if solveStep is not None: # <<<<<<<<<<<<<< + * solveStep(TS_(ts), t, Vec_(x)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_solveStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2564 + * cdef solveStep = PyTS(ts).solveStep + * if solveStep is not None: + * solveStep(TS_(ts), t, Vec_(x)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * # + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyFloat_FromDouble(((double)__pyx_v_t)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_solveStep); + __pyx_t_7 = __pyx_v_solveStep; __pyx_t_8 = NULL; + __pyx_t_9 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_9 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_1, __pyx_t_5, __pyx_t_6}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 3+__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_10 = PyTuple_New(3+__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_9, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_9, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_9, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2565 + * if solveStep is not None: + * solveStep(TS_(ts), t, Vec_(x)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * # + * cdef PetscInt nits = 0, lits = 0 + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2563 + * # + * cdef solveStep = PyTS(ts).solveStep + * if solveStep is not None: # <<<<<<<<<<<<<< + * solveStep(TS_(ts), t, Vec_(x)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2567 + * return FunctionEnd() + * # + * cdef PetscInt nits = 0, lits = 0 # <<<<<<<<<<<<<< + * CHKERR( SNESSolve(ts.snes, NULL, x) ) + * CHKERR( SNESGetIterationNumber(ts.snes, &nits) ) + */ + __pyx_v_nits = 0; + __pyx_v_lits = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2568 + * # + * cdef PetscInt nits = 0, lits = 0 + * CHKERR( SNESSolve(ts.snes, NULL, x) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetIterationNumber(ts.snes, &nits) ) + * CHKERR( SNESGetLinearSolveIterations(ts.snes, &lits) ) + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESSolve(__pyx_v_ts->snes, NULL, __pyx_v_x)); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2568, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2569 + * cdef PetscInt nits = 0, lits = 0 + * CHKERR( SNESSolve(ts.snes, NULL, x) ) + * CHKERR( SNESGetIterationNumber(ts.snes, &nits) ) # <<<<<<<<<<<<<< + * CHKERR( SNESGetLinearSolveIterations(ts.snes, &lits) ) + * ts.snes_its += nits + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetIterationNumber(__pyx_v_ts->snes, (&__pyx_v_nits))); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2569, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2570 + * CHKERR( SNESSolve(ts.snes, NULL, x) ) + * CHKERR( SNESGetIterationNumber(ts.snes, &nits) ) + * CHKERR( SNESGetLinearSolveIterations(ts.snes, &lits) ) # <<<<<<<<<<<<<< + * ts.snes_its += nits + * ts.ksp_its += lits + */ + __pyx_t_11 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESGetLinearSolveIterations(__pyx_v_ts->snes, (&__pyx_v_lits))); if (unlikely(__pyx_t_11 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2570, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2571 + * CHKERR( SNESGetIterationNumber(ts.snes, &nits) ) + * CHKERR( SNESGetLinearSolveIterations(ts.snes, &lits) ) + * ts.snes_its += nits # <<<<<<<<<<<<<< + * ts.ksp_its += lits + * return FunctionEnd() + */ + __pyx_v_ts->snes_its = (__pyx_v_ts->snes_its + __pyx_v_nits); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2572 + * CHKERR( SNESGetLinearSolveIterations(ts.snes, &lits) ) + * ts.snes_its += nits + * ts.ksp_its += lits # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_v_ts->ksp_its = (__pyx_v_ts->ksp_its + __pyx_v_lits); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2573 + * ts.snes_its += nits + * ts.ksp_its += lits + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSAdaptStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2554 + * return FunctionEnd() + * + * cdef PetscErrorCode TSSolveStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("petsc4py.PETSc.TSSolveStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solveStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2575 + * return FunctionEnd() + * + * cdef PetscErrorCode TSAdaptStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSAdaptStep_Python(TS __pyx_v_ts, PetscReal __pyx_v_t, Vec __pyx_v_x, PetscReal *__pyx_v_nextdt, PetscBool *__pyx_v_stepok) { + PyObject *__pyx_v_adaptStep = 0; + PyObject *__pyx_v_retval = 0; + double __pyx_v_dt; + int __pyx_v_ok; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscReal __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + double __pyx_t_12; + PetscBool __pyx_t_13; + PyObject *(*__pyx_t_14)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSAdaptStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2583 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSAdaptStep_Python") # <<<<<<<<<<<<<< + * nextdt[0] = ts.time_step + * stepok[0] = PETSC_TRUE + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSAdaptStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2584 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSAdaptStep_Python") + * nextdt[0] = ts.time_step # <<<<<<<<<<<<<< + * stepok[0] = PETSC_TRUE + * # + */ + __pyx_t_1 = __pyx_v_ts->time_step; + (__pyx_v_nextdt[0]) = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2585 + * FunctionBegin(b"TSAdaptStep_Python") + * nextdt[0] = ts.time_step + * stepok[0] = PETSC_TRUE # <<<<<<<<<<<<<< + * # + * cdef adaptStep = PyTS(ts).adaptStep + */ + (__pyx_v_stepok[0]) = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2587 + * stepok[0] = PETSC_TRUE + * # + * cdef adaptStep = PyTS(ts).adaptStep # <<<<<<<<<<<<<< + * if adaptStep is None: return FunctionEnd() + * cdef object retval + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTS(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_adaptStep); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_adaptStep = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2588 + * # + * cdef adaptStep = PyTS(ts).adaptStep + * if adaptStep is None: return FunctionEnd() # <<<<<<<<<<<<<< + * cdef object retval + * cdef double dt + */ + __pyx_t_4 = (__pyx_v_adaptStep == Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2592 + * cdef double dt + * cdef bint ok + * retval = adaptStep(TS_(ts), t, Vec_(x)) # <<<<<<<<<<<<<< + * if retval is None: pass + * elif isinstance(retval, float): + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TS_(__pyx_v_ts)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyFloat_FromDouble(((double)__pyx_v_t)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_x)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_v_adaptStep); + __pyx_t_8 = __pyx_v_adaptStep; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_2, __pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_t_2, __pyx_t_6, __pyx_t_7}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_7); + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2592, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_retval = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2593 + * cdef bint ok + * retval = adaptStep(TS_(ts), t, Vec_(x)) + * if retval is None: pass # <<<<<<<<<<<<<< + * elif isinstance(retval, float): + * dt = retval + */ + __pyx_t_5 = (__pyx_v_retval == Py_None); + __pyx_t_4 = (__pyx_t_5 != 0); + if (__pyx_t_4) { + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2594 + * retval = adaptStep(TS_(ts), t, Vec_(x)) + * if retval is None: pass + * elif isinstance(retval, float): # <<<<<<<<<<<<<< + * dt = retval + * nextdt[0] = dt + */ + __pyx_t_4 = PyFloat_Check(__pyx_v_retval); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2595 + * if retval is None: pass + * elif isinstance(retval, float): + * dt = retval # <<<<<<<<<<<<<< + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE + */ + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_v_retval); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(11, 2595, __pyx_L1_error) + __pyx_v_dt = __pyx_t_12; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2596 + * elif isinstance(retval, float): + * dt = retval + * nextdt[0] = dt # <<<<<<<<<<<<<< + * stepok[0] = PETSC_TRUE + * elif isinstance(retval, bool): + */ + (__pyx_v_nextdt[0]) = ((PetscReal)__pyx_v_dt); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2597 + * dt = retval + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE # <<<<<<<<<<<<<< + * elif isinstance(retval, bool): + * ok = retval + */ + (__pyx_v_stepok[0]) = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2594 + * retval = adaptStep(TS_(ts), t, Vec_(x)) + * if retval is None: pass + * elif isinstance(retval, float): # <<<<<<<<<<<<<< + * dt = retval + * nextdt[0] = dt + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2598 + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE + * elif isinstance(retval, bool): # <<<<<<<<<<<<<< + * ok = retval + * nextdt[0] = ts.time_step + */ + __pyx_t_3 = ((PyObject*)&PyBool_Type); + __Pyx_INCREF(__pyx_t_3); + __pyx_t_5 = PyObject_IsInstance(__pyx_v_retval, __pyx_t_3); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(11, 2598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = (__pyx_t_5 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2599 + * stepok[0] = PETSC_TRUE + * elif isinstance(retval, bool): + * ok = retval # <<<<<<<<<<<<<< + * nextdt[0] = ts.time_step + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + */ + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_retval); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(11, 2599, __pyx_L1_error) + __pyx_v_ok = __pyx_t_4; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2600 + * elif isinstance(retval, bool): + * ok = retval + * nextdt[0] = ts.time_step # <<<<<<<<<<<<<< + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + * else: + */ + __pyx_t_1 = __pyx_v_ts->time_step; + (__pyx_v_nextdt[0]) = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2601 + * ok = retval + * nextdt[0] = ts.time_step + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE # <<<<<<<<<<<<<< + * else: + * dt, ok = retval + */ + if ((__pyx_v_ok != 0)) { + __pyx_t_13 = PETSC_TRUE; + } else { + __pyx_t_13 = PETSC_FALSE; + } + (__pyx_v_stepok[0]) = __pyx_t_13; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2598 + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE + * elif isinstance(retval, bool): # <<<<<<<<<<<<<< + * ok = retval + * nextdt[0] = ts.time_step + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2603 + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + * else: + * dt, ok = retval # <<<<<<<<<<<<<< + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + */ + /*else*/ { + if ((likely(PyTuple_CheckExact(__pyx_v_retval))) || (PyList_CheckExact(__pyx_v_retval))) { + PyObject* sequence = __pyx_v_retval; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 2603, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_3 = PyList_GET_ITEM(sequence, 0); + __pyx_t_8 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_8); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 2603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + Py_ssize_t index = -1; + __pyx_t_11 = PyObject_GetIter(__pyx_v_retval); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 2603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __pyx_t_14 = Py_TYPE(__pyx_t_11)->tp_iternext; + index = 0; __pyx_t_3 = __pyx_t_14(__pyx_t_11); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_3); + index = 1; __pyx_t_8 = __pyx_t_14(__pyx_t_11); if (unlikely(!__pyx_t_8)) goto __pyx_L5_unpacking_failed; + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_11), 2) < 0) __PYX_ERR(11, 2603, __pyx_L1_error) + __pyx_t_14 = NULL; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + goto __pyx_L6_unpacking_done; + __pyx_L5_unpacking_failed:; + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __pyx_t_14 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 2603, __pyx_L1_error) + __pyx_L6_unpacking_done:; + } + __pyx_t_12 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_12 == (double)-1) && PyErr_Occurred())) __PYX_ERR(11, 2603, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(11, 2603, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_dt = __pyx_t_12; + __pyx_v_ok = __pyx_t_4; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2604 + * else: + * dt, ok = retval + * nextdt[0] = dt # <<<<<<<<<<<<<< + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + * return FunctionEnd() + */ + (__pyx_v_nextdt[0]) = ((PetscReal)__pyx_v_dt); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2605 + * dt, ok = retval + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + if ((__pyx_v_ok != 0)) { + __pyx_t_13 = PETSC_TRUE; + } else { + __pyx_t_13 = PETSC_FALSE; + } + (__pyx_v_stepok[0]) = __pyx_t_13; + } + __pyx_L4:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2606 + * nextdt[0] = dt + * stepok[0] = PETSC_TRUE if ok else PETSC_FALSE + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TSStep_Python_default( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2575 + * return FunctionEnd() + * + * cdef PetscErrorCode TSAdaptStep_Python( # <<<<<<<<<<<<<< + * PetscTS ts, + * PetscReal t, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.TSAdaptStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_adaptStep); + __Pyx_XDECREF(__pyx_v_retval); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2608 + * return FunctionEnd() + * + * cdef PetscErrorCode TSStep_Python_default( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TSStep_Python_default(TS __pyx_v_ts) { + Vec __pyx_v_vec_update; + CYTHON_UNUSED PetscInt __pyx_v_r; + PetscReal __pyx_v_tt; + PetscReal __pyx_v_dt; + PetscBool __pyx_v_accept; + PetscBool __pyx_v_stageok; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PetscReal __pyx_t_2; + PetscInt __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TSStep_Python_default", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2612 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSStep_Python_default") # <<<<<<<<<<<<<< + * cdef PetscVec vec_update = NULL + * CHKERR( PetscObjectQuery( + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TSStep_Python_default")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2613 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TSStep_Python_default") + * cdef PetscVec vec_update = NULL # <<<<<<<<<<<<<< + * CHKERR( PetscObjectQuery( + * ts, + */ + __pyx_v_vec_update = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2614 + * FunctionBegin(b"TSStep_Python_default") + * cdef PetscVec vec_update = NULL + * CHKERR( PetscObjectQuery( # <<<<<<<<<<<<<< + * ts, + * b"@ts.vec_update", + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectQuery(((PetscObject)__pyx_v_ts), ((char *)"@ts.vec_update"), ((PetscObject *)(&__pyx_v_vec_update)))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2614, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2619 + * &vec_update) ) + * # + * cdef PetscInt r = 0 # <<<<<<<<<<<<<< + * cdef PetscReal tt = ts.ptime + * cdef PetscReal dt = ts.time_step + */ + __pyx_v_r = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2620 + * # + * cdef PetscInt r = 0 + * cdef PetscReal tt = ts.ptime # <<<<<<<<<<<<<< + * cdef PetscReal dt = ts.time_step + * cdef PetscBool accept = PETSC_TRUE + */ + __pyx_t_2 = __pyx_v_ts->ptime; + __pyx_v_tt = __pyx_t_2; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2621 + * cdef PetscInt r = 0 + * cdef PetscReal tt = ts.ptime + * cdef PetscReal dt = ts.time_step # <<<<<<<<<<<<<< + * cdef PetscBool accept = PETSC_TRUE + * cdef PetscBool stageok = PETSC_TRUE + */ + __pyx_t_2 = __pyx_v_ts->time_step; + __pyx_v_dt = __pyx_t_2; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2622 + * cdef PetscReal tt = ts.ptime + * cdef PetscReal dt = ts.time_step + * cdef PetscBool accept = PETSC_TRUE # <<<<<<<<<<<<<< + * cdef PetscBool stageok = PETSC_TRUE + * for r from 0 <= r < ts.max_reject: + */ + __pyx_v_accept = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2623 + * cdef PetscReal dt = ts.time_step + * cdef PetscBool accept = PETSC_TRUE + * cdef PetscBool stageok = PETSC_TRUE # <<<<<<<<<<<<<< + * for r from 0 <= r < ts.max_reject: + * tt = ts.ptime + ts.time_step + */ + __pyx_v_stageok = PETSC_TRUE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2624 + * cdef PetscBool accept = PETSC_TRUE + * cdef PetscBool stageok = PETSC_TRUE + * for r from 0 <= r < ts.max_reject: # <<<<<<<<<<<<<< + * tt = ts.ptime + ts.time_step + * CHKERR( VecCopy(ts.vec_sol, vec_update) ) + */ + __pyx_t_3 = __pyx_v_ts->max_reject; + for (__pyx_v_r = 0; __pyx_v_r < __pyx_t_3; __pyx_v_r++) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2625 + * cdef PetscBool stageok = PETSC_TRUE + * for r from 0 <= r < ts.max_reject: + * tt = ts.ptime + ts.time_step # <<<<<<<<<<<<<< + * CHKERR( VecCopy(ts.vec_sol, vec_update) ) + * CHKERR( TSPreStage(ts, tt+dt) ) + */ + __pyx_v_tt = (__pyx_v_ts->ptime + __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2626 + * for r from 0 <= r < ts.max_reject: + * tt = ts.ptime + ts.time_step + * CHKERR( VecCopy(ts.vec_sol, vec_update) ) # <<<<<<<<<<<<<< + * CHKERR( TSPreStage(ts, tt+dt) ) + * TSSolveStep_Python(ts, tt, vec_update) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_ts->vec_sol, __pyx_v_vec_update)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2626, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2627 + * tt = ts.ptime + ts.time_step + * CHKERR( VecCopy(ts.vec_sol, vec_update) ) + * CHKERR( TSPreStage(ts, tt+dt) ) # <<<<<<<<<<<<<< + * TSSolveStep_Python(ts, tt, vec_update) + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSPreStage(__pyx_v_ts, (__pyx_v_tt + __pyx_v_dt))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2627, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2628 + * CHKERR( VecCopy(ts.vec_sol, vec_update) ) + * CHKERR( TSPreStage(ts, tt+dt) ) + * TSSolveStep_Python(ts, tt, vec_update) # <<<<<<<<<<<<<< + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TSSolveStep_Python(__pyx_v_ts, __pyx_v_tt, __pyx_v_vec_update); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2628, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2629 + * CHKERR( TSPreStage(ts, tt+dt) ) + * TSSolveStep_Python(ts, tt, vec_update) + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); # <<<<<<<<<<<<<< + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); + * if not stageok: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSPostStage(__pyx_v_ts, (__pyx_v_tt + __pyx_v_dt), 0, (&__pyx_v_vec_update))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2629, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2630 + * TSSolveStep_Python(ts, tt, vec_update) + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); # <<<<<<<<<<<<<< + * if not stageok: + * ts.reject += 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSAdaptCheckStage(__pyx_v_ts->adapt, __pyx_v_ts, (__pyx_v_tt + __pyx_v_dt), __pyx_v_vec_update, (&__pyx_v_stageok))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2630, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2631 + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); + * if not stageok: # <<<<<<<<<<<<<< + * ts.reject += 1 + * continue + */ + __pyx_t_4 = ((!__pyx_v_stageok) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2632 + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); + * if not stageok: + * ts.reject += 1 # <<<<<<<<<<<<<< + * continue + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) + */ + __pyx_v_ts->reject = (__pyx_v_ts->reject + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2633 + * if not stageok: + * ts.reject += 1 + * continue # <<<<<<<<<<<<<< + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) + * if not accept: + */ + goto __pyx_L3_continue; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2631 + * CHKERR( TSPostStage(ts, tt+dt, 0, &vec_update) ); + * CHKERR( TSAdaptCheckStage(ts.adapt, ts, tt+dt, vec_update, &stageok) ); + * if not stageok: # <<<<<<<<<<<<<< + * ts.reject += 1 + * continue + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2634 + * ts.reject += 1 + * continue + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) # <<<<<<<<<<<<<< + * if not accept: + * ts.time_step = dt + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TSAdaptStep_Python(__pyx_v_ts, __pyx_v_tt, __pyx_v_vec_update, (&__pyx_v_dt), (&__pyx_v_accept)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2634, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2635 + * continue + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) + * if not accept: # <<<<<<<<<<<<<< + * ts.time_step = dt + * ts.reject += 1 + */ + __pyx_t_4 = ((!__pyx_v_accept) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2636 + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) + * if not accept: + * ts.time_step = dt # <<<<<<<<<<<<<< + * ts.reject += 1 + * continue + */ + __pyx_v_ts->time_step = __pyx_v_dt; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2637 + * if not accept: + * ts.time_step = dt + * ts.reject += 1 # <<<<<<<<<<<<<< + * continue + * CHKERR( VecCopy(vec_update, ts.vec_sol) ) + */ + __pyx_v_ts->reject = (__pyx_v_ts->reject + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2638 + * ts.time_step = dt + * ts.reject += 1 + * continue # <<<<<<<<<<<<<< + * CHKERR( VecCopy(vec_update, ts.vec_sol) ) + * ts.ptime += ts.time_step + */ + goto __pyx_L3_continue; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2635 + * continue + * TSAdaptStep_Python(ts, tt, vec_update, &dt, &accept) + * if not accept: # <<<<<<<<<<<<<< + * ts.time_step = dt + * ts.reject += 1 + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2639 + * ts.reject += 1 + * continue + * CHKERR( VecCopy(vec_update, ts.vec_sol) ) # <<<<<<<<<<<<<< + * ts.ptime += ts.time_step + * ts.time_step = dt + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_vec_update, __pyx_v_ts->vec_sol)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2639, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2640 + * continue + * CHKERR( VecCopy(vec_update, ts.vec_sol) ) + * ts.ptime += ts.time_step # <<<<<<<<<<<<<< + * ts.time_step = dt + * break + */ + __pyx_v_ts->ptime = (__pyx_v_ts->ptime + __pyx_v_ts->time_step); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2641 + * CHKERR( VecCopy(vec_update, ts.vec_sol) ) + * ts.ptime += ts.time_step + * ts.time_step = dt # <<<<<<<<<<<<<< + * break + * if (not stageok or not accept) and ts.reason == 0: + */ + __pyx_v_ts->time_step = __pyx_v_dt; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2642 + * ts.ptime += ts.time_step + * ts.time_step = dt + * break # <<<<<<<<<<<<<< + * if (not stageok or not accept) and ts.reason == 0: + * ts.reason = TS_DIVERGED_STEP_REJECTED + */ + goto __pyx_L4_break; + __pyx_L3_continue:; + } + __pyx_L4_break:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2643 + * ts.time_step = dt + * break + * if (not stageok or not accept) and ts.reason == 0: # <<<<<<<<<<<<<< + * ts.reason = TS_DIVERGED_STEP_REJECTED + * return FunctionEnd() + */ + __pyx_t_5 = ((!__pyx_v_stageok) != 0); + if (!__pyx_t_5) { + } else { + goto __pyx_L9_next_and; + } + __pyx_t_5 = ((!__pyx_v_accept) != 0); + if (__pyx_t_5) { + } else { + __pyx_t_4 = __pyx_t_5; + goto __pyx_L8_bool_binop_done; + } + __pyx_L9_next_and:; + __pyx_t_5 = ((__pyx_v_ts->reason == 0) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L8_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2644 + * break + * if (not stageok or not accept) and ts.reason == 0: + * ts.reason = TS_DIVERGED_STEP_REJECTED # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_v_ts->reason = TS_DIVERGED_STEP_REJECTED; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2643 + * ts.time_step = dt + * break + * if (not stageok or not accept) and ts.reason == 0: # <<<<<<<<<<<<<< + * ts.reason = TS_DIVERGED_STEP_REJECTED + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2645 + * if (not stageok or not accept) and ts.reason == 0: + * ts.reason = TS_DIVERGED_STEP_REJECTED + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2608 + * return FunctionEnd() + * + * cdef PetscErrorCode TSStep_Python_default( # <<<<<<<<<<<<<< + * PetscTS ts, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TSStep_Python_default", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2683 + * @cython.internal + * cdef class _PyTao(_PyObj): pass + * cdef inline _PyTao PyTao(PetscTAO tao): # <<<<<<<<<<<<<< + * if tao != NULL and tao.data != NULL: + * return <_PyTao>tao.data + */ + +static CYTHON_INLINE struct __pyx_obj_8petsc4py_5PETSc__PyTao *__pyx_f_8petsc4py_5PETSc_PyTao(Tao __pyx_v_tao) { + struct __pyx_obj_8petsc4py_5PETSc__PyTao *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyTao", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2684 + * cdef class _PyTao(_PyObj): pass + * cdef inline _PyTao PyTao(PetscTAO tao): + * if tao != NULL and tao.data != NULL: # <<<<<<<<<<<<<< + * return <_PyTao>tao.data + * else: + */ + __pyx_t_2 = ((__pyx_v_tao != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_tao->data != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2685 + * cdef inline _PyTao PyTao(PetscTAO tao): + * if tao != NULL and tao.data != NULL: + * return <_PyTao>tao.data # <<<<<<<<<<<<<< + * else: + * return _PyTao.__new__(_PyTao) + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_v_tao->data))); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_v_tao->data); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2684 + * cdef class _PyTao(_PyObj): pass + * cdef inline _PyTao PyTao(PetscTAO tao): + * if tao != NULL and tao.data != NULL: # <<<<<<<<<<<<<< + * return <_PyTao>tao.data + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2687 + * return <_PyTao>tao.data + * else: + * return _PyTao.__new__(_PyTao) # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode TaoPythonGetContext(PetscTAO tao, void **ctx) \ + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __pyx_t_3 = ((PyObject *)__pyx_tp_new_8petsc4py_5PETSc__PyTao(((PyTypeObject *)__pyx_ptype_8petsc4py_5PETSc__PyTao), __pyx_empty_tuple, NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2687, __pyx_L1_error) + __Pyx_GOTREF(((PyObject *)__pyx_t_3)); + __pyx_r = ((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2683 + * @cython.internal + * cdef class _PyTao(_PyObj): pass + * cdef inline _PyTao PyTao(PetscTAO tao): # <<<<<<<<<<<<<< + * if tao != NULL and tao.data != NULL: + * return <_PyTao>tao.data + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.PyTao", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2689 + * return _PyTao.__new__(_PyTao) + * + * cdef public PetscErrorCode TaoPythonGetContext(PetscTAO tao, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonGetContext") + */ + +PetscErrorCode TaoPythonGetContext(Tao __pyx_v_tao, void **__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TaoPythonGetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2691 + * cdef public PetscErrorCode TaoPythonGetContext(PetscTAO tao, void **ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonGetContext") # <<<<<<<<<<<<<< + * PyTao(tao).getcontext(ctx) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPythonGetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2692 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonGetContext") + * PyTao(tao).getcontext(ctx) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2692, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 2692, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2693 + * FunctionBegin(b"TaoPythonGetContext") + * PyTao(tao).getcontext(ctx) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef public PetscErrorCode TaoPythonSetContext(PetscTAO tao, void *ctx) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2689 + * return _PyTao.__new__(_PyTao) + * + * cdef public PetscErrorCode TaoPythonGetContext(PetscTAO tao, void **ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonGetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPythonGetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2695 + * return FunctionEnd() + * + * cdef public PetscErrorCode TaoPythonSetContext(PetscTAO tao, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonSetContext") + */ + +PetscErrorCode TaoPythonSetContext(Tao __pyx_v_tao, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("TaoPythonSetContext", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2697 + * cdef public PetscErrorCode TaoPythonSetContext(PetscTAO tao, void *ctx) \ + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonSetContext") # <<<<<<<<<<<<<< + * PyTao(tao).setcontext(ctx, TAO_(tao)) + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPythonSetContext")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2698 + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonSetContext") + * PyTao(tao).setcontext(ctx, TAO_(tao)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.setcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_ctx, ((struct PyPetscObjectObject *)__pyx_t_2)); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(11, 2698, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2699 + * FunctionBegin(b"TaoPythonSetContext") + * PyTao(tao).setcontext(ctx, TAO_(tao)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoPythonSetType_PYTHON(PetscTAO tao, char name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2695 + * return FunctionEnd() + * + * cdef public PetscErrorCode TaoPythonSetContext(PetscTAO tao, void *ctx) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoPythonSetContext") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPythonSetContext", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2701 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPythonSetType_PYTHON(PetscTAO tao, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonSetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPythonSetType_PYTHON(Tao __pyx_v_tao, char *__pyx_v_name) { + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoPythonSetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2703 + * cdef PetscErrorCode TaoPythonSetType_PYTHON(PetscTAO tao, char name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonSetType_PYTHON") # <<<<<<<<<<<<<< + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPythonSetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2704 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX # <<<<<<<<<<<<<< + * cdef object ctx = createcontext(name) + * TaoPythonSetContext(tao, ctx) + */ + __pyx_t_1 = ((__pyx_v_name == NULL) != 0); + if (__pyx_t_1) { + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2705 + * FunctionBegin(b"TaoPythonSetType_PYTHON") + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) # <<<<<<<<<<<<<< + * TaoPythonSetContext(tao, ctx) + * PyTao(tao).setname(name) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_createcontext(__pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_ctx = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2706 + * if name == NULL: return FunctionEnd() # XXX + * cdef object ctx = createcontext(name) + * TaoPythonSetContext(tao, ctx) # <<<<<<<<<<<<<< + * PyTao(tao).setname(name) + * return FunctionEnd() + */ + __pyx_t_3 = TaoPythonSetContext(__pyx_v_tao, ((void *)__pyx_v_ctx)); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2706, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2707 + * cdef object ctx = createcontext(name) + * TaoPythonSetContext(tao, ctx) + * PyTao(tao).setname(name) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_2)->__pyx_base.__pyx_vtab)->__pyx_base.setname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_2), __pyx_v_name); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(11, 2707, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2708 + * TaoPythonSetContext(tao, ctx) + * PyTao(tao).setname(name) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoPythonGetType_PYTHON(PetscTAO tao, const char *name[]) \ + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2701 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPythonSetType_PYTHON(PetscTAO tao, char name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonSetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPythonSetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2710 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPythonGetType_PYTHON(PetscTAO tao, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonGetType_PYTHON") + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPythonGetType_PYTHON(Tao __pyx_v_tao, char const **__pyx_v_name) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoPythonGetType_PYTHON", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2712 + * cdef PetscErrorCode TaoPythonGetType_PYTHON(PetscTAO tao, const char *name[]) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonGetType_PYTHON") # <<<<<<<<<<<<<< + * name[0] = PyTao(tao).getname() + * return FunctionEnd() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPythonGetType_PYTHON")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2713 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonGetType_PYTHON") + * name[0] = PyTao(tao).getname() # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 2713, __pyx_L1_error) + (__pyx_v_name[0]) = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2714 + * FunctionBegin(b"TaoPythonGetType_PYTHON") + * name[0] = PyTao(tao).getname() + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoCreate_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2710 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPythonGetType_PYTHON(PetscTAO tao, const char *name[]) \ # <<<<<<<<<<<<<< + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPythonGetType_PYTHON") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPythonGetType_PYTHON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2716 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoCreate_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoCreate_Python(Tao __pyx_v_tao) { + TaoOps __pyx_v_ops; + PyObject *__pyx_v_ctx = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + TaoOps __pyx_t_1; + PetscErrorCode __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoCreate_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2720 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoCreate_Python") # <<<<<<<<<<<<<< + * # + * cdef TaoOps ops = tao.ops + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoCreate_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2722 + * FunctionBegin(b"TaoCreate_Python") + * # + * cdef TaoOps ops = tao.ops # <<<<<<<<<<<<<< + * ops.destroy = TaoDestroy_Python + * ops.view = TaoView_Python + */ + __pyx_t_1 = __pyx_v_tao->ops; + __pyx_v_ops = __pyx_t_1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2723 + * # + * cdef TaoOps ops = tao.ops + * ops.destroy = TaoDestroy_Python # <<<<<<<<<<<<<< + * ops.view = TaoView_Python + * ops.solve = TaoSolve_Python + */ + __pyx_v_ops->destroy = __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2724 + * cdef TaoOps ops = tao.ops + * ops.destroy = TaoDestroy_Python + * ops.view = TaoView_Python # <<<<<<<<<<<<<< + * ops.solve = TaoSolve_Python + * ops.setup = TaoSetUp_Python + */ + __pyx_v_ops->view = __pyx_f_8petsc4py_5PETSc_TaoView_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2725 + * ops.destroy = TaoDestroy_Python + * ops.view = TaoView_Python + * ops.solve = TaoSolve_Python # <<<<<<<<<<<<<< + * ops.setup = TaoSetUp_Python + * ops.setfromoptions = TaoSetFromOptions_Python + */ + __pyx_v_ops->solve = __pyx_f_8petsc4py_5PETSc_TaoSolve_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2726 + * ops.view = TaoView_Python + * ops.solve = TaoSolve_Python + * ops.setup = TaoSetUp_Python # <<<<<<<<<<<<<< + * ops.setfromoptions = TaoSetFromOptions_Python + * # + */ + __pyx_v_ops->setup = __pyx_f_8petsc4py_5PETSc_TaoSetUp_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2727 + * ops.solve = TaoSolve_Python + * ops.setup = TaoSetUp_Python + * ops.setfromoptions = TaoSetFromOptions_Python # <<<<<<<<<<<<<< + * # + * CHKERR( PetscObjectComposeFunction( + */ + __pyx_v_ops->setfromoptions = __pyx_f_8petsc4py_5PETSc_TaoSetFromOptions_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2729 + * ops.setfromoptions = TaoSetFromOptions_Python + * # + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * tao, b"TaoPythonSetType_C", + * TaoPythonSetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_tao), ((char *)"TaoPythonSetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_TaoPythonSetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2729, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2732 + * tao, b"TaoPythonSetType_C", + * TaoPythonSetType_PYTHON) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * tao, b"TaoPythonGetType_C", + * TaoPythonGetType_PYTHON) ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_tao), ((char *)"TaoPythonGetType_C"), ((PetscVoidFunction)__pyx_f_8petsc4py_5PETSc_TaoPythonGetType_PYTHON))); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2732, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2736 + * TaoPythonGetType_PYTHON) ) + * # + * CHKERR( TaoCreateDefaultLineSearch(tao) ) # <<<<<<<<<<<<<< + * CHKERR( TaoCreateDefaultKSP(tao) ) + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCreateDefaultLineSearch(__pyx_v_tao)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2736, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2737 + * # + * CHKERR( TaoCreateDefaultLineSearch(tao) ) + * CHKERR( TaoCreateDefaultKSP(tao) ) # <<<<<<<<<<<<<< + * # + * cdef ctx = PyTao(NULL) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCreateDefaultKSP(__pyx_v_tao)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2737, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2739 + * CHKERR( TaoCreateDefaultKSP(tao) ) + * # + * cdef ctx = PyTao(NULL) # <<<<<<<<<<<<<< + * tao.data = ctx + * Py_INCREF(tao.data) + */ + __pyx_t_3 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(NULL)); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_ctx = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2740 + * # + * cdef ctx = PyTao(NULL) + * tao.data = ctx # <<<<<<<<<<<<<< + * Py_INCREF(tao.data) + * return FunctionEnd() + */ + __pyx_v_tao->data = ((void *)__pyx_v_ctx); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2741 + * cdef ctx = PyTao(NULL) + * tao.data = ctx + * Py_INCREF(tao.data) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + Py_INCREF(((PyObject *)__pyx_v_tao->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2742 + * tao.data = ctx + * Py_INCREF(tao.data) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef inline PetscErrorCode TaoDestroy_Python_inner( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2716 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoCreate_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc.TaoCreate_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_ctx); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2744 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TaoDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static CYTHON_INLINE PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python_inner(Tao __pyx_v_tao) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + char const *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoDestroy_Python_inner", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2748 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * try: # <<<<<<<<<<<<<< + * addRef(tao) + * TaoPythonSetContext(tao, NULL) + */ + /*try:*/ { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2749 + * except PETSC_ERR_PYTHON with gil: + * try: + * addRef(tao) # <<<<<<<<<<<<<< + * TaoPythonSetContext(tao, NULL) + * finally: + */ + __pyx_f_8petsc4py_5PETSc_addRef(__pyx_v_tao); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2750 + * try: + * addRef(tao) + * TaoPythonSetContext(tao, NULL) # <<<<<<<<<<<<<< + * finally: + * delRef(tao) + */ + __pyx_t_1 = TaoPythonSetContext(__pyx_v_tao, NULL); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2750, __pyx_L4_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2752 + * TaoPythonSetContext(tao, NULL) + * finally: + * delRef(tao) # <<<<<<<<<<<<<< + * Py_DECREF(tao.data) + * tao.data = NULL + */ + /*finally:*/ { + /*normal exit:*/{ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_tao); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2753 + * finally: + * delRef(tao) + * Py_DECREF(tao.data) # <<<<<<<<<<<<<< + * tao.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_tao->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2754 + * delRef(tao) + * Py_DECREF(tao.data) + * tao.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_tao->data = NULL; + goto __pyx_L5; + } + __pyx_L4_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0)) __Pyx_ErrFetch(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __pyx_t_2 = __pyx_lineno; __pyx_t_3 = __pyx_clineno; __pyx_t_4 = __pyx_filename; + { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2752 + * TaoPythonSetContext(tao, NULL) + * finally: + * delRef(tao) # <<<<<<<<<<<<<< + * Py_DECREF(tao.data) + * tao.data = NULL + */ + __pyx_f_8petsc4py_5PETSc_delRef(__pyx_v_tao); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2753 + * finally: + * delRef(tao) + * Py_DECREF(tao.data) # <<<<<<<<<<<<<< + * tao.data = NULL + * return PETSC_SUCCESS + */ + Py_DECREF(((PyObject *)__pyx_v_tao->data)); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2754 + * delRef(tao) + * Py_DECREF(tao.data) + * tao.data = NULL # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + __pyx_v_tao->data = NULL; + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10); + } + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_XGIVEREF(__pyx_t_6); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestore(__pyx_t_5, __pyx_t_6, __pyx_t_7); + __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; + __pyx_lineno = __pyx_t_2; __pyx_clineno = __pyx_t_3; __pyx_filename = __pyx_t_4; + goto __pyx_L1_error; + } + __pyx_L5:; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2755 + * Py_DECREF(tao.data) + * tao.data = NULL + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoDestroy_Python( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2744 + * return FunctionEnd() + * + * cdef inline PetscErrorCode TaoDestroy_Python_inner( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TaoDestroy_Python_inner", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2757 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TaoDestroy_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python(Tao __pyx_v_tao) { + PetscErrorCode __pyx_r; + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2761 + * ) \ + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoDestroy_Python") # <<<<<<<<<<<<<< + * CHKERR( PetscObjectComposeFunction( + * tao, b"TaoPythonSetType_C", + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoDestroy_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2762 + * nogil except PETSC_ERR_PYTHON: + * FunctionBegin(b"TaoDestroy_Python") + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * tao, b"TaoPythonSetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_tao), ((char *)"TaoPythonSetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2762, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2765 + * tao, b"TaoPythonSetType_C", + * NULL) ) + * CHKERR( PetscObjectComposeFunction( # <<<<<<<<<<<<<< + * tao, b"TaoPythonGetType_C", + * NULL) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectComposeFunction(((PetscObject)__pyx_v_tao), ((char *)"TaoPythonGetType_C"), ((PetscVoidFunction)NULL))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2765, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2769 + * NULL) ) + * # + * if Py_IsInitialized(): TaoDestroy_Python_inner(tao) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_2 = (Py_IsInitialized() != 0); + if (__pyx_t_2) { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TaoDestroy_Python_inner(__pyx_v_tao); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2769, __pyx_L1_error) + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2770 + * # + * if Py_IsInitialized(): TaoDestroy_Python_inner(tao) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoSetUp_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2757 + * return PETSC_SUCCESS + * + * cdef PetscErrorCode TaoDestroy_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("petsc4py.PETSc.TaoDestroy_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2772 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSetUp_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSetUp_Python(Tao __pyx_v_tao) { + char __pyx_v_name[0x800]; + PetscBool __pyx_v_found; + PyObject *__pyx_v_setUp = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PetscErrorCode __pyx_t_4; + PetscErrorCode __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoSetUp_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2776 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoSetUp_Python") # <<<<<<<<<<<<<< + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoSetUp_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2778 + * FunctionBegin(b"TaoSetUp_Python") + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * if PyTao(tao).self is None: + * CHKERR( PetscOptionsGetString(NULL, + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2779 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyTao(tao).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(tao), b"-tao_python_type", + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2780 + * cdef PetscBool found = PETSC_FALSE + * if PyTao(tao).self is None: + * CHKERR( PetscOptionsGetString(NULL, # <<<<<<<<<<<<<< + * getPrefix(tao), b"-tao_python_type", + * name, sizeof(name), &found) ) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsGetString(NULL, __pyx_f_8petsc4py_5PETSc_getPrefix(__pyx_v_tao), ((char *)"-tao_python_type"), __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2780, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2783 + * getPrefix(tao), b"-tao_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * if PyTao(tao).self is None: + */ + if (__pyx_v_found) { + } else { + __pyx_t_3 = __pyx_v_found; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_name[0]) != 0); + __pyx_t_3 = __pyx_t_2; + __pyx_L5_bool_binop_done:; + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2784 + * name, sizeof(name), &found) ) + * if found and name[0]: + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) # <<<<<<<<<<<<<< + * if PyTao(tao).self is None: + * return PetscSETERR(PETSC_ERR_USER, + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_TaoPythonSetType_PYTHON(__pyx_v_tao, __pyx_v_name); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2784, __pyx_L1_error) + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_4); if (unlikely(__pyx_t_5 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2784, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2783 + * getPrefix(tao), b"-tao_python_type", + * name, sizeof(name), &found) ) + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * if PyTao(tao).self is None: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2779 + * cdef char name[2048] + * cdef PetscBool found = PETSC_FALSE + * if PyTao(tao).self is None: # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsGetString(NULL, + * getPrefix(tao), b"-tao_python_type", + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2785 + * if found and name[0]: + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * if PyTao(tao).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.self == Py_None); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2786 + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * if PyTao(tao).self is None: + * return PetscSETERR(PETSC_ERR_USER, # <<<<<<<<<<<<<< + * "Python context not set, call one of \n" + * " * TaoPythonSetType(tao, \"[package.]module.class\")\n" + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_PetscSETERR(PETSC_ERR_USER, ((char *)"Python context not set, call one of \n * TaoPythonSetType(tao, \"[package.]module.class\")\n * TaoSetFromOptions(tao) and pass option -tao_python_type [package.]module.class")); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2785 + * if found and name[0]: + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * if PyTao(tao).self is None: # <<<<<<<<<<<<<< + * return PetscSETERR(PETSC_ERR_USER, + * "Python context not set, call one of \n" + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2792 + * "-tao_python_type [package.]module.class") + * # + * cdef setUp = PyTao(tao).setUp # <<<<<<<<<<<<<< + * if setUp is not None: + * setUp(TAO_(tao)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setUp); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setUp = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2793 + * # + * cdef setUp = PyTao(tao).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(TAO_(tao)) + * return FunctionEnd() + */ + __pyx_t_2 = (__pyx_v_setUp != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2794 + * cdef setUp = PyTao(tao).setUp + * if setUp is not None: + * setUp(TAO_(tao)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setUp); + __pyx_t_7 = __pyx_v_setUp; __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_6 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2794, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2793 + * # + * cdef setUp = PyTao(tao).setUp + * if setUp is not None: # <<<<<<<<<<<<<< + * setUp(TAO_(tao)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2795 + * if setUp is not None: + * setUp(TAO_(tao)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoSetFromOptions_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2772 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSetUp_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("petsc4py.PETSc.TaoSetUp_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setUp); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2797 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscOptionItems *PetscOptionsObject, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSetFromOptions_Python(Tao __pyx_v_tao, PetscOptionItems *__pyx_v_PetscOptionsObject) { + char __pyx_v_name[0x800]; + char *__pyx_v_defval; + PetscBool __pyx_v_found; + PetscOptionItems *PetscOptionsObject; + PyObject *__pyx_v_setFromOptions = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + char *__pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PetscErrorCode __pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoSetFromOptions_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2802 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoSetFromOptions_Python") # <<<<<<<<<<<<<< + * # + * cdef char name[2048], *defval = PyTao(tao).getname() + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoSetFromOptions_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2804 + * FunctionBegin(b"TaoSetFromOptions_Python") + * # + * cdef char name[2048], *defval = PyTao(tao).getname() # <<<<<<<<<<<<<< + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = ((struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao *)((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)__pyx_t_1)->__pyx_base.__pyx_vtab)->__pyx_base.getname(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1)); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(11, 2804, __pyx_L1_error) + __pyx_v_defval = __pyx_t_2; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2805 + * # + * cdef char name[2048], *defval = PyTao(tao).getname() + * cdef PetscBool found = PETSC_FALSE # <<<<<<<<<<<<<< + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( + */ + __pyx_v_found = PETSC_FALSE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2806 + * cdef char name[2048], *defval = PyTao(tao).getname() + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject # <<<<<<<<<<<<<< + * CHKERR( PetscOptionsString( + * b"-tao_python_type", b"Python [package.]module[.{class|function}]", + */ + PetscOptionsObject = __pyx_v_PetscOptionsObject; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2807 + * cdef PetscBool found = PETSC_FALSE + * cdef PetscOptionItems *opts "PetscOptionsObject" = PetscOptionsObject + * CHKERR( PetscOptionsString( # <<<<<<<<<<<<<< + * b"-tao_python_type", b"Python [package.]module[.{class|function}]", + * b"TaoPythonSetType", defval, name, sizeof(name), &found) ); opts; + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscOptionsString(((char *)"-tao_python_type"), ((char *)"Python [package.]module[.{class|function}]"), ((char *)"TaoPythonSetType"), __pyx_v_defval, __pyx_v_name, (sizeof(__pyx_v_name)), (&__pyx_v_found))); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2807, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2809 + * CHKERR( PetscOptionsString( + * b"-tao_python_type", b"Python [package.]module[.{class|function}]", + * b"TaoPythonSetType", defval, name, sizeof(name), &found) ); opts; # <<<<<<<<<<<<<< + * if found and name[0]: + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + */ + ((void)PetscOptionsObject); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2810 + * b"-tao_python_type", b"Python [package.]module[.{class|function}]", + * b"TaoPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * # + */ + if (__pyx_v_found) { + } else { + __pyx_t_4 = __pyx_v_found; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_5 = ((__pyx_v_name[0]) != 0); + __pyx_t_4 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2811 + * b"TaoPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) # <<<<<<<<<<<<<< + * # + * cdef setFromOptions = PyTao(tao).setFromOptions + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_TaoPythonSetType_PYTHON(__pyx_v_tao, __pyx_v_name); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2811, __pyx_L1_error) + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_3); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2811, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2810 + * b"-tao_python_type", b"Python [package.]module[.{class|function}]", + * b"TaoPythonSetType", defval, name, sizeof(name), &found) ); opts; + * if found and name[0]: # <<<<<<<<<<<<<< + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2813 + * CHKERR( TaoPythonSetType_PYTHON(tao, name) ) + * # + * cdef setFromOptions = PyTao(tao).setFromOptions # <<<<<<<<<<<<<< + * if setFromOptions is not None: + * setFromOptions(TAO_(tao)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_setFromOptions); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_setFromOptions = __pyx_t_7; + __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2814 + * # + * cdef setFromOptions = PyTao(tao).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(TAO_(tao)) + * CHKERR( KSPSetFromOptions(tao.ksp) ) + */ + __pyx_t_4 = (__pyx_v_setFromOptions != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2815 + * cdef setFromOptions = PyTao(tao).setFromOptions + * if setFromOptions is not None: + * setFromOptions(TAO_(tao)) # <<<<<<<<<<<<<< + * CHKERR( KSPSetFromOptions(tao.ksp) ) + * return FunctionEnd() + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_setFromOptions); + __pyx_t_8 = __pyx_v_setFromOptions; __pyx_t_9 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + } + } + __pyx_t_7 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_9, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2814 + * # + * cdef setFromOptions = PyTao(tao).setFromOptions + * if setFromOptions is not None: # <<<<<<<<<<<<<< + * setFromOptions(TAO_(tao)) + * CHKERR( KSPSetFromOptions(tao.ksp) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2816 + * if setFromOptions is not None: + * setFromOptions(TAO_(tao)) + * CHKERR( KSPSetFromOptions(tao.ksp) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPSetFromOptions(__pyx_v_tao->ksp)); if (unlikely(__pyx_t_6 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2816, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2817 + * setFromOptions(TAO_(tao)) + * CHKERR( KSPSetFromOptions(tao.ksp) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoView_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2797 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSetFromOptions_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscOptionItems *PetscOptionsObject, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.TaoSetFromOptions_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_setFromOptions); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2819 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoView_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscViewer vwr, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoView_Python(Tao __pyx_v_tao, PetscViewer __pyx_v_vwr) { + PyObject *__pyx_v_view = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoView_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2824 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoView_Python") # <<<<<<<<<<<<<< + * viewcontext(PyTao(tao), vwr) + * cdef view = PyTao(tao).view + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoView_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2825 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoView_Python") + * viewcontext(PyTao(tao), vwr) # <<<<<<<<<<<<<< + * cdef view = PyTao(tao).view + * if view is not None: + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2825, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_viewcontext(((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)__pyx_t_1), __pyx_v_vwr); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(11, 2825, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2826 + * FunctionBegin(b"TaoView_Python") + * viewcontext(PyTao(tao), vwr) + * cdef view = PyTao(tao).view # <<<<<<<<<<<<<< + * if view is not None: + * view(TAO_(tao), Viewer_(vwr)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_view = __pyx_t_3; + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2827 + * viewcontext(PyTao(tao), vwr) + * cdef view = PyTao(tao).view + * if view is not None: # <<<<<<<<<<<<<< + * view(TAO_(tao), Viewer_(vwr)) + * return FunctionEnd() + */ + __pyx_t_4 = (__pyx_v_view != Py_None); + __pyx_t_5 = (__pyx_t_4 != 0); + if (__pyx_t_5) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2828 + * cdef view = PyTao(tao).view + * if view is not None: + * view(TAO_(tao), Viewer_(vwr)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Viewer_(__pyx_v_vwr)); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_v_view); + __pyx_t_7 = __pyx_v_view; __pyx_t_8 = NULL; + __pyx_t_2 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + __pyx_t_2 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) { + PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_1, __pyx_t_6}; + __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_2, 2+__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_8) { + __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_2, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_2, __pyx_t_6); + __pyx_t_1 = 0; + __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(11, 2828, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2827 + * viewcontext(PyTao(tao), vwr) + * cdef view = PyTao(tao).view + * if view is not None: # <<<<<<<<<<<<<< + * view(TAO_(tao), Viewer_(vwr)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2829 + * if view is not None: + * view(TAO_(tao), Viewer_(vwr)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoSolve_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2819 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoView_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscViewer vwr, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.TaoView_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_view); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2831 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSolve_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSolve_Python(Tao __pyx_v_tao) { + PyObject *__pyx_v_solve = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoSolve_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2835 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoSolve_Python") # <<<<<<<<<<<<<< + * # + * tao.niter = 0 + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoSolve_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2837 + * FunctionBegin(b"TaoSolve_Python") + * # + * tao.niter = 0 # <<<<<<<<<<<<<< + * tao.ksp_its = 0 + * tao.reason = TAO_CONTINUE_ITERATING + */ + __pyx_v_tao->niter = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2838 + * # + * tao.niter = 0 + * tao.ksp_its = 0 # <<<<<<<<<<<<<< + * tao.reason = TAO_CONTINUE_ITERATING + * # + */ + __pyx_v_tao->ksp_its = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2839 + * tao.niter = 0 + * tao.ksp_its = 0 + * tao.reason = TAO_CONTINUE_ITERATING # <<<<<<<<<<<<<< + * # + * cdef solve = PyTao(tao).solve + */ + __pyx_v_tao->reason = TAO_CONTINUE_ITERATING; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2841 + * tao.reason = TAO_CONTINUE_ITERATING + * # + * cdef solve = PyTao(tao).solve # <<<<<<<<<<<<<< + * if solve is not None: + * solve(TAO_(tao)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_solve); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_solve = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2842 + * # + * cdef solve = PyTao(tao).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(TAO_(tao)) + * else: + */ + __pyx_t_3 = (__pyx_v_solve != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2843 + * cdef solve = PyTao(tao).solve + * if solve is not None: + * solve(TAO_(tao)) # <<<<<<<<<<<<<< + * else: + * TaoSolve_Python_default(tao) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_solve); + __pyx_t_5 = __pyx_v_solve; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2842 + * # + * cdef solve = PyTao(tao).solve + * if solve is not None: # <<<<<<<<<<<<<< + * solve(TAO_(tao)) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2845 + * solve(TAO_(tao)) + * else: + * TaoSolve_Python_default(tao) # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + /*else*/ { + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_TaoSolve_Python_default(__pyx_v_tao); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2845, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2847 + * TaoSolve_Python_default(tao) + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoSolve_Python_default( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2831 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSolve_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TaoSolve_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_solve); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2849 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSolve_Python_default( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoSolve_Python_default(Tao __pyx_v_tao) { + Vec __pyx_v_X; + Vec __pyx_v_G; + Vec __pyx_v_S; + PetscReal __pyx_v_f; + PetscReal __pyx_v_gnorm; + PetscReal __pyx_v_step; + PetscObjectState __pyx_v_ostate; + PetscObjectState __pyx_v_nstate; + CYTHON_UNUSED PetscInt __pyx_v_its; + TaoLineSearchConvergedReason __pyx_v_lsr; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_t_2; + PetscInt __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoSolve_Python_default", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2853 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoSolve_Python_default") # <<<<<<<<<<<<<< + * # + * cdef PetscVec X = NULL, G = NULL, S = NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoSolve_Python_default")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2855 + * FunctionBegin(b"TaoSolve_Python_default") + * # + * cdef PetscVec X = NULL, G = NULL, S = NULL # <<<<<<<<<<<<<< + * CHKERR( TaoGetVecs(tao, &X, &G, &S) ) + * # + */ + __pyx_v_X = NULL; + __pyx_v_G = NULL; + __pyx_v_S = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2856 + * # + * cdef PetscVec X = NULL, G = NULL, S = NULL + * CHKERR( TaoGetVecs(tao, &X, &G, &S) ) # <<<<<<<<<<<<<< + * # + * cdef PetscReal f = 0.0 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoGetVecs(__pyx_v_tao, (&__pyx_v_X), (&__pyx_v_G), (&__pyx_v_S))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2856, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2858 + * CHKERR( TaoGetVecs(tao, &X, &G, &S) ) + * # + * cdef PetscReal f = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal gnorm = 0.0 + * cdef PetscReal step = 1.0 + */ + __pyx_v_f = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2859 + * # + * cdef PetscReal f = 0.0 + * cdef PetscReal gnorm = 0.0 # <<<<<<<<<<<<<< + * cdef PetscReal step = 1.0 + * # + */ + __pyx_v_gnorm = 0.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2860 + * cdef PetscReal f = 0.0 + * cdef PetscReal gnorm = 0.0 + * cdef PetscReal step = 1.0 # <<<<<<<<<<<<<< + * # + * if G != NULL: + */ + __pyx_v_step = 1.0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2862 + * cdef PetscReal step = 1.0 + * # + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + __pyx_t_2 = ((__pyx_v_G != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2863 + * # + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * else: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjectiveAndGradient(__pyx_v_tao, __pyx_v_X, (&__pyx_v_f), __pyx_v_G)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2863, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2864 + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_G, NORM_2, (&__pyx_v_gnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2864, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2862 + * cdef PetscReal step = 1.0 + * # + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2866 + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) # <<<<<<<<<<<<<< + * CHKERR( TaoCheckReals(tao, f, gnorm) ) + * + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjective(__pyx_v_tao, __pyx_v_X, (&__pyx_v_f))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2866, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2867 + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) + * CHKERR( TaoCheckReals(tao, f, gnorm) ) # <<<<<<<<<<<<<< + * + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCheckReals(__pyx_v_tao, __pyx_v_f, __pyx_v_gnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2867, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2869 + * CHKERR( TaoCheckReals(tao, f, gnorm) ) + * + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) # <<<<<<<<<<<<<< + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) + * CHKERR( TaoConverged(tao, &tao.reason) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoLogConvergenceHistory(__pyx_v_tao, __pyx_v_f, __pyx_v_gnorm, 0.0, __pyx_v_tao->ksp_its)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2869, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2870 + * + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) # <<<<<<<<<<<<<< + * CHKERR( TaoConverged(tao, &tao.reason) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoMonitor(__pyx_v_tao, __pyx_v_tao->niter, __pyx_v_f, __pyx_v_gnorm, 0.0, __pyx_v_step)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2870, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2871 + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) + * CHKERR( TaoConverged(tao, &tao.reason) ) # <<<<<<<<<<<<<< + * + * cdef PetscObjectState ostate = -1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoConverged(__pyx_v_tao, (&__pyx_v_tao->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2871, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2873 + * CHKERR( TaoConverged(tao, &tao.reason) ) + * + * cdef PetscObjectState ostate = -1 # <<<<<<<<<<<<<< + * cdef PetscObjectState nstate = -1 + * cdef PetscInt its = 0 + */ + __pyx_v_ostate = -1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2874 + * + * cdef PetscObjectState ostate = -1 + * cdef PetscObjectState nstate = -1 # <<<<<<<<<<<<<< + * cdef PetscInt its = 0 + * cdef PetscTAOLineSearchConvergedReason lsr = TAOLINESEARCH_SUCCESS + */ + __pyx_v_nstate = -1; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2875 + * cdef PetscObjectState ostate = -1 + * cdef PetscObjectState nstate = -1 + * cdef PetscInt its = 0 # <<<<<<<<<<<<<< + * cdef PetscTAOLineSearchConvergedReason lsr = TAOLINESEARCH_SUCCESS + * for its from 0 <= its < tao.max_it: + */ + __pyx_v_its = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2876 + * cdef PetscObjectState nstate = -1 + * cdef PetscInt its = 0 + * cdef PetscTAOLineSearchConvergedReason lsr = TAOLINESEARCH_SUCCESS # <<<<<<<<<<<<<< + * for its from 0 <= its < tao.max_it: + * if tao.reason: break + */ + __pyx_v_lsr = TAOLINESEARCH_SUCCESS; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2877 + * cdef PetscInt its = 0 + * cdef PetscTAOLineSearchConvergedReason lsr = TAOLINESEARCH_SUCCESS + * for its from 0 <= its < tao.max_it: # <<<<<<<<<<<<<< + * if tao.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) + */ + __pyx_t_3 = __pyx_v_tao->max_it; + for (__pyx_v_its = 0; __pyx_v_its < __pyx_t_3; __pyx_v_its++) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2878 + * cdef PetscTAOLineSearchConvergedReason lsr = TAOLINESEARCH_SUCCESS + * for its from 0 <= its < tao.max_it: + * if tao.reason: break # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateGet(X, &ostate) ) + * CHKERR( TaoComputeUpdate(tao) ) + */ + if (__pyx_v_tao->reason) { + goto __pyx_L5_break; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2879 + * for its from 0 <= its < tao.max_it: + * if tao.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) # <<<<<<<<<<<<<< + * CHKERR( TaoComputeUpdate(tao) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateGet(((PetscObject)__pyx_v_X), (&__pyx_v_ostate))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2879, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2880 + * if tao.reason: break + * CHKERR( PetscObjectStateGet(X, &ostate) ) + * CHKERR( TaoComputeUpdate(tao) ) # <<<<<<<<<<<<<< + * + * TaoPreStep_Python(tao) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeUpdate(__pyx_v_tao)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2880, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2882 + * CHKERR( TaoComputeUpdate(tao) ) + * + * TaoPreStep_Python(tao) # <<<<<<<<<<<<<< + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TaoPreStep_Python(__pyx_v_tao); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2882, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2883 + * + * TaoPreStep_Python(tao) + * CHKERR( PetscObjectStateGet(X, &nstate) ) # <<<<<<<<<<<<<< + * if ostate != nstate: + * if G != NULL: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectStateGet(((PetscObject)__pyx_v_X), (&__pyx_v_nstate))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2883, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2884 + * TaoPreStep_Python(tao) + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: # <<<<<<<<<<<<<< + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + */ + __pyx_t_2 = ((__pyx_v_ostate != __pyx_v_nstate) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2885 + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + __pyx_t_2 = ((__pyx_v_G != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2886 + * if ostate != nstate: + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * else: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjectiveAndGradient(__pyx_v_tao, __pyx_v_X, (&__pyx_v_f), __pyx_v_G)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2886, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2887 + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) # <<<<<<<<<<<<<< + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_G, NORM_2, (&__pyx_v_gnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2887, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2885 + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + goto __pyx_L8; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2889 + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) # <<<<<<<<<<<<<< + * # + * tao.ksp_its = 0 + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjective(__pyx_v_tao, __pyx_v_X, (&__pyx_v_f))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2889, __pyx_L1_error) + } + __pyx_L8:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2884 + * TaoPreStep_Python(tao) + * CHKERR( PetscObjectStateGet(X, &nstate) ) + * if ostate != nstate: # <<<<<<<<<<<<<< + * if G != NULL: + * CHKERR( TaoComputeObjectiveAndGradient(tao, X, &f, G) ) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2891 + * CHKERR( TaoComputeObjective(tao, X, &f) ) + * # + * tao.ksp_its = 0 # <<<<<<<<<<<<<< + * TaoStep_Python(tao, X, G, S) + * CHKERR( KSPGetIterationNumber(tao.ksp, &tao.ksp_its) ) + */ + __pyx_v_tao->ksp_its = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2892 + * # + * tao.ksp_its = 0 + * TaoStep_Python(tao, X, G, S) # <<<<<<<<<<<<<< + * CHKERR( KSPGetIterationNumber(tao.ksp, &tao.ksp_its) ) + * tao.ksp_tot_its += tao.ksp_its + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TaoStep_Python(__pyx_v_tao, __pyx_v_X, __pyx_v_G, __pyx_v_S); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2892, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2893 + * tao.ksp_its = 0 + * TaoStep_Python(tao, X, G, S) + * CHKERR( KSPGetIterationNumber(tao.ksp, &tao.ksp_its) ) # <<<<<<<<<<<<<< + * tao.ksp_tot_its += tao.ksp_its + * # + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPGetIterationNumber(__pyx_v_tao->ksp, (&__pyx_v_tao->ksp_its))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2893, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2894 + * TaoStep_Python(tao, X, G, S) + * CHKERR( KSPGetIterationNumber(tao.ksp, &tao.ksp_its) ) + * tao.ksp_tot_its += tao.ksp_its # <<<<<<<<<<<<<< + * # + * if G != NULL: + */ + __pyx_v_tao->ksp_tot_its = (__pyx_v_tao->ksp_tot_its + __pyx_v_tao->ksp_its); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2896 + * tao.ksp_tot_its += tao.ksp_its + * # + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + __pyx_t_2 = ((__pyx_v_G != NULL) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2897 + * # + * if G != NULL: + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) # <<<<<<<<<<<<<< + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * if lsr < TAOLINESEARCH_CONTINUE_ITERATING: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoApplyLineSearch(__pyx_v_tao, (&__pyx_v_f), (&__pyx_v_step), (&__pyx_v_lsr))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2897, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2898 + * if G != NULL: + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) # <<<<<<<<<<<<<< + * if lsr < TAOLINESEARCH_CONTINUE_ITERATING: + * tao.reason = TAO_DIVERGED_LS_FAILURE + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecNorm(__pyx_v_G, NORM_2, (&__pyx_v_gnorm))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2898, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2899 + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * if lsr < TAOLINESEARCH_CONTINUE_ITERATING: # <<<<<<<<<<<<<< + * tao.reason = TAO_DIVERGED_LS_FAILURE + * else: + */ + __pyx_t_2 = ((__pyx_v_lsr < TAOLINESEARCH_CONTINUE_ITERATING) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2900 + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * if lsr < TAOLINESEARCH_CONTINUE_ITERATING: + * tao.reason = TAO_DIVERGED_LS_FAILURE # <<<<<<<<<<<<<< + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) + */ + __pyx_v_tao->reason = TAO_DIVERGED_LS_FAILURE; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2899 + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + * if lsr < TAOLINESEARCH_CONTINUE_ITERATING: # <<<<<<<<<<<<<< + * tao.reason = TAO_DIVERGED_LS_FAILURE + * else: + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2896 + * tao.ksp_tot_its += tao.ksp_its + * # + * if G != NULL: # <<<<<<<<<<<<<< + * CHKERR( TaoApplyLineSearch(tao, &f, &step, &lsr) ) + * CHKERR( VecNorm(G, PETSC_NORM_2, &gnorm) ) + */ + goto __pyx_L9; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2902 + * tao.reason = TAO_DIVERGED_LS_FAILURE + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) # <<<<<<<<<<<<<< + * CHKERR( TaoCheckReals(tao, f, gnorm) ) + * + */ + /*else*/ { + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeObjective(__pyx_v_tao, __pyx_v_X, (&__pyx_v_f))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2902, __pyx_L1_error) + } + __pyx_L9:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2903 + * else: + * CHKERR( TaoComputeObjective(tao, X, &f) ) + * CHKERR( TaoCheckReals(tao, f, gnorm) ) # <<<<<<<<<<<<<< + * + * tao.niter += 1 + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoCheckReals(__pyx_v_tao, __pyx_v_f, __pyx_v_gnorm)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2903, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2905 + * CHKERR( TaoCheckReals(tao, f, gnorm) ) + * + * tao.niter += 1 # <<<<<<<<<<<<<< + * # + * TaoPostStep_Python(tao) + */ + __pyx_v_tao->niter = (__pyx_v_tao->niter + 1); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2907 + * tao.niter += 1 + * # + * TaoPostStep_Python(tao) # <<<<<<<<<<<<<< + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_TaoPostStep_Python(__pyx_v_tao); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2907, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2908 + * # + * TaoPostStep_Python(tao) + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) # <<<<<<<<<<<<<< + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) + * CHKERR( TaoConverged(tao, &tao.reason) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoLogConvergenceHistory(__pyx_v_tao, __pyx_v_f, __pyx_v_gnorm, 0.0, __pyx_v_tao->ksp_its)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2908, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2909 + * TaoPostStep_Python(tao) + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) # <<<<<<<<<<<<<< + * CHKERR( TaoConverged(tao, &tao.reason) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoMonitor(__pyx_v_tao, __pyx_v_tao->niter, __pyx_v_f, __pyx_v_gnorm, 0.0, __pyx_v_step)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2909, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2910 + * CHKERR( TaoLogConvergenceHistory(tao, f, gnorm, 0.0, tao.ksp_its) ) + * CHKERR( TaoMonitor(tao, tao.niter, f, gnorm, 0.0, step) ) + * CHKERR( TaoConverged(tao, &tao.reason) ) # <<<<<<<<<<<<<< + * + * if tao.niter == tao.max_it: + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoConverged(__pyx_v_tao, (&__pyx_v_tao->reason))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2910, __pyx_L1_error) + } + __pyx_L5_break:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2912 + * CHKERR( TaoConverged(tao, &tao.reason) ) + * + * if tao.niter == tao.max_it: # <<<<<<<<<<<<<< + * if tao.reason <= 0: + * tao.reason = TAO_DIVERGED_MAXITS + */ + __pyx_t_2 = ((__pyx_v_tao->niter == __pyx_v_tao->max_it) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2913 + * + * if tao.niter == tao.max_it: + * if tao.reason <= 0: # <<<<<<<<<<<<<< + * tao.reason = TAO_DIVERGED_MAXITS + * # + */ + __pyx_t_2 = ((__pyx_v_tao->reason <= 0) != 0); + if (__pyx_t_2) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2914 + * if tao.niter == tao.max_it: + * if tao.reason <= 0: + * tao.reason = TAO_DIVERGED_MAXITS # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + __pyx_v_tao->reason = TAO_DIVERGED_MAXITS; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2913 + * + * if tao.niter == tao.max_it: + * if tao.reason <= 0: # <<<<<<<<<<<<<< + * tao.reason = TAO_DIVERGED_MAXITS + * # + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2912 + * CHKERR( TaoConverged(tao, &tao.reason) ) + * + * if tao.niter == tao.max_it: # <<<<<<<<<<<<<< + * if tao.reason <= 0: + * tao.reason = TAO_DIVERGED_MAXITS + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2916 + * tao.reason = TAO_DIVERGED_MAXITS + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2849 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoSolve_Python_default( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.TaoSolve_Python_default", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2918 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscVec X, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoStep_Python(Tao __pyx_v_tao, Vec __pyx_v_X, Vec __pyx_v_G, Vec __pyx_v_S) { + PyObject *__pyx_v_step = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + PetscErrorCode __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2925 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoStep_Python") # <<<<<<<<<<<<<< + * cdef step = PyTao(tao).step + * if step is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2926 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoStep_Python") + * cdef step = PyTao(tao).step # <<<<<<<<<<<<<< + * if step is not None: + * step(TAO_(tao), Vec_(X), Vec_(G) if G != NULL else None, Vec_(S) if S != NULL else None) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_step); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2926, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_step = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2927 + * FunctionBegin(b"TaoStep_Python") + * cdef step = PyTao(tao).step + * if step is not None: # <<<<<<<<<<<<<< + * step(TAO_(tao), Vec_(X), Vec_(G) if G != NULL else None, Vec_(S) if S != NULL else None) + * else: + */ + __pyx_t_3 = (__pyx_v_step != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2928 + * cdef step = PyTao(tao).step + * if step is not None: + * step(TAO_(tao), Vec_(X), Vec_(G) if G != NULL else None, Vec_(S) if S != NULL else None) # <<<<<<<<<<<<<< + * else: + * # TaoStep_Python_default(tao,X,G,S) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_X)); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (((__pyx_v_G != NULL) != 0)) { + __pyx_t_7 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_G)); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __pyx_t_7; + __pyx_t_7 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_6 = Py_None; + } + if (((__pyx_v_S != NULL) != 0)) { + __pyx_t_8 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_Vec_(__pyx_v_S)); if (unlikely(!__pyx_t_8)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_7 = __pyx_t_8; + __pyx_t_8 = 0; + } else { + __Pyx_INCREF(Py_None); + __pyx_t_7 = Py_None; + } + __Pyx_INCREF(__pyx_v_step); + __pyx_t_8 = __pyx_v_step; __pyx_t_9 = NULL; + __pyx_t_10 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) { + __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8); + if (likely(__pyx_t_9)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_8, function); + __pyx_t_10 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) { + PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_1, __pyx_t_5, __pyx_t_6, __pyx_t_7}; + __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } else + #endif + { + __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + if (__pyx_t_9) { + __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_t_7); + __pyx_t_1 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2927 + * FunctionBegin(b"TaoStep_Python") + * cdef step = PyTao(tao).step + * if step is not None: # <<<<<<<<<<<<<< + * step(TAO_(tao), Vec_(X), Vec_(G) if G != NULL else None, Vec_(S) if S != NULL else None) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2931 + * else: + * # TaoStep_Python_default(tao,X,G,S) + * CHKERR( TaoComputeGradient(tao, X, S) ) # <<<<<<<<<<<<<< + * CHKERR( VecCopy(G, S) ) + * CHKERR( VecScale(S, -1.0) ) + */ + /*else*/ { + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoComputeGradient(__pyx_v_tao, __pyx_v_X, __pyx_v_S)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2931, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2932 + * # TaoStep_Python_default(tao,X,G,S) + * CHKERR( TaoComputeGradient(tao, X, S) ) + * CHKERR( VecCopy(G, S) ) # <<<<<<<<<<<<<< + * CHKERR( VecScale(S, -1.0) ) + * return FunctionEnd() + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecCopy(__pyx_v_G, __pyx_v_S)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2932, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2933 + * CHKERR( TaoComputeGradient(tao, X, S) ) + * CHKERR( VecCopy(G, S) ) + * CHKERR( VecScale(S, -1.0) ) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_12 = __pyx_f_8petsc4py_5PETSc_CHKERR(VecScale(__pyx_v_S, -1.0)); if (unlikely(__pyx_t_12 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2933, __pyx_L1_error) + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2934 + * CHKERR( VecCopy(G, S) ) + * CHKERR( VecScale(S, -1.0) ) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoPreStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2918 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * PetscVec X, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("petsc4py.PETSc.TaoStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_step); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2936 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPreStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPreStep_Python(Tao __pyx_v_tao) { + PyObject *__pyx_v_preStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoPreStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2940 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPreStep_Python") # <<<<<<<<<<<<<< + * cdef preStep = PyTao(tao).preStep + * if preStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPreStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2941 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPreStep_Python") + * cdef preStep = PyTao(tao).preStep # <<<<<<<<<<<<<< + * if preStep is not None: + * preStep(TAO_(tao)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_preStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_preStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2942 + * FunctionBegin(b"TaoPreStep_Python") + * cdef preStep = PyTao(tao).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(TAO_(tao)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_preStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2943 + * cdef preStep = PyTao(tao).preStep + * if preStep is not None: + * preStep(TAO_(tao)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_preStep); + __pyx_t_5 = __pyx_v_preStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2942 + * FunctionBegin(b"TaoPreStep_Python") + * cdef preStep = PyTao(tao).preStep + * if preStep is not None: # <<<<<<<<<<<<<< + * preStep(TAO_(tao)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2944 + * if preStep is not None: + * preStep(TAO_(tao)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode TaoPostStep_Python( + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2936 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPreStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPreStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_preStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2946 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPostStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_TaoPostStep_Python(Tao __pyx_v_tao) { + PyObject *__pyx_v_postStep = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("TaoPostStep_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2950 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPostStep_Python") # <<<<<<<<<<<<<< + * cdef postStep = PyTao(tao).postStep + * if postStep is not None: + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"TaoPostStep_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2951 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"TaoPostStep_Python") + * cdef postStep = PyTao(tao).postStep # <<<<<<<<<<<<<< + * if postStep is not None: + * postStep(TAO_(tao)) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyTao(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_postStep); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v_postStep = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2952 + * FunctionBegin(b"TaoPostStep_Python") + * cdef postStep = PyTao(tao).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(TAO_(tao)) + * return FunctionEnd() + */ + __pyx_t_3 = (__pyx_v_postStep != Py_None); + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2953 + * cdef postStep = PyTao(tao).postStep + * if postStep is not None: + * postStep(TAO_(tao)) # <<<<<<<<<<<<<< + * return FunctionEnd() + * + */ + __pyx_t_1 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_TAO_(__pyx_v_tao)); if (unlikely(!__pyx_t_1)) __PYX_ERR(11, 2953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_postStep); + __pyx_t_5 = __pyx_v_postStep; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2952 + * FunctionBegin(b"TaoPostStep_Python") + * cdef postStep = PyTao(tao).postStep + * if postStep is not None: # <<<<<<<<<<<<<< + * postStep(TAO_(tao)) + * return FunctionEnd() + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2954 + * if postStep is not None: + * postStep(TAO_(tao)) + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2946 + * return FunctionEnd() + * + * cdef PetscErrorCode TaoPostStep_Python( # <<<<<<<<<<<<<< + * PetscTAO tao, + * ) \ + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc.TaoPostStep_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_postStep); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":2958 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode PetscPythonMonitorSet_Python( # <<<<<<<<<<<<<< + * PetscObject obj_p, + * const char *url_p, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscPythonMonitorSet_Python(PetscObject __pyx_v_obj_p, char const *__pyx_v_url_p) { + PetscClassId __pyx_v_classid; + PyTypeObject *__pyx_v_klass = 0; + struct PyPetscObjectObject *__pyx_v_ob = 0; + PyObject *__pyx_v_url = 0; + PyObject *__pyx_v_path = NULL; + PyObject *__pyx_v_names = NULL; + PyObject *__pyx_v_module = NULL; + PyObject *__pyx_v_attr = NULL; + PyObject *__pyx_v_monitor = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *(*__pyx_t_8)(PyObject *); + Py_ssize_t __pyx_t_9; + PyObject *(*__pyx_t_10)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PetscPythonMonitorSet_Python", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2963 + * ) \ + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PetscPythonMonitorSet_Python") # <<<<<<<<<<<<<< + * assert obj_p != NULL + * assert url_p != NULL + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PetscPythonMonitorSet_Python")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2964 + * except PETSC_ERR_PYTHON with gil: + * FunctionBegin(b"PetscPythonMonitorSet_Python") + * assert obj_p != NULL # <<<<<<<<<<<<<< + * assert url_p != NULL + * assert url_p[0] != 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_obj_p != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(11, 2964, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/libpetsc4py.pyx":2965 + * FunctionBegin(b"PetscPythonMonitorSet_Python") + * assert obj_p != NULL + * assert url_p != NULL # <<<<<<<<<<<<<< + * assert url_p[0] != 0 + * # + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_url_p != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(11, 2965, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/libpetsc4py.pyx":2966 + * assert obj_p != NULL + * assert url_p != NULL + * assert url_p[0] != 0 # <<<<<<<<<<<<<< + * # + * cdef PetscClassId classid = 0 + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!(((__pyx_v_url_p[0]) != 0) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(11, 2966, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/libpetsc4py.pyx":2968 + * assert url_p[0] != 0 + * # + * cdef PetscClassId classid = 0 # <<<<<<<<<<<<<< + * CHKERR( PetscObjectGetClassId(obj_p, &classid) ) + * cdef type klass = PyPetscType_Lookup(classid) + */ + __pyx_v_classid = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2969 + * # + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj_p, &classid) ) # <<<<<<<<<<<<<< + * cdef type klass = PyPetscType_Lookup(classid) + * cdef Object ob = klass() + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscObjectGetClassId(__pyx_v_obj_p, (&__pyx_v_classid))); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 2969, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":2970 + * cdef PetscClassId classid = 0 + * CHKERR( PetscObjectGetClassId(obj_p, &classid) ) + * cdef type klass = PyPetscType_Lookup(classid) # <<<<<<<<<<<<<< + * cdef Object ob = klass() + * ob.obj[0] = newRef(obj_p) + */ + __pyx_t_2 = ((PyObject *)__pyx_f_8petsc4py_5PETSc_PyPetscType_Lookup(__pyx_v_classid)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2970, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_klass = ((PyTypeObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2971 + * CHKERR( PetscObjectGetClassId(obj_p, &classid) ) + * cdef type klass = PyPetscType_Lookup(classid) + * cdef Object ob = klass() # <<<<<<<<<<<<<< + * ob.obj[0] = newRef(obj_p) + * # + */ + __pyx_t_2 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_v_klass)); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2971, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_8petsc4py_5PETSc_Object))))) __PYX_ERR(11, 2971, __pyx_L1_error) + __pyx_v_ob = ((struct PyPetscObjectObject *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2972 + * cdef type klass = PyPetscType_Lookup(classid) + * cdef Object ob = klass() + * ob.obj[0] = newRef(obj_p) # <<<<<<<<<<<<<< + * # + * cdef url = bytes2str(url_p) + */ + (__pyx_v_ob->obj[0]) = __pyx_f_8petsc4py_5PETSc_newRef(__pyx_v_obj_p); + + /* "petsc4py/PETSc/libpetsc4py.pyx":2974 + * ob.obj[0] = newRef(obj_p) + * # + * cdef url = bytes2str(url_p) # <<<<<<<<<<<<<< + * if ':' in url: + * path, names = parse_url(url) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_url_p); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_url = __pyx_t_2; + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2975 + * # + * cdef url = bytes2str(url_p) + * if ':' in url: # <<<<<<<<<<<<<< + * path, names = parse_url(url) + * else: + */ + __pyx_t_3 = (__Pyx_PySequence_ContainsTF(__pyx_kp_s__57, __pyx_v_url, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(11, 2975, __pyx_L1_error) + __pyx_t_4 = (__pyx_t_3 != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2976 + * cdef url = bytes2str(url_p) + * if ':' in url: + * path, names = parse_url(url) # <<<<<<<<<<<<<< + * else: + * path, names = url, 'monitor' + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_parse_url(__pyx_v_url); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(11, 2976, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_6 = PyList_GET_ITEM(sequence, 1); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + #else + __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(11, 2976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext; + index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_5); + index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed; + __Pyx_GOTREF(__pyx_t_6); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) __PYX_ERR(11, 2976, __pyx_L1_error) + __pyx_t_8 = NULL; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + goto __pyx_L5_unpacking_done; + __pyx_L4_unpacking_failed:; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(11, 2976, __pyx_L1_error) + __pyx_L5_unpacking_done:; + } + __pyx_v_path = __pyx_t_5; + __pyx_t_5 = 0; + __pyx_v_names = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2975 + * # + * cdef url = bytes2str(url_p) + * if ':' in url: # <<<<<<<<<<<<<< + * path, names = parse_url(url) + * else: + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2978 + * path, names = parse_url(url) + * else: + * path, names = url, 'monitor' # <<<<<<<<<<<<<< + * module = load_module(path) + * for attr in names.split(','): + */ + /*else*/ { + __pyx_t_2 = __pyx_v_url; + __Pyx_INCREF(__pyx_t_2); + __pyx_t_6 = __pyx_n_s_monitor; + __Pyx_INCREF(__pyx_t_6); + __pyx_v_path = __pyx_t_2; + __pyx_t_2 = 0; + __pyx_v_names = __pyx_t_6; + __pyx_t_6 = 0; + } + __pyx_L3:; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2979 + * else: + * path, names = url, 'monitor' + * module = load_module(path) # <<<<<<<<<<<<<< + * for attr in names.split(','): + * monitor = getattr(module, attr) + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_load_module(__pyx_v_path); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_v_module = __pyx_t_6; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2980 + * path, names = url, 'monitor' + * module = load_module(path) + * for attr in names.split(','): # <<<<<<<<<<<<<< + * monitor = getattr(module, attr) + * if isinstance(monitor, type): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_names, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_kp_s__14) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_s__14); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) { + __pyx_t_2 = __pyx_t_6; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { + __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(11, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(11, 2980, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + for (;;) { + if (likely(!__pyx_t_10)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(11, 2980, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_6); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(11, 2980, __pyx_L1_error) + #else + __pyx_t_6 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + #endif + } + } else { + __pyx_t_6 = __pyx_t_10(__pyx_t_2); + if (unlikely(!__pyx_t_6)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(11, 2980, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_6); + } + __Pyx_XDECREF_SET(__pyx_v_attr, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2981 + * module = load_module(path) + * for attr in names.split(','): + * monitor = getattr(module, attr) # <<<<<<<<<<<<<< + * if isinstance(monitor, type): + * monitor = monitor(ob) + */ + __pyx_t_6 = __Pyx_GetAttr(__pyx_v_module, __pyx_v_attr); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_monitor, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2982 + * for attr in names.split(','): + * monitor = getattr(module, attr) + * if isinstance(monitor, type): # <<<<<<<<<<<<<< + * monitor = monitor(ob) + * ob.setMonitor(monitor) + */ + __pyx_t_4 = PyType_Check(__pyx_v_monitor); + __pyx_t_3 = (__pyx_t_4 != 0); + if (__pyx_t_3) { + + /* "petsc4py/PETSc/libpetsc4py.pyx":2983 + * monitor = getattr(module, attr) + * if isinstance(monitor, type): + * monitor = monitor(ob) # <<<<<<<<<<<<<< + * ob.setMonitor(monitor) + * # + */ + __Pyx_INCREF(__pyx_v_monitor); + __pyx_t_5 = __pyx_v_monitor; __pyx_t_7 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, ((PyObject *)__pyx_v_ob)) : __Pyx_PyObject_CallOneArg(__pyx_t_5, ((PyObject *)__pyx_v_ob)); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_monitor, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2982 + * for attr in names.split(','): + * monitor = getattr(module, attr) + * if isinstance(monitor, type): # <<<<<<<<<<<<<< + * monitor = monitor(ob) + * ob.setMonitor(monitor) + */ + } + + /* "petsc4py/PETSc/libpetsc4py.pyx":2984 + * if isinstance(monitor, type): + * monitor = monitor(ob) + * ob.setMonitor(monitor) # <<<<<<<<<<<<<< + * # + * return FunctionEnd() + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ob), __pyx_n_s_setMonitor); if (unlikely(!__pyx_t_5)) __PYX_ERR(11, 2984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_6 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_7, __pyx_v_monitor) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_monitor); + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 2984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2980 + * path, names = url, 'monitor' + * module = load_module(path) + * for attr in names.split(','): # <<<<<<<<<<<<<< + * monitor = getattr(module, attr) + * if isinstance(monitor, type): + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2986 + * ob.setMonitor(monitor) + * # + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":2958 + * # -------------------------------------------------------------------- + * + * cdef PetscErrorCode PetscPythonMonitorSet_Python( # <<<<<<<<<<<<<< + * PetscObject obj_p, + * const char *url_p, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.PetscPythonMonitorSet_Python", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_klass); + __Pyx_XDECREF((PyObject *)__pyx_v_ob); + __Pyx_XDECREF(__pyx_v_url); + __Pyx_XDECREF(__pyx_v_path); + __Pyx_XDECREF(__pyx_v_names); + __Pyx_XDECREF(__pyx_v_module); + __Pyx_XDECREF(__pyx_v_attr); + __Pyx_XDECREF(__pyx_v_monitor); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/libpetsc4py.pyx":3010 + * + * + * cdef public PetscErrorCode PetscPythonRegisterAll() except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * FunctionBegin(b"PetscPythonRegisterAll") + * + */ + +PetscErrorCode PetscPythonRegisterAll(void) { + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PetscErrorCode __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PetscPythonRegisterAll", 0); + + /* "petsc4py/PETSc/libpetsc4py.pyx":3011 + * + * cdef public PetscErrorCode PetscPythonRegisterAll() except PETSC_ERR_PYTHON: + * FunctionBegin(b"PetscPythonRegisterAll") # <<<<<<<<<<<<<< + * + * # Python subtypes + */ + __pyx_f_8petsc4py_5PETSc_FunctionBegin(((char *)"PetscPythonRegisterAll")); + + /* "petsc4py/PETSc/libpetsc4py.pyx":3014 + * + * # Python subtypes + * CHKERR( MatRegister ( MATPYTHON, MatCreate_Python ) ) # <<<<<<<<<<<<<< + * CHKERR( PCRegister ( PCPYTHON, PCCreate_Python ) ) + * CHKERR( KSPRegister ( KSPPYTHON, KSPCreate_Python ) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(MatRegister(MATPYTHON, __pyx_f_8petsc4py_5PETSc_MatCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3014, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3015 + * # Python subtypes + * CHKERR( MatRegister ( MATPYTHON, MatCreate_Python ) ) + * CHKERR( PCRegister ( PCPYTHON, PCCreate_Python ) ) # <<<<<<<<<<<<<< + * CHKERR( KSPRegister ( KSPPYTHON, KSPCreate_Python ) ) + * CHKERR( SNESRegister( SNESPYTHON, SNESCreate_Python ) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(PCRegister(PCPYTHON, __pyx_f_8petsc4py_5PETSc_PCCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3015, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3016 + * CHKERR( MatRegister ( MATPYTHON, MatCreate_Python ) ) + * CHKERR( PCRegister ( PCPYTHON, PCCreate_Python ) ) + * CHKERR( KSPRegister ( KSPPYTHON, KSPCreate_Python ) ) # <<<<<<<<<<<<<< + * CHKERR( SNESRegister( SNESPYTHON, SNESCreate_Python ) ) + * CHKERR( TSRegister ( TSPYTHON, TSCreate_Python ) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(KSPRegister(KSPPYTHON, __pyx_f_8petsc4py_5PETSc_KSPCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3016, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3017 + * CHKERR( PCRegister ( PCPYTHON, PCCreate_Python ) ) + * CHKERR( KSPRegister ( KSPPYTHON, KSPCreate_Python ) ) + * CHKERR( SNESRegister( SNESPYTHON, SNESCreate_Python ) ) # <<<<<<<<<<<<<< + * CHKERR( TSRegister ( TSPYTHON, TSCreate_Python ) ) + * CHKERR( TaoRegister ( TAOPYTHON, TaoCreate_Python ) ) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(SNESRegister(SNESPYTHON, __pyx_f_8petsc4py_5PETSc_SNESCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3017, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3018 + * CHKERR( KSPRegister ( KSPPYTHON, KSPCreate_Python ) ) + * CHKERR( SNESRegister( SNESPYTHON, SNESCreate_Python ) ) + * CHKERR( TSRegister ( TSPYTHON, TSCreate_Python ) ) # <<<<<<<<<<<<<< + * CHKERR( TaoRegister ( TAOPYTHON, TaoCreate_Python ) ) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TSRegister(TSPYTHON, __pyx_f_8petsc4py_5PETSc_TSCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3018, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3019 + * CHKERR( SNESRegister( SNESPYTHON, SNESCreate_Python ) ) + * CHKERR( TSRegister ( TSPYTHON, TSCreate_Python ) ) + * CHKERR( TaoRegister ( TAOPYTHON, TaoCreate_Python ) ) # <<<<<<<<<<<<<< + * + * # Python monitors + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_CHKERR(TaoRegister(TAOPYTHON, __pyx_f_8petsc4py_5PETSc_TaoCreate_Python)); if (unlikely(__pyx_t_1 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(11, 3019, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":3023 + * # Python monitors + * global PetscPythonMonitorSet_C + * PetscPythonMonitorSet_C = PetscPythonMonitorSet_Python # <<<<<<<<<<<<<< + * + * return FunctionEnd() + */ + PetscPythonMonitorSet_C = __pyx_f_8petsc4py_5PETSc_PetscPythonMonitorSet_Python; + + /* "petsc4py/PETSc/libpetsc4py.pyx":3025 + * PetscPythonMonitorSet_C = PetscPythonMonitorSet_Python + * + * return FunctionEnd() # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_FunctionEnd(); + goto __pyx_L0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":3010 + * + * + * cdef public PetscErrorCode PetscPythonRegisterAll() except PETSC_ERR_PYTHON: # <<<<<<<<<<<<<< + * FunctionBegin(b"PetscPythonRegisterAll") + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.PetscPythonRegisterAll", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = PETSC_ERR_PYTHON; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":258 + * cdef object tracebacklist = [] + * + * cdef PetscErrorCode traceback( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * int line, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_traceback(MPI_Comm __pyx_v_comm, int __pyx_v_line, char const *__pyx_v_cfunc, char const *__pyx_v_cfile, PetscErrorCode __pyx_v_n, PetscErrorType __pyx_v_p, char const *__pyx_v_mess, void *__pyx_v_ctx) { + PetscLogDouble __pyx_v_mem; + PetscLogDouble __pyx_v_rss; + char const *__pyx_v_text; + PyObject *__pyx_v_tbl = 0; + PyObject *__pyx_v_fun = 0; + PyObject *__pyx_v_fnm = 0; + PyObject *__pyx_v_m = 0; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("traceback", 0); + + /* "petsc4py/PETSc/PETSc.pyx":268 + * void *ctx, + * ) with gil: + * cdef PetscLogDouble mem=0 # <<<<<<<<<<<<<< + * cdef PetscLogDouble rss=0 + * cdef const char *text=NULL + */ + __pyx_v_mem = 0.0; + + /* "petsc4py/PETSc/PETSc.pyx":269 + * ) with gil: + * cdef PetscLogDouble mem=0 + * cdef PetscLogDouble rss=0 # <<<<<<<<<<<<<< + * cdef const char *text=NULL + * global tracebacklist + */ + __pyx_v_rss = 0.0; + + /* "petsc4py/PETSc/PETSc.pyx":270 + * cdef PetscLogDouble mem=0 + * cdef PetscLogDouble rss=0 + * cdef const char *text=NULL # <<<<<<<<<<<<<< + * global tracebacklist + * cdef object tbl = tracebacklist + */ + __pyx_v_text = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":272 + * cdef const char *text=NULL + * global tracebacklist + * cdef object tbl = tracebacklist # <<<<<<<<<<<<<< + * cdef object fun = bytes2str(cfunc) + * cdef object fnm = bytes2str(cfile) + */ + __Pyx_INCREF(__pyx_v_8petsc4py_5PETSc_tracebacklist); + __pyx_v_tbl = __pyx_v_8petsc4py_5PETSc_tracebacklist; + + /* "petsc4py/PETSc/PETSc.pyx":273 + * global tracebacklist + * cdef object tbl = tracebacklist + * cdef object fun = bytes2str(cfunc) # <<<<<<<<<<<<<< + * cdef object fnm = bytes2str(cfile) + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cfunc); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_fun = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":274 + * cdef object tbl = tracebacklist + * cdef object fun = bytes2str(cfunc) + * cdef object fnm = bytes2str(cfile) # <<<<<<<<<<<<<< + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) + * PyList_Insert(tbl, 0, m) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_cfile); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_fnm = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":275 + * cdef object fun = bytes2str(cfunc) + * cdef object fnm = bytes2str(cfile) + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) # <<<<<<<<<<<<<< + * PyList_Insert(tbl, 0, m) + * if p != PETSC_ERROR_INITIAL: + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_line); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_fun); + __Pyx_GIVEREF(__pyx_v_fun); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fun); + __Pyx_INCREF(__pyx_v_fnm); + __Pyx_GIVEREF(__pyx_v_fnm); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_fnm); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_at_s_d, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_m = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":276 + * cdef object fnm = bytes2str(cfile) + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) + * PyList_Insert(tbl, 0, m) # <<<<<<<<<<<<<< + * if p != PETSC_ERROR_INITIAL: + * return n + */ + __pyx_t_3 = PyList_Insert(__pyx_v_tbl, 0, __pyx_v_m); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(12, 276, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":277 + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) + * PyList_Insert(tbl, 0, m) + * if p != PETSC_ERROR_INITIAL: # <<<<<<<<<<<<<< + * return n + * # + */ + __pyx_t_4 = ((__pyx_v_p != PETSC_ERROR_INITIAL) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/PETSc.pyx":278 + * PyList_Insert(tbl, 0, m) + * if p != PETSC_ERROR_INITIAL: + * return n # <<<<<<<<<<<<<< + * # + * del tbl[1:] # clear any previous stuff + */ + __pyx_r = __pyx_v_n; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":277 + * cdef object m = "%s() at %s:%d" % (fun, fnm, line) + * PyList_Insert(tbl, 0, m) + * if p != PETSC_ERROR_INITIAL: # <<<<<<<<<<<<<< + * return n + * # + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":280 + * return n + * # + * del tbl[1:] # clear any previous stuff # <<<<<<<<<<<<<< + * if n == PETSC_ERR_MEM: # special case + * PetscMallocGetCurrentUsage(&mem) + */ + if (__Pyx_PyObject_DelSlice(__pyx_v_tbl, 1, 0, NULL, NULL, &__pyx_slice__6, 1, 0, 1) < 0) __PYX_ERR(12, 280, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":281 + * # + * del tbl[1:] # clear any previous stuff + * if n == PETSC_ERR_MEM: # special case # <<<<<<<<<<<<<< + * PetscMallocGetCurrentUsage(&mem) + * PetscMemoryGetCurrentUsage(&rss) + */ + __pyx_t_4 = ((__pyx_v_n == PETSC_ERR_MEM) != 0); + if (__pyx_t_4) { + + /* "petsc4py/PETSc/PETSc.pyx":282 + * del tbl[1:] # clear any previous stuff + * if n == PETSC_ERR_MEM: # special case + * PetscMallocGetCurrentUsage(&mem) # <<<<<<<<<<<<<< + * PetscMemoryGetCurrentUsage(&rss) + * m = ( + */ + (void)(PetscMallocGetCurrentUsage((&__pyx_v_mem))); + + /* "petsc4py/PETSc/PETSc.pyx":283 + * if n == PETSC_ERR_MEM: # special case + * PetscMallocGetCurrentUsage(&mem) + * PetscMemoryGetCurrentUsage(&rss) # <<<<<<<<<<<<<< + * m = ( + * "Out of memory. " + */ + (void)(PetscMemoryGetCurrentUsage((&__pyx_v_rss))); + + /* "petsc4py/PETSc/PETSc.pyx":288 + * "Allocated: %d, " + * "Used by process: %d" + * ) % (mem, rss) # <<<<<<<<<<<<<< + * PyList_Append(tbl, m) + * else: + */ + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_mem); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_rss); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_memory_Allocated_d_Used_b, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_m, __pyx_t_2); + __pyx_t_2 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":289 + * "Used by process: %d" + * ) % (mem, rss) + * PyList_Append(tbl, m) # <<<<<<<<<<<<<< + * else: + * PetscErrorMessage(n, &text, NULL) + */ + __pyx_t_3 = PyList_Append(__pyx_v_tbl, __pyx_v_m); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(12, 289, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":281 + * # + * del tbl[1:] # clear any previous stuff + * if n == PETSC_ERR_MEM: # special case # <<<<<<<<<<<<<< + * PetscMallocGetCurrentUsage(&mem) + * PetscMemoryGetCurrentUsage(&rss) + */ + goto __pyx_L4; + } + + /* "petsc4py/PETSc/PETSc.pyx":291 + * PyList_Append(tbl, m) + * else: + * PetscErrorMessage(n, &text, NULL) # <<<<<<<<<<<<<< + * if text != NULL: PyList_Append(tbl, bytes2str(text)) + * if mess != NULL: PyList_Append(tbl, bytes2str(mess)) + */ + /*else*/ { + (void)(PetscErrorMessage(__pyx_v_n, (&__pyx_v_text), NULL)); + } + __pyx_L4:; + + /* "petsc4py/PETSc/PETSc.pyx":292 + * else: + * PetscErrorMessage(n, &text, NULL) + * if text != NULL: PyList_Append(tbl, bytes2str(text)) # <<<<<<<<<<<<<< + * if mess != NULL: PyList_Append(tbl, bytes2str(mess)) + * comm # unused + */ + __pyx_t_4 = ((__pyx_v_text != NULL) != 0); + if (__pyx_t_4) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_text); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyList_Append(__pyx_v_tbl, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(12, 292, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/PETSc.pyx":293 + * PetscErrorMessage(n, &text, NULL) + * if text != NULL: PyList_Append(tbl, bytes2str(text)) + * if mess != NULL: PyList_Append(tbl, bytes2str(mess)) # <<<<<<<<<<<<<< + * comm # unused + * ctx # unused + */ + __pyx_t_4 = ((__pyx_v_mess != NULL) != 0); + if (__pyx_t_4) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_bytes2str(__pyx_v_mess); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyList_Append(__pyx_v_tbl, __pyx_t_2); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(12, 293, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + + /* "petsc4py/PETSc/PETSc.pyx":294 + * if text != NULL: PyList_Append(tbl, bytes2str(text)) + * if mess != NULL: PyList_Append(tbl, bytes2str(mess)) + * comm # unused # <<<<<<<<<<<<<< + * ctx # unused + * return n + */ + ((void)__pyx_v_comm); + + /* "petsc4py/PETSc/PETSc.pyx":295 + * if mess != NULL: PyList_Append(tbl, bytes2str(mess)) + * comm # unused + * ctx # unused # <<<<<<<<<<<<<< + * return n + * + */ + ((void)__pyx_v_ctx); + + /* "petsc4py/PETSc/PETSc.pyx":296 + * comm # unused + * ctx # unused + * return n # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PetscPythonErrorHandler( + */ + __pyx_r = __pyx_v_n; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":258 + * cdef object tracebacklist = [] + * + * cdef PetscErrorCode traceback( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * int line, + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_WriteUnraisable("petsc4py.PETSc.traceback", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = (PetscErrorCode) 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tbl); + __Pyx_XDECREF(__pyx_v_fun); + __Pyx_XDECREF(__pyx_v_fnm); + __Pyx_XDECREF(__pyx_v_m); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":298 + * return n + * + * cdef PetscErrorCode PetscPythonErrorHandler( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * int line, + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscPythonErrorHandler(MPI_Comm __pyx_v_comm, int __pyx_v_line, char const *__pyx_v_cfunc, char const *__pyx_v_cfile, PetscErrorCode __pyx_v_n, PetscErrorType __pyx_v_p, char const *__pyx_v_mess, void *__pyx_v_ctx) { + PetscErrorCode __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + + /* "petsc4py/PETSc/PETSc.pyx":309 + * ) nogil: + * global tracebacklist + * if (tracebacklist) != NULL and Py_IsInitialized(): # <<<<<<<<<<<<<< + * return traceback(comm, line, cfunc, cfile, n, p, mess, ctx) + * else: + */ + __pyx_t_2 = ((((void *)__pyx_v_8petsc4py_5PETSc_tracebacklist) != NULL) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (Py_IsInitialized() != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":310 + * global tracebacklist + * if (tracebacklist) != NULL and Py_IsInitialized(): + * return traceback(comm, line, cfunc, cfile, n, p, mess, ctx) # <<<<<<<<<<<<<< + * else: + * return PetscTBEH(comm, line, cfunc, cfile, n, p, mess, ctx) + */ + __pyx_r = __pyx_f_8petsc4py_5PETSc_traceback(__pyx_v_comm, __pyx_v_line, __pyx_v_cfunc, __pyx_v_cfile, __pyx_v_n, __pyx_v_p, __pyx_v_mess, __pyx_v_ctx); + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":309 + * ) nogil: + * global tracebacklist + * if (tracebacklist) != NULL and Py_IsInitialized(): # <<<<<<<<<<<<<< + * return traceback(comm, line, cfunc, cfile, n, p, mess, ctx) + * else: + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":312 + * return traceback(comm, line, cfunc, cfile, n, p, mess, ctx) + * else: + * return PetscTBEH(comm, line, cfunc, cfile, n, p, mess, ctx) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + /*else*/ { + __pyx_r = PetscTBEH(__pyx_v_comm, __pyx_v_line, __pyx_v_cfunc, __pyx_v_cfile, __pyx_v_n, __pyx_v_p, __pyx_v_mess, __pyx_v_ctx); + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":298 + * return n + * + * cdef PetscErrorCode PetscPythonErrorHandler( # <<<<<<<<<<<<<< + * MPI_Comm comm, + * int line, + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":348 + * cdef char** PyPetsc_Argv = NULL + * + * cdef int getinitargs(object args, int *argc, char **argv[]) except -1: # <<<<<<<<<<<<<< + * # allocate command line arguments + * cdef int i, c = 0 + */ + +static int __pyx_f_8petsc4py_5PETSc_getinitargs(PyObject *__pyx_v_args, int *__pyx_v_argc, char ***__pyx_v_argv) { + int __pyx_v_i; + int __pyx_v_c; + char **__pyx_v_v; + PyObject *__pyx_9genexpr21__pyx_v_a = NULL; + PyObject *__pyx_9genexpr22__pyx_v_a = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_t_13; + char *__pyx_t_14; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("getinitargs", 0); + __Pyx_INCREF(__pyx_v_args); + + /* "petsc4py/PETSc/PETSc.pyx":350 + * cdef int getinitargs(object args, int *argc, char **argv[]) except -1: + * # allocate command line arguments + * cdef int i, c = 0 # <<<<<<<<<<<<<< + * cdef char **v = NULL + * if args is None: args = [] + */ + __pyx_v_c = 0; + + /* "petsc4py/PETSc/PETSc.pyx":351 + * # allocate command line arguments + * cdef int i, c = 0 + * cdef char **v = NULL # <<<<<<<<<<<<<< + * if args is None: args = [] + * args = [str(a).encode() for a in args] + */ + __pyx_v_v = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":352 + * cdef int i, c = 0 + * cdef char **v = NULL + * if args is None: args = [] # <<<<<<<<<<<<<< + * args = [str(a).encode() for a in args] + * args = [a for a in args if a] + */ + __pyx_t_1 = (__pyx_v_args == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_3); + __pyx_t_3 = 0; + } + + /* "petsc4py/PETSc/PETSc.pyx":353 + * cdef char **v = NULL + * if args is None: args = [] + * args = [str(a).encode() for a in args] # <<<<<<<<<<<<<< + * args = [a for a in args if a] + * c = len(args) + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { + __pyx_t_4 = __pyx_v_args; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 353, __pyx_L6_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(12, 353, __pyx_L6_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(12, 353, __pyx_L6_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(12, 353, __pyx_L6_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_9genexpr21__pyx_v_a, __pyx_t_7); + __pyx_t_7 = 0; + __pyx_t_8 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_9genexpr21__pyx_v_a); if (unlikely(!__pyx_t_8)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_encode); if (unlikely(!__pyx_t_9)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_9, function); + } + } + __pyx_t_7 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_9); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_7))) __PYX_ERR(12, 353, __pyx_L6_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_a); __pyx_9genexpr21__pyx_v_a = 0; + goto __pyx_L9_exit_scope; + __pyx_L6_error:; + __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_a); __pyx_9genexpr21__pyx_v_a = 0; + goto __pyx_L1_error; + __pyx_L9_exit_scope:; + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":354 + * if args is None: args = [] + * args = [str(a).encode() for a in args] + * args = [a for a in args if a] # <<<<<<<<<<<<<< + * c = len(args) + * v = malloc((c+1)*sizeof(char*)) + */ + { /* enter inner scope */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 354, __pyx_L12_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { + __pyx_t_4 = __pyx_v_args; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_args); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 354, __pyx_L12_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 354, __pyx_L12_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(12, 354, __pyx_L12_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 354, __pyx_L12_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(12, 354, __pyx_L12_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 354, __pyx_L12_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(12, 354, __pyx_L12_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_9genexpr22__pyx_v_a, __pyx_t_7); + __pyx_t_7 = 0; + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_9genexpr22__pyx_v_a); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(12, 354, __pyx_L12_error) + if (__pyx_t_2) { + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_9genexpr22__pyx_v_a))) __PYX_ERR(12, 354, __pyx_L12_error) + } + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_a); __pyx_9genexpr22__pyx_v_a = 0; + goto __pyx_L16_exit_scope; + __pyx_L12_error:; + __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_a); __pyx_9genexpr22__pyx_v_a = 0; + goto __pyx_L1_error; + __pyx_L16_exit_scope:; + } /* exit inner scope */ + __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":355 + * args = [str(a).encode() for a in args] + * args = [a for a in args if a] + * c = len(args) # <<<<<<<<<<<<<< + * v = malloc((c+1)*sizeof(char*)) + * if v == NULL: raise MemoryError + */ + __pyx_t_5 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(12, 355, __pyx_L1_error) + __pyx_v_c = ((int)__pyx_t_5); + + /* "petsc4py/PETSc/PETSc.pyx":356 + * args = [a for a in args if a] + * c = len(args) + * v = malloc((c+1)*sizeof(char*)) # <<<<<<<<<<<<<< + * if v == NULL: raise MemoryError + * memset(v, 0, (c+1)*sizeof(char*)) + */ + __pyx_v_v = ((char **)malloc((((size_t)(__pyx_v_c + 1)) * (sizeof(char *))))); + + /* "petsc4py/PETSc/PETSc.pyx":357 + * c = len(args) + * v = malloc((c+1)*sizeof(char*)) + * if v == NULL: raise MemoryError # <<<<<<<<<<<<<< + * memset(v, 0, (c+1)*sizeof(char*)) + * try: + */ + __pyx_t_2 = ((__pyx_v_v == NULL) != 0); + if (unlikely(__pyx_t_2)) { + PyErr_NoMemory(); __PYX_ERR(12, 357, __pyx_L1_error) + } + + /* "petsc4py/PETSc/PETSc.pyx":358 + * v = malloc((c+1)*sizeof(char*)) + * if v == NULL: raise MemoryError + * memset(v, 0, (c+1)*sizeof(char*)) # <<<<<<<<<<<<<< + * try: + * for 0 <= i < c: + */ + (void)(memset(__pyx_v_v, 0, (((size_t)(__pyx_v_c + 1)) * (sizeof(char *))))); + + /* "petsc4py/PETSc/PETSc.pyx":359 + * if v == NULL: raise MemoryError + * memset(v, 0, (c+1)*sizeof(char*)) + * try: # <<<<<<<<<<<<<< + * for 0 <= i < c: + * v[i] = strdup(args[i]) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + /*try:*/ { + + /* "petsc4py/PETSc/PETSc.pyx":360 + * memset(v, 0, (c+1)*sizeof(char*)) + * try: + * for 0 <= i < c: # <<<<<<<<<<<<<< + * v[i] = strdup(args[i]) + * if v[i] == NULL: + */ + __pyx_t_13 = __pyx_v_c; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_13; __pyx_v_i++) { + + /* "petsc4py/PETSc/PETSc.pyx":361 + * try: + * for 0 <= i < c: + * v[i] = strdup(args[i]) # <<<<<<<<<<<<<< + * if v[i] == NULL: + * raise MemoryError + */ + __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_args, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(12, 361, __pyx_L18_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_AsWritableString(__pyx_t_3); if (unlikely((!__pyx_t_14) && PyErr_Occurred())) __PYX_ERR(12, 361, __pyx_L18_error) + (__pyx_v_v[__pyx_v_i]) = strdup(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":362 + * for 0 <= i < c: + * v[i] = strdup(args[i]) + * if v[i] == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * except: + */ + __pyx_t_2 = (((__pyx_v_v[__pyx_v_i]) == NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "petsc4py/PETSc/PETSc.pyx":363 + * v[i] = strdup(args[i]) + * if v[i] == NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * except: + * delinitargs(&c, &v); raise + */ + PyErr_NoMemory(); __PYX_ERR(12, 363, __pyx_L18_error) + + /* "petsc4py/PETSc/PETSc.pyx":362 + * for 0 <= i < c: + * v[i] = strdup(args[i]) + * if v[i] == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * except: + */ + } + } + + /* "petsc4py/PETSc/PETSc.pyx":359 + * if v == NULL: raise MemoryError + * memset(v, 0, (c+1)*sizeof(char*)) + * try: # <<<<<<<<<<<<<< + * for 0 <= i < c: + * v[i] = strdup(args[i]) + */ + } + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0; + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; + __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; + goto __pyx_L23_try_end; + __pyx_L18_error:; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":364 + * if v[i] == NULL: + * raise MemoryError + * except: # <<<<<<<<<<<<<< + * delinitargs(&c, &v); raise + * argc[0] = c; argv[0] = v + */ + /*except:*/ { + __Pyx_AddTraceback("petsc4py.PETSc.getinitargs", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_4, &__pyx_t_7) < 0) __PYX_ERR(12, 364, __pyx_L20_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GOTREF(__pyx_t_7); + + /* "petsc4py/PETSc/PETSc.pyx":365 + * raise MemoryError + * except: + * delinitargs(&c, &v); raise # <<<<<<<<<<<<<< + * argc[0] = c; argv[0] = v + * return 0 + */ + __pyx_f_8petsc4py_5PETSc_delinitargs((&__pyx_v_c), (&__pyx_v_v)); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_ErrRestoreWithState(__pyx_t_3, __pyx_t_4, __pyx_t_7); + __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_7 = 0; + __PYX_ERR(12, 365, __pyx_L20_except_error) + } + __pyx_L20_except_error:; + + /* "petsc4py/PETSc/PETSc.pyx":359 + * if v == NULL: raise MemoryError + * memset(v, 0, (c+1)*sizeof(char*)) + * try: # <<<<<<<<<<<<<< + * for 0 <= i < c: + * v[i] = strdup(args[i]) + */ + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + goto __pyx_L1_error; + __pyx_L23_try_end:; + } + + /* "petsc4py/PETSc/PETSc.pyx":366 + * except: + * delinitargs(&c, &v); raise + * argc[0] = c; argv[0] = v # <<<<<<<<<<<<<< + * return 0 + * + */ + (__pyx_v_argc[0]) = __pyx_v_c; + (__pyx_v_argv[0]) = __pyx_v_v; + + /* "petsc4py/PETSc/PETSc.pyx":367 + * delinitargs(&c, &v); raise + * argc[0] = c; argv[0] = v + * return 0 # <<<<<<<<<<<<<< + * + * cdef void delinitargs(int *argc, char **argv[]) nogil: + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":348 + * cdef char** PyPetsc_Argv = NULL + * + * cdef int getinitargs(object args, int *argc, char **argv[]) except -1: # <<<<<<<<<<<<<< + * # allocate command line arguments + * cdef int i, c = 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("petsc4py.PETSc.getinitargs", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_9genexpr21__pyx_v_a); + __Pyx_XDECREF(__pyx_9genexpr22__pyx_v_a); + __Pyx_XDECREF(__pyx_v_args); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":369 + * return 0 + * + * cdef void delinitargs(int *argc, char **argv[]) nogil: # <<<<<<<<<<<<<< + * # dallocate command line arguments + * cdef int i, c = argc[0] + */ + +static void __pyx_f_8petsc4py_5PETSc_delinitargs(int *__pyx_v_argc, char ***__pyx_v_argv) { + int __pyx_v_i; + int __pyx_v_c; + char **__pyx_v_v; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + + /* "petsc4py/PETSc/PETSc.pyx":371 + * cdef void delinitargs(int *argc, char **argv[]) nogil: + * # dallocate command line arguments + * cdef int i, c = argc[0] # <<<<<<<<<<<<<< + * cdef char** v = argv[0] + * argc[0] = 0; argv[0] = NULL; + */ + __pyx_v_c = (__pyx_v_argc[0]); + + /* "petsc4py/PETSc/PETSc.pyx":372 + * # dallocate command line arguments + * cdef int i, c = argc[0] + * cdef char** v = argv[0] # <<<<<<<<<<<<<< + * argc[0] = 0; argv[0] = NULL; + * if c >= 0 and v != NULL: + */ + __pyx_v_v = (__pyx_v_argv[0]); + + /* "petsc4py/PETSc/PETSc.pyx":373 + * cdef int i, c = argc[0] + * cdef char** v = argv[0] + * argc[0] = 0; argv[0] = NULL; # <<<<<<<<<<<<<< + * if c >= 0 and v != NULL: + * for 0 <= i < c: + */ + (__pyx_v_argc[0]) = 0; + (__pyx_v_argv[0]) = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":374 + * cdef char** v = argv[0] + * argc[0] = 0; argv[0] = NULL; + * if c >= 0 and v != NULL: # <<<<<<<<<<<<<< + * for 0 <= i < c: + * if v[i] != NULL: free(v[i]) + */ + __pyx_t_2 = ((__pyx_v_c >= 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_v != NULL) != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":375 + * argc[0] = 0; argv[0] = NULL; + * if c >= 0 and v != NULL: + * for 0 <= i < c: # <<<<<<<<<<<<<< + * if v[i] != NULL: free(v[i]) + * free(v) + */ + __pyx_t_3 = __pyx_v_c; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "petsc4py/PETSc/PETSc.pyx":376 + * if c >= 0 and v != NULL: + * for 0 <= i < c: + * if v[i] != NULL: free(v[i]) # <<<<<<<<<<<<<< + * free(v) + * + */ + __pyx_t_1 = (((__pyx_v_v[__pyx_v_i]) != NULL) != 0); + if (__pyx_t_1) { + free((__pyx_v_v[__pyx_v_i])); + } + } + + /* "petsc4py/PETSc/PETSc.pyx":377 + * for 0 <= i < c: + * if v[i] != NULL: free(v[i]) + * free(v) # <<<<<<<<<<<<<< + * + * cdef void finalize() nogil: + */ + free(__pyx_v_v); + + /* "petsc4py/PETSc/PETSc.pyx":374 + * cdef char** v = argv[0] + * argc[0] = 0; argv[0] = NULL; + * if c >= 0 and v != NULL: # <<<<<<<<<<<<<< + * for 0 <= i < c: + * if v[i] != NULL: free(v[i]) + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":369 + * return 0 + * + * cdef void delinitargs(int *argc, char **argv[]) nogil: # <<<<<<<<<<<<<< + * # dallocate command line arguments + * cdef int i, c = argc[0] + */ + + /* function exit code */ +} + +/* "petsc4py/PETSc/PETSc.pyx":379 + * free(v) + * + * cdef void finalize() nogil: # <<<<<<<<<<<<<< + * cdef int ierr = 0 + * # deallocate command line arguments + */ + +static void __pyx_f_8petsc4py_5PETSc_finalize(void) { + int __pyx_v_ierr; + int __pyx_t_1; + + /* "petsc4py/PETSc/PETSc.pyx":380 + * + * cdef void finalize() nogil: + * cdef int ierr = 0 # <<<<<<<<<<<<<< + * # deallocate command line arguments + * global PyPetsc_Argc, PyPetsc_Argv + */ + __pyx_v_ierr = 0; + + /* "petsc4py/PETSc/PETSc.pyx":384 + * global PyPetsc_Argc, PyPetsc_Argv + * global PetscVFPrintf, prevfprintf + * delinitargs(&PyPetsc_Argc, &PyPetsc_Argv) # <<<<<<<<<<<<<< + * # manage PETSc finalization + * if not (PetscInitializeCalled): return + */ + __pyx_f_8petsc4py_5PETSc_delinitargs((&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argc), (&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argv)); + + /* "petsc4py/PETSc/PETSc.pyx":386 + * delinitargs(&PyPetsc_Argc, &PyPetsc_Argv) + * # manage PETSc finalization + * if not (PetscInitializeCalled): return # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return + * # stop stdout/stderr redirect + */ + __pyx_t_1 = ((!(((int)PetscInitializeCalled) != 0)) != 0); + if (__pyx_t_1) { + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":387 + * # manage PETSc finalization + * if not (PetscInitializeCalled): return + * if (PetscFinalizeCalled): return # <<<<<<<<<<<<<< + * # stop stdout/stderr redirect + * if (prevfprintf != NULL): + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":389 + * if (PetscFinalizeCalled): return + * # stop stdout/stderr redirect + * if (prevfprintf != NULL): # <<<<<<<<<<<<<< + * PetscVFPrintf = prevfprintf + * prevfprintf = NULL + */ + __pyx_t_1 = ((__pyx_v_8petsc4py_5PETSc_prevfprintf != NULL) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":390 + * # stop stdout/stderr redirect + * if (prevfprintf != NULL): + * PetscVFPrintf = prevfprintf # <<<<<<<<<<<<<< + * prevfprintf = NULL + * # deinstall Python error handler + */ + PetscVFPrintf = __pyx_v_8petsc4py_5PETSc_prevfprintf; + + /* "petsc4py/PETSc/PETSc.pyx":391 + * if (prevfprintf != NULL): + * PetscVFPrintf = prevfprintf + * prevfprintf = NULL # <<<<<<<<<<<<<< + * # deinstall Python error handler + * ierr = PetscPopErrorHandler() + */ + __pyx_v_8petsc4py_5PETSc_prevfprintf = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":389 + * if (PetscFinalizeCalled): return + * # stop stdout/stderr redirect + * if (prevfprintf != NULL): # <<<<<<<<<<<<<< + * PetscVFPrintf = prevfprintf + * prevfprintf = NULL + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":393 + * prevfprintf = NULL + * # deinstall Python error handler + * ierr = PetscPopErrorHandler() # <<<<<<<<<<<<<< + * if ierr != 0: + * fprintf(stderr, + */ + __pyx_v_ierr = PetscPopErrorHandler(); + + /* "petsc4py/PETSc/PETSc.pyx":394 + * # deinstall Python error handler + * ierr = PetscPopErrorHandler() + * if ierr != 0: # <<<<<<<<<<<<<< + * fprintf(stderr, + * "PetscPopErrorHandler() failed " + */ + __pyx_t_1 = ((__pyx_v_ierr != 0) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":395 + * ierr = PetscPopErrorHandler() + * if ierr != 0: + * fprintf(stderr, # <<<<<<<<<<<<<< + * "PetscPopErrorHandler() failed " + * "[error code: %d]\n", ierr) + */ + (void)(fprintf(stderr, ((char *)"PetscPopErrorHandler() failed [error code: %d]\n"), __pyx_v_ierr)); + + /* "petsc4py/PETSc/PETSc.pyx":394 + * # deinstall Python error handler + * ierr = PetscPopErrorHandler() + * if ierr != 0: # <<<<<<<<<<<<<< + * fprintf(stderr, + * "PetscPopErrorHandler() failed " + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":399 + * "[error code: %d]\n", ierr) + * # finalize PETSc + * ierr = PetscFinalize() # <<<<<<<<<<<<<< + * if ierr != 0: + * fprintf(stderr, + */ + __pyx_v_ierr = PetscFinalize(); + + /* "petsc4py/PETSc/PETSc.pyx":400 + * # finalize PETSc + * ierr = PetscFinalize() + * if ierr != 0: # <<<<<<<<<<<<<< + * fprintf(stderr, + * "PetscFinalize() failed " + */ + __pyx_t_1 = ((__pyx_v_ierr != 0) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":401 + * ierr = PetscFinalize() + * if ierr != 0: + * fprintf(stderr, # <<<<<<<<<<<<<< + * "PetscFinalize() failed " + * "[error code: %d]\n", ierr) + */ + (void)(fprintf(stderr, ((char *)"PetscFinalize() failed [error code: %d]\n"), __pyx_v_ierr)); + + /* "petsc4py/PETSc/PETSc.pyx":400 + * # finalize PETSc + * ierr = PetscFinalize() + * if ierr != 0: # <<<<<<<<<<<<<< + * fprintf(stderr, + * "PetscFinalize() failed " + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":379 + * free(v) + * + * cdef void finalize() nogil: # <<<<<<<<<<<<<< + * cdef int ierr = 0 + * # deallocate command line arguments + */ + + /* function exit code */ + __pyx_L0:; +} + +/* "petsc4py/PETSc/PETSc.pyx":414 + * prevfprintf = NULL + * + * cdef PetscErrorCode PetscVFPrintf_PythonStdStream( # <<<<<<<<<<<<<< + * FILE *fd, const char formt[], va_list ap, + * ) with gil: + */ + +static PetscErrorCode __pyx_f_8petsc4py_5PETSc_PetscVFPrintf_PythonStdStream(FILE *__pyx_v_fd, char const *__pyx_v_formt, va_list __pyx_v_ap) { + PyObject *__pyx_v_sys = NULL; + char __pyx_v_cstring[0x2000]; + size_t __pyx_v_stringlen; + size_t __pyx_v_final_pos; + PyObject *__pyx_v_ustring = NULL; + PetscErrorCode __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + PetscErrorCode __pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("PetscVFPrintf_PythonStdStream", 0); + + /* "petsc4py/PETSc/PETSc.pyx":417 + * FILE *fd, const char formt[], va_list ap, + * ) with gil: + * import sys # <<<<<<<<<<<<<< + * cdef char cstring[8192] + * cdef size_t stringlen = sizeof(cstring) + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_sys = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":419 + * import sys + * cdef char cstring[8192] + * cdef size_t stringlen = sizeof(cstring) # <<<<<<<<<<<<<< + * cdef size_t final_pos + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): + */ + __pyx_v_stringlen = (sizeof(__pyx_v_cstring)); + + /* "petsc4py/PETSc/PETSc.pyx":421 + * cdef size_t stringlen = sizeof(cstring) + * cdef size_t final_pos + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): # <<<<<<<<<<<<<< + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + */ + __pyx_t_3 = ((__pyx_v_fd == PETSC_STDOUT) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stdout); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stdout_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 421, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(12, 421, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = ((!__pyx_t_3) != 0); + __pyx_t_2 = __pyx_t_6; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PETSc.pyx":422 + * cdef size_t final_pos + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) # <<<<<<<<<<<<<< + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscVSNPrintf((&(__pyx_v_cstring[0])), __pyx_v_stringlen, __pyx_v_formt, (&__pyx_v_final_pos), __pyx_v_ap)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 422, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":423 + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': # <<<<<<<<<<<<<< + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + */ + __pyx_t_6 = ((__pyx_v_final_pos > 0) != 0); + if (__pyx_t_6) { + } else { + __pyx_t_2 = __pyx_t_6; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_6 = (((__pyx_v_cstring[(__pyx_v_final_pos - 1)]) == '\x00') != 0); + __pyx_t_2 = __pyx_t_6; + __pyx_L7_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PETSc.pyx":424 + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 # <<<<<<<<<<<<<< + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stdout.write(ustring) + */ + __pyx_v_final_pos = (__pyx_v_final_pos - 1); + + /* "petsc4py/PETSc/PETSc.pyx":423 + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': # <<<<<<<<<<<<<< + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":425 + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') # <<<<<<<<<<<<<< + * sys.stdout.write(ustring) + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): + */ + __pyx_t_5 = __Pyx_decode_c_string(__pyx_v_cstring, 0, __pyx_v_final_pos, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_ustring = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":426 + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stdout.write(ustring) # <<<<<<<<<<<<<< + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stdout); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_write); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_4)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_ustring) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_ustring); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 426, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":421 + * cdef size_t stringlen = sizeof(cstring) + * cdef size_t final_pos + * if (fd == PETSC_STDOUT) and not (sys.stdout == sys.__stdout__): # <<<<<<<<<<<<<< + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/PETSc.pyx":427 + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stdout.write(ustring) + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): # <<<<<<<<<<<<<< + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + */ + __pyx_t_6 = ((__pyx_v_fd == PETSC_STDERR) != 0); + if (__pyx_t_6) { + } else { + __pyx_t_2 = __pyx_t_6; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stderr); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stderr_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 427, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(12, 427, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_3 = ((!__pyx_t_6) != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L9_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PETSc.pyx":428 + * sys.stdout.write(ustring) + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) # <<<<<<<<<<<<<< + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscVSNPrintf((&(__pyx_v_cstring[0])), __pyx_v_stringlen, __pyx_v_formt, (&__pyx_v_final_pos), __pyx_v_ap)); if (unlikely(__pyx_t_7 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 428, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":429 + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': # <<<<<<<<<<<<<< + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + */ + __pyx_t_3 = ((__pyx_v_final_pos > 0) != 0); + if (__pyx_t_3) { + } else { + __pyx_t_2 = __pyx_t_3; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_3 = (((__pyx_v_cstring[(__pyx_v_final_pos - 1)]) == '\x00') != 0); + __pyx_t_2 = __pyx_t_3; + __pyx_L12_bool_binop_done:; + if (__pyx_t_2) { + + /* "petsc4py/PETSc/PETSc.pyx":430 + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 # <<<<<<<<<<<<<< + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stderr.write(ustring) + */ + __pyx_v_final_pos = (__pyx_v_final_pos - 1); + + /* "petsc4py/PETSc/PETSc.pyx":429 + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': # <<<<<<<<<<<<<< + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":431 + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') # <<<<<<<<<<<<<< + * sys.stderr.write(ustring) + * else: + */ + __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_cstring, 0, __pyx_v_final_pos, NULL, NULL, PyUnicode_DecodeUTF8); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_ustring = __pyx_t_4; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":432 + * final_pos -= 1 + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stderr.write(ustring) # <<<<<<<<<<<<<< + * else: + * PetscVFPrintfDefault(fd, formt, ap) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stderr); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_write); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_1)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_1); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_1, __pyx_v_ustring) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_ustring); + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":427 + * ustring = cstring[:final_pos].decode('UTF-8') + * sys.stdout.write(ustring) + * elif (fd == PETSC_STDERR) and not (sys.stderr == sys.__stderr__): # <<<<<<<<<<<<<< + * CHKERR( PetscVSNPrintf(&cstring[0],stringlen,formt,&final_pos,ap)) + * if final_pos > 0 and cstring[final_pos-1] == '\x00': + */ + goto __pyx_L3; + } + + /* "petsc4py/PETSc/PETSc.pyx":434 + * sys.stderr.write(ustring) + * else: + * PetscVFPrintfDefault(fd, formt, ap) # <<<<<<<<<<<<<< + * return PETSC_SUCCESS + * + */ + /*else*/ { + (void)(PetscVFPrintfDefault(__pyx_v_fd, __pyx_v_formt, __pyx_v_ap)); + } + __pyx_L3:; + + /* "petsc4py/PETSc/PETSc.pyx":435 + * else: + * PetscVFPrintfDefault(fd, formt, ap) + * return PETSC_SUCCESS # <<<<<<<<<<<<<< + * + * cdef int _push_vfprintf( + */ + __pyx_r = PETSC_SUCCESS; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":414 + * prevfprintf = NULL + * + * cdef PetscErrorCode PetscVFPrintf_PythonStdStream( # <<<<<<<<<<<<<< + * FILE *fd, const char formt[], va_list ap, + * ) with gil: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_WriteUnraisable("petsc4py.PETSc.PetscVFPrintf_PythonStdStream", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); + __pyx_r = (PetscErrorCode) 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_sys); + __Pyx_XDECREF(__pyx_v_ustring); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":437 + * return PETSC_SUCCESS + * + * cdef int _push_vfprintf( # <<<<<<<<<<<<<< + * PetscErrorCode (*vfprintf)(FILE*, const char*, va_list) nogil, + * ) except -1: + */ + +static int __pyx_f_8petsc4py_5PETSc__push_vfprintf(PetscErrorCode (*__pyx_v_vfprintf)(FILE *, char const *, va_list)) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_push_vfprintf", 0); + + /* "petsc4py/PETSc/PETSc.pyx":441 + * ) except -1: + * global PetscVFPrintf, prevfprintf + * assert prevfprintf == NULL # <<<<<<<<<<<<<< + * prevfprintf = PetscVFPrintf + * PetscVFPrintf = vfprintf + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_8petsc4py_5PETSc_prevfprintf == NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(12, 441, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PETSc.pyx":442 + * global PetscVFPrintf, prevfprintf + * assert prevfprintf == NULL + * prevfprintf = PetscVFPrintf # <<<<<<<<<<<<<< + * PetscVFPrintf = vfprintf + * + */ + __pyx_v_8petsc4py_5PETSc_prevfprintf = PetscVFPrintf; + + /* "petsc4py/PETSc/PETSc.pyx":443 + * assert prevfprintf == NULL + * prevfprintf = PetscVFPrintf + * PetscVFPrintf = vfprintf # <<<<<<<<<<<<<< + * + * cdef int _pop_vfprintf() except -1: + */ + PetscVFPrintf = __pyx_v_vfprintf; + + /* "petsc4py/PETSc/PETSc.pyx":437 + * return PETSC_SUCCESS + * + * cdef int _push_vfprintf( # <<<<<<<<<<<<<< + * PetscErrorCode (*vfprintf)(FILE*, const char*, va_list) nogil, + * ) except -1: + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._push_vfprintf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":445 + * PetscVFPrintf = vfprintf + * + * cdef int _pop_vfprintf() except -1: # <<<<<<<<<<<<<< + * global PetscVFPrintf, prevfprintf + * assert prevfprintf != NULL + */ + +static int __pyx_f_8petsc4py_5PETSc__pop_vfprintf(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_pop_vfprintf", 0); + + /* "petsc4py/PETSc/PETSc.pyx":447 + * cdef int _pop_vfprintf() except -1: + * global PetscVFPrintf, prevfprintf + * assert prevfprintf != NULL # <<<<<<<<<<<<<< + * PetscVFPrintf = prevfprintf + * prevfprintf == NULL + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_8petsc4py_5PETSc_prevfprintf != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(12, 447, __pyx_L1_error) + } + } + #endif + + /* "petsc4py/PETSc/PETSc.pyx":448 + * global PetscVFPrintf, prevfprintf + * assert prevfprintf != NULL + * PetscVFPrintf = prevfprintf # <<<<<<<<<<<<<< + * prevfprintf == NULL + * + */ + PetscVFPrintf = __pyx_v_8petsc4py_5PETSc_prevfprintf; + + /* "petsc4py/PETSc/PETSc.pyx":449 + * assert prevfprintf != NULL + * PetscVFPrintf = prevfprintf + * prevfprintf == NULL # <<<<<<<<<<<<<< + * + * cdef int initialize(object args, object comm) except -1: + */ + (void)((__pyx_v_8petsc4py_5PETSc_prevfprintf == NULL)); + + /* "petsc4py/PETSc/PETSc.pyx":445 + * PetscVFPrintf = vfprintf + * + * cdef int _pop_vfprintf() except -1: # <<<<<<<<<<<<<< + * global PetscVFPrintf, prevfprintf + * assert prevfprintf != NULL + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._pop_vfprintf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":451 + * prevfprintf == NULL + * + * cdef int initialize(object args, object comm) except -1: # <<<<<<<<<<<<<< + * if (PetscInitializeCalled): return 1 + * if (PetscFinalizeCalled): return 0 + */ + +static int __pyx_f_8petsc4py_5PETSc_initialize(PyObject *__pyx_v_args, PyObject *__pyx_v_comm) { + PetscErrorHandlerFunction __pyx_v_handler; + PyObject *__pyx_v_sys = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + MPI_Comm __pyx_t_3; + PetscErrorCode __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("initialize", 0); + + /* "petsc4py/PETSc/PETSc.pyx":452 + * + * cdef int initialize(object args, object comm) except -1: + * if (PetscInitializeCalled): return 1 # <<<<<<<<<<<<<< + * if (PetscFinalizeCalled): return 0 + * # allocate command line arguments + */ + __pyx_t_1 = (((int)PetscInitializeCalled) != 0); + if (__pyx_t_1) { + __pyx_r = 1; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":453 + * cdef int initialize(object args, object comm) except -1: + * if (PetscInitializeCalled): return 1 + * if (PetscFinalizeCalled): return 0 # <<<<<<<<<<<<<< + * # allocate command line arguments + * global PyPetsc_Argc, PyPetsc_Argv + */ + __pyx_t_1 = (((int)PetscFinalizeCalled) != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":456 + * # allocate command line arguments + * global PyPetsc_Argc, PyPetsc_Argv + * getinitargs(args, &PyPetsc_Argc, &PyPetsc_Argv) # <<<<<<<<<<<<<< + * # communicator + * global PETSC_COMM_WORLD + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_getinitargs(__pyx_v_args, (&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argc), (&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argv)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 456, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":459 + * # communicator + * global PETSC_COMM_WORLD + * PETSC_COMM_WORLD = def_Comm(comm, PETSC_COMM_WORLD) # <<<<<<<<<<<<<< + * # initialize PETSc + * CHKERR( PetscInitialize(&PyPetsc_Argc, &PyPetsc_Argv, NULL, NULL) ) + */ + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_def_Comm(__pyx_v_comm, PETSC_COMM_WORLD); if (unlikely(PyErr_Occurred())) __PYX_ERR(12, 459, __pyx_L1_error) + PETSC_COMM_WORLD = __pyx_t_3; + + /* "petsc4py/PETSc/PETSc.pyx":461 + * PETSC_COMM_WORLD = def_Comm(comm, PETSC_COMM_WORLD) + * # initialize PETSc + * CHKERR( PetscInitialize(&PyPetsc_Argc, &PyPetsc_Argv, NULL, NULL) ) # <<<<<<<<<<<<<< + * # install Python error handler + * cdef PetscErrorHandlerFunction handler = NULL + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscInitialize((&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argc), (&__pyx_v_8petsc4py_5PETSc_PyPetsc_Argv), NULL, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 461, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":463 + * CHKERR( PetscInitialize(&PyPetsc_Argc, &PyPetsc_Argv, NULL, NULL) ) + * # install Python error handler + * cdef PetscErrorHandlerFunction handler = NULL # <<<<<<<<<<<<<< + * handler = PetscPythonErrorHandler + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + */ + __pyx_v_handler = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":464 + * # install Python error handler + * cdef PetscErrorHandlerFunction handler = NULL + * handler = PetscPythonErrorHandler # <<<<<<<<<<<<<< + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + * # redirect PETSc std streams + */ + __pyx_v_handler = ((PetscErrorHandlerFunction)__pyx_f_8petsc4py_5PETSc_PetscPythonErrorHandler); + + /* "petsc4py/PETSc/PETSc.pyx":465 + * cdef PetscErrorHandlerFunction handler = NULL + * handler = PetscPythonErrorHandler + * CHKERR( PetscPushErrorHandler(handler, NULL) ) # <<<<<<<<<<<<<< + * # redirect PETSc std streams + * import sys + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscPushErrorHandler(__pyx_v_handler, NULL)); if (unlikely(__pyx_t_4 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 465, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":467 + * CHKERR( PetscPushErrorHandler(handler, NULL) ) + * # redirect PETSc std streams + * import sys # <<<<<<<<<<<<<< + * if (sys.stdout != sys.__stdout__) or (sys.stderr != sys.__stderr__): + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + */ + __pyx_t_5 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_sys = __pyx_t_5; + __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":468 + * # redirect PETSc std streams + * import sys + * if (sys.stdout != sys.__stdout__) or (sys.stderr != sys.__stderr__): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * # register finalization function + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stdout); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stdout_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (!__pyx_t_8) { + } else { + __pyx_t_1 = __pyx_t_8; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stderr); if (unlikely(!__pyx_t_7)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_sys, __pyx_n_s_stderr_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(12, 468, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = __pyx_t_8; + __pyx_L6_bool_binop_done:; + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":469 + * import sys + * if (sys.stdout != sys.__stdout__) or (sys.stderr != sys.__stderr__): + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) # <<<<<<<<<<<<<< + * # register finalization function + * if Py_AtExit(finalize) < 0: + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc__push_vfprintf((&__pyx_f_8petsc4py_5PETSc_PetscVFPrintf_PythonStdStream)); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 469, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":468 + * # redirect PETSc std streams + * import sys + * if (sys.stdout != sys.__stdout__) or (sys.stderr != sys.__stderr__): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * # register finalization function + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":471 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * # register finalization function + * if Py_AtExit(finalize) < 0: # <<<<<<<<<<<<<< + * PySys_WriteStderr(b"warning: could not register %s with Py_AtExit()", + * b"PetscFinalize()") + */ + __pyx_t_1 = ((Py_AtExit(__pyx_f_8petsc4py_5PETSc_finalize) < 0) != 0); + if (__pyx_t_1) { + + /* "petsc4py/PETSc/PETSc.pyx":472 + * # register finalization function + * if Py_AtExit(finalize) < 0: + * PySys_WriteStderr(b"warning: could not register %s with Py_AtExit()", # <<<<<<<<<<<<<< + * b"PetscFinalize()") + * return 1 # and we are done, enjoy !! + */ + PySys_WriteStderr(((char *)"warning: could not register %s with Py_AtExit()"), ((char *)"PetscFinalize()")); + + /* "petsc4py/PETSc/PETSc.pyx":471 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * # register finalization function + * if Py_AtExit(finalize) < 0: # <<<<<<<<<<<<<< + * PySys_WriteStderr(b"warning: could not register %s with Py_AtExit()", + * b"PetscFinalize()") + */ + } + + /* "petsc4py/PETSc/PETSc.pyx":474 + * PySys_WriteStderr(b"warning: could not register %s with Py_AtExit()", + * b"PetscFinalize()") + * return 1 # and we are done, enjoy !! # <<<<<<<<<<<<<< + * + * cdef extern from * nogil: + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":451 + * prevfprintf == NULL + * + * cdef int initialize(object args, object comm) except -1: # <<<<<<<<<<<<<< + * if (PetscInitializeCalled): return 1 + * if (PetscFinalizeCalled): return 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_AddTraceback("petsc4py.PETSc.initialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_sys); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":520 + * """ + * + * cdef int register() except -1: # <<<<<<<<<<<<<< + * global registercalled + * if registercalled: return 0 + */ + +static int __pyx_f_8petsc4py_5PETSc_register(void) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PetscErrorCode __pyx_t_2; + PetscErrorCode __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("register", 0); + + /* "petsc4py/PETSc/PETSc.pyx":522 + * cdef int register() except -1: + * global registercalled + * if registercalled: return 0 # <<<<<<<<<<<<<< + * registercalled = True + * # register citation + */ + __pyx_t_1 = (__pyx_v_8petsc4py_5PETSc_registercalled != 0); + if (__pyx_t_1) { + __pyx_r = 0; + goto __pyx_L0; + } + + /* "petsc4py/PETSc/PETSc.pyx":523 + * global registercalled + * if registercalled: return 0 + * registercalled = True # <<<<<<<<<<<<<< + * # register citation + * CHKERR( PetscCitationsRegister(citation, NULL) ) + */ + __pyx_v_8petsc4py_5PETSc_registercalled = 1; + + /* "petsc4py/PETSc/PETSc.pyx":525 + * registercalled = True + * # register citation + * CHKERR( PetscCitationsRegister(citation, NULL) ) # <<<<<<<<<<<<<< + * # make sure all PETSc packages are initialized + * CHKERR( PetscInitializePackageAll() ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscCitationsRegister(__pyx_v_8petsc4py_5PETSc_citation, NULL)); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 525, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":527 + * CHKERR( PetscCitationsRegister(citation, NULL) ) + * # make sure all PETSc packages are initialized + * CHKERR( PetscInitializePackageAll() ) # <<<<<<<<<<<<<< + * # register custom implementations + * CHKERR( PetscPythonRegisterAll() ) + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_CHKERR(PetscInitializePackageAll()); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 527, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":529 + * CHKERR( PetscInitializePackageAll() ) + * # register custom implementations + * CHKERR( PetscPythonRegisterAll() ) # <<<<<<<<<<<<<< + * # register Python types + * PyPetscType_Register(PETSC_OBJECT_CLASSID, Object) + */ + __pyx_t_2 = PetscPythonRegisterAll(); if (unlikely(__pyx_t_2 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 529, __pyx_L1_error) + __pyx_t_3 = __pyx_f_8petsc4py_5PETSc_CHKERR(__pyx_t_2); if (unlikely(__pyx_t_3 == ((PetscErrorCode)PETSC_ERR_PYTHON))) __PYX_ERR(12, 529, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":531 + * CHKERR( PetscPythonRegisterAll() ) + * # register Python types + * PyPetscType_Register(PETSC_OBJECT_CLASSID, Object) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_VIEWER_CLASSID, Viewer) + * PyPetscType_Register(PETSC_RANDOM_CLASSID, Random) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_OBJECT_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Object); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 531, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":532 + * # register Python types + * PyPetscType_Register(PETSC_OBJECT_CLASSID, Object) + * PyPetscType_Register(PETSC_VIEWER_CLASSID, Viewer) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_RANDOM_CLASSID, Random) + * PyPetscType_Register(PETSC_DEVICE_CLASSID, Device) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_VIEWER_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Viewer); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 532, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":533 + * PyPetscType_Register(PETSC_OBJECT_CLASSID, Object) + * PyPetscType_Register(PETSC_VIEWER_CLASSID, Viewer) + * PyPetscType_Register(PETSC_RANDOM_CLASSID, Random) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DEVICE_CLASSID, Device) + * PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, DeviceContext) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_RANDOM_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Random); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 533, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":534 + * PyPetscType_Register(PETSC_VIEWER_CLASSID, Viewer) + * PyPetscType_Register(PETSC_RANDOM_CLASSID, Random) + * PyPetscType_Register(PETSC_DEVICE_CLASSID, Device) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, DeviceContext) + * PyPetscType_Register(PETSC_IS_CLASSID, IS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_DEVICE_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Device); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 534, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":535 + * PyPetscType_Register(PETSC_RANDOM_CLASSID, Random) + * PyPetscType_Register(PETSC_DEVICE_CLASSID, Device) + * PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, DeviceContext) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_IS_CLASSID, IS) + * PyPetscType_Register(PETSC_LGMAP_CLASSID, LGMap) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, __pyx_ptype_8petsc4py_5PETSc_DeviceContext); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 535, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":536 + * PyPetscType_Register(PETSC_DEVICE_CLASSID, Device) + * PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, DeviceContext) + * PyPetscType_Register(PETSC_IS_CLASSID, IS) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_LGMAP_CLASSID, LGMap) + * PyPetscType_Register(PETSC_SF_CLASSID, SF) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(IS_CLASSID, __pyx_ptype_8petsc4py_5PETSc_IS); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 536, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":537 + * PyPetscType_Register(PETSC_DEVICE_CONTEXT_CLASSID, DeviceContext) + * PyPetscType_Register(PETSC_IS_CLASSID, IS) + * PyPetscType_Register(PETSC_LGMAP_CLASSID, LGMap) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_SF_CLASSID, SF) + * PyPetscType_Register(PETSC_VEC_CLASSID, Vec) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(IS_LTOGM_CLASSID, __pyx_ptype_8petsc4py_5PETSc_LGMap); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 537, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":538 + * PyPetscType_Register(PETSC_IS_CLASSID, IS) + * PyPetscType_Register(PETSC_LGMAP_CLASSID, LGMap) + * PyPetscType_Register(PETSC_SF_CLASSID, SF) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_VEC_CLASSID, Vec) + * PyPetscType_Register(PETSC_SECTION_CLASSID, Section) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCSF_CLASSID, __pyx_ptype_8petsc4py_5PETSc_SF); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 538, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":539 + * PyPetscType_Register(PETSC_LGMAP_CLASSID, LGMap) + * PyPetscType_Register(PETSC_SF_CLASSID, SF) + * PyPetscType_Register(PETSC_VEC_CLASSID, Vec) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_SECTION_CLASSID, Section) + * PyPetscType_Register(PETSC_MAT_CLASSID, Mat) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(VEC_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Vec); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 539, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":540 + * PyPetscType_Register(PETSC_SF_CLASSID, SF) + * PyPetscType_Register(PETSC_VEC_CLASSID, Vec) + * PyPetscType_Register(PETSC_SECTION_CLASSID, Section) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_MAT_CLASSID, Mat) + * PyPetscType_Register(PETSC_MAT_PARTITIONING_CLASSID, MatPartitioning) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSC_SECTION_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Section); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 540, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":541 + * PyPetscType_Register(PETSC_VEC_CLASSID, Vec) + * PyPetscType_Register(PETSC_SECTION_CLASSID, Section) + * PyPetscType_Register(PETSC_MAT_CLASSID, Mat) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_MAT_PARTITIONING_CLASSID, MatPartitioning) + * PyPetscType_Register(PETSC_NULLSPACE_CLASSID, NullSpace) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(MAT_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Mat); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 541, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":542 + * PyPetscType_Register(PETSC_SECTION_CLASSID, Section) + * PyPetscType_Register(PETSC_MAT_CLASSID, Mat) + * PyPetscType_Register(PETSC_MAT_PARTITIONING_CLASSID, MatPartitioning) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_NULLSPACE_CLASSID, NullSpace) + * PyPetscType_Register(PETSC_PC_CLASSID, PC) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(MAT_PARTITIONING_CLASSID, __pyx_ptype_8petsc4py_5PETSc_MatPartitioning); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 542, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":543 + * PyPetscType_Register(PETSC_MAT_CLASSID, Mat) + * PyPetscType_Register(PETSC_MAT_PARTITIONING_CLASSID, MatPartitioning) + * PyPetscType_Register(PETSC_NULLSPACE_CLASSID, NullSpace) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_PC_CLASSID, PC) + * PyPetscType_Register(PETSC_KSP_CLASSID, KSP) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(MAT_NULLSPACE_CLASSID, __pyx_ptype_8petsc4py_5PETSc_NullSpace); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 543, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":544 + * PyPetscType_Register(PETSC_MAT_PARTITIONING_CLASSID, MatPartitioning) + * PyPetscType_Register(PETSC_NULLSPACE_CLASSID, NullSpace) + * PyPetscType_Register(PETSC_PC_CLASSID, PC) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_KSP_CLASSID, KSP) + * PyPetscType_Register(PETSC_SNES_CLASSID, SNES) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PC_CLASSID, __pyx_ptype_8petsc4py_5PETSc_PC); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 544, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":545 + * PyPetscType_Register(PETSC_NULLSPACE_CLASSID, NullSpace) + * PyPetscType_Register(PETSC_PC_CLASSID, PC) + * PyPetscType_Register(PETSC_KSP_CLASSID, KSP) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_SNES_CLASSID, SNES) + * PyPetscType_Register(PETSC_TS_CLASSID, TS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(KSP_CLASSID, __pyx_ptype_8petsc4py_5PETSc_KSP); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 545, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":546 + * PyPetscType_Register(PETSC_PC_CLASSID, PC) + * PyPetscType_Register(PETSC_KSP_CLASSID, KSP) + * PyPetscType_Register(PETSC_SNES_CLASSID, SNES) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_TS_CLASSID, TS) + * PyPetscType_Register(PETSC_TAO_CLASSID, TAO) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(SNES_CLASSID, __pyx_ptype_8petsc4py_5PETSc_SNES); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 546, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":547 + * PyPetscType_Register(PETSC_KSP_CLASSID, KSP) + * PyPetscType_Register(PETSC_SNES_CLASSID, SNES) + * PyPetscType_Register(PETSC_TS_CLASSID, TS) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_TAO_CLASSID, TAO) + * PyPetscType_Register(PETSC_PARTITIONER_CLASSID, Partitioner) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(TS_CLASSID, __pyx_ptype_8petsc4py_5PETSc_TS); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 547, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":548 + * PyPetscType_Register(PETSC_SNES_CLASSID, SNES) + * PyPetscType_Register(PETSC_TS_CLASSID, TS) + * PyPetscType_Register(PETSC_TAO_CLASSID, TAO) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_PARTITIONER_CLASSID, Partitioner) + * PyPetscType_Register(PETSC_AO_CLASSID, AO) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(TAO_CLASSID, __pyx_ptype_8petsc4py_5PETSc_TAO); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 548, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":549 + * PyPetscType_Register(PETSC_TS_CLASSID, TS) + * PyPetscType_Register(PETSC_TAO_CLASSID, TAO) + * PyPetscType_Register(PETSC_PARTITIONER_CLASSID, Partitioner) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_AO_CLASSID, AO) + * PyPetscType_Register(PETSC_DM_CLASSID, DM) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCPARTITIONER_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Partitioner); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 549, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":550 + * PyPetscType_Register(PETSC_TAO_CLASSID, TAO) + * PyPetscType_Register(PETSC_PARTITIONER_CLASSID, Partitioner) + * PyPetscType_Register(PETSC_AO_CLASSID, AO) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DM_CLASSID, DM) + * PyPetscType_Register(PETSC_DS_CLASSID, DS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(AO_CLASSID, __pyx_ptype_8petsc4py_5PETSc_AO); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 550, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":551 + * PyPetscType_Register(PETSC_PARTITIONER_CLASSID, Partitioner) + * PyPetscType_Register(PETSC_AO_CLASSID, AO) + * PyPetscType_Register(PETSC_DM_CLASSID, DM) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DS_CLASSID, DS) + * PyPetscType_Register(PETSC_FE_CLASSID, FE) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(DM_CLASSID, __pyx_ptype_8petsc4py_5PETSc_DM); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 551, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":552 + * PyPetscType_Register(PETSC_AO_CLASSID, AO) + * PyPetscType_Register(PETSC_DM_CLASSID, DM) + * PyPetscType_Register(PETSC_DS_CLASSID, DS) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_FE_CLASSID, FE) + * PyPetscType_Register(PETSC_DMLABEL_CLASSID, DMLabel) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCDS_CLASSID, __pyx_ptype_8petsc4py_5PETSc_DS); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 552, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":553 + * PyPetscType_Register(PETSC_DM_CLASSID, DM) + * PyPetscType_Register(PETSC_DS_CLASSID, DS) + * PyPetscType_Register(PETSC_FE_CLASSID, FE) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DMLABEL_CLASSID, DMLabel) + * PyPetscType_Register(PETSC_SPACE_CLASSID, Space) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCFE_CLASSID, __pyx_ptype_8petsc4py_5PETSc_FE); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 553, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":554 + * PyPetscType_Register(PETSC_DS_CLASSID, DS) + * PyPetscType_Register(PETSC_FE_CLASSID, FE) + * PyPetscType_Register(PETSC_DMLABEL_CLASSID, DMLabel) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_SPACE_CLASSID, Space) + * PyPetscType_Register(PETSC_DUALSPACE_CLASSID, DualSpace) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(DMLABEL_CLASSID, __pyx_ptype_8petsc4py_5PETSc_DMLabel); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 554, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":555 + * PyPetscType_Register(PETSC_FE_CLASSID, FE) + * PyPetscType_Register(PETSC_DMLABEL_CLASSID, DMLabel) + * PyPetscType_Register(PETSC_SPACE_CLASSID, Space) # <<<<<<<<<<<<<< + * PyPetscType_Register(PETSC_DUALSPACE_CLASSID, DualSpace) + * return 0 # and we are done, enjoy !! + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCSPACE_CLASSID, __pyx_ptype_8petsc4py_5PETSc_Space); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 555, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":556 + * PyPetscType_Register(PETSC_DMLABEL_CLASSID, DMLabel) + * PyPetscType_Register(PETSC_SPACE_CLASSID, Space) + * PyPetscType_Register(PETSC_DUALSPACE_CLASSID, DualSpace) # <<<<<<<<<<<<<< + * return 0 # and we are done, enjoy !! + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_PyPetscType_Register(PETSCDUALSPACE_CLASSID, __pyx_ptype_8petsc4py_5PETSc_DualSpace); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(12, 556, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":557 + * PyPetscType_Register(PETSC_SPACE_CLASSID, Space) + * PyPetscType_Register(PETSC_DUALSPACE_CLASSID, DualSpace) + * return 0 # and we are done, enjoy !! # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":520 + * """ + * + * cdef int register() except -1: # <<<<<<<<<<<<<< + * global registercalled + * if registercalled: return 0 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc.register", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":561 + * # -------------------------------------------------------------------- + * + * def _initialize(args=None, comm=None): # <<<<<<<<<<<<<< + * import atexit + * global tracebacklist + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_5_initialize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_4_initialize[] = "_initialize(args=None, comm=None)"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_5_initialize = {"_initialize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5_initialize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4_initialize}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_5_initialize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_args = 0; + PyObject *__pyx_v_comm = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_initialize (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_args,&__pyx_n_s_comm,0}; + PyObject* values[2] = {0,0}; + values[0] = ((PyObject *)Py_None); + values[1] = ((PyObject *)Py_None); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args); + if (value) { values[0] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_comm); + if (value) { values[1] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_initialize") < 0)) __PYX_ERR(12, 561, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_args = values[0]; + __pyx_v_comm = values[1]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("_initialize", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(12, 561, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("petsc4py.PETSc._initialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_4_initialize(__pyx_self, __pyx_v_args, __pyx_v_comm); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_4_initialize(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_args, PyObject *__pyx_v_comm) { + PyObject *__pyx_v_atexit = NULL; + int __pyx_v_ready; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_initialize", 0); + + /* "petsc4py/PETSc/PETSc.pyx":562 + * + * def _initialize(args=None, comm=None): + * import atexit # <<<<<<<<<<<<<< + * global tracebacklist + * Error._traceback_ = tracebacklist + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_atexit, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 562, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_atexit = __pyx_t_1; + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":564 + * import atexit + * global tracebacklist + * Error._traceback_ = tracebacklist # <<<<<<<<<<<<<< + * global PetscError + * PetscError = Error + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 564, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_traceback, __pyx_v_8petsc4py_5PETSc_tracebacklist) < 0) __PYX_ERR(12, 564, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":566 + * Error._traceback_ = tracebacklist + * global PetscError + * PetscError = Error # <<<<<<<<<<<<<< + * # + * cdef int ready = initialize(args, comm) + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Error); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_PetscError); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_PetscError, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":568 + * PetscError = Error + * # + * cdef int ready = initialize(args, comm) # <<<<<<<<<<<<<< + * if ready: register() + * # + */ + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_initialize(__pyx_v_args, __pyx_v_comm); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 568, __pyx_L1_error) + __pyx_v_ready = __pyx_t_2; + + /* "petsc4py/PETSc/PETSc.pyx":569 + * # + * cdef int ready = initialize(args, comm) + * if ready: register() # <<<<<<<<<<<<<< + * # + * global __COMM_SELF__, __COMM_WORLD__ + */ + __pyx_t_3 = (__pyx_v_ready != 0); + if (__pyx_t_3) { + __pyx_t_2 = __pyx_f_8petsc4py_5PETSc_register(); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 569, __pyx_L1_error) + } + + /* "petsc4py/PETSc/PETSc.pyx":572 + * # + * global __COMM_SELF__, __COMM_WORLD__ + * __COMM_SELF__.comm = PETSC_COMM_SELF # <<<<<<<<<<<<<< + * __COMM_WORLD__.comm = PETSC_COMM_WORLD + * # + */ + __pyx_v_8petsc4py_5PETSc___COMM_SELF__->comm = PETSC_COMM_SELF; + + /* "petsc4py/PETSc/PETSc.pyx":573 + * global __COMM_SELF__, __COMM_WORLD__ + * __COMM_SELF__.comm = PETSC_COMM_SELF + * __COMM_WORLD__.comm = PETSC_COMM_WORLD # <<<<<<<<<<<<<< + * # + * global PETSC_COMM_DEFAULT + */ + __pyx_v_8petsc4py_5PETSc___COMM_WORLD__->comm = PETSC_COMM_WORLD; + + /* "petsc4py/PETSc/PETSc.pyx":576 + * # + * global PETSC_COMM_DEFAULT + * PETSC_COMM_DEFAULT = PETSC_COMM_WORLD # <<<<<<<<<<<<<< + * # Register finalizer + * atexit.register(_pre_finalize) + */ + __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT = PETSC_COMM_WORLD; + + /* "petsc4py/PETSc/PETSc.pyx":578 + * PETSC_COMM_DEFAULT = PETSC_COMM_WORLD + * # Register finalizer + * atexit.register(_pre_finalize) # <<<<<<<<<<<<<< + * + * def _pre_finalize(): + */ + __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_atexit, __pyx_n_s_register); if (unlikely(!__pyx_t_4)) __PYX_ERR(12, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pre_finalize); if (unlikely(!__pyx_t_5)) __PYX_ERR(12, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 578, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":561 + * # -------------------------------------------------------------------- + * + * def _initialize(args=None, comm=None): # <<<<<<<<<<<<<< + * import atexit + * global tracebacklist + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("petsc4py.PETSc._initialize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_atexit); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":580 + * atexit.register(_pre_finalize) + * + * def _pre_finalize(): # <<<<<<<<<<<<<< + * # Called while the Python interpreter is still running + * garbage_cleanup() + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_7_pre_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_6_pre_finalize[] = "_pre_finalize()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_7_pre_finalize = {"_pre_finalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7_pre_finalize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6_pre_finalize}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_7_pre_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_pre_finalize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("_pre_finalize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_pre_finalize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_6_pre_finalize(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_6_pre_finalize(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_pre_finalize", 0); + + /* "petsc4py/PETSc/PETSc.pyx":582 + * def _pre_finalize(): + * # Called while the Python interpreter is still running + * garbage_cleanup() # <<<<<<<<<<<<<< + * + * def _finalize(): + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_garbage_cleanup); if (unlikely(!__pyx_t_2)) __PYX_ERR(12, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { + __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); + if (likely(__pyx_t_3)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_2, function); + } + } + __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":580 + * atexit.register(_pre_finalize) + * + * def _pre_finalize(): # <<<<<<<<<<<<<< + * # Called while the Python interpreter is still running + * garbage_cleanup() + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("petsc4py.PETSc._pre_finalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":584 + * garbage_cleanup() + * + * def _finalize(): # <<<<<<<<<<<<<< + * finalize() + * # + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_9_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_8_finalize[] = "_finalize()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_9_finalize = {"_finalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9_finalize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8_finalize}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_9_finalize(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_finalize (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("_finalize", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_finalize", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_8_finalize(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_8_finalize(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_finalize", 0); + + /* "petsc4py/PETSc/PETSc.pyx":585 + * + * def _finalize(): + * finalize() # <<<<<<<<<<<<<< + * # + * global __COMM_SELF__ + */ + __pyx_f_8petsc4py_5PETSc_finalize(); + + /* "petsc4py/PETSc/PETSc.pyx":588 + * # + * global __COMM_SELF__ + * __COMM_SELF__.comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * global __COMM_WORLD__ + * __COMM_WORLD__.comm = MPI_COMM_NULL + */ + __pyx_v_8petsc4py_5PETSc___COMM_SELF__->comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/PETSc.pyx":590 + * __COMM_SELF__.comm = MPI_COMM_NULL + * global __COMM_WORLD__ + * __COMM_WORLD__.comm = MPI_COMM_NULL # <<<<<<<<<<<<<< + * # + * global PETSC_COMM_DEFAULT + */ + __pyx_v_8petsc4py_5PETSc___COMM_WORLD__->comm = MPI_COMM_NULL; + + /* "petsc4py/PETSc/PETSc.pyx":593 + * # + * global PETSC_COMM_DEFAULT + * PETSC_COMM_DEFAULT = MPI_COMM_NULL # <<<<<<<<<<<<<< + * # + * global type_registry + */ + __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT = MPI_COMM_NULL; + + /* "petsc4py/PETSc/PETSc.pyx":596 + * # + * global type_registry + * type_registry.clear() # <<<<<<<<<<<<<< + * global stage_registry + * stage_registry.clear() + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_type_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear"); + __PYX_ERR(12, 596, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_Clear(__pyx_v_8petsc4py_5PETSc_type_registry); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 596, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":598 + * type_registry.clear() + * global stage_registry + * stage_registry.clear() # <<<<<<<<<<<<<< + * global class_registry + * class_registry.clear() + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_stage_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear"); + __PYX_ERR(12, 598, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_Clear(__pyx_v_8petsc4py_5PETSc_stage_registry); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 598, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":600 + * stage_registry.clear() + * global class_registry + * class_registry.clear() # <<<<<<<<<<<<<< + * global event_registry + * event_registry.clear() + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_class_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear"); + __PYX_ERR(12, 600, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_Clear(__pyx_v_8petsc4py_5PETSc_class_registry); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 600, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":602 + * class_registry.clear() + * global event_registry + * event_registry.clear() # <<<<<<<<<<<<<< + * global citations_registry + * citations_registry.clear() + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_event_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear"); + __PYX_ERR(12, 602, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_Clear(__pyx_v_8petsc4py_5PETSc_event_registry); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 602, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":604 + * event_registry.clear() + * global citations_registry + * citations_registry.clear() # <<<<<<<<<<<<<< + * + * def _push_python_vfprintf(): + */ + if (unlikely(__pyx_v_8petsc4py_5PETSc_citations_registry == Py_None)) { + PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "clear"); + __PYX_ERR(12, 604, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_PyDict_Clear(__pyx_v_8petsc4py_5PETSc_citations_registry); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 604, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":584 + * garbage_cleanup() + * + * def _finalize(): # <<<<<<<<<<<<<< + * finalize() + * # + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._finalize", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":606 + * citations_registry.clear() + * + * def _push_python_vfprintf(): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_push_python_vfprintf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_10_push_python_vfprintf[] = "_push_python_vfprintf()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_11_push_python_vfprintf = {"_push_python_vfprintf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11_push_python_vfprintf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10_push_python_vfprintf}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_11_push_python_vfprintf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_push_python_vfprintf (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("_push_python_vfprintf", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_push_python_vfprintf", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_10_push_python_vfprintf(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_10_push_python_vfprintf(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_push_python_vfprintf", 0); + + /* "petsc4py/PETSc/PETSc.pyx":607 + * + * def _push_python_vfprintf(): + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) # <<<<<<<<<<<<<< + * + * def _pop_python_vfprintf(): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc__push_vfprintf((&__pyx_f_8petsc4py_5PETSc_PetscVFPrintf_PythonStdStream)); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 607, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":606 + * citations_registry.clear() + * + * def _push_python_vfprintf(): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._push_python_vfprintf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":609 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + * def _pop_python_vfprintf(): # <<<<<<<<<<<<<< + * _pop_vfprintf() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_13_pop_python_vfprintf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_12_pop_python_vfprintf[] = "_pop_python_vfprintf()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_13_pop_python_vfprintf = {"_pop_python_vfprintf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13_pop_python_vfprintf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_12_pop_python_vfprintf}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_13_pop_python_vfprintf(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_pop_python_vfprintf (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("_pop_python_vfprintf", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_pop_python_vfprintf", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_12_pop_python_vfprintf(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_12_pop_python_vfprintf(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_pop_python_vfprintf", 0); + + /* "petsc4py/PETSc/PETSc.pyx":610 + * + * def _pop_python_vfprintf(): + * _pop_vfprintf() # <<<<<<<<<<<<<< + * + * def _stdout_is_stderr(): + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc__pop_vfprintf(); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(12, 610, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":609 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + * def _pop_python_vfprintf(): # <<<<<<<<<<<<<< + * _pop_vfprintf() + * + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("petsc4py.PETSc._pop_python_vfprintf", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "petsc4py/PETSc/PETSc.pyx":612 + * _pop_vfprintf() + * + * def _stdout_is_stderr(): # <<<<<<<<<<<<<< + * global PETSC_STDOUT, PETSC_STDERR + * return PETSC_STDOUT == PETSC_STDERR + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_stdout_is_stderr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static char __pyx_doc_8petsc4py_5PETSc_14_stdout_is_stderr[] = "_stdout_is_stderr()"; +static PyMethodDef __pyx_mdef_8petsc4py_5PETSc_15_stdout_is_stderr = {"_stdout_is_stderr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15_stdout_is_stderr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_14_stdout_is_stderr}; +static PyObject *__pyx_pw_8petsc4py_5PETSc_15_stdout_is_stderr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("_stdout_is_stderr (wrapper)", 0); + if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { + __Pyx_RaiseArgtupleInvalid("_stdout_is_stderr", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return NULL;} + if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "_stdout_is_stderr", 0))) return NULL; + __pyx_r = __pyx_pf_8petsc4py_5PETSc_14_stdout_is_stderr(__pyx_self); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_8petsc4py_5PETSc_14_stdout_is_stderr(CYTHON_UNUSED PyObject *__pyx_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_stdout_is_stderr", 0); + + /* "petsc4py/PETSc/PETSc.pyx":614 + * def _stdout_is_stderr(): + * global PETSC_STDOUT, PETSC_STDERR + * return PETSC_STDOUT == PETSC_STDERR # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyBool_FromLong((PETSC_STDOUT == PETSC_STDERR)); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "petsc4py/PETSc/PETSc.pyx":612 + * _pop_vfprintf() + * + * def _stdout_is_stderr(): # <<<<<<<<<<<<<< + * global PETSC_STDOUT, PETSC_STDERR + * return PETSC_STDOUT == PETSC_STDERR + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("petsc4py.PETSc._stdout_is_stderr", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":123 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + +/* Python wrapper */ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_array___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_shape = 0; + Py_ssize_t __pyx_v_itemsize; + PyObject *__pyx_v_format = 0; + PyObject *__pyx_v_mode = 0; + int __pyx_v_allocate_buffer; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_shape,&__pyx_n_s_itemsize,&__pyx_n_s_format,&__pyx_n_s_mode,&__pyx_n_s_allocate_buffer,0}; + PyObject* values[5] = {0,0,0,0,0}; + values[3] = ((PyObject *)__pyx_n_s_c); + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_shape)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_itemsize)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 1); __PYX_ERR(66, 123, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_format)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, 2); __PYX_ERR(66, 123, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode); + if (value) { values[3] = value; kw_args--; } + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocate_buffer); + if (value) { values[4] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(66, 123, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_shape = ((PyObject*)values[0]); + __pyx_v_itemsize = __Pyx_PyIndex_AsSsize_t(values[1]); if (unlikely((__pyx_v_itemsize == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 123, __pyx_L3_error) + __pyx_v_format = values[2]; + __pyx_v_mode = values[3]; + if (values[4]) { + __pyx_v_allocate_buffer = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allocate_buffer == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 124, __pyx_L3_error) + } else { + + /* "View.MemoryView":124 + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, + * mode="c", bint allocate_buffer=True): # <<<<<<<<<<<<<< + * + * cdef int idx + */ + __pyx_v_allocate_buffer = ((int)1); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 3, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(66, 123, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_shape), (&PyTuple_Type), 1, "shape", 1))) __PYX_ERR(66, 123, __pyx_L1_error) + if (unlikely(((PyObject *)__pyx_v_format) == Py_None)) { + PyErr_Format(PyExc_TypeError, "Argument '%.200s' must not be None", "format"); __PYX_ERR(66, 123, __pyx_L1_error) + } + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(((struct __pyx_array_obj *)__pyx_v_self), __pyx_v_shape, __pyx_v_itemsize, __pyx_v_format, __pyx_v_mode, __pyx_v_allocate_buffer); + + /* "View.MemoryView":123 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array___cinit__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, PyObject *__pyx_v_format, PyObject *__pyx_v_mode, int __pyx_v_allocate_buffer) { + int __pyx_v_idx; + Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_dim; + PyObject **__pyx_v_p; + char __pyx_v_order; + int __pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + char *__pyx_t_7; + int __pyx_t_8; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + Py_ssize_t __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + __Pyx_INCREF(__pyx_v_format); + + /* "View.MemoryView":130 + * cdef PyObject **p + * + * self.ndim = len(shape) # <<<<<<<<<<<<<< + * self.itemsize = itemsize + * + */ + if (unlikely(__pyx_v_shape == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(66, 130, __pyx_L1_error) + } + __pyx_t_1 = PyTuple_GET_SIZE(__pyx_v_shape); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(66, 130, __pyx_L1_error) + __pyx_v_self->ndim = ((int)__pyx_t_1); + + /* "View.MemoryView":131 + * + * self.ndim = len(shape) + * self.itemsize = itemsize # <<<<<<<<<<<<<< + * + * if not self.ndim: + */ + __pyx_v_self->itemsize = __pyx_v_itemsize; + + /* "View.MemoryView":133 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + __pyx_t_2 = ((!(__pyx_v_self->ndim != 0)) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":134 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__60, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 134, __pyx_L1_error) + + /* "View.MemoryView":133 + * self.itemsize = itemsize + * + * if not self.ndim: # <<<<<<<<<<<<<< + * raise ValueError("Empty shape tuple for cython.array") + * + */ + } + + /* "View.MemoryView":136 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + __pyx_t_2 = ((__pyx_v_itemsize <= 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":137 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__61, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 137, __pyx_L1_error) + + /* "View.MemoryView":136 + * raise ValueError("Empty shape tuple for cython.array") + * + * if itemsize <= 0: # <<<<<<<<<<<<<< + * raise ValueError("itemsize <= 0 for cython.array") + * + */ + } + + /* "View.MemoryView":139 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + __pyx_t_2 = PyBytes_Check(__pyx_v_format); + __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":140 + * + * if not isinstance(format, bytes): + * format = format.encode('ASCII') # <<<<<<<<<<<<<< + * self._format = format # keep a reference to the byte string + * self.format = self._format + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_format, __pyx_n_s_encode); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + } + } + __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_n_s_ASCII) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_n_s_ASCII); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF_SET(__pyx_v_format, __pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":139 + * raise ValueError("itemsize <= 0 for cython.array") + * + * if not isinstance(format, bytes): # <<<<<<<<<<<<<< + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + */ + } + + /* "View.MemoryView":141 + * if not isinstance(format, bytes): + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string # <<<<<<<<<<<<<< + * self.format = self._format + * + */ + if (!(likely(PyBytes_CheckExact(__pyx_v_format))||((__pyx_v_format) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_v_format)->tp_name), 0))) __PYX_ERR(66, 141, __pyx_L1_error) + __pyx_t_3 = __pyx_v_format; + __Pyx_INCREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_3); + __Pyx_GOTREF(__pyx_v_self->_format); + __Pyx_DECREF(__pyx_v_self->_format); + __pyx_v_self->_format = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":142 + * format = format.encode('ASCII') + * self._format = format # keep a reference to the byte string + * self.format = self._format # <<<<<<<<<<<<<< + * + * + */ + if (unlikely(__pyx_v_self->_format == Py_None)) { + PyErr_SetString(PyExc_TypeError, "expected bytes, NoneType found"); + __PYX_ERR(66, 142, __pyx_L1_error) + } + __pyx_t_7 = __Pyx_PyBytes_AsWritableString(__pyx_v_self->_format); if (unlikely((!__pyx_t_7) && PyErr_Occurred())) __PYX_ERR(66, 142, __pyx_L1_error) + __pyx_v_self->format = __pyx_t_7; + + /* "View.MemoryView":145 + * + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) # <<<<<<<<<<<<<< + * self._strides = self._shape + self.ndim + * + */ + __pyx_v_self->_shape = ((Py_ssize_t *)PyObject_Malloc((((sizeof(Py_ssize_t)) * __pyx_v_self->ndim) * 2))); + + /* "View.MemoryView":146 + * + * self._shape = PyObject_Malloc(sizeof(Py_ssize_t)*self.ndim*2) + * self._strides = self._shape + self.ndim # <<<<<<<<<<<<<< + * + * if not self._shape: + */ + __pyx_v_self->_strides = (__pyx_v_self->_shape + __pyx_v_self->ndim); + + /* "View.MemoryView":148 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->_shape != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":149 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__62, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 149, __pyx_L1_error) + + /* "View.MemoryView":148 + * self._strides = self._shape + self.ndim + * + * if not self._shape: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate shape and strides.") + * + */ + } + + /* "View.MemoryView":152 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + __pyx_t_8 = 0; + __pyx_t_3 = __pyx_v_shape; __Pyx_INCREF(__pyx_t_3); __pyx_t_1 = 0; + for (;;) { + if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_1); __Pyx_INCREF(__pyx_t_5); __pyx_t_1++; if (unlikely(0 < 0)) __PYX_ERR(66, 152, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_9; + __pyx_v_idx = __pyx_t_8; + __pyx_t_8 = (__pyx_t_8 + 1); + + /* "View.MemoryView":153 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + __pyx_t_4 = ((__pyx_v_dim <= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":154 + * for idx, dim in enumerate(shape): + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) # <<<<<<<<<<<<<< + * self._shape[idx] = dim + * + */ + __pyx_t_5 = __Pyx_PyInt_From_int(__pyx_v_idx); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(66, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_6); + __pyx_t_5 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(66, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(66, 154, __pyx_L1_error) + + /* "View.MemoryView":153 + * + * for idx, dim in enumerate(shape): + * if dim <= 0: # <<<<<<<<<<<<<< + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim + */ + } + + /* "View.MemoryView":155 + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + * self._shape[idx] = dim # <<<<<<<<<<<<<< + * + * cdef char order + */ + (__pyx_v_self->_shape[__pyx_v_idx]) = __pyx_v_dim; + + /* "View.MemoryView":152 + * + * + * for idx, dim in enumerate(shape): # <<<<<<<<<<<<<< + * if dim <= 0: + * raise ValueError("Invalid shape in axis %d: %d." % (idx, dim)) + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":158 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_fortran, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(66, 158, __pyx_L1_error) + if (__pyx_t_4) { + + /* "View.MemoryView":159 + * cdef char order + * if mode == 'fortran': + * order = b'F' # <<<<<<<<<<<<<< + * self.mode = u'fortran' + * elif mode == 'c': + */ + __pyx_v_order = 'F'; + + /* "View.MemoryView":160 + * if mode == 'fortran': + * order = b'F' + * self.mode = u'fortran' # <<<<<<<<<<<<<< + * elif mode == 'c': + * order = b'C' + */ + __Pyx_INCREF(__pyx_n_u_fortran); + __Pyx_GIVEREF(__pyx_n_u_fortran); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_fortran; + + /* "View.MemoryView":158 + * + * cdef char order + * if mode == 'fortran': # <<<<<<<<<<<<<< + * order = b'F' + * self.mode = u'fortran' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":161 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + __pyx_t_4 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_c, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(66, 161, __pyx_L1_error) + if (likely(__pyx_t_4)) { + + /* "View.MemoryView":162 + * self.mode = u'fortran' + * elif mode == 'c': + * order = b'C' # <<<<<<<<<<<<<< + * self.mode = u'c' + * else: + */ + __pyx_v_order = 'C'; + + /* "View.MemoryView":163 + * elif mode == 'c': + * order = b'C' + * self.mode = u'c' # <<<<<<<<<<<<<< + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + */ + __Pyx_INCREF(__pyx_n_u_c); + __Pyx_GIVEREF(__pyx_n_u_c); + __Pyx_GOTREF(__pyx_v_self->mode); + __Pyx_DECREF(__pyx_v_self->mode); + __pyx_v_self->mode = __pyx_n_u_c; + + /* "View.MemoryView":161 + * order = b'F' + * self.mode = u'fortran' + * elif mode == 'c': # <<<<<<<<<<<<<< + * order = b'C' + * self.mode = u'c' + */ + goto __pyx_L10; + } + + /* "View.MemoryView":165 + * self.mode = u'c' + * else: + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) # <<<<<<<<<<<<<< + * + * self.len = fill_contig_strides_array(self._shape, self._strides, + */ + /*else*/ { + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_v_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(66, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(66, 165, __pyx_L1_error) + } + __pyx_L10:; + + /* "View.MemoryView":167 + * raise ValueError("Invalid mode, expected 'c' or 'fortran', got %s" % mode) + * + * self.len = fill_contig_strides_array(self._shape, self._strides, # <<<<<<<<<<<<<< + * itemsize, self.ndim, order) + * + */ + __pyx_v_self->len = __pyx_fill_contig_strides_array(__pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_itemsize, __pyx_v_self->ndim, __pyx_v_order); + + /* "View.MemoryView":170 + * itemsize, self.ndim, order) + * + * self.free_data = allocate_buffer # <<<<<<<<<<<<<< + * self.dtype_is_object = format == b'O' + * if allocate_buffer: + */ + __pyx_v_self->free_data = __pyx_v_allocate_buffer; + + /* "View.MemoryView":171 + * + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' # <<<<<<<<<<<<<< + * if allocate_buffer: + * + */ + __pyx_t_10 = PyObject_RichCompare(__pyx_v_format, __pyx_n_b_O, Py_EQ); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(66, 171, __pyx_L1_error) + __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __pyx_v_self->dtype_is_object = __pyx_t_4; + + /* "View.MemoryView":172 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_4 = (__pyx_v_allocate_buffer != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":175 + * + * + * self.data = malloc(self.len) # <<<<<<<<<<<<<< + * if not self.data: + * raise MemoryError("unable to allocate array data.") + */ + __pyx_v_self->data = ((char *)malloc(__pyx_v_self->len)); + + /* "View.MemoryView":176 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + __pyx_t_4 = ((!(__pyx_v_self->data != 0)) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":177 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_MemoryError, __pyx_tuple__63, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(66, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_10); + __Pyx_Raise(__pyx_t_10, 0, 0, 0); + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + __PYX_ERR(66, 177, __pyx_L1_error) + + /* "View.MemoryView":176 + * + * self.data = malloc(self.len) + * if not self.data: # <<<<<<<<<<<<<< + * raise MemoryError("unable to allocate array data.") + * + */ + } + + /* "View.MemoryView":179 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + __pyx_t_4 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":180 + * + * if self.dtype_is_object: + * p = self.data # <<<<<<<<<<<<<< + * for i in range(self.len / itemsize): + * p[i] = Py_None + */ + __pyx_v_p = ((PyObject **)__pyx_v_self->data); + + /* "View.MemoryView":181 + * if self.dtype_is_object: + * p = self.data + * for i in range(self.len / itemsize): # <<<<<<<<<<<<<< + * p[i] = Py_None + * Py_INCREF(Py_None) + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(66, 181, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_self->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(66, 181, __pyx_L1_error) + } + __pyx_t_1 = (__pyx_v_self->len / __pyx_v_itemsize); + __pyx_t_9 = __pyx_t_1; + for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_9; __pyx_t_11+=1) { + __pyx_v_i = __pyx_t_11; + + /* "View.MemoryView":182 + * p = self.data + * for i in range(self.len / itemsize): + * p[i] = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + (__pyx_v_p[__pyx_v_i]) = Py_None; + + /* "View.MemoryView":183 + * for i in range(self.len / itemsize): + * p[i] = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + Py_INCREF(Py_None); + } + + /* "View.MemoryView":179 + * raise MemoryError("unable to allocate array data.") + * + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * p = self.data + * for i in range(self.len / itemsize): + */ + } + + /* "View.MemoryView":172 + * self.free_data = allocate_buffer + * self.dtype_is_object = format == b'O' + * if allocate_buffer: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":123 + * cdef bint dtype_is_object + * + * def __cinit__(array self, tuple shape, Py_ssize_t itemsize, format not None, # <<<<<<<<<<<<<< + * mode="c", bint allocate_buffer=True): + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.array.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_format); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":186 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_array_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(((struct __pyx_array_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_2__getbuffer__(struct __pyx_array_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_v_bufmode; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + char *__pyx_t_4; + Py_ssize_t __pyx_t_5; + int __pyx_t_6; + Py_ssize_t *__pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":187 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 # <<<<<<<<<<<<<< + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = -1; + + /* "View.MemoryView":188 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_c, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 188, __pyx_L1_error) + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":189 + * cdef int bufmode = -1 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + */ + __pyx_v_bufmode = (PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":188 + * def __getbuffer__(self, Py_buffer *info, int flags): + * cdef int bufmode = -1 + * if self.mode == u"c": # <<<<<<<<<<<<<< + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + */ + goto __pyx_L3; + } + + /* "View.MemoryView":190 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_self->mode, __pyx_n_u_fortran, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(66, 190, __pyx_L1_error) + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":191 + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS # <<<<<<<<<<<<<< + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + */ + __pyx_v_bufmode = (PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS); + + /* "View.MemoryView":190 + * if self.mode == u"c": + * bufmode = PyBUF_C_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * elif self.mode == u"fortran": # <<<<<<<<<<<<<< + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + */ + } + __pyx_L3:; + + /* "View.MemoryView":192 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + __pyx_t_1 = ((!((__pyx_v_flags & __pyx_v_bufmode) != 0)) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":193 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__64, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 193, __pyx_L1_error) + + /* "View.MemoryView":192 + * elif self.mode == u"fortran": + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): # <<<<<<<<<<<<<< + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + */ + } + + /* "View.MemoryView":194 + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data # <<<<<<<<<<<<<< + * info.len = self.len + * info.ndim = self.ndim + */ + __pyx_t_4 = __pyx_v_self->data; + __pyx_v_info->buf = __pyx_t_4; + + /* "View.MemoryView":195 + * raise ValueError("Can only create a buffer that is contiguous in memory.") + * info.buf = self.data + * info.len = self.len # <<<<<<<<<<<<<< + * info.ndim = self.ndim + * info.shape = self._shape + */ + __pyx_t_5 = __pyx_v_self->len; + __pyx_v_info->len = __pyx_t_5; + + /* "View.MemoryView":196 + * info.buf = self.data + * info.len = self.len + * info.ndim = self.ndim # <<<<<<<<<<<<<< + * info.shape = self._shape + * info.strides = self._strides + */ + __pyx_t_6 = __pyx_v_self->ndim; + __pyx_v_info->ndim = __pyx_t_6; + + /* "View.MemoryView":197 + * info.len = self.len + * info.ndim = self.ndim + * info.shape = self._shape # <<<<<<<<<<<<<< + * info.strides = self._strides + * info.suboffsets = NULL + */ + __pyx_t_7 = __pyx_v_self->_shape; + __pyx_v_info->shape = __pyx_t_7; + + /* "View.MemoryView":198 + * info.ndim = self.ndim + * info.shape = self._shape + * info.strides = self._strides # <<<<<<<<<<<<<< + * info.suboffsets = NULL + * info.itemsize = self.itemsize + */ + __pyx_t_7 = __pyx_v_self->_strides; + __pyx_v_info->strides = __pyx_t_7; + + /* "View.MemoryView":199 + * info.shape = self._shape + * info.strides = self._strides + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * info.itemsize = self.itemsize + * info.readonly = 0 + */ + __pyx_v_info->suboffsets = NULL; + + /* "View.MemoryView":200 + * info.strides = self._strides + * info.suboffsets = NULL + * info.itemsize = self.itemsize # <<<<<<<<<<<<<< + * info.readonly = 0 + * + */ + __pyx_t_5 = __pyx_v_self->itemsize; + __pyx_v_info->itemsize = __pyx_t_5; + + /* "View.MemoryView":201 + * info.suboffsets = NULL + * info.itemsize = self.itemsize + * info.readonly = 0 # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + __pyx_v_info->readonly = 0; + + /* "View.MemoryView":203 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":204 + * + * if flags & PyBUF_FORMAT: + * info.format = self.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_4 = __pyx_v_self->format; + __pyx_v_info->format = __pyx_t_4; + + /* "View.MemoryView":203 + * info.readonly = 0 + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.format + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":206 + * info.format = self.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.obj = self + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L5:; + + /* "View.MemoryView":208 + * info.format = NULL + * + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":186 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * cdef int bufmode = -1 + * if self.mode == u"c": + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":212 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + +/* Python wrapper */ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_array___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_array___pyx_pf_15View_dot_MemoryView_5array_4__dealloc__(struct __pyx_array_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":213 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + __pyx_t_1 = ((__pyx_v_self->callback_free_data != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":214 + * def __dealloc__(array self): + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) # <<<<<<<<<<<<<< + * elif self.free_data: + * if self.dtype_is_object: + */ + __pyx_v_self->callback_free_data(__pyx_v_self->data); + + /* "View.MemoryView":213 + * + * def __dealloc__(array self): + * if self.callback_free_data != NULL: # <<<<<<<<<<<<<< + * self.callback_free_data(self.data) + * elif self.free_data: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":215 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + __pyx_t_1 = (__pyx_v_self->free_data != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":216 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + __pyx_t_1 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":217 + * elif self.free_data: + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, # <<<<<<<<<<<<<< + * self._strides, self.ndim, False) + * free(self.data) + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_self->data, __pyx_v_self->_shape, __pyx_v_self->_strides, __pyx_v_self->ndim, 0); + + /* "View.MemoryView":216 + * self.callback_free_data(self.data) + * elif self.free_data: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + */ + } + + /* "View.MemoryView":219 + * refcount_objects_in_slice(self.data, self._shape, + * self._strides, self.ndim, False) + * free(self.data) # <<<<<<<<<<<<<< + * PyObject_Free(self._shape) + * + */ + free(__pyx_v_self->data); + + /* "View.MemoryView":215 + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + * elif self.free_data: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * refcount_objects_in_slice(self.data, self._shape, + */ + } + __pyx_L3:; + + /* "View.MemoryView":220 + * self._strides, self.ndim, False) + * free(self.data) + * PyObject_Free(self._shape) # <<<<<<<<<<<<<< + * + * @property + */ + PyObject_Free(__pyx_v_self->_shape); + + /* "View.MemoryView":212 + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") + * + * def __dealloc__(array self): # <<<<<<<<<<<<<< + * if self.callback_free_data != NULL: + * self.callback_free_data(self.data) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":223 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_5array_7memview___get__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_5array_7memview___get__(struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":224 + * @property + * def memview(self): + * return self.get_memview() # <<<<<<<<<<<<<< + * + * @cname('get_memview') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = ((struct __pyx_vtabstruct_array *)__pyx_v_self->__pyx_vtab)->get_memview(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":223 + * + * @property + * def memview(self): # <<<<<<<<<<<<<< + * return self.get_memview() + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.memview.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":227 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + +static PyObject *__pyx_array_get_memview(struct __pyx_array_obj *__pyx_v_self) { + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_memview", 0); + + /* "View.MemoryView":228 + * @cname('get_memview') + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE # <<<<<<<<<<<<<< + * return memoryview(self, flags, self.dtype_is_object) + * + */ + __pyx_v_flags = ((PyBUF_ANY_CONTIGUOUS | PyBUF_FORMAT) | PyBUF_WRITABLE); + + /* "View.MemoryView":229 + * cdef get_memview(self): + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":227 + * + * @cname('get_memview') + * cdef get_memview(self): # <<<<<<<<<<<<<< + * flags = PyBUF_ANY_CONTIGUOUS|PyBUF_FORMAT|PyBUF_WRITABLE + * return memoryview(self, flags, self.dtype_is_object) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.array.get_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":231 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_array___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_array___pyx_pf_15View_dot_MemoryView_5array_6__len__(struct __pyx_array_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":232 + * + * def __len__(self): + * return self._shape[0] # <<<<<<<<<<<<<< + * + * def __getattr__(self, attr): + */ + __pyx_r = (__pyx_v_self->_shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":231 + * return memoryview(self, flags, self.dtype_is_object) + * + * def __len__(self): # <<<<<<<<<<<<<< + * return self._shape[0] + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":234 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr); /*proto*/ +static PyObject *__pyx_array___getattr__(PyObject *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getattr__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_attr)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_8__getattr__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_attr) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getattr__", 0); + + /* "View.MemoryView":235 + * + * def __getattr__(self, attr): + * return getattr(self.memview, attr) # <<<<<<<<<<<<<< + * + * def __getitem__(self, item): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_GetAttr(__pyx_t_1, __pyx_v_attr); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":234 + * return self._shape[0] + * + * def __getattr__(self, attr): # <<<<<<<<<<<<<< + * return getattr(self.memview, attr) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":237 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + +/* Python wrapper */ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item); /*proto*/ +static PyObject *__pyx_array___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_array___pyx_pf_15View_dot_MemoryView_5array_10__getitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":238 + * + * def __getitem__(self, item): + * return self.memview[item] # <<<<<<<<<<<<<< + * + * def __setitem__(self, item, value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_item); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":237 + * return getattr(self.memview, attr) + * + * def __getitem__(self, item): # <<<<<<<<<<<<<< + * return self.memview[item] + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.array.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":240 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + +/* Python wrapper */ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_array___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v_item), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_array___pyx_pf_15View_dot_MemoryView_5array_12__setitem__(struct __pyx_array_obj *__pyx_v_self, PyObject *__pyx_v_item, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + + /* "View.MemoryView":241 + * + * def __setitem__(self, item, value): + * self.memview[item] = value # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_memview); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_item, __pyx_v_value) < 0)) __PYX_ERR(66, 241, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "View.MemoryView":240 + * return self.memview[item] + * + * def __setitem__(self, item, value): # <<<<<<<<<<<<<< + * self.memview[item] = value + * + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_array_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array___reduce_cython__(((struct __pyx_array_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array___reduce_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__65, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_array_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_array_2__setstate_cython__(((struct __pyx_array_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_array_2__setstate_cython__(CYTHON_UNUSED struct __pyx_array_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__66, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.array.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":245 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + +static struct __pyx_array_obj *__pyx_array_new(PyObject *__pyx_v_shape, Py_ssize_t __pyx_v_itemsize, char *__pyx_v_format, char *__pyx_v_mode, char *__pyx_v_buf) { + struct __pyx_array_obj *__pyx_v_result = 0; + struct __pyx_array_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("array_cwrapper", 0); + + /* "View.MemoryView":249 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + __pyx_t_1 = ((__pyx_v_buf == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":250 + * + * if buf == NULL: + * result = array(shape, itemsize, format, mode.decode('ASCII')) # <<<<<<<<<<<<<< + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 250, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":249 + * cdef array result + * + * if buf == NULL: # <<<<<<<<<<<<<< + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":252 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + /*else*/ { + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_itemsize); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_format); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_mode, 0, strlen(__pyx_v_mode), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_v_shape); + __Pyx_GIVEREF(__pyx_v_shape); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_shape); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_3); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":253 + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) # <<<<<<<<<<<<<< + * result.data = buf + * + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_allocate_buffer, Py_False) < 0) __PYX_ERR(66, 253, __pyx_L1_error) + + /* "View.MemoryView":252 + * result = array(shape, itemsize, format, mode.decode('ASCII')) + * else: + * result = array(shape, itemsize, format, mode.decode('ASCII'), # <<<<<<<<<<<<<< + * allocate_buffer=False) + * result.data = buf + */ + __pyx_t_5 = __Pyx_PyObject_Call(((PyObject *)__pyx_array_type), __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_array_obj *)__pyx_t_5); + __pyx_t_5 = 0; + + /* "View.MemoryView":254 + * result = array(shape, itemsize, format, mode.decode('ASCII'), + * allocate_buffer=False) + * result.data = buf # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->data = __pyx_v_buf; + } + __pyx_L3:; + + /* "View.MemoryView":256 + * result.data = buf + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":245 + * + * @cname("__pyx_array_new") + * cdef array array_cwrapper(tuple shape, Py_ssize_t itemsize, char *format, # <<<<<<<<<<<<<< + * char *mode, char *buf): + * cdef array result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.array_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":282 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + +/* Python wrapper */ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_MemviewEnum___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_name = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,0}; + PyObject* values[1] = {0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(66, 282, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + } + __pyx_v_name = values[0]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(66, 282, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.Enum.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), __pyx_v_name); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum___init__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v_name) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__init__", 0); + + /* "View.MemoryView":283 + * cdef object name + * def __init__(self, name): + * self.name = name # <<<<<<<<<<<<<< + * def __repr__(self): + * return self.name + */ + __Pyx_INCREF(__pyx_v_name); + __Pyx_GIVEREF(__pyx_v_name); + __Pyx_GOTREF(__pyx_v_self->name); + __Pyx_DECREF(__pyx_v_self->name); + __pyx_v_self->name = __pyx_v_name; + + /* "View.MemoryView":282 + * cdef class Enum(object): + * cdef object name + * def __init__(self, name): # <<<<<<<<<<<<<< + * self.name = name + * def __repr__(self): + */ + + /* function exit code */ + __pyx_r = 0; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":284 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + +/* Python wrapper */ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_MemviewEnum___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_MemviewEnum___pyx_pf_15View_dot_MemoryView_4Enum_2__repr__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":285 + * self.name = name + * def __repr__(self): + * return self.name # <<<<<<<<<<<<<< + * + * cdef generic = Enum("") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->name); + __pyx_r = __pyx_v_self->name; + goto __pyx_L0; + + /* "View.MemoryView":284 + * def __init__(self, name): + * self.name = name + * def __repr__(self): # <<<<<<<<<<<<<< + * return self.name + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum___reduce_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum___reduce_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self) { + PyObject *__pyx_v_state = 0; + PyObject *__pyx_v__dict = 0; + int __pyx_v_use_setstate; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":5 + * cdef object _dict + * cdef bint use_setstate + * state = (self.name,) # <<<<<<<<<<<<<< + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v_self->name); + __Pyx_GIVEREF(__pyx_v_self->name); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->name); + __pyx_v_state = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "(tree fragment)":6 + * cdef bint use_setstate + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) # <<<<<<<<<<<<<< + * if _dict is not None: + * state += (_dict,) + */ + __pyx_t_1 = __Pyx_GetAttr3(((PyObject *)__pyx_v_self), __pyx_n_s_dict, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v__dict = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":7 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + __pyx_t_2 = (__pyx_v__dict != Py_None); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":8 + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: + * state += (_dict,) # <<<<<<<<<<<<<< + * use_setstate = True + * else: + */ + __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_v__dict); + __Pyx_GIVEREF(__pyx_v__dict); + PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__dict); + __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_state, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF_SET(__pyx_v_state, ((PyObject*)__pyx_t_4)); + __pyx_t_4 = 0; + + /* "(tree fragment)":9 + * if _dict is not None: + * state += (_dict,) + * use_setstate = True # <<<<<<<<<<<<<< + * else: + * use_setstate = self.name is not None + */ + __pyx_v_use_setstate = 1; + + /* "(tree fragment)":7 + * state = (self.name,) + * _dict = getattr(self, '__dict__', None) + * if _dict is not None: # <<<<<<<<<<<<<< + * state += (_dict,) + * use_setstate = True + */ + goto __pyx_L3; + } + + /* "(tree fragment)":11 + * use_setstate = True + * else: + * use_setstate = self.name is not None # <<<<<<<<<<<<<< + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_self->name != Py_None); + __pyx_v_use_setstate = __pyx_t_3; + } + __pyx_L3:; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + __pyx_t_3 = (__pyx_v_use_setstate != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":13 + * use_setstate = self.name is not None + * if use_setstate: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state # <<<<<<<<<<<<<< + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_1, 2, Py_None); + __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_state); + __pyx_t_4 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "(tree fragment)":12 + * else: + * use_setstate = self.name is not None + * if use_setstate: # <<<<<<<<<<<<<< + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + */ + } + + /* "(tree fragment)":15 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, None), state + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_GIVEREF(((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self)))); + __Pyx_INCREF(__pyx_int_184977713); + __Pyx_GIVEREF(__pyx_int_184977713); + PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_int_184977713); + __Pyx_INCREF(__pyx_v_state); + __Pyx_GIVEREF(__pyx_v_state); + PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_state); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_1); + __pyx_t_5 = 0; + __pyx_t_1 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + } + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * cdef tuple state + * cdef object _dict + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.Enum.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_state); + __Pyx_XDECREF(__pyx_v__dict); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_MemviewEnum_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_MemviewEnum_2__setstate_cython__(((struct __pyx_MemviewEnum_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_MemviewEnum_2__setstate_cython__(struct __pyx_MemviewEnum_obj *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":17 + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): + * __pyx_unpickle_Enum__set_state(self, __pyx_state) # <<<<<<<<<<<<<< + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(66, 17, __pyx_L1_error) + __pyx_t_1 = __pyx_unpickle_Enum__set_state(__pyx_v_self, ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":16 + * else: + * return __pyx_unpickle_Enum, (type(self), 0xb068931, state) + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state(self, __pyx_state) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.Enum.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":299 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + +static void *__pyx_align_pointer(void *__pyx_v_memory, size_t __pyx_v_alignment) { + Py_intptr_t __pyx_v_aligned_p; + size_t __pyx_v_offset; + void *__pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":301 + * cdef void *align_pointer(void *memory, size_t alignment) nogil: + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory # <<<<<<<<<<<<<< + * cdef size_t offset + * + */ + __pyx_v_aligned_p = ((Py_intptr_t)__pyx_v_memory); + + /* "View.MemoryView":305 + * + * with cython.cdivision(True): + * offset = aligned_p % alignment # <<<<<<<<<<<<<< + * + * if offset > 0: + */ + __pyx_v_offset = (__pyx_v_aligned_p % __pyx_v_alignment); + + /* "View.MemoryView":307 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + __pyx_t_1 = ((__pyx_v_offset > 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":308 + * + * if offset > 0: + * aligned_p += alignment - offset # <<<<<<<<<<<<<< + * + * return aligned_p + */ + __pyx_v_aligned_p = (__pyx_v_aligned_p + (__pyx_v_alignment - __pyx_v_offset)); + + /* "View.MemoryView":307 + * offset = aligned_p % alignment + * + * if offset > 0: # <<<<<<<<<<<<<< + * aligned_p += alignment - offset + * + */ + } + + /* "View.MemoryView":310 + * aligned_p += alignment - offset + * + * return aligned_p # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = ((void *)__pyx_v_aligned_p); + goto __pyx_L0; + + /* "View.MemoryView":299 + * + * @cname('__pyx_align_pointer') + * cdef void *align_pointer(void *memory, size_t alignment) nogil: # <<<<<<<<<<<<<< + * "Align pointer memory on a given boundary" + * cdef Py_intptr_t aligned_p = memory + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":346 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + +/* Python wrapper */ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static int __pyx_memoryview___cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v_obj = 0; + int __pyx_v_flags; + int __pyx_v_dtype_is_object; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_obj,&__pyx_n_s_flags,&__pyx_n_s_dtype_is_object,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_obj)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flags)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, 1); __PYX_ERR(66, 346, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dtype_is_object); + if (value) { values[2] = value; kw_args--; } + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) __PYX_ERR(66, 346, __pyx_L3_error) + } + } else { + switch (PyTuple_GET_SIZE(__pyx_args)) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_obj = values[0]; + __pyx_v_flags = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_flags == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 346, __pyx_L3_error) + if (values[2]) { + __pyx_v_dtype_is_object = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_dtype_is_object == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 346, __pyx_L3_error) + } else { + __pyx_v_dtype_is_object = ((int)0); + } + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(66, 346, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return -1; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_obj, __pyx_v_flags, __pyx_v_dtype_is_object); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview___cinit__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj, int __pyx_v_flags, int __pyx_v_dtype_is_object) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__cinit__", 0); + + /* "View.MemoryView":347 + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj # <<<<<<<<<<<<<< + * self.flags = flags + * if type(self) is memoryview or obj is not None: + */ + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + __Pyx_GOTREF(__pyx_v_self->obj); + __Pyx_DECREF(__pyx_v_self->obj); + __pyx_v_self->obj = __pyx_v_obj; + + /* "View.MemoryView":348 + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): + * self.obj = obj + * self.flags = flags # <<<<<<<<<<<<<< + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + */ + __pyx_v_self->flags = __pyx_v_flags; + + /* "View.MemoryView":349 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + __pyx_t_2 = (((PyObject *)Py_TYPE(((PyObject *)__pyx_v_self))) == ((PyObject *)__pyx_memoryview_type)); + __pyx_t_3 = (__pyx_t_2 != 0); + if (!__pyx_t_3) { + } else { + __pyx_t_1 = __pyx_t_3; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_3 = (__pyx_v_obj != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (__pyx_t_1) { + + /* "View.MemoryView":350 + * self.flags = flags + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) # <<<<<<<<<<<<<< + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + */ + __pyx_t_4 = __Pyx_GetBuffer(__pyx_v_obj, (&__pyx_v_self->view), __pyx_v_flags); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(66, 350, __pyx_L1_error) + + /* "View.MemoryView":351 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_self->view.obj) == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":352 + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_self->view))->obj = Py_None; + + /* "View.MemoryView":353 + * if self.view.obj == NULL: + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * if not __PYX_CYTHON_ATOMICS_ENABLED(): + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":351 + * if type(self) is memoryview or obj is not None: + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &self.view).obj = Py_None + * Py_INCREF(Py_None) + */ + } + + /* "View.MemoryView":349 + * self.obj = obj + * self.flags = flags + * if type(self) is memoryview or obj is not None: # <<<<<<<<<<<<<< + * __Pyx_GetBuffer(obj, &self.view, flags) + * if self.view.obj == NULL: + */ + } + + /* "View.MemoryView":355 + * Py_INCREF(Py_None) + * + * if not __PYX_CYTHON_ATOMICS_ENABLED(): # <<<<<<<<<<<<<< + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + */ + __pyx_t_1 = ((!(__PYX_CYTHON_ATOMICS_ENABLED() != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":357 + * if not __PYX_CYTHON_ATOMICS_ENABLED(): + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + __pyx_t_1 = ((__pyx_memoryview_thread_locks_used < 8) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":358 + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + */ + __pyx_v_self->lock = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + + /* "View.MemoryView":359 + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 # <<<<<<<<<<<<<< + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used + 1); + + /* "View.MemoryView":357 + * if not __PYX_CYTHON_ATOMICS_ENABLED(): + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: # <<<<<<<<<<<<<< + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + */ + } + + /* "View.MemoryView":360 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":361 + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() # <<<<<<<<<<<<<< + * if self.lock is NULL: + * raise MemoryError + */ + __pyx_v_self->lock = PyThread_allocate_lock(); + + /* "View.MemoryView":362 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + __pyx_t_1 = ((__pyx_v_self->lock == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":363 + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + PyErr_NoMemory(); __PYX_ERR(66, 363, __pyx_L1_error) + + /* "View.MemoryView":362 + * if self.lock is NULL: + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * + */ + } + + /* "View.MemoryView":360 + * self.lock = __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] + * __pyx_memoryview_thread_locks_used += 1 + * if self.lock is NULL: # <<<<<<<<<<<<<< + * self.lock = PyThread_allocate_lock() + * if self.lock is NULL: + */ + } + + /* "View.MemoryView":355 + * Py_INCREF(Py_None) + * + * if not __PYX_CYTHON_ATOMICS_ENABLED(): # <<<<<<<<<<<<<< + * global __pyx_memoryview_thread_locks_used + * if __pyx_memoryview_thread_locks_used < THREAD_LOCKS_PREALLOCATED: + */ + } + + /* "View.MemoryView":365 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":366 + * + * if flags & PyBUF_FORMAT: + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') # <<<<<<<<<<<<<< + * else: + * self.dtype_is_object = dtype_is_object + */ + __pyx_t_2 = (((__pyx_v_self->view.format[0]) == 'O') != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L12_bool_binop_done; + } + __pyx_t_2 = (((__pyx_v_self->view.format[1]) == '\x00') != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L12_bool_binop_done:; + __pyx_v_self->dtype_is_object = __pyx_t_1; + + /* "View.MemoryView":365 + * raise MemoryError + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + */ + goto __pyx_L11; + } + + /* "View.MemoryView":368 + * self.dtype_is_object = (self.view.format[0] == b'O' and self.view.format[1] == b'\0') + * else: + * self.dtype_is_object = dtype_is_object # <<<<<<<<<<<<<< + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + */ + /*else*/ { + __pyx_v_self->dtype_is_object = __pyx_v_dtype_is_object; + } + __pyx_L11:; + + /* "View.MemoryView":370 + * self.dtype_is_object = dtype_is_object + * + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( # <<<<<<<<<<<<<< + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL + */ + __pyx_v_self->acquisition_count_aligned_p = ((__pyx_atomic_int *)__pyx_align_pointer(((void *)(&(__pyx_v_self->acquisition_count[0]))), (sizeof(__pyx_atomic_int)))); + + /* "View.MemoryView":372 + * self.acquisition_count_aligned_p = <__pyx_atomic_int *> align_pointer( + * &self.acquisition_count[0], sizeof(__pyx_atomic_int)) + * self.typeinfo = NULL # <<<<<<<<<<<<<< + * + * def __dealloc__(memoryview self): + */ + __pyx_v_self->typeinfo = NULL; + + /* "View.MemoryView":346 + * cdef __Pyx_TypeInfo *typeinfo + * + * def __cinit__(memoryview self, object obj, int flags, bint dtype_is_object=False): # <<<<<<<<<<<<<< + * self.obj = obj + * self.flags = flags + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_AddTraceback("View.MemoryView.memoryview.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":374 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + +/* Python wrapper */ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryview___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_2__dealloc__(struct __pyx_memoryview_obj *__pyx_v_self) { + int __pyx_v_i; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyThread_type_lock __pyx_t_6; + PyThread_type_lock __pyx_t_7; + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":375 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + */ + __pyx_t_1 = (__pyx_v_self->obj != Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":376 + * def __dealloc__(memoryview self): + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) # <<<<<<<<<<<<<< + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + * + */ + __Pyx_ReleaseBuffer((&__pyx_v_self->view)); + + /* "View.MemoryView":375 + * + * def __dealloc__(memoryview self): + * if self.obj is not None: # <<<<<<<<<<<<<< + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":377 + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< + * + * (<__pyx_buffer *> &self.view).obj = NULL + */ + __pyx_t_2 = ((((Py_buffer *)(&__pyx_v_self->view))->obj == Py_None) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":379 + * elif (<__pyx_buffer *> &self.view).obj == Py_None: + * + * (<__pyx_buffer *> &self.view).obj = NULL # <<<<<<<<<<<<<< + * Py_DECREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_self->view))->obj = NULL; + + /* "View.MemoryView":380 + * + * (<__pyx_buffer *> &self.view).obj = NULL + * Py_DECREF(Py_None) # <<<<<<<<<<<<<< + * + * cdef int i + */ + Py_DECREF(Py_None); + + /* "View.MemoryView":377 + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + * elif (<__pyx_buffer *> &self.view).obj == Py_None: # <<<<<<<<<<<<<< + * + * (<__pyx_buffer *> &self.view).obj = NULL + */ + } + __pyx_L3:; + + /* "View.MemoryView":384 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + __pyx_t_2 = ((__pyx_v_self->lock != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":385 + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): # <<<<<<<<<<<<<< + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + */ + __pyx_t_3 = __pyx_memoryview_thread_locks_used; + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) { + __pyx_v_i = __pyx_t_5; + + /* "View.MemoryView":386 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + __pyx_t_2 = (((__pyx_memoryview_thread_locks[__pyx_v_i]) == __pyx_v_self->lock) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":387 + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 # <<<<<<<<<<<<<< + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + */ + __pyx_memoryview_thread_locks_used = (__pyx_memoryview_thread_locks_used - 1); + + /* "View.MemoryView":388 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + __pyx_t_2 = ((__pyx_v_i != __pyx_memoryview_thread_locks_used) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":390 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) # <<<<<<<<<<<<<< + * break + * else: + */ + __pyx_t_6 = (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]); + __pyx_t_7 = (__pyx_memoryview_thread_locks[__pyx_v_i]); + + /* "View.MemoryView":389 + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break + */ + (__pyx_memoryview_thread_locks[__pyx_v_i]) = __pyx_t_6; + (__pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used]) = __pyx_t_7; + + /* "View.MemoryView":388 + * if __pyx_memoryview_thread_locks[i] is self.lock: + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + */ + } + + /* "View.MemoryView":391 + * __pyx_memoryview_thread_locks[i], __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used] = ( + * __pyx_memoryview_thread_locks[__pyx_memoryview_thread_locks_used], __pyx_memoryview_thread_locks[i]) + * break # <<<<<<<<<<<<<< + * else: + * PyThread_free_lock(self.lock) + */ + goto __pyx_L6_break; + + /* "View.MemoryView":386 + * if self.lock != NULL: + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: # <<<<<<<<<<<<<< + * __pyx_memoryview_thread_locks_used -= 1 + * if i != __pyx_memoryview_thread_locks_used: + */ + } + } + /*else*/ { + + /* "View.MemoryView":393 + * break + * else: + * PyThread_free_lock(self.lock) # <<<<<<<<<<<<<< + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + */ + PyThread_free_lock(__pyx_v_self->lock); + } + __pyx_L6_break:; + + /* "View.MemoryView":384 + * cdef int i + * global __pyx_memoryview_thread_locks_used + * if self.lock != NULL: # <<<<<<<<<<<<<< + * for i in range(__pyx_memoryview_thread_locks_used): + * if __pyx_memoryview_thread_locks[i] is self.lock: + */ + } + + /* "View.MemoryView":374 + * self.typeinfo = NULL + * + * def __dealloc__(memoryview self): # <<<<<<<<<<<<<< + * if self.obj is not None: + * __Pyx_ReleaseBuffer(&self.view) + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":395 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + +static char *__pyx_memoryview_get_item_pointer(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + Py_ssize_t __pyx_v_dim; + char *__pyx_v_itemp; + PyObject *__pyx_v_idx = NULL; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t __pyx_t_3; + PyObject *(*__pyx_t_4)(PyObject *); + PyObject *__pyx_t_5 = NULL; + Py_ssize_t __pyx_t_6; + char *__pyx_t_7; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_item_pointer", 0); + + /* "View.MemoryView":397 + * cdef char *get_item_pointer(memoryview self, object index) except NULL: + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf # <<<<<<<<<<<<<< + * + * for dim, idx in enumerate(index): + */ + __pyx_v_itemp = ((char *)__pyx_v_self->view.buf); + + /* "View.MemoryView":399 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + __pyx_t_1 = 0; + if (likely(PyList_CheckExact(__pyx_v_index)) || PyTuple_CheckExact(__pyx_v_index)) { + __pyx_t_2 = __pyx_v_index; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0; + __pyx_t_4 = NULL; + } else { + __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 399, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_4)) { + if (likely(PyList_CheckExact(__pyx_t_2))) { + if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(66, 399, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } else { + if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(66, 399, __pyx_L1_error) + #else + __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + } + } else { + __pyx_t_5 = __pyx_t_4(__pyx_t_2); + if (unlikely(!__pyx_t_5)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(66, 399, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_5); + } + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_5); + __pyx_t_5 = 0; + __pyx_v_dim = __pyx_t_1; + __pyx_t_1 = (__pyx_t_1 + 1); + + /* "View.MemoryView":400 + * + * for dim, idx in enumerate(index): + * itemp = pybuffer_index(&self.view, itemp, idx, dim) # <<<<<<<<<<<<<< + * + * return itemp + */ + __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_idx); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 400, __pyx_L1_error) + __pyx_t_7 = __pyx_pybuffer_index((&__pyx_v_self->view), __pyx_v_itemp, __pyx_t_6, __pyx_v_dim); if (unlikely(__pyx_t_7 == ((char *)NULL))) __PYX_ERR(66, 400, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_7; + + /* "View.MemoryView":399 + * cdef char *itemp = self.view.buf + * + * for dim, idx in enumerate(index): # <<<<<<<<<<<<<< + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + */ + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":402 + * itemp = pybuffer_index(&self.view, itemp, idx, dim) + * + * return itemp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_itemp; + goto __pyx_L0; + + /* "View.MemoryView":395 + * PyThread_free_lock(self.lock) + * + * cdef char *get_item_pointer(memoryview self, object index) except NULL: # <<<<<<<<<<<<<< + * cdef Py_ssize_t dim + * cdef char *itemp = self.view.buf + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.get_item_pointer", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":405 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index); /*proto*/ +static PyObject *__pyx_memoryview___getitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_4__getitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_indices = NULL; + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + char *__pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__getitem__", 0); + + /* "View.MemoryView":406 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + __pyx_t_1 = (__pyx_v_index == __pyx_builtin_Ellipsis); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":407 + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: + * return self # <<<<<<<<<<<<<< + * + * have_slices, indices = _unellipsify(index, self.view.ndim) + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __pyx_r = ((PyObject *)__pyx_v_self); + goto __pyx_L0; + + /* "View.MemoryView":406 + * + * def __getitem__(memoryview self, object index): + * if index is Ellipsis: # <<<<<<<<<<<<<< + * return self + * + */ + } + + /* "View.MemoryView":409 + * return self + * + * have_slices, indices = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * cdef char *itemp + */ + __pyx_t_3 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (likely(__pyx_t_3 != Py_None)) { + PyObject* sequence = __pyx_t_3; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(66, 409, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + #else + __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 409, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + #endif + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(66, 409, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_v_indices = __pyx_t_5; + __pyx_t_5 = 0; + + /* "View.MemoryView":412 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(66, 412, __pyx_L1_error) + if (__pyx_t_2) { + + /* "View.MemoryView":413 + * cdef char *itemp + * if have_slices: + * return memview_slice(self, indices) # <<<<<<<<<<<<<< + * else: + * itemp = self.get_item_pointer(indices) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((PyObject *)__pyx_memview_slice(__pyx_v_self, __pyx_v_indices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":412 + * + * cdef char *itemp + * if have_slices: # <<<<<<<<<<<<<< + * return memview_slice(self, indices) + * else: + */ + } + + /* "View.MemoryView":415 + * return memview_slice(self, indices) + * else: + * itemp = self.get_item_pointer(indices) # <<<<<<<<<<<<<< + * return self.convert_item_to_object(itemp) + * + */ + /*else*/ { + __pyx_t_6 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_indices); if (unlikely(__pyx_t_6 == ((char *)NULL))) __PYX_ERR(66, 415, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_6; + + /* "View.MemoryView":416 + * else: + * itemp = self.get_item_pointer(indices) + * return self.convert_item_to_object(itemp) # <<<<<<<<<<<<<< + * + * def __setitem__(memoryview self, object index, object value): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->convert_item_to_object(__pyx_v_self, __pyx_v_itemp); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":405 + * + * + * def __getitem__(memoryview self, object index): # <<<<<<<<<<<<<< + * if index is Ellipsis: + * return self + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_indices); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":418 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + +/* Python wrapper */ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value); /*proto*/ +static int __pyx_memoryview___setitem__(PyObject *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v_index), ((PyObject *)__pyx_v_value)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_6__setitem__(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + PyObject *__pyx_v_have_slices = NULL; + PyObject *__pyx_v_obj = NULL; + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setitem__", 0); + __Pyx_INCREF(__pyx_v_index); + + /* "View.MemoryView":419 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + __pyx_t_1 = (__pyx_v_self->view.readonly != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":420 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__67, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(66, 420, __pyx_L1_error) + + /* "View.MemoryView":419 + * + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: # <<<<<<<<<<<<<< + * raise TypeError("Cannot assign to read-only memoryview") + * + */ + } + + /* "View.MemoryView":422 + * raise TypeError("Cannot assign to read-only memoryview") + * + * have_slices, index = _unellipsify(index, self.view.ndim) # <<<<<<<<<<<<<< + * + * if have_slices: + */ + __pyx_t_2 = _unellipsify(__pyx_v_index, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (likely(__pyx_t_2 != Py_None)) { + PyObject* sequence = __pyx_t_2; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 2)) { + if (size > 2) __Pyx_RaiseTooManyValuesError(2); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(66, 422, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); + __Pyx_INCREF(__pyx_t_3); + __Pyx_INCREF(__pyx_t_4); + #else + __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } else { + __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(66, 422, __pyx_L1_error) + } + __pyx_v_have_slices = __pyx_t_3; + __pyx_t_3 = 0; + __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":424 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_have_slices); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 424, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":425 + * + * if have_slices: + * obj = self.is_slice(value) # <<<<<<<<<<<<<< + * if obj: + * self.setitem_slice_assignment(self[index], obj) + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->is_slice(__pyx_v_self, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_obj = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":426 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_obj); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 426, __pyx_L1_error) + if (__pyx_t_1) { + + /* "View.MemoryView":427 + * obj = self.is_slice(value) + * if obj: + * self.setitem_slice_assignment(self[index], obj) # <<<<<<<<<<<<<< + * else: + * self.setitem_slice_assign_scalar(self[index], value) + */ + __pyx_t_2 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assignment(__pyx_v_self, __pyx_t_2, __pyx_v_obj); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "View.MemoryView":426 + * if have_slices: + * obj = self.is_slice(value) + * if obj: # <<<<<<<<<<<<<< + * self.setitem_slice_assignment(self[index], obj) + * else: + */ + goto __pyx_L5; + } + + /* "View.MemoryView":429 + * self.setitem_slice_assignment(self[index], obj) + * else: + * self.setitem_slice_assign_scalar(self[index], value) # <<<<<<<<<<<<<< + * else: + * self.setitem_indexed(index, value) + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_GetItem(((PyObject *)__pyx_v_self), __pyx_v_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_memoryview_type))))) __PYX_ERR(66, 429, __pyx_L1_error) + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_slice_assign_scalar(__pyx_v_self, ((struct __pyx_memoryview_obj *)__pyx_t_4), __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 429, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L5:; + + /* "View.MemoryView":424 + * have_slices, index = _unellipsify(index, self.view.ndim) + * + * if have_slices: # <<<<<<<<<<<<<< + * obj = self.is_slice(value) + * if obj: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":431 + * self.setitem_slice_assign_scalar(self[index], value) + * else: + * self.setitem_indexed(index, value) # <<<<<<<<<<<<<< + * + * cdef is_slice(self, obj): + */ + /*else*/ { + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->setitem_indexed(__pyx_v_self, __pyx_v_index, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 431, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L4:; + + /* "View.MemoryView":418 + * return self.convert_item_to_object(itemp) + * + * def __setitem__(memoryview self, object index, object value): # <<<<<<<<<<<<<< + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_have_slices); + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":433 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + +static PyObject *__pyx_memoryview_is_slice(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_obj) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_slice", 0); + __Pyx_INCREF(__pyx_v_obj); + + /* "View.MemoryView":434 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, __pyx_memoryview_type); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":435 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_5); + /*try:*/ { + + /* "View.MemoryView":436 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((__pyx_v_self->flags & (~PyBUF_WRITABLE)) | PyBUF_ANY_CONTIGUOUS)); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 436, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":437 + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) # <<<<<<<<<<<<<< + * except TypeError: + * return None + */ + __pyx_t_7 = __Pyx_PyBool_FromLong(__pyx_v_self->dtype_is_object); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 437, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "View.MemoryView":436 + * if not isinstance(obj, memoryview): + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, # <<<<<<<<<<<<<< + * self.dtype_is_object) + * except TypeError: + */ + __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(66, 436, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_v_obj); + __Pyx_GIVEREF(__pyx_v_obj); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_obj); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_7); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 436, __pyx_L4_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_7); + __pyx_t_7 = 0; + + /* "View.MemoryView":435 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + } + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + goto __pyx_L9_try_end; + __pyx_L4_error:; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "View.MemoryView":438 + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + * except TypeError: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_9 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_TypeError); + if (__pyx_t_9) { + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_6) < 0) __PYX_ERR(66, 438, __pyx_L6_except_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GOTREF(__pyx_t_6); + + /* "View.MemoryView":439 + * self.dtype_is_object) + * except TypeError: + * return None # <<<<<<<<<<<<<< + * + * return obj + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + goto __pyx_L7_except_return; + } + goto __pyx_L6_except_error; + __pyx_L6_except_error:; + + /* "View.MemoryView":435 + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): + * try: # <<<<<<<<<<<<<< + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + * self.dtype_is_object) + */ + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L1_error; + __pyx_L7_except_return:; + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_XGIVEREF(__pyx_t_5); + __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5); + goto __pyx_L0; + __pyx_L9_try_end:; + } + + /* "View.MemoryView":434 + * + * cdef is_slice(self, obj): + * if not isinstance(obj, memoryview): # <<<<<<<<<<<<<< + * try: + * obj = memoryview(obj, self.flags & ~PyBUF_WRITABLE | PyBUF_ANY_CONTIGUOUS, + */ + } + + /* "View.MemoryView":441 + * return None + * + * return obj # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assignment(self, dst, src): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_obj); + __pyx_r = __pyx_v_obj; + goto __pyx_L0; + + /* "View.MemoryView":433 + * self.setitem_indexed(index, value) + * + * cdef is_slice(self, obj): # <<<<<<<<<<<<<< + * if not isinstance(obj, memoryview): + * try: + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_obj); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":443 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + +static PyObject *__pyx_memoryview_setitem_slice_assignment(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_dst, PyObject *__pyx_v_src) { + __Pyx_memviewslice __pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_src_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + __Pyx_memviewslice *__pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_slice_assignment", 0); + + /* "View.MemoryView":447 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + if (!(likely(((__pyx_v_src) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_src, __pyx_memoryview_type))))) __PYX_ERR(66, 447, __pyx_L1_error) + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_src), (&__pyx_v_src_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(66, 447, __pyx_L1_error) + + /* "View.MemoryView":448 + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], # <<<<<<<<<<<<<< + * src.ndim, dst.ndim, self.dtype_is_object) + * + */ + if (!(likely(((__pyx_v_dst) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_dst, __pyx_memoryview_type))))) __PYX_ERR(66, 448, __pyx_L1_error) + __pyx_t_2 = __pyx_memoryview_get_slice_from_memoryview(((struct __pyx_memoryview_obj *)__pyx_v_dst), (&__pyx_v_dst_slice)); if (unlikely(__pyx_t_2 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(66, 448, __pyx_L1_error) + + /* "View.MemoryView":449 + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) # <<<<<<<<<<<<<< + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + */ + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_src, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 449, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_dst, __pyx_n_s_ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(66, 449, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":447 + * cdef __Pyx_memviewslice src_slice + * + * memoryview_copy_contents(get_slice_from_memview(src, &src_slice)[0], # <<<<<<<<<<<<<< + * get_slice_from_memview(dst, &dst_slice)[0], + * src.ndim, dst.ndim, self.dtype_is_object) + */ + __pyx_t_6 = __pyx_memoryview_copy_contents((__pyx_t_1[0]), (__pyx_t_2[0]), __pyx_t_4, __pyx_t_5, __pyx_v_self->dtype_is_object); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(66, 447, __pyx_L1_error) + + /* "View.MemoryView":443 + * return obj + * + * cdef setitem_slice_assignment(self, dst, src): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice dst_slice + * cdef __Pyx_memviewslice src_slice + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assignment", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":451 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + +static PyObject *__pyx_memoryview_setitem_slice_assign_scalar(struct __pyx_memoryview_obj *__pyx_v_self, struct __pyx_memoryview_obj *__pyx_v_dst, PyObject *__pyx_v_value) { + int __pyx_v_array[0x80]; + void *__pyx_v_tmp; + void *__pyx_v_item; + __Pyx_memviewslice *__pyx_v_dst_slice; + __Pyx_memviewslice __pyx_v_tmp_slice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_t_4; + int __pyx_t_5; + char const *__pyx_t_6; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + PyObject *__pyx_t_9 = NULL; + PyObject *__pyx_t_10 = NULL; + PyObject *__pyx_t_11 = NULL; + PyObject *__pyx_t_12 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_slice_assign_scalar", 0); + + /* "View.MemoryView":453 + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): + * cdef int array[128] + * cdef void *tmp = NULL # <<<<<<<<<<<<<< + * cdef void *item + * + */ + __pyx_v_tmp = NULL; + + /* "View.MemoryView":458 + * cdef __Pyx_memviewslice *dst_slice + * cdef __Pyx_memviewslice tmp_slice + * dst_slice = get_slice_from_memview(dst, &tmp_slice) # <<<<<<<<<<<<<< + * + * if self.view.itemsize > sizeof(array): + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_dst, (&__pyx_v_tmp_slice)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(66, 458, __pyx_L1_error) + __pyx_v_dst_slice = __pyx_t_1; + + /* "View.MemoryView":460 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + __pyx_t_2 = ((((size_t)__pyx_v_self->view.itemsize) > (sizeof(__pyx_v_array))) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":461 + * + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) # <<<<<<<<<<<<<< + * if tmp == NULL: + * raise MemoryError + */ + __pyx_v_tmp = PyMem_Malloc(__pyx_v_self->view.itemsize); + + /* "View.MemoryView":462 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + __pyx_t_2 = ((__pyx_v_tmp == NULL) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":463 + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + * raise MemoryError # <<<<<<<<<<<<<< + * item = tmp + * else: + */ + PyErr_NoMemory(); __PYX_ERR(66, 463, __pyx_L1_error) + + /* "View.MemoryView":462 + * if self.view.itemsize > sizeof(array): + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: # <<<<<<<<<<<<<< + * raise MemoryError + * item = tmp + */ + } + + /* "View.MemoryView":464 + * if tmp == NULL: + * raise MemoryError + * item = tmp # <<<<<<<<<<<<<< + * else: + * item = array + */ + __pyx_v_item = __pyx_v_tmp; + + /* "View.MemoryView":460 + * dst_slice = get_slice_from_memview(dst, &tmp_slice) + * + * if self.view.itemsize > sizeof(array): # <<<<<<<<<<<<<< + * tmp = PyMem_Malloc(self.view.itemsize) + * if tmp == NULL: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":466 + * item = tmp + * else: + * item = array # <<<<<<<<<<<<<< + * + * try: + */ + /*else*/ { + __pyx_v_item = ((void *)__pyx_v_array); + } + __pyx_L3:; + + /* "View.MemoryView":468 + * item = array + * + * try: # <<<<<<<<<<<<<< + * if self.dtype_is_object: + * ( item)[0] = value + */ + /*try:*/ { + + /* "View.MemoryView":469 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + __pyx_t_2 = (__pyx_v_self->dtype_is_object != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":470 + * try: + * if self.dtype_is_object: + * ( item)[0] = value # <<<<<<<<<<<<<< + * else: + * self.assign_item_from_object( item, value) + */ + (((PyObject **)__pyx_v_item)[0]) = ((PyObject *)__pyx_v_value); + + /* "View.MemoryView":469 + * + * try: + * if self.dtype_is_object: # <<<<<<<<<<<<<< + * ( item)[0] = value + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":472 + * ( item)[0] = value + * else: + * self.assign_item_from_object( item, value) # <<<<<<<<<<<<<< + * + * + */ + /*else*/ { + __pyx_t_3 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, ((char *)__pyx_v_item), __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 472, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L8:; + + /* "View.MemoryView":476 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + __pyx_t_2 = ((__pyx_v_self->view.suboffsets != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":477 + * + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) # <<<<<<<<<<<<<< + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + * item, self.dtype_is_object) + */ + __pyx_t_3 = assert_direct_dimensions(__pyx_v_self->view.suboffsets, __pyx_v_self->view.ndim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 477, __pyx_L6_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":476 + * + * + * if self.view.suboffsets != NULL: # <<<<<<<<<<<<<< + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, + */ + } + + /* "View.MemoryView":478 + * if self.view.suboffsets != NULL: + * assert_direct_dimensions(self.view.suboffsets, self.view.ndim) + * slice_assign_scalar(dst_slice, dst.view.ndim, self.view.itemsize, # <<<<<<<<<<<<<< + * item, self.dtype_is_object) + * finally: + */ + __pyx_memoryview_slice_assign_scalar(__pyx_v_dst_slice, __pyx_v_dst->view.ndim, __pyx_v_self->view.itemsize, __pyx_v_item, __pyx_v_self->dtype_is_object); + } + + /* "View.MemoryView":481 + * item, self.dtype_is_object) + * finally: + * PyMem_Free(tmp) # <<<<<<<<<<<<<< + * + * cdef setitem_indexed(self, index, value): + */ + /*finally:*/ { + /*normal exit:*/{ + PyMem_Free(__pyx_v_tmp); + goto __pyx_L7; + } + __pyx_L6_error:; + /*exception exit:*/{ + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PY_MAJOR_VERSION >= 3) __Pyx_ExceptionSwap(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12); + if ((PY_MAJOR_VERSION < 3) || unlikely(__Pyx_GetException(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9) < 0)) __Pyx_ErrFetch(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_7); + __Pyx_XGOTREF(__pyx_t_8); + __Pyx_XGOTREF(__pyx_t_9); + __Pyx_XGOTREF(__pyx_t_10); + __Pyx_XGOTREF(__pyx_t_11); + __Pyx_XGOTREF(__pyx_t_12); + __pyx_t_4 = __pyx_lineno; __pyx_t_5 = __pyx_clineno; __pyx_t_6 = __pyx_filename; + { + PyMem_Free(__pyx_v_tmp); + } + if (PY_MAJOR_VERSION >= 3) { + __Pyx_XGIVEREF(__pyx_t_10); + __Pyx_XGIVEREF(__pyx_t_11); + __Pyx_XGIVEREF(__pyx_t_12); + __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12); + } + __Pyx_XGIVEREF(__pyx_t_7); + __Pyx_XGIVEREF(__pyx_t_8); + __Pyx_XGIVEREF(__pyx_t_9); + __Pyx_ErrRestore(__pyx_t_7, __pyx_t_8, __pyx_t_9); + __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; + __pyx_lineno = __pyx_t_4; __pyx_clineno = __pyx_t_5; __pyx_filename = __pyx_t_6; + goto __pyx_L1_error; + } + __pyx_L7:; + } + + /* "View.MemoryView":451 + * src.ndim, dst.ndim, self.dtype_is_object) + * + * cdef setitem_slice_assign_scalar(self, memoryview dst, value): # <<<<<<<<<<<<<< + * cdef int array[128] + * cdef void *tmp = NULL + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_slice_assign_scalar", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":483 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + +static PyObject *__pyx_memoryview_setitem_indexed(struct __pyx_memoryview_obj *__pyx_v_self, PyObject *__pyx_v_index, PyObject *__pyx_v_value) { + char *__pyx_v_itemp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + char *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("setitem_indexed", 0); + + /* "View.MemoryView":484 + * + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) # <<<<<<<<<<<<<< + * self.assign_item_from_object(itemp, value) + * + */ + __pyx_t_1 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->get_item_pointer(__pyx_v_self, __pyx_v_index); if (unlikely(__pyx_t_1 == ((char *)NULL))) __PYX_ERR(66, 484, __pyx_L1_error) + __pyx_v_itemp = __pyx_t_1; + + /* "View.MemoryView":485 + * cdef setitem_indexed(self, index, value): + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __pyx_t_2 = ((struct __pyx_vtabstruct_memoryview *)__pyx_v_self->__pyx_vtab)->assign_item_from_object(__pyx_v_self, __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":483 + * PyMem_Free(tmp) + * + * cdef setitem_indexed(self, index, value): # <<<<<<<<<<<<<< + * cdef char *itemp = self.get_item_pointer(index) + * self.assign_item_from_object(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.setitem_indexed", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":487 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_convert_item_to_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_v_struct = NULL; + PyObject *__pyx_v_bytesitem = 0; + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + int __pyx_t_8; + PyObject *__pyx_t_9 = NULL; + size_t __pyx_t_10; + int __pyx_t_11; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":490 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef bytes bytesitem + * + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 490, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":493 + * cdef bytes bytesitem + * + * bytesitem = itemp[:self.view.itemsize] # <<<<<<<<<<<<<< + * try: + * result = struct.unpack(self.view.format, bytesitem) + */ + __pyx_t_1 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_itemp + 0, __pyx_v_self->view.itemsize - 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_bytesitem = ((PyObject*)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":494 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4); + __Pyx_XGOTREF(__pyx_t_2); + __Pyx_XGOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_t_4); + /*try:*/ { + + /* "View.MemoryView":495 + * bytesitem = itemp[:self.view.itemsize] + * try: + * result = struct.unpack(self.view.format, bytesitem) # <<<<<<<<<<<<<< + * except struct.error: + * raise ValueError("Unable to convert item to object") + */ + __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_unpack); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = NULL; + __pyx_t_8 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { + __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5); + if (likely(__pyx_t_7)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_5, function); + __pyx_t_8 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { + PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_6, __pyx_v_bytesitem}; + __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } else + #endif + { + __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_9); + if (__pyx_t_7) { + __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL; + } + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6); + __Pyx_INCREF(__pyx_v_bytesitem); + __Pyx_GIVEREF(__pyx_v_bytesitem); + PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_bytesitem); + __pyx_t_6 = 0; + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 495, __pyx_L3_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_result = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":494 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + } + + /* "View.MemoryView":499 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + /*else:*/ { + __pyx_t_10 = strlen(__pyx_v_self->view.format); + __pyx_t_11 = ((__pyx_t_10 == 1) != 0); + if (__pyx_t_11) { + + /* "View.MemoryView":500 + * else: + * if len(self.view.format) == 1: + * return result[0] # <<<<<<<<<<<<<< + * return result + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_result, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 500, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L6_except_return; + + /* "View.MemoryView":499 + * raise ValueError("Unable to convert item to object") + * else: + * if len(self.view.format) == 1: # <<<<<<<<<<<<<< + * return result[0] + * return result + */ + } + + /* "View.MemoryView":501 + * if len(self.view.format) == 1: + * return result[0] + * return result # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L6_except_return; + } + __pyx_L3_error:; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "View.MemoryView":496 + * try: + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: # <<<<<<<<<<<<<< + * raise ValueError("Unable to convert item to object") + * else: + */ + __Pyx_ErrFetch(&__pyx_t_1, &__pyx_t_5, &__pyx_t_9); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_error); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 496, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyErr_GivenExceptionMatches(__pyx_t_1, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_ErrRestore(__pyx_t_1, __pyx_t_5, __pyx_t_9); + __pyx_t_1 = 0; __pyx_t_5 = 0; __pyx_t_9 = 0; + if (__pyx_t_8) { + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_5, &__pyx_t_1) < 0) __PYX_ERR(66, 496, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_9); + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GOTREF(__pyx_t_1); + + /* "View.MemoryView":497 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 497, __pyx_L5_except_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_Raise(__pyx_t_6, 0, 0, 0); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __PYX_ERR(66, 497, __pyx_L5_except_error) + } + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + + /* "View.MemoryView":494 + * + * bytesitem = itemp[:self.view.itemsize] + * try: # <<<<<<<<<<<<<< + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + */ + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L1_error; + __pyx_L6_except_return:; + __Pyx_XGIVEREF(__pyx_t_2); + __Pyx_XGIVEREF(__pyx_t_3); + __Pyx_XGIVEREF(__pyx_t_4); + __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4); + goto __pyx_L0; + } + + /* "View.MemoryView":487 + * self.assign_item_from_object(itemp, value) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memoryview.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesitem); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":503 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + +static PyObject *__pyx_memoryview_assign_item_from_object(struct __pyx_memoryview_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_v_struct = NULL; + char __pyx_v_c; + PyObject *__pyx_v_bytesvalue = 0; + Py_ssize_t __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_t_7; + PyObject *__pyx_t_8 = NULL; + Py_ssize_t __pyx_t_9; + PyObject *__pyx_t_10 = NULL; + char *__pyx_t_11; + char *__pyx_t_12; + char *__pyx_t_13; + char *__pyx_t_14; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":506 + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + * import struct # <<<<<<<<<<<<<< + * cdef char c + * cdef bytes bytesvalue + */ + __pyx_t_1 = __Pyx_Import(__pyx_n_s_struct, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_struct = __pyx_t_1; + __pyx_t_1 = 0; + + /* "View.MemoryView":511 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + __pyx_t_2 = PyTuple_Check(__pyx_v_value); + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "View.MemoryView":512 + * + * if isinstance(value, tuple): + * bytesvalue = struct.pack(self.view.format, *value) # <<<<<<<<<<<<<< + * else: + * bytesvalue = struct.pack(self.view.format, value) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_v_value); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 512, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(66, 512, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "View.MemoryView":511 + * cdef Py_ssize_t i + * + * if isinstance(value, tuple): # <<<<<<<<<<<<<< + * bytesvalue = struct.pack(self.view.format, *value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":514 + * bytesvalue = struct.pack(self.view.format, *value) + * else: + * bytesvalue = struct.pack(self.view.format, value) # <<<<<<<<<<<<<< + * + * for i, c in enumerate(bytesvalue): + */ + /*else*/ { + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_struct, __pyx_n_s_pack); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_1 = __Pyx_PyBytes_FromString(__pyx_v_self->view.format); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + __pyx_t_7 = 0; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_6, function); + __pyx_t_7 = 1; + } + } + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) { + PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_1, __pyx_v_value}; + __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + } else + #endif + { + __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__pyx_t_5) { + __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL; + } + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_1); + __Pyx_INCREF(__pyx_v_value); + __Pyx_GIVEREF(__pyx_v_value); + PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_value); + __pyx_t_1 = 0; + __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + } + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(66, 514, __pyx_L1_error) + __pyx_v_bytesvalue = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":516 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = 0; + if (unlikely(__pyx_v_bytesvalue == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' is not iterable"); + __PYX_ERR(66, 516, __pyx_L1_error) + } + __Pyx_INCREF(__pyx_v_bytesvalue); + __pyx_t_10 = __pyx_v_bytesvalue; + __pyx_t_12 = PyBytes_AS_STRING(__pyx_t_10); + __pyx_t_13 = (__pyx_t_12 + PyBytes_GET_SIZE(__pyx_t_10)); + for (__pyx_t_14 = __pyx_t_12; __pyx_t_14 < __pyx_t_13; __pyx_t_14++) { + __pyx_t_11 = __pyx_t_14; + __pyx_v_c = (__pyx_t_11[0]); + + /* "View.MemoryView":517 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + __pyx_v_i = __pyx_t_9; + + /* "View.MemoryView":516 + * bytesvalue = struct.pack(self.view.format, value) + * + * for i, c in enumerate(bytesvalue): # <<<<<<<<<<<<<< + * itemp[i] = c + * + */ + __pyx_t_9 = (__pyx_t_9 + 1); + + /* "View.MemoryView":517 + * + * for i, c in enumerate(bytesvalue): + * itemp[i] = c # <<<<<<<<<<<<<< + * + * @cname('getbuffer') + */ + (__pyx_v_itemp[__pyx_v_i]) = __pyx_v_c; + } + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + + /* "View.MemoryView":503 + * return result + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * """Only used if instantiated manually by the user, or if Cython doesn't + * know how to convert the type""" + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_10); + __Pyx_AddTraceback("View.MemoryView.memoryview.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_struct); + __Pyx_XDECREF(__pyx_v_bytesvalue); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":520 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + +/* Python wrapper */ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ +static CYTHON_UNUSED int __pyx_memoryview_getbuffer(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static int __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_8__getbuffer__(struct __pyx_memoryview_obj *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + char *__pyx_t_5; + void *__pyx_t_6; + int __pyx_t_7; + Py_ssize_t __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + if (__pyx_v_info == NULL) { + PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); + return -1; + } + __Pyx_RefNannySetupContext("__getbuffer__", 0); + __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(__pyx_v_info->obj); + + /* "View.MemoryView":521 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_2 = (__pyx_v_self->view.readonly != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L4_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":522 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_ND: + */ + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__69, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 522, __pyx_L1_error) + + /* "View.MemoryView":521 + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: # <<<<<<<<<<<<<< + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + */ + } + + /* "View.MemoryView":524 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_ND: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_ND) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":525 + * + * if flags & PyBUF_ND: + * info.shape = self.view.shape # <<<<<<<<<<<<<< + * else: + * info.shape = NULL + */ + __pyx_t_4 = __pyx_v_self->view.shape; + __pyx_v_info->shape = __pyx_t_4; + + /* "View.MemoryView":524 + * raise ValueError("Cannot create writable memory view from read-only memoryview") + * + * if flags & PyBUF_ND: # <<<<<<<<<<<<<< + * info.shape = self.view.shape + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":527 + * info.shape = self.view.shape + * else: + * info.shape = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_STRIDES: + */ + /*else*/ { + __pyx_v_info->shape = NULL; + } + __pyx_L6:; + + /* "View.MemoryView":529 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_STRIDES) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":530 + * + * if flags & PyBUF_STRIDES: + * info.strides = self.view.strides # <<<<<<<<<<<<<< + * else: + * info.strides = NULL + */ + __pyx_t_4 = __pyx_v_self->view.strides; + __pyx_v_info->strides = __pyx_t_4; + + /* "View.MemoryView":529 + * info.shape = NULL + * + * if flags & PyBUF_STRIDES: # <<<<<<<<<<<<<< + * info.strides = self.view.strides + * else: + */ + goto __pyx_L7; + } + + /* "View.MemoryView":532 + * info.strides = self.view.strides + * else: + * info.strides = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_INDIRECT: + */ + /*else*/ { + __pyx_v_info->strides = NULL; + } + __pyx_L7:; + + /* "View.MemoryView":534 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_INDIRECT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":535 + * + * if flags & PyBUF_INDIRECT: + * info.suboffsets = self.view.suboffsets # <<<<<<<<<<<<<< + * else: + * info.suboffsets = NULL + */ + __pyx_t_4 = __pyx_v_self->view.suboffsets; + __pyx_v_info->suboffsets = __pyx_t_4; + + /* "View.MemoryView":534 + * info.strides = NULL + * + * if flags & PyBUF_INDIRECT: # <<<<<<<<<<<<<< + * info.suboffsets = self.view.suboffsets + * else: + */ + goto __pyx_L8; + } + + /* "View.MemoryView":537 + * info.suboffsets = self.view.suboffsets + * else: + * info.suboffsets = NULL # <<<<<<<<<<<<<< + * + * if flags & PyBUF_FORMAT: + */ + /*else*/ { + __pyx_v_info->suboffsets = NULL; + } + __pyx_L8:; + + /* "View.MemoryView":539 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + __pyx_t_1 = ((__pyx_v_flags & PyBUF_FORMAT) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":540 + * + * if flags & PyBUF_FORMAT: + * info.format = self.view.format # <<<<<<<<<<<<<< + * else: + * info.format = NULL + */ + __pyx_t_5 = __pyx_v_self->view.format; + __pyx_v_info->format = __pyx_t_5; + + /* "View.MemoryView":539 + * info.suboffsets = NULL + * + * if flags & PyBUF_FORMAT: # <<<<<<<<<<<<<< + * info.format = self.view.format + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":542 + * info.format = self.view.format + * else: + * info.format = NULL # <<<<<<<<<<<<<< + * + * info.buf = self.view.buf + */ + /*else*/ { + __pyx_v_info->format = NULL; + } + __pyx_L9:; + + /* "View.MemoryView":544 + * info.format = NULL + * + * info.buf = self.view.buf # <<<<<<<<<<<<<< + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + */ + __pyx_t_6 = __pyx_v_self->view.buf; + __pyx_v_info->buf = __pyx_t_6; + + /* "View.MemoryView":545 + * + * info.buf = self.view.buf + * info.ndim = self.view.ndim # <<<<<<<<<<<<<< + * info.itemsize = self.view.itemsize + * info.len = self.view.len + */ + __pyx_t_7 = __pyx_v_self->view.ndim; + __pyx_v_info->ndim = __pyx_t_7; + + /* "View.MemoryView":546 + * info.buf = self.view.buf + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize # <<<<<<<<<<<<<< + * info.len = self.view.len + * info.readonly = self.view.readonly + */ + __pyx_t_8 = __pyx_v_self->view.itemsize; + __pyx_v_info->itemsize = __pyx_t_8; + + /* "View.MemoryView":547 + * info.ndim = self.view.ndim + * info.itemsize = self.view.itemsize + * info.len = self.view.len # <<<<<<<<<<<<<< + * info.readonly = self.view.readonly + * info.obj = self + */ + __pyx_t_8 = __pyx_v_self->view.len; + __pyx_v_info->len = __pyx_t_8; + + /* "View.MemoryView":548 + * info.itemsize = self.view.itemsize + * info.len = self.view.len + * info.readonly = self.view.readonly # <<<<<<<<<<<<<< + * info.obj = self + * + */ + __pyx_t_1 = __pyx_v_self->view.readonly; + __pyx_v_info->readonly = __pyx_t_1; + + /* "View.MemoryView":549 + * info.len = self.view.len + * info.readonly = self.view.readonly + * info.obj = self # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_INCREF(((PyObject *)__pyx_v_self)); + __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); + __pyx_v_info->obj = ((PyObject *)__pyx_v_self); + + /* "View.MemoryView":520 + * + * @cname('getbuffer') + * def __getbuffer__(self, Py_buffer *info, int flags): # <<<<<<<<<<<<<< + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") + */ + + /* function exit code */ + __pyx_r = 0; + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__getbuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + if (__pyx_v_info->obj != NULL) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + goto __pyx_L2; + __pyx_L0:; + if (__pyx_v_info->obj == Py_None) { + __Pyx_GOTREF(__pyx_v_info->obj); + __Pyx_DECREF(__pyx_v_info->obj); __pyx_v_info->obj = 0; + } + __pyx_L2:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":555 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_1T___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":556 + * @property + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) # <<<<<<<<<<<<<< + * transpose_memslice(&result.from_slice) + * return result + */ + __pyx_t_1 = __pyx_memoryview_copy_object(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_memoryviewslice_type))))) __PYX_ERR(66, 556, __pyx_L1_error) + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_1); + __pyx_t_1 = 0; + + /* "View.MemoryView":557 + * def T(self): + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_t_2 = __pyx_memslice_transpose((&__pyx_v_result->from_slice)); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(66, 557, __pyx_L1_error) + + /* "View.MemoryView":558 + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + * return result # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":555 + * + * @property + * def T(self): # <<<<<<<<<<<<<< + * cdef _memoryviewslice result = memoryview_copy(self) + * transpose_memslice(&result.from_slice) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.T.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":561 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4base___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":562 + * @property + * def base(self): + * return self.obj # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->obj); + __pyx_r = __pyx_v_self->obj; + goto __pyx_L0; + + /* "View.MemoryView":561 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.obj + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":565 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_5shape___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_length; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":566 + * @property + * def shape(self): + * return tuple([length for length in self.view.shape[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_4 = __pyx_v_self->view.shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { + __pyx_t_2 = __pyx_t_4; + __pyx_v_length = (__pyx_t_2[0]); + __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_length); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_5))) __PYX_ERR(66, 566, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } + __pyx_t_5 = PyList_AsTuple(((PyObject*)__pyx_t_1)); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":565 + * + * @property + * def shape(self): # <<<<<<<<<<<<<< + * return tuple([length for length in self.view.shape[:self.view.ndim]]) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview.shape.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":569 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_7strides___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_stride; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":570 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + __pyx_t_1 = ((__pyx_v_self->view.strides == NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":572 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__70, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(66, 572, __pyx_L1_error) + + /* "View.MemoryView":570 + * @property + * def strides(self): + * if self.view.strides == NULL: # <<<<<<<<<<<<<< + * + * raise ValueError("Buffer view does not expose strides") + */ + } + + /* "View.MemoryView":574 + * raise ValueError("Buffer view does not expose strides") + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = (__pyx_v_self->view.strides + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.strides; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_v_stride = (__pyx_t_3[0]); + __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_stride); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_6))) __PYX_ERR(66, 574, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + } + __pyx_t_6 = PyList_AsTuple(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_6; + __pyx_t_6 = 0; + goto __pyx_L0; + + /* "View.MemoryView":569 + * + * @property + * def strides(self): # <<<<<<<<<<<<<< + * if self.view.strides == NULL: + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.strides.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":577 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_10suboffsets___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + Py_ssize_t *__pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":578 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + __pyx_t_1 = ((__pyx_v_self->view.suboffsets == NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":579 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_tuple__71, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":578 + * @property + * def suboffsets(self): + * if self.view.suboffsets == NULL: # <<<<<<<<<<<<<< + * return (-1,) * self.view.ndim + * + */ + } + + /* "View.MemoryView":581 + * return (-1,) * self.view.ndim + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_5 = (__pyx_v_self->view.suboffsets + __pyx_v_self->view.ndim); + for (__pyx_t_6 = __pyx_v_self->view.suboffsets; __pyx_t_6 < __pyx_t_5; __pyx_t_6++) { + __pyx_t_4 = __pyx_t_6; + __pyx_v_suboffset = (__pyx_t_4[0]); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_suboffset); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_t_2))) __PYX_ERR(66, 581, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_t_2 = PyList_AsTuple(((PyObject*)__pyx_t_3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":577 + * + * @property + * def suboffsets(self): # <<<<<<<<<<<<<< + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.suboffsets.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":584 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4ndim___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":585 + * @property + * def ndim(self): + * return self.view.ndim # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->view.ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":584 + * + * @property + * def ndim(self): # <<<<<<<<<<<<<< + * return self.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.ndim.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":588 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_8itemsize___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":589 + * @property + * def itemsize(self): + * return self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":588 + * + * @property + * def itemsize(self): # <<<<<<<<<<<<<< + * return self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.itemsize.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":592 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_6nbytes___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":593 + * @property + * def nbytes(self): + * return self.size * self.view.itemsize # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_self->view.itemsize); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":592 + * + * @property + * def nbytes(self): # <<<<<<<<<<<<<< + * return self.size * self.view.itemsize + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.nbytes.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":596 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_10memoryview_4size___get__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_v_result = NULL; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + Py_ssize_t *__pyx_t_5; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":597 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + __pyx_t_1 = (__pyx_v_self->_size == Py_None); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":598 + * def size(self): + * if self._size is None: + * result = 1 # <<<<<<<<<<<<<< + * + * for length in self.view.shape[:self.view.ndim]: + */ + __Pyx_INCREF(__pyx_int_1); + __pyx_v_result = __pyx_int_1; + + /* "View.MemoryView":600 + * result = 1 + * + * for length in self.view.shape[:self.view.ndim]: # <<<<<<<<<<<<<< + * result *= length + * + */ + __pyx_t_4 = (__pyx_v_self->view.shape + __pyx_v_self->view.ndim); + for (__pyx_t_5 = __pyx_v_self->view.shape; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) { + __pyx_t_3 = __pyx_t_5; + __pyx_t_6 = PyInt_FromSsize_t((__pyx_t_3[0])); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":601 + * + * for length in self.view.shape[:self.view.ndim]: + * result *= length # <<<<<<<<<<<<<< + * + * self._size = result + */ + __pyx_t_6 = PyNumber_InPlaceMultiply(__pyx_v_result, __pyx_v_length); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_6); + __pyx_t_6 = 0; + } + + /* "View.MemoryView":603 + * result *= length + * + * self._size = result # <<<<<<<<<<<<<< + * + * return self._size + */ + __Pyx_INCREF(__pyx_v_result); + __Pyx_GIVEREF(__pyx_v_result); + __Pyx_GOTREF(__pyx_v_self->_size); + __Pyx_DECREF(__pyx_v_self->_size); + __pyx_v_self->_size = __pyx_v_result; + + /* "View.MemoryView":597 + * @property + * def size(self): + * if self._size is None: # <<<<<<<<<<<<<< + * result = 1 + * + */ + } + + /* "View.MemoryView":605 + * self._size = result + * + * return self._size # <<<<<<<<<<<<<< + * + * def __len__(self): + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->_size); + __pyx_r = __pyx_v_self->_size; + goto __pyx_L0; + + /* "View.MemoryView":596 + * + * @property + * def size(self): # <<<<<<<<<<<<<< + * if self._size is None: + * result = 1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.memoryview.size.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":607 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + +/* Python wrapper */ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self); /*proto*/ +static Py_ssize_t __pyx_memoryview___len__(PyObject *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static Py_ssize_t __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_10__len__(struct __pyx_memoryview_obj *__pyx_v_self) { + Py_ssize_t __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("__len__", 0); + + /* "View.MemoryView":608 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + __pyx_t_1 = ((__pyx_v_self->view.ndim >= 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":609 + * def __len__(self): + * if self.view.ndim >= 1: + * return self.view.shape[0] # <<<<<<<<<<<<<< + * + * return 0 + */ + __pyx_r = (__pyx_v_self->view.shape[0]); + goto __pyx_L0; + + /* "View.MemoryView":608 + * + * def __len__(self): + * if self.view.ndim >= 1: # <<<<<<<<<<<<<< + * return self.view.shape[0] + * + */ + } + + /* "View.MemoryView":611 + * return self.view.shape[0] + * + * return 0 # <<<<<<<<<<<<<< + * + * def __repr__(self): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":607 + * return self._size + * + * def __len__(self): # <<<<<<<<<<<<<< + * if self.view.ndim >= 1: + * return self.view.shape[0] + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":613 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___repr__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_12__repr__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__repr__", 0); + + /* "View.MemoryView":614 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "View.MemoryView":615 + * def __repr__(self): + * return "" % (self.base.__class__.__name__, + * id(self)) # <<<<<<<<<<<<<< + * + * def __str__(self): + */ + __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_id, ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "View.MemoryView":614 + * + * def __repr__(self): + * return "" % (self.base.__class__.__name__, # <<<<<<<<<<<<<< + * id(self)) + * + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":613 + * return 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__, + * id(self)) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":617 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_memoryview___str__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__str__ (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_14__str__(struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__str__", 0); + + /* "View.MemoryView":618 + * + * def __str__(self): + * return "" % (self.base.__class__.__name__,) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_class); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); + __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_MemoryView_of_r_object, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 618, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":617 + * id(self)) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return "" % (self.base.__class__.__name__,) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":621 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_c_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_c_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_16is_c_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_c_contig", 0); + + /* "View.MemoryView":624 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(66, 624, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":625 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'C', self.view.ndim) # <<<<<<<<<<<<<< + * + * def is_f_contig(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'C', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 625, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":621 + * + * + * def is_c_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_c_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":627 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_is_f_contig(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_f_contig (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_18is_f_contig(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice *__pyx_v_mslice; + __Pyx_memviewslice __pyx_v_tmp; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice *__pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("is_f_contig", 0); + + /* "View.MemoryView":630 + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) # <<<<<<<<<<<<<< + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + */ + __pyx_t_1 = __pyx_memoryview_get_slice_from_memoryview(__pyx_v_self, (&__pyx_v_tmp)); if (unlikely(__pyx_t_1 == ((__Pyx_memviewslice *)NULL))) __PYX_ERR(66, 630, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":631 + * cdef __Pyx_memviewslice tmp + * mslice = get_slice_from_memview(self, &tmp) + * return slice_is_contig(mslice[0], 'F', self.view.ndim) # <<<<<<<<<<<<<< + * + * def copy(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_memviewslice_is_contig((__pyx_v_mslice[0]), 'F', __pyx_v_self->view.ndim)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":627 + * return slice_is_contig(mslice[0], 'C', self.view.ndim) + * + * def is_f_contig(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice *mslice + * cdef __Pyx_memviewslice tmp + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.is_f_contig", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":633 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_20copy(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_mslice; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy", 0); + + /* "View.MemoryView":635 + * def copy(self): + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &mslice) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_F_CONTIGUOUS)); + + /* "View.MemoryView":637 + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + * + * slice_copy(self, &mslice) # <<<<<<<<<<<<<< + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_mslice)); + + /* "View.MemoryView":638 + * + * slice_copy(self, &mslice) + * mslice = slice_copy_contig(&mslice, "c", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_C_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_mslice), ((char *)"c"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_C_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(66, 638, __pyx_L1_error) + __pyx_v_mslice = __pyx_t_1; + + /* "View.MemoryView":643 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &mslice) # <<<<<<<<<<<<<< + * + * def copy_fortran(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_mslice)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":633 + * return slice_is_contig(mslice[0], 'F', self.view.ndim) + * + * def copy(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice mslice + * cdef int flags = self.flags & ~PyBUF_F_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":645 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + +/* Python wrapper */ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_memoryview_copy_fortran(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("copy_fortran (wrapper)", 0); + __pyx_r = __pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_memoryview___pyx_pf_15View_dot_MemoryView_10memoryview_22copy_fortran(struct __pyx_memoryview_obj *__pyx_v_self) { + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + int __pyx_v_flags; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_memviewslice __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("copy_fortran", 0); + + /* "View.MemoryView":647 + * def copy_fortran(self): + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS # <<<<<<<<<<<<<< + * + * slice_copy(self, &src) + */ + __pyx_v_flags = (__pyx_v_self->flags & (~PyBUF_C_CONTIGUOUS)); + + /* "View.MemoryView":649 + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + * + * slice_copy(self, &src) # <<<<<<<<<<<<<< + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, + * self.view.itemsize, + */ + __pyx_memoryview_slice_copy(__pyx_v_self, (&__pyx_v_src)); + + /* "View.MemoryView":650 + * + * slice_copy(self, &src) + * dst = slice_copy_contig(&src, "fortran", self.view.ndim, # <<<<<<<<<<<<<< + * self.view.itemsize, + * flags|PyBUF_F_CONTIGUOUS, + */ + __pyx_t_1 = __pyx_memoryview_copy_new_contig((&__pyx_v_src), ((char *)"fortran"), __pyx_v_self->view.ndim, __pyx_v_self->view.itemsize, (__pyx_v_flags | PyBUF_F_CONTIGUOUS), __pyx_v_self->dtype_is_object); if (unlikely(PyErr_Occurred())) __PYX_ERR(66, 650, __pyx_L1_error) + __pyx_v_dst = __pyx_t_1; + + /* "View.MemoryView":655 + * self.dtype_is_object) + * + * return memoryview_copy_from_slice(self, &dst) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_copy_object_from_slice(__pyx_v_self, (&__pyx_v_dst)); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":645 + * return memoryview_copy_from_slice(self, &mslice) + * + * def copy_fortran(self): # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice src, dst + * cdef int flags = self.flags & ~PyBUF_C_CONTIGUOUS + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView.memoryview.copy_fortran", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview___reduce_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__72, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryview_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryview_2__setstate_cython__(((struct __pyx_memoryview_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryview_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryview_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__73, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":659 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + +static PyObject *__pyx_memoryview_new(PyObject *__pyx_v_o, int __pyx_v_flags, int __pyx_v_dtype_is_object, __Pyx_TypeInfo *__pyx_v_typeinfo) { + struct __pyx_memoryview_obj *__pyx_v_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_cwrapper", 0); + + /* "View.MemoryView":660 + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) # <<<<<<<<<<<<<< + * result.typeinfo = typeinfo + * return result + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_flags); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_o); + __Pyx_GIVEREF(__pyx_v_o); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_o); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryview_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 660, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryview_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":661 + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo # <<<<<<<<<<<<<< + * return result + * + */ + __pyx_v_result->typeinfo = __pyx_v_typeinfo; + + /* "View.MemoryView":662 + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_check') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":659 + * + * @cname('__pyx_memoryview_new') + * cdef memoryview_cwrapper(object o, int flags, bint dtype_is_object, __Pyx_TypeInfo *typeinfo): # <<<<<<<<<<<<<< + * cdef memoryview result = memoryview(o, flags, dtype_is_object) + * result.typeinfo = typeinfo + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_cwrapper", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":665 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + +static CYTHON_INLINE int __pyx_memoryview_check(PyObject *__pyx_v_o) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + __Pyx_RefNannySetupContext("memoryview_check", 0); + + /* "View.MemoryView":666 + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): + * return isinstance(o, memoryview) # <<<<<<<<<<<<<< + * + * cdef tuple _unellipsify(object index, int ndim): + */ + __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_o, __pyx_memoryview_type); + __pyx_r = __pyx_t_1; + goto __pyx_L0; + + /* "View.MemoryView":665 + * + * @cname('__pyx_memoryview_check') + * cdef inline bint memoryview_check(object o): # <<<<<<<<<<<<<< + * return isinstance(o, memoryview) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":668 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + +static PyObject *_unellipsify(PyObject *__pyx_v_index, int __pyx_v_ndim) { + PyObject *__pyx_v_tup = NULL; + PyObject *__pyx_v_result = NULL; + int __pyx_v_have_slices; + int __pyx_v_seen_ellipsis; + CYTHON_UNUSED PyObject *__pyx_v_idx = NULL; + PyObject *__pyx_v_item = NULL; + Py_ssize_t __pyx_v_nslices; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + Py_ssize_t __pyx_t_5; + PyObject *(*__pyx_t_6)(PyObject *); + PyObject *__pyx_t_7 = NULL; + Py_ssize_t __pyx_t_8; + int __pyx_t_9; + int __pyx_t_10; + PyObject *__pyx_t_11 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("_unellipsify", 0); + + /* "View.MemoryView":673 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + __pyx_t_1 = PyTuple_Check(__pyx_v_index); + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":674 + * """ + * if not isinstance(index, tuple): + * tup = (index,) # <<<<<<<<<<<<<< + * else: + * tup = index + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 674, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_index); + __Pyx_GIVEREF(__pyx_v_index); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index); + __pyx_v_tup = __pyx_t_3; + __pyx_t_3 = 0; + + /* "View.MemoryView":673 + * full slices. + * """ + * if not isinstance(index, tuple): # <<<<<<<<<<<<<< + * tup = (index,) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":676 + * tup = (index,) + * else: + * tup = index # <<<<<<<<<<<<<< + * + * result = [] + */ + /*else*/ { + __Pyx_INCREF(__pyx_v_index); + __pyx_v_tup = __pyx_v_index; + } + __pyx_L3:; + + /* "View.MemoryView":678 + * tup = index + * + * result = [] # <<<<<<<<<<<<<< + * have_slices = False + * seen_ellipsis = False + */ + __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 678, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_v_result = ((PyObject*)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":679 + * + * result = [] + * have_slices = False # <<<<<<<<<<<<<< + * seen_ellipsis = False + * for idx, item in enumerate(tup): + */ + __pyx_v_have_slices = 0; + + /* "View.MemoryView":680 + * result = [] + * have_slices = False + * seen_ellipsis = False # <<<<<<<<<<<<<< + * for idx, item in enumerate(tup): + * if item is Ellipsis: + */ + __pyx_v_seen_ellipsis = 0; + + /* "View.MemoryView":681 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_3 = __pyx_int_0; + if (likely(PyList_CheckExact(__pyx_v_tup)) || PyTuple_CheckExact(__pyx_v_tup)) { + __pyx_t_4 = __pyx_v_tup; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0; + __pyx_t_6 = NULL; + } else { + __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_tup); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 681, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_6)) { + if (likely(PyList_CheckExact(__pyx_t_4))) { + if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(66, 681, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } else { + if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(66, 681, __pyx_L1_error) + #else + __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + #endif + } + } else { + __pyx_t_7 = __pyx_t_6(__pyx_t_4); + if (unlikely(!__pyx_t_7)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(66, 681, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_7); + } + __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7); + __pyx_t_7 = 0; + __Pyx_INCREF(__pyx_t_3); + __Pyx_XDECREF_SET(__pyx_v_idx, __pyx_t_3); + __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_7; + __pyx_t_7 = 0; + + /* "View.MemoryView":682 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + __pyx_t_2 = (__pyx_v_item == __pyx_builtin_Ellipsis); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":683 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + __pyx_t_1 = ((!(__pyx_v_seen_ellipsis != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":684 + * if item is Ellipsis: + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) # <<<<<<<<<<<<<< + * seen_ellipsis = True + * else: + */ + __pyx_t_8 = PyObject_Length(__pyx_v_tup); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(66, 684, __pyx_L1_error) + __pyx_t_7 = PyList_New(1 * ((((__pyx_v_ndim - __pyx_t_8) + 1)<0) ? 0:((__pyx_v_ndim - __pyx_t_8) + 1))); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < ((__pyx_v_ndim - __pyx_t_8) + 1); __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__40); + __Pyx_GIVEREF(__pyx_slice__40); + PyList_SET_ITEM(__pyx_t_7, __pyx_temp, __pyx_slice__40); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_7); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(66, 684, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "View.MemoryView":685 + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True # <<<<<<<<<<<<<< + * else: + * result.append(slice(None)) + */ + __pyx_v_seen_ellipsis = 1; + + /* "View.MemoryView":683 + * for idx, item in enumerate(tup): + * if item is Ellipsis: + * if not seen_ellipsis: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + * seen_ellipsis = True + */ + goto __pyx_L7; + } + + /* "View.MemoryView":687 + * seen_ellipsis = True + * else: + * result.append(slice(None)) # <<<<<<<<<<<<<< + * have_slices = True + * else: + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_slice__40); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(66, 687, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":688 + * else: + * result.append(slice(None)) + * have_slices = True # <<<<<<<<<<<<<< + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + */ + __pyx_v_have_slices = 1; + + /* "View.MemoryView":682 + * seen_ellipsis = False + * for idx, item in enumerate(tup): + * if item is Ellipsis: # <<<<<<<<<<<<<< + * if not seen_ellipsis: + * result.extend([slice(None)] * (ndim - len(tup) + 1)) + */ + goto __pyx_L6; + } + + /* "View.MemoryView":690 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + /*else*/ { + __pyx_t_2 = PySlice_Check(__pyx_v_item); + __pyx_t_10 = ((!(__pyx_t_2 != 0)) != 0); + if (__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = ((!(PyIndex_Check(__pyx_v_item) != 0)) != 0); + __pyx_t_1 = __pyx_t_10; + __pyx_L9_bool_binop_done:; + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":691 + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): + * raise TypeError("Cannot index with type '%s'" % type(item)) # <<<<<<<<<<<<<< + * + * have_slices = have_slices or isinstance(item, slice) + */ + __pyx_t_7 = __Pyx_PyString_FormatSafe(__pyx_kp_s_Cannot_index_with_type_s, ((PyObject *)Py_TYPE(__pyx_v_item))); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_11 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(66, 691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_Raise(__pyx_t_11, 0, 0, 0); + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + __PYX_ERR(66, 691, __pyx_L1_error) + + /* "View.MemoryView":690 + * have_slices = True + * else: + * if not isinstance(item, slice) and not PyIndex_Check(item): # <<<<<<<<<<<<<< + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + */ + } + + /* "View.MemoryView":693 + * raise TypeError("Cannot index with type '%s'" % type(item)) + * + * have_slices = have_slices or isinstance(item, slice) # <<<<<<<<<<<<<< + * result.append(item) + * + */ + __pyx_t_10 = (__pyx_v_have_slices != 0); + if (!__pyx_t_10) { + } else { + __pyx_t_1 = __pyx_t_10; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = PySlice_Check(__pyx_v_item); + __pyx_t_2 = (__pyx_t_10 != 0); + __pyx_t_1 = __pyx_t_2; + __pyx_L11_bool_binop_done:; + __pyx_v_have_slices = __pyx_t_1; + + /* "View.MemoryView":694 + * + * have_slices = have_slices or isinstance(item, slice) + * result.append(item) # <<<<<<<<<<<<<< + * + * nslices = ndim - len(result) + */ + __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_result, __pyx_v_item); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(66, 694, __pyx_L1_error) + } + __pyx_L6:; + + /* "View.MemoryView":681 + * have_slices = False + * seen_ellipsis = False + * for idx, item in enumerate(tup): # <<<<<<<<<<<<<< + * if item is Ellipsis: + * if not seen_ellipsis: + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":696 + * result.append(item) + * + * nslices = ndim - len(result) # <<<<<<<<<<<<<< + * if nslices: + * result.extend([slice(None)] * nslices) + */ + __pyx_t_5 = PyList_GET_SIZE(__pyx_v_result); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(66, 696, __pyx_L1_error) + __pyx_v_nslices = (__pyx_v_ndim - __pyx_t_5); + + /* "View.MemoryView":697 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + __pyx_t_1 = (__pyx_v_nslices != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":698 + * nslices = ndim - len(result) + * if nslices: + * result.extend([slice(None)] * nslices) # <<<<<<<<<<<<<< + * + * return have_slices or nslices, tuple(result) + */ + __pyx_t_3 = PyList_New(1 * ((__pyx_v_nslices<0) ? 0:__pyx_v_nslices)); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + { Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < __pyx_v_nslices; __pyx_temp++) { + __Pyx_INCREF(__pyx_slice__40); + __Pyx_GIVEREF(__pyx_slice__40); + PyList_SET_ITEM(__pyx_t_3, __pyx_temp, __pyx_slice__40); + } + } + __pyx_t_9 = __Pyx_PyList_Extend(__pyx_v_result, __pyx_t_3); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(66, 698, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":697 + * + * nslices = ndim - len(result) + * if nslices: # <<<<<<<<<<<<<< + * result.extend([slice(None)] * nslices) + * + */ + } + + /* "View.MemoryView":700 + * result.extend([slice(None)] * nslices) + * + * return have_slices or nslices, tuple(result) # <<<<<<<<<<<<<< + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + */ + __Pyx_XDECREF(__pyx_r); + if (!__pyx_v_have_slices) { + } else { + __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_have_slices); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L14_bool_binop_done; + } + __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_nslices); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __pyx_t_4; + __pyx_t_4 = 0; + __pyx_L14_bool_binop_done:; + __pyx_t_4 = PyList_AsTuple(__pyx_v_result); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(66, 700, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_11); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_4 = 0; + __pyx_r = ((PyObject*)__pyx_t_11); + __pyx_t_11 = 0; + goto __pyx_L0; + + /* "View.MemoryView":668 + * return isinstance(o, memoryview) + * + * cdef tuple _unellipsify(object index, int ndim): # <<<<<<<<<<<<<< + * """ + * Replace all ellipses with full slices and fill incomplete indices with + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_11); + __Pyx_AddTraceback("View.MemoryView._unellipsify", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_tup); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_idx); + __Pyx_XDECREF(__pyx_v_item); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":702 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + +static PyObject *assert_direct_dimensions(Py_ssize_t *__pyx_v_suboffsets, int __pyx_v_ndim) { + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + int __pyx_t_4; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assert_direct_dimensions", 0); + + /* "View.MemoryView":703 + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") + */ + __pyx_t_2 = (__pyx_v_suboffsets + __pyx_v_ndim); + for (__pyx_t_3 = __pyx_v_suboffsets; __pyx_t_3 < __pyx_t_2; __pyx_t_3++) { + __pyx_t_1 = __pyx_t_3; + __pyx_v_suboffset = (__pyx_t_1[0]); + + /* "View.MemoryView":704 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + __pyx_t_4 = ((__pyx_v_suboffset >= 0) != 0); + if (unlikely(__pyx_t_4)) { + + /* "View.MemoryView":705 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__74, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_Raise(__pyx_t_5, 0, 0, 0); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __PYX_ERR(66, 705, __pyx_L1_error) + + /* "View.MemoryView":704 + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * raise ValueError("Indirect dimensions not supported") + * + */ + } + } + + /* "View.MemoryView":702 + * return have_slices or nslices, tuple(result) + * + * cdef assert_direct_dimensions(Py_ssize_t *suboffsets, int ndim): # <<<<<<<<<<<<<< + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.assert_direct_dimensions", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":712 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + +static struct __pyx_memoryview_obj *__pyx_memview_slice(struct __pyx_memoryview_obj *__pyx_v_memview, PyObject *__pyx_v_indices) { + int __pyx_v_new_ndim; + int __pyx_v_suboffset_dim; + int __pyx_v_dim; + __Pyx_memviewslice __pyx_v_src; + __Pyx_memviewslice __pyx_v_dst; + __Pyx_memviewslice *__pyx_v_p_src; + struct __pyx_memoryviewslice_obj *__pyx_v_memviewsliceobj = 0; + __Pyx_memviewslice *__pyx_v_p_dst; + int *__pyx_v_p_suboffset_dim; + Py_ssize_t __pyx_v_start; + Py_ssize_t __pyx_v_stop; + Py_ssize_t __pyx_v_step; + int __pyx_v_have_start; + int __pyx_v_have_stop; + int __pyx_v_have_step; + PyObject *__pyx_v_index = NULL; + struct __pyx_memoryview_obj *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + struct __pyx_memoryview_obj *__pyx_t_4; + char *__pyx_t_5; + int __pyx_t_6; + Py_ssize_t __pyx_t_7; + PyObject *(*__pyx_t_8)(PyObject *); + PyObject *__pyx_t_9 = NULL; + Py_ssize_t __pyx_t_10; + int __pyx_t_11; + Py_ssize_t __pyx_t_12; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memview_slice", 0); + + /* "View.MemoryView":713 + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): + * cdef int new_ndim = 0, suboffset_dim = -1, dim # <<<<<<<<<<<<<< + * cdef bint negative_step + * cdef __Pyx_memviewslice src, dst + */ + __pyx_v_new_ndim = 0; + __pyx_v_suboffset_dim = -1; + + /* "View.MemoryView":720 + * + * + * memset(&dst, 0, sizeof(dst)) # <<<<<<<<<<<<<< + * + * cdef _memoryviewslice memviewsliceobj + */ + (void)(memset((&__pyx_v_dst), 0, (sizeof(__pyx_v_dst)))); + + /* "View.MemoryView":724 + * cdef _memoryviewslice memviewsliceobj + * + * assert memview.view.ndim > 0 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_memview->view.ndim > 0) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(66, 724, __pyx_L1_error) + } + } + #endif + + /* "View.MemoryView":726 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":727 + * + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview # <<<<<<<<<<<<<< + * p_src = &memviewsliceobj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(66, 727, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_memviewsliceobj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":728 + * if isinstance(memview, _memoryviewslice): + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, &src) + */ + __pyx_v_p_src = (&__pyx_v_memviewsliceobj->from_slice); + + /* "View.MemoryView":726 + * assert memview.view.ndim > 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * memviewsliceobj = memview + * p_src = &memviewsliceobj.from_slice + */ + goto __pyx_L3; + } + + /* "View.MemoryView":730 + * p_src = &memviewsliceobj.from_slice + * else: + * slice_copy(memview, &src) # <<<<<<<<<<<<<< + * p_src = &src + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_src)); + + /* "View.MemoryView":731 + * else: + * slice_copy(memview, &src) + * p_src = &src # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_p_src = (&__pyx_v_src); + } + __pyx_L3:; + + /* "View.MemoryView":737 + * + * + * dst.memview = p_src.memview # <<<<<<<<<<<<<< + * dst.data = p_src.data + * + */ + __pyx_t_4 = __pyx_v_p_src->memview; + __pyx_v_dst.memview = __pyx_t_4; + + /* "View.MemoryView":738 + * + * dst.memview = p_src.memview + * dst.data = p_src.data # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_v_p_src->data; + __pyx_v_dst.data = __pyx_t_5; + + /* "View.MemoryView":743 + * + * + * cdef __Pyx_memviewslice *p_dst = &dst # <<<<<<<<<<<<<< + * cdef int *p_suboffset_dim = &suboffset_dim + * cdef Py_ssize_t start, stop, step + */ + __pyx_v_p_dst = (&__pyx_v_dst); + + /* "View.MemoryView":744 + * + * cdef __Pyx_memviewslice *p_dst = &dst + * cdef int *p_suboffset_dim = &suboffset_dim # <<<<<<<<<<<<<< + * cdef Py_ssize_t start, stop, step + * cdef bint have_start, have_stop, have_step + */ + __pyx_v_p_suboffset_dim = (&__pyx_v_suboffset_dim); + + /* "View.MemoryView":748 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + __pyx_t_6 = 0; + if (likely(PyList_CheckExact(__pyx_v_indices)) || PyTuple_CheckExact(__pyx_v_indices)) { + __pyx_t_3 = __pyx_v_indices; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0; + __pyx_t_8 = NULL; + } else { + __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_indices); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(66, 748, __pyx_L1_error) + } + for (;;) { + if (likely(!__pyx_t_8)) { + if (likely(PyList_CheckExact(__pyx_t_3))) { + if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(66, 748, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } else { + if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(66, 748, __pyx_L1_error) + #else + __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + #endif + } + } else { + __pyx_t_9 = __pyx_t_8(__pyx_t_3); + if (unlikely(!__pyx_t_9)) { + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); + else __PYX_ERR(66, 748, __pyx_L1_error) + } + break; + } + __Pyx_GOTREF(__pyx_t_9); + } + __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_9); + __pyx_t_9 = 0; + __pyx_v_dim = __pyx_t_6; + __pyx_t_6 = (__pyx_t_6 + 1); + + /* "View.MemoryView":749 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + __pyx_t_2 = (PyIndex_Check(__pyx_v_index) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":753 + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + * index, 0, 0, # start, stop, step # <<<<<<<<<<<<<< + * 0, 0, 0, # have_{start,stop,step} + * False) + */ + __pyx_t_10 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_10 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 753, __pyx_L1_error) + + /* "View.MemoryView":750 + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_t_10, 0, 0, 0, 0, 0, 0); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(66, 750, __pyx_L1_error) + + /* "View.MemoryView":749 + * + * for dim, index in enumerate(indices): + * if PyIndex_Check(index): # <<<<<<<<<<<<<< + * slice_memviewslice( + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + */ + goto __pyx_L6; + } + + /* "View.MemoryView":756 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + __pyx_t_2 = (__pyx_v_index == Py_None); + __pyx_t_1 = (__pyx_t_2 != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":757 + * False) + * elif index is None: + * p_dst.shape[new_ndim] = 1 # <<<<<<<<<<<<<< + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + */ + (__pyx_v_p_dst->shape[__pyx_v_new_ndim]) = 1; + + /* "View.MemoryView":758 + * elif index is None: + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 # <<<<<<<<<<<<<< + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 + */ + (__pyx_v_p_dst->strides[__pyx_v_new_ndim]) = 0; + + /* "View.MemoryView":759 + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 # <<<<<<<<<<<<<< + * new_ndim += 1 + * else: + */ + (__pyx_v_p_dst->suboffsets[__pyx_v_new_ndim]) = -1L; + + /* "View.MemoryView":760 + * p_dst.strides[new_ndim] = 0 + * p_dst.suboffsets[new_ndim] = -1 + * new_ndim += 1 # <<<<<<<<<<<<<< + * else: + * start = index.start or 0 + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + + /* "View.MemoryView":756 + * 0, 0, 0, # have_{start,stop,step} + * False) + * elif index is None: # <<<<<<<<<<<<<< + * p_dst.shape[new_ndim] = 1 + * p_dst.strides[new_ndim] = 0 + */ + goto __pyx_L6; + } + + /* "View.MemoryView":762 + * new_ndim += 1 + * else: + * start = index.start or 0 # <<<<<<<<<<<<<< + * stop = index.stop or 0 + * step = index.step or 0 + */ + /*else*/ { + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 762, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 762, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 762, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L7_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L7_bool_binop_done:; + __pyx_v_start = __pyx_t_10; + + /* "View.MemoryView":763 + * else: + * start = index.start or 0 + * stop = index.stop or 0 # <<<<<<<<<<<<<< + * step = index.step or 0 + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 763, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 763, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L9_bool_binop_done:; + __pyx_v_stop = __pyx_t_10; + + /* "View.MemoryView":764 + * start = index.start or 0 + * stop = index.stop or 0 + * step = index.step or 0 # <<<<<<<<<<<<<< + * + * have_start = index.start is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 764, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(66, 764, __pyx_L1_error) + if (!__pyx_t_1) { + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + } else { + __pyx_t_12 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_12 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 764, __pyx_L1_error) + __pyx_t_10 = __pyx_t_12; + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + goto __pyx_L11_bool_binop_done; + } + __pyx_t_10 = 0; + __pyx_L11_bool_binop_done:; + __pyx_v_step = __pyx_t_10; + + /* "View.MemoryView":766 + * step = index.step or 0 + * + * have_start = index.start is not None # <<<<<<<<<<<<<< + * have_stop = index.stop is not None + * have_step = index.step is not None + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_start); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 766, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_start = __pyx_t_1; + + /* "View.MemoryView":767 + * + * have_start = index.start is not None + * have_stop = index.stop is not None # <<<<<<<<<<<<<< + * have_step = index.step is not None + * + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_stop); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 767, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_stop = __pyx_t_1; + + /* "View.MemoryView":768 + * have_start = index.start is not None + * have_stop = index.stop is not None + * have_step = index.step is not None # <<<<<<<<<<<<<< + * + * slice_memviewslice( + */ + __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_index, __pyx_n_s_step); if (unlikely(!__pyx_t_9)) __PYX_ERR(66, 768, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_9); + __pyx_t_1 = (__pyx_t_9 != Py_None); + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_v_have_step = __pyx_t_1; + + /* "View.MemoryView":770 + * have_step = index.step is not None + * + * slice_memviewslice( # <<<<<<<<<<<<<< + * p_dst, p_src.shape[dim], p_src.strides[dim], p_src.suboffsets[dim], + * dim, new_ndim, p_suboffset_dim, + */ + __pyx_t_11 = __pyx_memoryview_slice_memviewslice(__pyx_v_p_dst, (__pyx_v_p_src->shape[__pyx_v_dim]), (__pyx_v_p_src->strides[__pyx_v_dim]), (__pyx_v_p_src->suboffsets[__pyx_v_dim]), __pyx_v_dim, __pyx_v_new_ndim, __pyx_v_p_suboffset_dim, __pyx_v_start, __pyx_v_stop, __pyx_v_step, __pyx_v_have_start, __pyx_v_have_stop, __pyx_v_have_step, 1); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(66, 770, __pyx_L1_error) + + /* "View.MemoryView":776 + * have_start, have_stop, have_step, + * True) + * new_ndim += 1 # <<<<<<<<<<<<<< + * + * if isinstance(memview, _memoryviewslice): + */ + __pyx_v_new_ndim = (__pyx_v_new_ndim + 1); + } + __pyx_L6:; + + /* "View.MemoryView":748 + * cdef bint have_start, have_stop, have_step + * + * for dim, index in enumerate(indices): # <<<<<<<<<<<<<< + * if PyIndex_Check(index): + * slice_memviewslice( + */ + } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "View.MemoryView":778 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":779 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":780 + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, # <<<<<<<<<<<<<< + * memviewsliceobj.to_dtype_func, + * memview.dtype_is_object) + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(66, 780, __pyx_L1_error) } + + /* "View.MemoryView":781 + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * else: + */ + if (unlikely(!__pyx_v_memviewsliceobj)) { __Pyx_RaiseUnboundLocalError("memviewsliceobj"); __PYX_ERR(66, 781, __pyx_L1_error) } + + /* "View.MemoryView":779 + * + * if isinstance(memview, _memoryviewslice): + * return memoryview_fromslice(dst, new_ndim, # <<<<<<<<<<<<<< + * memviewsliceobj.to_object_func, + * memviewsliceobj.to_dtype_func, + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, __pyx_v_memviewsliceobj->to_object_func, __pyx_v_memviewsliceobj->to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(66, 779, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "View.MemoryView":778 + * new_ndim += 1 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * return memoryview_fromslice(dst, new_ndim, + * memviewsliceobj.to_object_func, + */ + } + + /* "View.MemoryView":784 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + /*else*/ { + __Pyx_XDECREF(((PyObject *)__pyx_r)); + + /* "View.MemoryView":785 + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_dst, __pyx_v_new_ndim, NULL, NULL, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "View.MemoryView":784 + * memview.dtype_is_object) + * else: + * return memoryview_fromslice(dst, new_ndim, NULL, NULL, # <<<<<<<<<<<<<< + * memview.dtype_is_object) + * + */ + if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_memoryview_type))))) __PYX_ERR(66, 784, __pyx_L1_error) + __pyx_r = ((struct __pyx_memoryview_obj *)__pyx_t_3); + __pyx_t_3 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":712 + * + * @cname('__pyx_memview_slice') + * cdef memoryview memview_slice(memoryview memview, object indices): # <<<<<<<<<<<<<< + * cdef int new_ndim = 0, suboffset_dim = -1, dim + * cdef bint negative_step + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_9); + __Pyx_AddTraceback("View.MemoryView.memview_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_memviewsliceobj); + __Pyx_XDECREF(__pyx_v_index); + __Pyx_XGIVEREF((PyObject *)__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":809 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + +static int __pyx_memoryview_slice_memviewslice(__Pyx_memviewslice *__pyx_v_dst, Py_ssize_t __pyx_v_shape, Py_ssize_t __pyx_v_stride, Py_ssize_t __pyx_v_suboffset, int __pyx_v_dim, int __pyx_v_new_ndim, int *__pyx_v_suboffset_dim, Py_ssize_t __pyx_v_start, Py_ssize_t __pyx_v_stop, Py_ssize_t __pyx_v_step, int __pyx_v_have_start, int __pyx_v_have_stop, int __pyx_v_have_step, int __pyx_v_is_slice) { + Py_ssize_t __pyx_v_new_shape; + int __pyx_v_negative_step; + int __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":829 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + __pyx_t_1 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":831 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + __pyx_t_1 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":832 + * + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":831 + * if not is_slice: + * + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if not 0 <= start < shape: + */ + } + + /* "View.MemoryView":833 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + __pyx_t_1 = (0 <= __pyx_v_start); + if (__pyx_t_1) { + __pyx_t_1 = (__pyx_v_start < __pyx_v_shape); + } + __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":834 + * start += shape + * if not 0 <= start < shape: + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) # <<<<<<<<<<<<<< + * else: + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"Index out of bounds (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(66, 834, __pyx_L1_error) + + /* "View.MemoryView":833 + * if start < 0: + * start += shape + * if not 0 <= start < shape: # <<<<<<<<<<<<<< + * _err_dim(IndexError, "Index out of bounds (axis %d)", dim) + * else: + */ + } + + /* "View.MemoryView":829 + * cdef bint negative_step + * + * if not is_slice: # <<<<<<<<<<<<<< + * + * if start < 0: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":837 + * else: + * + * negative_step = have_step != 0 and step < 0 # <<<<<<<<<<<<<< + * + * if have_step and step == 0: + */ + /*else*/ { + __pyx_t_1 = ((__pyx_v_have_step != 0) != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step < 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L6_bool_binop_done:; + __pyx_v_negative_step = __pyx_t_2; + + /* "View.MemoryView":839 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + __pyx_t_1 = (__pyx_v_have_step != 0); + if (__pyx_t_1) { + } else { + __pyx_t_2 = __pyx_t_1; + goto __pyx_L9_bool_binop_done; + } + __pyx_t_1 = ((__pyx_v_step == 0) != 0); + __pyx_t_2 = __pyx_t_1; + __pyx_L9_bool_binop_done:; + if (__pyx_t_2) { + + /* "View.MemoryView":840 + * + * if have_step and step == 0: + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Step may not be zero (axis %d)"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(66, 840, __pyx_L1_error) + + /* "View.MemoryView":839 + * negative_step = have_step != 0 and step < 0 + * + * if have_step and step == 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Step may not be zero (axis %d)", dim) + * + */ + } + + /* "View.MemoryView":843 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + __pyx_t_2 = (__pyx_v_have_start != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":844 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":845 + * if have_start: + * if start < 0: + * start += shape # <<<<<<<<<<<<<< + * if start < 0: + * start = 0 + */ + __pyx_v_start = (__pyx_v_start + __pyx_v_shape); + + /* "View.MemoryView":846 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + __pyx_t_2 = ((__pyx_v_start < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":847 + * start += shape + * if start < 0: + * start = 0 # <<<<<<<<<<<<<< + * elif start >= shape: + * if negative_step: + */ + __pyx_v_start = 0; + + /* "View.MemoryView":846 + * if start < 0: + * start += shape + * if start < 0: # <<<<<<<<<<<<<< + * start = 0 + * elif start >= shape: + */ + } + + /* "View.MemoryView":844 + * + * if have_start: + * if start < 0: # <<<<<<<<<<<<<< + * start += shape + * if start < 0: + */ + goto __pyx_L12; + } + + /* "View.MemoryView":848 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + __pyx_t_2 = ((__pyx_v_start >= __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":849 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":850 + * elif start >= shape: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = shape + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":849 + * start = 0 + * elif start >= shape: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L14; + } + + /* "View.MemoryView":852 + * start = shape - 1 + * else: + * start = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + /*else*/ { + __pyx_v_start = __pyx_v_shape; + } + __pyx_L14:; + + /* "View.MemoryView":848 + * if start < 0: + * start = 0 + * elif start >= shape: # <<<<<<<<<<<<<< + * if negative_step: + * start = shape - 1 + */ + } + __pyx_L12:; + + /* "View.MemoryView":843 + * + * + * if have_start: # <<<<<<<<<<<<<< + * if start < 0: + * start += shape + */ + goto __pyx_L11; + } + + /* "View.MemoryView":854 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":855 + * else: + * if negative_step: + * start = shape - 1 # <<<<<<<<<<<<<< + * else: + * start = 0 + */ + __pyx_v_start = (__pyx_v_shape - 1); + + /* "View.MemoryView":854 + * start = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * start = shape - 1 + * else: + */ + goto __pyx_L15; + } + + /* "View.MemoryView":857 + * start = shape - 1 + * else: + * start = 0 # <<<<<<<<<<<<<< + * + * if have_stop: + */ + /*else*/ { + __pyx_v_start = 0; + } + __pyx_L15:; + } + __pyx_L11:; + + /* "View.MemoryView":859 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + __pyx_t_2 = (__pyx_v_have_stop != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":860 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":861 + * if have_stop: + * if stop < 0: + * stop += shape # <<<<<<<<<<<<<< + * if stop < 0: + * stop = 0 + */ + __pyx_v_stop = (__pyx_v_stop + __pyx_v_shape); + + /* "View.MemoryView":862 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + __pyx_t_2 = ((__pyx_v_stop < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":863 + * stop += shape + * if stop < 0: + * stop = 0 # <<<<<<<<<<<<<< + * elif stop > shape: + * stop = shape + */ + __pyx_v_stop = 0; + + /* "View.MemoryView":862 + * if stop < 0: + * stop += shape + * if stop < 0: # <<<<<<<<<<<<<< + * stop = 0 + * elif stop > shape: + */ + } + + /* "View.MemoryView":860 + * + * if have_stop: + * if stop < 0: # <<<<<<<<<<<<<< + * stop += shape + * if stop < 0: + */ + goto __pyx_L17; + } + + /* "View.MemoryView":864 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + __pyx_t_2 = ((__pyx_v_stop > __pyx_v_shape) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":865 + * stop = 0 + * elif stop > shape: + * stop = shape # <<<<<<<<<<<<<< + * else: + * if negative_step: + */ + __pyx_v_stop = __pyx_v_shape; + + /* "View.MemoryView":864 + * if stop < 0: + * stop = 0 + * elif stop > shape: # <<<<<<<<<<<<<< + * stop = shape + * else: + */ + } + __pyx_L17:; + + /* "View.MemoryView":859 + * start = 0 + * + * if have_stop: # <<<<<<<<<<<<<< + * if stop < 0: + * stop += shape + */ + goto __pyx_L16; + } + + /* "View.MemoryView":867 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + /*else*/ { + __pyx_t_2 = (__pyx_v_negative_step != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":868 + * else: + * if negative_step: + * stop = -1 # <<<<<<<<<<<<<< + * else: + * stop = shape + */ + __pyx_v_stop = -1L; + + /* "View.MemoryView":867 + * stop = shape + * else: + * if negative_step: # <<<<<<<<<<<<<< + * stop = -1 + * else: + */ + goto __pyx_L19; + } + + /* "View.MemoryView":870 + * stop = -1 + * else: + * stop = shape # <<<<<<<<<<<<<< + * + * if not have_step: + */ + /*else*/ { + __pyx_v_stop = __pyx_v_shape; + } + __pyx_L19:; + } + __pyx_L16:; + + /* "View.MemoryView":872 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + __pyx_t_2 = ((!(__pyx_v_have_step != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":873 + * + * if not have_step: + * step = 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_step = 1; + + /* "View.MemoryView":872 + * stop = shape + * + * if not have_step: # <<<<<<<<<<<<<< + * step = 1 + * + */ + } + + /* "View.MemoryView":877 + * + * with cython.cdivision(True): + * new_shape = (stop - start) // step # <<<<<<<<<<<<<< + * + * if (stop - start) - step * new_shape: + */ + __pyx_v_new_shape = ((__pyx_v_stop - __pyx_v_start) / __pyx_v_step); + + /* "View.MemoryView":879 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + __pyx_t_2 = (((__pyx_v_stop - __pyx_v_start) - (__pyx_v_step * __pyx_v_new_shape)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":880 + * + * if (stop - start) - step * new_shape: + * new_shape += 1 # <<<<<<<<<<<<<< + * + * if new_shape < 0: + */ + __pyx_v_new_shape = (__pyx_v_new_shape + 1); + + /* "View.MemoryView":879 + * new_shape = (stop - start) // step + * + * if (stop - start) - step * new_shape: # <<<<<<<<<<<<<< + * new_shape += 1 + * + */ + } + + /* "View.MemoryView":882 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + __pyx_t_2 = ((__pyx_v_new_shape < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":883 + * + * if new_shape < 0: + * new_shape = 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_new_shape = 0; + + /* "View.MemoryView":882 + * new_shape += 1 + * + * if new_shape < 0: # <<<<<<<<<<<<<< + * new_shape = 0 + * + */ + } + + /* "View.MemoryView":886 + * + * + * dst.strides[new_ndim] = stride * step # <<<<<<<<<<<<<< + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset + */ + (__pyx_v_dst->strides[__pyx_v_new_ndim]) = (__pyx_v_stride * __pyx_v_step); + + /* "View.MemoryView":887 + * + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape # <<<<<<<<<<<<<< + * dst.suboffsets[new_ndim] = suboffset + * + */ + (__pyx_v_dst->shape[__pyx_v_new_ndim]) = __pyx_v_new_shape; + + /* "View.MemoryView":888 + * dst.strides[new_ndim] = stride * step + * dst.shape[new_ndim] = new_shape + * dst.suboffsets[new_ndim] = suboffset # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_dst->suboffsets[__pyx_v_new_ndim]) = __pyx_v_suboffset; + } + __pyx_L3:; + + /* "View.MemoryView":891 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + __pyx_t_2 = (((__pyx_v_suboffset_dim[0]) < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":892 + * + * if suboffset_dim[0] < 0: + * dst.data += start * stride # <<<<<<<<<<<<<< + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride + */ + __pyx_v_dst->data = (__pyx_v_dst->data + (__pyx_v_start * __pyx_v_stride)); + + /* "View.MemoryView":891 + * + * + * if suboffset_dim[0] < 0: # <<<<<<<<<<<<<< + * dst.data += start * stride + * else: + */ + goto __pyx_L23; + } + + /* "View.MemoryView":894 + * dst.data += start * stride + * else: + * dst.suboffsets[suboffset_dim[0]] += start * stride # <<<<<<<<<<<<<< + * + * if suboffset >= 0: + */ + /*else*/ { + __pyx_t_3 = (__pyx_v_suboffset_dim[0]); + (__pyx_v_dst->suboffsets[__pyx_t_3]) = ((__pyx_v_dst->suboffsets[__pyx_t_3]) + (__pyx_v_start * __pyx_v_stride)); + } + __pyx_L23:; + + /* "View.MemoryView":896 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":897 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + __pyx_t_2 = ((!(__pyx_v_is_slice != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":898 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + __pyx_t_2 = ((__pyx_v_new_ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":899 + * if not is_slice: + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset # <<<<<<<<<<<<<< + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + */ + __pyx_v_dst->data = ((((char **)__pyx_v_dst->data)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":898 + * if suboffset >= 0: + * if not is_slice: + * if new_ndim == 0: # <<<<<<<<<<<<<< + * dst.data = ( dst.data)[0] + suboffset + * else: + */ + goto __pyx_L26; + } + + /* "View.MemoryView":901 + * dst.data = ( dst.data)[0] + suboffset + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " # <<<<<<<<<<<<<< + * "must be indexed and not sliced", dim) + * else: + */ + /*else*/ { + + /* "View.MemoryView":902 + * else: + * _err_dim(IndexError, "All dimensions preceding dimension %d " + * "must be indexed and not sliced", dim) # <<<<<<<<<<<<<< + * else: + * suboffset_dim[0] = new_ndim + */ + __pyx_t_3 = __pyx_memoryview_err_dim(__pyx_builtin_IndexError, ((char *)"All dimensions preceding dimension %d must be indexed and not sliced"), __pyx_v_dim); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(66, 901, __pyx_L1_error) + } + __pyx_L26:; + + /* "View.MemoryView":897 + * + * if suboffset >= 0: + * if not is_slice: # <<<<<<<<<<<<<< + * if new_ndim == 0: + * dst.data = ( dst.data)[0] + suboffset + */ + goto __pyx_L25; + } + + /* "View.MemoryView":904 + * "must be indexed and not sliced", dim) + * else: + * suboffset_dim[0] = new_ndim # <<<<<<<<<<<<<< + * + * return 0 + */ + /*else*/ { + (__pyx_v_suboffset_dim[0]) = __pyx_v_new_ndim; + } + __pyx_L25:; + + /* "View.MemoryView":896 + * dst.suboffsets[suboffset_dim[0]] += start * stride + * + * if suboffset >= 0: # <<<<<<<<<<<<<< + * if not is_slice: + * if new_ndim == 0: + */ + } + + /* "View.MemoryView":906 + * suboffset_dim[0] = new_ndim + * + * return 0 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":809 + * + * @cname('__pyx_memoryview_slice_memviewslice') + * cdef int slice_memviewslice( # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * Py_ssize_t shape, Py_ssize_t stride, Py_ssize_t suboffset, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.slice_memviewslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":912 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + +static char *__pyx_pybuffer_index(Py_buffer *__pyx_v_view, char *__pyx_v_bufp, Py_ssize_t __pyx_v_index, Py_ssize_t __pyx_v_dim) { + Py_ssize_t __pyx_v_shape; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_suboffset; + Py_ssize_t __pyx_v_itemsize; + char *__pyx_v_resultp; + char *__pyx_r; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("pybuffer_index", 0); + + /* "View.MemoryView":914 + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 # <<<<<<<<<<<<<< + * cdef Py_ssize_t itemsize = view.itemsize + * cdef char *resultp + */ + __pyx_v_suboffset = -1L; + + /* "View.MemoryView":915 + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + * cdef Py_ssize_t itemsize = view.itemsize # <<<<<<<<<<<<<< + * cdef char *resultp + * + */ + __pyx_t_1 = __pyx_v_view->itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":918 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + __pyx_t_2 = ((__pyx_v_view->ndim == 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":919 + * + * if view.ndim == 0: + * shape = view.len / itemsize # <<<<<<<<<<<<<< + * stride = itemsize + * else: + */ + if (unlikely(__pyx_v_itemsize == 0)) { + PyErr_SetString(PyExc_ZeroDivisionError, "integer division or modulo by zero"); + __PYX_ERR(66, 919, __pyx_L1_error) + } + else if (sizeof(Py_ssize_t) == sizeof(long) && (!(((Py_ssize_t)-1) > 0)) && unlikely(__pyx_v_itemsize == (Py_ssize_t)-1) && unlikely(UNARY_NEG_WOULD_OVERFLOW(__pyx_v_view->len))) { + PyErr_SetString(PyExc_OverflowError, "value too large to perform division"); + __PYX_ERR(66, 919, __pyx_L1_error) + } + __pyx_v_shape = (__pyx_v_view->len / __pyx_v_itemsize); + + /* "View.MemoryView":920 + * if view.ndim == 0: + * shape = view.len / itemsize + * stride = itemsize # <<<<<<<<<<<<<< + * else: + * shape = view.shape[dim] + */ + __pyx_v_stride = __pyx_v_itemsize; + + /* "View.MemoryView":918 + * cdef char *resultp + * + * if view.ndim == 0: # <<<<<<<<<<<<<< + * shape = view.len / itemsize + * stride = itemsize + */ + goto __pyx_L3; + } + + /* "View.MemoryView":922 + * stride = itemsize + * else: + * shape = view.shape[dim] # <<<<<<<<<<<<<< + * stride = view.strides[dim] + * if view.suboffsets != NULL: + */ + /*else*/ { + __pyx_v_shape = (__pyx_v_view->shape[__pyx_v_dim]); + + /* "View.MemoryView":923 + * else: + * shape = view.shape[dim] + * stride = view.strides[dim] # <<<<<<<<<<<<<< + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] + */ + __pyx_v_stride = (__pyx_v_view->strides[__pyx_v_dim]); + + /* "View.MemoryView":924 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + __pyx_t_2 = ((__pyx_v_view->suboffsets != NULL) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":925 + * stride = view.strides[dim] + * if view.suboffsets != NULL: + * suboffset = view.suboffsets[dim] # <<<<<<<<<<<<<< + * + * if index < 0: + */ + __pyx_v_suboffset = (__pyx_v_view->suboffsets[__pyx_v_dim]); + + /* "View.MemoryView":924 + * shape = view.shape[dim] + * stride = view.strides[dim] + * if view.suboffsets != NULL: # <<<<<<<<<<<<<< + * suboffset = view.suboffsets[dim] + * + */ + } + } + __pyx_L3:; + + /* "View.MemoryView":927 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":928 + * + * if index < 0: + * index += view.shape[dim] # <<<<<<<<<<<<<< + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + */ + __pyx_v_index = (__pyx_v_index + (__pyx_v_view->shape[__pyx_v_dim])); + + /* "View.MemoryView":929 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index < 0) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":930 + * index += view.shape[dim] + * if index < 0: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * if index >= shape: + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 930, __pyx_L1_error) + + /* "View.MemoryView":929 + * if index < 0: + * index += view.shape[dim] + * if index < 0: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":927 + * suboffset = view.suboffsets[dim] + * + * if index < 0: # <<<<<<<<<<<<<< + * index += view.shape[dim] + * if index < 0: + */ + } + + /* "View.MemoryView":932 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + __pyx_t_2 = ((__pyx_v_index >= __pyx_v_shape) != 0); + if (unlikely(__pyx_t_2)) { + + /* "View.MemoryView":933 + * + * if index >= shape: + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) # <<<<<<<<<<<<<< + * + * resultp = bufp + index * stride + */ + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_IndexError, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 933, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_3, 0, 0, 0); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __PYX_ERR(66, 933, __pyx_L1_error) + + /* "View.MemoryView":932 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * if index >= shape: # <<<<<<<<<<<<<< + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + */ + } + + /* "View.MemoryView":935 + * raise IndexError("Out of bounds on buffer access (axis %d)" % dim) + * + * resultp = bufp + index * stride # <<<<<<<<<<<<<< + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset + */ + __pyx_v_resultp = (__pyx_v_bufp + (__pyx_v_index * __pyx_v_stride)); + + /* "View.MemoryView":936 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + __pyx_t_2 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":937 + * resultp = bufp + index * stride + * if suboffset >= 0: + * resultp = ( resultp)[0] + suboffset # <<<<<<<<<<<<<< + * + * return resultp + */ + __pyx_v_resultp = ((((char **)__pyx_v_resultp)[0]) + __pyx_v_suboffset); + + /* "View.MemoryView":936 + * + * resultp = bufp + index * stride + * if suboffset >= 0: # <<<<<<<<<<<<<< + * resultp = ( resultp)[0] + suboffset + * + */ + } + + /* "View.MemoryView":939 + * resultp = ( resultp)[0] + suboffset + * + * return resultp # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_resultp; + goto __pyx_L0; + + /* "View.MemoryView":912 + * + * @cname('__pyx_pybuffer_index') + * cdef char *pybuffer_index(Py_buffer *view, char *bufp, Py_ssize_t index, # <<<<<<<<<<<<<< + * Py_ssize_t dim) except NULL: + * cdef Py_ssize_t shape, stride, suboffset = -1 + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView.pybuffer_index", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":945 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + +static int __pyx_memslice_transpose(__Pyx_memviewslice *__pyx_v_memslice) { + int __pyx_v_ndim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + int __pyx_v_i; + int __pyx_v_j; + int __pyx_r; + int __pyx_t_1; + Py_ssize_t *__pyx_t_2; + long __pyx_t_3; + long __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":946 + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: + * cdef int ndim = memslice.memview.view.ndim # <<<<<<<<<<<<<< + * + * cdef Py_ssize_t *shape = memslice.shape + */ + __pyx_t_1 = __pyx_v_memslice->memview->view.ndim; + __pyx_v_ndim = __pyx_t_1; + + /* "View.MemoryView":948 + * cdef int ndim = memslice.memview.view.ndim + * + * cdef Py_ssize_t *shape = memslice.shape # <<<<<<<<<<<<<< + * cdef Py_ssize_t *strides = memslice.strides + * + */ + __pyx_t_2 = __pyx_v_memslice->shape; + __pyx_v_shape = __pyx_t_2; + + /* "View.MemoryView":949 + * + * cdef Py_ssize_t *shape = memslice.shape + * cdef Py_ssize_t *strides = memslice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = __pyx_v_memslice->strides; + __pyx_v_strides = __pyx_t_2; + + /* "View.MemoryView":953 + * + * cdef int i, j + * for i in range(ndim / 2): # <<<<<<<<<<<<<< + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + */ + __pyx_t_3 = (__pyx_v_ndim / 2); + __pyx_t_4 = __pyx_t_3; + for (__pyx_t_1 = 0; __pyx_t_1 < __pyx_t_4; __pyx_t_1+=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":954 + * cdef int i, j + * for i in range(ndim / 2): + * j = ndim - 1 - i # <<<<<<<<<<<<<< + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] + */ + __pyx_v_j = ((__pyx_v_ndim - 1) - __pyx_v_i); + + /* "View.MemoryView":955 + * for i in range(ndim / 2): + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] # <<<<<<<<<<<<<< + * shape[i], shape[j] = shape[j], shape[i] + * + */ + __pyx_t_5 = (__pyx_v_strides[__pyx_v_j]); + __pyx_t_6 = (__pyx_v_strides[__pyx_v_i]); + (__pyx_v_strides[__pyx_v_i]) = __pyx_t_5; + (__pyx_v_strides[__pyx_v_j]) = __pyx_t_6; + + /* "View.MemoryView":956 + * j = ndim - 1 - i + * strides[i], strides[j] = strides[j], strides[i] + * shape[i], shape[j] = shape[j], shape[i] # <<<<<<<<<<<<<< + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + */ + __pyx_t_6 = (__pyx_v_shape[__pyx_v_j]); + __pyx_t_5 = (__pyx_v_shape[__pyx_v_i]); + (__pyx_v_shape[__pyx_v_i]) = __pyx_t_6; + (__pyx_v_shape[__pyx_v_j]) = __pyx_t_5; + + /* "View.MemoryView":958 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_i]) >= 0) != 0); + if (!__pyx_t_8) { + } else { + __pyx_t_7 = __pyx_t_8; + goto __pyx_L6_bool_binop_done; + } + __pyx_t_8 = (((__pyx_v_memslice->suboffsets[__pyx_v_j]) >= 0) != 0); + __pyx_t_7 = __pyx_t_8; + __pyx_L6_bool_binop_done:; + if (__pyx_t_7) { + + /* "View.MemoryView":959 + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") # <<<<<<<<<<<<<< + * + * return 1 + */ + __pyx_t_9 = __pyx_memoryview_err(__pyx_builtin_ValueError, ((char *)"Cannot transpose memoryview with indirect dimensions")); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(66, 959, __pyx_L1_error) + + /* "View.MemoryView":958 + * shape[i], shape[j] = shape[j], shape[i] + * + * if memslice.suboffsets[i] >= 0 or memslice.suboffsets[j] >= 0: # <<<<<<<<<<<<<< + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + */ + } + } + + /* "View.MemoryView":961 + * _err(ValueError, "Cannot transpose memoryview with indirect dimensions") + * + * return 1 # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = 1; + goto __pyx_L0; + + /* "View.MemoryView":945 + * + * @cname('__pyx_memslice_transpose') + * cdef int transpose_memslice(__Pyx_memviewslice *memslice) nogil except 0: # <<<<<<<<<<<<<< + * cdef int ndim = memslice.memview.view.ndim + * + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.transpose_memslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = 0; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":978 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + +/* Python wrapper */ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self); /*proto*/ +static void __pyx_memoryviewslice___dealloc__(PyObject *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__ (wrapper)", 0); + __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +static void __pyx_memoryviewslice___pyx_pf_15View_dot_MemoryView_16_memoryviewslice___dealloc__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__dealloc__", 0); + + /* "View.MemoryView":979 + * + * def __dealloc__(self): + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) # <<<<<<<<<<<<<< + * + * cdef convert_item_to_object(self, char *itemp): + */ + __PYX_XDEC_MEMVIEW((&__pyx_v_self->from_slice), 1); + + /* "View.MemoryView":978 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * def __dealloc__(self): # <<<<<<<<<<<<<< + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":981 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + +static PyObject *__pyx_memoryviewslice_convert_item_to_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("convert_item_to_object", 0); + + /* "View.MemoryView":982 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_object_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":983 + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) # <<<<<<<<<<<<<< + * else: + * return memoryview.convert_item_to_object(self, itemp) + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_v_self->to_object_func(__pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 983, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + + /* "View.MemoryView":982 + * + * cdef convert_item_to_object(self, char *itemp): + * if self.to_object_func != NULL: # <<<<<<<<<<<<<< + * return self.to_object_func(itemp) + * else: + */ + } + + /* "View.MemoryView":985 + * return self.to_object_func(itemp) + * else: + * return memoryview.convert_item_to_object(self, itemp) # <<<<<<<<<<<<<< + * + * cdef assign_item_from_object(self, char *itemp, object value): + */ + /*else*/ { + __Pyx_XDECREF(__pyx_r); + __pyx_t_2 = __pyx_memoryview_convert_item_to_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_r = __pyx_t_2; + __pyx_t_2 = 0; + goto __pyx_L0; + } + + /* "View.MemoryView":981 + * __PYX_XDEC_MEMVIEW(&self.from_slice, 1) + * + * cdef convert_item_to_object(self, char *itemp): # <<<<<<<<<<<<<< + * if self.to_object_func != NULL: + * return self.to_object_func(itemp) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.convert_item_to_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":987 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + +static PyObject *__pyx_memoryviewslice_assign_item_from_object(struct __pyx_memoryviewslice_obj *__pyx_v_self, char *__pyx_v_itemp, PyObject *__pyx_v_value) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("assign_item_from_object", 0); + + /* "View.MemoryView":988 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + __pyx_t_1 = ((__pyx_v_self->to_dtype_func != NULL) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":989 + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) # <<<<<<<<<<<<<< + * else: + * memoryview.assign_item_from_object(self, itemp, value) + */ + __pyx_t_2 = __pyx_v_self->to_dtype_func(__pyx_v_itemp, __pyx_v_value); if (unlikely(__pyx_t_2 == ((int)0))) __PYX_ERR(66, 989, __pyx_L1_error) + + /* "View.MemoryView":988 + * + * cdef assign_item_from_object(self, char *itemp, object value): + * if self.to_dtype_func != NULL: # <<<<<<<<<<<<<< + * self.to_dtype_func(itemp, value) + * else: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":991 + * self.to_dtype_func(itemp, value) + * else: + * memoryview.assign_item_from_object(self, itemp, value) # <<<<<<<<<<<<<< + * + * @property + */ + /*else*/ { + __pyx_t_3 = __pyx_memoryview_assign_item_from_object(((struct __pyx_memoryview_obj *)__pyx_v_self), __pyx_v_itemp, __pyx_v_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + } + __pyx_L3:; + + /* "View.MemoryView":987 + * return memoryview.convert_item_to_object(self, itemp) + * + * cdef assign_item_from_object(self, char *itemp, object value): # <<<<<<<<<<<<<< + * if self.to_dtype_func != NULL: + * self.to_dtype_func(itemp, value) + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.assign_item_from_object", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":994 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self); /*proto*/ +static PyObject *__pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(PyObject *__pyx_v_self) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); + __pyx_r = __pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView_16_memoryviewslice_4base___get__(struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__get__", 0); + + /* "View.MemoryView":995 + * @property + * def base(self): + * return self.from_object # <<<<<<<<<<<<<< + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_self->from_object); + __pyx_r = __pyx_v_self->from_object; + goto __pyx_L0; + + /* "View.MemoryView":994 + * + * @property + * def base(self): # <<<<<<<<<<<<<< + * return self.from_object + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_1__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice___reduce_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice___reduce_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__reduce_cython__", 0); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__75, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 2, __pyx_L1_error) + + /* "(tree fragment)":1 + * def __reduce_cython__(self): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + +/* Python wrapper */ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ +static PyObject *__pyx_pw___pyx_memoryviewslice_3__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); + __pyx_r = __pyx_pf___pyx_memoryviewslice_2__setstate_cython__(((struct __pyx_memoryviewslice_obj *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf___pyx_memoryviewslice_2__setstate_cython__(CYTHON_UNUSED struct __pyx_memoryviewslice_obj *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__setstate_cython__", 0); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__76, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 4, __pyx_L1_error) + + /* "(tree fragment)":3 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView._memoryviewslice.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1001 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + +static PyObject *__pyx_memoryview_fromslice(__Pyx_memviewslice __pyx_v_memviewslice, int __pyx_v_ndim, PyObject *(*__pyx_v_to_object_func)(char *), int (*__pyx_v_to_dtype_func)(char *, PyObject *), int __pyx_v_dtype_is_object) { + struct __pyx_memoryviewslice_obj *__pyx_v_result = 0; + Py_ssize_t __pyx_v_suboffset; + PyObject *__pyx_v_length = NULL; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + __Pyx_TypeInfo *__pyx_t_4; + Py_buffer __pyx_t_5; + Py_ssize_t *__pyx_t_6; + Py_ssize_t *__pyx_t_7; + Py_ssize_t *__pyx_t_8; + Py_ssize_t __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_fromslice", 0); + + /* "View.MemoryView":1009 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + __pyx_t_1 = ((((PyObject *)__pyx_v_memviewslice.memview) == Py_None) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1010 + * + * if memviewslice.memview == Py_None: + * return None # <<<<<<<<<<<<<< + * + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + + /* "View.MemoryView":1009 + * cdef _memoryviewslice result + * + * if memviewslice.memview == Py_None: # <<<<<<<<<<<<<< + * return None + * + */ + } + + /* "View.MemoryView":1015 + * + * + * result = _memoryviewslice(None, 0, dtype_is_object) # <<<<<<<<<<<<<< + * + * result.from_slice = memviewslice + */ + __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_dtype_is_object); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(Py_None); + __Pyx_GIVEREF(Py_None); + PyTuple_SET_ITEM(__pyx_t_3, 0, Py_None); + __Pyx_INCREF(__pyx_int_0); + __Pyx_GIVEREF(__pyx_int_0); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_memoryviewslice_type), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result = ((struct __pyx_memoryviewslice_obj *)__pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1017 + * result = _memoryviewslice(None, 0, dtype_is_object) + * + * result.from_slice = memviewslice # <<<<<<<<<<<<<< + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + */ + __pyx_v_result->from_slice = __pyx_v_memviewslice; + + /* "View.MemoryView":1018 + * + * result.from_slice = memviewslice + * __PYX_INC_MEMVIEW(&memviewslice, 1) # <<<<<<<<<<<<<< + * + * result.from_object = ( memviewslice.memview).base + */ + __PYX_INC_MEMVIEW((&__pyx_v_memviewslice), 1); + + /* "View.MemoryView":1020 + * __PYX_INC_MEMVIEW(&memviewslice, 1) + * + * result.from_object = ( memviewslice.memview).base # <<<<<<<<<<<<<< + * result.typeinfo = memviewslice.memview.typeinfo + * + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_memviewslice.memview), __pyx_n_s_base); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_2); + __Pyx_GOTREF(__pyx_v_result->from_object); + __Pyx_DECREF(__pyx_v_result->from_object); + __pyx_v_result->from_object = __pyx_t_2; + __pyx_t_2 = 0; + + /* "View.MemoryView":1021 + * + * result.from_object = ( memviewslice.memview).base + * result.typeinfo = memviewslice.memview.typeinfo # <<<<<<<<<<<<<< + * + * result.view = memviewslice.memview.view + */ + __pyx_t_4 = __pyx_v_memviewslice.memview->typeinfo; + __pyx_v_result->__pyx_base.typeinfo = __pyx_t_4; + + /* "View.MemoryView":1023 + * result.typeinfo = memviewslice.memview.typeinfo + * + * result.view = memviewslice.memview.view # <<<<<<<<<<<<<< + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + */ + __pyx_t_5 = __pyx_v_memviewslice.memview->view; + __pyx_v_result->__pyx_base.view = __pyx_t_5; + + /* "View.MemoryView":1024 + * + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data # <<<<<<<<<<<<<< + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + */ + __pyx_v_result->__pyx_base.view.buf = ((void *)__pyx_v_memviewslice.data); + + /* "View.MemoryView":1025 + * result.view = memviewslice.memview.view + * result.view.buf = memviewslice.data + * result.view.ndim = ndim # <<<<<<<<<<<<<< + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) + */ + __pyx_v_result->__pyx_base.view.ndim = __pyx_v_ndim; + + /* "View.MemoryView":1026 + * result.view.buf = memviewslice.data + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None # <<<<<<<<<<<<<< + * Py_INCREF(Py_None) + * + */ + ((Py_buffer *)(&__pyx_v_result->__pyx_base.view))->obj = Py_None; + + /* "View.MemoryView":1027 + * result.view.ndim = ndim + * (<__pyx_buffer *> &result.view).obj = Py_None + * Py_INCREF(Py_None) # <<<<<<<<<<<<<< + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + */ + Py_INCREF(Py_None); + + /* "View.MemoryView":1029 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + __pyx_t_1 = ((((struct __pyx_memoryview_obj *)__pyx_v_memviewslice.memview)->flags & PyBUF_WRITABLE) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1030 + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: + * result.flags = PyBUF_RECORDS # <<<<<<<<<<<<<< + * else: + * result.flags = PyBUF_RECORDS_RO + */ + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS; + + /* "View.MemoryView":1029 + * Py_INCREF(Py_None) + * + * if (memviewslice.memview).flags & PyBUF_WRITABLE: # <<<<<<<<<<<<<< + * result.flags = PyBUF_RECORDS + * else: + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1032 + * result.flags = PyBUF_RECORDS + * else: + * result.flags = PyBUF_RECORDS_RO # <<<<<<<<<<<<<< + * + * result.view.shape = result.from_slice.shape + */ + /*else*/ { + __pyx_v_result->__pyx_base.flags = PyBUF_RECORDS_RO; + } + __pyx_L4:; + + /* "View.MemoryView":1034 + * result.flags = PyBUF_RECORDS_RO + * + * result.view.shape = result.from_slice.shape # <<<<<<<<<<<<<< + * result.view.strides = result.from_slice.strides + * + */ + __pyx_v_result->__pyx_base.view.shape = ((Py_ssize_t *)__pyx_v_result->from_slice.shape); + + /* "View.MemoryView":1035 + * + * result.view.shape = result.from_slice.shape + * result.view.strides = result.from_slice.strides # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_result->__pyx_base.view.strides = ((Py_ssize_t *)__pyx_v_result->from_slice.strides); + + /* "View.MemoryView":1038 + * + * + * result.view.suboffsets = NULL # <<<<<<<<<<<<<< + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + */ + __pyx_v_result->__pyx_base.view.suboffsets = NULL; + + /* "View.MemoryView":1039 + * + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: # <<<<<<<<<<<<<< + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + */ + __pyx_t_7 = (__pyx_v_result->from_slice.suboffsets + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->from_slice.suboffsets; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_v_suboffset = (__pyx_t_6[0]); + + /* "View.MemoryView":1040 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + __pyx_t_1 = ((__pyx_v_suboffset >= 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1041 + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_result->__pyx_base.view.suboffsets = ((Py_ssize_t *)__pyx_v_result->from_slice.suboffsets); + + /* "View.MemoryView":1042 + * if suboffset >= 0: + * result.view.suboffsets = result.from_slice.suboffsets + * break # <<<<<<<<<<<<<< + * + * result.view.len = result.view.itemsize + */ + goto __pyx_L6_break; + + /* "View.MemoryView":1040 + * result.view.suboffsets = NULL + * for suboffset in result.from_slice.suboffsets[:ndim]: + * if suboffset >= 0: # <<<<<<<<<<<<<< + * result.view.suboffsets = result.from_slice.suboffsets + * break + */ + } + } + __pyx_L6_break:; + + /* "View.MemoryView":1044 + * break + * + * result.view.len = result.view.itemsize # <<<<<<<<<<<<<< + * for length in result.view.shape[:ndim]: + * result.view.len *= length + */ + __pyx_t_9 = __pyx_v_result->__pyx_base.view.itemsize; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + + /* "View.MemoryView":1045 + * + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: # <<<<<<<<<<<<<< + * result.view.len *= length + * + */ + __pyx_t_7 = (__pyx_v_result->__pyx_base.view.shape + __pyx_v_ndim); + for (__pyx_t_8 = __pyx_v_result->__pyx_base.view.shape; __pyx_t_8 < __pyx_t_7; __pyx_t_8++) { + __pyx_t_6 = __pyx_t_8; + __pyx_t_2 = PyInt_FromSsize_t((__pyx_t_6[0])); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_length, __pyx_t_2); + __pyx_t_2 = 0; + + /* "View.MemoryView":1046 + * result.view.len = result.view.itemsize + * for length in result.view.shape[:ndim]: + * result.view.len *= length # <<<<<<<<<<<<<< + * + * result.to_object_func = to_object_func + */ + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_result->__pyx_base.view.len); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyNumber_InPlaceMultiply(__pyx_t_2, __pyx_v_length); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_9 = __Pyx_PyIndex_AsSsize_t(__pyx_t_3); if (unlikely((__pyx_t_9 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(66, 1046, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_result->__pyx_base.view.len = __pyx_t_9; + } + + /* "View.MemoryView":1048 + * result.view.len *= length + * + * result.to_object_func = to_object_func # <<<<<<<<<<<<<< + * result.to_dtype_func = to_dtype_func + * + */ + __pyx_v_result->to_object_func = __pyx_v_to_object_func; + + /* "View.MemoryView":1049 + * + * result.to_object_func = to_object_func + * result.to_dtype_func = to_dtype_func # <<<<<<<<<<<<<< + * + * return result + */ + __pyx_v_result->to_dtype_func = __pyx_v_to_dtype_func; + + /* "View.MemoryView":1051 + * result.to_dtype_func = to_dtype_func + * + * return result # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(((PyObject *)__pyx_v_result)); + __pyx_r = ((PyObject *)__pyx_v_result); + goto __pyx_L0; + + /* "View.MemoryView":1001 + * + * @cname('__pyx_memoryview_fromslice') + * cdef memoryview_fromslice(__Pyx_memviewslice memviewslice, # <<<<<<<<<<<<<< + * int ndim, + * object (*to_object_func)(char *), + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.memoryview_fromslice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_result); + __Pyx_XDECREF(__pyx_v_length); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1054 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + */ + +static __Pyx_memviewslice *__pyx_memoryview_get_slice_from_memoryview(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_mslice) { + struct __pyx_memoryviewslice_obj *__pyx_v_obj = 0; + __Pyx_memviewslice *__pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("get_slice_from_memview", 0); + + /* "View.MemoryView":1057 + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1058 + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): + * obj = memview # <<<<<<<<<<<<<< + * return &obj.from_slice + * else: + */ + if (!(likely(((((PyObject *)__pyx_v_memview)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type))))) __PYX_ERR(66, 1058, __pyx_L1_error) + __pyx_t_3 = ((PyObject *)__pyx_v_memview); + __Pyx_INCREF(__pyx_t_3); + __pyx_v_obj = ((struct __pyx_memoryviewslice_obj *)__pyx_t_3); + __pyx_t_3 = 0; + + /* "View.MemoryView":1059 + * if isinstance(memview, _memoryviewslice): + * obj = memview + * return &obj.from_slice # <<<<<<<<<<<<<< + * else: + * slice_copy(memview, mslice) + */ + __pyx_r = (&__pyx_v_obj->from_slice); + goto __pyx_L0; + + /* "View.MemoryView":1057 + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * obj = memview + * return &obj.from_slice + */ + } + + /* "View.MemoryView":1061 + * return &obj.from_slice + * else: + * slice_copy(memview, mslice) # <<<<<<<<<<<<<< + * return mslice + * + */ + /*else*/ { + __pyx_memoryview_slice_copy(__pyx_v_memview, __pyx_v_mslice); + + /* "View.MemoryView":1062 + * else: + * slice_copy(memview, mslice) + * return mslice # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_slice_copy') + */ + __pyx_r = __pyx_v_mslice; + goto __pyx_L0; + } + + /* "View.MemoryView":1054 + * + * @cname('__pyx_memoryview_get_slice_from_memoryview') + * cdef __Pyx_memviewslice *get_slice_from_memview(memoryview memview, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *mslice) except NULL: + * cdef _memoryviewslice obj + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("View.MemoryView.get_slice_from_memview", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_obj); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1065 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + +static void __pyx_memoryview_slice_copy(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_dst) { + int __pyx_v_dim; + Py_ssize_t *__pyx_v_shape; + Py_ssize_t *__pyx_v_strides; + Py_ssize_t *__pyx_v_suboffsets; + __Pyx_RefNannyDeclarations + Py_ssize_t *__pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + Py_ssize_t __pyx_t_5; + __Pyx_RefNannySetupContext("slice_copy", 0); + + /* "View.MemoryView":1069 + * cdef (Py_ssize_t*) shape, strides, suboffsets + * + * shape = memview.view.shape # <<<<<<<<<<<<<< + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets + */ + __pyx_t_1 = __pyx_v_memview->view.shape; + __pyx_v_shape = __pyx_t_1; + + /* "View.MemoryView":1070 + * + * shape = memview.view.shape + * strides = memview.view.strides # <<<<<<<<<<<<<< + * suboffsets = memview.view.suboffsets + * + */ + __pyx_t_1 = __pyx_v_memview->view.strides; + __pyx_v_strides = __pyx_t_1; + + /* "View.MemoryView":1071 + * shape = memview.view.shape + * strides = memview.view.strides + * suboffsets = memview.view.suboffsets # <<<<<<<<<<<<<< + * + * dst.memview = <__pyx_memoryview *> memview + */ + __pyx_t_1 = __pyx_v_memview->view.suboffsets; + __pyx_v_suboffsets = __pyx_t_1; + + /* "View.MemoryView":1073 + * suboffsets = memview.view.suboffsets + * + * dst.memview = <__pyx_memoryview *> memview # <<<<<<<<<<<<<< + * dst.data = memview.view.buf + * + */ + __pyx_v_dst->memview = ((struct __pyx_memoryview_obj *)__pyx_v_memview); + + /* "View.MemoryView":1074 + * + * dst.memview = <__pyx_memoryview *> memview + * dst.data = memview.view.buf # <<<<<<<<<<<<<< + * + * for dim in range(memview.view.ndim): + */ + __pyx_v_dst->data = ((char *)__pyx_v_memview->view.buf); + + /* "View.MemoryView":1076 + * dst.data = memview.view.buf + * + * for dim in range(memview.view.ndim): # <<<<<<<<<<<<<< + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + */ + __pyx_t_2 = __pyx_v_memview->view.ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_dim = __pyx_t_4; + + /* "View.MemoryView":1077 + * + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] # <<<<<<<<<<<<<< + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + */ + (__pyx_v_dst->shape[__pyx_v_dim]) = (__pyx_v_shape[__pyx_v_dim]); + + /* "View.MemoryView":1078 + * for dim in range(memview.view.ndim): + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] # <<<<<<<<<<<<<< + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 + * + */ + (__pyx_v_dst->strides[__pyx_v_dim]) = (__pyx_v_strides[__pyx_v_dim]); + + /* "View.MemoryView":1079 + * dst.shape[dim] = shape[dim] + * dst.strides[dim] = strides[dim] + * dst.suboffsets[dim] = suboffsets[dim] if suboffsets else -1 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object') + */ + if ((__pyx_v_suboffsets != 0)) { + __pyx_t_5 = (__pyx_v_suboffsets[__pyx_v_dim]); + } else { + __pyx_t_5 = -1L; + } + (__pyx_v_dst->suboffsets[__pyx_v_dim]) = __pyx_t_5; + } + + /* "View.MemoryView":1065 + * + * @cname('__pyx_memoryview_slice_copy') + * cdef void slice_copy(memoryview memview, __Pyx_memviewslice *dst): # <<<<<<<<<<<<<< + * cdef int dim + * cdef (Py_ssize_t*) shape, strides, suboffsets + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1082 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + +static PyObject *__pyx_memoryview_copy_object(struct __pyx_memoryview_obj *__pyx_v_memview) { + __Pyx_memviewslice __pyx_v_memviewslice; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_copy", 0); + + /* "View.MemoryView":1085 + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) # <<<<<<<<<<<<<< + * return memoryview_copy_from_slice(memview, &memviewslice) + * + */ + __pyx_memoryview_slice_copy(__pyx_v_memview, (&__pyx_v_memviewslice)); + + /* "View.MemoryView":1086 + * cdef __Pyx_memviewslice memviewslice + * slice_copy(memview, &memviewslice) + * return memoryview_copy_from_slice(memview, &memviewslice) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_object_from_slice') + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __pyx_memoryview_copy_object_from_slice(__pyx_v_memview, (&__pyx_v_memviewslice)); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 1086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1082 + * + * @cname('__pyx_memoryview_copy_object') + * cdef memoryview_copy(memoryview memview): # <<<<<<<<<<<<<< + * "Create a new memoryview object" + * cdef __Pyx_memviewslice memviewslice + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1089 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + +static PyObject *__pyx_memoryview_copy_object_from_slice(struct __pyx_memoryview_obj *__pyx_v_memview, __Pyx_memviewslice *__pyx_v_memviewslice) { + PyObject *(*__pyx_v_to_object_func)(char *); + int (*__pyx_v_to_dtype_func)(char *, PyObject *); + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + int __pyx_t_2; + PyObject *(*__pyx_t_3)(char *); + int (*__pyx_t_4)(char *, PyObject *); + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("memoryview_copy_from_slice", 0); + + /* "View.MemoryView":1096 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_memview), __pyx_memoryviewslice_type); + __pyx_t_2 = (__pyx_t_1 != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1097 + * + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func # <<<<<<<<<<<<<< + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + */ + __pyx_t_3 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_object_func; + __pyx_v_to_object_func = __pyx_t_3; + + /* "View.MemoryView":1098 + * if isinstance(memview, _memoryviewslice): + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func # <<<<<<<<<<<<<< + * else: + * to_object_func = NULL + */ + __pyx_t_4 = ((struct __pyx_memoryviewslice_obj *)__pyx_v_memview)->to_dtype_func; + __pyx_v_to_dtype_func = __pyx_t_4; + + /* "View.MemoryView":1096 + * cdef int (*to_dtype_func)(char *, object) except 0 + * + * if isinstance(memview, _memoryviewslice): # <<<<<<<<<<<<<< + * to_object_func = (<_memoryviewslice> memview).to_object_func + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1100 + * to_dtype_func = (<_memoryviewslice> memview).to_dtype_func + * else: + * to_object_func = NULL # <<<<<<<<<<<<<< + * to_dtype_func = NULL + * + */ + /*else*/ { + __pyx_v_to_object_func = NULL; + + /* "View.MemoryView":1101 + * else: + * to_object_func = NULL + * to_dtype_func = NULL # <<<<<<<<<<<<<< + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + */ + __pyx_v_to_dtype_func = NULL; + } + __pyx_L3:; + + /* "View.MemoryView":1103 + * to_dtype_func = NULL + * + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, # <<<<<<<<<<<<<< + * to_object_func, to_dtype_func, + * memview.dtype_is_object) + */ + __Pyx_XDECREF(__pyx_r); + + /* "View.MemoryView":1105 + * return memoryview_fromslice(memviewslice[0], memview.view.ndim, + * to_object_func, to_dtype_func, + * memview.dtype_is_object) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_memoryview_fromslice((__pyx_v_memviewslice[0]), __pyx_v_memview->view.ndim, __pyx_v_to_object_func, __pyx_v_to_dtype_func, __pyx_v_memview->dtype_is_object); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_r = __pyx_t_5; + __pyx_t_5 = 0; + goto __pyx_L0; + + /* "View.MemoryView":1089 + * + * @cname('__pyx_memoryview_copy_object_from_slice') + * cdef memoryview_copy_from_slice(memoryview memview, __Pyx_memviewslice *memviewslice): # <<<<<<<<<<<<<< + * """ + * Create a new memoryview object from a given memoryview object and slice. + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_from_slice", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "View.MemoryView":1111 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + +static Py_ssize_t abs_py_ssize_t(Py_ssize_t __pyx_v_arg) { + Py_ssize_t __pyx_r; + int __pyx_t_1; + + /* "View.MemoryView":1112 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + __pyx_t_1 = ((__pyx_v_arg < 0) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1113 + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: + * return -arg # <<<<<<<<<<<<<< + * else: + * return arg + */ + __pyx_r = (-__pyx_v_arg); + goto __pyx_L0; + + /* "View.MemoryView":1112 + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: + * if arg < 0: # <<<<<<<<<<<<<< + * return -arg + * else: + */ + } + + /* "View.MemoryView":1115 + * return -arg + * else: + * return arg # <<<<<<<<<<<<<< + * + * @cname('__pyx_get_best_slice_order') + */ + /*else*/ { + __pyx_r = __pyx_v_arg; + goto __pyx_L0; + } + + /* "View.MemoryView":1111 + * + * + * cdef Py_ssize_t abs_py_ssize_t(Py_ssize_t arg) nogil: # <<<<<<<<<<<<<< + * if arg < 0: + * return -arg + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1118 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + +static char __pyx_get_best_slice_order(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim) { + int __pyx_v_i; + Py_ssize_t __pyx_v_c_stride; + Py_ssize_t __pyx_v_f_stride; + char __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1123 + * """ + * cdef int i + * cdef Py_ssize_t c_stride = 0 # <<<<<<<<<<<<<< + * cdef Py_ssize_t f_stride = 0 + * + */ + __pyx_v_c_stride = 0; + + /* "View.MemoryView":1124 + * cdef int i + * cdef Py_ssize_t c_stride = 0 + * cdef Py_ssize_t f_stride = 0 # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_f_stride = 0; + + /* "View.MemoryView":1126 + * cdef Py_ssize_t f_stride = 0 + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1127 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1128 + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_c_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1129 + * if mslice.shape[i] > 1: + * c_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + goto __pyx_L4_break; + + /* "View.MemoryView":1127 + * + * for i in range(ndim - 1, -1, -1): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * c_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L4_break:; + + /* "View.MemoryView":1131 + * break + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + */ + __pyx_t_1 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_1; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1132 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + __pyx_t_2 = (((__pyx_v_mslice->shape[__pyx_v_i]) > 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1133 + * for i in range(ndim): + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] # <<<<<<<<<<<<<< + * break + * + */ + __pyx_v_f_stride = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1134 + * if mslice.shape[i] > 1: + * f_stride = mslice.strides[i] + * break # <<<<<<<<<<<<<< + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + */ + goto __pyx_L7_break; + + /* "View.MemoryView":1132 + * + * for i in range(ndim): + * if mslice.shape[i] > 1: # <<<<<<<<<<<<<< + * f_stride = mslice.strides[i] + * break + */ + } + } + __pyx_L7_break:; + + /* "View.MemoryView":1136 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + __pyx_t_2 = ((abs_py_ssize_t(__pyx_v_c_stride) <= abs_py_ssize_t(__pyx_v_f_stride)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1137 + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): + * return 'C' # <<<<<<<<<<<<<< + * else: + * return 'F' + */ + __pyx_r = 'C'; + goto __pyx_L0; + + /* "View.MemoryView":1136 + * break + * + * if abs_py_ssize_t(c_stride) <= abs_py_ssize_t(f_stride): # <<<<<<<<<<<<<< + * return 'C' + * else: + */ + } + + /* "View.MemoryView":1139 + * return 'C' + * else: + * return 'F' # <<<<<<<<<<<<<< + * + * @cython.cdivision(True) + */ + /*else*/ { + __pyx_r = 'F'; + goto __pyx_L0; + } + + /* "View.MemoryView":1118 + * + * @cname('__pyx_get_best_slice_order') + * cdef char get_best_order(__Pyx_memviewslice *mslice, int ndim) nogil: # <<<<<<<<<<<<<< + * """ + * Figure out the best memory access order for a given slice. + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1142 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + +static void _copy_strided_to_strided(char *__pyx_v_src_data, Py_ssize_t *__pyx_v_src_strides, char *__pyx_v_dst_data, Py_ssize_t *__pyx_v_dst_strides, Py_ssize_t *__pyx_v_src_shape, Py_ssize_t *__pyx_v_dst_shape, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + CYTHON_UNUSED Py_ssize_t __pyx_v_src_extent; + Py_ssize_t __pyx_v_dst_extent; + Py_ssize_t __pyx_v_src_stride; + Py_ssize_t __pyx_v_dst_stride; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + Py_ssize_t __pyx_t_4; + Py_ssize_t __pyx_t_5; + Py_ssize_t __pyx_t_6; + + /* "View.MemoryView":1149 + * + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + */ + __pyx_v_src_extent = (__pyx_v_src_shape[0]); + + /* "View.MemoryView":1150 + * cdef Py_ssize_t i + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] + */ + __pyx_v_dst_extent = (__pyx_v_dst_shape[0]); + + /* "View.MemoryView":1151 + * cdef Py_ssize_t src_extent = src_shape[0] + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + */ + __pyx_v_src_stride = (__pyx_v_src_strides[0]); + + /* "View.MemoryView":1152 + * cdef Py_ssize_t dst_extent = dst_shape[0] + * cdef Py_ssize_t src_stride = src_strides[0] + * cdef Py_ssize_t dst_stride = dst_strides[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_dst_stride = (__pyx_v_dst_strides[0]); + + /* "View.MemoryView":1154 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1155 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + __pyx_t_2 = ((__pyx_v_src_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + __pyx_t_2 = ((__pyx_v_dst_stride > 0) != 0); + if (__pyx_t_2) { + } else { + __pyx_t_1 = __pyx_t_2; + goto __pyx_L5_bool_binop_done; + } + + /* "View.MemoryView":1156 + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + */ + __pyx_t_2 = (((size_t)__pyx_v_src_stride) == __pyx_v_itemsize); + if (__pyx_t_2) { + __pyx_t_2 = (__pyx_v_itemsize == ((size_t)__pyx_v_dst_stride)); + } + __pyx_t_3 = (__pyx_t_2 != 0); + __pyx_t_1 = __pyx_t_3; + __pyx_L5_bool_binop_done:; + + /* "View.MemoryView":1155 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + if (__pyx_t_1) { + + /* "View.MemoryView":1157 + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, (__pyx_v_itemsize * __pyx_v_dst_extent))); + + /* "View.MemoryView":1155 + * + * if ndim == 1: + * if (src_stride > 0 and dst_stride > 0 and # <<<<<<<<<<<<<< + * src_stride == itemsize == dst_stride): + * memcpy(dst_data, src_data, itemsize * dst_extent) + */ + goto __pyx_L4; + } + + /* "View.MemoryView":1159 + * memcpy(dst_data, src_data, itemsize * dst_extent) + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1160 + * else: + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) # <<<<<<<<<<<<<< + * src_data += src_stride + * dst_data += dst_stride + */ + (void)(memcpy(__pyx_v_dst_data, __pyx_v_src_data, __pyx_v_itemsize)); + + /* "View.MemoryView":1161 + * for i in range(dst_extent): + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * else: + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1162 + * memcpy(dst_data, src_data, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * else: + * for i in range(dst_extent): + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L4:; + + /* "View.MemoryView":1154 + * cdef Py_ssize_t dst_stride = dst_strides[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * if (src_stride > 0 and dst_stride > 0 and + * src_stride == itemsize == dst_stride): + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1164 + * dst_data += dst_stride + * else: + * for i in range(dst_extent): # <<<<<<<<<<<<<< + * _copy_strided_to_strided(src_data, src_strides + 1, + * dst_data, dst_strides + 1, + */ + /*else*/ { + __pyx_t_4 = __pyx_v_dst_extent; + __pyx_t_5 = __pyx_t_4; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1165 + * else: + * for i in range(dst_extent): + * _copy_strided_to_strided(src_data, src_strides + 1, # <<<<<<<<<<<<<< + * dst_data, dst_strides + 1, + * src_shape + 1, dst_shape + 1, + */ + _copy_strided_to_strided(__pyx_v_src_data, (__pyx_v_src_strides + 1), __pyx_v_dst_data, (__pyx_v_dst_strides + 1), (__pyx_v_src_shape + 1), (__pyx_v_dst_shape + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize); + + /* "View.MemoryView":1169 + * src_shape + 1, dst_shape + 1, + * ndim - 1, itemsize) + * src_data += src_stride # <<<<<<<<<<<<<< + * dst_data += dst_stride + * + */ + __pyx_v_src_data = (__pyx_v_src_data + __pyx_v_src_stride); + + /* "View.MemoryView":1170 + * ndim - 1, itemsize) + * src_data += src_stride + * dst_data += dst_stride # <<<<<<<<<<<<<< + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, + */ + __pyx_v_dst_data = (__pyx_v_dst_data + __pyx_v_dst_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1142 + * + * @cython.cdivision(True) + * cdef void _copy_strided_to_strided(char *src_data, Py_ssize_t *src_strides, # <<<<<<<<<<<<<< + * char *dst_data, Py_ssize_t *dst_strides, + * Py_ssize_t *src_shape, Py_ssize_t *dst_shape, + */ + + /* function exit code */ +} + +/* "View.MemoryView":1172 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + +static void copy_strided_to_strided(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize) { + + /* "View.MemoryView":1175 + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + * _copy_strided_to_strided(src.data, src.strides, dst.data, dst.strides, # <<<<<<<<<<<<<< + * src.shape, dst.shape, ndim, itemsize) + * + */ + _copy_strided_to_strided(__pyx_v_src->data, __pyx_v_src->strides, __pyx_v_dst->data, __pyx_v_dst->strides, __pyx_v_src->shape, __pyx_v_dst->shape, __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1172 + * dst_data += dst_stride + * + * cdef void copy_strided_to_strided(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *dst, + * int ndim, size_t itemsize) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1179 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + */ + +static Py_ssize_t __pyx_memoryview_slice_get_size(__Pyx_memviewslice *__pyx_v_src, int __pyx_v_ndim) { + Py_ssize_t __pyx_v_shape; + Py_ssize_t __pyx_v_size; + Py_ssize_t __pyx_r; + Py_ssize_t __pyx_t_1; + Py_ssize_t *__pyx_t_2; + Py_ssize_t *__pyx_t_3; + Py_ssize_t *__pyx_t_4; + + /* "View.MemoryView":1181 + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize # <<<<<<<<<<<<<< + * + * for shape in src.shape[:ndim]: + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_size = __pyx_t_1; + + /* "View.MemoryView":1183 + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + * + * for shape in src.shape[:ndim]: # <<<<<<<<<<<<<< + * size *= shape + * + */ + __pyx_t_3 = (__pyx_v_src->shape + __pyx_v_ndim); + for (__pyx_t_4 = __pyx_v_src->shape; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) { + __pyx_t_2 = __pyx_t_4; + __pyx_v_shape = (__pyx_t_2[0]); + + /* "View.MemoryView":1184 + * + * for shape in src.shape[:ndim]: + * size *= shape # <<<<<<<<<<<<<< + * + * return size + */ + __pyx_v_size = (__pyx_v_size * __pyx_v_shape); + } + + /* "View.MemoryView":1186 + * size *= shape + * + * return size # <<<<<<<<<<<<<< + * + * @cname('__pyx_fill_contig_strides_array') + */ + __pyx_r = __pyx_v_size; + goto __pyx_L0; + + /* "View.MemoryView":1179 + * + * @cname('__pyx_memoryview_slice_get_size') + * cdef Py_ssize_t slice_get_size(__Pyx_memviewslice *src, int ndim) nogil: # <<<<<<<<<<<<<< + * "Return the size of the memory occupied by the slice in number of bytes" + * cdef Py_ssize_t shape, size = src.memview.view.itemsize + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1189 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + +static Py_ssize_t __pyx_fill_contig_strides_array(Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, Py_ssize_t __pyx_v_stride, int __pyx_v_ndim, char __pyx_v_order) { + int __pyx_v_idx; + Py_ssize_t __pyx_r; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + + /* "View.MemoryView":1198 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + __pyx_t_1 = ((__pyx_v_order == 'F') != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1199 + * + * if order == 'F': + * for idx in range(ndim): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride *= shape[idx] + */ + __pyx_t_2 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_idx = __pyx_t_4; + + /* "View.MemoryView":1200 + * if order == 'F': + * for idx in range(ndim): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride *= shape[idx] + * else: + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1201 + * for idx in range(ndim): + * strides[idx] = stride + * stride *= shape[idx] # <<<<<<<<<<<<<< + * else: + * for idx in range(ndim - 1, -1, -1): + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + + /* "View.MemoryView":1198 + * cdef int idx + * + * if order == 'F': # <<<<<<<<<<<<<< + * for idx in range(ndim): + * strides[idx] = stride + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1203 + * stride *= shape[idx] + * else: + * for idx in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * strides[idx] = stride + * stride *= shape[idx] + */ + /*else*/ { + for (__pyx_t_2 = (__pyx_v_ndim - 1); __pyx_t_2 > -1; __pyx_t_2-=1) { + __pyx_v_idx = __pyx_t_2; + + /* "View.MemoryView":1204 + * else: + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride # <<<<<<<<<<<<<< + * stride *= shape[idx] + * + */ + (__pyx_v_strides[__pyx_v_idx]) = __pyx_v_stride; + + /* "View.MemoryView":1205 + * for idx in range(ndim - 1, -1, -1): + * strides[idx] = stride + * stride *= shape[idx] # <<<<<<<<<<<<<< + * + * return stride + */ + __pyx_v_stride = (__pyx_v_stride * (__pyx_v_shape[__pyx_v_idx])); + } + } + __pyx_L3:; + + /* "View.MemoryView":1207 + * stride *= shape[idx] + * + * return stride # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_data_to_temp') + */ + __pyx_r = __pyx_v_stride; + goto __pyx_L0; + + /* "View.MemoryView":1189 + * + * @cname('__pyx_fill_contig_strides_array') + * cdef Py_ssize_t fill_contig_strides_array( # <<<<<<<<<<<<<< + * Py_ssize_t *shape, Py_ssize_t *strides, Py_ssize_t stride, + * int ndim, char order) nogil: + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1210 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + +static void *__pyx_memoryview_copy_data_to_temp(__Pyx_memviewslice *__pyx_v_src, __Pyx_memviewslice *__pyx_v_tmpslice, char __pyx_v_order, int __pyx_v_ndim) { + int __pyx_v_i; + void *__pyx_v_result; + size_t __pyx_v_itemsize; + size_t __pyx_v_size; + void *__pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + struct __pyx_memoryview_obj *__pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":1221 + * cdef void *result + * + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef size_t size = slice_get_size(src, ndim) + * + */ + __pyx_t_1 = __pyx_v_src->memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1222 + * + * cdef size_t itemsize = src.memview.view.itemsize + * cdef size_t size = slice_get_size(src, ndim) # <<<<<<<<<<<<<< + * + * result = malloc(size) + */ + __pyx_v_size = __pyx_memoryview_slice_get_size(__pyx_v_src, __pyx_v_ndim); + + /* "View.MemoryView":1224 + * cdef size_t size = slice_get_size(src, ndim) + * + * result = malloc(size) # <<<<<<<<<<<<<< + * if not result: + * _err(MemoryError, NULL) + */ + __pyx_v_result = malloc(__pyx_v_size); + + /* "View.MemoryView":1225 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + __pyx_t_2 = ((!(__pyx_v_result != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1226 + * result = malloc(size) + * if not result: + * _err(MemoryError, NULL) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __pyx_memoryview_err(__pyx_builtin_MemoryError, NULL); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(66, 1226, __pyx_L1_error) + + /* "View.MemoryView":1225 + * + * result = malloc(size) + * if not result: # <<<<<<<<<<<<<< + * _err(MemoryError, NULL) + * + */ + } + + /* "View.MemoryView":1229 + * + * + * tmpslice.data = result # <<<<<<<<<<<<<< + * tmpslice.memview = src.memview + * for i in range(ndim): + */ + __pyx_v_tmpslice->data = ((char *)__pyx_v_result); + + /* "View.MemoryView":1230 + * + * tmpslice.data = result + * tmpslice.memview = src.memview # <<<<<<<<<<<<<< + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + */ + __pyx_t_4 = __pyx_v_src->memview; + __pyx_v_tmpslice->memview = __pyx_t_4; + + /* "View.MemoryView":1231 + * tmpslice.data = result + * tmpslice.memview = src.memview + * for i in range(ndim): # <<<<<<<<<<<<<< + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1232 + * tmpslice.memview = src.memview + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] # <<<<<<<<<<<<<< + * tmpslice.suboffsets[i] = -1 + * + */ + (__pyx_v_tmpslice->shape[__pyx_v_i]) = (__pyx_v_src->shape[__pyx_v_i]); + + /* "View.MemoryView":1233 + * for i in range(ndim): + * tmpslice.shape[i] = src.shape[i] + * tmpslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, + */ + (__pyx_v_tmpslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1235 + * tmpslice.suboffsets[i] = -1 + * + * fill_contig_strides_array(&tmpslice.shape[0], &tmpslice.strides[0], itemsize, # <<<<<<<<<<<<<< + * ndim, order) + * + */ + (void)(__pyx_fill_contig_strides_array((&(__pyx_v_tmpslice->shape[0])), (&(__pyx_v_tmpslice->strides[0])), __pyx_v_itemsize, __pyx_v_ndim, __pyx_v_order)); + + /* "View.MemoryView":1239 + * + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 + */ + __pyx_t_3 = __pyx_v_ndim; + __pyx_t_5 = __pyx_t_3; + for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) { + __pyx_v_i = __pyx_t_6; + + /* "View.MemoryView":1240 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + __pyx_t_2 = (((__pyx_v_tmpslice->shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1241 + * for i in range(ndim): + * if tmpslice.shape[i] == 1: + * tmpslice.strides[i] = 0 # <<<<<<<<<<<<<< + * + * if slice_is_contig(src[0], order, ndim): + */ + (__pyx_v_tmpslice->strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1240 + * + * for i in range(ndim): + * if tmpslice.shape[i] == 1: # <<<<<<<<<<<<<< + * tmpslice.strides[i] = 0 + * + */ + } + } + + /* "View.MemoryView":1243 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig((__pyx_v_src[0]), __pyx_v_order, __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1244 + * + * if slice_is_contig(src[0], order, ndim): + * memcpy(result, src.data, size) # <<<<<<<<<<<<<< + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + */ + (void)(memcpy(__pyx_v_result, __pyx_v_src->data, __pyx_v_size)); + + /* "View.MemoryView":1243 + * tmpslice.strides[i] = 0 + * + * if slice_is_contig(src[0], order, ndim): # <<<<<<<<<<<<<< + * memcpy(result, src.data, size) + * else: + */ + goto __pyx_L9; + } + + /* "View.MemoryView":1246 + * memcpy(result, src.data, size) + * else: + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) # <<<<<<<<<<<<<< + * + * return result + */ + /*else*/ { + copy_strided_to_strided(__pyx_v_src, __pyx_v_tmpslice, __pyx_v_ndim, __pyx_v_itemsize); + } + __pyx_L9:; + + /* "View.MemoryView":1248 + * copy_strided_to_strided(src, tmpslice, ndim, itemsize) + * + * return result # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "View.MemoryView":1210 + * + * @cname('__pyx_memoryview_copy_data_to_temp') + * cdef void *copy_data_to_temp(__Pyx_memviewslice *src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice *tmpslice, + * char order, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.copy_data_to_temp", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = NULL; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1253 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + +static int __pyx_memoryview_err_extents(int __pyx_v_i, Py_ssize_t __pyx_v_extent1, Py_ssize_t __pyx_v_extent2) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_extents", 0); + + /* "View.MemoryView":1256 + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + * (i, extent1, extent2)) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err_dim') + */ + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 1256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_extent1); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyInt_FromSsize_t(__pyx_v_extent2); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_2); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + + /* "View.MemoryView":1255 + * cdef int _err_extents(int i, Py_ssize_t extent1, + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % # <<<<<<<<<<<<<< + * (i, extent1, extent2)) + * + */ + __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(66, 1255, __pyx_L1_error) + + /* "View.MemoryView":1253 + * + * @cname('__pyx_memoryview_err_extents') + * cdef int _err_extents(int i, Py_ssize_t extent1, # <<<<<<<<<<<<<< + * Py_ssize_t extent2) except -1 with gil: + * raise ValueError("got differing extents in dimension %d (got %d and %d)" % + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_extents", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1259 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + +static int __pyx_memoryview_err_dim(PyObject *__pyx_v_error, char *__pyx_v_msg, int __pyx_v_dim) { + int __pyx_r; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err_dim", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1260 + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: + * raise error(msg.decode('ascii') % dim) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_err') + */ + __pyx_t_2 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dim); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyUnicode_Format(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_INCREF(__pyx_v_error); + __pyx_t_3 = __pyx_v_error; __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) { + __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3); + if (likely(__pyx_t_2)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); + __Pyx_INCREF(__pyx_t_2); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_3, function); + } + } + __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 1260, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_Raise(__pyx_t_1, 0, 0, 0); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __PYX_ERR(66, 1260, __pyx_L1_error) + + /* "View.MemoryView":1259 + * + * @cname('__pyx_memoryview_err_dim') + * cdef int _err_dim(object error, char *msg, int dim) except -1 with gil: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii') % dim) + * + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_AddTraceback("View.MemoryView._err_dim", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1263 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + +static int __pyx_memoryview_err(PyObject *__pyx_v_error, char *__pyx_v_msg) { + int __pyx_r; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("_err", 0); + __Pyx_INCREF(__pyx_v_error); + + /* "View.MemoryView":1264 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + __pyx_t_1 = ((__pyx_v_msg != NULL) != 0); + if (unlikely(__pyx_t_1)) { + + /* "View.MemoryView":1265 + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: + * raise error(msg.decode('ascii')) # <<<<<<<<<<<<<< + * else: + * raise error + */ + __pyx_t_3 = __Pyx_decode_c_string(__pyx_v_msg, 0, strlen(__pyx_v_msg), NULL, NULL, PyUnicode_DecodeASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(66, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_v_error); + __pyx_t_4 = __pyx_v_error; __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_4, function); + } + } + __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_Raise(__pyx_t_2, 0, 0, 0); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __PYX_ERR(66, 1265, __pyx_L1_error) + + /* "View.MemoryView":1264 + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: + * if msg != NULL: # <<<<<<<<<<<<<< + * raise error(msg.decode('ascii')) + * else: + */ + } + + /* "View.MemoryView":1267 + * raise error(msg.decode('ascii')) + * else: + * raise error # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_copy_contents') + */ + /*else*/ { + __Pyx_Raise(__pyx_v_error, 0, 0, 0); + __PYX_ERR(66, 1267, __pyx_L1_error) + } + + /* "View.MemoryView":1263 + * + * @cname('__pyx_memoryview_err') + * cdef int _err(object error, char *msg) except -1 with gil: # <<<<<<<<<<<<<< + * if msg != NULL: + * raise error(msg.decode('ascii')) + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("View.MemoryView._err", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = -1; + __Pyx_XDECREF(__pyx_v_error); + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + return __pyx_r; +} + +/* "View.MemoryView":1270 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + +static int __pyx_memoryview_copy_contents(__Pyx_memviewslice __pyx_v_src, __Pyx_memviewslice __pyx_v_dst, int __pyx_v_src_ndim, int __pyx_v_dst_ndim, int __pyx_v_dtype_is_object) { + void *__pyx_v_tmpdata; + size_t __pyx_v_itemsize; + int __pyx_v_i; + char __pyx_v_order; + int __pyx_v_broadcasting; + int __pyx_v_direct_copy; + __Pyx_memviewslice __pyx_v_tmp; + int __pyx_v_ndim; + int __pyx_r; + Py_ssize_t __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + int __pyx_t_6; + void *__pyx_t_7; + int __pyx_t_8; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + + /* "View.MemoryView":1278 + * Check for overlapping memory and verify the shapes. + * """ + * cdef void *tmpdata = NULL # <<<<<<<<<<<<<< + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + */ + __pyx_v_tmpdata = NULL; + + /* "View.MemoryView":1279 + * """ + * cdef void *tmpdata = NULL + * cdef size_t itemsize = src.memview.view.itemsize # <<<<<<<<<<<<<< + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + */ + __pyx_t_1 = __pyx_v_src.memview->view.itemsize; + __pyx_v_itemsize = __pyx_t_1; + + /* "View.MemoryView":1281 + * cdef size_t itemsize = src.memview.view.itemsize + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) # <<<<<<<<<<<<<< + * cdef bint broadcasting = False + * cdef bint direct_copy = False + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_src), __pyx_v_src_ndim); + + /* "View.MemoryView":1282 + * cdef int i + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False # <<<<<<<<<<<<<< + * cdef bint direct_copy = False + * cdef __Pyx_memviewslice tmp + */ + __pyx_v_broadcasting = 0; + + /* "View.MemoryView":1283 + * cdef char order = get_best_order(&src, src_ndim) + * cdef bint broadcasting = False + * cdef bint direct_copy = False # <<<<<<<<<<<<<< + * cdef __Pyx_memviewslice tmp + * + */ + __pyx_v_direct_copy = 0; + + /* "View.MemoryView":1286 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + __pyx_t_2 = ((__pyx_v_src_ndim < __pyx_v_dst_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1287 + * + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_src), __pyx_v_src_ndim, __pyx_v_dst_ndim); + + /* "View.MemoryView":1286 + * cdef __Pyx_memviewslice tmp + * + * if src_ndim < dst_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1288 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + __pyx_t_2 = ((__pyx_v_dst_ndim < __pyx_v_src_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1289 + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: + * broadcast_leading(&dst, dst_ndim, src_ndim) # <<<<<<<<<<<<<< + * + * cdef int ndim = max(src_ndim, dst_ndim) + */ + __pyx_memoryview_broadcast_leading((&__pyx_v_dst), __pyx_v_dst_ndim, __pyx_v_src_ndim); + + /* "View.MemoryView":1288 + * if src_ndim < dst_ndim: + * broadcast_leading(&src, src_ndim, dst_ndim) + * elif dst_ndim < src_ndim: # <<<<<<<<<<<<<< + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + */ + } + __pyx_L3:; + + /* "View.MemoryView":1291 + * broadcast_leading(&dst, dst_ndim, src_ndim) + * + * cdef int ndim = max(src_ndim, dst_ndim) # <<<<<<<<<<<<<< + * + * for i in range(ndim): + */ + __pyx_t_3 = __pyx_v_dst_ndim; + __pyx_t_4 = __pyx_v_src_ndim; + if (((__pyx_t_3 > __pyx_t_4) != 0)) { + __pyx_t_5 = __pyx_t_3; + } else { + __pyx_t_5 = __pyx_t_4; + } + __pyx_v_ndim = __pyx_t_5; + + /* "View.MemoryView":1293 + * cdef int ndim = max(src_ndim, dst_ndim) + * + * for i in range(ndim): # <<<<<<<<<<<<<< + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + */ + __pyx_t_5 = __pyx_v_ndim; + __pyx_t_3 = __pyx_t_5; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1294 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) != (__pyx_v_dst.shape[__pyx_v_i])) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1295 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + __pyx_t_2 = (((__pyx_v_src.shape[__pyx_v_i]) == 1) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1296 + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: + * broadcasting = True # <<<<<<<<<<<<<< + * src.strides[i] = 0 + * else: + */ + __pyx_v_broadcasting = 1; + + /* "View.MemoryView":1297 + * if src.shape[i] == 1: + * broadcasting = True + * src.strides[i] = 0 # <<<<<<<<<<<<<< + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) + */ + (__pyx_v_src.strides[__pyx_v_i]) = 0; + + /* "View.MemoryView":1295 + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: + * if src.shape[i] == 1: # <<<<<<<<<<<<<< + * broadcasting = True + * src.strides[i] = 0 + */ + goto __pyx_L7; + } + + /* "View.MemoryView":1299 + * src.strides[i] = 0 + * else: + * _err_extents(i, dst.shape[i], src.shape[i]) # <<<<<<<<<<<<<< + * + * if src.suboffsets[i] >= 0: + */ + /*else*/ { + __pyx_t_6 = __pyx_memoryview_err_extents(__pyx_v_i, (__pyx_v_dst.shape[__pyx_v_i]), (__pyx_v_src.shape[__pyx_v_i])); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(66, 1299, __pyx_L1_error) + } + __pyx_L7:; + + /* "View.MemoryView":1294 + * + * for i in range(ndim): + * if src.shape[i] != dst.shape[i]: # <<<<<<<<<<<<<< + * if src.shape[i] == 1: + * broadcasting = True + */ + } + + /* "View.MemoryView":1301 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + __pyx_t_2 = (((__pyx_v_src.suboffsets[__pyx_v_i]) >= 0) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1302 + * + * if src.suboffsets[i] >= 0: + * _err_dim(ValueError, "Dimension %d is not direct", i) # <<<<<<<<<<<<<< + * + * if slices_overlap(&src, &dst, ndim, itemsize): + */ + __pyx_t_6 = __pyx_memoryview_err_dim(__pyx_builtin_ValueError, ((char *)"Dimension %d is not direct"), __pyx_v_i); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(66, 1302, __pyx_L1_error) + + /* "View.MemoryView":1301 + * _err_extents(i, dst.shape[i], src.shape[i]) + * + * if src.suboffsets[i] >= 0: # <<<<<<<<<<<<<< + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + */ + } + } + + /* "View.MemoryView":1304 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + __pyx_t_2 = (__pyx_slices_overlap((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1306 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + __pyx_t_2 = ((!(__pyx_memviewslice_is_contig(__pyx_v_src, __pyx_v_order, __pyx_v_ndim) != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1307 + * + * if not slice_is_contig(src, order, ndim): + * order = get_best_order(&dst, ndim) # <<<<<<<<<<<<<< + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + */ + __pyx_v_order = __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim); + + /* "View.MemoryView":1306 + * if slices_overlap(&src, &dst, ndim, itemsize): + * + * if not slice_is_contig(src, order, ndim): # <<<<<<<<<<<<<< + * order = get_best_order(&dst, ndim) + * + */ + } + + /* "View.MemoryView":1309 + * order = get_best_order(&dst, ndim) + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) # <<<<<<<<<<<<<< + * src = tmp + * + */ + __pyx_t_7 = __pyx_memoryview_copy_data_to_temp((&__pyx_v_src), (&__pyx_v_tmp), __pyx_v_order, __pyx_v_ndim); if (unlikely(__pyx_t_7 == ((void *)NULL))) __PYX_ERR(66, 1309, __pyx_L1_error) + __pyx_v_tmpdata = __pyx_t_7; + + /* "View.MemoryView":1310 + * + * tmpdata = copy_data_to_temp(&src, &tmp, order, ndim) + * src = tmp # <<<<<<<<<<<<<< + * + * if not broadcasting: + */ + __pyx_v_src = __pyx_v_tmp; + + /* "View.MemoryView":1304 + * _err_dim(ValueError, "Dimension %d is not direct", i) + * + * if slices_overlap(&src, &dst, ndim, itemsize): # <<<<<<<<<<<<<< + * + * if not slice_is_contig(src, order, ndim): + */ + } + + /* "View.MemoryView":1312 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = ((!(__pyx_v_broadcasting != 0)) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1315 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'C', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1316 + * + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) # <<<<<<<<<<<<<< + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'C', __pyx_v_ndim); + + /* "View.MemoryView":1315 + * + * + * if slice_is_contig(src, 'C', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + */ + goto __pyx_L12; + } + + /* "View.MemoryView":1317 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + __pyx_t_2 = (__pyx_memviewslice_is_contig(__pyx_v_src, 'F', __pyx_v_ndim) != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1318 + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): + * direct_copy = slice_is_contig(dst, 'F', ndim) # <<<<<<<<<<<<<< + * + * if direct_copy: + */ + __pyx_v_direct_copy = __pyx_memviewslice_is_contig(__pyx_v_dst, 'F', __pyx_v_ndim); + + /* "View.MemoryView":1317 + * if slice_is_contig(src, 'C', ndim): + * direct_copy = slice_is_contig(dst, 'C', ndim) + * elif slice_is_contig(src, 'F', ndim): # <<<<<<<<<<<<<< + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + */ + } + __pyx_L12:; + + /* "View.MemoryView":1320 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_2 = (__pyx_v_direct_copy != 0); + if (__pyx_t_2) { + + /* "View.MemoryView":1322 + * if direct_copy: + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1323 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + */ + (void)(memcpy(__pyx_v_dst.data, __pyx_v_src.data, __pyx_memoryview_slice_get_size((&__pyx_v_src), __pyx_v_ndim))); + + /* "View.MemoryView":1324 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * free(tmpdata) + * return 0 + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1325 + * memcpy(dst.data, src.data, slice_get_size(&src, ndim)) + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1326 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * if order == 'F' == get_best_order(&dst, ndim): + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1320 + * direct_copy = slice_is_contig(dst, 'F', ndim) + * + * if direct_copy: # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + } + + /* "View.MemoryView":1312 + * src = tmp + * + * if not broadcasting: # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1328 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_2 = (__pyx_v_order == 'F'); + if (__pyx_t_2) { + __pyx_t_2 = ('F' == __pyx_get_best_slice_order((&__pyx_v_dst), __pyx_v_ndim)); + } + __pyx_t_8 = (__pyx_t_2 != 0); + if (__pyx_t_8) { + + /* "View.MemoryView":1331 + * + * + * transpose_memslice(&src) # <<<<<<<<<<<<<< + * transpose_memslice(&dst) + * + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_src)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(66, 1331, __pyx_L1_error) + + /* "View.MemoryView":1332 + * + * transpose_memslice(&src) + * transpose_memslice(&dst) # <<<<<<<<<<<<<< + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + */ + __pyx_t_5 = __pyx_memslice_transpose((&__pyx_v_dst)); if (unlikely(__pyx_t_5 == ((int)0))) __PYX_ERR(66, 1332, __pyx_L1_error) + + /* "View.MemoryView":1328 + * return 0 + * + * if order == 'F' == get_best_order(&dst, ndim): # <<<<<<<<<<<<<< + * + * + */ + } + + /* "View.MemoryView":1334 + * transpose_memslice(&dst) + * + * refcount_copying(&dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1335 + * + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) # <<<<<<<<<<<<<< + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + */ + copy_strided_to_strided((&__pyx_v_src), (&__pyx_v_dst), __pyx_v_ndim, __pyx_v_itemsize); + + /* "View.MemoryView":1336 + * refcount_copying(&dst, dtype_is_object, ndim, False) + * copy_strided_to_strided(&src, &dst, ndim, itemsize) + * refcount_copying(&dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * free(tmpdata) + */ + __pyx_memoryview_refcount_copying((&__pyx_v_dst), __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1338 + * refcount_copying(&dst, dtype_is_object, ndim, True) + * + * free(tmpdata) # <<<<<<<<<<<<<< + * return 0 + * + */ + free(__pyx_v_tmpdata); + + /* "View.MemoryView":1339 + * + * free(tmpdata) + * return 0 # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_broadcast_leading') + */ + __pyx_r = 0; + goto __pyx_L0; + + /* "View.MemoryView":1270 + * + * @cname('__pyx_memoryview_copy_contents') + * cdef int memoryview_copy_contents(__Pyx_memviewslice src, # <<<<<<<<<<<<<< + * __Pyx_memviewslice dst, + * int src_ndim, int dst_ndim, + */ + + /* function exit code */ + __pyx_L1_error:; + { + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_AddTraceback("View.MemoryView.memoryview_copy_contents", __pyx_clineno, __pyx_lineno, __pyx_filename); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif + } + __pyx_r = -1; + __pyx_L0:; + return __pyx_r; +} + +/* "View.MemoryView":1342 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + +static void __pyx_memoryview_broadcast_leading(__Pyx_memviewslice *__pyx_v_mslice, int __pyx_v_ndim, int __pyx_v_ndim_other) { + int __pyx_v_i; + int __pyx_v_offset; + int __pyx_t_1; + int __pyx_t_2; + int __pyx_t_3; + + /* "View.MemoryView":1346 + * int ndim_other) nogil: + * cdef int i + * cdef int offset = ndim_other - ndim # <<<<<<<<<<<<<< + * + * for i in range(ndim - 1, -1, -1): + */ + __pyx_v_offset = (__pyx_v_ndim_other - __pyx_v_ndim); + + /* "View.MemoryView":1348 + * cdef int offset = ndim_other - ndim + * + * for i in range(ndim - 1, -1, -1): # <<<<<<<<<<<<<< + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + */ + for (__pyx_t_1 = (__pyx_v_ndim - 1); __pyx_t_1 > -1; __pyx_t_1-=1) { + __pyx_v_i = __pyx_t_1; + + /* "View.MemoryView":1349 + * + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] # <<<<<<<<<<<<<< + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + */ + (__pyx_v_mslice->shape[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->shape[__pyx_v_i]); + + /* "View.MemoryView":1350 + * for i in range(ndim - 1, -1, -1): + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] # <<<<<<<<<<<<<< + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + */ + (__pyx_v_mslice->strides[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->strides[__pyx_v_i]); + + /* "View.MemoryView":1351 + * mslice.shape[i + offset] = mslice.shape[i] + * mslice.strides[i + offset] = mslice.strides[i] + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] # <<<<<<<<<<<<<< + * + * for i in range(offset): + */ + (__pyx_v_mslice->suboffsets[(__pyx_v_i + __pyx_v_offset)]) = (__pyx_v_mslice->suboffsets[__pyx_v_i]); + } + + /* "View.MemoryView":1353 + * mslice.suboffsets[i + offset] = mslice.suboffsets[i] + * + * for i in range(offset): # <<<<<<<<<<<<<< + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + */ + __pyx_t_1 = __pyx_v_offset; + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1354 + * + * for i in range(offset): + * mslice.shape[i] = 1 # <<<<<<<<<<<<<< + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 + */ + (__pyx_v_mslice->shape[__pyx_v_i]) = 1; + + /* "View.MemoryView":1355 + * for i in range(offset): + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] # <<<<<<<<<<<<<< + * mslice.suboffsets[i] = -1 + * + */ + (__pyx_v_mslice->strides[__pyx_v_i]) = (__pyx_v_mslice->strides[0]); + + /* "View.MemoryView":1356 + * mslice.shape[i] = 1 + * mslice.strides[i] = mslice.strides[0] + * mslice.suboffsets[i] = -1 # <<<<<<<<<<<<<< + * + * + */ + (__pyx_v_mslice->suboffsets[__pyx_v_i]) = -1L; + } + + /* "View.MemoryView":1342 + * + * @cname('__pyx_memoryview_broadcast_leading') + * cdef void broadcast_leading(__Pyx_memviewslice *mslice, # <<<<<<<<<<<<<< + * int ndim, + * int ndim_other) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1364 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + +static void __pyx_memoryview_refcount_copying(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_dtype_is_object, int __pyx_v_ndim, int __pyx_v_inc) { + int __pyx_t_1; + + /* "View.MemoryView":1368 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + __pyx_t_1 = (__pyx_v_dtype_is_object != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1369 + * + * if dtype_is_object: + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, # <<<<<<<<<<<<<< + * dst.strides, ndim, inc) + * + */ + __pyx_memoryview_refcount_objects_in_slice_with_gil(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1368 + * + * + * if dtype_is_object: # <<<<<<<<<<<<<< + * refcount_objects_in_slice_with_gil(dst.data, dst.shape, + * dst.strides, ndim, inc) + */ + } + + /* "View.MemoryView":1364 + * + * @cname('__pyx_memoryview_refcount_copying') + * cdef void refcount_copying(__Pyx_memviewslice *dst, bint dtype_is_object, # <<<<<<<<<<<<<< + * int ndim, bint inc) nogil: + * + */ + + /* function exit code */ +} + +/* "View.MemoryView":1373 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + +static void __pyx_memoryview_refcount_objects_in_slice_with_gil(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + __Pyx_RefNannyDeclarations + #ifdef WITH_THREAD + PyGILState_STATE __pyx_gilstate_save = __Pyx_PyGILState_Ensure(); + #endif + __Pyx_RefNannySetupContext("refcount_objects_in_slice_with_gil", 0); + + /* "View.MemoryView":1376 + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + * refcount_objects_in_slice(data, shape, strides, ndim, inc) # <<<<<<<<<<<<<< + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, __pyx_v_shape, __pyx_v_strides, __pyx_v_ndim, __pyx_v_inc); + + /* "View.MemoryView":1373 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice_with_gil') + * cdef void refcount_objects_in_slice_with_gil(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * bint inc) with gil: + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + #ifdef WITH_THREAD + __Pyx_PyGILState_Release(__pyx_gilstate_save); + #endif +} + +/* "View.MemoryView":1379 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + +static void __pyx_memoryview_refcount_objects_in_slice(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, int __pyx_v_inc) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + __Pyx_RefNannyDeclarations + Py_ssize_t __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + __Pyx_RefNannySetupContext("refcount_objects_in_slice", 0); + + /* "View.MemoryView":1383 + * cdef Py_ssize_t i + * + * for i in range(shape[0]): # <<<<<<<<<<<<<< + * if ndim == 1: + * if inc: + */ + __pyx_t_1 = (__pyx_v_shape[0]); + __pyx_t_2 = __pyx_t_1; + for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) { + __pyx_v_i = __pyx_t_3; + + /* "View.MemoryView":1384 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + __pyx_t_4 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1385 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + __pyx_t_4 = (__pyx_v_inc != 0); + if (__pyx_t_4) { + + /* "View.MemoryView":1386 + * if ndim == 1: + * if inc: + * Py_INCREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * Py_DECREF(( data)[0]) + */ + Py_INCREF((((PyObject **)__pyx_v_data)[0])); + + /* "View.MemoryView":1385 + * for i in range(shape[0]): + * if ndim == 1: + * if inc: # <<<<<<<<<<<<<< + * Py_INCREF(( data)[0]) + * else: + */ + goto __pyx_L6; + } + + /* "View.MemoryView":1388 + * Py_INCREF(( data)[0]) + * else: + * Py_DECREF(( data)[0]) # <<<<<<<<<<<<<< + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + */ + /*else*/ { + Py_DECREF((((PyObject **)__pyx_v_data)[0])); + } + __pyx_L6:; + + /* "View.MemoryView":1384 + * + * for i in range(shape[0]): + * if ndim == 1: # <<<<<<<<<<<<<< + * if inc: + * Py_INCREF(( data)[0]) + */ + goto __pyx_L5; + } + + /* "View.MemoryView":1390 + * Py_DECREF(( data)[0]) + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, inc) + * + */ + /*else*/ { + + /* "View.MemoryView":1391 + * else: + * refcount_objects_in_slice(data, shape + 1, strides + 1, + * ndim - 1, inc) # <<<<<<<<<<<<<< + * + * data += strides[0] + */ + __pyx_memoryview_refcount_objects_in_slice(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_inc); + } + __pyx_L5:; + + /* "View.MemoryView":1393 + * ndim - 1, inc) + * + * data += strides[0] # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + (__pyx_v_strides[0])); + } + + /* "View.MemoryView":1379 + * + * @cname('__pyx_memoryview_refcount_objects_in_slice') + * cdef void refcount_objects_in_slice(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, bint inc): + * cdef Py_ssize_t i + */ + + /* function exit code */ + __Pyx_RefNannyFinishContext(); +} + +/* "View.MemoryView":1399 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + +static void __pyx_memoryview_slice_assign_scalar(__Pyx_memviewslice *__pyx_v_dst, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item, int __pyx_v_dtype_is_object) { + + /* "View.MemoryView":1402 + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) # <<<<<<<<<<<<<< + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 0); + + /* "View.MemoryView":1403 + * bint dtype_is_object) nogil: + * refcount_copying(dst, dtype_is_object, ndim, False) + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, # <<<<<<<<<<<<<< + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_dst->data, __pyx_v_dst->shape, __pyx_v_dst->strides, __pyx_v_ndim, __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1405 + * _slice_assign_scalar(dst.data, dst.shape, dst.strides, ndim, + * itemsize, item) + * refcount_copying(dst, dtype_is_object, ndim, True) # <<<<<<<<<<<<<< + * + * + */ + __pyx_memoryview_refcount_copying(__pyx_v_dst, __pyx_v_dtype_is_object, __pyx_v_ndim, 1); + + /* "View.MemoryView":1399 + * + * @cname('__pyx_memoryview_slice_assign_scalar') + * cdef void slice_assign_scalar(__Pyx_memviewslice *dst, int ndim, # <<<<<<<<<<<<<< + * size_t itemsize, void *item, + * bint dtype_is_object) nogil: + */ + + /* function exit code */ +} + +/* "View.MemoryView":1409 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + +static void __pyx_memoryview__slice_assign_scalar(char *__pyx_v_data, Py_ssize_t *__pyx_v_shape, Py_ssize_t *__pyx_v_strides, int __pyx_v_ndim, size_t __pyx_v_itemsize, void *__pyx_v_item) { + CYTHON_UNUSED Py_ssize_t __pyx_v_i; + Py_ssize_t __pyx_v_stride; + Py_ssize_t __pyx_v_extent; + int __pyx_t_1; + Py_ssize_t __pyx_t_2; + Py_ssize_t __pyx_t_3; + Py_ssize_t __pyx_t_4; + + /* "View.MemoryView":1413 + * size_t itemsize, void *item) nogil: + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] # <<<<<<<<<<<<<< + * cdef Py_ssize_t extent = shape[0] + * + */ + __pyx_v_stride = (__pyx_v_strides[0]); + + /* "View.MemoryView":1414 + * cdef Py_ssize_t i + * cdef Py_ssize_t stride = strides[0] + * cdef Py_ssize_t extent = shape[0] # <<<<<<<<<<<<<< + * + * if ndim == 1: + */ + __pyx_v_extent = (__pyx_v_shape[0]); + + /* "View.MemoryView":1416 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + __pyx_t_1 = ((__pyx_v_ndim == 1) != 0); + if (__pyx_t_1) { + + /* "View.MemoryView":1417 + * + * if ndim == 1: + * for i in range(extent): # <<<<<<<<<<<<<< + * memcpy(data, item, itemsize) + * data += stride + */ + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1418 + * if ndim == 1: + * for i in range(extent): + * memcpy(data, item, itemsize) # <<<<<<<<<<<<<< + * data += stride + * else: + */ + (void)(memcpy(__pyx_v_data, __pyx_v_item, __pyx_v_itemsize)); + + /* "View.MemoryView":1419 + * for i in range(extent): + * memcpy(data, item, itemsize) + * data += stride # <<<<<<<<<<<<<< + * else: + * for i in range(extent): + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + + /* "View.MemoryView":1416 + * cdef Py_ssize_t extent = shape[0] + * + * if ndim == 1: # <<<<<<<<<<<<<< + * for i in range(extent): + * memcpy(data, item, itemsize) + */ + goto __pyx_L3; + } + + /* "View.MemoryView":1421 + * data += stride + * else: + * for i in range(extent): # <<<<<<<<<<<<<< + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + */ + /*else*/ { + __pyx_t_2 = __pyx_v_extent; + __pyx_t_3 = __pyx_t_2; + for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { + __pyx_v_i = __pyx_t_4; + + /* "View.MemoryView":1422 + * else: + * for i in range(extent): + * _slice_assign_scalar(data, shape + 1, strides + 1, # <<<<<<<<<<<<<< + * ndim - 1, itemsize, item) + * data += stride + */ + __pyx_memoryview__slice_assign_scalar(__pyx_v_data, (__pyx_v_shape + 1), (__pyx_v_strides + 1), (__pyx_v_ndim - 1), __pyx_v_itemsize, __pyx_v_item); + + /* "View.MemoryView":1424 + * _slice_assign_scalar(data, shape + 1, strides + 1, + * ndim - 1, itemsize, item) + * data += stride # <<<<<<<<<<<<<< + * + * + */ + __pyx_v_data = (__pyx_v_data + __pyx_v_stride); + } + } + __pyx_L3:; + + /* "View.MemoryView":1409 + * + * @cname('__pyx_memoryview__slice_assign_scalar') + * cdef void _slice_assign_scalar(char *data, Py_ssize_t *shape, # <<<<<<<<<<<<<< + * Py_ssize_t *strides, int ndim, + * size_t itemsize, void *item) nogil: + */ + + /* function exit code */ +} + +/* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ +static PyMethodDef __pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum = {"__pyx_unpickle_Enum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum, METH_VARARGS|METH_KEYWORDS, 0}; +static PyObject *__pyx_pw_15View_dot_MemoryView_1__pyx_unpickle_Enum(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { + PyObject *__pyx_v___pyx_type = 0; + long __pyx_v___pyx_checksum; + PyObject *__pyx_v___pyx_state = 0; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum (wrapper)", 0); + { + static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_pyx_type,&__pyx_n_s_pyx_checksum,&__pyx_n_s_pyx_state,0}; + PyObject* values[3] = {0,0,0}; + if (unlikely(__pyx_kwds)) { + Py_ssize_t kw_args; + const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); + switch (pos_args) { + case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = PyDict_Size(__pyx_kwds); + switch (pos_args) { + case 0: + if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_type)) != 0)) kw_args--; + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_checksum)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 1); __PYX_ERR(66, 1, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pyx_state)) != 0)) kw_args--; + else { + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, 2); __PYX_ERR(66, 1, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_unpickle_Enum") < 0)) __PYX_ERR(66, 1, __pyx_L3_error) + } + } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = PyTuple_GET_ITEM(__pyx_args, 0); + values[1] = PyTuple_GET_ITEM(__pyx_args, 1); + values[2] = PyTuple_GET_ITEM(__pyx_args, 2); + } + __pyx_v___pyx_type = values[0]; + __pyx_v___pyx_checksum = __Pyx_PyInt_As_long(values[1]); if (unlikely((__pyx_v___pyx_checksum == (long)-1) && PyErr_Occurred())) __PYX_ERR(66, 1, __pyx_L3_error) + __pyx_v___pyx_state = values[2]; + } + goto __pyx_L4_argument_unpacking_done; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("__pyx_unpickle_Enum", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(66, 1, __pyx_L3_error) + __pyx_L3_error:; + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + __pyx_r = __pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(__pyx_self, __pyx_v___pyx_type, __pyx_v___pyx_checksum, __pyx_v___pyx_state); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_15View_dot_MemoryView___pyx_unpickle_Enum(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_v___pyx_PickleError = 0; + PyObject *__pyx_v___pyx_result = 0; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + int __pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum", 0); + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + */ + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_1, __pyx_tuple__77, Py_NE)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_3 = (__pyx_t_2 != 0); + if (__pyx_t_3) { + + /* "(tree fragment)":5 + * cdef object __pyx_result + * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): + * from pickle import PickleError as __pyx_PickleError # <<<<<<<<<<<<<< + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + */ + __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_n_s_PickleError); + __Pyx_GIVEREF(__pyx_n_s_PickleError); + PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_PickleError); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_pickle, __pyx_t_1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_PickleError); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_INCREF(__pyx_t_1); + __pyx_v___pyx_PickleError = __pyx_t_1; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "(tree fragment)":6 + * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) # <<<<<<<<<<<<<< + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + */ + __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v___pyx_checksum); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = __Pyx_PyString_Format(__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_INCREF(__pyx_v___pyx_PickleError); + __pyx_t_1 = __pyx_v___pyx_PickleError; __pyx_t_6 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_6)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_6, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_Raise(__pyx_t_4, 0, 0, 0); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __PYX_ERR(66, 6, __pyx_L1_error) + + /* "(tree fragment)":4 + * cdef object __pyx_PickleError + * cdef object __pyx_result + * if __pyx_checksum not in (0xb068931, 0x82a3537, 0x6ae9995): # <<<<<<<<<<<<<< + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + */ + } + + /* "(tree fragment)":7 + * from pickle import PickleError as __pyx_PickleError + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) # <<<<<<<<<<<<<< + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + */ + __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_MemviewEnum_type), __pyx_n_s_new); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { + __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1); + if (likely(__pyx_t_5)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_1, function); + } + } + __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v___pyx_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v___pyx_type); + __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_v___pyx_result = __pyx_t_4; + __pyx_t_4 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + __pyx_t_3 = (__pyx_v___pyx_state != Py_None); + __pyx_t_2 = (__pyx_t_3 != 0); + if (__pyx_t_2) { + + /* "(tree fragment)":9 + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) # <<<<<<<<<<<<<< + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + */ + if (!(likely(PyTuple_CheckExact(__pyx_v___pyx_state))||((__pyx_v___pyx_state) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_v___pyx_state)->tp_name), 0))) __PYX_ERR(66, 9, __pyx_L1_error) + __pyx_t_4 = __pyx_unpickle_Enum__set_state(((struct __pyx_MemviewEnum_obj *)__pyx_v___pyx_result), ((PyObject*)__pyx_v___pyx_state)); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "(tree fragment)":8 + * raise __pyx_PickleError("Incompatible checksums (0x%x vs (0xb068931, 0x82a3537, 0x6ae9995) = (name))" % __pyx_checksum) + * __pyx_result = Enum.__new__(__pyx_type) + * if __pyx_state is not None: # <<<<<<<<<<<<<< + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + */ + } + + /* "(tree fragment)":10 + * if __pyx_state is not None: + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result # <<<<<<<<<<<<<< + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v___pyx_result); + __pyx_r = __pyx_v___pyx_result; + goto __pyx_L0; + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v___pyx_PickleError); + __Pyx_XDECREF(__pyx_v___pyx_result); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "(tree fragment)":11 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + +static PyObject *__pyx_unpickle_Enum__set_state(struct __pyx_MemviewEnum_obj *__pyx_v___pyx_result, PyObject *__pyx_v___pyx_state) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + Py_ssize_t __pyx_t_3; + int __pyx_t_4; + int __pyx_t_5; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__pyx_unpickle_Enum__set_state", 0); + + /* "(tree fragment)":12 + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] # <<<<<<<<<<<<<< + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(66, 12, __pyx_L1_error) + } + __pyx_t_1 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __Pyx_GOTREF(__pyx_v___pyx_result->name); + __Pyx_DECREF(__pyx_v___pyx_result->name); + __pyx_v___pyx_result->name = __pyx_t_1; + __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); + __PYX_ERR(66, 13, __pyx_L1_error) + } + __pyx_t_3 = PyTuple_GET_SIZE(__pyx_v___pyx_state); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(66, 13, __pyx_L1_error) + __pyx_t_4 = ((__pyx_t_3 > 1) != 0); + if (__pyx_t_4) { + } else { + __pyx_t_2 = __pyx_t_4; + goto __pyx_L4_bool_binop_done; + } + __pyx_t_4 = __Pyx_HasAttr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(66, 13, __pyx_L1_error) + __pyx_t_5 = (__pyx_t_4 != 0); + __pyx_t_2 = __pyx_t_5; + __pyx_L4_bool_binop_done:; + if (__pyx_t_2) { + + /* "(tree fragment)":14 + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + * __pyx_result.__dict__.update(__pyx_state[1]) # <<<<<<<<<<<<<< + */ + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v___pyx_result), __pyx_n_s_dict); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_update); if (unlikely(!__pyx_t_7)) __PYX_ERR(66, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(__pyx_v___pyx_state == Py_None)) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); + __PYX_ERR(66, 14, __pyx_L1_error) + } + __pyx_t_6 = __Pyx_GetItemInt_Tuple(__pyx_v___pyx_state, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) { + __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7); + if (likely(__pyx_t_8)) { + PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(function); + __Pyx_DECREF_SET(__pyx_t_7, function); + } + } + __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (unlikely(!__pyx_t_1)) __PYX_ERR(66, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "(tree fragment)":13 + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): # <<<<<<<<<<<<<< + * __pyx_result.__dict__.update(__pyx_state[1]) + */ + } + + /* "(tree fragment)":11 + * __pyx_unpickle_Enum__set_state( __pyx_result, __pyx_state) + * return __pyx_result + * cdef __pyx_unpickle_Enum__set_state(Enum __pyx_result, tuple __pyx_state): # <<<<<<<<<<<<<< + * __pyx_result.name = __pyx_state[0] + * if len(__pyx_state) > 1 and hasattr(__pyx_result, '__dict__'): + */ + + /* function exit code */ + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + __Pyx_AddTraceback("View.MemoryView.__pyx_unpickle_Enum__set_state", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "BufferFormatFromTypeInfo":1465 + * + * @cname('__pyx_format_from_typeinfo') + * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< + * cdef __Pyx_StructField *field + * cdef __pyx_typeinfo_string fmt + */ + +static PyObject *__pyx_format_from_typeinfo(__Pyx_TypeInfo *__pyx_v_type) { + __Pyx_StructField *__pyx_v_field; + struct __pyx_typeinfo_string __pyx_v_fmt; + PyObject *__pyx_v_part = 0; + PyObject *__pyx_v_result = 0; + PyObject *__pyx_v_alignment = NULL; + PyObject *__pyx_v_parts = NULL; + PyObject *__pyx_v_extents = NULL; + int __pyx_v_i; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; + __Pyx_StructField *__pyx_t_3; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + int __pyx_t_6; + int __pyx_t_7; + int __pyx_t_8; + int __pyx_t_9; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("format_from_typeinfo", 0); + + /* "BufferFormatFromTypeInfo":1470 + * cdef bytes part, result + * + * if type.typegroup == 'S': # <<<<<<<<<<<<<< + * assert type.fields != NULL + * assert type.fields.type != NULL + */ + __pyx_t_1 = ((__pyx_v_type->typegroup == 'S') != 0); + if (__pyx_t_1) { + + /* "BufferFormatFromTypeInfo":1471 + * + * if type.typegroup == 'S': + * assert type.fields != NULL # <<<<<<<<<<<<<< + * assert type.fields.type != NULL + * + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_type->fields != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(66, 1471, __pyx_L1_error) + } + } + #endif + + /* "BufferFormatFromTypeInfo":1472 + * if type.typegroup == 'S': + * assert type.fields != NULL + * assert type.fields.type != NULL # <<<<<<<<<<<<<< + * + * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: + */ + #ifndef CYTHON_WITHOUT_ASSERTIONS + if (unlikely(__pyx_assertions_enabled())) { + if (unlikely(!((__pyx_v_type->fields->type != NULL) != 0))) { + PyErr_SetNone(PyExc_AssertionError); + __PYX_ERR(66, 1472, __pyx_L1_error) + } + } + #endif + + /* "BufferFormatFromTypeInfo":1474 + * assert type.fields.type != NULL + * + * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< + * alignment = b'^' + * else: + */ + __pyx_t_1 = ((__pyx_v_type->flags & __PYX_BUF_FLAGS_PACKED_STRUCT) != 0); + if (__pyx_t_1) { + + /* "BufferFormatFromTypeInfo":1475 + * + * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: + * alignment = b'^' # <<<<<<<<<<<<<< + * else: + * alignment = b'' + */ + __Pyx_INCREF(__pyx_kp_b__78); + __pyx_v_alignment = __pyx_kp_b__78; + + /* "BufferFormatFromTypeInfo":1474 + * assert type.fields.type != NULL + * + * if type.flags & __PYX_BUF_FLAGS_PACKED_STRUCT: # <<<<<<<<<<<<<< + * alignment = b'^' + * else: + */ + goto __pyx_L4; + } + + /* "BufferFormatFromTypeInfo":1477 + * alignment = b'^' + * else: + * alignment = b'' # <<<<<<<<<<<<<< + * + * parts = [b"T{"] + */ + /*else*/ { + __Pyx_INCREF(__pyx_kp_b__7); + __pyx_v_alignment = __pyx_kp_b__7; + } + __pyx_L4:; + + /* "BufferFormatFromTypeInfo":1479 + * alignment = b'' + * + * parts = [b"T{"] # <<<<<<<<<<<<<< + * field = type.fields + * + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1479, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_kp_b_T_2); + __Pyx_GIVEREF(__pyx_kp_b_T_2); + PyList_SET_ITEM(__pyx_t_2, 0, __pyx_kp_b_T_2); + __pyx_v_parts = ((PyObject*)__pyx_t_2); + __pyx_t_2 = 0; + + /* "BufferFormatFromTypeInfo":1480 + * + * parts = [b"T{"] + * field = type.fields # <<<<<<<<<<<<<< + * + * while field.type: + */ + __pyx_t_3 = __pyx_v_type->fields; + __pyx_v_field = __pyx_t_3; + + /* "BufferFormatFromTypeInfo":1482 + * field = type.fields + * + * while field.type: # <<<<<<<<<<<<<< + * part = format_from_typeinfo(field.type) + * parts.append(part + b':' + field.name + b':') + */ + while (1) { + __pyx_t_1 = (__pyx_v_field->type != 0); + if (!__pyx_t_1) break; + + /* "BufferFormatFromTypeInfo":1483 + * + * while field.type: + * part = format_from_typeinfo(field.type) # <<<<<<<<<<<<<< + * parts.append(part + b':' + field.name + b':') + * field += 1 + */ + __pyx_t_2 = __pyx_format_from_typeinfo(__pyx_v_field->type); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_XDECREF_SET(__pyx_v_part, ((PyObject*)__pyx_t_2)); + __pyx_t_2 = 0; + + /* "BufferFormatFromTypeInfo":1484 + * while field.type: + * part = format_from_typeinfo(field.type) + * parts.append(part + b':' + field.name + b':') # <<<<<<<<<<<<<< + * field += 1 + * + */ + __pyx_t_2 = PyNumber_Add(__pyx_v_part, __pyx_kp_b__57); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_field->name); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_kp_b__57); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1484, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_parts, __pyx_t_4); if (unlikely(__pyx_t_6 == ((int)-1))) __PYX_ERR(66, 1484, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "BufferFormatFromTypeInfo":1485 + * part = format_from_typeinfo(field.type) + * parts.append(part + b':' + field.name + b':') + * field += 1 # <<<<<<<<<<<<<< + * + * result = alignment.join(parts) + b'}' + */ + __pyx_v_field = (__pyx_v_field + 1); + } + + /* "BufferFormatFromTypeInfo":1487 + * field += 1 + * + * result = alignment.join(parts) + b'}' # <<<<<<<<<<<<<< + * else: + * fmt = __Pyx_TypeInfoToFormat(type) + */ + __pyx_t_4 = __Pyx_PyBytes_Join(__pyx_v_alignment, __pyx_v_parts); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_kp_b__79); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_5)->tp_name), 0))) __PYX_ERR(66, 1487, __pyx_L1_error) + __pyx_v_result = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + + /* "BufferFormatFromTypeInfo":1470 + * cdef bytes part, result + * + * if type.typegroup == 'S': # <<<<<<<<<<<<<< + * assert type.fields != NULL + * assert type.fields.type != NULL + */ + goto __pyx_L3; + } + + /* "BufferFormatFromTypeInfo":1489 + * result = alignment.join(parts) + b'}' + * else: + * fmt = __Pyx_TypeInfoToFormat(type) # <<<<<<<<<<<<<< + * if type.arraysize[0]: + * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] + */ + /*else*/ { + __pyx_v_fmt = __Pyx_TypeInfoToFormat(__pyx_v_type); + + /* "BufferFormatFromTypeInfo":1490 + * else: + * fmt = __Pyx_TypeInfoToFormat(type) + * if type.arraysize[0]: # <<<<<<<<<<<<<< + * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] + * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string + */ + __pyx_t_1 = ((__pyx_v_type->arraysize[0]) != 0); + if (__pyx_t_1) { + + /* "BufferFormatFromTypeInfo":1491 + * fmt = __Pyx_TypeInfoToFormat(type) + * if type.arraysize[0]: + * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] # <<<<<<<<<<<<<< + * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string + * else: + */ + __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_7 = __pyx_v_type->ndim; + __pyx_t_8 = __pyx_t_7; + for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) { + __pyx_v_i = __pyx_t_9; + __pyx_t_4 = __Pyx_PyInt_FromSize_t((__pyx_v_type->arraysize[__pyx_v_i])); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyObject_Unicode(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_5, (PyObject*)__pyx_t_2))) __PYX_ERR(66, 1491, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_v_extents = ((PyObject*)__pyx_t_5); + __pyx_t_5 = 0; + + /* "BufferFormatFromTypeInfo":1492 + * if type.arraysize[0]: + * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] + * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string # <<<<<<<<<<<<<< + * else: + * result = fmt.string + */ + __pyx_t_5 = PyUnicode_Join(__pyx_kp_u__14, __pyx_v_extents); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_2 = PyUnicode_Format(__pyx_kp_u_s_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_5 = PyUnicode_AsASCIIString(((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_5)) __PYX_ERR(66, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_2)) __PYX_ERR(66, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((void)PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "bytes", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(66, 1492, __pyx_L1_error) + __pyx_v_result = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + + /* "BufferFormatFromTypeInfo":1490 + * else: + * fmt = __Pyx_TypeInfoToFormat(type) + * if type.arraysize[0]: # <<<<<<<<<<<<<< + * extents = [unicode(type.arraysize[i]) for i in range(type.ndim)] + * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string + */ + goto __pyx_L7; + } + + /* "BufferFormatFromTypeInfo":1494 + * result = (u"(%s)" % u','.join(extents)).encode('ascii') + fmt.string + * else: + * result = fmt.string # <<<<<<<<<<<<<< + * + * return result + */ + /*else*/ { + __pyx_t_4 = __Pyx_PyObject_FromString(__pyx_v_fmt.string); if (unlikely(!__pyx_t_4)) __PYX_ERR(66, 1494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_v_result = ((PyObject*)__pyx_t_4); + __pyx_t_4 = 0; + } + __pyx_L7:; + } + __pyx_L3:; + + /* "BufferFormatFromTypeInfo":1496 + * result = fmt.string + * + * return result # <<<<<<<<<<<<<< + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_INCREF(__pyx_v_result); + __pyx_r = __pyx_v_result; + goto __pyx_L0; + + /* "BufferFormatFromTypeInfo":1465 + * + * @cname('__pyx_format_from_typeinfo') + * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< + * cdef __Pyx_StructField *field + * cdef __pyx_typeinfo_string fmt + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_AddTraceback("BufferFormatFromTypeInfo.format_from_typeinfo", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = 0; + __pyx_L0:; + __Pyx_XDECREF(__pyx_v_part); + __Pyx_XDECREF(__pyx_v_result); + __Pyx_XDECREF(__pyx_v_alignment); + __Pyx_XDECREF(__pyx_v_parts); + __Pyx_XDECREF(__pyx_v_extents); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Comm(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscCommObject *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct PyPetscCommObject *)o); + p->base = Py_None; Py_INCREF(Py_None); + if (unlikely(__pyx_pw_8petsc4py_5PETSc_4Comm_1__cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Comm(PyObject *o) { + struct PyPetscCommObject *p = (struct PyPetscCommObject *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_4Comm_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->base); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc_Comm(PyObject *o, visitproc v, void *a) { + int e; + struct PyPetscCommObject *p = (struct PyPetscCommObject *)o; + if (p->base) { + e = (*v)(p->base, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc_Comm(PyObject *o) { + PyObject* tmp; + struct PyPetscCommObject *p = (struct PyPetscCommObject *)o; + tmp = ((PyObject*)p->base); + p->base = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4Comm_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4Comm_4size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4Comm_rank(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4Comm_4rank_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4Comm_fortran(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4Comm_7fortran_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Comm[] = { + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_9destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_8destroy}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_11duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_10duplicate}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_13getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_12getSize}, + {"getRank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_15getRank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_14getRank}, + {"barrier", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_17barrier, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_16barrier}, + {"tompi4py", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Comm_19tompi4py, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Comm_18tompi4py}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Comm[] = { + {(char *)"size", __pyx_getprop_8petsc4py_5PETSc_4Comm_size, 0, (char *)0, 0}, + {(char *)"rank", __pyx_getprop_8petsc4py_5PETSc_4Comm_rank, 0, (char *)0, 0}, + {(char *)"fortran", __pyx_getprop_8petsc4py_5PETSc_4Comm_fortran, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_Comm = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + __pyx_pw_8petsc4py_5PETSc_4Comm_7__nonzero__, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + 0, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + 0, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +DL_EXPORT(PyTypeObject) PyPetscComm_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Comm", /*tp_name*/ + sizeof(struct PyPetscCommObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Comm, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_Comm, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Comm, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Comm, /*tp_clear*/ + __pyx_pw_8petsc4py_5PETSc_4Comm_5__richcmp__, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Comm, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Comm, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Comm, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Object __pyx_vtable_8petsc4py_5PETSc_Object; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Object(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct PyPetscObjectObject *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct PyPetscObjectObject *)o); + p->__pyx_vtab = __pyx_vtabptr_8petsc4py_5PETSc_Object; + p->__pyx___dummy__ = Py_None; Py_INCREF(Py_None); + if (unlikely(__pyx_pw_8petsc4py_5PETSc_6Object_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Object(PyObject *o) { + struct PyPetscObjectObject *p = (struct PyPetscObjectObject *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_6Object_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + if (p->__weakref__) PyObject_ClearWeakRefs(o); + Py_CLEAR(p->__pyx___dummy__); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc_Object(PyObject *o, visitproc v, void *a) { + int e; + struct PyPetscObjectObject *p = (struct PyPetscObjectObject *)o; + if (p->__pyx___dummy__) { + e = (*v)(p->__pyx___dummy__, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc_Object(PyObject *o) { + PyObject* tmp; + struct PyPetscObjectObject *p = (struct PyPetscObjectObject *)o; + tmp = ((PyObject*)p->__pyx___dummy__); + p->__pyx___dummy__ = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_4type_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_6Object_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_6Object_4type_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_prefix(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_6prefix_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_6Object_prefix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_6Object_6prefix_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_comm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_4comm_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_4name_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_6Object_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_6Object_4name_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_classid(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_7classid_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_klass(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_5klass_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_refcount(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_8refcount_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_handle(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_6handle_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Object_fortran(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Object_7fortran_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Object[] = { + {"__copy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_9__copy__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_8__copy__}, + {"__deepcopy__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_11__deepcopy__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_10__deepcopy__}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_13view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_12view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_15destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_14destroy}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_17getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_16getType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_19setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_18setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_21getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_20getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_23appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_22appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_25setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_24setFromOptions}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_27viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_26viewFromOptions}, + {"getComm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_29getComm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_28getComm}, + {"getName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_31getName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_30getName}, + {"setName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_33setName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_32setName}, + {"getClassId", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_35getClassId, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_34getClassId}, + {"getClassName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_37getClassName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_36getClassName}, + {"getRefCount", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_39getRefCount, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_38getRefCount}, + {"compose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_41compose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_40compose}, + {"query", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_43query, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_42query}, + {"incRef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_45incRef, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_44incRef}, + {"decRef", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_47decRef, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_46decRef}, + {"getAttr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_49getAttr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_48getAttr}, + {"setAttr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_51setAttr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_50setAttr}, + {"getDict", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_53getDict, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_52getDict}, + {"stateIncrease", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_55stateIncrease, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_54stateIncrease}, + {"stateGet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_57stateGet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_56stateGet}, + {"stateSet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_59stateSet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_58stateSet}, + {"incrementTabLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_61incrementTabLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_60incrementTabLevel}, + {"setTabLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_63setTabLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_62setTabLevel}, + {"getTabLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Object_65getTabLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Object_64getTabLevel}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Object[] = { + {(char *)"type", __pyx_getprop_8petsc4py_5PETSc_6Object_type, __pyx_setprop_8petsc4py_5PETSc_6Object_type, (char *)0, 0}, + {(char *)"prefix", __pyx_getprop_8petsc4py_5PETSc_6Object_prefix, __pyx_setprop_8petsc4py_5PETSc_6Object_prefix, (char *)0, 0}, + {(char *)"comm", __pyx_getprop_8petsc4py_5PETSc_6Object_comm, 0, (char *)0, 0}, + {(char *)"name", __pyx_getprop_8petsc4py_5PETSc_6Object_name, __pyx_setprop_8petsc4py_5PETSc_6Object_name, (char *)0, 0}, + {(char *)"classid", __pyx_getprop_8petsc4py_5PETSc_6Object_classid, 0, (char *)0, 0}, + {(char *)"klass", __pyx_getprop_8petsc4py_5PETSc_6Object_klass, 0, (char *)0, 0}, + {(char *)"refcount", __pyx_getprop_8petsc4py_5PETSc_6Object_refcount, 0, (char *)0, 0}, + {(char *)"handle", __pyx_getprop_8petsc4py_5PETSc_6Object_handle, 0, (char *)0, 0}, + {(char *)"fortran", __pyx_getprop_8petsc4py_5PETSc_6Object_fortran, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_Object = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + __pyx_pw_8petsc4py_5PETSc_6Object_7__nonzero__, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + 0, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + 0, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +DL_EXPORT(PyTypeObject) PyPetscObject_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Object", /*tp_name*/ + sizeof(struct PyPetscObjectObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_Object, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + __pyx_pw_8petsc4py_5PETSc_6Object_5__richcmp__, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Object, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Object, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Object, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Viewer __pyx_vtable_8petsc4py_5PETSc_Viewer; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Viewer(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscViewerObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscViewerObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Viewer; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_6Viewer_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Viewer[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_8create}, + {"createASCII", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_11createASCII, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_10createASCII}, + {"createBinary", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_13createBinary, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_12createBinary}, + {"createMPIIO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_15createMPIIO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_14createMPIIO}, + {"createVTK", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_17createVTK, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_16createVTK}, + {"createHDF5", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_19createHDF5, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_18createHDF5}, + {"createDraw", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_21createDraw, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_20createDraw}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_23setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_22setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_25getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_24getType}, + {"getFormat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_27getFormat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_26getFormat}, + {"pushFormat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_29pushFormat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_28pushFormat}, + {"popFormat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_31popFormat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_30popFormat}, + {"getSubViewer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_33getSubViewer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_32getSubViewer}, + {"restoreSubViewer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_35restoreSubViewer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_34restoreSubViewer}, + {"STDOUT", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_37STDOUT, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_36STDOUT}, + {"STDERR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_39STDERR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_38STDERR}, + {"ASCII", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_41ASCII, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_40ASCII}, + {"BINARY", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_43BINARY, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_42BINARY}, + {"DRAW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_45DRAW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_44DRAW}, + {"setASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_47setASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_46setASCIITab}, + {"getASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_49getASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_48getASCIITab}, + {"addASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_51addASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_50addASCIITab}, + {"subtractASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_53subtractASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_52subtractASCIITab}, + {"pushASCIISynchronized", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_55pushASCIISynchronized, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_54pushASCIISynchronized}, + {"popASCIISynchronized", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_57popASCIISynchronized, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_56popASCIISynchronized}, + {"pushASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_59pushASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_58pushASCIITab}, + {"popASCIITab", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_61popASCIITab, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_60popASCIITab}, + {"useASCIITabs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_63useASCIITabs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_62useASCIITabs}, + {"printfASCII", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_65printfASCII, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_64printfASCII}, + {"printfASCIISynchronized", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_67printfASCIISynchronized, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_66printfASCIISynchronized}, + {"flush", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_69flush, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_68flush}, + {"setFileMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_71setFileMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_70setFileMode}, + {"getFileMode", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_73getFileMode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_72getFileMode}, + {"setFileName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_75setFileName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_74setFileName}, + {"getFileName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_77getFileName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_76getFileName}, + {"setDrawInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_79setDrawInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_78setDrawInfo}, + {"clearDraw", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Viewer_81clearDraw, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Viewer_80clearDraw}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscViewer_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Viewer", /*tp_name*/ + sizeof(struct PyPetscViewerObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_6Viewer_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Viewer, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Viewer, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Random __pyx_vtable_8petsc4py_5PETSc_Random; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Random(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscRandomObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscRandomObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Random; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_6Random_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Random_seed(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Random_4seed_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_6Random_seed(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_6Random_4seed_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Random_interval(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Random_8interval_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_6Random_interval(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_6Random_8interval_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Random[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_12getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_15setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_14setFromOptions}, + {"getValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_17getValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_16getValue}, + {"getValueReal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_19getValueReal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_18getValueReal}, + {"getSeed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_21getSeed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_20getSeed}, + {"setSeed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_23setSeed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_22setSeed}, + {"getInterval", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_25getInterval, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_24getInterval}, + {"setInterval", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Random_27setInterval, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Random_26setInterval}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Random[] = { + {(char *)"seed", __pyx_getprop_8petsc4py_5PETSc_6Random_seed, __pyx_setprop_8petsc4py_5PETSc_6Random_seed, (char *)0, 0}, + {(char *)"interval", __pyx_getprop_8petsc4py_5PETSc_6Random_interval, __pyx_setprop_8petsc4py_5PETSc_6Random_interval, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscRandom_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Random", /*tp_name*/ + sizeof(struct PyPetscRandomObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_6Random_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Random, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Random, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Random, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Device(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_6Device_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Device(PyObject *o) { + struct PyPetscDeviceObject *p = (struct PyPetscDeviceObject *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_6Device_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + if (p->__weakref__) PyObject_ClearWeakRefs(o); + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Device_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Device_4type_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6Device_device_id(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6Device_9device_id_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Device[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_4create}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_6destroy}, + {"configure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_9configure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_8configure}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_11view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_10view}, + {"getDeviceType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_13getDeviceType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_12getDeviceType}, + {"getDeviceId", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_15getDeviceId, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_14getDeviceId}, + {"setDefaultType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6Device_17setDefaultType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6Device_16setDefaultType}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Device[] = { + {(char *)"type", __pyx_getprop_8petsc4py_5PETSc_6Device_type, 0, (char *)0, 0}, + {(char *)"device_id", __pyx_getprop_8petsc4py_5PETSc_6Device_device_id, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDevice_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Device", /*tp_name*/ + sizeof(struct PyPetscDeviceObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Device, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Device, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Device, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Device, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DeviceContext __pyx_vtable_8petsc4py_5PETSc_DeviceContext; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DeviceContext(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDeviceContextObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDeviceContextObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DeviceContext; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_13DeviceContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_DeviceContext(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_13DeviceContext_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + PyObject_GC_Track(o); + __pyx_tp_dealloc_8petsc4py_5PETSc_Object(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_13DeviceContext_stream_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_stream_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_11stream_type_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_13DeviceContext_device(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_device(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_6device_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_13DeviceContext_current(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_current(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_13DeviceContext_7current_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DeviceContext[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_4create}, + {"getStreamType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_7getStreamType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_6getStreamType}, + {"setStreamType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_9setStreamType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_8setStreamType}, + {"getDevice", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_11getDevice, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_10getDevice}, + {"setDevice", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_13setDevice, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_12setDevice}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_15setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_14setUp}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_17duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_16duplicate}, + {"idle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_19idle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_18idle}, + {"waitFor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_21waitFor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_20waitFor}, + {"fork", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_23fork, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_22fork}, + {"join", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_25join, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_24join}, + {"synchronize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_27synchronize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_26synchronize}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_29setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_28setFromOptions}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_31viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_30viewFromOptions}, + {"getCurrent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_33getCurrent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_32getCurrent}, + {"setCurrent", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_13DeviceContext_35setCurrent, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_13DeviceContext_34setCurrent}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_DeviceContext[] = { + {(char *)"stream_type", __pyx_getprop_8petsc4py_5PETSc_13DeviceContext_stream_type, __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_stream_type, (char *)0, 0}, + {(char *)"device", __pyx_getprop_8petsc4py_5PETSc_13DeviceContext_device, __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_device, (char *)0, 0}, + {(char *)"current", __pyx_getprop_8petsc4py_5PETSc_13DeviceContext_current, __pyx_setprop_8petsc4py_5PETSc_13DeviceContext_current, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDeviceContext_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DeviceContext", /*tp_name*/ + sizeof(struct PyPetscDeviceContextObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_DeviceContext, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DeviceContext, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_DeviceContext, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DeviceContext, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_IS __pyx_vtable_8petsc4py_5PETSc_IS; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_IS(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscISObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscISObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_IS; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2IS_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_permutation(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_11permutation_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_identity(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_8identity_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_sorted(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_6sorted_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_5sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_4size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_local_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_10local_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_block_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_10block_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_indices(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_7indices_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS_array(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_5array_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2IS___array_interface__(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2IS_19__array_interface___1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_IS[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_7__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_6__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_9__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_8__exit__}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_11view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_10view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_13destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_12destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_15create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_14create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_17setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_16setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_19getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_18getType}, + {"createGeneral", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_21createGeneral, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_20createGeneral}, + {"createBlock", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_23createBlock, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_22createBlock}, + {"createStride", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_25createStride, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_24createStride}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_27duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_26duplicate}, + {"copy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_29copy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_28copy}, + {"load", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_31load, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_30load}, + {"allGather", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_33allGather, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_32allGather}, + {"toGeneral", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_35toGeneral, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_34toGeneral}, + {"buildTwoSided", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_37buildTwoSided, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_36buildTwoSided}, + {"invertPermutation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_39invertPermutation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_38invertPermutation}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_41getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_40getSize}, + {"getLocalSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_43getLocalSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_42getLocalSize}, + {"getSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_45getSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_44getSizes}, + {"getBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_47getBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_46getBlockSize}, + {"setBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_49setBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_48setBlockSize}, + {"sort", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_51sort, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_50sort}, + {"isSorted", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_53isSorted, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_52isSorted}, + {"setPermutation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_55setPermutation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_54setPermutation}, + {"isPermutation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_57isPermutation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_56isPermutation}, + {"setIdentity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_59setIdentity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_58setIdentity}, + {"isIdentity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_61isIdentity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_60isIdentity}, + {"equal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_63equal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_62equal}, + {"sum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_65sum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_64sum}, + {"expand", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_67expand, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_66expand}, + {"union", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_69union, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_68union}, + {"difference", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_71difference, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_70difference}, + {"complement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_73complement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_72complement}, + {"embed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_75embed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_74embed}, + {"renumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_77renumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_76renumber}, + {"setIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_79setIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_78setIndices}, + {"getIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_81getIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_80getIndices}, + {"setBlockIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_83setBlockIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_82setBlockIndices}, + {"getBlockIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_85getBlockIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_84getBlockIndices}, + {"setStride", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_87setStride, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_86setStride}, + {"getStride", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_89getStride, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_88getStride}, + {"getInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2IS_91getInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2IS_90getInfo}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_IS[] = { + {(char *)"permutation", __pyx_getprop_8petsc4py_5PETSc_2IS_permutation, 0, (char *)0, 0}, + {(char *)"identity", __pyx_getprop_8petsc4py_5PETSc_2IS_identity, 0, (char *)0, 0}, + {(char *)"sorted", __pyx_getprop_8petsc4py_5PETSc_2IS_sorted, 0, (char *)0, 0}, + {(char *)"sizes", __pyx_getprop_8petsc4py_5PETSc_2IS_sizes, 0, (char *)0, 0}, + {(char *)"size", __pyx_getprop_8petsc4py_5PETSc_2IS_size, 0, (char *)0, 0}, + {(char *)"local_size", __pyx_getprop_8petsc4py_5PETSc_2IS_local_size, 0, (char *)0, 0}, + {(char *)"block_size", __pyx_getprop_8petsc4py_5PETSc_2IS_block_size, 0, (char *)0, 0}, + {(char *)"indices", __pyx_getprop_8petsc4py_5PETSc_2IS_indices, 0, (char *)0, 0}, + {(char *)"array", __pyx_getprop_8petsc4py_5PETSc_2IS_array, 0, (char *)0, 0}, + {(char *)"__array_interface__", __pyx_getprop_8petsc4py_5PETSc_2IS___array_interface__, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyBufferProcs __pyx_tp_as_buffer_IS = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_pw_8petsc4py_5PETSc_2IS_3__getbuffer__, /*bf_getbuffer*/ + __pyx_pw_8petsc4py_5PETSc_2IS_5__releasebuffer__, /*bf_releasebuffer*/ +}; + +DL_EXPORT(PyTypeObject) PyPetscIS_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.IS", /*tp_name*/ + sizeof(struct PyPetscISObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_IS, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_IS, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_IS, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_IS, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_LGMap __pyx_vtable_8petsc4py_5PETSc_LGMap; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LGMap(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscLGMapObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscLGMapObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_LGMap; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_5LGMap_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_4size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_block_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_10block_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_indices(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_7indices_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_block_indices(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_13block_indices_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_info(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_4info_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_5LGMap_block_info(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_5LGMap_10block_info_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_LGMap[] = { + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_5setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_4setType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_7setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_6setFromOptions}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_9view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_8view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_11destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_10destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_13create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_12create}, + {"createIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_15createIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_14createIS}, + {"createSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_17createSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_16createSF}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_19getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_18getSize}, + {"getBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_21getBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_20getBlockSize}, + {"getIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_23getIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_22getIndices}, + {"getBlockIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_25getBlockIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_24getBlockIndices}, + {"getInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_27getInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_26getInfo}, + {"getBlockInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_29getBlockInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_28getBlockInfo}, + {"apply", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_31apply, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_30apply}, + {"applyBlock", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_33applyBlock, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_32applyBlock}, + {"applyIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_35applyIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_34applyIS}, + {"applyInverse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_37applyInverse, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_36applyInverse}, + {"applyBlockInverse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5LGMap_39applyBlockInverse, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5LGMap_38applyBlockInverse}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_LGMap[] = { + {(char *)"size", __pyx_getprop_8petsc4py_5PETSc_5LGMap_size, 0, (char *)0, 0}, + {(char *)"block_size", __pyx_getprop_8petsc4py_5PETSc_5LGMap_block_size, 0, (char *)0, 0}, + {(char *)"indices", __pyx_getprop_8petsc4py_5PETSc_5LGMap_indices, 0, (char *)0, 0}, + {(char *)"block_indices", __pyx_getprop_8petsc4py_5PETSc_5LGMap_block_indices, 0, (char *)0, 0}, + {(char *)"info", __pyx_getprop_8petsc4py_5PETSc_5LGMap_info, 0, (char *)0, 0}, + {(char *)"block_info", __pyx_getprop_8petsc4py_5PETSc_5LGMap_block_info, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscLGMap_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.LGMap", /*tp_name*/ + sizeof(struct PyPetscLGMapObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_5LGMap_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_LGMap, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_LGMap, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_LGMap, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_SF __pyx_vtable_8petsc4py_5PETSc_SF; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_SF(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscSFObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscSFObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_SF; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2SF_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_SF(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_2SF_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + PyObject_GC_Track(o); + __pyx_tp_dealloc_8petsc4py_5PETSc_Object(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_SF[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_12getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_15setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_14setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_17setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_16setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_19reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_18reset}, + {"getGraph", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_21getGraph, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_20getGraph}, + {"setGraph", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_23setGraph, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_22setGraph}, + {"setRankOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_25setRankOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_24setRankOrder}, + {"getMulti", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_27getMulti, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_26getMulti}, + {"createInverse", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_29createInverse, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_28createInverse}, + {"computeDegree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_31computeDegree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_30computeDegree}, + {"createEmbeddedRootSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_33createEmbeddedRootSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_32createEmbeddedRootSF}, + {"createEmbeddedLeafSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_35createEmbeddedLeafSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_34createEmbeddedLeafSF}, + {"createSectionSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_37createSectionSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_36createSectionSF}, + {"distributeSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_39distributeSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_38distributeSection}, + {"compose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_41compose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_40compose}, + {"bcastBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_43bcastBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_42bcastBegin}, + {"bcastEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_45bcastEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_44bcastEnd}, + {"reduceBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_47reduceBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_46reduceBegin}, + {"reduceEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_49reduceEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_48reduceEnd}, + {"scatterBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_51scatterBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_50scatterBegin}, + {"scatterEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_53scatterEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_52scatterEnd}, + {"gatherBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_55gatherBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_54gatherBegin}, + {"gatherEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_57gatherEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_56gatherEnd}, + {"fetchAndOpBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_59fetchAndOpBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_58fetchAndOpBegin}, + {"fetchAndOpEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2SF_61fetchAndOpEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2SF_60fetchAndOpEnd}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscSF_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.SF", /*tp_name*/ + sizeof(struct PyPetscSFObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_SF, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_SF, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_SF, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Vec __pyx_vtable_8petsc4py_5PETSc_Vec; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Vec(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscVecObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscVecObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Vec; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_3Vec_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} +static PyObject *__pyx_sq_item_8petsc4py_5PETSc_Vec(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_8petsc4py_5PETSc_Vec(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_31__setitem__(o, i, v); + } + else { + if (__pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping && __pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping->mp_ass_subscript) + return __pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping->mp_ass_subscript(o, i, v); + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3Vec_sizes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_5sizes_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_4size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_local_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_10local_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_block_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_10block_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_owner_range(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_11owner_range_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_owner_ranges(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_12owner_ranges_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_buffer_w(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_w_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_buffer_r(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_8buffer_r_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_array_w(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3Vec_array_w(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_7array_w_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_array_r(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_7array_r_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_buffer(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_6buffer_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec_array(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_5array_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3Vec_array(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_5array_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Vec___array_interface__(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Vec_19__array_interface___1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Vec[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_37__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_36__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_39__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_38__exit__}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_41view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_40view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_43destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_42destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_45create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_44create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_47setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_46setType}, + {"setSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_49setSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_48setSizes}, + {"createSeq", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_51createSeq, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_50createSeq}, + {"createMPI", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_53createMPI, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_52createMPI}, + {"createWithArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_55createWithArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_54createWithArray}, + {"createCUDAWithArrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_57createCUDAWithArrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_56createCUDAWithArrays}, + {"createHIPWithArrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_59createHIPWithArrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_58createHIPWithArrays}, + {"createViennaCLWithArrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_61createViennaCLWithArrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_60createViennaCLWithArrays}, + {"createWithDLPack", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_63createWithDLPack, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_62createWithDLPack}, + {"attachDLPackInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_65attachDLPackInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_64attachDLPackInfo}, + {"clearDLPackInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_67clearDLPackInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_66clearDLPackInfo}, + {"__dlpack__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_69__dlpack__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_68__dlpack__}, + {"__dlpack_device__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_71__dlpack_device__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_70__dlpack_device__}, + {"toDLPack", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_73toDLPack, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_72toDLPack}, + {"createGhost", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_75createGhost, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_74createGhost}, + {"createGhostWithArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_77createGhostWithArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_76createGhostWithArray}, + {"createShared", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_79createShared, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_78createShared}, + {"createNest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_81createNest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_80createNest}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_83setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_82setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_85getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_84getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_87appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_86appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_89setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_88setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_91setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_90setUp}, + {"setOption", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_93setOption, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_92setOption}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_95getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_94getType}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_97getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_96getSize}, + {"getLocalSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_99getLocalSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_98getLocalSize}, + {"getSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_101getSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_100getSizes}, + {"setBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_103setBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_102setBlockSize}, + {"getBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_105getBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_104getBlockSize}, + {"getOwnershipRange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_107getOwnershipRange, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_106getOwnershipRange}, + {"getOwnershipRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_109getOwnershipRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_108getOwnershipRanges}, + {"createLocalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_111createLocalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_110createLocalVector}, + {"getLocalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_113getLocalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_112getLocalVector}, + {"restoreLocalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_115restoreLocalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_114restoreLocalVector}, + {"getBuffer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_117getBuffer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_116getBuffer}, + {"getArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_119getArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_118getArray}, + {"setArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_121setArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_120setArray}, + {"placeArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_123placeArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_122placeArray}, + {"resetArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_125resetArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_124resetArray}, + {"bindToCPU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_127bindToCPU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_126bindToCPU}, + {"boundToCPU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_129boundToCPU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_128boundToCPU}, + {"getCUDAHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_131getCUDAHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_130getCUDAHandle}, + {"restoreCUDAHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_133restoreCUDAHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_132restoreCUDAHandle}, + {"getHIPHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_135getHIPHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_134getHIPHandle}, + {"restoreHIPHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_137restoreHIPHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_136restoreHIPHandle}, + {"getOffloadMask", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_139getOffloadMask, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_138getOffloadMask}, + {"getCLContextHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_141getCLContextHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_140getCLContextHandle}, + {"getCLQueueHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_143getCLQueueHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_142getCLQueueHandle}, + {"getCLMemHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_145getCLMemHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_144getCLMemHandle}, + {"restoreCLMemHandle", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_147restoreCLMemHandle, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_146restoreCLMemHandle}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_149duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_148duplicate}, + {"copy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_151copy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_150copy}, + {"chop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_153chop, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_152chop}, + {"load", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_155load, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_154load}, + {"equal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_157equal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_156equal}, + {"dot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_159dot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_158dot}, + {"dotBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_161dotBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_160dotBegin}, + {"dotEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_163dotEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_162dotEnd}, + {"tDot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_165tDot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_164tDot}, + {"tDotBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_167tDotBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_166tDotBegin}, + {"tDotEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_169tDotEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_168tDotEnd}, + {"mDot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_171mDot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_170mDot}, + {"mDotBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_173mDotBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_172mDotBegin}, + {"mDotEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_175mDotEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_174mDotEnd}, + {"mtDot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_177mtDot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_176mtDot}, + {"mtDotBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_179mtDotBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_178mtDotBegin}, + {"mtDotEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_181mtDotEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_180mtDotEnd}, + {"norm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_183norm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_182norm}, + {"normBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_185normBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_184normBegin}, + {"normEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_187normEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_186normEnd}, + {"sum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_189sum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_188sum}, + {"min", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_191min, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_190min}, + {"max", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_193max, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_192max}, + {"normalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_195normalize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_194normalize}, + {"reciprocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_197reciprocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_196reciprocal}, + {"exp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_199exp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_198exp}, + {"log", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_201log, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_200log}, + {"sqrtabs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_203sqrtabs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_202sqrtabs}, + {"abs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_205abs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_204abs}, + {"conjugate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_207conjugate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_206conjugate}, + {"setRandom", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_209setRandom, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_208setRandom}, + {"permute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_211permute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_210permute}, + {"zeroEntries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_213zeroEntries, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_212zeroEntries}, + {"set", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_215set, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_214set}, + {"isset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_217isset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_216isset}, + {"scale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_219scale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_218scale}, + {"shift", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_221shift, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_220shift}, + {"chop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_223chop, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_222chop}, + {"swap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_225swap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_224swap}, + {"axpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_227axpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_226axpy}, + {"isaxpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_229isaxpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_228isaxpy}, + {"aypx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_231aypx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_230aypx}, + {"axpby", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_233axpby, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_232axpby}, + {"waxpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_235waxpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_234waxpy}, + {"maxpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_237maxpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_236maxpy}, + {"pointwiseMult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_239pointwiseMult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_238pointwiseMult}, + {"pointwiseDivide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_241pointwiseDivide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_240pointwiseDivide}, + {"pointwiseMin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_243pointwiseMin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_242pointwiseMin}, + {"pointwiseMax", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_245pointwiseMax, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_244pointwiseMax}, + {"pointwiseMaxAbs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_247pointwiseMaxAbs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_246pointwiseMaxAbs}, + {"maxPointwiseDivide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_249maxPointwiseDivide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_248maxPointwiseDivide}, + {"getValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_251getValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_250getValue}, + {"getValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_253getValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_252getValues}, + {"getValuesStagStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_255getValuesStagStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_254getValuesStagStencil}, + {"setValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_257setValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_256setValue}, + {"setValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_259setValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_258setValues}, + {"setValuesBlocked", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_261setValuesBlocked, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_260setValuesBlocked}, + {"setValuesStagStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_263setValuesStagStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_262setValuesStagStencil}, + {"setLGMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_265setLGMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_264setLGMap}, + {"getLGMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_267getLGMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_266getLGMap}, + {"setValueLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_269setValueLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_268setValueLocal}, + {"setValuesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_271setValuesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_270setValuesLocal}, + {"setValuesBlockedLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_273setValuesBlockedLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_272setValuesBlockedLocal}, + {"assemblyBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_275assemblyBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_274assemblyBegin}, + {"assemblyEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_277assemblyEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_276assemblyEnd}, + {"assemble", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_279assemble, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_278assemble}, + {"strideScale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_281strideScale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_280strideScale}, + {"strideSum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_283strideSum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_282strideSum}, + {"strideMin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_285strideMin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_284strideMin}, + {"strideMax", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_287strideMax, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_286strideMax}, + {"strideNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_289strideNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_288strideNorm}, + {"strideScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_291strideScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_290strideScatter}, + {"strideGather", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_293strideGather, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_292strideGather}, + {"localForm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_295localForm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_294localForm}, + {"ghostUpdateBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_297ghostUpdateBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_296ghostUpdateBegin}, + {"ghostUpdateEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_299ghostUpdateEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_298ghostUpdateEnd}, + {"ghostUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_301ghostUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_300ghostUpdate}, + {"setMPIGhost", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_303setMPIGhost, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_302setMPIGhost}, + {"getSubVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_305getSubVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_304getSubVector}, + {"restoreSubVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_307restoreSubVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_306restoreSubVector}, + {"getNestSubVecs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_309getNestSubVecs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_308getNestSubVecs}, + {"setNestSubVecs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_311setNestSubVecs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_310setNestSubVecs}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_313setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_312setDM}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Vec_315getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Vec_314getDM}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Vec[] = { + {(char *)"sizes", __pyx_getprop_8petsc4py_5PETSc_3Vec_sizes, __pyx_setprop_8petsc4py_5PETSc_3Vec_sizes, (char *)0, 0}, + {(char *)"size", __pyx_getprop_8petsc4py_5PETSc_3Vec_size, 0, (char *)0, 0}, + {(char *)"local_size", __pyx_getprop_8petsc4py_5PETSc_3Vec_local_size, 0, (char *)0, 0}, + {(char *)"block_size", __pyx_getprop_8petsc4py_5PETSc_3Vec_block_size, 0, (char *)0, 0}, + {(char *)"owner_range", __pyx_getprop_8petsc4py_5PETSc_3Vec_owner_range, 0, (char *)0, 0}, + {(char *)"owner_ranges", __pyx_getprop_8petsc4py_5PETSc_3Vec_owner_ranges, 0, (char *)0, 0}, + {(char *)"buffer_w", __pyx_getprop_8petsc4py_5PETSc_3Vec_buffer_w, 0, (char *)"Vec buffer (writable)", 0}, + {(char *)"buffer_r", __pyx_getprop_8petsc4py_5PETSc_3Vec_buffer_r, 0, (char *)"Vec buffer (read-only)", 0}, + {(char *)"array_w", __pyx_getprop_8petsc4py_5PETSc_3Vec_array_w, __pyx_setprop_8petsc4py_5PETSc_3Vec_array_w, (char *)"Vec array (writable)", 0}, + {(char *)"array_r", __pyx_getprop_8petsc4py_5PETSc_3Vec_array_r, 0, (char *)"Vec array (read-only)", 0}, + {(char *)"buffer", __pyx_getprop_8petsc4py_5PETSc_3Vec_buffer, 0, (char *)0, 0}, + {(char *)"array", __pyx_getprop_8petsc4py_5PETSc_3Vec_array, __pyx_setprop_8petsc4py_5PETSc_3Vec_array, (char *)0, 0}, + {(char *)"__array_interface__", __pyx_getprop_8petsc4py_5PETSc_3Vec___array_interface__, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_Vec = { + __pyx_pw_8petsc4py_5PETSc_3Vec_19__add__, /*nb_add*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_21__sub__, /*nb_subtract*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_23__mul__, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + __pyx_pw_8petsc4py_5PETSc_3Vec_25__div__, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_5__neg__, /*nb_negative*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_3__pos__, /*nb_positive*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_7__abs__, /*nb_absolute*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_8petsc4py_5PETSc_6Object_7__nonzero__, /*nb_nonzero*/ + #else + 0, /*nb_nonzero*/ + #endif + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + 0, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + 0, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + __pyx_pw_8petsc4py_5PETSc_3Vec_9__iadd__, /*nb_inplace_add*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_11__isub__, /*nb_inplace_subtract*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_13__imul__, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + __pyx_pw_8petsc4py_5PETSc_3Vec_15__idiv__, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_27__truediv__, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_17__itruediv__, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +static PySequenceMethods __pyx_tp_as_sequence_Vec = { + 0, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_8petsc4py_5PETSc_Vec, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_Vec = { + 0, /*mp_length*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_29__getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_8petsc4py_5PETSc_Vec, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_Vec = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_pw_8petsc4py_5PETSc_3Vec_33__getbuffer__, /*bf_getbuffer*/ + __pyx_pw_8petsc4py_5PETSc_3Vec_35__releasebuffer__, /*bf_releasebuffer*/ +}; + +DL_EXPORT(PyTypeObject) PyPetscVec_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Vec", /*tp_name*/ + sizeof(struct PyPetscVecObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_Vec, /*tp_as_number*/ + &__pyx_tp_as_sequence_Vec, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_Vec, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_Vec, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Vec, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Vec, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Vec, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Space __pyx_vtable_8petsc4py_5PETSc_Space; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Space(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscSpaceObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscSpaceObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Space; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_5Space_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Space[] = { + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_3setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_2setUp}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_4create}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_6destroy}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_9view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_8view}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_11setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_10setFromOptions}, + {"getDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_13getDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_12getDimension}, + {"getDegree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_15getDegree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_14getDegree}, + {"setDegree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_17setDegree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_16setDegree}, + {"getNumVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_19getNumVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_18getNumVariables}, + {"setNumVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_21setNumVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_20setNumVariables}, + {"getNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_23getNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_22getNumComponents}, + {"setNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_25setNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_24setNumComponents}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_27getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_26getType}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_29setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_28setType}, + {"getSumConcatenate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_31getSumConcatenate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_30getSumConcatenate}, + {"setSumConcatenate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_33setSumConcatenate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_32setSumConcatenate}, + {"getSumNumSubspaces", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_35getSumNumSubspaces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_34getSumNumSubspaces}, + {"getSumSubspace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_37getSumSubspace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_36getSumSubspace}, + {"setSumSubspace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_39setSumSubspace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_38setSumSubspace}, + {"setSumNumSubspaces", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_41setSumNumSubspaces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_40setSumNumSubspaces}, + {"getTensorNumSubspaces", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_43getTensorNumSubspaces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_42getTensorNumSubspaces}, + {"setTensorSubspace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_45setTensorSubspace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_44setTensorSubspace}, + {"getTensorSubspace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_47getTensorSubspace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_46getTensorSubspace}, + {"setTensorNumSubspaces", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_49setTensorNumSubspaces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_48setTensorNumSubspaces}, + {"getPolynomialTensor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_51getPolynomialTensor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_50getPolynomialTensor}, + {"setPolynomialTensor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_53setPolynomialTensor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_52setPolynomialTensor}, + {"setPointPoints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_55setPointPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_54setPointPoints}, + {"getPointPoints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_57getPointPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_56getPointPoints}, + {"setPTrimmedFormDegree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_59setPTrimmedFormDegree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_58setPTrimmedFormDegree}, + {"getPTrimmedFormDegree", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_61getPTrimmedFormDegree, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_60getPTrimmedFormDegree}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_5Space_63viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_5Space_62viewFromOptions}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscSpace_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Space", /*tp_name*/ + sizeof(struct PyPetscSpaceObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Space, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Space, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DualSpace __pyx_vtable_8petsc4py_5PETSc_DualSpace; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DualSpace(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDualSpaceObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDualSpaceObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DualSpace; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_9DualSpace_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DualSpace[] = { + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_3setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_2setUp}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_4create}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_7view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_6view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_9destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_8destroy}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_11duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_10duplicate}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_13getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_12getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_15setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_14setDM}, + {"getDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_17getDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_16getDimension}, + {"getNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_19getNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_18getNumComponents}, + {"setNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_21setNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_20setNumComponents}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_23getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_22getType}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_25setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_24setType}, + {"getOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_27getOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_26getOrder}, + {"setOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_29setOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_28setOrder}, + {"getNumDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_31getNumDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_30getNumDof}, + {"getFunctional", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_33getFunctional, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_32getFunctional}, + {"getInteriorDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_35getInteriorDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_34getInteriorDimension}, + {"getLagrangeContinuity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_37getLagrangeContinuity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_36getLagrangeContinuity}, + {"setLagrangeContinuity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_39setLagrangeContinuity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_38setLagrangeContinuity}, + {"getLagrangeTensor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_41getLagrangeTensor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_40getLagrangeTensor}, + {"setLagrangeTensor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_43setLagrangeTensor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_42setLagrangeTensor}, + {"getLagrangeTrimmed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_45getLagrangeTrimmed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_44getLagrangeTrimmed}, + {"setLagrangeTrimmed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_47setLagrangeTrimmed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_46setLagrangeTrimmed}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_49viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_48viewFromOptions}, + {"setSimpleDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_51setSimpleDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_50setSimpleDimension}, + {"setSimpleFunctional", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9DualSpace_53setSimpleFunctional, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9DualSpace_52setSimpleFunctional}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDualSpace_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DualSpace", /*tp_name*/ + sizeof(struct PyPetscDualSpaceObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DualSpace, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DualSpace, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_FE __pyx_vtable_8petsc4py_5PETSc_FE; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_FE(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscFEObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscFEObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_FE; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2FE_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_FE[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_4destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_6create}, + {"createDefault", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_9createDefault, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_8createDefault}, + {"createLagrange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_11createLagrange, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_10createLagrange}, + {"getQuadrature", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_13getQuadrature, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_12getQuadrature}, + {"getDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_15getDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_14getDimension}, + {"getSpatialDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_17getSpatialDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_16getSpatialDimension}, + {"getNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_19getNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_18getNumComponents}, + {"setNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_21setNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_20setNumComponents}, + {"getNumDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_23getNumDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_22getNumDof}, + {"getTileSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_25getTileSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_24getTileSizes}, + {"setTileSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_27setTileSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_26setTileSizes}, + {"getFaceQuadrature", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_29getFaceQuadrature, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_28getFaceQuadrature}, + {"setQuadrature", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_31setQuadrature, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_30setQuadrature}, + {"setFaceQuadrature", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_33setFaceQuadrature, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_32setFaceQuadrature}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_35setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_34setType}, + {"getBasisSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_37getBasisSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_36getBasisSpace}, + {"setBasisSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_39setBasisSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_38setBasisSpace}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_41setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_40setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_43setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_42setUp}, + {"getDualSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_45getDualSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_44getDualSpace}, + {"setDualSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_47setDualSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_46setDualSpace}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2FE_49viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2FE_48viewFromOptions}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscFE_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.FE", /*tp_name*/ + sizeof(struct PyPetscFEObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_FE, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_FE, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Quad __pyx_vtable_8petsc4py_5PETSc_Quad; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Quad(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscQuadObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscQuadObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Quad; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_4Quad_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Quad[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_2view}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_4create}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_7duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_6duplicate}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_9destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_8destroy}, + {"getData", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_11getData, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_10getData}, + {"getNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_13getNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_12getNumComponents}, + {"setNumComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_15setNumComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_14setNumComponents}, + {"getOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_17getOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_16getOrder}, + {"setOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4Quad_19setOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4Quad_18setOrder}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscQuad_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Quad", /*tp_name*/ + sizeof(struct PyPetscQuadObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Quad, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Quad, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Scatter __pyx_vtable_8petsc4py_5PETSc_Scatter; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Scatter(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscScatterObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscScatterObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Scatter; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_7Scatter_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Scatter[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_12getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_15setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_14setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_17setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_16setUp}, + {"copy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_19copy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_18copy}, + {"toAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_21toAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_20toAll}, + {"toZero", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_23toZero, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_22toZero}, + {"begin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_25begin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_24begin}, + {"end", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_27end, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_26end}, + {"scatterBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_29scatterBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_28scatterBegin}, + {"scatterEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_31scatterEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_30scatterEnd}, + {"scatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Scatter_33scatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Scatter_32scatter}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscScatter_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Scatter", /*tp_name*/ + sizeof(struct PyPetscScatterObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_7Scatter_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Scatter, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Scatter, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Section __pyx_vtable_8petsc4py_5PETSc_Section; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Section(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscSectionObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscSectionObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Section; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_7Section_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Section(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_7Section_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + PyObject_GC_Track(o); + __pyx_tp_dealloc_8petsc4py_5PETSc_Object(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Section[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_8create}, + {"clone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_11clone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_10clone}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_13setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_12setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_15reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_14reset}, + {"getNumFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_17getNumFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_16getNumFields}, + {"setNumFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_19setNumFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_18setNumFields}, + {"getFieldName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_21getFieldName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_20getFieldName}, + {"setFieldName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_23setFieldName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_22setFieldName}, + {"getFieldComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_25getFieldComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_24getFieldComponents}, + {"setFieldComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_27setFieldComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_26setFieldComponents}, + {"getChart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_29getChart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_28getChart}, + {"setChart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_31setChart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_30setChart}, + {"getPermutation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_33getPermutation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_32getPermutation}, + {"setPermutation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_35setPermutation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_34setPermutation}, + {"getDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_37getDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_36getDof}, + {"setDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_39setDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_38setDof}, + {"addDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_41addDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_40addDof}, + {"getFieldDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_43getFieldDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_42getFieldDof}, + {"setFieldDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_45setFieldDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_44setFieldDof}, + {"addFieldDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_47addFieldDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_46addFieldDof}, + {"getConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_49getConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_48getConstraintDof}, + {"setConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_51setConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_50setConstraintDof}, + {"addConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_53addConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_52addConstraintDof}, + {"getFieldConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_55getFieldConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_54getFieldConstraintDof}, + {"setFieldConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_57setFieldConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_56setFieldConstraintDof}, + {"addFieldConstraintDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_59addFieldConstraintDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_58addFieldConstraintDof}, + {"getConstraintIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_61getConstraintIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_60getConstraintIndices}, + {"setConstraintIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_63setConstraintIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_62setConstraintIndices}, + {"getFieldConstraintIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_65getFieldConstraintIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_64getFieldConstraintIndices}, + {"setFieldConstraintIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_67setFieldConstraintIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_66setFieldConstraintIndices}, + {"getMaxDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_69getMaxDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_68getMaxDof}, + {"getStorageSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_71getStorageSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_70getStorageSize}, + {"getConstrainedStorageSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_73getConstrainedStorageSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_72getConstrainedStorageSize}, + {"getOffset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_75getOffset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_74getOffset}, + {"setOffset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_77setOffset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_76setOffset}, + {"getFieldOffset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_79getFieldOffset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_78getFieldOffset}, + {"setFieldOffset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_81setFieldOffset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_80setFieldOffset}, + {"getOffsetRange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_83getOffsetRange, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_82getOffsetRange}, + {"createGlobalSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Section_85createGlobalSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Section_84createGlobalSection}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscSection_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Section", /*tp_name*/ + sizeof(struct PyPetscSectionObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Section, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Section, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Section, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Mat __pyx_vtable_8petsc4py_5PETSc_Mat; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Mat(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscMatObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscMatObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Mat; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_3Mat_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} +static PyObject *__pyx_sq_item_8petsc4py_5PETSc_Mat(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_8petsc4py_5PETSc_Mat(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_29__setitem__(o, i, v); + } + else { + if (__pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping && __pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping->mp_ass_subscript) + return __pyx_ptype_8petsc4py_5PETSc_Object->tp_as_mapping->mp_ass_subscript(o, i, v); + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3Mat_sizes(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_5sizes_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_4size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_local_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_10local_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_block_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_10block_size_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_block_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_11block_sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_owner_range(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_11owner_range_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_owner_ranges(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_12owner_ranges_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_assembled(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_9assembled_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_symmetric(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_9symmetric_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_hermitian(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_9hermitian_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3Mat_structsymm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3Mat_10structsymm_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Mat[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_33view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_32view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_35destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_34destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_37create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_36create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_39setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_38setType}, + {"setSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_41setSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_40setSizes}, + {"setBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_43setBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_42setBlockSize}, + {"setBlockSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_45setBlockSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_44setBlockSizes}, + {"setVecType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_47setVecType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_46setVecType}, + {"getVecType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_49getVecType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_48getVecType}, + {"createAIJ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_51createAIJ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_50createAIJ}, + {"createBAIJ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_53createBAIJ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_52createBAIJ}, + {"createSBAIJ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_55createSBAIJ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_54createSBAIJ}, + {"createAIJCRL", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_57createAIJCRL, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_56createAIJCRL}, + {"setPreallocationNNZ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_59setPreallocationNNZ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_58setPreallocationNNZ}, + {"setPreallocationCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_61setPreallocationCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_60setPreallocationCSR}, + {"createAIJWithArrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_63createAIJWithArrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_62createAIJWithArrays}, + {"createDense", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_65createDense, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_64createDense}, + {"createDenseCUDA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_67createDenseCUDA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_66createDenseCUDA}, + {"setPreallocationDense", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_69setPreallocationDense, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_68setPreallocationDense}, + {"createScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_71createScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_70createScatter}, + {"createNormal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_73createNormal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_72createNormal}, + {"createTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_75createTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_74createTranspose}, + {"createNormalHermitian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_77createNormalHermitian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_76createNormalHermitian}, + {"createHermitianTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_79createHermitianTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_78createHermitianTranspose}, + {"createLRC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_81createLRC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_80createLRC}, + {"createSubMatrixVirtual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_83createSubMatrixVirtual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_82createSubMatrixVirtual}, + {"createNest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_85createNest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_84createNest}, + {"createH2OpusFromMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_87createH2OpusFromMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_86createH2OpusFromMat}, + {"createIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_89createIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_88createIS}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_91createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_90createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_93setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_92setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_95getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_94getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_97setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_96setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_99getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_98getPythonType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_101setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_100setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_103getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_102getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_105appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_104appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_107setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_106setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_109setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_108setUp}, + {"setOption", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_111setOption, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_110setOption}, + {"getOption", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_113getOption, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_112getOption}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_115getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_114getType}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_117getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_116getSize}, + {"getLocalSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_119getLocalSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_118getLocalSize}, + {"getSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_121getSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_120getSizes}, + {"getBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_123getBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_122getBlockSize}, + {"getBlockSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_125getBlockSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_124getBlockSizes}, + {"getOwnershipRange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_127getOwnershipRange, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_126getOwnershipRange}, + {"getOwnershipRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_129getOwnershipRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_128getOwnershipRanges}, + {"getOwnershipRangeColumn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_131getOwnershipRangeColumn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_130getOwnershipRangeColumn}, + {"getOwnershipRangesColumn", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_133getOwnershipRangesColumn, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_132getOwnershipRangesColumn}, + {"getOwnershipIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_135getOwnershipIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_134getOwnershipIS}, + {"getInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_137getInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_136getInfo}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_139duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_138duplicate}, + {"copy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_141copy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_140copy}, + {"load", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_143load, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_142load}, + {"convert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_145convert, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_144convert}, + {"transpose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_147transpose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_146transpose}, + {"setTransposePrecursor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_149setTransposePrecursor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_148setTransposePrecursor}, + {"hermitianTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_151hermitianTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_150hermitianTranspose}, + {"realPart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_153realPart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_152realPart}, + {"imagPart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_155imagPart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_154imagPart}, + {"conjugate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_157conjugate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_156conjugate}, + {"permute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_159permute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_158permute}, + {"equal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_161equal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_160equal}, + {"isTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_163isTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_162isTranspose}, + {"isSymmetric", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_165isSymmetric, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_164isSymmetric}, + {"isSymmetricKnown", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_167isSymmetricKnown, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_166isSymmetricKnown}, + {"isHermitian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_169isHermitian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_168isHermitian}, + {"isHermitianKnown", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_171isHermitianKnown, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_170isHermitianKnown}, + {"isStructurallySymmetric", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_173isStructurallySymmetric, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_172isStructurallySymmetric}, + {"zeroEntries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_175zeroEntries, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_174zeroEntries}, + {"getValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_177getValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_176getValue}, + {"getValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_179getValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_178getValues}, + {"getValuesCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_181getValuesCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_180getValuesCSR}, + {"getRow", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_183getRow, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_182getRow}, + {"getRowIJ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_185getRowIJ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_184getRowIJ}, + {"getColumnIJ", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_187getColumnIJ, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_186getColumnIJ}, + {"setValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_189setValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_188setValue}, + {"setValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_191setValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_190setValues}, + {"setValuesRCV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_193setValuesRCV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_192setValuesRCV}, + {"setValuesIJV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_195setValuesIJV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_194setValuesIJV}, + {"setValuesCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_197setValuesCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_196setValuesCSR}, + {"setValuesBlocked", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_199setValuesBlocked, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_198setValuesBlocked}, + {"setValuesBlockedRCV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_201setValuesBlockedRCV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_200setValuesBlockedRCV}, + {"setValuesBlockedIJV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_203setValuesBlockedIJV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_202setValuesBlockedIJV}, + {"setValuesBlockedCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_205setValuesBlockedCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_204setValuesBlockedCSR}, + {"setLGMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_207setLGMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_206setLGMap}, + {"getLGMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_209getLGMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_208getLGMap}, + {"setValueLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_211setValueLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_210setValueLocal}, + {"setValuesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_213setValuesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_212setValuesLocal}, + {"setValuesLocalRCV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_215setValuesLocalRCV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_214setValuesLocalRCV}, + {"setValuesLocalIJV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_217setValuesLocalIJV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_216setValuesLocalIJV}, + {"setValuesLocalCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_219setValuesLocalCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_218setValuesLocalCSR}, + {"setValuesBlockedLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_221setValuesBlockedLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_220setValuesBlockedLocal}, + {"setValuesBlockedLocalRCV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_223setValuesBlockedLocalRCV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_222setValuesBlockedLocalRCV}, + {"setValuesBlockedLocalIJV", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_225setValuesBlockedLocalIJV, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_224setValuesBlockedLocalIJV}, + {"setValuesBlockedLocalCSR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_227setValuesBlockedLocalCSR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_226setValuesBlockedLocalCSR}, + {"setStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_229setStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_228setStencil}, + {"setValueStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_231setValueStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_230setValueStencil}, + {"setValueStagStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_233setValueStagStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_232setValueStagStencil}, + {"setValueBlockedStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_235setValueBlockedStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_234setValueBlockedStencil}, + {"setValueBlockedStagStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_237setValueBlockedStagStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_236setValueBlockedStagStencil}, + {"zeroRows", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_239zeroRows, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_238zeroRows}, + {"zeroRowsLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_241zeroRowsLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_240zeroRowsLocal}, + {"zeroRowsColumns", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_243zeroRowsColumns, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_242zeroRowsColumns}, + {"zeroRowsColumnsLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_245zeroRowsColumnsLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_244zeroRowsColumnsLocal}, + {"zeroRowsColumnsStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_247zeroRowsColumnsStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_246zeroRowsColumnsStencil}, + {"storeValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_249storeValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_248storeValues}, + {"retrieveValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_251retrieveValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_250retrieveValues}, + {"assemblyBegin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_253assemblyBegin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_252assemblyBegin}, + {"assemblyEnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_255assemblyEnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_254assemblyEnd}, + {"assemble", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_257assemble, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_256assemble}, + {"isAssembled", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_259isAssembled, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_258isAssembled}, + {"findZeroRows", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_261findZeroRows, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_260findZeroRows}, + {"createVecs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_263createVecs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_262createVecs}, + {"createVecRight", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_265createVecRight, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_264createVecRight}, + {"createVecLeft", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_267createVecLeft, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_266createVecLeft}, + {"getColumnVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_269getColumnVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_268getColumnVector}, + {"getRedundantMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_271getRedundantMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_270getRedundantMatrix}, + {"getDiagonal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_273getDiagonal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_272getDiagonal}, + {"getRowSum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_275getRowSum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_274getRowSum}, + {"setDiagonal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_277setDiagonal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_276setDiagonal}, + {"diagonalScale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_279diagonalScale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_278diagonalScale}, + {"invertBlockDiagonal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_281invertBlockDiagonal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_280invertBlockDiagonal}, + {"setNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_283setNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_282setNullSpace}, + {"getNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_285getNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_284getNullSpace}, + {"setTransposeNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_287setTransposeNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_286setTransposeNullSpace}, + {"getTransposeNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_289getTransposeNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_288getTransposeNullSpace}, + {"setNearNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_291setNearNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_290setNearNullSpace}, + {"getNearNullSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_293getNearNullSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_292getNearNullSpace}, + {"mult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_295mult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_294mult}, + {"multAdd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_297multAdd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_296multAdd}, + {"multTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_299multTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_298multTranspose}, + {"multTransposeAdd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_301multTransposeAdd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_300multTransposeAdd}, + {"multHermitian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_303multHermitian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_302multHermitian}, + {"multHermitianAdd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_305multHermitianAdd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_304multHermitianAdd}, + {"SOR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_307SOR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_306SOR}, + {"getDiagonalBlock", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_309getDiagonalBlock, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_308getDiagonalBlock}, + {"increaseOverlap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_311increaseOverlap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_310increaseOverlap}, + {"createSubMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_313createSubMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_312createSubMatrix}, + {"createSubMatrices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_315createSubMatrices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_314createSubMatrices}, + {"getLocalSubMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_317getLocalSubMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_316getLocalSubMatrix}, + {"restoreLocalSubMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_319restoreLocalSubMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_318restoreLocalSubMatrix}, + {"norm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_321norm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_320norm}, + {"scale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_323scale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_322scale}, + {"shift", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_325shift, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_324shift}, + {"chop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_327chop, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_326chop}, + {"setRandom", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_329setRandom, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_328setRandom}, + {"axpy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_331axpy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_330axpy}, + {"aypx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_333aypx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_332aypx}, + {"matMult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_335matMult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_334matMult}, + {"matTransposeMult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_337matTransposeMult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_336matTransposeMult}, + {"transposeMatMult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_339transposeMatMult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_338transposeMatMult}, + {"ptap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_341ptap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_340ptap}, + {"rart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_343rart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_342rart}, + {"matMatMult", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_345matMatMult, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_344matMatMult}, + {"kron", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_347kron, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_346kron}, + {"bindToCPU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_349bindToCPU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_348bindToCPU}, + {"boundToCPU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_351boundToCPU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_350boundToCPU}, + {"getOrdering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_353getOrdering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_352getOrdering}, + {"reorderForNonzeroDiagonal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_355reorderForNonzeroDiagonal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_354reorderForNonzeroDiagonal}, + {"factorLU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_357factorLU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_356factorLU}, + {"factorSymbolicLU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_359factorSymbolicLU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_358factorSymbolicLU}, + {"factorNumericLU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_361factorNumericLU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_360factorNumericLU}, + {"factorILU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_363factorILU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_362factorILU}, + {"factorSymbolicILU", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_365factorSymbolicILU, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_364factorSymbolicILU}, + {"factorCholesky", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_367factorCholesky, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_366factorCholesky}, + {"factorSymbolicCholesky", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_369factorSymbolicCholesky, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_368factorSymbolicCholesky}, + {"factorNumericCholesky", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_371factorNumericCholesky, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_370factorNumericCholesky}, + {"factorICC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_373factorICC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_372factorICC}, + {"factorSymbolicICC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_375factorSymbolicICC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_374factorSymbolicICC}, + {"getInertia", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_377getInertia, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_376getInertia}, + {"setUnfactored", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_379setUnfactored, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_378setUnfactored}, + {"fixISLocalEmpty", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_381fixISLocalEmpty, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_380fixISLocalEmpty}, + {"getISLocalMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_383getISLocalMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_382getISLocalMat}, + {"restoreISLocalMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_385restoreISLocalMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_384restoreISLocalMat}, + {"setISLocalMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_387setISLocalMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_386setISLocalMat}, + {"setISPreallocation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_389setISPreallocation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_388setISPreallocation}, + {"getLRCMats", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_391getLRCMats, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_390getLRCMats}, + {"H2OpusOrthogonalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_393H2OpusOrthogonalize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_392H2OpusOrthogonalize}, + {"H2OpusCompress", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_395H2OpusCompress, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_394H2OpusCompress}, + {"H2OpusLowRankUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_397H2OpusLowRankUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_396H2OpusLowRankUpdate}, + {"setMumpsIcntl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_399setMumpsIcntl, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_398setMumpsIcntl}, + {"getMumpsIcntl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_401getMumpsIcntl, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_400getMumpsIcntl}, + {"setMumpsCntl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_403setMumpsCntl, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_402setMumpsCntl}, + {"getMumpsCntl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_405getMumpsCntl, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_404getMumpsCntl}, + {"getMumpsInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_407getMumpsInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_406getMumpsInfo}, + {"getMumpsInfog", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_409getMumpsInfog, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_408getMumpsInfog}, + {"getMumpsRinfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_411getMumpsRinfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_410getMumpsRinfo}, + {"getMumpsRinfog", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_413getMumpsRinfog, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_412getMumpsRinfog}, + {"solveForward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_415solveForward, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_414solveForward}, + {"solveBackward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_417solveBackward, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_416solveBackward}, + {"solve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_419solve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_418solve}, + {"solveTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_421solveTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_420solveTranspose}, + {"solveAdd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_423solveAdd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_422solveAdd}, + {"solveTransposeAdd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_425solveTransposeAdd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_424solveTransposeAdd}, + {"matSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_427matSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_426matSolve}, + {"setDenseLDA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_429setDenseLDA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_428setDenseLDA}, + {"getDenseLDA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_431getDenseLDA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_430getDenseLDA}, + {"getDenseArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_433getDenseArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_432getDenseArray}, + {"getDenseLocalMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_435getDenseLocalMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_434getDenseLocalMatrix}, + {"getDenseColumnVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_437getDenseColumnVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_436getDenseColumnVec}, + {"restoreDenseColumnVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_439restoreDenseColumnVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_438restoreDenseColumnVec}, + {"getNestSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_441getNestSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_440getNestSize}, + {"getNestISs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_443getNestISs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_442getNestISs}, + {"getNestLocalISs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_445getNestLocalISs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_444getNestLocalISs}, + {"getNestSubMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_447getNestSubMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_446getNestSubMatrix}, + {"getISLocalMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_449getISLocalMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_448getISLocalMat}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_451getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_450getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_453setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_452setDM}, + {"__dlpack__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_455__dlpack__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_454__dlpack__}, + {"__dlpack_device__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_457__dlpack_device__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_456__dlpack_device__}, + {"toDLPack", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Mat_459toDLPack, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Mat_458toDLPack}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Mat[] = { + {(char *)"sizes", __pyx_getprop_8petsc4py_5PETSc_3Mat_sizes, __pyx_setprop_8petsc4py_5PETSc_3Mat_sizes, (char *)0, 0}, + {(char *)"size", __pyx_getprop_8petsc4py_5PETSc_3Mat_size, 0, (char *)0, 0}, + {(char *)"local_size", __pyx_getprop_8petsc4py_5PETSc_3Mat_local_size, 0, (char *)0, 0}, + {(char *)"block_size", __pyx_getprop_8petsc4py_5PETSc_3Mat_block_size, 0, (char *)0, 0}, + {(char *)"block_sizes", __pyx_getprop_8petsc4py_5PETSc_3Mat_block_sizes, 0, (char *)0, 0}, + {(char *)"owner_range", __pyx_getprop_8petsc4py_5PETSc_3Mat_owner_range, 0, (char *)0, 0}, + {(char *)"owner_ranges", __pyx_getprop_8petsc4py_5PETSc_3Mat_owner_ranges, 0, (char *)0, 0}, + {(char *)"assembled", __pyx_getprop_8petsc4py_5PETSc_3Mat_assembled, 0, (char *)0, 0}, + {(char *)"symmetric", __pyx_getprop_8petsc4py_5PETSc_3Mat_symmetric, 0, (char *)0, 0}, + {(char *)"hermitian", __pyx_getprop_8petsc4py_5PETSc_3Mat_hermitian, 0, (char *)0, 0}, + {(char *)"structsymm", __pyx_getprop_8petsc4py_5PETSc_3Mat_structsymm, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_Mat = { + __pyx_pw_8petsc4py_5PETSc_3Mat_17__add__, /*nb_add*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_19__sub__, /*nb_subtract*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_21__mul__, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + __pyx_pw_8petsc4py_5PETSc_3Mat_23__div__, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_5__neg__, /*nb_negative*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_3__pos__, /*nb_positive*/ + 0, /*nb_absolute*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_8petsc4py_5PETSc_6Object_7__nonzero__, /*nb_nonzero*/ + #else + 0, /*nb_nonzero*/ + #endif + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + 0, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + 0, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + __pyx_pw_8petsc4py_5PETSc_3Mat_7__iadd__, /*nb_inplace_add*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_9__isub__, /*nb_inplace_subtract*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_11__imul__, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + __pyx_pw_8petsc4py_5PETSc_3Mat_13__idiv__, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_25__truediv__, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_15__itruediv__, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +static PySequenceMethods __pyx_tp_as_sequence_Mat = { + 0, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_8petsc4py_5PETSc_Mat, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_Mat = { + 0, /*mp_length*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_27__getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_8petsc4py_5PETSc_Mat, /*mp_ass_subscript*/ +}; + +DL_EXPORT(PyTypeObject) PyPetscMat_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Mat", /*tp_name*/ + sizeof(struct PyPetscMatObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_Mat, /*tp_as_number*/ + &__pyx_tp_as_sequence_Mat, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_Mat, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_3Mat_31__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Mat, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Mat, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Mat, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_MatPartitioning __pyx_vtable_8petsc4py_5PETSc_MatPartitioning; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_MatPartitioning(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscMatPartitioningObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscMatPartitioningObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_MatPartitioning; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_MatPartitioning[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_12getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_15setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_14setFromOptions}, + {"setAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_17setAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_16setAdjacency}, + {"apply", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15MatPartitioning_19apply, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15MatPartitioning_18apply}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscMatPartitioning_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.MatPartitioning", /*tp_name*/ + sizeof(struct PyPetscMatPartitioningObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_15MatPartitioning_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_MatPartitioning, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_MatPartitioning, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_NullSpace __pyx_vtable_8petsc4py_5PETSc_NullSpace; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_NullSpace(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscNullSpaceObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscNullSpaceObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_NullSpace; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_9NullSpace_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_NullSpace[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_8create}, + {"createRigidBody", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_11createRigidBody, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_10createRigidBody}, + {"setFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_13setFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_12setFunction}, + {"hasConstant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_15hasConstant, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_14hasConstant}, + {"getVecs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_17getVecs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_16getVecs}, + {"getFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_19getFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_18getFunction}, + {"remove", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_21remove, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_20remove}, + {"test", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_9NullSpace_23test, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_9NullSpace_22test}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscNullSpace_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.NullSpace", /*tp_name*/ + sizeof(struct PyPetscNullSpaceObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_9NullSpace_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_NullSpace, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_NullSpace, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_PC __pyx_vtable_8petsc4py_5PETSc_PC; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_PC(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscPCObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscPCObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_PC; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2PC_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_PC[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_12getType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_15setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_14setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_17getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_16getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_19appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_18appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_21setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_20setFromOptions}, + {"setOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_23setOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_22setOperators}, + {"getOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_25getOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_24getOperators}, + {"setUseAmat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_27setUseAmat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_26setUseAmat}, + {"getUseAmat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_29getUseAmat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_28getUseAmat}, + {"setReusePreconditioner", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_31setReusePreconditioner, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_30setReusePreconditioner}, + {"setFailedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_33setFailedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_32setFailedReason}, + {"getFailedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_35getFailedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_34getFailedReason}, + {"getFailedReasonRank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_37getFailedReasonRank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_36getFailedReasonRank}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_39setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_38setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_41reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_40reset}, + {"setUpOnBlocks", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_43setUpOnBlocks, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_42setUpOnBlocks}, + {"apply", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_45apply, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_44apply}, + {"matApply", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_47matApply, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_46matApply}, + {"applyTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_49applyTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_48applyTranspose}, + {"applySymmetricLeft", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_51applySymmetricLeft, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_50applySymmetricLeft}, + {"applySymmetricRight", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_53applySymmetricRight, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_52applySymmetricRight}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_55getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_54getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_57setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_56setDM}, + {"setCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_59setCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_58setCoordinates}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_61createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_60createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_63setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_62setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_65getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_64getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_67setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_66setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_69getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_68getPythonType}, + {"setASMType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_71setASMType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_70setASMType}, + {"setASMOverlap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_73setASMOverlap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_72setASMOverlap}, + {"setASMLocalSubdomains", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_75setASMLocalSubdomains, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_74setASMLocalSubdomains}, + {"setASMTotalSubdomains", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_77setASMTotalSubdomains, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_76setASMTotalSubdomains}, + {"getASMSubKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_79getASMSubKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_78getASMSubKSP}, + {"setASMSortIndices", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_81setASMSortIndices, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_80setASMSortIndices}, + {"setGASMType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_83setGASMType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_82setGASMType}, + {"setGASMOverlap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_85setGASMOverlap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_84setGASMOverlap}, + {"setGAMGType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_87setGAMGType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_86setGAMGType}, + {"setGAMGLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_89setGAMGLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_88setGAMGLevels}, + {"setGAMGSmooths", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_91setGAMGSmooths, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_90setGAMGSmooths}, + {"getHYPREType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_93getHYPREType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_92getHYPREType}, + {"setHYPREType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_95setHYPREType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_94setHYPREType}, + {"setHYPREDiscreteCurl", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_97setHYPREDiscreteCurl, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_96setHYPREDiscreteCurl}, + {"setHYPREDiscreteGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_99setHYPREDiscreteGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_98setHYPREDiscreteGradient}, + {"setHYPRESetAlphaPoissonMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_101setHYPRESetAlphaPoissonMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_100setHYPRESetAlphaPoissonMatrix}, + {"setHYPRESetBetaPoissonMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_103setHYPRESetBetaPoissonMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_102setHYPRESetBetaPoissonMatrix}, + {"setHYPRESetInterpolations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_105setHYPRESetInterpolations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_104setHYPRESetInterpolations}, + {"setHYPRESetEdgeConstantVectors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_107setHYPRESetEdgeConstantVectors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_106setHYPRESetEdgeConstantVectors}, + {"setHYPREAMSSetInteriorNodes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_109setHYPREAMSSetInteriorNodes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_108setHYPREAMSSetInteriorNodes}, + {"setFactorSolverType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_111setFactorSolverType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_110setFactorSolverType}, + {"getFactorSolverType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_113getFactorSolverType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_112getFactorSolverType}, + {"setFactorSetUpSolverType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_115setFactorSetUpSolverType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_114setFactorSetUpSolverType}, + {"setFactorOrdering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_117setFactorOrdering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_116setFactorOrdering}, + {"setFactorPivot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_119setFactorPivot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_118setFactorPivot}, + {"setFactorShift", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_121setFactorShift, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_120setFactorShift}, + {"setFactorLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_123setFactorLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_122setFactorLevels}, + {"getFactorMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_125getFactorMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_124getFactorMatrix}, + {"setFieldSplitType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_127setFieldSplitType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_126setFieldSplitType}, + {"setFieldSplitIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_129setFieldSplitIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_128setFieldSplitIS}, + {"setFieldSplitFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_131setFieldSplitFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_130setFieldSplitFields}, + {"getFieldSplitSubKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_133getFieldSplitSubKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_132getFieldSplitSubKSP}, + {"getFieldSplitSchurGetSubKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_135getFieldSplitSchurGetSubKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_134getFieldSplitSchurGetSubKSP}, + {"setFieldSplitSchurFactType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_137setFieldSplitSchurFactType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_136setFieldSplitSchurFactType}, + {"setFieldSplitSchurPreType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_139setFieldSplitSchurPreType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_138setFieldSplitSchurPreType}, + {"setCompositeType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_141setCompositeType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_140setCompositeType}, + {"getCompositePC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_143getCompositePC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_142getCompositePC}, + {"addCompositePCType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_145addCompositePCType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_144addCompositePCType}, + {"getKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_147getKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_146getKSP}, + {"getMGType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_149getMGType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_148getMGType}, + {"setMGType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_151setMGType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_150setMGType}, + {"getMGLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_153getMGLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_152getMGLevels}, + {"setMGLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_155setMGLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_154setMGLevels}, + {"getMGCoarseSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_157getMGCoarseSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_156getMGCoarseSolve}, + {"setMGInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_159setMGInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_158setMGInterpolation}, + {"getMGInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_161getMGInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_160getMGInterpolation}, + {"setMGRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_163setMGRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_162setMGRestriction}, + {"getMGRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_165getMGRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_164getMGRestriction}, + {"setMGRScale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_167setMGRScale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_166setMGRScale}, + {"getMGRScale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_169getMGRScale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_168getMGRScale}, + {"getMGSmoother", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_171getMGSmoother, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_170getMGSmoother}, + {"getMGSmootherDown", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_173getMGSmootherDown, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_172getMGSmootherDown}, + {"getMGSmootherUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_175getMGSmootherUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_174getMGSmootherUp}, + {"setMGCycleType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_177setMGCycleType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_176setMGCycleType}, + {"setMGCycleTypeOnLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_179setMGCycleTypeOnLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_178setMGCycleTypeOnLevel}, + {"setMGRhs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_181setMGRhs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_180setMGRhs}, + {"setMGX", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_183setMGX, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_182setMGX}, + {"setMGR", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_185setMGR, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_184setMGR}, + {"setBDDCDivergenceMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_187setBDDCDivergenceMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_186setBDDCDivergenceMat}, + {"setBDDCDiscreteGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_189setBDDCDiscreteGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_188setBDDCDiscreteGradient}, + {"setBDDCChangeOfBasisMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_191setBDDCChangeOfBasisMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_190setBDDCChangeOfBasisMat}, + {"setBDDCPrimalVerticesIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_193setBDDCPrimalVerticesIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_192setBDDCPrimalVerticesIS}, + {"setBDDCPrimalVerticesLocalIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_195setBDDCPrimalVerticesLocalIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_194setBDDCPrimalVerticesLocalIS}, + {"setBDDCCoarseningRatio", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_197setBDDCCoarseningRatio, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_196setBDDCCoarseningRatio}, + {"setBDDCLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_199setBDDCLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_198setBDDCLevels}, + {"setBDDCDirichletBoundaries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_201setBDDCDirichletBoundaries, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_200setBDDCDirichletBoundaries}, + {"setBDDCDirichletBoundariesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_203setBDDCDirichletBoundariesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_202setBDDCDirichletBoundariesLocal}, + {"setBDDCNeumannBoundaries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_205setBDDCNeumannBoundaries, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_204setBDDCNeumannBoundaries}, + {"setBDDCNeumannBoundariesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_207setBDDCNeumannBoundariesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_206setBDDCNeumannBoundariesLocal}, + {"setBDDCDofsSplitting", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_209setBDDCDofsSplitting, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_208setBDDCDofsSplitting}, + {"setBDDCDofsSplittingLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_211setBDDCDofsSplittingLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_210setBDDCDofsSplittingLocal}, + {"setPatchCellNumbering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_213setPatchCellNumbering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_212setPatchCellNumbering}, + {"setPatchDiscretisationInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_215setPatchDiscretisationInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_214setPatchDiscretisationInfo}, + {"setPatchComputeOperator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_217setPatchComputeOperator, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_216setPatchComputeOperator}, + {"setPatchComputeOperatorInteriorFacets", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_219setPatchComputeOperatorInteriorFacets, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_218setPatchComputeOperatorInteriorFacets}, + {"setPatchComputeFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_221setPatchComputeFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_220setPatchComputeFunction}, + {"setPatchComputeFunctionInteriorFacets", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_223setPatchComputeFunctionInteriorFacets, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_222setPatchComputeFunctionInteriorFacets}, + {"setPatchConstructType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_225setPatchConstructType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_224setPatchConstructType}, + {"setHPDDMAuxiliaryMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_227setHPDDMAuxiliaryMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_226setHPDDMAuxiliaryMat}, + {"setHPDDMRHSMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_229setHPDDMRHSMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_228setHPDDMRHSMat}, + {"setHPDDMHasNeumannMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_231setHPDDMHasNeumannMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_230setHPDDMHasNeumannMat}, + {"setHPDDMCoarseCorrectionType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_233setHPDDMCoarseCorrectionType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_232setHPDDMCoarseCorrectionType}, + {"getHPDDMCoarseCorrectionType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_235getHPDDMCoarseCorrectionType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_234getHPDDMCoarseCorrectionType}, + {"getHPDDMSTShareSubKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_237getHPDDMSTShareSubKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_236getHPDDMSTShareSubKSP}, + {"setHPDDMDeflationMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_239setHPDDMDeflationMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_238setHPDDMDeflationMat}, + {"setSPAIEpsilon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_241setSPAIEpsilon, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_240setSPAIEpsilon}, + {"setSPAINBSteps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_243setSPAINBSteps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_242setSPAINBSteps}, + {"setSPAIMax", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_245setSPAIMax, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_244setSPAIMax}, + {"setSPAIMaxNew", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_247setSPAIMaxNew, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_246setSPAIMaxNew}, + {"setSPAIBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_249setSPAIBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_248setSPAIBlockSize}, + {"setSPAICacheSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_251setSPAICacheSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_250setSPAICacheSize}, + {"setSPAIVerbose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_253setSPAIVerbose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_252setSPAIVerbose}, + {"setSPAISp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_255setSPAISp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_254setSPAISp}, + {"setDeflationInitOnly", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_257setDeflationInitOnly, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_256setDeflationInitOnly}, + {"setDeflationLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_259setDeflationLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_258setDeflationLevels}, + {"setDeflationReductionFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_261setDeflationReductionFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_260setDeflationReductionFactor}, + {"setDeflationCorrectionFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_263setDeflationCorrectionFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_262setDeflationCorrectionFactor}, + {"setDeflationSpaceToCompute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_265setDeflationSpaceToCompute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_264setDeflationSpaceToCompute}, + {"setDeflationSpace", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_267setDeflationSpace, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_266setDeflationSpace}, + {"setDeflationProjectionNullSpaceMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_269setDeflationProjectionNullSpaceMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_268setDeflationProjectionNullSpaceMat}, + {"setDeflationCoarseMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_271setDeflationCoarseMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_270setDeflationCoarseMat}, + {"getDeflationCoarseKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_273getDeflationCoarseKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_272getDeflationCoarseKSP}, + {"getDeflationPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2PC_275getDeflationPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2PC_274getDeflationPC}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscPC_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.PC", /*tp_name*/ + sizeof(struct PyPetscPCObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_2PC_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_PC, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_PC, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_KSP __pyx_vtable_8petsc4py_5PETSc_KSP; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_KSP(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscKSPObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscKSPObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_KSP; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_3KSP_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_appctx(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_appctx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6appctx_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_dm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_2dm_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_dm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_2dm_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_vec_sol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_7vec_sol_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_vec_rhs(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_7vec_rhs_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_mat_op(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6mat_op_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_mat_pc(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6mat_pc_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_guess_nonzero(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_guess_nonzero(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_13guess_nonzero_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_guess_knoll(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_guess_knoll(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_11guess_knoll_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_pc(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_2pc_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_pc_side(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_pc_side(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_7pc_side_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_norm_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_norm_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_9norm_type_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_rtol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_rtol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4rtol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_atol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4atol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_atol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4atol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_divtol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_divtol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6divtol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_max_it(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_max_it(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6max_it_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_its(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_3its_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_its(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_3its_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_norm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4norm_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_4norm_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_history(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_7history_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_reason(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6reason_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3KSP_reason(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_6reason_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_iterating(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_9iterating_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_converged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_9converged_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3KSP_diverged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3KSP_8diverged_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_KSP[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_4view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_8create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_11setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_10setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_12getType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_15setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_14setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_17getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_16getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_19appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_18appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_21setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_20setFromOptions}, + {"setAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_23setAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_22setAppCtx}, + {"getAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_25getAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_24getAppCtx}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_27getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_26getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_29setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_28setDM}, + {"setDMActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_31setDMActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_30setDMActive}, + {"setComputeRHS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_33setComputeRHS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_32setComputeRHS}, + {"setComputeOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_35setComputeOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_34setComputeOperators}, + {"setOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_37setOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_36setOperators}, + {"getOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_39getOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_38getOperators}, + {"setPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_41setPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_40setPC}, + {"getPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_43getPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_42getPC}, + {"setTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_45setTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_44setTolerances}, + {"getTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_47getTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_46getTolerances}, + {"setConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_49setConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_48setConvergenceTest}, + {"getConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_51getConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_50getConvergenceTest}, + {"callConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_53callConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_52callConvergenceTest}, + {"setConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_55setConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_54setConvergenceHistory}, + {"getConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_57getConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_56getConvergenceHistory}, + {"logConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_59logConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_58logConvergenceHistory}, + {"setMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_61setMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_60setMonitor}, + {"getMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_63getMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_62getMonitor}, + {"monitorCancel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_65monitorCancel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_64monitorCancel}, + {"monitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_67monitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_66monitor}, + {"setPCSide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_69setPCSide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_68setPCSide}, + {"getPCSide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_71getPCSide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_70getPCSide}, + {"setNormType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_73setNormType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_72setNormType}, + {"getNormType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_75getNormType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_74getNormType}, + {"setComputeEigenvalues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_77setComputeEigenvalues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_76setComputeEigenvalues}, + {"getComputeEigenvalues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_79getComputeEigenvalues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_78getComputeEigenvalues}, + {"setComputeSingularValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_81setComputeSingularValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_80setComputeSingularValues}, + {"getComputeSingularValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_83getComputeSingularValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_82getComputeSingularValues}, + {"setInitialGuessNonzero", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_85setInitialGuessNonzero, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_84setInitialGuessNonzero}, + {"getInitialGuessNonzero", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_87getInitialGuessNonzero, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_86getInitialGuessNonzero}, + {"setInitialGuessKnoll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_89setInitialGuessKnoll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_88setInitialGuessKnoll}, + {"getInitialGuessKnoll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_91getInitialGuessKnoll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_90getInitialGuessKnoll}, + {"setUseFischerGuess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_93setUseFischerGuess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_92setUseFischerGuess}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_95setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_94setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_97reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_96reset}, + {"setUpOnBlocks", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_99setUpOnBlocks, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_98setUpOnBlocks}, + {"solve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_101solve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_100solve}, + {"solveTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_103solveTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_102solveTranspose}, + {"matSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_105matSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_104matSolve}, + {"matSolveTranspose", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_107matSolveTranspose, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_106matSolveTranspose}, + {"setIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_109setIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_108setIterationNumber}, + {"getIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_111getIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_110getIterationNumber}, + {"setResidualNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_113setResidualNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_112setResidualNorm}, + {"getResidualNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_115getResidualNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_114getResidualNorm}, + {"setConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_117setConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_116setConvergedReason}, + {"getConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_119getConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_118getConvergedReason}, + {"setErrorIfNotConverged", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_121setErrorIfNotConverged, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_120setErrorIfNotConverged}, + {"getErrorIfNotConverged", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_123getErrorIfNotConverged, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_122getErrorIfNotConverged}, + {"getRhs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_125getRhs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_124getRhs}, + {"getSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_127getSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_126getSolution}, + {"getWorkVecs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_129getWorkVecs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_128getWorkVecs}, + {"buildSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_131buildSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_130buildSolution}, + {"buildResidual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_133buildResidual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_132buildResidual}, + {"computeEigenvalues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_135computeEigenvalues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_134computeEigenvalues}, + {"computeExtremeSingularValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_137computeExtremeSingularValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_136computeExtremeSingularValues}, + {"setGMRESRestart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_139setGMRESRestart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_138setGMRESRestart}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_141createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_140createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_143setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_142setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_145getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_144getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_147setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_146setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3KSP_149getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3KSP_148getPythonType}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_KSP[] = { + {(char *)"appctx", __pyx_getprop_8petsc4py_5PETSc_3KSP_appctx, __pyx_setprop_8petsc4py_5PETSc_3KSP_appctx, (char *)0, 0}, + {(char *)"dm", __pyx_getprop_8petsc4py_5PETSc_3KSP_dm, __pyx_setprop_8petsc4py_5PETSc_3KSP_dm, (char *)0, 0}, + {(char *)"vec_sol", __pyx_getprop_8petsc4py_5PETSc_3KSP_vec_sol, 0, (char *)0, 0}, + {(char *)"vec_rhs", __pyx_getprop_8petsc4py_5PETSc_3KSP_vec_rhs, 0, (char *)0, 0}, + {(char *)"mat_op", __pyx_getprop_8petsc4py_5PETSc_3KSP_mat_op, 0, (char *)0, 0}, + {(char *)"mat_pc", __pyx_getprop_8petsc4py_5PETSc_3KSP_mat_pc, 0, (char *)0, 0}, + {(char *)"guess_nonzero", __pyx_getprop_8petsc4py_5PETSc_3KSP_guess_nonzero, __pyx_setprop_8petsc4py_5PETSc_3KSP_guess_nonzero, (char *)0, 0}, + {(char *)"guess_knoll", __pyx_getprop_8petsc4py_5PETSc_3KSP_guess_knoll, __pyx_setprop_8petsc4py_5PETSc_3KSP_guess_knoll, (char *)0, 0}, + {(char *)"pc", __pyx_getprop_8petsc4py_5PETSc_3KSP_pc, 0, (char *)0, 0}, + {(char *)"pc_side", __pyx_getprop_8petsc4py_5PETSc_3KSP_pc_side, __pyx_setprop_8petsc4py_5PETSc_3KSP_pc_side, (char *)0, 0}, + {(char *)"norm_type", __pyx_getprop_8petsc4py_5PETSc_3KSP_norm_type, __pyx_setprop_8petsc4py_5PETSc_3KSP_norm_type, (char *)0, 0}, + {(char *)"rtol", __pyx_getprop_8petsc4py_5PETSc_3KSP_rtol, __pyx_setprop_8petsc4py_5PETSc_3KSP_rtol, (char *)0, 0}, + {(char *)"atol", __pyx_getprop_8petsc4py_5PETSc_3KSP_atol, __pyx_setprop_8petsc4py_5PETSc_3KSP_atol, (char *)0, 0}, + {(char *)"divtol", __pyx_getprop_8petsc4py_5PETSc_3KSP_divtol, __pyx_setprop_8petsc4py_5PETSc_3KSP_divtol, (char *)0, 0}, + {(char *)"max_it", __pyx_getprop_8petsc4py_5PETSc_3KSP_max_it, __pyx_setprop_8petsc4py_5PETSc_3KSP_max_it, (char *)0, 0}, + {(char *)"its", __pyx_getprop_8petsc4py_5PETSc_3KSP_its, __pyx_setprop_8petsc4py_5PETSc_3KSP_its, (char *)0, 0}, + {(char *)"norm", __pyx_getprop_8petsc4py_5PETSc_3KSP_norm, __pyx_setprop_8petsc4py_5PETSc_3KSP_norm, (char *)0, 0}, + {(char *)"history", __pyx_getprop_8petsc4py_5PETSc_3KSP_history, 0, (char *)0, 0}, + {(char *)"reason", __pyx_getprop_8petsc4py_5PETSc_3KSP_reason, __pyx_setprop_8petsc4py_5PETSc_3KSP_reason, (char *)0, 0}, + {(char *)"iterating", __pyx_getprop_8petsc4py_5PETSc_3KSP_iterating, 0, (char *)0, 0}, + {(char *)"converged", __pyx_getprop_8petsc4py_5PETSc_3KSP_converged, 0, (char *)0, 0}, + {(char *)"diverged", __pyx_getprop_8petsc4py_5PETSc_3KSP_diverged, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscKSP_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.KSP", /*tp_name*/ + sizeof(struct PyPetscKSPObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + __pyx_pw_8petsc4py_5PETSc_3KSP_3__call__, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_KSP, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_KSP, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_KSP, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_SNES __pyx_vtable_8petsc4py_5PETSc_SNES; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_SNES(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscSNESObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscSNESObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_SNES; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_4SNES_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_appctx(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_appctx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6appctx_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_dm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_2dm_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_dm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_2dm_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_npc(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3npc_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_npc(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3npc_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_vec_sol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_7vec_sol_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_vec_upd(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_7vec_upd_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_vec_rhs(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_7vec_rhs_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_ksp(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_ksp(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3ksp_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_use_ew(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_use_ew(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_ew_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_rtol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_rtol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4rtol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_atol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4atol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_atol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4atol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_stol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4stol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_stol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4stol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_max_it(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_max_it(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6max_it_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_max_funcs(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_max_funcs(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_9max_funcs_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_its(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3its_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_its(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_3its_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_norm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4norm_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_norm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_4norm_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_history(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_7history_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_reason(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6reason_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_reason(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6reason_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_iterating(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_9iterating_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_converged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_9converged_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_diverged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_8diverged_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_use_mf(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_use_mf(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_mf_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4SNES_use_fd(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_4SNES_use_fd(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_4SNES_6use_fd_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_SNES[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_4destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_6create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_9setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_8setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_11getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_10getType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_13setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_12setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_15getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_14getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_17appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_16appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_19setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_18setFromOptions}, + {"setApplicationContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_21setApplicationContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_20setApplicationContext}, + {"getApplicationContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_23getApplicationContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_22getApplicationContext}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_25getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_24getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_27setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_26setDM}, + {"setFASInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_29setFASInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_28setFASInterpolation}, + {"getFASInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_31getFASInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_30getFASInterpolation}, + {"setFASRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_33setFASRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_32setFASRestriction}, + {"getFASRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_35getFASRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_34getFASRestriction}, + {"setFASInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_37setFASInjection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_36setFASInjection}, + {"getFASInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_39getFASInjection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_38getFASInjection}, + {"setFASRScale", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_41setFASRScale, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_40setFASRScale}, + {"setFASLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_43setFASLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_42setFASLevels}, + {"getFASLevels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_45getFASLevels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_44getFASLevels}, + {"getFASCycleSNES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_47getFASCycleSNES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_46getFASCycleSNES}, + {"getFASCoarseSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_49getFASCoarseSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_48getFASCoarseSolve}, + {"getFASSmoother", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_51getFASSmoother, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_50getFASSmoother}, + {"getFASSmootherDown", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_53getFASSmootherDown, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_52getFASSmootherDown}, + {"getFASSmootherUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_55getFASSmootherUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_54getFASSmootherUp}, + {"getNPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_57getNPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_56getNPC}, + {"hasNPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_59hasNPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_58hasNPC}, + {"setNPC", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_61setNPC, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_60setNPC}, + {"setNPCSide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_63setNPCSide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_62setNPCSide}, + {"getNPCSide", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_65getNPCSide, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_64getNPCSide}, + {"setLineSearchPreCheck", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_67setLineSearchPreCheck, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_66setLineSearchPreCheck}, + {"setInitialGuess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_69setInitialGuess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_68setInitialGuess}, + {"getInitialGuess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_71getInitialGuess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_70getInitialGuess}, + {"setFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_73setFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_72setFunction}, + {"getFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_75getFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_74getFunction}, + {"setUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_77setUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_76setUpdate}, + {"getUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_79getUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_78getUpdate}, + {"setJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_81setJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_80setJacobian}, + {"getJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_83getJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_82getJacobian}, + {"setObjective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_85setObjective, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_84setObjective}, + {"getObjective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_87getObjective, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_86getObjective}, + {"computeFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_89computeFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_88computeFunction}, + {"computeJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_91computeJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_90computeJacobian}, + {"computeObjective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_93computeObjective, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_92computeObjective}, + {"setNGS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_95setNGS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_94setNGS}, + {"getNGS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_97getNGS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_96getNGS}, + {"computeNGS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_99computeNGS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_98computeNGS}, + {"setTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_101setTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_100setTolerances}, + {"getTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_103getTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_102getTolerances}, + {"setNormSchedule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_105setNormSchedule, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_104setNormSchedule}, + {"getNormSchedule", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_107getNormSchedule, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_106getNormSchedule}, + {"setConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_109setConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_108setConvergenceTest}, + {"getConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_111getConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_110getConvergenceTest}, + {"callConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_113callConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_112callConvergenceTest}, + {"setConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_115setConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_114setConvergenceHistory}, + {"getConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_117getConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_116getConvergenceHistory}, + {"logConvergenceHistory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_119logConvergenceHistory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_118logConvergenceHistory}, + {"setResetCounters", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_121setResetCounters, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_120setResetCounters}, + {"setMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_123setMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_122setMonitor}, + {"getMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_125getMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_124getMonitor}, + {"monitorCancel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_127monitorCancel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_126monitorCancel}, + {"monitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_129monitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_128monitor}, + {"setMaxFunctionEvaluations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_131setMaxFunctionEvaluations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_130setMaxFunctionEvaluations}, + {"getMaxFunctionEvaluations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_133getMaxFunctionEvaluations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_132getMaxFunctionEvaluations}, + {"getFunctionEvaluations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_135getFunctionEvaluations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_134getFunctionEvaluations}, + {"setMaxStepFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_137setMaxStepFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_136setMaxStepFailures}, + {"getMaxStepFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_139getMaxStepFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_138getMaxStepFailures}, + {"getStepFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_141getStepFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_140getStepFailures}, + {"setMaxKSPFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_143setMaxKSPFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_142setMaxKSPFailures}, + {"getMaxKSPFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_145getMaxKSPFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_144getMaxKSPFailures}, + {"getKSPFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_147getKSPFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_146getKSPFailures}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_149setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_148setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_151reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_150reset}, + {"solve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_153solve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_152solve}, + {"setConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_155setConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_154setConvergedReason}, + {"getConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_157getConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_156getConvergedReason}, + {"setErrorIfNotConverged", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_159setErrorIfNotConverged, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_158setErrorIfNotConverged}, + {"getErrorIfNotConverged", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_161getErrorIfNotConverged, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_160getErrorIfNotConverged}, + {"setIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_163setIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_162setIterationNumber}, + {"getIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_165getIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_164getIterationNumber}, + {"setForceIteration", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_167setForceIteration, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_166setForceIteration}, + {"setFunctionNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_169setFunctionNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_168setFunctionNorm}, + {"getFunctionNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_171getFunctionNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_170getFunctionNorm}, + {"getLinearSolveIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_173getLinearSolveIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_172getLinearSolveIterations}, + {"getRhs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_175getRhs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_174getRhs}, + {"getSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_177getSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_176getSolution}, + {"setSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_179setSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_178setSolution}, + {"getSolutionUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_181getSolutionUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_180getSolutionUpdate}, + {"setKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_183setKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_182setKSP}, + {"getKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_185getKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_184getKSP}, + {"setUseEW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_187setUseEW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_186setUseEW}, + {"getUseEW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_189getUseEW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_188getUseEW}, + {"setParamsEW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_191setParamsEW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_190setParamsEW}, + {"getParamsEW", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_193getParamsEW, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_192getParamsEW}, + {"setUseMF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_195setUseMF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_194setUseMF}, + {"getUseMF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_197getUseMF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_196getUseMF}, + {"setUseFD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_199setUseFD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_198setUseFD}, + {"getUseFD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_201getUseFD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_200getUseFD}, + {"setVariableBounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_203setVariableBounds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_202setVariableBounds}, + {"getVIInactiveSet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_205getVIInactiveSet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_204getVIInactiveSet}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_207createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_206createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_209setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_208setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_211getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_210getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_213setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_212setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_215getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_214getPythonType}, + {"getCompositeSNES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_217getCompositeSNES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_216getCompositeSNES}, + {"getCompositeNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_219getCompositeNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_218getCompositeNumber}, + {"getNASMSNES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_221getNASMSNES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_220getNASMSNES}, + {"getNASMNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_223getNASMNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_222getNASMNumber}, + {"setPatchCellNumbering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_225setPatchCellNumbering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_224setPatchCellNumbering}, + {"setPatchDiscretisationInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_227setPatchDiscretisationInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_226setPatchDiscretisationInfo}, + {"setPatchComputeOperator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_229setPatchComputeOperator, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_228setPatchComputeOperator}, + {"setPatchComputeFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_231setPatchComputeFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_230setPatchComputeFunction}, + {"setPatchConstructType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4SNES_233setPatchConstructType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4SNES_232setPatchConstructType}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_SNES[] = { + {(char *)"appctx", __pyx_getprop_8petsc4py_5PETSc_4SNES_appctx, __pyx_setprop_8petsc4py_5PETSc_4SNES_appctx, (char *)0, 0}, + {(char *)"dm", __pyx_getprop_8petsc4py_5PETSc_4SNES_dm, __pyx_setprop_8petsc4py_5PETSc_4SNES_dm, (char *)0, 0}, + {(char *)"npc", __pyx_getprop_8petsc4py_5PETSc_4SNES_npc, __pyx_setprop_8petsc4py_5PETSc_4SNES_npc, (char *)0, 0}, + {(char *)"vec_sol", __pyx_getprop_8petsc4py_5PETSc_4SNES_vec_sol, 0, (char *)0, 0}, + {(char *)"vec_upd", __pyx_getprop_8petsc4py_5PETSc_4SNES_vec_upd, 0, (char *)0, 0}, + {(char *)"vec_rhs", __pyx_getprop_8petsc4py_5PETSc_4SNES_vec_rhs, 0, (char *)0, 0}, + {(char *)"ksp", __pyx_getprop_8petsc4py_5PETSc_4SNES_ksp, __pyx_setprop_8petsc4py_5PETSc_4SNES_ksp, (char *)0, 0}, + {(char *)"use_ew", __pyx_getprop_8petsc4py_5PETSc_4SNES_use_ew, __pyx_setprop_8petsc4py_5PETSc_4SNES_use_ew, (char *)0, 0}, + {(char *)"rtol", __pyx_getprop_8petsc4py_5PETSc_4SNES_rtol, __pyx_setprop_8petsc4py_5PETSc_4SNES_rtol, (char *)0, 0}, + {(char *)"atol", __pyx_getprop_8petsc4py_5PETSc_4SNES_atol, __pyx_setprop_8petsc4py_5PETSc_4SNES_atol, (char *)0, 0}, + {(char *)"stol", __pyx_getprop_8petsc4py_5PETSc_4SNES_stol, __pyx_setprop_8petsc4py_5PETSc_4SNES_stol, (char *)0, 0}, + {(char *)"max_it", __pyx_getprop_8petsc4py_5PETSc_4SNES_max_it, __pyx_setprop_8petsc4py_5PETSc_4SNES_max_it, (char *)0, 0}, + {(char *)"max_funcs", __pyx_getprop_8petsc4py_5PETSc_4SNES_max_funcs, __pyx_setprop_8petsc4py_5PETSc_4SNES_max_funcs, (char *)0, 0}, + {(char *)"its", __pyx_getprop_8petsc4py_5PETSc_4SNES_its, __pyx_setprop_8petsc4py_5PETSc_4SNES_its, (char *)0, 0}, + {(char *)"norm", __pyx_getprop_8petsc4py_5PETSc_4SNES_norm, __pyx_setprop_8petsc4py_5PETSc_4SNES_norm, (char *)0, 0}, + {(char *)"history", __pyx_getprop_8petsc4py_5PETSc_4SNES_history, 0, (char *)0, 0}, + {(char *)"reason", __pyx_getprop_8petsc4py_5PETSc_4SNES_reason, __pyx_setprop_8petsc4py_5PETSc_4SNES_reason, (char *)0, 0}, + {(char *)"iterating", __pyx_getprop_8petsc4py_5PETSc_4SNES_iterating, 0, (char *)0, 0}, + {(char *)"converged", __pyx_getprop_8petsc4py_5PETSc_4SNES_converged, 0, (char *)0, 0}, + {(char *)"diverged", __pyx_getprop_8petsc4py_5PETSc_4SNES_diverged, 0, (char *)0, 0}, + {(char *)"use_mf", __pyx_getprop_8petsc4py_5PETSc_4SNES_use_mf, __pyx_setprop_8petsc4py_5PETSc_4SNES_use_mf, (char *)0, 0}, + {(char *)"use_fd", __pyx_getprop_8petsc4py_5PETSc_4SNES_use_fd, __pyx_setprop_8petsc4py_5PETSc_4SNES_use_fd, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscSNES_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.SNES", /*tp_name*/ + sizeof(struct PyPetscSNESObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_SNES, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_SNES, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_SNES, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_TS __pyx_vtable_8petsc4py_5PETSc_TS; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_TS(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscTSObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscTSObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_TS; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2TS_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_appctx(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_6appctx_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_appctx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_6appctx_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_dm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_2dm_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_dm(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_2dm_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_problem_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_problem_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_12problem_type_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_equation_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_equation_type(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_13equation_type_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_snes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4snes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_ksp(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_3ksp_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_vec_sol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_7vec_sol_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_time(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4time_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_time(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4time_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_time_step(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9time_step_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_time_step(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9time_step_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_step_number(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_11step_number_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_step_number(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_11step_number_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_max_time(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_8max_time_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_max_time(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_8max_time_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_max_steps(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_max_steps(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9max_steps_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_rtol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4rtol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_rtol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4rtol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_atol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4atol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_atol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_4atol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_reason(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_6reason_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2TS_reason(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2TS_6reason_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_iterating(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9iterating_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_converged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_9converged_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2TS_diverged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2TS_8diverged_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_TS[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_2view}, + {"load", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_5load, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_4load}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_8create}, + {"clone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_11clone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_10clone}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_13setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_12setType}, + {"setRKType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_15setRKType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_14setRKType}, + {"setARKIMEXType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_17setARKIMEXType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_16setARKIMEXType}, + {"setARKIMEXFullyImplicit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_19setARKIMEXFullyImplicit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_18setARKIMEXFullyImplicit}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_21getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_20getType}, + {"getRKType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_23getRKType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_22getRKType}, + {"getARKIMEXType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_25getARKIMEXType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_24getARKIMEXType}, + {"setProblemType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_27setProblemType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_26setProblemType}, + {"getProblemType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_29getProblemType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_28getProblemType}, + {"setEquationType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_31setEquationType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_30setEquationType}, + {"getEquationType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_33getEquationType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_32getEquationType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_35setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_34setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_37getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_36getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_39appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_38appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_41setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_40setFromOptions}, + {"setAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_43setAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_42setAppCtx}, + {"getAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_45getAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_44getAppCtx}, + {"setRHSFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_47setRHSFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_46setRHSFunction}, + {"setRHSJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_49setRHSJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_48setRHSJacobian}, + {"computeRHSFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_51computeRHSFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_50computeRHSFunction}, + {"computeRHSFunctionLinear", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_53computeRHSFunctionLinear, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_52computeRHSFunctionLinear}, + {"computeRHSJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_55computeRHSJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_54computeRHSJacobian}, + {"computeRHSJacobianConstant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_57computeRHSJacobianConstant, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_56computeRHSJacobianConstant}, + {"getRHSFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_59getRHSFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_58getRHSFunction}, + {"getRHSJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_61getRHSJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_60getRHSJacobian}, + {"setIFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_63setIFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_62setIFunction}, + {"setIJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_65setIJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_64setIJacobian}, + {"setIJacobianP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_67setIJacobianP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_66setIJacobianP}, + {"computeIFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_69computeIFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_68computeIFunction}, + {"computeIJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_71computeIJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_70computeIJacobian}, + {"computeIJacobianP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_73computeIJacobianP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_72computeIJacobianP}, + {"getIFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_75getIFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_74getIFunction}, + {"getIJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_77getIJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_76getIJacobian}, + {"setI2Function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_79setI2Function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_78setI2Function}, + {"setI2Jacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_81setI2Jacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_80setI2Jacobian}, + {"computeI2Function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_83computeI2Function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_82computeI2Function}, + {"computeI2Jacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_85computeI2Jacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_84computeI2Jacobian}, + {"getI2Function", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_87getI2Function, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_86getI2Function}, + {"getI2Jacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_89getI2Jacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_88getI2Jacobian}, + {"setSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_91setSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_90setSolution}, + {"getSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_93getSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_92getSolution}, + {"setSolution2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_95setSolution2, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_94setSolution2}, + {"getSolution2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_97getSolution2, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_96getSolution2}, + {"setTimeSpan", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_99setTimeSpan, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_98setTimeSpan}, + {"getTimeSpan", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_101getTimeSpan, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_100getTimeSpan}, + {"getTimeSpanSolutions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_103getTimeSpanSolutions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_102getTimeSpanSolutions}, + {"getSNES", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_105getSNES, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_104getSNES}, + {"getKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_107getKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_106getKSP}, + {"getDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_109getDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_108getDM}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_111setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_110setDM}, + {"setTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_113setTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_112setTime}, + {"getTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_115getTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_114getTime}, + {"getPrevTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_117getPrevTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_116getPrevTime}, + {"getSolveTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_119getSolveTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_118getSolveTime}, + {"setTimeStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_121setTimeStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_120setTimeStep}, + {"getTimeStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_123getTimeStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_122getTimeStep}, + {"setStepNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_125setStepNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_124setStepNumber}, + {"getStepNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_127getStepNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_126getStepNumber}, + {"setMaxTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_129setMaxTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_128setMaxTime}, + {"getMaxTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_131getMaxTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_130getMaxTime}, + {"setMaxSteps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_133setMaxSteps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_132setMaxSteps}, + {"getMaxSteps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_135getMaxSteps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_134getMaxSteps}, + {"getSNESIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_137getSNESIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_136getSNESIterations}, + {"getKSPIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_139getKSPIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_138getKSPIterations}, + {"setMaxStepRejections", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_141setMaxStepRejections, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_140setMaxStepRejections}, + {"getStepRejections", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_143getStepRejections, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_142getStepRejections}, + {"setMaxSNESFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_145setMaxSNESFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_144setMaxSNESFailures}, + {"getSNESFailures", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_147getSNESFailures, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_146getSNESFailures}, + {"setErrorIfStepFails", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_149setErrorIfStepFails, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_148setErrorIfStepFails}, + {"setTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_151setTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_150setTolerances}, + {"getTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_153getTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_152getTolerances}, + {"setExactFinalTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_155setExactFinalTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_154setExactFinalTime}, + {"setConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_157setConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_156setConvergedReason}, + {"getConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_159getConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_158getConvergedReason}, + {"setMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_161setMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_160setMonitor}, + {"getMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_163getMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_162getMonitor}, + {"monitorCancel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_165monitorCancel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_164monitorCancel}, + {"monitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_167monitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_166monitor}, + {"setEventHandler", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_169setEventHandler, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_168setEventHandler}, + {"setEventTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_171setEventTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_170setEventTolerances}, + {"getNumEvents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_173getNumEvents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_172getNumEvents}, + {"setPreStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_175setPreStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_174setPreStep}, + {"getPreStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_177getPreStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_176getPreStep}, + {"setPostStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_179setPostStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_178setPostStep}, + {"getPostStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_181getPostStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_180getPostStep}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_183setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_182setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_185reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_184reset}, + {"step", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_187step, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_186step}, + {"restartStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_189restartStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_188restartStep}, + {"rollBack", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_191rollBack, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_190rollBack}, + {"solve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_193solve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_192solve}, + {"interpolate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_195interpolate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_194interpolate}, + {"setStepLimits", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_197setStepLimits, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_196setStepLimits}, + {"getStepLimits", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_199getStepLimits, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_198getStepLimits}, + {"setSaveTrajectory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_201setSaveTrajectory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_200setSaveTrajectory}, + {"removeTrajectory", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_203removeTrajectory, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_202removeTrajectory}, + {"getCostIntegral", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_205getCostIntegral, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_204getCostIntegral}, + {"setCostGradients", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_207setCostGradients, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_206setCostGradients}, + {"getCostGradients", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_209getCostGradients, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_208getCostGradients}, + {"setRHSJacobianP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_211setRHSJacobianP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_210setRHSJacobianP}, + {"createQuadratureTS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_213createQuadratureTS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_212createQuadratureTS}, + {"getQuadratureTS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_215getQuadratureTS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_214getQuadratureTS}, + {"setRHSJacobianP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_217setRHSJacobianP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_216setRHSJacobianP}, + {"computeRHSJacobianP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_219computeRHSJacobianP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_218computeRHSJacobianP}, + {"adjointSetSteps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_221adjointSetSteps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_220adjointSetSteps}, + {"adjointSetUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_223adjointSetUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_222adjointSetUp}, + {"adjointSolve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_225adjointSolve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_224adjointSolve}, + {"adjointStep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_227adjointStep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_226adjointStep}, + {"adjointReset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_229adjointReset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_228adjointReset}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_231createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_230createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_233setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_232setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_235getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_234getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_237setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_236setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_239getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_238getPythonType}, + {"setTheta", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_241setTheta, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_240setTheta}, + {"getTheta", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_243getTheta, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_242getTheta}, + {"setThetaEndpoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_245setThetaEndpoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_244setThetaEndpoint}, + {"getThetaEndpoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_247getThetaEndpoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_246getThetaEndpoint}, + {"setAlphaRadius", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_249setAlphaRadius, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_248setAlphaRadius}, + {"setAlphaParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_251setAlphaParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_250setAlphaParams}, + {"getAlphaParams", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2TS_253getAlphaParams, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2TS_252getAlphaParams}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_TS[] = { + {(char *)"appctx", __pyx_getprop_8petsc4py_5PETSc_2TS_appctx, __pyx_setprop_8petsc4py_5PETSc_2TS_appctx, (char *)0, 0}, + {(char *)"dm", __pyx_getprop_8petsc4py_5PETSc_2TS_dm, __pyx_setprop_8petsc4py_5PETSc_2TS_dm, (char *)0, 0}, + {(char *)"problem_type", __pyx_getprop_8petsc4py_5PETSc_2TS_problem_type, __pyx_setprop_8petsc4py_5PETSc_2TS_problem_type, (char *)0, 0}, + {(char *)"equation_type", __pyx_getprop_8petsc4py_5PETSc_2TS_equation_type, __pyx_setprop_8petsc4py_5PETSc_2TS_equation_type, (char *)0, 0}, + {(char *)"snes", __pyx_getprop_8petsc4py_5PETSc_2TS_snes, 0, (char *)0, 0}, + {(char *)"ksp", __pyx_getprop_8petsc4py_5PETSc_2TS_ksp, 0, (char *)0, 0}, + {(char *)"vec_sol", __pyx_getprop_8petsc4py_5PETSc_2TS_vec_sol, 0, (char *)0, 0}, + {(char *)"time", __pyx_getprop_8petsc4py_5PETSc_2TS_time, __pyx_setprop_8petsc4py_5PETSc_2TS_time, (char *)0, 0}, + {(char *)"time_step", __pyx_getprop_8petsc4py_5PETSc_2TS_time_step, __pyx_setprop_8petsc4py_5PETSc_2TS_time_step, (char *)0, 0}, + {(char *)"step_number", __pyx_getprop_8petsc4py_5PETSc_2TS_step_number, __pyx_setprop_8petsc4py_5PETSc_2TS_step_number, (char *)0, 0}, + {(char *)"max_time", __pyx_getprop_8petsc4py_5PETSc_2TS_max_time, __pyx_setprop_8petsc4py_5PETSc_2TS_max_time, (char *)0, 0}, + {(char *)"max_steps", __pyx_getprop_8petsc4py_5PETSc_2TS_max_steps, __pyx_setprop_8petsc4py_5PETSc_2TS_max_steps, (char *)0, 0}, + {(char *)"rtol", __pyx_getprop_8petsc4py_5PETSc_2TS_rtol, __pyx_setprop_8petsc4py_5PETSc_2TS_rtol, (char *)0, 0}, + {(char *)"atol", __pyx_getprop_8petsc4py_5PETSc_2TS_atol, __pyx_setprop_8petsc4py_5PETSc_2TS_atol, (char *)0, 0}, + {(char *)"reason", __pyx_getprop_8petsc4py_5PETSc_2TS_reason, __pyx_setprop_8petsc4py_5PETSc_2TS_reason, (char *)0, 0}, + {(char *)"iterating", __pyx_getprop_8petsc4py_5PETSc_2TS_iterating, 0, (char *)0, 0}, + {(char *)"converged", __pyx_getprop_8petsc4py_5PETSc_2TS_converged, 0, (char *)0, 0}, + {(char *)"diverged", __pyx_getprop_8petsc4py_5PETSc_2TS_diverged, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscTS_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.TS", /*tp_name*/ + sizeof(struct PyPetscTSObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_TS, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_TS, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_TS, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_TAO __pyx_vtable_8petsc4py_5PETSc_TAO; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_TAO(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscTAOObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscTAOObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_TAO; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_3TAO_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_appctx(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3TAO_appctx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_6appctx_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_ksp(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_3ksp_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_ftol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3TAO_ftol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4ftol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_gtol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3TAO_gtol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4gtol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_ctol(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_3TAO_ctol(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_4ctol_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_its(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_3its_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_gnorm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_5gnorm_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_cnorm(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_5cnorm_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_solution(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_8solution_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_objective(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_9objective_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_function(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_8function_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_gradient(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_8gradient_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_reason(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_6reason_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_iterating(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_9iterating_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_converged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_9converged_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_3TAO_diverged(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_3TAO_8diverged_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_TAO[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_4destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_6create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_9setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_8setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_11getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_10getType}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_13setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_12setOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_15appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_14appendOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_17getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_16getOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_19setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_18setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_21setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_20setUp}, + {"setInitialTrustRegionRadius", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_23setInitialTrustRegionRadius, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_22setInitialTrustRegionRadius}, + {"setAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_25setAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_24setAppCtx}, + {"getAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_27getAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_26getAppCtx}, + {"setSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_29setSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_28setSolution}, + {"setObjective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_31setObjective, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_30setObjective}, + {"setResidual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_33setResidual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_32setResidual}, + {"setJacobianResidual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_35setJacobianResidual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_34setJacobianResidual}, + {"setGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_37setGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_36setGradient}, + {"getGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_39getGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_38getGradient}, + {"setObjectiveGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_41setObjectiveGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_40setObjectiveGradient}, + {"getObjectiveAndGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_43getObjectiveAndGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_42getObjectiveAndGradient}, + {"setVariableBounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_45setVariableBounds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_44setVariableBounds}, + {"setConstraints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_47setConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_46setConstraints}, + {"setHessian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_49setHessian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_48setHessian}, + {"getHessian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_51getHessian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_50getHessian}, + {"setJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_53setJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_52setJacobian}, + {"setStateDesignIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_55setStateDesignIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_54setStateDesignIS}, + {"setJacobianState", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_57setJacobianState, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_56setJacobianState}, + {"setJacobianDesign", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_59setJacobianDesign, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_58setJacobianDesign}, + {"setEqualityConstraints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_61setEqualityConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_60setEqualityConstraints}, + {"setJacobianEquality", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_63setJacobianEquality, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_62setJacobianEquality}, + {"setUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_65setUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_64setUpdate}, + {"getUpdate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_67getUpdate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_66getUpdate}, + {"computeObjective", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_69computeObjective, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_68computeObjective}, + {"computeResidual", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_71computeResidual, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_70computeResidual}, + {"computeGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_73computeGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_72computeGradient}, + {"computeObjectiveGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_75computeObjectiveGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_74computeObjectiveGradient}, + {"computeDualVariables", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_77computeDualVariables, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_76computeDualVariables}, + {"computeVariableBounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_79computeVariableBounds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_78computeVariableBounds}, + {"computeConstraints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_81computeConstraints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_80computeConstraints}, + {"computeHessian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_83computeHessian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_82computeHessian}, + {"computeJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_85computeJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_84computeJacobian}, + {"setTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_87setTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_86setTolerances}, + {"getTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_89getTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_88getTolerances}, + {"setMaximumIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_91setMaximumIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_90setMaximumIterations}, + {"getMaximumIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_93getMaximumIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_92getMaximumIterations}, + {"setMaximumFunctionEvaluations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_95setMaximumFunctionEvaluations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_94setMaximumFunctionEvaluations}, + {"getMaximumFunctionEvaluations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_97getMaximumFunctionEvaluations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_96getMaximumFunctionEvaluations}, + {"setConstraintTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_99setConstraintTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_98setConstraintTolerances}, + {"getConstraintTolerances", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_101getConstraintTolerances, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_100getConstraintTolerances}, + {"setConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_103setConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_102setConvergenceTest}, + {"getConvergenceTest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_105getConvergenceTest, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_104getConvergenceTest}, + {"setConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_107setConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_106setConvergedReason}, + {"getConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_109getConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_108getConvergedReason}, + {"setMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_111setMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_110setMonitor}, + {"getMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_113getMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_112getMonitor}, + {"cancelMonitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_115cancelMonitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_114cancelMonitor}, + {"monitor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_117monitor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_116monitor}, + {"solve", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_119solve, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_118solve}, + {"getSolution", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_121getSolution, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_120getSolution}, + {"setGradientNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_123setGradientNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_122setGradientNorm}, + {"getGradientNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_125getGradientNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_124getGradientNorm}, + {"setLMVMH0", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_127setLMVMH0, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_126setLMVMH0}, + {"getLMVMH0", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_129getLMVMH0, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_128getLMVMH0}, + {"getLMVMH0KSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_131getLMVMH0KSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_130getLMVMH0KSP}, + {"getVariableBounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_133getVariableBounds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_132getVariableBounds}, + {"setIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_135setIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_134setIterationNumber}, + {"getIterationNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_137getIterationNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_136getIterationNumber}, + {"getObjectiveValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_139getObjectiveValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_138getObjectiveValue}, + {"getConvergedReason", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_141getConvergedReason, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_140getConvergedReason}, + {"getSolutionNorm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_143getSolutionNorm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_142getSolutionNorm}, + {"getSolutionStatus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_145getSolutionStatus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_144getSolutionStatus}, + {"getKSP", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_147getKSP, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_146getKSP}, + {"getBRGNSubsolver", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_149getBRGNSubsolver, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_148getBRGNSubsolver}, + {"setBRGNRegularizerObjectiveGradient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_151setBRGNRegularizerObjectiveGradient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_150setBRGNRegularizerObjectiveGradient}, + {"setBRGNRegularizerHessian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_153setBRGNRegularizerHessian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_152setBRGNRegularizerHessian}, + {"setBRGNRegularizerWeight", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_155setBRGNRegularizerWeight, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_154setBRGNRegularizerWeight}, + {"setBRGNSmoothL1Epsilon", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_157setBRGNSmoothL1Epsilon, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_156setBRGNSmoothL1Epsilon}, + {"setBRGNDictionaryMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_159setBRGNDictionaryMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_158setBRGNDictionaryMatrix}, + {"getBRGNDampingVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_161getBRGNDampingVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_160getBRGNDampingVector}, + {"createPython", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_163createPython, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_162createPython}, + {"setPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_165setPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_164setPythonContext}, + {"getPythonContext", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_167getPythonContext, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_166getPythonContext}, + {"setPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_169setPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_168setPythonType}, + {"getPythonType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3TAO_171getPythonType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3TAO_170getPythonType}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_TAO[] = { + {(char *)"appctx", __pyx_getprop_8petsc4py_5PETSc_3TAO_appctx, __pyx_setprop_8petsc4py_5PETSc_3TAO_appctx, (char *)0, 0}, + {(char *)"ksp", __pyx_getprop_8petsc4py_5PETSc_3TAO_ksp, 0, (char *)0, 0}, + {(char *)"ftol", __pyx_getprop_8petsc4py_5PETSc_3TAO_ftol, __pyx_setprop_8petsc4py_5PETSc_3TAO_ftol, (char *)0, 0}, + {(char *)"gtol", __pyx_getprop_8petsc4py_5PETSc_3TAO_gtol, __pyx_setprop_8petsc4py_5PETSc_3TAO_gtol, (char *)0, 0}, + {(char *)"ctol", __pyx_getprop_8petsc4py_5PETSc_3TAO_ctol, __pyx_setprop_8petsc4py_5PETSc_3TAO_ctol, (char *)0, 0}, + {(char *)"its", __pyx_getprop_8petsc4py_5PETSc_3TAO_its, 0, (char *)0, 0}, + {(char *)"gnorm", __pyx_getprop_8petsc4py_5PETSc_3TAO_gnorm, 0, (char *)0, 0}, + {(char *)"cnorm", __pyx_getprop_8petsc4py_5PETSc_3TAO_cnorm, 0, (char *)0, 0}, + {(char *)"solution", __pyx_getprop_8petsc4py_5PETSc_3TAO_solution, 0, (char *)0, 0}, + {(char *)"objective", __pyx_getprop_8petsc4py_5PETSc_3TAO_objective, 0, (char *)0, 0}, + {(char *)"function", __pyx_getprop_8petsc4py_5PETSc_3TAO_function, 0, (char *)0, 0}, + {(char *)"gradient", __pyx_getprop_8petsc4py_5PETSc_3TAO_gradient, 0, (char *)0, 0}, + {(char *)"reason", __pyx_getprop_8petsc4py_5PETSc_3TAO_reason, 0, (char *)0, 0}, + {(char *)"iterating", __pyx_getprop_8petsc4py_5PETSc_3TAO_iterating, 0, (char *)0, 0}, + {(char *)"converged", __pyx_getprop_8petsc4py_5PETSc_3TAO_converged, 0, (char *)0, 0}, + {(char *)"diverged", __pyx_getprop_8petsc4py_5PETSc_3TAO_diverged, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscTAO_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.TAO", /*tp_name*/ + sizeof(struct PyPetscTAOObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "\n TAO Solver\n ", /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_TAO, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_TAO, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_TAO, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_AO __pyx_vtable_8petsc4py_5PETSc_AO; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_AO(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscAOObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscAOObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_AO; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2AO_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_AO[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_4destroy}, + {"createBasic", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_7createBasic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_6createBasic}, + {"createMemoryScalable", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_9createMemoryScalable, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_8createMemoryScalable}, + {"createMapping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_11createMapping, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_10createMapping}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_13getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_12getType}, + {"app2petsc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_15app2petsc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_14app2petsc}, + {"petsc2app", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2AO_17petsc2app, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2AO_16petsc2app}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscAO_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.AO", /*tp_name*/ + sizeof(struct PyPetscAOObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_AO, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_AO, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DM __pyx_vtable_8petsc4py_5PETSc_DM; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DM(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDMObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDMObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DM; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2DM_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2DM_appctx(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2DM_6appctx_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2DM_appctx(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2DM_6appctx_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_2DM_ds(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_2DM_2ds_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_2DM_ds(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_2DM_2ds_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DM[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_2view}, + {"load", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_5load, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_4load}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_6destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_9create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_8create}, + {"clone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_11clone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_10clone}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_13setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_12setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_15getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_14getType}, + {"getDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_17getDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_16getDimension}, + {"setDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_19setDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_18setDimension}, + {"getCoordinateDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_21getCoordinateDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_20getCoordinateDim}, + {"setCoordinateDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_23setCoordinateDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_22setCoordinateDim}, + {"setOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_25setOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_24setOptionsPrefix}, + {"getOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_27getOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_26getOptionsPrefix}, + {"appendOptionsPrefix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_29appendOptionsPrefix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_28appendOptionsPrefix}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_31setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_30setFromOptions}, + {"viewFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_33viewFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_32viewFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_35setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_34setUp}, + {"setAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_37setAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_36setAppCtx}, + {"getAppCtx", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_39getAppCtx, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_38getAppCtx}, + {"setBasicAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_41setBasicAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_40setBasicAdjacency}, + {"getBasicAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_43getBasicAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_42getBasicAdjacency}, + {"setFieldAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_45setFieldAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_44setFieldAdjacency}, + {"getFieldAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_47getFieldAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_46getFieldAdjacency}, + {"createSubDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_49createSubDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_48createSubDM}, + {"setAuxiliaryVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_51setAuxiliaryVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_50setAuxiliaryVec}, + {"getAuxiliaryVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_53getAuxiliaryVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_52getAuxiliaryVec}, + {"setNumFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_55setNumFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_54setNumFields}, + {"getNumFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_57getNumFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_56getNumFields}, + {"setField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_59setField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_58setField}, + {"getField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_61getField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_60getField}, + {"addField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_63addField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_62addField}, + {"clearFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_65clearFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_64clearFields}, + {"copyFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_67copyFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_66copyFields}, + {"createDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_69createDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_68createDS}, + {"clearDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_71clearDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_70clearDS}, + {"getDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_73getDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_72getDS}, + {"copyDS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_75copyDS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_74copyDS}, + {"copyDisc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_77copyDisc, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_76copyDisc}, + {"getBlockSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_79getBlockSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_78getBlockSize}, + {"setVecType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_81setVecType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_80setVecType}, + {"createGlobalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_83createGlobalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_82createGlobalVec}, + {"createLocalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_85createLocalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_84createLocalVec}, + {"getGlobalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_87getGlobalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_86getGlobalVec}, + {"restoreGlobalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_89restoreGlobalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_88restoreGlobalVec}, + {"getLocalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_91getLocalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_90getLocalVec}, + {"restoreLocalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_93restoreLocalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_92restoreLocalVec}, + {"globalToLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_95globalToLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_94globalToLocal}, + {"localToGlobal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_97localToGlobal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_96localToGlobal}, + {"localToLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_99localToLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_98localToLocal}, + {"getLGMap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_101getLGMap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_100getLGMap}, + {"getCoordinateDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_103getCoordinateDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_102getCoordinateDM}, + {"getCoordinateSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_105getCoordinateSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_104getCoordinateSection}, + {"setCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_107setCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_106setCoordinates}, + {"getCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_109getCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_108getCoordinates}, + {"setCoordinatesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_111setCoordinatesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_110setCoordinatesLocal}, + {"getCoordinatesLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_113getCoordinatesLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_112getCoordinatesLocal}, + {"projectCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_115projectCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_114projectCoordinates}, + {"getBoundingBox", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_117getBoundingBox, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_116getBoundingBox}, + {"getLocalBoundingBox", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_119getLocalBoundingBox, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_118getLocalBoundingBox}, + {"localizeCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_121localizeCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_120localizeCoordinates}, + {"setMatType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_123setMatType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_122setMatType}, + {"createMat", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_125createMat, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_124createMat}, + {"createMassMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_127createMassMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_126createMassMatrix}, + {"createInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_129createInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_128createInterpolation}, + {"createInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_131createInjection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_130createInjection}, + {"createRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_133createRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_132createRestriction}, + {"convert", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_135convert, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_134convert}, + {"refine", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_137refine, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_136refine}, + {"coarsen", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_139coarsen, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_138coarsen}, + {"refineHierarchy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_141refineHierarchy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_140refineHierarchy}, + {"coarsenHierarchy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_143coarsenHierarchy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_142coarsenHierarchy}, + {"getRefineLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_145getRefineLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_144getRefineLevel}, + {"setRefineLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_147setRefineLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_146setRefineLevel}, + {"getCoarsenLevel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_149getCoarsenLevel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_148getCoarsenLevel}, + {"adaptLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_151adaptLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_150adaptLabel}, + {"adaptMetric", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_153adaptMetric, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_152adaptMetric}, + {"getLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_155getLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_154getLabel}, + {"setSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_157setSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_156setSection}, + {"getSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_159getSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_158getSection}, + {"setLocalSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_161setLocalSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_160setLocalSection}, + {"getLocalSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_163getLocalSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_162getLocalSection}, + {"setGlobalSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_165setGlobalSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_164setGlobalSection}, + {"getGlobalSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_167getGlobalSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_166getGlobalSection}, + {"createSectionSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_169createSectionSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_168createSectionSF}, + {"getSectionSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_171getSectionSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_170getSectionSF}, + {"setSectionSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_173setSectionSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_172setSectionSF}, + {"getPointSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_175getPointSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_174getPointSF}, + {"setPointSF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_177setPointSF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_176setPointSF}, + {"getNumLabels", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_179getNumLabels, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_178getNumLabels}, + {"getLabelName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_181getLabelName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_180getLabelName}, + {"hasLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_183hasLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_182hasLabel}, + {"createLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_185createLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_184createLabel}, + {"removeLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_187removeLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_186removeLabel}, + {"getLabelValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_189getLabelValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_188getLabelValue}, + {"setLabelValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_191setLabelValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_190setLabelValue}, + {"clearLabelValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_193clearLabelValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_192clearLabelValue}, + {"getLabelSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_195getLabelSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_194getLabelSize}, + {"getLabelIdIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_197getLabelIdIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_196getLabelIdIS}, + {"getStratumSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_199getStratumSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_198getStratumSize}, + {"getStratumIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_201getStratumIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_200getStratumIS}, + {"clearLabelStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_203clearLabelStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_202clearLabelStratum}, + {"setLabelOutput", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_205setLabelOutput, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_204setLabelOutput}, + {"getLabelOutput", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_207getLabelOutput, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_206getLabelOutput}, + {"setKSPComputeOperators", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_209setKSPComputeOperators, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_208setKSPComputeOperators}, + {"createFieldDecomposition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_211createFieldDecomposition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_210createFieldDecomposition}, + {"setSNESFunction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_213setSNESFunction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_212setSNESFunction}, + {"setSNESJacobian", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_215setSNESJacobian, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_214setSNESJacobian}, + {"addCoarsenHook", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DM_217addCoarsenHook, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DM_216addCoarsenHook}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_DM[] = { + {(char *)"appctx", __pyx_getprop_8petsc4py_5PETSc_2DM_appctx, __pyx_setprop_8petsc4py_5PETSc_2DM_appctx, (char *)0, 0}, + {(char *)"ds", __pyx_getprop_8petsc4py_5PETSc_2DM_ds, __pyx_setprop_8petsc4py_5PETSc_2DM_ds, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDM_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DM", /*tp_name*/ + sizeof(struct PyPetscDMObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DM, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_DM, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DM, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlexTransform __pyx_vtable_8petsc4py_5PETSc_DMPlexTransform; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMPlexTransform(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDMPlexTransformObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDMPlexTransformObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMPlexTransform; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMPlexTransform[] = { + {"apply", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_3apply, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_2apply}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_4create}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_6destroy}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_9getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_8getType}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_11setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_10setUp}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_13setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_12setType}, + {"setDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_15setDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_14setDM}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_17setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_16setFromOptions}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMPlexTransform_19view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMPlexTransform_18view}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDMPlexTransform_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMPlexTransform", /*tp_name*/ + sizeof(struct PyPetscDMPlexTransformObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMPlexTransform, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMPlexTransform, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DS __pyx_vtable_8petsc4py_5PETSc_DS; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DS(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDSObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDSObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DS; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_2DS_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DS[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_4destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_6create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_9setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_8setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_11getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_10getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_13setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_12setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_15setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_14setUp}, + {"getSpatialDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_17getSpatialDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_16getSpatialDimension}, + {"getCoordinateDimension", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_19getCoordinateDimension, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_18getCoordinateDimension}, + {"getNumFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_21getNumFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_20getNumFields}, + {"getFieldIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_23getFieldIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_22getFieldIndex}, + {"getTotalDimensions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_25getTotalDimensions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_24getTotalDimensions}, + {"getTotalComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_27getTotalComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_26getTotalComponents}, + {"getDimensions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_29getDimensions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_28getDimensions}, + {"getComponents", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_31getComponents, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_30getComponents}, + {"setDiscretisation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_2DS_33setDiscretisation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_2DS_32setDiscretisation}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDS_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DS", /*tp_name*/ + sizeof(struct PyPetscDSObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DS, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DS, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_Partitioner __pyx_vtable_8petsc4py_5PETSc_Partitioner; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Partitioner(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscPartitionerObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscPartitionerObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_Partitioner; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_11Partitioner_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Partitioner[] = { + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_3view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_2view}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_5destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_4destroy}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_6create}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_9setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_8setType}, + {"getType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_11getType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_10getType}, + {"setFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_13setFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_12setFromOptions}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_15setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_14setUp}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_17reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_16reset}, + {"setShellPartition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11Partitioner_19setShellPartition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11Partitioner_18setShellPartition}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscPartitioner_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Partitioner", /*tp_name*/ + sizeof(struct PyPetscPartitionerObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Partitioner, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Partitioner, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMLabel __pyx_vtable_8petsc4py_5PETSc_DMLabel; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMLabel(PyTypeObject *t, PyObject *a, PyObject *k) { + struct PyPetscDMLabelObject *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Object(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct PyPetscDMLabelObject *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMLabel; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_7DMLabel_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMLabel[] = { + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_3destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_2destroy}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_5view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_4view}, + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_7create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_6create}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_9duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_8duplicate}, + {"reset", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_11reset, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_10reset}, + {"insertIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_13insertIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_12insertIS}, + {"setValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_15setValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_14setValue}, + {"getValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_17getValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_16getValue}, + {"getDefaultValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_19getDefaultValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_18getDefaultValue}, + {"setDefaultValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_21setDefaultValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_20setDefaultValue}, + {"clearValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_23clearValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_22clearValue}, + {"addStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_25addStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_24addStratum}, + {"addStrata", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_27addStrata, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_26addStrata}, + {"addStrataIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_29addStrataIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_28addStrataIS}, + {"getNumValues", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_31getNumValues, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_30getNumValues}, + {"getValueIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_33getValueIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_32getValueIS}, + {"stratumHasPoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_35stratumHasPoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_34stratumHasPoint}, + {"hasStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_37hasStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_36hasStratum}, + {"getStratumSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_39getStratumSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_38getStratumSize}, + {"getStratumIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_41getStratumIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_40getStratumIS}, + {"setStratumIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_43setStratumIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_42setStratumIS}, + {"clearStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_45clearStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_44clearStratum}, + {"computeIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_47computeIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_46computeIndex}, + {"createIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_49createIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_48createIndex}, + {"destroyIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_51destroyIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_50destroyIndex}, + {"hasValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_53hasValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_52hasValue}, + {"hasPoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_55hasPoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_54hasPoint}, + {"getBounds", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_57getBounds, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_56getBounds}, + {"filter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_59filter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_58filter}, + {"permute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_61permute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_60permute}, + {"distribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_63distribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_62distribute}, + {"gather", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_65gather, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_64gather}, + {"convertToSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_67convertToSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_66convertToSection}, + {"getNonEmptyStratumValuesIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMLabel_69getNonEmptyStratumValuesIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMLabel_68getNonEmptyStratumValuesIS}, + {0, 0, 0, 0} +}; + +DL_EXPORT(PyTypeObject) PyPetscDMLabel_Type = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMLabel", /*tp_name*/ + sizeof(struct PyPetscDMLabelObject), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMLabel, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMLabel, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__IS_buffer __pyx_vtable_8petsc4py_5PETSc__IS_buffer; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__IS_buffer(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *)o); + p->__pyx_vtab = __pyx_vtabptr_8petsc4py_5PETSc__IS_buffer; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_1__cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__IS_buffer(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_10_IS_buffer___array_interface__(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_19__array_interface___1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__IS_buffer[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_9__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10_IS_buffer_8__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10_IS_buffer_11__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10_IS_buffer_10__exit__}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc__IS_buffer[] = { + {(char *)"__array_interface__", __pyx_getprop_8petsc4py_5PETSc_10_IS_buffer___array_interface__, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyBufferProcs __pyx_tp_as_buffer__IS_buffer = { + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_15__getreadbuffer__, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_13__getsegcount__, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_5__getbuffer__, /*bf_getbuffer*/ + __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_7__releasebuffer__, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__IS_buffer = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._IS_buffer", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__IS_buffer, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer__IS_buffer, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__IS_buffer, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc__IS_buffer, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__IS_buffer, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__Vec_buffer __pyx_vtable_8petsc4py_5PETSc__Vec_buffer; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Vec_buffer(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)o); + p->__pyx_vtab = __pyx_vtabptr_8petsc4py_5PETSc__Vec_buffer; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_1__cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__Vec_buffer(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_11_Vec_buffer___array_interface__(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_19__array_interface___1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__Vec_buffer[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_9__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11_Vec_buffer_8__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_11__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11_Vec_buffer_10__exit__}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc__Vec_buffer[] = { + {(char *)"__array_interface__", __pyx_getprop_8petsc4py_5PETSc_11_Vec_buffer___array_interface__, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyBufferProcs __pyx_tp_as_buffer__Vec_buffer = { + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_15__getreadbuffer__, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_17__getwritebuffer__, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_13__getsegcount__, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_5__getbuffer__, /*bf_getbuffer*/ + __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_7__releasebuffer__, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__Vec_buffer = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._Vec_buffer", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__Vec_buffer, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer__Vec_buffer, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__Vec_buffer, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc__Vec_buffer, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__Vec_buffer, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Vec_LocalForm(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)o); + p->gvec = ((struct PyPetscVecObject *)Py_None); Py_INCREF(Py_None); + p->lvec = ((struct PyPetscVecObject *)Py_None); Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__Vec_LocalForm(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *p = (struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->gvec); + Py_CLEAR(p->lvec); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc__Vec_LocalForm(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *p = (struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)o; + if (p->gvec) { + e = (*v)(((PyObject *)p->gvec), a); if (e) return e; + } + if (p->lvec) { + e = (*v)(((PyObject *)p->lvec), a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc__Vec_LocalForm(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *p = (struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm *)o; + tmp = ((PyObject*)p->gvec); + p->gvec = ((struct PyPetscVecObject *)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->lvec); + p->lvec = ((struct PyPetscVecObject *)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__Vec_LocalForm[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_3__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_14_Vec_LocalForm_2__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_5__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_14_Vec_LocalForm_4__exit__}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__Vec_LocalForm = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._Vec_LocalForm", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__Vec_LocalForm), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__Vec_LocalForm, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "_Vec_LocalForm(Vec gvec)\nContext manager for `Vec` local form", /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__Vec_LocalForm, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__Vec_LocalForm, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__Vec_LocalForm, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_pw_8petsc4py_5PETSc_14_Vec_LocalForm_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__Vec_LocalForm, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__Mat_Stencil(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__Mat_Stencil(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_i(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1i_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_j(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1j_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_k(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1k_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_c(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_1c_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_index(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5index_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static int __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_field(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_12_Mat_Stencil_5field_1__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc__Mat_Stencil[] = { + {(char *)"i", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_i, (char *)0, 0}, + {(char *)"j", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_j, (char *)0, 0}, + {(char *)"k", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_k, (char *)0, 0}, + {(char *)"c", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_c, (char *)0, 0}, + {(char *)"index", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_index, (char *)0, 0}, + {(char *)"field", 0, __pyx_setprop_8petsc4py_5PETSc_12_Mat_Stencil_field, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__Mat_Stencil = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._Mat_Stencil", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__Mat_Stencil), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__Mat_Stencil, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc__Mat_Stencil, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__Mat_Stencil, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__DMDA_Vec_array __pyx_vtable_8petsc4py_5PETSc__DMDA_Vec_array; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__DMDA_Vec_array(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)o); + p->__pyx_vtab = __pyx_vtabptr_8petsc4py_5PETSc__DMDA_Vec_array; + p->vecbuf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)Py_None); Py_INCREF(Py_None); + p->starts = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->sizes = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->shape = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->strides = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->array = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); + if (unlikely(__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_1__cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__DMDA_Vec_array(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *p = (struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->vecbuf); + Py_CLEAR(p->starts); + Py_CLEAR(p->sizes); + Py_CLEAR(p->shape); + Py_CLEAR(p->strides); + Py_CLEAR(p->array); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc__DMDA_Vec_array(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *p = (struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)o; + if (p->vecbuf) { + e = (*v)(((PyObject *)p->vecbuf), a); if (e) return e; + } + if (p->starts) { + e = (*v)(p->starts, a); if (e) return e; + } + if (p->sizes) { + e = (*v)(p->sizes, a); if (e) return e; + } + if (p->shape) { + e = (*v)(p->shape, a); if (e) return e; + } + if (p->strides) { + e = (*v)(p->strides, a); if (e) return e; + } + if (p->array) { + e = (*v)(((PyObject *)p->array), a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc__DMDA_Vec_array(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *p = (struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *)o; + tmp = ((PyObject*)p->vecbuf); + p->vecbuf = ((struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->starts); + p->starts = ((PyObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->sizes); + p->sizes = ((PyObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->shape); + p->shape = ((PyObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->strides); + p->strides = ((PyObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->array); + p->array = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} +static PyObject *__pyx_sq_item_8petsc4py_5PETSc__DMDA_Vec_array(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_8petsc4py_5PETSc__DMDA_Vec_array(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5__setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_starts(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_6starts_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_shape(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5shape_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_strides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7strides_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_array(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_5array_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__DMDA_Vec_array[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_7__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15_DMDA_Vec_array_6__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_9__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15_DMDA_Vec_array_8__exit__}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc__DMDA_Vec_array[] = { + {(char *)"starts", __pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_starts, 0, (char *)0, 0}, + {(char *)"sizes", __pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_sizes, 0, (char *)0, 0}, + {(char *)"shape", __pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_shape, 0, (char *)0, 0}, + {(char *)"strides", __pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_strides, 0, (char *)0, 0}, + {(char *)"array", __pyx_getprop_8petsc4py_5PETSc_15_DMDA_Vec_array_array, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence__DMDA_Vec_array = { + 0, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_8petsc4py_5PETSc__DMDA_Vec_array, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping__DMDA_Vec_array = { + 0, /*mp_length*/ + __pyx_pw_8petsc4py_5PETSc_15_DMDA_Vec_array_3__getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_8petsc4py_5PETSc__DMDA_Vec_array, /*mp_ass_subscript*/ +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__DMDA_Vec_array = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._DMDA_Vec_array", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence__DMDA_Vec_array, /*tp_as_sequence*/ + &__pyx_tp_as_mapping__DMDA_Vec_array, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__DMDA_Vec_array, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__DMComposite_access(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)o); + p->locs_mem = Py_None; Py_INCREF(Py_None); + p->vecs_mem = Py_None; Py_INCREF(Py_None); + p->access = Py_None; Py_INCREF(Py_None); + if (unlikely(__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_1__cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__DMComposite_access(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *p = (struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->locs_mem); + Py_CLEAR(p->vecs_mem); + Py_CLEAR(p->access); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc__DMComposite_access(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *p = (struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)o; + if (p->locs_mem) { + e = (*v)(p->locs_mem, a); if (e) return e; + } + if (p->vecs_mem) { + e = (*v)(p->vecs_mem, a); if (e) return e; + } + if (p->access) { + e = (*v)(p->access, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc__DMComposite_access(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *p = (struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access *)o; + tmp = ((PyObject*)p->locs_mem); + p->locs_mem = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->vecs_mem); + p->vecs_mem = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->access); + p->access = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__DMComposite_access[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_5__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_19_DMComposite_access_4__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_19_DMComposite_access_7__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_19_DMComposite_access_6__exit__}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__DMComposite_access = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._DMComposite_access", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__DMComposite_access), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__DMComposite_access, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__DMComposite_access, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__DMComposite_access, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__DMComposite_access, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__DMComposite_access, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Options(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_Options *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_Options *)o); + p->_prefix = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Options(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc_Options *p = (struct __pyx_obj_8petsc4py_5PETSc_Options *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_7Options_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->_prefix); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc_Options(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc_Options *p = (struct __pyx_obj_8petsc4py_5PETSc_Options *)o; + if (p->_prefix) { + e = (*v)(p->_prefix, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc_Options(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc_Options *p = (struct __pyx_obj_8petsc4py_5PETSc_Options *)o; + tmp = ((PyObject*)p->_prefix); + p->_prefix = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} +static PyObject *__pyx_sq_item_8petsc4py_5PETSc_Options(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_8petsc4py_5PETSc_Options(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_7Options_9__setitem__(o, i, v); + } + else { + return __pyx_pw_8petsc4py_5PETSc_7Options_11__delitem__(o, i); + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_7Options_prefix(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_7Options_prefix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_3__set__(o, v); + } + else { + return __pyx_pw_8petsc4py_5PETSc_7Options_6prefix_5__del__(o); + } +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Options[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_13create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_12create}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_15destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_14destroy}, + {"clear", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_17clear, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_16clear}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_19view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_18view}, + {"prefixPush", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_21prefixPush, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_20prefixPush}, + {"prefixPop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_23prefixPop, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_22prefixPop}, + {"hasName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_25hasName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_24hasName}, + {"setValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_27setValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_26setValue}, + {"delValue", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_29delValue, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_28delValue}, + {"getBool", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_31getBool, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_30getBool}, + {"getInt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_33getInt, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_32getInt}, + {"getReal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_35getReal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_34getReal}, + {"getScalar", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_37getScalar, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_36getScalar}, + {"getString", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_39getString, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_38getString}, + {"insertString", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_41insertString, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_40insertString}, + {"getAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7Options_43getAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7Options_42getAll}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_Options[] = { + {(char *)"prefix", __pyx_getprop_8petsc4py_5PETSc_7Options_prefix, __pyx_setprop_8petsc4py_5PETSc_7Options_prefix, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_Options = { + 0, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_8petsc4py_5PETSc_Options, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + __pyx_pw_8petsc4py_5PETSc_7Options_5__contains__, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_Options = { + 0, /*mp_length*/ + __pyx_pw_8petsc4py_5PETSc_7Options_7__getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_8petsc4py_5PETSc_Options, /*mp_ass_subscript*/ +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_Options = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Options", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_Options), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Options, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_Options, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_Options, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "Options(prefix=None)", /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Options, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Options, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Options, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_Options, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_pw_8petsc4py_5PETSc_7Options_1__init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Options, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Sys(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Sys(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Sys[] = { + {"getVersion", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_1getVersion, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_getVersion}, + {"getVersionInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_3getVersionInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_2getVersionInfo}, + {"isInitialized", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_5isInitialized, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_4isInitialized}, + {"isFinalized", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_7isFinalized, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_6isFinalized}, + {"getDefaultComm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_9getDefaultComm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_8getDefaultComm}, + {"setDefaultComm", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_11setDefaultComm, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_10setDefaultComm}, + {"Print", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_13Print, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_12Print}, + {"syncPrint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_15syncPrint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_14syncPrint}, + {"syncFlush", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_17syncFlush, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_16syncFlush}, + {"splitOwnership", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_19splitOwnership, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_18splitOwnership}, + {"sleep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_21sleep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_20sleep}, + {"pushErrorHandler", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_23pushErrorHandler, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_22pushErrorHandler}, + {"popErrorHandler", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_25popErrorHandler, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_24popErrorHandler}, + {"popSignalHandler", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_27popSignalHandler, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_26popSignalHandler}, + {"infoAllow", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_29infoAllow, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_28infoAllow}, + {"registerCitation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_31registerCitation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_30registerCitation}, + {"hasExternalPackage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Sys_33hasExternalPackage, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Sys_32hasExternalPackage}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_Sys = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Sys", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_Sys), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Sys, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Sys, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Sys, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_Log(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_Log(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_Log[] = { + {"Stage", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_1Stage, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_Stage}, + {"Class", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_3Class, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_2Class}, + {"Event", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_5Event, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_4Event}, + {"begin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_7begin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_6begin}, + {"view", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_9view, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_8view}, + {"logFlops", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_11logFlops, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_10logFlops}, + {"addFlops", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_13addFlops, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_12addFlops}, + {"getFlops", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_15getFlops, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_14getFlops}, + {"getTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_17getTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_16getTime}, + {"getCPUTime", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_19getCPUTime, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_18getCPUTime}, + {"EventDecorator", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_21EventDecorator, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_20EventDecorator}, + {"isActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_3Log_23isActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_3Log_22isActive}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_Log = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Log", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_Log), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Log, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_Log, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_Log, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogStage(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_8LogStage_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_LogStage(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogStage_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_4name_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogStage_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_4name_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogStage_active(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_6active_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogStage_active(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_6active_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogStage_visible(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogStage_visible(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_7visible_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogStage_id(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogStage_2id_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_LogStage[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_5__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_4__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_7__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_6__exit__}, + {"push", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_9push, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_8push}, + {"pop", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_11pop, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_10pop}, + {"getName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_13getName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_12getName}, + {"activate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_15activate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_14activate}, + {"deactivate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_17deactivate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_16deactivate}, + {"getActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_19getActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_18getActive}, + {"setActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_21setActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_20setActive}, + {"getVisible", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_23getVisible, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_22getVisible}, + {"setVisible", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogStage_25setVisible, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogStage_24setVisible}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_LogStage[] = { + {(char *)"name", __pyx_getprop_8petsc4py_5PETSc_8LogStage_name, __pyx_setprop_8petsc4py_5PETSc_8LogStage_name, (char *)0, 0}, + {(char *)"active", __pyx_getprop_8petsc4py_5PETSc_8LogStage_active, __pyx_setprop_8petsc4py_5PETSc_8LogStage_active, (char *)0, 0}, + {(char *)"visible", __pyx_getprop_8petsc4py_5PETSc_8LogStage_visible, __pyx_setprop_8petsc4py_5PETSc_8LogStage_visible, (char *)0, 0}, + {(char *)"id", __pyx_getprop_8petsc4py_5PETSc_8LogStage_id, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_LogStage = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + 0, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + __pyx_pw_8petsc4py_5PETSc_8LogStage_3__int__, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_8LogStage_3__int__, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_LogStage = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.LogStage", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_LogStage), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_LogStage, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_LogStage, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_LogStage, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_LogStage, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_LogStage, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogClass(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_8LogClass_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_LogClass(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogClass_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogClass_4name_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogClass_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogClass_4name_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogClass_active(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogClass_6active_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogClass_active(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogClass_6active_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogClass_id(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogClass_2id_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_LogClass[] = { + {"getName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogClass_5getName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogClass_4getName}, + {"activate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogClass_7activate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogClass_6activate}, + {"deactivate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogClass_9deactivate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogClass_8deactivate}, + {"getActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogClass_11getActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogClass_10getActive}, + {"setActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogClass_13setActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogClass_12setActive}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_LogClass[] = { + {(char *)"name", __pyx_getprop_8petsc4py_5PETSc_8LogClass_name, __pyx_setprop_8petsc4py_5PETSc_8LogClass_name, (char *)0, 0}, + {(char *)"active", __pyx_getprop_8petsc4py_5PETSc_8LogClass_active, __pyx_setprop_8petsc4py_5PETSc_8LogClass_active, (char *)0, 0}, + {(char *)"id", __pyx_getprop_8petsc4py_5PETSc_8LogClass_id, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_LogClass = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + 0, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + __pyx_pw_8petsc4py_5PETSc_8LogClass_3__int__, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_8LogClass_3__int__, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_LogClass = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.LogClass", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_LogClass), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_LogClass, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_LogClass, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_LogClass, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_LogClass, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_LogClass, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_LogEvent(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_8LogEvent_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_LogEvent(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + (*Py_TYPE(o)->tp_free)(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogEvent_name(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogEvent_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_4name_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogEvent_active(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogEvent_active(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_6active_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogEvent_active_all(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_1__get__(o); +} + +static int __pyx_setprop_8petsc4py_5PETSc_8LogEvent_active_all(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) { + if (v) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_10active_all_3__set__(o, v); + } + else { + PyErr_SetString(PyExc_NotImplementedError, "__del__"); + return -1; + } +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_8LogEvent_id(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_8LogEvent_2id_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_LogEvent[] = { + {"__enter__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_5__enter__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_4__enter__}, + {"__exit__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_7__exit__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_6__exit__}, + {"begin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_9begin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_8begin}, + {"end", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_11end, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_10end}, + {"getName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_13getName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_12getName}, + {"activate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_15activate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_14activate}, + {"deactivate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_17deactivate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_16deactivate}, + {"getActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_19getActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_18getActive}, + {"setActive", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_21setActive, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_20setActive}, + {"getActiveAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_23getActiveAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_22getActiveAll}, + {"setActiveAll", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_25setActiveAll, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_24setActiveAll}, + {"getPerfInfo", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_8LogEvent_27getPerfInfo, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_8LogEvent_26getPerfInfo}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_LogEvent[] = { + {(char *)"name", __pyx_getprop_8petsc4py_5PETSc_8LogEvent_name, __pyx_setprop_8petsc4py_5PETSc_8LogEvent_name, (char *)0, 0}, + {(char *)"active", __pyx_getprop_8petsc4py_5PETSc_8LogEvent_active, __pyx_setprop_8petsc4py_5PETSc_8LogEvent_active, (char *)0, 0}, + {(char *)"active_all", __pyx_getprop_8petsc4py_5PETSc_8LogEvent_active_all, __pyx_setprop_8petsc4py_5PETSc_8LogEvent_active_all, (char *)0, 0}, + {(char *)"id", __pyx_getprop_8petsc4py_5PETSc_8LogEvent_id, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyNumberMethods __pyx_tp_as_number_LogEvent = { + 0, /*nb_add*/ + 0, /*nb_subtract*/ + 0, /*nb_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_divide*/ + #endif + 0, /*nb_remainder*/ + 0, /*nb_divmod*/ + 0, /*nb_power*/ + 0, /*nb_negative*/ + 0, /*nb_positive*/ + 0, /*nb_absolute*/ + 0, /*nb_nonzero*/ + 0, /*nb_invert*/ + 0, /*nb_lshift*/ + 0, /*nb_rshift*/ + 0, /*nb_and*/ + 0, /*nb_xor*/ + 0, /*nb_or*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_coerce*/ + #endif + __pyx_pw_8petsc4py_5PETSc_8LogEvent_3__int__, /*nb_int*/ + #if PY_MAJOR_VERSION < 3 + __pyx_pw_8petsc4py_5PETSc_8LogEvent_3__int__, /*nb_long*/ + #else + 0, /*reserved*/ + #endif + 0, /*nb_float*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_oct*/ + #endif + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_hex*/ + #endif + 0, /*nb_inplace_add*/ + 0, /*nb_inplace_subtract*/ + 0, /*nb_inplace_multiply*/ + #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) + 0, /*nb_inplace_divide*/ + #endif + 0, /*nb_inplace_remainder*/ + 0, /*nb_inplace_power*/ + 0, /*nb_inplace_lshift*/ + 0, /*nb_inplace_rshift*/ + 0, /*nb_inplace_and*/ + 0, /*nb_inplace_xor*/ + 0, /*nb_inplace_or*/ + 0, /*nb_floor_divide*/ + 0, /*nb_true_divide*/ + 0, /*nb_inplace_floor_divide*/ + 0, /*nb_inplace_true_divide*/ + 0, /*nb_index*/ + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_matrix_multiply*/ + #endif + #if PY_VERSION_HEX >= 0x03050000 + 0, /*nb_inplace_matrix_multiply*/ + #endif +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_LogEvent = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.LogEvent", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_LogEvent), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_LogEvent, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + &__pyx_tp_as_number_LogEvent, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_LogEvent, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_LogEvent, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_LogEvent, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_ViewerHDF5 __pyx_vtable_8petsc4py_5PETSc_ViewerHDF5; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_ViewerHDF5(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_Viewer(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5 *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_ViewerHDF5; + return o; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_ViewerHDF5[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_create}, + {"pushTimestepping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_3pushTimestepping, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_2pushTimestepping}, + {"popTimestepping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_5popTimestepping, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_4popTimestepping}, + {"getTimestep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_7getTimestep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_6getTimestep}, + {"setTimestep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_9setTimestep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_8setTimestep}, + {"incrementTimestep", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_11incrementTimestep, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_10incrementTimestep}, + {"pushGroup", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_13pushGroup, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_12pushGroup}, + {"popGroup", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_15popGroup, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_14popGroup}, + {"getGroup", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_10ViewerHDF5_17getGroup, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_10ViewerHDF5_16getGroup}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_ViewerHDF5 = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.ViewerHDF5", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_pw_8petsc4py_5PETSc_6Viewer_3__call__, /*tp_call*/ + #else + 0, /*tp_call*/ + #endif + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_ViewerHDF5, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_ViewerHDF5, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMDA __pyx_vtable_8petsc4py_5PETSc_DMDA; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMDA(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMDA *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMDA *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMDA; + return o; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_dim(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_3dim_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_dof(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_3dof_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_5sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_proc_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_10proc_sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_boundary_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_13boundary_type_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_7stencil_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_12stencil_type_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil_width(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_13stencil_width_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_ranges(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_6ranges_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_ghost_ranges(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_12ghost_ranges_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_corners(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_7corners_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_4DMDA_ghost_corners(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_4DMDA_13ghost_corners_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMDA[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_create}, + {"duplicate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_3duplicate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_2duplicate}, + {"setDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_5setDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_4setDim}, + {"getDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_7getDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_6getDim}, + {"setDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_9setDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_8setDof}, + {"getDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_11getDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_10getDof}, + {"setSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_13setSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_12setSizes}, + {"getSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_15getSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_14getSizes}, + {"setProcSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_17setProcSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_16setProcSizes}, + {"getProcSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_19getProcSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_18getProcSizes}, + {"setBoundaryType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_21setBoundaryType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_20setBoundaryType}, + {"getBoundaryType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_23getBoundaryType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_22getBoundaryType}, + {"setStencilType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_25setStencilType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_24setStencilType}, + {"getStencilType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_27getStencilType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_26getStencilType}, + {"setStencilWidth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_29setStencilWidth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_28setStencilWidth}, + {"getStencilWidth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_31getStencilWidth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_30getStencilWidth}, + {"setStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_33setStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_32setStencil}, + {"getStencil", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_35getStencil, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_34getStencil}, + {"getRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_37getRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_36getRanges}, + {"getGhostRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_39getGhostRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_38getGhostRanges}, + {"getOwnershipRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_41getOwnershipRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_40getOwnershipRanges}, + {"getCorners", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_43getCorners, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_42getCorners}, + {"getGhostCorners", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_45getGhostCorners, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_44getGhostCorners}, + {"setFieldName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_47setFieldName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_46setFieldName}, + {"getFieldName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_49getFieldName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_48getFieldName}, + {"getVecArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_51getVecArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_50getVecArray}, + {"setUniformCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_53setUniformCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_52setUniformCoordinates}, + {"setCoordinateName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_55setCoordinateName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_54setCoordinateName}, + {"getCoordinateName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_57getCoordinateName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_56getCoordinateName}, + {"createNaturalVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_59createNaturalVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_58createNaturalVec}, + {"globalToNatural", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_61globalToNatural, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_60globalToNatural}, + {"naturalToGlobal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_63naturalToGlobal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_62naturalToGlobal}, + {"getAO", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_65getAO, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_64getAO}, + {"getScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_67getScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_66getScatter}, + {"setRefinementFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_69setRefinementFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_68setRefinementFactor}, + {"getRefinementFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_71getRefinementFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_70getRefinementFactor}, + {"setInterpolationType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_73setInterpolationType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_72setInterpolationType}, + {"getInterpolationType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_75getInterpolationType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_74getInterpolationType}, + {"setElementType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_77setElementType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_76setElementType}, + {"getElementType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_79getElementType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_78getElementType}, + {"getElements", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_4DMDA_81getElements, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_4DMDA_80getElements}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_DMDA[] = { + {(char *)"dim", __pyx_getprop_8petsc4py_5PETSc_4DMDA_dim, 0, (char *)0, 0}, + {(char *)"dof", __pyx_getprop_8petsc4py_5PETSc_4DMDA_dof, 0, (char *)0, 0}, + {(char *)"sizes", __pyx_getprop_8petsc4py_5PETSc_4DMDA_sizes, 0, (char *)0, 0}, + {(char *)"proc_sizes", __pyx_getprop_8petsc4py_5PETSc_4DMDA_proc_sizes, 0, (char *)0, 0}, + {(char *)"boundary_type", __pyx_getprop_8petsc4py_5PETSc_4DMDA_boundary_type, 0, (char *)0, 0}, + {(char *)"stencil", __pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil, 0, (char *)0, 0}, + {(char *)"stencil_type", __pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil_type, 0, (char *)0, 0}, + {(char *)"stencil_width", __pyx_getprop_8petsc4py_5PETSc_4DMDA_stencil_width, 0, (char *)0, 0}, + {(char *)"ranges", __pyx_getprop_8petsc4py_5PETSc_4DMDA_ranges, 0, (char *)0, 0}, + {(char *)"ghost_ranges", __pyx_getprop_8petsc4py_5PETSc_4DMDA_ghost_ranges, 0, (char *)0, 0}, + {(char *)"corners", __pyx_getprop_8petsc4py_5PETSc_4DMDA_corners, 0, (char *)0, 0}, + {(char *)"ghost_corners", __pyx_getprop_8petsc4py_5PETSc_4DMDA_ghost_corners, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMDA = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMDA", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMDA), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMDA, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_DMDA, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMDA, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMPlex __pyx_vtable_8petsc4py_5PETSc_DMPlex; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMPlex(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMPlex *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMPlex *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMPlex; + return o; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMPlex[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_create}, + {"createFromCellList", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_3createFromCellList, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_2createFromCellList}, + {"createBoxMesh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_5createBoxMesh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_4createBoxMesh}, + {"createBoxSurfaceMesh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_7createBoxSurfaceMesh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_6createBoxSurfaceMesh}, + {"createFromFile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_9createFromFile, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_8createFromFile}, + {"createCGNS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_11createCGNS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_10createCGNS}, + {"createCGNSFromFile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_13createCGNSFromFile, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_12createCGNSFromFile}, + {"createExodusFromFile", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_15createExodusFromFile, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_14createExodusFromFile}, + {"createExodus", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_17createExodus, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_16createExodus}, + {"createGmsh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_19createGmsh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_18createGmsh}, + {"createCohesiveSubmesh", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_21createCohesiveSubmesh, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_20createCohesiveSubmesh}, + {"getChart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_23getChart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_22getChart}, + {"setChart", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_25setChart, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_24setChart}, + {"getConeSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_27getConeSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_26getConeSize}, + {"setConeSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_29setConeSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_28setConeSize}, + {"getCone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_31getCone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_30getCone}, + {"setCone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_33setCone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_32setCone}, + {"insertCone", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_35insertCone, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_34insertCone}, + {"insertConeOrientation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_37insertConeOrientation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_36insertConeOrientation}, + {"getConeOrientation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_39getConeOrientation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_38getConeOrientation}, + {"setConeOrientation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_41setConeOrientation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_40setConeOrientation}, + {"setCellType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_43setCellType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_42setCellType}, + {"getCellType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_45getCellType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_44getCellType}, + {"getCellTypeLabel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_47getCellTypeLabel, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_46getCellTypeLabel}, + {"getSupportSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_49getSupportSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_48getSupportSize}, + {"setSupportSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_51setSupportSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_50setSupportSize}, + {"getSupport", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_53getSupport, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_52getSupport}, + {"setSupport", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_55setSupport, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_54setSupport}, + {"getMaxSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_57getMaxSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_56getMaxSizes}, + {"symmetrize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_59symmetrize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_58symmetrize}, + {"stratify", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_61stratify, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_60stratify}, + {"orient", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_63orient, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_62orient}, + {"getCellNumbering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_65getCellNumbering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_64getCellNumbering}, + {"getVertexNumbering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_67getVertexNumbering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_66getVertexNumbering}, + {"createPointNumbering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_69createPointNumbering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_68createPointNumbering}, + {"getDepth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_71getDepth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_70getDepth}, + {"getDepthStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_73getDepthStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_72getDepthStratum}, + {"getHeightStratum", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_75getHeightStratum, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_74getHeightStratum}, + {"getPointDepth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_77getPointDepth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_76getPointDepth}, + {"getPointHeight", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_79getPointHeight, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_78getPointHeight}, + {"getMeet", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_81getMeet, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_80getMeet}, + {"getJoin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_83getJoin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_82getJoin}, + {"getFullJoin", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_85getFullJoin, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_84getFullJoin}, + {"getTransitiveClosure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_87getTransitiveClosure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_86getTransitiveClosure}, + {"vecGetClosure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_89vecGetClosure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_88vecGetClosure}, + {"getVecClosure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_91getVecClosure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_90getVecClosure}, + {"setVecClosure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_93setVecClosure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_92setVecClosure}, + {"setMatClosure", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_95setMatClosure, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_94setMatClosure}, + {"generate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_97generate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_96generate}, + {"setTriangleOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_99setTriangleOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_98setTriangleOptions}, + {"setTetGenOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_101setTetGenOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_100setTetGenOptions}, + {"markBoundaryFaces", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_103markBoundaryFaces, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_102markBoundaryFaces}, + {"labelComplete", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_105labelComplete, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_104labelComplete}, + {"labelCohesiveComplete", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_107labelCohesiveComplete, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_106labelCohesiveComplete}, + {"setAdjacencyUseAnchors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_109setAdjacencyUseAnchors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_108setAdjacencyUseAnchors}, + {"getAdjacencyUseAnchors", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_111getAdjacencyUseAnchors, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_110getAdjacencyUseAnchors}, + {"getAdjacency", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_113getAdjacency, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_112getAdjacency}, + {"setPartitioner", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_115setPartitioner, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_114setPartitioner}, + {"getPartitioner", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_117getPartitioner, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_116getPartitioner}, + {"rebalanceSharedPoints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_119rebalanceSharedPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_118rebalanceSharedPoints}, + {"distribute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_121distribute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_120distribute}, + {"distributeOverlap", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_123distributeOverlap, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_122distributeOverlap}, + {"isDistributed", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_125isDistributed, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_124isDistributed}, + {"isSimplex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_127isSimplex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_126isSimplex}, + {"distributeGetDefault", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_129distributeGetDefault, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_128distributeGetDefault}, + {"distributeSetDefault", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_131distributeSetDefault, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_130distributeSetDefault}, + {"distributionSetName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_133distributionSetName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_132distributionSetName}, + {"distributionGetName", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_135distributionGetName, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_134distributionGetName}, + {"isSimplex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_137isSimplex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_136isSimplex}, + {"interpolate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_139interpolate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_138interpolate}, + {"uninterpolate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_141uninterpolate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_140uninterpolate}, + {"distributeField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_143distributeField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_142distributeField}, + {"getMinRadius", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_145getMinRadius, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_144getMinRadius}, + {"createCoarsePointIS", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_147createCoarsePointIS, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_146createCoarsePointIS}, + {"createSection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_149createSection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_148createSection}, + {"getPointLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_151getPointLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_150getPointLocal}, + {"getPointLocalField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_153getPointLocalField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_152getPointLocalField}, + {"getPointGlobal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_155getPointGlobal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_154getPointGlobal}, + {"getPointGlobalField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_157getPointGlobalField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_156getPointGlobalField}, + {"createClosureIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_159createClosureIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_158createClosureIndex}, + {"setRefinementUniform", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_161setRefinementUniform, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_160setRefinementUniform}, + {"getRefinementUniform", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_163getRefinementUniform, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_162getRefinementUniform}, + {"setRefinementLimit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_165setRefinementLimit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_164setRefinementLimit}, + {"getRefinementLimit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_167getRefinementLimit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_166getRefinementLimit}, + {"getOrdering", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_169getOrdering, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_168getOrdering}, + {"permute", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_171permute, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_170permute}, + {"reorderGetDefault", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_173reorderGetDefault, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_172reorderGetDefault}, + {"reorderSetDefault", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_175reorderSetDefault, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_174reorderSetDefault}, + {"computeCellGeometryFVM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_177computeCellGeometryFVM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_176computeCellGeometryFVM}, + {"constructGhostCells", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_179constructGhostCells, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_178constructGhostCells}, + {"metricSetFromOptions", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_181metricSetFromOptions, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_180metricSetFromOptions}, + {"metricSetUniform", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_183metricSetUniform, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_182metricSetUniform}, + {"metricIsUniform", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_185metricIsUniform, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_184metricIsUniform}, + {"metricSetIsotropic", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_187metricSetIsotropic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_186metricSetIsotropic}, + {"metricIsIsotropic", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_189metricIsIsotropic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_188metricIsIsotropic}, + {"metricSetRestrictAnisotropyFirst", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_191metricSetRestrictAnisotropyFirst, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_190metricSetRestrictAnisotropyFirst}, + {"metricRestrictAnisotropyFirst", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_193metricRestrictAnisotropyFirst, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_192metricRestrictAnisotropyFirst}, + {"metricSetNoInsertion", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_195metricSetNoInsertion, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_194metricSetNoInsertion}, + {"metricNoInsertion", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_197metricNoInsertion, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_196metricNoInsertion}, + {"metricSetNoSwapping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_199metricSetNoSwapping, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_198metricSetNoSwapping}, + {"metricNoSwapping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_201metricNoSwapping, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_200metricNoSwapping}, + {"metricSetNoMovement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_203metricSetNoMovement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_202metricSetNoMovement}, + {"metricNoMovement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_205metricNoMovement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_204metricNoMovement}, + {"metricSetNoSurf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_207metricSetNoSurf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_206metricSetNoSurf}, + {"metricNoSurf", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_209metricNoSurf, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_208metricNoSurf}, + {"metricSetVerbosity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_211metricSetVerbosity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_210metricSetVerbosity}, + {"metricGetVerbosity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_213metricGetVerbosity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_212metricGetVerbosity}, + {"metricSetNumIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_215metricSetNumIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_214metricSetNumIterations}, + {"metricGetNumIterations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_217metricGetNumIterations, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_216metricGetNumIterations}, + {"metricSetMinimumMagnitude", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_219metricSetMinimumMagnitude, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_218metricSetMinimumMagnitude}, + {"metricGetMinimumMagnitude", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_221metricGetMinimumMagnitude, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_220metricGetMinimumMagnitude}, + {"metricSetMaximumMagnitude", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_223metricSetMaximumMagnitude, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_222metricSetMaximumMagnitude}, + {"metricGetMaximumMagnitude", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_225metricGetMaximumMagnitude, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_224metricGetMaximumMagnitude}, + {"metricSetMaximumAnisotropy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_227metricSetMaximumAnisotropy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_226metricSetMaximumAnisotropy}, + {"metricGetMaximumAnisotropy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_229metricGetMaximumAnisotropy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_228metricGetMaximumAnisotropy}, + {"metricSetTargetComplexity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_231metricSetTargetComplexity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_230metricSetTargetComplexity}, + {"metricGetTargetComplexity", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_233metricGetTargetComplexity, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_232metricGetTargetComplexity}, + {"metricSetNormalizationOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_235metricSetNormalizationOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_234metricSetNormalizationOrder}, + {"metricGetNormalizationOrder", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_237metricGetNormalizationOrder, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_236metricGetNormalizationOrder}, + {"metricSetGradationFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_239metricSetGradationFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_238metricSetGradationFactor}, + {"metricGetGradationFactor", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_241metricGetGradationFactor, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_240metricGetGradationFactor}, + {"metricSetHausdorffNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_243metricSetHausdorffNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_242metricSetHausdorffNumber}, + {"metricGetHausdorffNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_245metricGetHausdorffNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_244metricGetHausdorffNumber}, + {"metricCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_247metricCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_246metricCreate}, + {"metricCreateUniform", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_249metricCreateUniform, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_248metricCreateUniform}, + {"metricCreateIsotropic", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_251metricCreateIsotropic, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_250metricCreateIsotropic}, + {"metricDeterminantCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_253metricDeterminantCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_252metricDeterminantCreate}, + {"metricEnforceSPD", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_255metricEnforceSPD, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_254metricEnforceSPD}, + {"metricNormalize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_257metricNormalize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_256metricNormalize}, + {"metricAverage2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_259metricAverage2, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_258metricAverage2}, + {"metricAverage3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_261metricAverage3, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_260metricAverage3}, + {"metricIntersection2", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_263metricIntersection2, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_262metricIntersection2}, + {"metricIntersection3", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_265metricIntersection3, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_264metricIntersection3}, + {"computeGradientClementInterpolant", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_267computeGradientClementInterpolant, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_266computeGradientClementInterpolant}, + {"topologyView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_269topologyView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_268topologyView}, + {"coordinatesView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_271coordinatesView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_270coordinatesView}, + {"labelsView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_273labelsView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_272labelsView}, + {"sectionView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_275sectionView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_274sectionView}, + {"globalVectorView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_277globalVectorView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_276globalVectorView}, + {"localVectorView", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_279localVectorView, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_278localVectorView}, + {"topologyLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_281topologyLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_280topologyLoad}, + {"coordinatesLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_283coordinatesLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_282coordinatesLoad}, + {"labelsLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_285labelsLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_284labelsLoad}, + {"sectionLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_287sectionLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_286sectionLoad}, + {"globalVectorLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_289globalVectorLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_288globalVectorLoad}, + {"localVectorLoad", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMPlex_291localVectorLoad, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMPlex_290localVectorLoad}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMPlex = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMPlex", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMPlex), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMPlex, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMPlex, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMStag __pyx_vtable_8petsc4py_5PETSc_DMStag; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMStag(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMStag *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMStag *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMStag; + return o; +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_dim(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_3dim_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_dofs(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_4dofs_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_entries_per_element(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_19entries_per_element_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_global_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_12global_sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_local_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_11local_sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_proc_sizes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_10proc_sizes_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_boundary_types(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_14boundary_types_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_stencil_type(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_12stencil_type_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_stencil_width(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_13stencil_width_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_corners(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_7corners_1__get__(o); +} + +static PyObject *__pyx_getprop_8petsc4py_5PETSc_6DMStag_ghost_corners(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_8petsc4py_5PETSc_6DMStag_13ghost_corners_1__get__(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMStag[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_create}, + {"setStencilWidth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_3setStencilWidth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_2setStencilWidth}, + {"setStencilType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_5setStencilType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_4setStencilType}, + {"setBoundaryTypes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_7setBoundaryTypes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_6setBoundaryTypes}, + {"setDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_9setDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_8setDof}, + {"setGlobalSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_11setGlobalSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_10setGlobalSizes}, + {"setProcSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_13setProcSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_12setProcSizes}, + {"setOwnershipRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_15setOwnershipRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_14setOwnershipRanges}, + {"getDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_17getDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_16getDim}, + {"getEntriesPerElement", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_19getEntriesPerElement, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_18getEntriesPerElement}, + {"getStencilWidth", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_21getStencilWidth, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_20getStencilWidth}, + {"getDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_23getDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_22getDof}, + {"getCorners", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_25getCorners, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_24getCorners}, + {"getGhostCorners", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_27getGhostCorners, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_26getGhostCorners}, + {"getLocalSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_29getLocalSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_28getLocalSizes}, + {"getGlobalSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_31getGlobalSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_30getGlobalSizes}, + {"getProcSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_33getProcSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_32getProcSizes}, + {"getStencilType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_35getStencilType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_34getStencilType}, + {"getOwnershipRanges", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_37getOwnershipRanges, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_36getOwnershipRanges}, + {"getBoundaryTypes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_39getBoundaryTypes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_38getBoundaryTypes}, + {"getIsFirstRank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_41getIsFirstRank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_40getIsFirstRank}, + {"getIsLastRank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_43getIsLastRank, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_42getIsLastRank}, + {"setUniformCoordinatesExplicit", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_45setUniformCoordinatesExplicit, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_44setUniformCoordinatesExplicit}, + {"setUniformCoordinatesProduct", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_47setUniformCoordinatesProduct, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_46setUniformCoordinatesProduct}, + {"setUniformCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_49setUniformCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_48setUniformCoordinates}, + {"setCoordinateDMType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_51setCoordinateDMType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_50setCoordinateDMType}, + {"getLocationSlot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_53getLocationSlot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_52getLocationSlot}, + {"getProductCoordinateLocationSlot", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_55getProductCoordinateLocationSlot, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_54getProductCoordinateLocationSlot}, + {"getLocationDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_57getLocationDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_56getLocationDof}, + {"migrateVec", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_59migrateVec, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_58migrateVec}, + {"createCompatibleDMStag", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_61createCompatibleDMStag, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_60createCompatibleDMStag}, + {"VecSplitToDMDA", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_63VecSplitToDMDA, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_62VecSplitToDMDA}, + {"getVecArray", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_65getVecArray, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_64getVecArray}, + {"get1dCoordinatecArrays", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_6DMStag_67get1dCoordinatecArrays, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_6DMStag_66get1dCoordinatecArrays}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_8petsc4py_5PETSc_DMStag[] = { + {(char *)"dim", __pyx_getprop_8petsc4py_5PETSc_6DMStag_dim, 0, (char *)0, 0}, + {(char *)"dofs", __pyx_getprop_8petsc4py_5PETSc_6DMStag_dofs, 0, (char *)0, 0}, + {(char *)"entries_per_element", __pyx_getprop_8petsc4py_5PETSc_6DMStag_entries_per_element, 0, (char *)0, 0}, + {(char *)"global_sizes", __pyx_getprop_8petsc4py_5PETSc_6DMStag_global_sizes, 0, (char *)0, 0}, + {(char *)"local_sizes", __pyx_getprop_8petsc4py_5PETSc_6DMStag_local_sizes, 0, (char *)0, 0}, + {(char *)"proc_sizes", __pyx_getprop_8petsc4py_5PETSc_6DMStag_proc_sizes, 0, (char *)0, 0}, + {(char *)"boundary_types", __pyx_getprop_8petsc4py_5PETSc_6DMStag_boundary_types, 0, (char *)0, 0}, + {(char *)"stencil_type", __pyx_getprop_8petsc4py_5PETSc_6DMStag_stencil_type, 0, (char *)0, 0}, + {(char *)"stencil_width", __pyx_getprop_8petsc4py_5PETSc_6DMStag_stencil_width, 0, (char *)0, 0}, + {(char *)"corners", __pyx_getprop_8petsc4py_5PETSc_6DMStag_corners, 0, (char *)0, 0}, + {(char *)"ghost_corners", __pyx_getprop_8petsc4py_5PETSc_6DMStag_ghost_corners, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMStag = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMStag", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMStag), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMStag, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_8petsc4py_5PETSc_DMStag, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMStag, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMComposite __pyx_vtable_8petsc4py_5PETSc_DMComposite; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMComposite(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMComposite *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMComposite *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMComposite; + return o; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMComposite[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_create}, + {"addDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_3addDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_2addDM}, + {"getNumber", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_5getNumber, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_4getNumber}, + {"getEntries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_7getEntries, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_6getEntries}, + {"scatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_9scatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_8scatter}, + {"gather", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_11gather, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_10gather}, + {"getGlobalISs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_13getGlobalISs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_12getGlobalISs}, + {"getLocalISs", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_15getLocalISs, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_14getLocalISs}, + {"getLGMaps", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_17getLGMaps, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_16getLGMaps}, + {"getAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_11DMComposite_19getAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_11DMComposite_18getAccess}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMComposite = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMComposite", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMComposite), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMComposite, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMComposite, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMShell __pyx_vtable_8petsc4py_5PETSc_DMShell; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMShell(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMShell *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMShell *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMShell; + return o; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMShell[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_create}, + {"setMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_3setMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_2setMatrix}, + {"setGlobalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_5setGlobalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_4setGlobalVector}, + {"setLocalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_7setLocalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_6setLocalVector}, + {"setCreateGlobalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_9setCreateGlobalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_8setCreateGlobalVector}, + {"setCreateLocalVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_11setCreateLocalVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_10setCreateLocalVector}, + {"setGlobalToLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_13setGlobalToLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_12setGlobalToLocal}, + {"setGlobalToLocalVecScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_15setGlobalToLocalVecScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_14setGlobalToLocalVecScatter}, + {"setLocalToGlobal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_17setLocalToGlobal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_16setLocalToGlobal}, + {"setLocalToGlobalVecScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_19setLocalToGlobalVecScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_18setLocalToGlobalVecScatter}, + {"setLocalToLocal", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_21setLocalToLocal, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_20setLocalToLocal}, + {"setLocalToLocalVecScatter", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_23setLocalToLocalVecScatter, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_22setLocalToLocalVecScatter}, + {"setCreateMatrix", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_25setCreateMatrix, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_24setCreateMatrix}, + {"setCoarsen", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_27setCoarsen, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_26setCoarsen}, + {"setRefine", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_29setRefine, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_28setRefine}, + {"setCreateInterpolation", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_31setCreateInterpolation, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_30setCreateInterpolation}, + {"setCreateInjection", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_33setCreateInjection, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_32setCreateInjection}, + {"setCreateRestriction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_35setCreateRestriction, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_34setCreateRestriction}, + {"setCreateFieldDecomposition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_37setCreateFieldDecomposition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_36setCreateFieldDecomposition}, + {"setCreateDomainDecomposition", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_39setCreateDomainDecomposition, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_38setCreateDomainDecomposition}, + {"setCreateDomainDecompositionScatters", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_41setCreateDomainDecompositionScatters, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_40setCreateDomainDecompositionScatters}, + {"setCreateSubDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMShell_43setCreateSubDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMShell_42setCreateSubDM}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMShell = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMShell", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMShell), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMShell, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMShell, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc_DMSwarm __pyx_vtable_8petsc4py_5PETSc_DMSwarm; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMSwarm(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc_DM(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc_DMSwarm *)o); + p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc_Object*)__pyx_vtabptr_8petsc4py_5PETSc_DMSwarm; + return o; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMSwarm[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_1create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_create}, + {"createGlobalVectorFromField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_3createGlobalVectorFromField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_2createGlobalVectorFromField}, + {"destroyGlobalVectorFromField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_5destroyGlobalVectorFromField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_4destroyGlobalVectorFromField}, + {"createLocalVectorFromField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_7createLocalVectorFromField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_6createLocalVectorFromField}, + {"destroyLocalVectorFromField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_9destroyLocalVectorFromField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_8destroyLocalVectorFromField}, + {"initializeFieldRegister", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_11initializeFieldRegister, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_10initializeFieldRegister}, + {"finalizeFieldRegister", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_13finalizeFieldRegister, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_12finalizeFieldRegister}, + {"setLocalSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_15setLocalSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_14setLocalSizes}, + {"registerField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_17registerField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_16registerField}, + {"getField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_19getField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_18getField}, + {"restoreField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_21restoreField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_20restoreField}, + {"vectorDefineField", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_23vectorDefineField, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_22vectorDefineField}, + {"addPoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_25addPoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_24addPoint}, + {"addNPoints", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_27addNPoints, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_26addNPoints}, + {"removePoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_29removePoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_28removePoint}, + {"removePointAtIndex", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_31removePointAtIndex, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_30removePointAtIndex}, + {"copyPoint", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_33copyPoint, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_32copyPoint}, + {"getLocalSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_35getLocalSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_34getLocalSize}, + {"getSize", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_37getSize, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_36getSize}, + {"migrate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_39migrate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_38migrate}, + {"collectViewCreate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_41collectViewCreate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_40collectViewCreate}, + {"collectViewDestroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_43collectViewDestroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_42collectViewDestroy}, + {"setCellDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_45setCellDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_44setCellDM}, + {"getCellDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_47getCellDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_46getCellDM}, + {"setType", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_49setType, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_48setType}, + {"setPointsUniformCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_51setPointsUniformCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_50setPointsUniformCoordinates}, + {"setPointCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_53setPointCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_52setPointCoordinates}, + {"insertPointUsingCellDM", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_55insertPointUsingCellDM, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_54insertPointUsingCellDM}, + {"setPointCoordinatesCellwise", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_57setPointCoordinatesCellwise, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_56setPointCoordinatesCellwise}, + {"viewFieldsXDMF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_59viewFieldsXDMF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_58viewFieldsXDMF}, + {"viewXDMF", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_61viewXDMF, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_60viewXDMF}, + {"sortGetAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_63sortGetAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_62sortGetAccess}, + {"sortRestoreAccess", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_65sortRestoreAccess, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_64sortRestoreAccess}, + {"sortGetPointsPerCell", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_67sortGetPointsPerCell, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_66sortGetPointsPerCell}, + {"sortGetNumberOfPointsPerCell", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_69sortGetNumberOfPointsPerCell, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_68sortGetNumberOfPointsPerCell}, + {"sortGetIsValid", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_71sortGetIsValid, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_70sortGetIsValid}, + {"sortGetSizes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_73sortGetSizes, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_72sortGetSizes}, + {"projectFields", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_7DMSwarm_75projectFields, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_7DMSwarm_74projectFields}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMSwarm = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMSwarm", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_Object, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc_Object, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc_Object, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMSwarm, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMSwarm, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc_DMInterpolation(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + if (unlikely(__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc_DMInterpolation(PyObject *o) { + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_pw_8petsc4py_5PETSc_15DMInterpolation_3__dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + (*Py_TYPE(o)->tp_free)(o); +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc_DMInterpolation[] = { + {"create", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_5create, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_4create}, + {"destroy", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_7destroy, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_6destroy}, + {"evaluate", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_9evaluate, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_8evaluate}, + {"getCoordinates", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_11getCoordinates, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_10getCoordinates}, + {"getDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_13getDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_12getDim}, + {"getDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_15getDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_14getDof}, + {"setDim", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_17setDim, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_16setDim}, + {"setDof", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_19setDof, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_18setDof}, + {"setUp", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_21setUp, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_20setUp}, + {"getVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_23getVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_22getVector}, + {"restoreVector", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8petsc4py_5PETSc_15DMInterpolation_25restoreVector, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8petsc4py_5PETSc_15DMInterpolation_24restoreVector}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc_DMInterpolation = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.DMInterpolation", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc_DMInterpolation), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc_DMInterpolation, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc_DMInterpolation, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc_DMInterpolation, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj __pyx_vtable_8petsc4py_5PETSc__PyObj; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyObj(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyObj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyObj *)o); + p->__pyx_vtab = __pyx_vtabptr_8petsc4py_5PETSc__PyObj; + p->self = Py_None; Py_INCREF(Py_None); + p->name = ((PyObject*)Py_None); Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc__PyObj *p = (struct __pyx_obj_8petsc4py_5PETSc__PyObj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->self); + Py_CLEAR(p->name); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc__PyObj(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc__PyObj *p = (struct __pyx_obj_8petsc4py_5PETSc__PyObj *)o; + if (p->self) { + e = (*v)(p->self, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc__PyObj(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc__PyObj *p = (struct __pyx_obj_8petsc4py_5PETSc__PyObj *)o; + tmp = ((PyObject*)p->self); + p->self = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyObject *__pyx_tp_getattro_8petsc4py_5PETSc__PyObj(PyObject *o, PyObject *n) { + PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); + if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + v = __pyx_pw_8petsc4py_5PETSc_6_PyObj_1__getattr__(o, n); + } + return v; +} + +static PyMethodDef __pyx_methods_8petsc4py_5PETSc__PyObj[] = { + {"__getattr__", (PyCFunction)__pyx_pw_8petsc4py_5PETSc_6_PyObj_1__getattr__, METH_O|METH_COEXIST, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyObj = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyObj", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyObj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + __pyx_tp_getattro_8petsc4py_5PETSc__PyObj, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_8petsc4py_5PETSc__PyObj, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyObj, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyMat __pyx_vtable_8petsc4py_5PETSc__PyMat; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyMat(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyMat *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyMat *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PyMat; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyMat = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyMat", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyMat), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyMat, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyPC __pyx_vtable_8petsc4py_5PETSc__PyPC; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyPC(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyPC *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyPC *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PyPC; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyPC = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyPC", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyPC), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyPC, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyKSP __pyx_vtable_8petsc4py_5PETSc__PyKSP; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyKSP(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyKSP *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyKSP *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PyKSP; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyKSP = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyKSP", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyKSP), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyKSP, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PySNES __pyx_vtable_8petsc4py_5PETSc__PySNES; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PySNES(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PySNES *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PySNES *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PySNES; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PySNES = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PySNES", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PySNES), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PySNES, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTS __pyx_vtable_8petsc4py_5PETSc__PyTS; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyTS(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyTS *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyTS *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PyTS; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyTS = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyTS", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyTS), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyTS, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_8petsc4py_5PETSc__PyTao __pyx_vtable_8petsc4py_5PETSc__PyTao; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc__PyTao(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_obj_8petsc4py_5PETSc__PyTao *p; + PyObject *o = __pyx_tp_new_8petsc4py_5PETSc__PyObj(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_obj_8petsc4py_5PETSc__PyTao *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8petsc4py_5PETSc__PyObj*)__pyx_vtabptr_8petsc4py_5PETSc__PyTao; + return o; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc__PyTao = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._PyTao", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc__PyTao), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc__PyObj, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc__PyObj, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc__PyObj, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc__PyTao, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator[8]; +static int __pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator = 0; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator)))) { + o = (PyObject*)__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator[--__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator]; + memset(o, 0, sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator)); + (void) PyObject_INIT(o, t); + PyObject_GC_Track(o); + } else { + o = (*t->tp_alloc)(t, 0); + if (unlikely(!o)) return 0; + } + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)o; + PyObject_GC_UnTrack(o); + Py_CLEAR(p->__pyx_v_cls); + Py_CLEAR(p->__pyx_v_klass); + Py_CLEAR(p->__pyx_v_name); + if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator)))) { + __pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator[__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator++] = ((struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)o); + } else { + (*Py_TYPE(o)->tp_free)(o); + } +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)o; + if (p->__pyx_v_cls) { + e = (*v)(((PyObject *)p->__pyx_v_cls), a); if (e) return e; + } + if (p->__pyx_v_klass) { + e = (*v)(p->__pyx_v_klass, a); if (e) return e; + } + if (p->__pyx_v_name) { + e = (*v)(p->__pyx_v_name, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)o; + tmp = ((PyObject*)p->__pyx_v_cls); + p->__pyx_v_cls = ((PyTypeObject*)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->__pyx_v_klass); + p->__pyx_v_klass = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->__pyx_v_name); + p->__pyx_v_name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.__pyx_scope_struct__EventDecorator", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct_1_decorator[8]; +static int __pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator = 0; + +static PyObject *__pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + PyObject *o; + if (CYTHON_COMPILING_IN_CPYTHON && likely((__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator > 0) & (t->tp_basicsize == sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator)))) { + o = (PyObject*)__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct_1_decorator[--__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator]; + memset(o, 0, sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator)); + (void) PyObject_INIT(o, t); + PyObject_GC_Track(o); + } else { + o = (*t->tp_alloc)(t, 0); + if (unlikely(!o)) return 0; + } + return o; +} + +static void __pyx_tp_dealloc_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(PyObject *o) { + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)o; + PyObject_GC_UnTrack(o); + Py_CLEAR(p->__pyx_outer_scope); + Py_CLEAR(p->__pyx_v_func); + if (CYTHON_COMPILING_IN_CPYTHON && ((__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator < 8) & (Py_TYPE(o)->tp_basicsize == sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator)))) { + __pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct_1_decorator[__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator++] = ((struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)o); + } else { + (*Py_TYPE(o)->tp_free)(o); + } +} + +static int __pyx_tp_traverse_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)o; + if (p->__pyx_outer_scope) { + e = (*v)(((PyObject *)p->__pyx_outer_scope), a); if (e) return e; + } + if (p->__pyx_v_func) { + e = (*v)(p->__pyx_v_func, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_8petsc4py_5PETSc___pyx_scope_struct_1_decorator(PyObject *o) { + PyObject* tmp; + struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *p = (struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator *)o; + tmp = ((PyObject*)p->__pyx_outer_scope); + p->__pyx_outer_scope = ((struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator *)Py_None); Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->__pyx_v_func); + p->__pyx_v_func = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyTypeObject __pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.__pyx_scope_struct_1_decorator", /*tp_name*/ + sizeof(struct __pyx_obj_8petsc4py_5PETSc___pyx_scope_struct_1_decorator), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_8petsc4py_5PETSc___pyx_scope_struct_1_decorator, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_8petsc4py_5PETSc___pyx_scope_struct_1_decorator, /*tp_traverse*/ + __pyx_tp_clear_8petsc4py_5PETSc___pyx_scope_struct_1_decorator, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + 0, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_8petsc4py_5PETSc___pyx_scope_struct_1_decorator, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_array __pyx_vtable_array; + +static PyObject *__pyx_tp_new_array(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_array_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_array_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_array; + p->mode = ((PyObject*)Py_None); Py_INCREF(Py_None); + p->_format = ((PyObject*)Py_None); Py_INCREF(Py_None); + if (unlikely(__pyx_array___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_array(PyObject *o) { + struct __pyx_array_obj *p = (struct __pyx_array_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_array___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->mode); + Py_CLEAR(p->_format); + (*Py_TYPE(o)->tp_free)(o); +} +static PyObject *__pyx_sq_item_array(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_array(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_array___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_tp_getattro_array(PyObject *o, PyObject *n) { + PyObject *v = __Pyx_PyObject_GenericGetAttr(o, n); + if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + v = __pyx_array___getattr__(o, n); + } + return v; +} + +static PyObject *__pyx_getprop___pyx_array_memview(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_5array_7memview_1__get__(o); +} + +static PyMethodDef __pyx_methods_array[] = { + {"__getattr__", (PyCFunction)__pyx_array___getattr__, METH_O|METH_COEXIST, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_array_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_array_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_array[] = { + {(char *)"memview", __pyx_getprop___pyx_array_memview, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_array = { + __pyx_array___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_array, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_array = { + __pyx_array___len__, /*mp_length*/ + __pyx_array___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_array, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_array = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_array_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_array = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.array", /*tp_name*/ + sizeof(struct __pyx_array_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_array, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + 0, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_array, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_array, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + __pyx_tp_getattro_array, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_array, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ + 0, /*tp_doc*/ + 0, /*tp_traverse*/ + 0, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_array, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_array, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_array, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyObject *__pyx_tp_new_Enum(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { + struct __pyx_MemviewEnum_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_MemviewEnum_obj *)o); + p->name = Py_None; Py_INCREF(Py_None); + return o; +} + +static void __pyx_tp_dealloc_Enum(PyObject *o) { + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + Py_CLEAR(p->name); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_Enum(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + if (p->name) { + e = (*v)(p->name, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_Enum(PyObject *o) { + PyObject* tmp; + struct __pyx_MemviewEnum_obj *p = (struct __pyx_MemviewEnum_obj *)o; + tmp = ((PyObject*)p->name); + p->name = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + return 0; +} + +static PyMethodDef __pyx_methods_Enum[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_MemviewEnum_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_MemviewEnum = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.Enum", /*tp_name*/ + sizeof(struct __pyx_MemviewEnum_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_Enum, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_MemviewEnum___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + 0, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_Enum, /*tp_traverse*/ + __pyx_tp_clear_Enum, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_Enum, /*tp_methods*/ + 0, /*tp_members*/ + 0, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + __pyx_MemviewEnum___init__, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_Enum, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct_memoryview __pyx_vtable_memoryview; + +static PyObject *__pyx_tp_new_memoryview(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryview_obj *p; + PyObject *o; + if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { + o = (*t->tp_alloc)(t, 0); + } else { + o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); + } + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryview_obj *)o); + p->__pyx_vtab = __pyx_vtabptr_memoryview; + p->obj = Py_None; Py_INCREF(Py_None); + p->_size = Py_None; Py_INCREF(Py_None); + p->_array_interface = Py_None; Py_INCREF(Py_None); + p->view.obj = NULL; + if (unlikely(__pyx_memoryview___cinit__(o, a, k) < 0)) goto bad; + return o; + bad: + Py_DECREF(o); o = 0; + return NULL; +} + +static void __pyx_tp_dealloc_memoryview(PyObject *o) { + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_memoryview___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->obj); + Py_CLEAR(p->_size); + Py_CLEAR(p->_array_interface); + (*Py_TYPE(o)->tp_free)(o); +} + +static int __pyx_tp_traverse_memoryview(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + if (p->obj) { + e = (*v)(p->obj, a); if (e) return e; + } + if (p->_size) { + e = (*v)(p->_size, a); if (e) return e; + } + if (p->_array_interface) { + e = (*v)(p->_array_interface, a); if (e) return e; + } + if (p->view.obj) { + e = (*v)(p->view.obj, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear_memoryview(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryview_obj *p = (struct __pyx_memoryview_obj *)o; + tmp = ((PyObject*)p->obj); + p->obj = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_size); + p->_size = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + tmp = ((PyObject*)p->_array_interface); + p->_array_interface = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + Py_CLEAR(p->view.obj); + return 0; +} +static PyObject *__pyx_sq_item_memoryview(PyObject *o, Py_ssize_t i) { + PyObject *r; + PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; + r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); + Py_DECREF(x); + return r; +} + +static int __pyx_mp_ass_subscript_memoryview(PyObject *o, PyObject *i, PyObject *v) { + if (v) { + return __pyx_memoryview___setitem__(o, i, v); + } + else { + PyErr_Format(PyExc_NotImplementedError, + "Subscript deletion not supported by %.200s", Py_TYPE(o)->tp_name); + return -1; + } +} + +static PyObject *__pyx_getprop___pyx_memoryview_T(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_1T_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4base_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_shape(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_5shape_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_strides(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_7strides_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_suboffsets(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_10suboffsets_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_ndim(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4ndim_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_itemsize(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_8itemsize_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_nbytes(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_6nbytes_1__get__(o); +} + +static PyObject *__pyx_getprop___pyx_memoryview_size(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_10memoryview_4size_1__get__(o); +} + +static PyMethodDef __pyx_methods_memoryview[] = { + {"is_c_contig", (PyCFunction)__pyx_memoryview_is_c_contig, METH_NOARGS, 0}, + {"is_f_contig", (PyCFunction)__pyx_memoryview_is_f_contig, METH_NOARGS, 0}, + {"copy", (PyCFunction)__pyx_memoryview_copy, METH_NOARGS, 0}, + {"copy_fortran", (PyCFunction)__pyx_memoryview_copy_fortran, METH_NOARGS, 0}, + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryview_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets_memoryview[] = { + {(char *)"T", __pyx_getprop___pyx_memoryview_T, 0, (char *)0, 0}, + {(char *)"base", __pyx_getprop___pyx_memoryview_base, 0, (char *)0, 0}, + {(char *)"shape", __pyx_getprop___pyx_memoryview_shape, 0, (char *)0, 0}, + {(char *)"strides", __pyx_getprop___pyx_memoryview_strides, 0, (char *)0, 0}, + {(char *)"suboffsets", __pyx_getprop___pyx_memoryview_suboffsets, 0, (char *)0, 0}, + {(char *)"ndim", __pyx_getprop___pyx_memoryview_ndim, 0, (char *)0, 0}, + {(char *)"itemsize", __pyx_getprop___pyx_memoryview_itemsize, 0, (char *)0, 0}, + {(char *)"nbytes", __pyx_getprop___pyx_memoryview_nbytes, 0, (char *)0, 0}, + {(char *)"size", __pyx_getprop___pyx_memoryview_size, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PySequenceMethods __pyx_tp_as_sequence_memoryview = { + __pyx_memoryview___len__, /*sq_length*/ + 0, /*sq_concat*/ + 0, /*sq_repeat*/ + __pyx_sq_item_memoryview, /*sq_item*/ + 0, /*sq_slice*/ + 0, /*sq_ass_item*/ + 0, /*sq_ass_slice*/ + 0, /*sq_contains*/ + 0, /*sq_inplace_concat*/ + 0, /*sq_inplace_repeat*/ +}; + +static PyMappingMethods __pyx_tp_as_mapping_memoryview = { + __pyx_memoryview___len__, /*mp_length*/ + __pyx_memoryview___getitem__, /*mp_subscript*/ + __pyx_mp_ass_subscript_memoryview, /*mp_ass_subscript*/ +}; + +static PyBufferProcs __pyx_tp_as_buffer_memoryview = { + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getreadbuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getwritebuffer*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getsegcount*/ + #endif + #if PY_MAJOR_VERSION < 3 + 0, /*bf_getcharbuffer*/ + #endif + __pyx_memoryview_getbuffer, /*bf_getbuffer*/ + 0, /*bf_releasebuffer*/ +}; + +static PyTypeObject __pyx_type___pyx_memoryview = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc.memoryview", /*tp_name*/ + sizeof(struct __pyx_memoryview_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc_memoryview, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + __pyx_memoryview___repr__, /*tp_repr*/ + 0, /*tp_as_number*/ + &__pyx_tp_as_sequence_memoryview, /*tp_as_sequence*/ + &__pyx_tp_as_mapping_memoryview, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + __pyx_memoryview___str__, /*tp_str*/ + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + &__pyx_tp_as_buffer_memoryview, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + 0, /*tp_doc*/ + __pyx_tp_traverse_memoryview, /*tp_traverse*/ + __pyx_tp_clear_memoryview, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods_memoryview, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets_memoryview, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new_memoryview, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; +static struct __pyx_vtabstruct__memoryviewslice __pyx_vtable__memoryviewslice; + +static PyObject *__pyx_tp_new__memoryviewslice(PyTypeObject *t, PyObject *a, PyObject *k) { + struct __pyx_memoryviewslice_obj *p; + PyObject *o = __pyx_tp_new_memoryview(t, a, k); + if (unlikely(!o)) return 0; + p = ((struct __pyx_memoryviewslice_obj *)o); + p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_memoryview*)__pyx_vtabptr__memoryviewslice; + p->from_object = Py_None; Py_INCREF(Py_None); + p->from_slice.memview = NULL; + return o; +} + +static void __pyx_tp_dealloc__memoryviewslice(PyObject *o) { + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + #if CYTHON_USE_TP_FINALIZE + if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !__Pyx_PyObject_GC_IsFinalized(o)) { + if (PyObject_CallFinalizerFromDealloc(o)) return; + } + #endif + PyObject_GC_UnTrack(o); + { + PyObject *etype, *eval, *etb; + PyErr_Fetch(&etype, &eval, &etb); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); + __pyx_memoryviewslice___dealloc__(o); + __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); + PyErr_Restore(etype, eval, etb); + } + Py_CLEAR(p->from_object); + PyObject_GC_Track(o); + __pyx_tp_dealloc_memoryview(o); +} + +static int __pyx_tp_traverse__memoryviewslice(PyObject *o, visitproc v, void *a) { + int e; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + e = __pyx_tp_traverse_memoryview(o, v, a); if (e) return e; + if (p->from_object) { + e = (*v)(p->from_object, a); if (e) return e; + } + return 0; +} + +static int __pyx_tp_clear__memoryviewslice(PyObject *o) { + PyObject* tmp; + struct __pyx_memoryviewslice_obj *p = (struct __pyx_memoryviewslice_obj *)o; + __pyx_tp_clear_memoryview(o); + tmp = ((PyObject*)p->from_object); + p->from_object = Py_None; Py_INCREF(Py_None); + Py_XDECREF(tmp); + __PYX_XDEC_MEMVIEW(&p->from_slice, 1); + return 0; +} + +static PyObject *__pyx_getprop___pyx_memoryviewslice_base(PyObject *o, CYTHON_UNUSED void *x) { + return __pyx_pw_15View_dot_MemoryView_16_memoryviewslice_4base_1__get__(o); +} + +static PyMethodDef __pyx_methods__memoryviewslice[] = { + {"__reduce_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_1__reduce_cython__, METH_NOARGS, 0}, + {"__setstate_cython__", (PyCFunction)__pyx_pw___pyx_memoryviewslice_3__setstate_cython__, METH_O, 0}, + {0, 0, 0, 0} +}; + +static struct PyGetSetDef __pyx_getsets__memoryviewslice[] = { + {(char *)"base", __pyx_getprop___pyx_memoryviewslice_base, 0, (char *)0, 0}, + {0, 0, 0, 0, 0} +}; + +static PyTypeObject __pyx_type___pyx_memoryviewslice = { + PyVarObject_HEAD_INIT(0, 0) + "petsc4py.PETSc._memoryviewslice", /*tp_name*/ + sizeof(struct __pyx_memoryviewslice_obj), /*tp_basicsize*/ + 0, /*tp_itemsize*/ + __pyx_tp_dealloc__memoryviewslice, /*tp_dealloc*/ + #if PY_VERSION_HEX < 0x030800b4 + 0, /*tp_print*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 + 0, /*tp_vectorcall_offset*/ + #endif + 0, /*tp_getattr*/ + 0, /*tp_setattr*/ + #if PY_MAJOR_VERSION < 3 + 0, /*tp_compare*/ + #endif + #if PY_MAJOR_VERSION >= 3 + 0, /*tp_as_async*/ + #endif + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___repr__, /*tp_repr*/ + #else + 0, /*tp_repr*/ + #endif + 0, /*tp_as_number*/ + 0, /*tp_as_sequence*/ + 0, /*tp_as_mapping*/ + 0, /*tp_hash*/ + 0, /*tp_call*/ + #if CYTHON_COMPILING_IN_PYPY + __pyx_memoryview___str__, /*tp_str*/ + #else + 0, /*tp_str*/ + #endif + 0, /*tp_getattro*/ + 0, /*tp_setattro*/ + 0, /*tp_as_buffer*/ + Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ + "Internal class for passing memoryview slices to Python", /*tp_doc*/ + __pyx_tp_traverse__memoryviewslice, /*tp_traverse*/ + __pyx_tp_clear__memoryviewslice, /*tp_clear*/ + 0, /*tp_richcompare*/ + 0, /*tp_weaklistoffset*/ + 0, /*tp_iter*/ + 0, /*tp_iternext*/ + __pyx_methods__memoryviewslice, /*tp_methods*/ + 0, /*tp_members*/ + __pyx_getsets__memoryviewslice, /*tp_getset*/ + 0, /*tp_base*/ + 0, /*tp_dict*/ + 0, /*tp_descr_get*/ + 0, /*tp_descr_set*/ + 0, /*tp_dictoffset*/ + 0, /*tp_init*/ + 0, /*tp_alloc*/ + __pyx_tp_new__memoryviewslice, /*tp_new*/ + 0, /*tp_free*/ + 0, /*tp_is_gc*/ + 0, /*tp_bases*/ + 0, /*tp_mro*/ + 0, /*tp_cache*/ + 0, /*tp_subclasses*/ + 0, /*tp_weaklist*/ + 0, /*tp_del*/ + 0, /*tp_version_tag*/ + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif + #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif + #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, /*tp_pypy_flags*/ + #endif +}; + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec_PETSc(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec_PETSc}, + {0, NULL} +}; +#endif + +static struct PyModuleDef __pyx_moduledef = { + PyModuleDef_HEAD_INIT, + "PETSc", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + NULL, /* m_traverse */ + NULL, /* m_clear */ + (freefunc)__pyx_module_cleanup /* m_free */ +}; +#endif +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif + +static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_, __pyx_k_, sizeof(__pyx_k_), 0, 0, 1, 0}, + {&__pyx_n_s_A, __pyx_k_A, sizeof(__pyx_k_A), 0, 0, 1, 1}, + {&__pyx_n_s_A11, __pyx_k_A11, sizeof(__pyx_k_A11), 0, 0, 1, 1}, + {&__pyx_n_s_AB, __pyx_k_AB, sizeof(__pyx_k_AB), 0, 0, 1, 1}, + {&__pyx_n_s_ABC, __pyx_k_ABC, sizeof(__pyx_k_ABC), 0, 0, 1, 1}, + {&__pyx_n_s_ABt, __pyx_k_ABt, sizeof(__pyx_k_ABt), 0, 0, 1, 1}, + {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_ADDITIVE, __pyx_k_ADDITIVE, sizeof(__pyx_k_ADDITIVE), 0, 0, 1, 1}, + {&__pyx_n_s_ADD_ALL, __pyx_k_ADD_ALL, sizeof(__pyx_k_ADD_ALL), 0, 0, 1, 1}, + {&__pyx_n_s_ADD_ALL_VALUES, __pyx_k_ADD_ALL_VALUES, sizeof(__pyx_k_ADD_ALL_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_ADD_BC, __pyx_k_ADD_BC, sizeof(__pyx_k_ADD_BC), 0, 0, 1, 1}, + {&__pyx_n_s_ADD_BC_VALUES, __pyx_k_ADD_BC_VALUES, sizeof(__pyx_k_ADD_BC_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_ADD_VALUES, __pyx_k_ADD_VALUES, sizeof(__pyx_k_ADD_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_ADIOS, __pyx_k_ADIOS, sizeof(__pyx_k_ADIOS), 0, 0, 1, 1}, + {&__pyx_n_s_ADMM, __pyx_k_ADMM, sizeof(__pyx_k_ADMM), 0, 0, 1, 1}, + {&__pyx_n_s_ADVANCED, __pyx_k_ADVANCED, sizeof(__pyx_k_ADVANCED), 0, 0, 1, 1}, + {&__pyx_n_s_AGG, __pyx_k_AGG, sizeof(__pyx_k_AGG), 0, 0, 1, 1}, + {&__pyx_n_s_AGGERGATION, __pyx_k_AGGERGATION, sizeof(__pyx_k_AGGERGATION), 0, 0, 1, 1}, + {&__pyx_n_s_AIJ, __pyx_k_AIJ, sizeof(__pyx_k_AIJ), 0, 0, 1, 1}, + {&__pyx_n_s_AIJCRL, __pyx_k_AIJCRL, sizeof(__pyx_k_AIJCRL), 0, 0, 1, 1}, + {&__pyx_n_s_AIJCUSPARSE, __pyx_k_AIJCUSPARSE, sizeof(__pyx_k_AIJCUSPARSE), 0, 0, 1, 1}, + {&__pyx_n_s_AIJMKL, __pyx_k_AIJMKL, sizeof(__pyx_k_AIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_AIJPERM, __pyx_k_AIJPERM, sizeof(__pyx_k_AIJPERM), 0, 0, 1, 1}, + {&__pyx_n_s_AIJSELL, __pyx_k_AIJSELL, sizeof(__pyx_k_AIJSELL), 0, 0, 1, 1}, + {&__pyx_n_s_AIJVIENNACL, __pyx_k_AIJVIENNACL, sizeof(__pyx_k_AIJVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_ALLGATHER, __pyx_k_ALLGATHER, sizeof(__pyx_k_ALLGATHER), 0, 0, 1, 1}, + {&__pyx_n_s_ALLGATHERV, __pyx_k_ALLGATHERV, sizeof(__pyx_k_ALLGATHERV), 0, 0, 1, 1}, + {&__pyx_n_s_ALLTOALL, __pyx_k_ALLTOALL, sizeof(__pyx_k_ALLTOALL), 0, 0, 1, 1}, + {&__pyx_n_s_ALMM, __pyx_k_ALMM, sizeof(__pyx_k_ALMM), 0, 0, 1, 1}, + {&__pyx_n_s_ALPHA, __pyx_k_ALPHA, sizeof(__pyx_k_ALPHA), 0, 0, 1, 1}, + {&__pyx_n_s_ALPHA2, __pyx_k_ALPHA2, sizeof(__pyx_k_ALPHA2), 0, 0, 1, 1}, + {&__pyx_n_s_ALWAYS, __pyx_k_ALWAYS, sizeof(__pyx_k_ALWAYS), 0, 0, 1, 1}, + {&__pyx_n_s_AMD, __pyx_k_AMD, sizeof(__pyx_k_AMD), 0, 0, 1, 1}, + {&__pyx_n_s_ANDERSON, __pyx_k_ANDERSON, sizeof(__pyx_k_ANDERSON), 0, 0, 1, 1}, + {&__pyx_n_s_AO, __pyx_k_AO, sizeof(__pyx_k_AO), 0, 0, 1, 1}, + {&__pyx_n_s_AOType, __pyx_k_AOType, sizeof(__pyx_k_AOType), 0, 0, 1, 1}, + {&__pyx_n_s_APPEND, __pyx_k_APPEND, sizeof(__pyx_k_APPEND), 0, 0, 1, 1}, + {&__pyx_n_s_APPEND_UPDATE, __pyx_k_APPEND_UPDATE, sizeof(__pyx_k_APPEND_UPDATE), 0, 0, 1, 1}, + {&__pyx_n_s_APPLY_LOWER, __pyx_k_APPLY_LOWER, sizeof(__pyx_k_APPLY_LOWER), 0, 0, 1, 1}, + {&__pyx_n_s_APPLY_UPPER, __pyx_k_APPLY_UPPER, sizeof(__pyx_k_APPLY_UPPER), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX, __pyx_k_ARKIMEX, sizeof(__pyx_k_ARKIMEX), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX1BEE, __pyx_k_ARKIMEX1BEE, sizeof(__pyx_k_ARKIMEX1BEE), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX2C, __pyx_k_ARKIMEX2C, sizeof(__pyx_k_ARKIMEX2C), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX2D, __pyx_k_ARKIMEX2D, sizeof(__pyx_k_ARKIMEX2D), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX2E, __pyx_k_ARKIMEX2E, sizeof(__pyx_k_ARKIMEX2E), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX3, __pyx_k_ARKIMEX3, sizeof(__pyx_k_ARKIMEX3), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX4, __pyx_k_ARKIMEX4, sizeof(__pyx_k_ARKIMEX4), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEX5, __pyx_k_ARKIMEX5, sizeof(__pyx_k_ARKIMEX5), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXA2, __pyx_k_ARKIMEXA2, sizeof(__pyx_k_ARKIMEXA2), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXARS122, __pyx_k_ARKIMEXARS122, sizeof(__pyx_k_ARKIMEXARS122), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXARS443, __pyx_k_ARKIMEXARS443, sizeof(__pyx_k_ARKIMEXARS443), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXBPR3, __pyx_k_ARKIMEXBPR3, sizeof(__pyx_k_ARKIMEXBPR3), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXL2, __pyx_k_ARKIMEXL2, sizeof(__pyx_k_ARKIMEXL2), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXPRSSP2, __pyx_k_ARKIMEXPRSSP2, sizeof(__pyx_k_ARKIMEXPRSSP2), 0, 0, 1, 1}, + {&__pyx_n_s_ARKIMEXType, __pyx_k_ARKIMEXType, sizeof(__pyx_k_ARKIMEXType), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII, __pyx_k_ASCII, sizeof(__pyx_k_ASCII), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_COMMON, __pyx_k_ASCII_COMMON, sizeof(__pyx_k_ASCII_COMMON), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_CSV, __pyx_k_ASCII_CSV, sizeof(__pyx_k_ASCII_CSV), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_DENSE, __pyx_k_ASCII_DENSE, sizeof(__pyx_k_ASCII_DENSE), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_FACTOR_INFO, __pyx_k_ASCII_FACTOR_INFO, sizeof(__pyx_k_ASCII_FACTOR_INFO), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_GLVIS, __pyx_k_ASCII_GLVIS, sizeof(__pyx_k_ASCII_GLVIS), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_IMPL, __pyx_k_ASCII_IMPL, sizeof(__pyx_k_ASCII_IMPL), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_INDEX, __pyx_k_ASCII_INDEX, sizeof(__pyx_k_ASCII_INDEX), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_INFO, __pyx_k_ASCII_INFO, sizeof(__pyx_k_ASCII_INFO), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_INFO_DETAIL, __pyx_k_ASCII_INFO_DETAIL, sizeof(__pyx_k_ASCII_INFO_DETAIL), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_LATEX, __pyx_k_ASCII_LATEX, sizeof(__pyx_k_ASCII_LATEX), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_MATHEMATICA, __pyx_k_ASCII_MATHEMATICA, sizeof(__pyx_k_ASCII_MATHEMATICA), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_MATLAB, __pyx_k_ASCII_MATLAB, sizeof(__pyx_k_ASCII_MATLAB), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_MATRIXMARKET, __pyx_k_ASCII_MATRIXMARKET, sizeof(__pyx_k_ASCII_MATRIXMARKET), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_PCICE, __pyx_k_ASCII_PCICE, sizeof(__pyx_k_ASCII_PCICE), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_PYTHON, __pyx_k_ASCII_PYTHON, sizeof(__pyx_k_ASCII_PYTHON), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_SYMMODU, __pyx_k_ASCII_SYMMODU, sizeof(__pyx_k_ASCII_SYMMODU), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_VTK, __pyx_k_ASCII_VTK, sizeof(__pyx_k_ASCII_VTK), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_VTK_CELL, __pyx_k_ASCII_VTK_CELL, sizeof(__pyx_k_ASCII_VTK_CELL), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_VTK_COORDS, __pyx_k_ASCII_VTK_COORDS, sizeof(__pyx_k_ASCII_VTK_COORDS), 0, 0, 1, 1}, + {&__pyx_n_s_ASCII_XML, __pyx_k_ASCII_XML, sizeof(__pyx_k_ASCII_XML), 0, 0, 1, 1}, + {&__pyx_n_s_ASFLS, __pyx_k_ASFLS, sizeof(__pyx_k_ASFLS), 0, 0, 1, 1}, + {&__pyx_n_s_ASILS, __pyx_k_ASILS, sizeof(__pyx_k_ASILS), 0, 0, 1, 1}, + {&__pyx_n_s_ASM, __pyx_k_ASM, sizeof(__pyx_k_ASM), 0, 0, 1, 1}, + {&__pyx_n_s_ASMType, __pyx_k_ASMType, sizeof(__pyx_k_ASMType), 0, 0, 1, 1}, + {&__pyx_n_s_ASPIN, __pyx_k_ASPIN, sizeof(__pyx_k_ASPIN), 0, 0, 1, 1}, + {&__pyx_n_s_AU, __pyx_k_AU, sizeof(__pyx_k_AU), 0, 0, 1, 1}, + {&__pyx_kp_s_A_matrix_with_d_rows_requires_a, __pyx_k_A_matrix_with_d_rows_requires_a, sizeof(__pyx_k_A_matrix_with_d_rows_requires_a), 0, 0, 1, 0}, + {&__pyx_n_s_AssemblyType, __pyx_k_AssemblyType, sizeof(__pyx_k_AssemblyType), 0, 0, 1, 1}, + {&__pyx_n_s_AtB, __pyx_k_AtB, sizeof(__pyx_k_AtB), 0, 0, 1, 1}, + {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, + {&__pyx_n_s_B, __pyx_k_B, sizeof(__pyx_k_B), 0, 0, 1, 1}, + {&__pyx_n_s_BACK, __pyx_k_BACK, sizeof(__pyx_k_BACK), 0, 0, 1, 1}, + {&__pyx_n_s_BACKWARD_SWEEP, __pyx_k_BACKWARD_SWEEP, sizeof(__pyx_k_BACKWARD_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_DOWN, __pyx_k_BACK_DOWN, sizeof(__pyx_k_BACK_DOWN), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_DOWN_LEFT, __pyx_k_BACK_DOWN_LEFT, sizeof(__pyx_k_BACK_DOWN_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_DOWN_RIGHT, __pyx_k_BACK_DOWN_RIGHT, sizeof(__pyx_k_BACK_DOWN_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_LEFT, __pyx_k_BACK_LEFT, sizeof(__pyx_k_BACK_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_RIGHT, __pyx_k_BACK_RIGHT, sizeof(__pyx_k_BACK_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_UP, __pyx_k_BACK_UP, sizeof(__pyx_k_BACK_UP), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_UP_LEFT, __pyx_k_BACK_UP_LEFT, sizeof(__pyx_k_BACK_UP_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_BACK_UP_RIGHT, __pyx_k_BACK_UP_RIGHT, sizeof(__pyx_k_BACK_UP_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_BAIJ, __pyx_k_BAIJ, sizeof(__pyx_k_BAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_BAIJMKL, __pyx_k_BAIJMKL, sizeof(__pyx_k_BAIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_BALANCED, __pyx_k_BALANCED, sizeof(__pyx_k_BALANCED), 0, 0, 1, 1}, + {&__pyx_n_s_BAS, __pyx_k_BAS, sizeof(__pyx_k_BAS), 0, 0, 1, 1}, + {&__pyx_n_s_BASIC, __pyx_k_BASIC, sizeof(__pyx_k_BASIC), 0, 0, 1, 1}, + {&__pyx_n_s_BASICSYMPLECTIC, __pyx_k_BASICSYMPLECTIC, sizeof(__pyx_k_BASICSYMPLECTIC), 0, 0, 1, 1}, + {&__pyx_n_s_BCGS, __pyx_k_BCGS, sizeof(__pyx_k_BCGS), 0, 0, 1, 1}, + {&__pyx_n_s_BCGSL, __pyx_k_BCGSL, sizeof(__pyx_k_BCGSL), 0, 0, 1, 1}, + {&__pyx_n_s_BDDC, __pyx_k_BDDC, sizeof(__pyx_k_BDDC), 0, 0, 1, 1}, + {&__pyx_n_s_BDF, __pyx_k_BDF, sizeof(__pyx_k_BDF), 0, 0, 1, 1}, + {&__pyx_n_s_BDM, __pyx_k_BDM, sizeof(__pyx_k_BDM), 0, 0, 1, 1}, + {&__pyx_n_s_BE, __pyx_k_BE, sizeof(__pyx_k_BE), 0, 0, 1, 1}, + {&__pyx_n_s_BEULER, __pyx_k_BEULER, sizeof(__pyx_k_BEULER), 0, 0, 1, 1}, + {&__pyx_n_s_BFBT, __pyx_k_BFBT, sizeof(__pyx_k_BFBT), 0, 0, 1, 1}, + {&__pyx_n_s_BICG, __pyx_k_BICG, sizeof(__pyx_k_BICG), 0, 0, 1, 1}, + {&__pyx_n_s_BINARY, __pyx_k_BINARY, sizeof(__pyx_k_BINARY), 0, 0, 1, 1}, + {&__pyx_n_s_BINARY_MATLAB, __pyx_k_BINARY_MATLAB, sizeof(__pyx_k_BINARY_MATLAB), 0, 0, 1, 1}, + {&__pyx_n_s_BIORTH22, __pyx_k_BIORTH22, sizeof(__pyx_k_BIORTH22), 0, 0, 1, 1}, + {&__pyx_n_s_BJACOBI, __pyx_k_BJACOBI, sizeof(__pyx_k_BJACOBI), 0, 0, 1, 1}, + {&__pyx_n_s_BLMVM, __pyx_k_BLMVM, sizeof(__pyx_k_BLMVM), 0, 0, 1, 1}, + {&__pyx_n_s_BLOCK, __pyx_k_BLOCK, sizeof(__pyx_k_BLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_BLOCKMAT, __pyx_k_BLOCKMAT, sizeof(__pyx_k_BLOCKMAT), 0, 0, 1, 1}, + {&__pyx_n_s_BMRM, __pyx_k_BMRM, sizeof(__pyx_k_BMRM), 0, 0, 1, 1}, + {&__pyx_n_s_BNCG, __pyx_k_BNCG, sizeof(__pyx_k_BNCG), 0, 0, 1, 1}, + {&__pyx_n_s_BNLS, __pyx_k_BNLS, sizeof(__pyx_k_BNLS), 0, 0, 1, 1}, + {&__pyx_n_s_BNTL, __pyx_k_BNTL, sizeof(__pyx_k_BNTL), 0, 0, 1, 1}, + {&__pyx_n_s_BNTR, __pyx_k_BNTR, sizeof(__pyx_k_BNTR), 0, 0, 1, 1}, + {&__pyx_n_s_BOX, __pyx_k_BOX, sizeof(__pyx_k_BOX), 0, 0, 1, 1}, + {&__pyx_n_s_BQNKLS, __pyx_k_BQNKLS, sizeof(__pyx_k_BQNKLS), 0, 0, 1, 1}, + {&__pyx_n_s_BQNKTL, __pyx_k_BQNKTL, sizeof(__pyx_k_BQNKTL), 0, 0, 1, 1}, + {&__pyx_n_s_BQNKTR, __pyx_k_BQNKTR, sizeof(__pyx_k_BQNKTR), 0, 0, 1, 1}, + {&__pyx_n_s_BQNLS, __pyx_k_BQNLS, sizeof(__pyx_k_BQNLS), 0, 0, 1, 1}, + {&__pyx_n_s_BQPIP, __pyx_k_BQPIP, sizeof(__pyx_k_BQPIP), 0, 0, 1, 1}, + {&__pyx_n_s_BRGN, __pyx_k_BRGN, sizeof(__pyx_k_BRGN), 0, 0, 1, 1}, + {&__pyx_n_s_Barrier, __pyx_k_Barrier, sizeof(__pyx_k_Barrier), 0, 0, 1, 1}, + {&__pyx_n_s_BoundaryType, __pyx_k_BoundaryType, sizeof(__pyx_k_BoundaryType), 0, 0, 1, 1}, + {&__pyx_kp_s_Buffer_view_does_not_expose_stri, __pyx_k_Buffer_view_does_not_expose_stri, sizeof(__pyx_k_Buffer_view_does_not_expose_stri), 0, 0, 1, 0}, + {&__pyx_n_s_C, __pyx_k_C, sizeof(__pyx_k_C), 0, 0, 1, 1}, + {&__pyx_n_s_CG, __pyx_k_CG, sizeof(__pyx_k_CG), 0, 0, 1, 1}, + {&__pyx_n_s_CGLS, __pyx_k_CGLS, sizeof(__pyx_k_CGLS), 0, 0, 1, 1}, + {&__pyx_n_s_CGNE, __pyx_k_CGNE, sizeof(__pyx_k_CGNE), 0, 0, 1, 1}, + {&__pyx_n_s_CGS, __pyx_k_CGS, sizeof(__pyx_k_CGS), 0, 0, 1, 1}, + {&__pyx_n_s_CHACO, __pyx_k_CHACO, sizeof(__pyx_k_CHACO), 0, 0, 1, 1}, + {&__pyx_n_s_CHEBYSHEV, __pyx_k_CHEBYSHEV, sizeof(__pyx_k_CHEBYSHEV), 0, 0, 1, 1}, + {&__pyx_n_s_CHOLESKY, __pyx_k_CHOLESKY, sizeof(__pyx_k_CHOLESKY), 0, 0, 1, 1}, + {&__pyx_n_s_CHOLMOD, __pyx_k_CHOLMOD, sizeof(__pyx_k_CHOLMOD), 0, 0, 1, 1}, + {&__pyx_n_s_CHOWILUVIENNACL, __pyx_k_CHOWILUVIENNACL, sizeof(__pyx_k_CHOWILUVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_CLASSICAL, __pyx_k_CLASSICAL, sizeof(__pyx_k_CLASSICAL), 0, 0, 1, 1}, + {&__pyx_n_s_CN, __pyx_k_CN, sizeof(__pyx_k_CN), 0, 0, 1, 1}, + {&__pyx_n_s_COLLECT_BASIC, __pyx_k_COLLECT_BASIC, sizeof(__pyx_k_COLLECT_BASIC), 0, 0, 1, 1}, + {&__pyx_n_s_COLLECT_DMDABOUNDINGBOX, __pyx_k_COLLECT_DMDABOUNDINGBOX, sizeof(__pyx_k_COLLECT_DMDABOUNDINGBOX), 0, 0, 1, 1}, + {&__pyx_n_s_COLLECT_GENERAL, __pyx_k_COLLECT_GENERAL, sizeof(__pyx_k_COLLECT_GENERAL), 0, 0, 1, 1}, + {&__pyx_n_s_COLLECT_USER, __pyx_k_COLLECT_USER, sizeof(__pyx_k_COLLECT_USER), 0, 0, 1, 1}, + {&__pyx_n_s_COMM_NULL, __pyx_k_COMM_NULL, sizeof(__pyx_k_COMM_NULL), 0, 0, 1, 1}, + {&__pyx_n_s_COMM_SELF, __pyx_k_COMM_SELF, sizeof(__pyx_k_COMM_SELF), 0, 0, 1, 1}, + {&__pyx_n_s_COMM_WORLD, __pyx_k_COMM_WORLD, sizeof(__pyx_k_COMM_WORLD), 0, 0, 1, 1}, + {&__pyx_n_s_COMPOSITE, __pyx_k_COMPOSITE, sizeof(__pyx_k_COMPOSITE), 0, 0, 1, 1}, + {&__pyx_n_s_CONSTANTDIAGONAL, __pyx_k_CONSTANTDIAGONAL, sizeof(__pyx_k_CONSTANTDIAGONAL), 0, 0, 1, 1}, + {&__pyx_n_s_CONTINUE_ITERATING, __pyx_k_CONTINUE_ITERATING, sizeof(__pyx_k_CONTINUE_ITERATING), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_ATOL, __pyx_k_CONVERGED_ATOL, sizeof(__pyx_k_CONVERGED_ATOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_ATOL_NORMAL, __pyx_k_CONVERGED_ATOL_NORMAL, sizeof(__pyx_k_CONVERGED_ATOL_NORMAL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_EVENT, __pyx_k_CONVERGED_EVENT, sizeof(__pyx_k_CONVERGED_EVENT), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_FNORM_ABS, __pyx_k_CONVERGED_FNORM_ABS, sizeof(__pyx_k_CONVERGED_FNORM_ABS), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_FNORM_RELATIVE, __pyx_k_CONVERGED_FNORM_RELATIVE, sizeof(__pyx_k_CONVERGED_FNORM_RELATIVE), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_GATOL, __pyx_k_CONVERGED_GATOL, sizeof(__pyx_k_CONVERGED_GATOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_GRTOL, __pyx_k_CONVERGED_GRTOL, sizeof(__pyx_k_CONVERGED_GRTOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_GTTOL, __pyx_k_CONVERGED_GTTOL, sizeof(__pyx_k_CONVERGED_GTTOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_HAPPY_BREAKDOWN, __pyx_k_CONVERGED_HAPPY_BREAKDOWN, sizeof(__pyx_k_CONVERGED_HAPPY_BREAKDOWN), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_ITERATING, __pyx_k_CONVERGED_ITERATING, sizeof(__pyx_k_CONVERGED_ITERATING), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_ITS, __pyx_k_CONVERGED_ITS, sizeof(__pyx_k_CONVERGED_ITS), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_MINF, __pyx_k_CONVERGED_MINF, sizeof(__pyx_k_CONVERGED_MINF), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_NEG_CURVE, __pyx_k_CONVERGED_NEG_CURVE, sizeof(__pyx_k_CONVERGED_NEG_CURVE), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_RTOL, __pyx_k_CONVERGED_RTOL, sizeof(__pyx_k_CONVERGED_RTOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_RTOL_NORMAL, __pyx_k_CONVERGED_RTOL_NORMAL, sizeof(__pyx_k_CONVERGED_RTOL_NORMAL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_SNORM_RELATIVE, __pyx_k_CONVERGED_SNORM_RELATIVE, sizeof(__pyx_k_CONVERGED_SNORM_RELATIVE), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_STEPTOL, __pyx_k_CONVERGED_STEPTOL, sizeof(__pyx_k_CONVERGED_STEPTOL), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_STEP_LENGTH, __pyx_k_CONVERGED_STEP_LENGTH, sizeof(__pyx_k_CONVERGED_STEP_LENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_TIME, __pyx_k_CONVERGED_TIME, sizeof(__pyx_k_CONVERGED_TIME), 0, 0, 1, 1}, + {&__pyx_n_s_CONVERGED_USER, __pyx_k_CONVERGED_USER, sizeof(__pyx_k_CONVERGED_USER), 0, 0, 1, 1}, + {&__pyx_n_s_COPY_VALUES, __pyx_k_COPY_VALUES, sizeof(__pyx_k_COPY_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_CP, __pyx_k_CP, sizeof(__pyx_k_CP), 0, 0, 1, 1}, + {&__pyx_n_s_CR, __pyx_k_CR, sizeof(__pyx_k_CR), 0, 0, 1, 1}, + {&__pyx_n_s_CRANK_NICOLSON, __pyx_k_CRANK_NICOLSON, sizeof(__pyx_k_CRANK_NICOLSON), 0, 0, 1, 1}, + {&__pyx_n_s_CUDA, __pyx_k_CUDA, sizeof(__pyx_k_CUDA), 0, 0, 1, 1}, + {&__pyx_n_s_CUSPARSE, __pyx_k_CUSPARSE, sizeof(__pyx_k_CUSPARSE), 0, 0, 1, 1}, + {&__pyx_kp_s_Can_only_create_a_buffer_that_is, __pyx_k_Can_only_create_a_buffer_that_is, sizeof(__pyx_k_Can_only_create_a_buffer_that_is), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_assign_to_read_only_memor, __pyx_k_Cannot_assign_to_read_only_memor, sizeof(__pyx_k_Cannot_assign_to_read_only_memor), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_create_writable_memory_vi, __pyx_k_Cannot_create_writable_memory_vi, sizeof(__pyx_k_Cannot_create_writable_memory_vi), 0, 0, 1, 0}, + {&__pyx_kp_s_Cannot_index_with_type_s, __pyx_k_Cannot_index_with_type_s, sizeof(__pyx_k_Cannot_index_with_type_s), 0, 0, 1, 0}, + {&__pyx_n_s_Class, __pyx_k_Class, sizeof(__pyx_k_Class), 0, 0, 1, 1}, + {&__pyx_n_s_Clone, __pyx_k_Clone, sizeof(__pyx_k_Clone), 0, 0, 1, 1}, + {&__pyx_n_s_CollectType, __pyx_k_CollectType, sizeof(__pyx_k_CollectType), 0, 0, 1, 1}, + {&__pyx_n_s_Comm, __pyx_k_Comm, sizeof(__pyx_k_Comm), 0, 0, 1, 1}, + {&__pyx_n_s_ComplexType, __pyx_k_ComplexType, sizeof(__pyx_k_ComplexType), 0, 0, 1, 1}, + {&__pyx_n_s_CompositeType, __pyx_k_CompositeType, sizeof(__pyx_k_CompositeType), 0, 0, 1, 1}, + {&__pyx_n_s_ConvergedReason, __pyx_k_ConvergedReason, sizeof(__pyx_k_ConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 1, 1}, + {&__pyx_n_s_DA, __pyx_k_DA, sizeof(__pyx_k_DA), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_IMPLICIT_INDEX1, __pyx_k_DAE_IMPLICIT_INDEX1, sizeof(__pyx_k_DAE_IMPLICIT_INDEX1), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_IMPLICIT_INDEX2, __pyx_k_DAE_IMPLICIT_INDEX2, sizeof(__pyx_k_DAE_IMPLICIT_INDEX2), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_IMPLICIT_INDEX3, __pyx_k_DAE_IMPLICIT_INDEX3, sizeof(__pyx_k_DAE_IMPLICIT_INDEX3), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_IMPLICIT_INDEXHI, __pyx_k_DAE_IMPLICIT_INDEXHI, sizeof(__pyx_k_DAE_IMPLICIT_INDEXHI), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX1, __pyx_k_DAE_SEMI_EXPLICIT_INDEX1, sizeof(__pyx_k_DAE_SEMI_EXPLICIT_INDEX1), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX2, __pyx_k_DAE_SEMI_EXPLICIT_INDEX2, sizeof(__pyx_k_DAE_SEMI_EXPLICIT_INDEX2), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_SEMI_EXPLICIT_INDEX3, __pyx_k_DAE_SEMI_EXPLICIT_INDEX3, sizeof(__pyx_k_DAE_SEMI_EXPLICIT_INDEX3), 0, 0, 1, 1}, + {&__pyx_n_s_DAE_SEMI_EXPLICIT_INDEXHI, __pyx_k_DAE_SEMI_EXPLICIT_INDEXHI, sizeof(__pyx_k_DAE_SEMI_EXPLICIT_INDEXHI), 0, 0, 1, 1}, + {&__pyx_n_s_DB16, __pyx_k_DB16, sizeof(__pyx_k_DB16), 0, 0, 1, 1}, + {&__pyx_n_s_DB2, __pyx_k_DB2, sizeof(__pyx_k_DB2), 0, 0, 1, 1}, + {&__pyx_n_s_DB4, __pyx_k_DB4, sizeof(__pyx_k_DB4), 0, 0, 1, 1}, + {&__pyx_n_s_DB8, __pyx_k_DB8, sizeof(__pyx_k_DB8), 0, 0, 1, 1}, + {&__pyx_n_s_DECIDE, __pyx_k_DECIDE, sizeof(__pyx_k_DECIDE), 0, 0, 1, 1}, + {&__pyx_n_s_DEFAULT, __pyx_k_DEFAULT, sizeof(__pyx_k_DEFAULT), 0, 0, 1, 1}, + {&__pyx_n_s_DEFAULT_BLOCKING, __pyx_k_DEFAULT_BLOCKING, sizeof(__pyx_k_DEFAULT_BLOCKING), 0, 0, 1, 1}, + {&__pyx_n_s_DEFLATED, __pyx_k_DEFLATED, sizeof(__pyx_k_DEFLATED), 0, 0, 1, 1}, + {&__pyx_n_s_DEFLATION, __pyx_k_DEFLATION, sizeof(__pyx_k_DEFLATION), 0, 0, 1, 1}, + {&__pyx_n_s_DENSE, __pyx_k_DENSE, sizeof(__pyx_k_DENSE), 0, 0, 1, 1}, + {&__pyx_n_s_DENSECUDA, __pyx_k_DENSECUDA, sizeof(__pyx_k_DENSECUDA), 0, 0, 1, 1}, + {&__pyx_n_s_DESTROY, __pyx_k_DESTROY, sizeof(__pyx_k_DESTROY), 0, 0, 1, 1}, + {&__pyx_n_s_DETERMINE, __pyx_k_DETERMINE, sizeof(__pyx_k_DETERMINE), 0, 0, 1, 1}, + {&__pyx_n_s_DGMRES, __pyx_k_DGMRES, sizeof(__pyx_k_DGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_DIAG, __pyx_k_DIAG, sizeof(__pyx_k_DIAG), 0, 0, 1, 1}, + {&__pyx_n_s_DIFFERENT, __pyx_k_DIFFERENT, sizeof(__pyx_k_DIFFERENT), 0, 0, 1, 1}, + {&__pyx_n_s_DIFFERENT_NONZERO_PATTERN, __pyx_k_DIFFERENT_NONZERO_PATTERN, sizeof(__pyx_k_DIFFERENT_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_DIFFERENT_NZ, __pyx_k_DIFFERENT_NZ, sizeof(__pyx_k_DIFFERENT_NZ), 0, 0, 1, 1}, + {&__pyx_n_s_DISCGRAD, __pyx_k_DISCGRAD, sizeof(__pyx_k_DISCGRAD), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_BREAKDOWN, __pyx_k_DIVERGED_BREAKDOWN, sizeof(__pyx_k_DIVERGED_BREAKDOWN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_BREAKDOWN_BICG, __pyx_k_DIVERGED_BREAKDOWN_BICG, sizeof(__pyx_k_DIVERGED_BREAKDOWN_BICG), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_DTOL, __pyx_k_DIVERGED_DTOL, sizeof(__pyx_k_DIVERGED_DTOL), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_FNORM_NAN, __pyx_k_DIVERGED_FNORM_NAN, sizeof(__pyx_k_DIVERGED_FNORM_NAN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_FUNCTION_COUNT, __pyx_k_DIVERGED_FUNCTION_COUNT, sizeof(__pyx_k_DIVERGED_FUNCTION_COUNT), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_FUNCTION_DOMAIN, __pyx_k_DIVERGED_FUNCTION_DOMAIN, sizeof(__pyx_k_DIVERGED_FUNCTION_DOMAIN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_INDEFINITE_MAT, __pyx_k_DIVERGED_INDEFINITE_MAT, sizeof(__pyx_k_DIVERGED_INDEFINITE_MAT), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_INDEFINITE_PC, __pyx_k_DIVERGED_INDEFINITE_PC, sizeof(__pyx_k_DIVERGED_INDEFINITE_PC), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_INNER, __pyx_k_DIVERGED_INNER, sizeof(__pyx_k_DIVERGED_INNER), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_JACOBIAN_DOMAIN, __pyx_k_DIVERGED_JACOBIAN_DOMAIN, sizeof(__pyx_k_DIVERGED_JACOBIAN_DOMAIN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_LINEAR_SOLVE, __pyx_k_DIVERGED_LINEAR_SOLVE, sizeof(__pyx_k_DIVERGED_LINEAR_SOLVE), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_LINE_SEARCH, __pyx_k_DIVERGED_LINE_SEARCH, sizeof(__pyx_k_DIVERGED_LINE_SEARCH), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_LOCAL_MIN, __pyx_k_DIVERGED_LOCAL_MIN, sizeof(__pyx_k_DIVERGED_LOCAL_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_LS_FAILURE, __pyx_k_DIVERGED_LS_FAILURE, sizeof(__pyx_k_DIVERGED_LS_FAILURE), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_MAXFCN, __pyx_k_DIVERGED_MAXFCN, sizeof(__pyx_k_DIVERGED_MAXFCN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_MAXITS, __pyx_k_DIVERGED_MAXITS, sizeof(__pyx_k_DIVERGED_MAXITS), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_MAX_IT, __pyx_k_DIVERGED_MAX_IT, sizeof(__pyx_k_DIVERGED_MAX_IT), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_NAN, __pyx_k_DIVERGED_NAN, sizeof(__pyx_k_DIVERGED_NAN), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_NANORINF, __pyx_k_DIVERGED_NANORINF, sizeof(__pyx_k_DIVERGED_NANORINF), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_NONLINEAR_SOLVE, __pyx_k_DIVERGED_NONLINEAR_SOLVE, sizeof(__pyx_k_DIVERGED_NONLINEAR_SOLVE), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_NONSYMMETRIC, __pyx_k_DIVERGED_NONSYMMETRIC, sizeof(__pyx_k_DIVERGED_NONSYMMETRIC), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_NULL, __pyx_k_DIVERGED_NULL, sizeof(__pyx_k_DIVERGED_NULL), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_PCSETUP_FAILED, __pyx_k_DIVERGED_PCSETUP_FAILED, sizeof(__pyx_k_DIVERGED_PCSETUP_FAILED), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_STEP_REJECTED, __pyx_k_DIVERGED_STEP_REJECTED, sizeof(__pyx_k_DIVERGED_STEP_REJECTED), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_TR_DELTA, __pyx_k_DIVERGED_TR_DELTA, sizeof(__pyx_k_DIVERGED_TR_DELTA), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_TR_REDUCTION, __pyx_k_DIVERGED_TR_REDUCTION, sizeof(__pyx_k_DIVERGED_TR_REDUCTION), 0, 0, 1, 1}, + {&__pyx_n_s_DIVERGED_USER, __pyx_k_DIVERGED_USER, sizeof(__pyx_k_DIVERGED_USER), 0, 0, 1, 1}, + {&__pyx_n_s_DM, __pyx_k_DM, sizeof(__pyx_k_DM), 0, 0, 1, 1}, + {&__pyx_n_s_DMBoundaryType, __pyx_k_DMBoundaryType, sizeof(__pyx_k_DMBoundaryType), 0, 0, 1, 1}, + {&__pyx_n_s_DMComposite, __pyx_k_DMComposite, sizeof(__pyx_k_DMComposite), 0, 0, 1, 1}, + {&__pyx_n_s_DMComposite_access, __pyx_k_DMComposite_access, sizeof(__pyx_k_DMComposite_access), 0, 0, 1, 1}, + {&__pyx_n_s_DMDA, __pyx_k_DMDA, sizeof(__pyx_k_DMDA), 0, 0, 1, 1}, + {&__pyx_n_s_DMDAElementType, __pyx_k_DMDAElementType, sizeof(__pyx_k_DMDAElementType), 0, 0, 1, 1}, + {&__pyx_n_s_DMDAInterpolationType, __pyx_k_DMDAInterpolationType, sizeof(__pyx_k_DMDAInterpolationType), 0, 0, 1, 1}, + {&__pyx_n_s_DMDAStencilType, __pyx_k_DMDAStencilType, sizeof(__pyx_k_DMDAStencilType), 0, 0, 1, 1}, + {&__pyx_n_s_DMDA_Vec_array, __pyx_k_DMDA_Vec_array, sizeof(__pyx_k_DMDA_Vec_array), 0, 0, 1, 1}, + {&__pyx_n_s_DMInterpolation, __pyx_k_DMInterpolation, sizeof(__pyx_k_DMInterpolation), 0, 0, 1, 1}, + {&__pyx_n_s_DMLabel, __pyx_k_DMLabel, sizeof(__pyx_k_DMLabel), 0, 0, 1, 1}, + {&__pyx_n_s_DMPlex, __pyx_k_DMPlex, sizeof(__pyx_k_DMPlex), 0, 0, 1, 1}, + {&__pyx_n_s_DMPlexReorderDefaultFlag, __pyx_k_DMPlexReorderDefaultFlag, sizeof(__pyx_k_DMPlexReorderDefaultFlag), 0, 0, 1, 1}, + {&__pyx_n_s_DMPlexTransform, __pyx_k_DMPlexTransform, sizeof(__pyx_k_DMPlexTransform), 0, 0, 1, 1}, + {&__pyx_n_s_DMPlexTransformType, __pyx_k_DMPlexTransformType, sizeof(__pyx_k_DMPlexTransformType), 0, 0, 1, 1}, + {&__pyx_n_s_DMPolytopeType, __pyx_k_DMPolytopeType, sizeof(__pyx_k_DMPolytopeType), 0, 0, 1, 1}, + {&__pyx_n_s_DMShell, __pyx_k_DMShell, sizeof(__pyx_k_DMShell), 0, 0, 1, 1}, + {&__pyx_n_s_DMStag, __pyx_k_DMStag, sizeof(__pyx_k_DMStag), 0, 0, 1, 1}, + {&__pyx_n_s_DMStagStencilLocation, __pyx_k_DMStagStencilLocation, sizeof(__pyx_k_DMStagStencilLocation), 0, 0, 1, 1}, + {&__pyx_n_s_DMStagStencilType, __pyx_k_DMStagStencilType, sizeof(__pyx_k_DMStagStencilType), 0, 0, 1, 1}, + {&__pyx_n_s_DMSwarm, __pyx_k_DMSwarm, sizeof(__pyx_k_DMSwarm), 0, 0, 1, 1}, + {&__pyx_n_s_DMSwarmCollectType, __pyx_k_DMSwarmCollectType, sizeof(__pyx_k_DMSwarmCollectType), 0, 0, 1, 1}, + {&__pyx_n_s_DMSwarmMigrateType, __pyx_k_DMSwarmMigrateType, sizeof(__pyx_k_DMSwarmMigrateType), 0, 0, 1, 1}, + {&__pyx_n_s_DMSwarmPICLayoutType, __pyx_k_DMSwarmPICLayoutType, sizeof(__pyx_k_DMSwarmPICLayoutType), 0, 0, 1, 1}, + {&__pyx_n_s_DMSwarmType, __pyx_k_DMSwarmType, sizeof(__pyx_k_DMSwarmType), 0, 0, 1, 1}, + {&__pyx_n_s_DMType, __pyx_k_DMType, sizeof(__pyx_k_DMType), 0, 0, 1, 1}, + {&__pyx_n_s_DOF, __pyx_k_DOF, sizeof(__pyx_k_DOF), 0, 0, 1, 1}, + {&__pyx_n_s_DOWN, __pyx_k_DOWN, sizeof(__pyx_k_DOWN), 0, 0, 1, 1}, + {&__pyx_n_s_DOWN_LEFT, __pyx_k_DOWN_LEFT, sizeof(__pyx_k_DOWN_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_DOWN_RIGHT, __pyx_k_DOWN_RIGHT, sizeof(__pyx_k_DOWN_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_DO_NOT_COPY_VALUES, __pyx_k_DO_NOT_COPY_VALUES, sizeof(__pyx_k_DO_NOT_COPY_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW, __pyx_k_DRAW, sizeof(__pyx_k_DRAW), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW_BASIC, __pyx_k_DRAW_BASIC, sizeof(__pyx_k_DRAW_BASIC), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW_CONTOUR, __pyx_k_DRAW_CONTOUR, sizeof(__pyx_k_DRAW_CONTOUR), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW_LG, __pyx_k_DRAW_LG, sizeof(__pyx_k_DRAW_LG), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW_LG_XRANGE, __pyx_k_DRAW_LG_XRANGE, sizeof(__pyx_k_DRAW_LG_XRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_DRAW_PORTS, __pyx_k_DRAW_PORTS, sizeof(__pyx_k_DRAW_PORTS), 0, 0, 1, 1}, + {&__pyx_n_s_DROP, __pyx_k_DROP, sizeof(__pyx_k_DROP), 0, 0, 1, 1}, + {&__pyx_n_s_DS, __pyx_k_DS, sizeof(__pyx_k_DS), 0, 0, 1, 1}, + {&__pyx_n_s_DSType, __pyx_k_DSType, sizeof(__pyx_k_DSType), 0, 0, 1, 1}, + {&__pyx_n_s_DUMMY, __pyx_k_DUMMY, sizeof(__pyx_k_DUMMY), 0, 0, 1, 1}, + {&__pyx_n_s_DeflationSpaceType, __pyx_k_DeflationSpaceType, sizeof(__pyx_k_DeflationSpaceType), 0, 0, 1, 1}, + {&__pyx_n_s_Device, __pyx_k_Device, sizeof(__pyx_k_Device), 0, 0, 1, 1}, + {&__pyx_n_s_DeviceContext, __pyx_k_DeviceContext, sizeof(__pyx_k_DeviceContext), 0, 0, 1, 1}, + {&__pyx_n_s_DeviceJoinMode, __pyx_k_DeviceJoinMode, sizeof(__pyx_k_DeviceJoinMode), 0, 0, 1, 1}, + {&__pyx_n_s_DeviceType, __pyx_k_DeviceType, sizeof(__pyx_k_DeviceType), 0, 0, 1, 1}, + {&__pyx_kp_s_Device_type_not_supported, __pyx_k_Device_type_not_supported, sizeof(__pyx_k_Device_type_not_supported), 0, 0, 1, 0}, + {&__pyx_n_s_DrawSize, __pyx_k_DrawSize, sizeof(__pyx_k_DrawSize), 0, 0, 1, 1}, + {&__pyx_n_s_DualSpace, __pyx_k_DualSpace, sizeof(__pyx_k_DualSpace), 0, 0, 1, 1}, + {&__pyx_n_s_DualSpaceType, __pyx_k_DualSpaceType, sizeof(__pyx_k_DualSpaceType), 0, 0, 1, 1}, + {&__pyx_n_s_Dup, __pyx_k_Dup, sizeof(__pyx_k_Dup), 0, 0, 1, 1}, + {&__pyx_n_s_DuplicateOption, __pyx_k_DuplicateOption, sizeof(__pyx_k_DuplicateOption), 0, 0, 1, 1}, + {&__pyx_n_s_EIMEX, __pyx_k_EIMEX, sizeof(__pyx_k_EIMEX), 0, 0, 1, 1}, + {&__pyx_n_s_EISENSTAT, __pyx_k_EISENSTAT, sizeof(__pyx_k_EISENSTAT), 0, 0, 1, 1}, + {&__pyx_n_s_ELEMENT, __pyx_k_ELEMENT, sizeof(__pyx_k_ELEMENT), 0, 0, 1, 1}, + {&__pyx_n_s_ELEMENTAL, __pyx_k_ELEMENTAL, sizeof(__pyx_k_ELEMENTAL), 0, 0, 1, 1}, + {&__pyx_n_s_ERROR_LOWER_TRIANGULAR, __pyx_k_ERROR_LOWER_TRIANGULAR, sizeof(__pyx_k_ERROR_LOWER_TRIANGULAR), 0, 0, 1, 1}, + {&__pyx_n_s_ESSL, __pyx_k_ESSL, sizeof(__pyx_k_ESSL), 0, 0, 1, 1}, + {&__pyx_n_s_EULER, __pyx_k_EULER, sizeof(__pyx_k_EULER), 0, 0, 1, 1}, + {&__pyx_n_s_EXODUSII, __pyx_k_EXODUSII, sizeof(__pyx_k_EXODUSII), 0, 0, 1, 1}, + {&__pyx_n_s_EXOTIC, __pyx_k_EXOTIC, sizeof(__pyx_k_EXOTIC), 0, 0, 1, 1}, + {&__pyx_n_s_EXPLICIT, __pyx_k_EXPLICIT, sizeof(__pyx_k_EXPLICIT), 0, 0, 1, 1}, + {&__pyx_n_s_EXTRUDE, __pyx_k_EXTRUDE, sizeof(__pyx_k_EXTRUDE), 0, 0, 1, 1}, + {&__pyx_n_s_ElementType, __pyx_k_ElementType, sizeof(__pyx_k_ElementType), 0, 0, 1, 1}, + {&__pyx_n_s_Ellipsis, __pyx_k_Ellipsis, sizeof(__pyx_k_Ellipsis), 0, 0, 1, 1}, + {&__pyx_kp_s_Empty_shape_tuple_for_cython_arr, __pyx_k_Empty_shape_tuple_for_cython_arr, sizeof(__pyx_k_Empty_shape_tuple_for_cython_arr), 0, 0, 1, 0}, + {&__pyx_n_s_EquationType, __pyx_k_EquationType, sizeof(__pyx_k_EquationType), 0, 0, 1, 1}, + {&__pyx_n_s_Error, __pyx_k_Error, sizeof(__pyx_k_Error), 0, 0, 1, 1}, + {&__pyx_n_s_Error___init, __pyx_k_Error___init, sizeof(__pyx_k_Error___init), 0, 0, 1, 1}, + {&__pyx_n_s_Error___nonzero, __pyx_k_Error___nonzero, sizeof(__pyx_k_Error___nonzero), 0, 0, 1, 1}, + {&__pyx_n_s_Error___repr, __pyx_k_Error___repr, sizeof(__pyx_k_Error___repr), 0, 0, 1, 1}, + {&__pyx_n_s_Error___str, __pyx_k_Error___str, sizeof(__pyx_k_Error___str), 0, 0, 1, 1}, + {&__pyx_n_s_Event, __pyx_k_Event, sizeof(__pyx_k_Event), 0, 0, 1, 1}, + {&__pyx_n_s_EventDecorator, __pyx_k_EventDecorator, sizeof(__pyx_k_EventDecorator), 0, 0, 1, 1}, + {&__pyx_n_s_EventDecorator_locals_decorator, __pyx_k_EventDecorator_locals_decorator, sizeof(__pyx_k_EventDecorator_locals_decorator), 0, 0, 1, 1}, + {&__pyx_n_s_EventDecorator_locals_decorator_2, __pyx_k_EventDecorator_locals_decorator_2, sizeof(__pyx_k_EventDecorator_locals_decorator_2), 0, 0, 1, 1}, + {&__pyx_n_s_ExactFinalTime, __pyx_k_ExactFinalTime, sizeof(__pyx_k_ExactFinalTime), 0, 0, 1, 1}, + {&__pyx_n_s_ExactFinalTimeOption, __pyx_k_ExactFinalTimeOption, sizeof(__pyx_k_ExactFinalTimeOption), 0, 0, 1, 1}, + {&__pyx_kp_s_Expect_a_dltensor_field_pycapsul, __pyx_k_Expect_a_dltensor_field_pycapsul, sizeof(__pyx_k_Expect_a_dltensor_field_pycapsul), 0, 0, 1, 0}, + {&__pyx_kp_s_Expect_a_dltensor_or_used_dltens, __pyx_k_Expect_a_dltensor_or_used_dltens, sizeof(__pyx_k_Expect_a_dltensor_or_used_dltens), 0, 0, 1, 0}, + {&__pyx_n_s_FACTOR_NUMERIC_ZEROPIVOT, __pyx_k_FACTOR_NUMERIC_ZEROPIVOT, sizeof(__pyx_k_FACTOR_NUMERIC_ZEROPIVOT), 0, 0, 1, 1}, + {&__pyx_n_s_FACTOR_OTHER, __pyx_k_FACTOR_OTHER, sizeof(__pyx_k_FACTOR_OTHER), 0, 0, 1, 1}, + {&__pyx_n_s_FACTOR_OUTMEMORY, __pyx_k_FACTOR_OUTMEMORY, sizeof(__pyx_k_FACTOR_OUTMEMORY), 0, 0, 1, 1}, + {&__pyx_n_s_FACTOR_STRUCT_ZEROPIVOT, __pyx_k_FACTOR_STRUCT_ZEROPIVOT, sizeof(__pyx_k_FACTOR_STRUCT_ZEROPIVOT), 0, 0, 1, 1}, + {&__pyx_n_s_FAILED, __pyx_k_FAILED, sizeof(__pyx_k_FAILED), 0, 0, 1, 1}, + {&__pyx_n_s_FALSE, __pyx_k_FALSE, sizeof(__pyx_k_FALSE), 0, 0, 1, 1}, + {&__pyx_n_s_FAS, __pyx_k_FAS, sizeof(__pyx_k_FAS), 0, 0, 1, 1}, + {&__pyx_n_s_FBCGS, __pyx_k_FBCGS, sizeof(__pyx_k_FBCGS), 0, 0, 1, 1}, + {&__pyx_n_s_FBCGSR, __pyx_k_FBCGSR, sizeof(__pyx_k_FBCGSR), 0, 0, 1, 1}, + {&__pyx_n_s_FCG, __pyx_k_FCG, sizeof(__pyx_k_FCG), 0, 0, 1, 1}, + {&__pyx_n_s_FE, __pyx_k_FE, sizeof(__pyx_k_FE), 0, 0, 1, 1}, + {&__pyx_n_s_FETIDP, __pyx_k_FETIDP, sizeof(__pyx_k_FETIDP), 0, 0, 1, 1}, + {&__pyx_n_s_FEType, __pyx_k_FEType, sizeof(__pyx_k_FEType), 0, 0, 1, 1}, + {&__pyx_n_s_FFT, __pyx_k_FFT, sizeof(__pyx_k_FFT), 0, 0, 1, 1}, + {&__pyx_n_s_FFTW, __pyx_k_FFTW, sizeof(__pyx_k_FFTW), 0, 0, 1, 1}, + {&__pyx_n_s_FGMRES, __pyx_k_FGMRES, sizeof(__pyx_k_FGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_FIELDSPLIT, __pyx_k_FIELDSPLIT, sizeof(__pyx_k_FIELDSPLIT), 0, 0, 1, 1}, + {&__pyx_n_s_FINAL, __pyx_k_FINAL, sizeof(__pyx_k_FINAL), 0, 0, 1, 1}, + {&__pyx_n_s_FINAL_ASSEMBLY, __pyx_k_FINAL_ASSEMBLY, sizeof(__pyx_k_FINAL_ASSEMBLY), 0, 0, 1, 1}, + {&__pyx_n_s_FINAL_ONLY, __pyx_k_FINAL_ONLY, sizeof(__pyx_k_FINAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_FLUSH, __pyx_k_FLUSH, sizeof(__pyx_k_FLUSH), 0, 0, 1, 1}, + {&__pyx_n_s_FLUSH_ASSEMBLY, __pyx_k_FLUSH_ASSEMBLY, sizeof(__pyx_k_FLUSH_ASSEMBLY), 0, 0, 1, 1}, + {&__pyx_n_s_FORCE_DIAGONAL_ENTRIES, __pyx_k_FORCE_DIAGONAL_ENTRIES, sizeof(__pyx_k_FORCE_DIAGONAL_ENTRIES), 0, 0, 1, 1}, + {&__pyx_n_s_FOREST, __pyx_k_FOREST, sizeof(__pyx_k_FOREST), 0, 0, 1, 1}, + {&__pyx_n_s_FORWARD, __pyx_k_FORWARD, sizeof(__pyx_k_FORWARD), 0, 0, 1, 1}, + {&__pyx_n_s_FORWARD_LOCAL, __pyx_k_FORWARD_LOCAL, sizeof(__pyx_k_FORWARD_LOCAL), 0, 0, 1, 1}, + {&__pyx_n_s_FORWARD_SWEEP, __pyx_k_FORWARD_SWEEP, sizeof(__pyx_k_FORWARD_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_FRB, __pyx_k_FRB, sizeof(__pyx_k_FRB), 0, 0, 1, 1}, + {&__pyx_n_s_FROBENIUS, __pyx_k_FROBENIUS, sizeof(__pyx_k_FROBENIUS), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT, __pyx_k_FRONT, sizeof(__pyx_k_FRONT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_DOWN, __pyx_k_FRONT_DOWN, sizeof(__pyx_k_FRONT_DOWN), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_DOWN_LEFT, __pyx_k_FRONT_DOWN_LEFT, sizeof(__pyx_k_FRONT_DOWN_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_DOWN_RIGHT, __pyx_k_FRONT_DOWN_RIGHT, sizeof(__pyx_k_FRONT_DOWN_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_LEFT, __pyx_k_FRONT_LEFT, sizeof(__pyx_k_FRONT_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_RIGHT, __pyx_k_FRONT_RIGHT, sizeof(__pyx_k_FRONT_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_UP, __pyx_k_FRONT_UP, sizeof(__pyx_k_FRONT_UP), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_UP_LEFT, __pyx_k_FRONT_UP_LEFT, sizeof(__pyx_k_FRONT_UP_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_FRONT_UP_RIGHT, __pyx_k_FRONT_UP_RIGHT, sizeof(__pyx_k_FRONT_UP_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_FULL, __pyx_k_FULL, sizeof(__pyx_k_FULL), 0, 0, 1, 1}, + {&__pyx_n_s_FULL_SIZE, __pyx_k_FULL_SIZE, sizeof(__pyx_k_FULL_SIZE), 0, 0, 1, 1}, + {&__pyx_n_s_FV_GHOST, __pyx_k_FV_GHOST, sizeof(__pyx_k_FV_GHOST), 0, 0, 1, 1}, + {&__pyx_n_s_FactorShiftType, __pyx_k_FactorShiftType, sizeof(__pyx_k_FactorShiftType), 0, 0, 1, 1}, + {&__pyx_n_s_FailedReason, __pyx_k_FailedReason, sizeof(__pyx_k_FailedReason), 0, 0, 1, 1}, + {&__pyx_n_s_FileMode, __pyx_k_FileMode, sizeof(__pyx_k_FileMode), 0, 0, 1, 1}, + {&__pyx_n_s_Format, __pyx_k_Format, sizeof(__pyx_k_Format), 0, 0, 1, 1}, + {&__pyx_n_s_Free, __pyx_k_Free, sizeof(__pyx_k_Free), 0, 0, 1, 1}, + {&__pyx_n_s_G, __pyx_k_G, sizeof(__pyx_k_G), 0, 0, 1, 1}, + {&__pyx_n_s_GALERKIN, __pyx_k_GALERKIN, sizeof(__pyx_k_GALERKIN), 0, 0, 1, 1}, + {&__pyx_n_s_GAMG, __pyx_k_GAMG, sizeof(__pyx_k_GAMG), 0, 0, 1, 1}, + {&__pyx_n_s_GAMGType, __pyx_k_GAMGType, sizeof(__pyx_k_GAMGType), 0, 0, 1, 1}, + {&__pyx_n_s_GASM, __pyx_k_GASM, sizeof(__pyx_k_GASM), 0, 0, 1, 1}, + {&__pyx_n_s_GASMType, __pyx_k_GASMType, sizeof(__pyx_k_GASMType), 0, 0, 1, 1}, + {&__pyx_n_s_GATHER, __pyx_k_GATHER, sizeof(__pyx_k_GATHER), 0, 0, 1, 1}, + {&__pyx_n_s_GATHERV, __pyx_k_GATHERV, sizeof(__pyx_k_GATHERV), 0, 0, 1, 1}, + {&__pyx_n_s_GCR, __pyx_k_GCR, sizeof(__pyx_k_GCR), 0, 0, 1, 1}, + {&__pyx_n_s_GENERAL, __pyx_k_GENERAL, sizeof(__pyx_k_GENERAL), 0, 0, 1, 1}, + {&__pyx_n_s_GEO, __pyx_k_GEO, sizeof(__pyx_k_GEO), 0, 0, 1, 1}, + {&__pyx_n_s_GETROW_UPPERTRIANGULAR, __pyx_k_GETROW_UPPERTRIANGULAR, sizeof(__pyx_k_GETROW_UPPERTRIANGULAR), 0, 0, 1, 1}, + {&__pyx_n_s_GHOSTED, __pyx_k_GHOSTED, sizeof(__pyx_k_GHOSTED), 0, 0, 1, 1}, + {&__pyx_kp_s_GIT_Date, __pyx_k_GIT_Date, sizeof(__pyx_k_GIT_Date), 0, 0, 1, 0}, + {&__pyx_n_s_GLEE, __pyx_k_GLEE, sizeof(__pyx_k_GLEE), 0, 0, 1, 1}, + {&__pyx_n_s_GLLE, __pyx_k_GLLE, sizeof(__pyx_k_GLLE), 0, 0, 1, 1}, + {&__pyx_n_s_GLMapMode, __pyx_k_GLMapMode, sizeof(__pyx_k_GLMapMode), 0, 0, 1, 1}, + {&__pyx_n_s_GLOBAL_BLOCKING, __pyx_k_GLOBAL_BLOCKING, sizeof(__pyx_k_GLOBAL_BLOCKING), 0, 0, 1, 1}, + {&__pyx_n_s_GLOBAL_MAX, __pyx_k_GLOBAL_MAX, sizeof(__pyx_k_GLOBAL_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_GLOBAL_NONBLOCKING, __pyx_k_GLOBAL_NONBLOCKING, sizeof(__pyx_k_GLOBAL_NONBLOCKING), 0, 0, 1, 1}, + {&__pyx_n_s_GLOBAL_SUM, __pyx_k_GLOBAL_SUM, sizeof(__pyx_k_GLOBAL_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_GLTR, __pyx_k_GLTR, sizeof(__pyx_k_GLTR), 0, 0, 1, 1}, + {&__pyx_n_s_GLVIS, __pyx_k_GLVIS, sizeof(__pyx_k_GLVIS), 0, 0, 1, 1}, + {&__pyx_n_s_GMRES, __pyx_k_GMRES, sizeof(__pyx_k_GMRES), 0, 0, 1, 1}, + {&__pyx_n_s_GPCG, __pyx_k_GPCG, sizeof(__pyx_k_GPCG), 0, 0, 1, 1}, + {&__pyx_n_s_GROPPCG, __pyx_k_GROPPCG, sizeof(__pyx_k_GROPPCG), 0, 0, 1, 1}, + {&__pyx_n_s_Get_rank, __pyx_k_Get_rank, sizeof(__pyx_k_Get_rank), 0, 0, 1, 1}, + {&__pyx_n_s_Get_size, __pyx_k_Get_size, sizeof(__pyx_k_Get_size), 0, 0, 1, 1}, + {&__pyx_kp_s_Given_d_column_indices_but_d_non, __pyx_k_Given_d_column_indices_but_d_non, sizeof(__pyx_k_Given_d_column_indices_but_d_non), 0, 0, 1, 0}, + {&__pyx_n_s_H, __pyx_k_H, sizeof(__pyx_k_H), 0, 0, 1, 1}, + {&__pyx_n_s_H2OPUS, __pyx_k_H2OPUS, sizeof(__pyx_k_H2OPUS), 0, 0, 1, 1}, + {&__pyx_n_s_HAAR, __pyx_k_HAAR, sizeof(__pyx_k_HAAR), 0, 0, 1, 1}, + {&__pyx_n_s_HALF, __pyx_k_HALF, sizeof(__pyx_k_HALF), 0, 0, 1, 1}, + {&__pyx_n_s_HALF_SIZE, __pyx_k_HALF_SIZE, sizeof(__pyx_k_HALF_SIZE), 0, 0, 1, 1}, + {&__pyx_n_s_HASH, __pyx_k_HASH, sizeof(__pyx_k_HASH), 0, 0, 1, 1}, + {&__pyx_n_s_HDF5, __pyx_k_HDF5, sizeof(__pyx_k_HDF5), 0, 0, 1, 1}, + {&__pyx_n_s_HDF5_MAT, __pyx_k_HDF5_MAT, sizeof(__pyx_k_HDF5_MAT), 0, 0, 1, 1}, + {&__pyx_n_s_HDF5_PETSC, __pyx_k_HDF5_PETSC, sizeof(__pyx_k_HDF5_PETSC), 0, 0, 1, 1}, + {&__pyx_n_s_HDF5_VIZ, __pyx_k_HDF5_VIZ, sizeof(__pyx_k_HDF5_VIZ), 0, 0, 1, 1}, + {&__pyx_n_s_HDF5_XDMF, __pyx_k_HDF5_XDMF, sizeof(__pyx_k_HDF5_XDMF), 0, 0, 1, 1}, + {&__pyx_n_s_HERMITIAN, __pyx_k_HERMITIAN, sizeof(__pyx_k_HERMITIAN), 0, 0, 1, 1}, + {&__pyx_n_s_HERMITIANTRANSPOSE, __pyx_k_HERMITIANTRANSPOSE, sizeof(__pyx_k_HERMITIANTRANSPOSE), 0, 0, 1, 1}, + {&__pyx_n_s_HEXAHEDRON, __pyx_k_HEXAHEDRON, sizeof(__pyx_k_HEXAHEDRON), 0, 0, 1, 1}, + {&__pyx_n_s_HIP, __pyx_k_HIP, sizeof(__pyx_k_HIP), 0, 0, 1, 1}, + {&__pyx_n_s_HMG, __pyx_k_HMG, sizeof(__pyx_k_HMG), 0, 0, 1, 1}, + {&__pyx_n_s_HOST, __pyx_k_HOST, sizeof(__pyx_k_HOST), 0, 0, 1, 1}, + {&__pyx_n_s_HPDDM, __pyx_k_HPDDM, sizeof(__pyx_k_HPDDM), 0, 0, 1, 1}, + {&__pyx_n_s_HPDDMCoarseCorrectionType, __pyx_k_HPDDMCoarseCorrectionType, sizeof(__pyx_k_HPDDMCoarseCorrectionType), 0, 0, 1, 1}, + {&__pyx_n_s_HYPRE, __pyx_k_HYPRE, sizeof(__pyx_k_HYPRE), 0, 0, 1, 1}, + {&__pyx_n_s_HYPRESSTRUCT, __pyx_k_HYPRESSTRUCT, sizeof(__pyx_k_HYPRESSTRUCT), 0, 0, 1, 1}, + {&__pyx_n_s_HYPRESTRUCT, __pyx_k_HYPRESTRUCT, sizeof(__pyx_k_HYPRESTRUCT), 0, 0, 1, 1}, + {&__pyx_n_s_I, __pyx_k_I, sizeof(__pyx_k_I), 0, 0, 1, 1}, + {&__pyx_n_s_IBCGS, __pyx_k_IBCGS, sizeof(__pyx_k_IBCGS), 0, 0, 1, 1}, + {&__pyx_n_s_ICC, __pyx_k_ICC, sizeof(__pyx_k_ICC), 0, 0, 1, 1}, + {&__pyx_n_s_IGNORE_LOWER_TRIANGULAR, __pyx_k_IGNORE_LOWER_TRIANGULAR, sizeof(__pyx_k_IGNORE_LOWER_TRIANGULAR), 0, 0, 1, 1}, + {&__pyx_n_s_IGNORE_NEGATIVE_INDICES, __pyx_k_IGNORE_NEGATIVE_INDICES, sizeof(__pyx_k_IGNORE_NEGATIVE_INDICES), 0, 0, 1, 1}, + {&__pyx_n_s_IGNORE_OFF_PROC_ENTRIES, __pyx_k_IGNORE_OFF_PROC_ENTRIES, sizeof(__pyx_k_IGNORE_OFF_PROC_ENTRIES), 0, 0, 1, 1}, + {&__pyx_n_s_IGNORE_ZERO_ENTRIES, __pyx_k_IGNORE_ZERO_ENTRIES, sizeof(__pyx_k_IGNORE_ZERO_ENTRIES), 0, 0, 1, 1}, + {&__pyx_n_s_ILU, __pyx_k_ILU, sizeof(__pyx_k_ILU), 0, 0, 1, 1}, + {&__pyx_n_s_IMPLICIT, __pyx_k_IMPLICIT, sizeof(__pyx_k_IMPLICIT), 0, 0, 1, 1}, + {&__pyx_n_s_INBLOCKS, __pyx_k_INBLOCKS, sizeof(__pyx_k_INBLOCKS), 0, 0, 1, 1}, + {&__pyx_n_s_INF, __pyx_k_INF, sizeof(__pyx_k_INF), 0, 0, 1, 1}, + {&__pyx_n_s_INFINITY, __pyx_k_INFINITY, sizeof(__pyx_k_INFINITY), 0, 0, 1, 1}, + {&__pyx_n_s_INITIAL_FINAL_ONLY, __pyx_k_INITIAL_FINAL_ONLY, sizeof(__pyx_k_INITIAL_FINAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_INITIAL_ONLY, __pyx_k_INITIAL_ONLY, sizeof(__pyx_k_INITIAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT, __pyx_k_INSERT, sizeof(__pyx_k_INSERT), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT_ALL, __pyx_k_INSERT_ALL, sizeof(__pyx_k_INSERT_ALL), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT_ALL_VALUES, __pyx_k_INSERT_ALL_VALUES, sizeof(__pyx_k_INSERT_ALL_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT_BC, __pyx_k_INSERT_BC, sizeof(__pyx_k_INSERT_BC), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT_BC_VALUES, __pyx_k_INSERT_BC_VALUES, sizeof(__pyx_k_INSERT_BC_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_INSERT_VALUES, __pyx_k_INSERT_VALUES, sizeof(__pyx_k_INSERT_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_INTERIOR_GHOST, __pyx_k_INTERIOR_GHOST, sizeof(__pyx_k_INTERIOR_GHOST), 0, 0, 1, 1}, + {&__pyx_n_s_INTERPOLATE, __pyx_k_INTERPOLATE, sizeof(__pyx_k_INTERPOLATE), 0, 0, 1, 1}, + {&__pyx_n_s_IPM, __pyx_k_IPM, sizeof(__pyx_k_IPM), 0, 0, 1, 1}, + {&__pyx_n_s_IS, __pyx_k_IS, sizeof(__pyx_k_IS), 0, 0, 1, 1}, + {&__pyx_n_s_ISType, __pyx_k_ISType, sizeof(__pyx_k_ISType), 0, 0, 1, 1}, + {&__pyx_n_s_IS_buffer, __pyx_k_IS_buffer, sizeof(__pyx_k_IS_buffer), 0, 0, 1, 1}, + {&__pyx_n_s_ITERATING, __pyx_k_ITERATING, sizeof(__pyx_k_ITERATING), 0, 0, 1, 1}, + {&__pyx_kp_s_I_0_is_d_expected_d, __pyx_k_I_0_is_d_expected_d, sizeof(__pyx_k_I_0_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_kp_s_Incompatible_checksums_0x_x_vs_0, __pyx_k_Incompatible_checksums_0x_x_vs_0, sizeof(__pyx_k_Incompatible_checksums_0x_x_vs_0), 0, 0, 1, 0}, + {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, + {&__pyx_kp_s_Indirect_dimensions_not_supporte, __pyx_k_Indirect_dimensions_not_supporte, sizeof(__pyx_k_Indirect_dimensions_not_supporte), 0, 0, 1, 0}, + {&__pyx_n_s_InfoType, __pyx_k_InfoType, sizeof(__pyx_k_InfoType), 0, 0, 1, 1}, + {&__pyx_kp_s_Input_vector_has_no_tensor_infor, __pyx_k_Input_vector_has_no_tensor_infor, sizeof(__pyx_k_Input_vector_has_no_tensor_infor), 0, 0, 1, 0}, + {&__pyx_n_s_InsertMode, __pyx_k_InsertMode, sizeof(__pyx_k_InsertMode), 0, 0, 1, 1}, + {&__pyx_n_s_IntType, __pyx_k_IntType, sizeof(__pyx_k_IntType), 0, 0, 1, 1}, + {&__pyx_n_s_InterpolationType, __pyx_k_InterpolationType, sizeof(__pyx_k_InterpolationType), 0, 0, 1, 1}, + {&__pyx_kp_s_Invalid_mode_expected_c_or_fortr, __pyx_k_Invalid_mode_expected_c_or_fortr, sizeof(__pyx_k_Invalid_mode_expected_c_or_fortr), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_mode_expected_r_w_or_rw, __pyx_k_Invalid_mode_expected_r_w_or_rw, sizeof(__pyx_k_Invalid_mode_expected_r_w_or_rw), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_mode_expected_rw_r_or_w, __pyx_k_Invalid_mode_expected_rw_r_or_w, sizeof(__pyx_k_Invalid_mode_expected_rw_r_or_w), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_shape_in_axis_d_d, __pyx_k_Invalid_shape_in_axis_d_d, sizeof(__pyx_k_Invalid_shape_in_axis_d_d), 0, 0, 1, 0}, + {&__pyx_n_s_J, __pyx_k_J, sizeof(__pyx_k_J), 0, 0, 1, 1}, + {&__pyx_n_s_JACOBI, __pyx_k_JACOBI, sizeof(__pyx_k_JACOBI), 0, 0, 1, 1}, + {&__pyx_n_s_JoinMode, __pyx_k_JoinMode, sizeof(__pyx_k_JoinMode), 0, 0, 1, 1}, + {&__pyx_n_s_KACZMARZ, __pyx_k_KACZMARZ, sizeof(__pyx_k_KACZMARZ), 0, 0, 1, 1}, + {&__pyx_n_s_KAIJ, __pyx_k_KAIJ, sizeof(__pyx_k_KAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_KASKADE, __pyx_k_KASKADE, sizeof(__pyx_k_KASKADE), 0, 0, 1, 1}, + {&__pyx_n_s_KEEP_NONZERO_PATTERN, __pyx_k_KEEP_NONZERO_PATTERN, sizeof(__pyx_k_KEEP_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_KLU, __pyx_k_KLU, sizeof(__pyx_k_KLU), 0, 0, 1, 1}, + {&__pyx_n_s_KOKKOS, __pyx_k_KOKKOS, sizeof(__pyx_k_KOKKOS), 0, 0, 1, 1}, + {&__pyx_n_s_KSP, __pyx_k_KSP, sizeof(__pyx_k_KSP), 0, 0, 1, 1}, + {&__pyx_n_s_KSPConvergedReason, __pyx_k_KSPConvergedReason, sizeof(__pyx_k_KSPConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_KSPNormType, __pyx_k_KSPNormType, sizeof(__pyx_k_KSPNormType), 0, 0, 1, 1}, + {&__pyx_n_s_KSPONLY, __pyx_k_KSPONLY, sizeof(__pyx_k_KSPONLY), 0, 0, 1, 1}, + {&__pyx_n_s_KSPTRANSPOSEONLY, __pyx_k_KSPTRANSPOSEONLY, sizeof(__pyx_k_KSPTRANSPOSEONLY), 0, 0, 1, 1}, + {&__pyx_n_s_KSPType, __pyx_k_KSPType, sizeof(__pyx_k_KSPType), 0, 0, 1, 1}, + {&__pyx_n_s_KeyError, __pyx_k_KeyError, sizeof(__pyx_k_KeyError), 0, 0, 1, 1}, + {&__pyx_n_s_L, __pyx_k_L, sizeof(__pyx_k_L), 0, 0, 1, 1}, + {&__pyx_n_s_LAGRANGE, __pyx_k_LAGRANGE, sizeof(__pyx_k_LAGRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_LAYOUT_GAUSS, __pyx_k_LAYOUT_GAUSS, sizeof(__pyx_k_LAYOUT_GAUSS), 0, 0, 1, 1}, + {&__pyx_n_s_LAYOUT_REGULAR, __pyx_k_LAYOUT_REGULAR, sizeof(__pyx_k_LAYOUT_REGULAR), 0, 0, 1, 1}, + {&__pyx_n_s_LAYOUT_SUBDIVISION, __pyx_k_LAYOUT_SUBDIVISION, sizeof(__pyx_k_LAYOUT_SUBDIVISION), 0, 0, 1, 1}, + {&__pyx_n_s_LCD, __pyx_k_LCD, sizeof(__pyx_k_LCD), 0, 0, 1, 1}, + {&__pyx_n_s_LCL, __pyx_k_LCL, sizeof(__pyx_k_LCL), 0, 0, 1, 1}, + {&__pyx_n_s_LEFT, __pyx_k_LEFT, sizeof(__pyx_k_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_LGMRES, __pyx_k_LGMRES, sizeof(__pyx_k_LGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_LGMap, __pyx_k_LGMap, sizeof(__pyx_k_LGMap), 0, 0, 1, 1}, + {&__pyx_n_s_LGMapType, __pyx_k_LGMapType, sizeof(__pyx_k_LGMapType), 0, 0, 1, 1}, + {&__pyx_n_s_LINEAR, __pyx_k_LINEAR, sizeof(__pyx_k_LINEAR), 0, 0, 1, 1}, + {&__pyx_n_s_LMVM, __pyx_k_LMVM, sizeof(__pyx_k_LMVM), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMBADBROYDEN, __pyx_k_LMVMBADBROYDEN, sizeof(__pyx_k_LMVMBADBROYDEN), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMBFGS, __pyx_k_LMVMBFGS, sizeof(__pyx_k_LMVMBFGS), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMBROYDEN, __pyx_k_LMVMBROYDEN, sizeof(__pyx_k_LMVMBROYDEN), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMDFP, __pyx_k_LMVMDFP, sizeof(__pyx_k_LMVMDFP), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMDIAGBBROYDEN, __pyx_k_LMVMDIAGBBROYDEN, sizeof(__pyx_k_LMVMDIAGBBROYDEN), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMSR1, __pyx_k_LMVMSR1, sizeof(__pyx_k_LMVMSR1), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMSYMBADBROYDEN, __pyx_k_LMVMSYMBADBROYDEN, sizeof(__pyx_k_LMVMSYMBADBROYDEN), 0, 0, 1, 1}, + {&__pyx_n_s_LMVMSYMBROYDEN, __pyx_k_LMVMSYMBROYDEN, sizeof(__pyx_k_LMVMSYMBROYDEN), 0, 0, 1, 1}, + {&__pyx_n_s_LOAD_BALANCE, __pyx_k_LOAD_BALANCE, sizeof(__pyx_k_LOAD_BALANCE), 0, 0, 1, 1}, + {&__pyx_n_s_LOCAL, __pyx_k_LOCAL, sizeof(__pyx_k_LOCAL), 0, 0, 1, 1}, + {&__pyx_n_s_LOCALREF, __pyx_k_LOCALREF, sizeof(__pyx_k_LOCALREF), 0, 0, 1, 1}, + {&__pyx_n_s_LOCAL_BACKWARD_SWEEP, __pyx_k_LOCAL_BACKWARD_SWEEP, sizeof(__pyx_k_LOCAL_BACKWARD_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_LOCAL_FORWARD_SWEEP, __pyx_k_LOCAL_FORWARD_SWEEP, sizeof(__pyx_k_LOCAL_FORWARD_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_LOCAL_SYMMETRIC_SWEEP, __pyx_k_LOCAL_SYMMETRIC_SWEEP, sizeof(__pyx_k_LOCAL_SYMMETRIC_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_LOWER, __pyx_k_LOWER, sizeof(__pyx_k_LOWER), 0, 0, 1, 1}, + {&__pyx_n_s_LRC, __pyx_k_LRC, sizeof(__pyx_k_LRC), 0, 0, 1, 1}, + {&__pyx_n_s_LSC, __pyx_k_LSC, sizeof(__pyx_k_LSC), 0, 0, 1, 1}, + {&__pyx_n_s_LSQR, __pyx_k_LSQR, sizeof(__pyx_k_LSQR), 0, 0, 1, 1}, + {&__pyx_n_s_LU, __pyx_k_LU, sizeof(__pyx_k_LU), 0, 0, 1, 1}, + {&__pyx_n_s_LUSOL, __pyx_k_LUSOL, sizeof(__pyx_k_LUSOL), 0, 0, 1, 1}, + {&__pyx_n_s_Left, __pyx_k_Left, sizeof(__pyx_k_Left), 0, 0, 1, 1}, + {&__pyx_n_s_Log, __pyx_k_Log, sizeof(__pyx_k_Log), 0, 0, 1, 1}, + {&__pyx_n_s_LogClass, __pyx_k_LogClass, sizeof(__pyx_k_LogClass), 0, 0, 1, 1}, + {&__pyx_n_s_LogEvent, __pyx_k_LogEvent, sizeof(__pyx_k_LogEvent), 0, 0, 1, 1}, + {&__pyx_n_s_LogStage, __pyx_k_LogStage, sizeof(__pyx_k_LogStage), 0, 0, 1, 1}, + {&__pyx_n_s_MAIJ, __pyx_k_MAIJ, sizeof(__pyx_k_MAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MAPPING, __pyx_k_MAPPING, sizeof(__pyx_k_MAPPING), 0, 0, 1, 1}, + {&__pyx_n_s_MASK, __pyx_k_MASK, sizeof(__pyx_k_MASK), 0, 0, 1, 1}, + {&__pyx_n_s_MAT, __pyx_k_MAT, sizeof(__pyx_k_MAT), 0, 0, 1, 1}, + {&__pyx_n_s_MATCHSTEP, __pyx_k_MATCHSTEP, sizeof(__pyx_k_MATCHSTEP), 0, 0, 1, 1}, + {&__pyx_n_s_MATHEMATICA, __pyx_k_MATHEMATICA, sizeof(__pyx_k_MATHEMATICA), 0, 0, 1, 1}, + {&__pyx_n_s_MATLAB, __pyx_k_MATLAB, sizeof(__pyx_k_MATLAB), 0, 0, 1, 1}, + {&__pyx_n_s_MATPARTITIONING, __pyx_k_MATPARTITIONING, sizeof(__pyx_k_MATPARTITIONING), 0, 0, 1, 1}, + {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_MAX_VALUES, __pyx_k_MAX_VALUES, sizeof(__pyx_k_MAX_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_MEMORYSCALABLE, __pyx_k_MEMORYSCALABLE, sizeof(__pyx_k_MEMORYSCALABLE), 0, 0, 1, 1}, + {&__pyx_n_s_METISND, __pyx_k_METISND, sizeof(__pyx_k_METISND), 0, 0, 1, 1}, + {&__pyx_n_s_MEYER, __pyx_k_MEYER, sizeof(__pyx_k_MEYER), 0, 0, 1, 1}, + {&__pyx_n_s_MFFD, __pyx_k_MFFD, sizeof(__pyx_k_MFFD), 0, 0, 1, 1}, + {&__pyx_n_s_MG, __pyx_k_MG, sizeof(__pyx_k_MG), 0, 0, 1, 1}, + {&__pyx_n_s_MGCycleType, __pyx_k_MGCycleType, sizeof(__pyx_k_MGCycleType), 0, 0, 1, 1}, + {&__pyx_n_s_MGType, __pyx_k_MGType, sizeof(__pyx_k_MGType), 0, 0, 1, 1}, + {&__pyx_n_s_MIGRATE_BASIC, __pyx_k_MIGRATE_BASIC, sizeof(__pyx_k_MIGRATE_BASIC), 0, 0, 1, 1}, + {&__pyx_n_s_MIGRATE_DMCELLEXACT, __pyx_k_MIGRATE_DMCELLEXACT, sizeof(__pyx_k_MIGRATE_DMCELLEXACT), 0, 0, 1, 1}, + {&__pyx_n_s_MIGRATE_DMCELLNSCATTER, __pyx_k_MIGRATE_DMCELLNSCATTER, sizeof(__pyx_k_MIGRATE_DMCELLNSCATTER), 0, 0, 1, 1}, + {&__pyx_n_s_MIGRATE_USER, __pyx_k_MIGRATE_USER, sizeof(__pyx_k_MIGRATE_USER), 0, 0, 1, 1}, + {&__pyx_n_s_MIMEX, __pyx_k_MIMEX, sizeof(__pyx_k_MIMEX), 0, 0, 1, 1}, + {&__pyx_n_s_MINRES, __pyx_k_MINRES, sizeof(__pyx_k_MINRES), 0, 0, 1, 1}, + {&__pyx_n_s_MIRROR, __pyx_k_MIRROR, sizeof(__pyx_k_MIRROR), 0, 0, 1, 1}, + {&__pyx_n_s_MKL_CPARDISO, __pyx_k_MKL_CPARDISO, sizeof(__pyx_k_MKL_CPARDISO), 0, 0, 1, 1}, + {&__pyx_n_s_MKL_PARDISO, __pyx_k_MKL_PARDISO, sizeof(__pyx_k_MKL_PARDISO), 0, 0, 1, 1}, + {&__pyx_n_s_ML, __pyx_k_ML, sizeof(__pyx_k_ML), 0, 0, 1, 1}, + {&__pyx_n_s_MOAB, __pyx_k_MOAB, sizeof(__pyx_k_MOAB), 0, 0, 1, 1}, + {&__pyx_n_s_MPI, __pyx_k_MPI, sizeof(__pyx_k_MPI), 0, 0, 1, 1}, + {&__pyx_n_s_MPIADJ, __pyx_k_MPIADJ, sizeof(__pyx_k_MPIADJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJ, __pyx_k_MPIAIJ, sizeof(__pyx_k_MPIAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJCRL, __pyx_k_MPIAIJCRL, sizeof(__pyx_k_MPIAIJCRL), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJCUSPARSE, __pyx_k_MPIAIJCUSPARSE, sizeof(__pyx_k_MPIAIJCUSPARSE), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJMKL, __pyx_k_MPIAIJMKL, sizeof(__pyx_k_MPIAIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJPERM, __pyx_k_MPIAIJPERM, sizeof(__pyx_k_MPIAIJPERM), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJSELL, __pyx_k_MPIAIJSELL, sizeof(__pyx_k_MPIAIJSELL), 0, 0, 1, 1}, + {&__pyx_n_s_MPIAIJVIENNACL, __pyx_k_MPIAIJVIENNACL, sizeof(__pyx_k_MPIAIJVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_MPIBAIJ, __pyx_k_MPIBAIJ, sizeof(__pyx_k_MPIBAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPIBAIJMKL, __pyx_k_MPIBAIJMKL, sizeof(__pyx_k_MPIBAIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_MPICUDA, __pyx_k_MPICUDA, sizeof(__pyx_k_MPICUDA), 0, 0, 1, 1}, + {&__pyx_n_s_MPIDENSE, __pyx_k_MPIDENSE, sizeof(__pyx_k_MPIDENSE), 0, 0, 1, 1}, + {&__pyx_n_s_MPIDENSECUDA, __pyx_k_MPIDENSECUDA, sizeof(__pyx_k_MPIDENSECUDA), 0, 0, 1, 1}, + {&__pyx_n_s_MPIHIP, __pyx_k_MPIHIP, sizeof(__pyx_k_MPIHIP), 0, 0, 1, 1}, + {&__pyx_n_s_MPIKAIJ, __pyx_k_MPIKAIJ, sizeof(__pyx_k_MPIKAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPIKOKKOS, __pyx_k_MPIKOKKOS, sizeof(__pyx_k_MPIKOKKOS), 0, 0, 1, 1}, + {&__pyx_n_s_MPIMAIJ, __pyx_k_MPIMAIJ, sizeof(__pyx_k_MPIMAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPISBAIJ, __pyx_k_MPISBAIJ, sizeof(__pyx_k_MPISBAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_MPISELL, __pyx_k_MPISELL, sizeof(__pyx_k_MPISELL), 0, 0, 1, 1}, + {&__pyx_n_s_MPIVIENNACL, __pyx_k_MPIVIENNACL, sizeof(__pyx_k_MPIVIENNACL), 0, 0, 1, 1}, + {&__pyx_kp_s_MPI_Error, __pyx_k_MPI_Error, sizeof(__pyx_k_MPI_Error), 0, 0, 1, 0}, + {&__pyx_n_s_MPRK, __pyx_k_MPRK, sizeof(__pyx_k_MPRK), 0, 0, 1, 1}, + {&__pyx_n_s_MS, __pyx_k_MS, sizeof(__pyx_k_MS), 0, 0, 1, 1}, + {&__pyx_n_s_MULTIPLICATIVE, __pyx_k_MULTIPLICATIVE, sizeof(__pyx_k_MULTIPLICATIVE), 0, 0, 1, 1}, + {&__pyx_n_s_MUMPS, __pyx_k_MUMPS, sizeof(__pyx_k_MUMPS), 0, 0, 1, 1}, + {&__pyx_n_s_MapMode, __pyx_k_MapMode, sizeof(__pyx_k_MapMode), 0, 0, 1, 1}, + {&__pyx_n_s_Mat, __pyx_k_Mat, sizeof(__pyx_k_Mat), 0, 0, 1, 1}, + {&__pyx_n_s_MatAssemblyType, __pyx_k_MatAssemblyType, sizeof(__pyx_k_MatAssemblyType), 0, 0, 1, 1}, + {&__pyx_n_s_MatDuplicateOption, __pyx_k_MatDuplicateOption, sizeof(__pyx_k_MatDuplicateOption), 0, 0, 1, 1}, + {&__pyx_n_s_MatFactorShiftType, __pyx_k_MatFactorShiftType, sizeof(__pyx_k_MatFactorShiftType), 0, 0, 1, 1}, + {&__pyx_n_s_MatInfoType, __pyx_k_MatInfoType, sizeof(__pyx_k_MatInfoType), 0, 0, 1, 1}, + {&__pyx_n_s_MatOption, __pyx_k_MatOption, sizeof(__pyx_k_MatOption), 0, 0, 1, 1}, + {&__pyx_n_s_MatOrderingType, __pyx_k_MatOrderingType, sizeof(__pyx_k_MatOrderingType), 0, 0, 1, 1}, + {&__pyx_n_s_MatPartitioning, __pyx_k_MatPartitioning, sizeof(__pyx_k_MatPartitioning), 0, 0, 1, 1}, + {&__pyx_n_s_MatPartitioningType, __pyx_k_MatPartitioningType, sizeof(__pyx_k_MatPartitioningType), 0, 0, 1, 1}, + {&__pyx_n_s_MatSORType, __pyx_k_MatSORType, sizeof(__pyx_k_MatSORType), 0, 0, 1, 1}, + {&__pyx_n_s_MatSolverType, __pyx_k_MatSolverType, sizeof(__pyx_k_MatSolverType), 0, 0, 1, 1}, + {&__pyx_n_s_MatStructure, __pyx_k_MatStructure, sizeof(__pyx_k_MatStructure), 0, 0, 1, 1}, + {&__pyx_n_s_MatType, __pyx_k_MatType, sizeof(__pyx_k_MatType), 0, 0, 1, 1}, + {&__pyx_n_s_Mat_Stencil, __pyx_k_Mat_Stencil, sizeof(__pyx_k_Mat_Stencil), 0, 0, 1, 1}, + {&__pyx_n_s_MemoryError, __pyx_k_MemoryError, sizeof(__pyx_k_MemoryError), 0, 0, 1, 1}, + {&__pyx_kp_s_MemoryView_of_r_at_0x_x, __pyx_k_MemoryView_of_r_at_0x_x, sizeof(__pyx_k_MemoryView_of_r_at_0x_x), 0, 0, 1, 0}, + {&__pyx_kp_s_MemoryView_of_r_object, __pyx_k_MemoryView_of_r_object, sizeof(__pyx_k_MemoryView_of_r_object), 0, 0, 1, 0}, + {&__pyx_n_s_MigrateType, __pyx_k_MigrateType, sizeof(__pyx_k_MigrateType), 0, 0, 1, 1}, + {&__pyx_kp_s_Missing_input_parameters, __pyx_k_Missing_input_parameters, sizeof(__pyx_k_Missing_input_parameters), 0, 0, 1, 0}, + {&__pyx_n_s_Mode, __pyx_k_Mode, sizeof(__pyx_k_Mode), 0, 0, 1, 1}, + {&__pyx_kp_s_Must_provide_as_many_communicato, __pyx_k_Must_provide_as_many_communicato, sizeof(__pyx_k_Must_provide_as_many_communicato), 0, 0, 1, 0}, + {&__pyx_kp_s_Must_provide_both_sizes_and_poin, __pyx_k_Must_provide_both_sizes_and_poin, sizeof(__pyx_k_Must_provide_both_sizes_and_poin), 0, 0, 1, 0}, + {&__pyx_kp_s_Must_provide_operator_for_USER_o, __pyx_k_Must_provide_operator_for_USER_o, sizeof(__pyx_k_Must_provide_operator_for_USER_o), 0, 0, 1, 0}, + {&__pyx_n_s_N1, __pyx_k_N1, sizeof(__pyx_k_N1), 0, 0, 1, 1}, + {&__pyx_n_s_N12, __pyx_k_N12, sizeof(__pyx_k_N12), 0, 0, 1, 1}, + {&__pyx_n_s_N2, __pyx_k_N2, sizeof(__pyx_k_N2), 0, 0, 1, 1}, + {&__pyx_n_s_NASH, __pyx_k_NASH, sizeof(__pyx_k_NASH), 0, 0, 1, 1}, + {&__pyx_n_s_NASM, __pyx_k_NASM, sizeof(__pyx_k_NASM), 0, 0, 1, 1}, + {&__pyx_n_s_NATIVE, __pyx_k_NATIVE, sizeof(__pyx_k_NATIVE), 0, 0, 1, 1}, + {&__pyx_n_s_NATURAL, __pyx_k_NATURAL, sizeof(__pyx_k_NATURAL), 0, 0, 1, 1}, + {&__pyx_n_s_NCG, __pyx_k_NCG, sizeof(__pyx_k_NCG), 0, 0, 1, 1}, + {&__pyx_n_s_ND, __pyx_k_ND, sizeof(__pyx_k_ND), 0, 0, 1, 1}, + {&__pyx_n_s_ND_Pi, __pyx_k_ND_Pi, sizeof(__pyx_k_ND_Pi), 0, 0, 1, 1}, + {&__pyx_n_s_ND_Pi_Full, __pyx_k_ND_Pi_Full, sizeof(__pyx_k_ND_Pi_Full), 0, 0, 1, 1}, + {&__pyx_n_s_NEIGHBOR, __pyx_k_NEIGHBOR, sizeof(__pyx_k_NEIGHBOR), 0, 0, 1, 1}, + {&__pyx_n_s_NEST, __pyx_k_NEST, sizeof(__pyx_k_NEST), 0, 0, 1, 1}, + {&__pyx_n_s_NETWORK, __pyx_k_NETWORK, sizeof(__pyx_k_NETWORK), 0, 0, 1, 1}, + {&__pyx_n_s_NEWTONLS, __pyx_k_NEWTONLS, sizeof(__pyx_k_NEWTONLS), 0, 0, 1, 1}, + {&__pyx_n_s_NEWTONTR, __pyx_k_NEWTONTR, sizeof(__pyx_k_NEWTONTR), 0, 0, 1, 1}, + {&__pyx_n_s_NEW_NONZERO_ALLOCATION_ERR, __pyx_k_NEW_NONZERO_ALLOCATION_ERR, sizeof(__pyx_k_NEW_NONZERO_ALLOCATION_ERR), 0, 0, 1, 1}, + {&__pyx_n_s_NEW_NONZERO_LOCATIONS, __pyx_k_NEW_NONZERO_LOCATIONS, sizeof(__pyx_k_NEW_NONZERO_LOCATIONS), 0, 0, 1, 1}, + {&__pyx_n_s_NEW_NONZERO_LOCATION_ERR, __pyx_k_NEW_NONZERO_LOCATION_ERR, sizeof(__pyx_k_NEW_NONZERO_LOCATION_ERR), 0, 0, 1, 1}, + {&__pyx_n_s_NGMRES, __pyx_k_NGMRES, sizeof(__pyx_k_NGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_NGS, __pyx_k_NGS, sizeof(__pyx_k_NGS), 0, 0, 1, 1}, + {&__pyx_n_s_NINFINITY, __pyx_k_NINFINITY, sizeof(__pyx_k_NINFINITY), 0, 0, 1, 1}, + {&__pyx_n_s_NLS, __pyx_k_NLS, sizeof(__pyx_k_NLS), 0, 0, 1, 1}, + {&__pyx_n_s_NM, __pyx_k_NM, sizeof(__pyx_k_NM), 0, 0, 1, 1}, + {&__pyx_n_s_NN, __pyx_k_NN, sizeof(__pyx_k_NN), 0, 0, 1, 1}, + {&__pyx_n_s_NO, __pyx_k_NO, sizeof(__pyx_k_NO), 0, 0, 1, 1}, + {&__pyx_n_s_NOERROR, __pyx_k_NOERROR, sizeof(__pyx_k_NOERROR), 0, 0, 1, 1}, + {&__pyx_n_s_NOFORMAT, __pyx_k_NOFORMAT, sizeof(__pyx_k_NOFORMAT), 0, 0, 1, 1}, + {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, + {&__pyx_n_s_NONLINEAR, __pyx_k_NONLINEAR, sizeof(__pyx_k_NONLINEAR), 0, 0, 1, 1}, + {&__pyx_n_s_NONZERO, __pyx_k_NONZERO, sizeof(__pyx_k_NONZERO), 0, 0, 1, 1}, + {&__pyx_n_s_NORMAL, __pyx_k_NORMAL, sizeof(__pyx_k_NORMAL), 0, 0, 1, 1}, + {&__pyx_n_s_NORMALHERMITIAN, __pyx_k_NORMALHERMITIAN, sizeof(__pyx_k_NORMALHERMITIAN), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_1, __pyx_k_NORM_1, sizeof(__pyx_k_NORM_1), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_1_AND_2, __pyx_k_NORM_1_AND_2, sizeof(__pyx_k_NORM_1_AND_2), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_2, __pyx_k_NORM_2, sizeof(__pyx_k_NORM_2), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_ALWAYS, __pyx_k_NORM_ALWAYS, sizeof(__pyx_k_NORM_ALWAYS), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_DEFAULT, __pyx_k_NORM_DEFAULT, sizeof(__pyx_k_NORM_DEFAULT), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_FINAL_ONLY, __pyx_k_NORM_FINAL_ONLY, sizeof(__pyx_k_NORM_FINAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_FROBENIUS, __pyx_k_NORM_FROBENIUS, sizeof(__pyx_k_NORM_FROBENIUS), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_INFINITY, __pyx_k_NORM_INFINITY, sizeof(__pyx_k_NORM_INFINITY), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_INITIAL_FINAL_ONLY, __pyx_k_NORM_INITIAL_FINAL_ONLY, sizeof(__pyx_k_NORM_INITIAL_FINAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_INITIAL_ONLY, __pyx_k_NORM_INITIAL_ONLY, sizeof(__pyx_k_NORM_INITIAL_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_MAX, __pyx_k_NORM_MAX, sizeof(__pyx_k_NORM_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_NATURAL, __pyx_k_NORM_NATURAL, sizeof(__pyx_k_NORM_NATURAL), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_NONE, __pyx_k_NORM_NONE, sizeof(__pyx_k_NORM_NONE), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_PRECONDITIONED, __pyx_k_NORM_PRECONDITIONED, sizeof(__pyx_k_NORM_PRECONDITIONED), 0, 0, 1, 1}, + {&__pyx_n_s_NORM_UNPRECONDITIONED, __pyx_k_NORM_UNPRECONDITIONED, sizeof(__pyx_k_NORM_UNPRECONDITIONED), 0, 0, 1, 1}, + {&__pyx_n_s_NOTSET, __pyx_k_NOTSET, sizeof(__pyx_k_NOTSET), 0, 0, 1, 1}, + {&__pyx_n_s_NOT_SET_VALUES, __pyx_k_NOT_SET_VALUES, sizeof(__pyx_k_NOT_SET_VALUES), 0, 0, 1, 1}, + {&__pyx_n_s_NO_OFF_PROC_ENTRIES, __pyx_k_NO_OFF_PROC_ENTRIES, sizeof(__pyx_k_NO_OFF_PROC_ENTRIES), 0, 0, 1, 1}, + {&__pyx_n_s_NO_OFF_PROC_ZERO_ROWS, __pyx_k_NO_OFF_PROC_ZERO_ROWS, sizeof(__pyx_k_NO_OFF_PROC_ZERO_ROWS), 0, 0, 1, 1}, + {&__pyx_n_s_NO_SYNC, __pyx_k_NO_SYNC, sizeof(__pyx_k_NO_SYNC), 0, 0, 1, 1}, + {&__pyx_n_s_NRICHARDSON, __pyx_k_NRICHARDSON, sizeof(__pyx_k_NRICHARDSON), 0, 0, 1, 1}, + {&__pyx_n_s_NTL, __pyx_k_NTL, sizeof(__pyx_k_NTL), 0, 0, 1, 1}, + {&__pyx_n_s_NTR, __pyx_k_NTR, sizeof(__pyx_k_NTR), 0, 0, 1, 1}, + {&__pyx_n_s_NULLLOC, __pyx_k_NULLLOC, sizeof(__pyx_k_NULLLOC), 0, 0, 1, 1}, + {&__pyx_n_s_NZ, __pyx_k_NZ, sizeof(__pyx_k_NZ), 0, 0, 1, 1}, + {&__pyx_n_s_NormSchedule, __pyx_k_NormSchedule, sizeof(__pyx_k_NormSchedule), 0, 0, 1, 1}, + {&__pyx_n_s_NormType, __pyx_k_NormType, sizeof(__pyx_k_NormType), 0, 0, 1, 1}, + {&__pyx_n_s_NotImplemented, __pyx_k_NotImplemented, sizeof(__pyx_k_NotImplemented), 0, 0, 1, 1}, + {&__pyx_n_s_NotImplementedError, __pyx_k_NotImplementedError, sizeof(__pyx_k_NotImplementedError), 0, 0, 1, 1}, + {&__pyx_kp_s_Not_for_rectangular_matrices, __pyx_k_Not_for_rectangular_matrices, sizeof(__pyx_k_Not_for_rectangular_matrices), 0, 0, 1, 0}, + {&__pyx_kp_s_Not_for_type, __pyx_k_Not_for_type, sizeof(__pyx_k_Not_for_type), 0, 0, 1, 0}, + {&__pyx_n_s_NullSpace, __pyx_k_NullSpace, sizeof(__pyx_k_NullSpace), 0, 0, 1, 1}, + {&__pyx_n_b_O, __pyx_k_O, sizeof(__pyx_k_O), 0, 0, 0, 1}, + {&__pyx_n_s_ODE_EXPLICIT, __pyx_k_ODE_EXPLICIT, sizeof(__pyx_k_ODE_EXPLICIT), 0, 0, 1, 1}, + {&__pyx_n_s_ODE_IMPLICIT, __pyx_k_ODE_IMPLICIT, sizeof(__pyx_k_ODE_IMPLICIT), 0, 0, 1, 1}, + {&__pyx_n_s_OPENCL, __pyx_k_OPENCL, sizeof(__pyx_k_OPENCL), 0, 0, 1, 1}, + {&__pyx_n_s_OPTION_MAX, __pyx_k_OPTION_MAX, sizeof(__pyx_k_OPTION_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_OPTION_MIN, __pyx_k_OPTION_MIN, sizeof(__pyx_k_OPTION_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_OWD, __pyx_k_OWD, sizeof(__pyx_k_OWD), 0, 0, 1, 1}, + {&__pyx_n_s_OWLQN, __pyx_k_OWLQN, sizeof(__pyx_k_OWLQN), 0, 0, 1, 1}, + {&__pyx_n_s_Object, __pyx_k_Object, sizeof(__pyx_k_Object), 0, 0, 1, 1}, + {&__pyx_kp_s_Object_is_not_writable, __pyx_k_Object_is_not_writable, sizeof(__pyx_k_Object_is_not_writable), 0, 0, 1, 0}, + {&__pyx_n_s_Option, __pyx_k_Option, sizeof(__pyx_k_Option), 0, 0, 1, 1}, + {&__pyx_n_s_Options, __pyx_k_Options, sizeof(__pyx_k_Options), 0, 0, 1, 1}, + {&__pyx_n_s_OrderingType, __pyx_k_OrderingType, sizeof(__pyx_k_OrderingType), 0, 0, 1, 1}, + {&__pyx_kp_s_Out_of_bounds_on_buffer_access_a, __pyx_k_Out_of_bounds_on_buffer_access_a, sizeof(__pyx_k_Out_of_bounds_on_buffer_access_a), 0, 0, 1, 0}, + {&__pyx_kp_s_Out_of_memory_Allocated_d_Used_b, __pyx_k_Out_of_memory_Allocated_d_Used_b, sizeof(__pyx_k_Out_of_memory_Allocated_d_Used_b), 0, 0, 1, 0}, + {&__pyx_n_s_P, __pyx_k_P, sizeof(__pyx_k_P), 0, 0, 1, 1}, + {&__pyx_n_s_P1, __pyx_k_P1, sizeof(__pyx_k_P1), 0, 0, 1, 1}, + {&__pyx_n_s_P4EST, __pyx_k_P4EST, sizeof(__pyx_k_P4EST), 0, 0, 1, 1}, + {&__pyx_n_s_P8EST, __pyx_k_P8EST, sizeof(__pyx_k_P8EST), 0, 0, 1, 1}, + {&__pyx_n_s_PARDECOMP, __pyx_k_PARDECOMP, sizeof(__pyx_k_PARDECOMP), 0, 0, 1, 1}, + {&__pyx_n_s_PARMETIS, __pyx_k_PARMETIS, sizeof(__pyx_k_PARMETIS), 0, 0, 1, 1}, + {&__pyx_n_s_PARMS, __pyx_k_PARMS, sizeof(__pyx_k_PARMS), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGAVERAGE, __pyx_k_PARTITIONINGAVERAGE, sizeof(__pyx_k_PARTITIONINGAVERAGE), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGCHACO, __pyx_k_PARTITIONINGCHACO, sizeof(__pyx_k_PARTITIONINGCHACO), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGCURRENT, __pyx_k_PARTITIONINGCURRENT, sizeof(__pyx_k_PARTITIONINGCURRENT), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGHIERARCH, __pyx_k_PARTITIONINGHIERARCH, sizeof(__pyx_k_PARTITIONINGHIERARCH), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGPARMETIS, __pyx_k_PARTITIONINGPARMETIS, sizeof(__pyx_k_PARTITIONINGPARMETIS), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGPARTY, __pyx_k_PARTITIONINGPARTY, sizeof(__pyx_k_PARTITIONINGPARTY), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGPTSCOTCH, __pyx_k_PARTITIONINGPTSCOTCH, sizeof(__pyx_k_PARTITIONINGPTSCOTCH), 0, 0, 1, 1}, + {&__pyx_n_s_PARTITIONINGSQUARE, __pyx_k_PARTITIONINGSQUARE, sizeof(__pyx_k_PARTITIONINGSQUARE), 0, 0, 1, 1}, + {&__pyx_n_s_PASTIX, __pyx_k_PASTIX, sizeof(__pyx_k_PASTIX), 0, 0, 1, 1}, + {&__pyx_n_s_PATCH, __pyx_k_PATCH, sizeof(__pyx_k_PATCH), 0, 0, 1, 1}, + {&__pyx_n_s_PBJACOBI, __pyx_k_PBJACOBI, sizeof(__pyx_k_PBJACOBI), 0, 0, 1, 1}, + {&__pyx_n_s_PC, __pyx_k_PC, sizeof(__pyx_k_PC), 0, 0, 1, 1}, + {&__pyx_n_s_PCASMType, __pyx_k_PCASMType, sizeof(__pyx_k_PCASMType), 0, 0, 1, 1}, + {&__pyx_n_s_PCCompositeType, __pyx_k_PCCompositeType, sizeof(__pyx_k_PCCompositeType), 0, 0, 1, 1}, + {&__pyx_n_s_PCDeflationSpaceType, __pyx_k_PCDeflationSpaceType, sizeof(__pyx_k_PCDeflationSpaceType), 0, 0, 1, 1}, + {&__pyx_n_s_PCFailedReason, __pyx_k_PCFailedReason, sizeof(__pyx_k_PCFailedReason), 0, 0, 1, 1}, + {&__pyx_n_s_PCFieldSplitSchurFactType, __pyx_k_PCFieldSplitSchurFactType, sizeof(__pyx_k_PCFieldSplitSchurFactType), 0, 0, 1, 1}, + {&__pyx_n_s_PCFieldSplitSchurPreType, __pyx_k_PCFieldSplitSchurPreType, sizeof(__pyx_k_PCFieldSplitSchurPreType), 0, 0, 1, 1}, + {&__pyx_n_s_PCGAMGType, __pyx_k_PCGAMGType, sizeof(__pyx_k_PCGAMGType), 0, 0, 1, 1}, + {&__pyx_n_s_PCGASMType, __pyx_k_PCGASMType, sizeof(__pyx_k_PCGASMType), 0, 0, 1, 1}, + {&__pyx_n_s_PCHPDDMCoarseCorrectionType, __pyx_k_PCHPDDMCoarseCorrectionType, sizeof(__pyx_k_PCHPDDMCoarseCorrectionType), 0, 0, 1, 1}, + {&__pyx_n_s_PCMGCycleType, __pyx_k_PCMGCycleType, sizeof(__pyx_k_PCMGCycleType), 0, 0, 1, 1}, + {&__pyx_n_s_PCMGType, __pyx_k_PCMGType, sizeof(__pyx_k_PCMGType), 0, 0, 1, 1}, + {&__pyx_n_s_PCPatchConstructType, __pyx_k_PCPatchConstructType, sizeof(__pyx_k_PCPatchConstructType), 0, 0, 1, 1}, + {&__pyx_n_s_PCSide, __pyx_k_PCSide, sizeof(__pyx_k_PCSide), 0, 0, 1, 1}, + {&__pyx_n_s_PCType, __pyx_k_PCType, sizeof(__pyx_k_PCType), 0, 0, 1, 1}, + {&__pyx_n_s_PD, __pyx_k_PD, sizeof(__pyx_k_PD), 0, 0, 1, 1}, + {&__pyx_n_s_PDIPM, __pyx_k_PDIPM, sizeof(__pyx_k_PDIPM), 0, 0, 1, 1}, + {&__pyx_n_s_PERIODIC, __pyx_k_PERIODIC, sizeof(__pyx_k_PERIODIC), 0, 0, 1, 1}, + {&__pyx_n_s_PETSC, __pyx_k_PETSC, sizeof(__pyx_k_PETSC), 0, 0, 1, 1}, + {&__pyx_kp_s_PETSc_Error_d, __pyx_k_PETSc_Error_d, sizeof(__pyx_k_PETSc_Error_d), 0, 0, 1, 0}, + {&__pyx_n_s_PFMG, __pyx_k_PFMG, sizeof(__pyx_k_PFMG), 0, 0, 1, 1}, + {&__pyx_n_s_PGMRES, __pyx_k_PGMRES, sizeof(__pyx_k_PGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_PIC, __pyx_k_PIC, sizeof(__pyx_k_PIC), 0, 0, 1, 1}, + {&__pyx_n_s_PICLayoutType, __pyx_k_PICLayoutType, sizeof(__pyx_k_PICLayoutType), 0, 0, 1, 1}, + {&__pyx_n_s_PINFINITY, __pyx_k_PINFINITY, sizeof(__pyx_k_PINFINITY), 0, 0, 1, 1}, + {&__pyx_n_s_PIPEBCGS, __pyx_k_PIPEBCGS, sizeof(__pyx_k_PIPEBCGS), 0, 0, 1, 1}, + {&__pyx_n_s_PIPECG, __pyx_k_PIPECG, sizeof(__pyx_k_PIPECG), 0, 0, 1, 1}, + {&__pyx_n_s_PIPECG2, __pyx_k_PIPECG2, sizeof(__pyx_k_PIPECG2), 0, 0, 1, 1}, + {&__pyx_n_s_PIPECGRR, __pyx_k_PIPECGRR, sizeof(__pyx_k_PIPECGRR), 0, 0, 1, 1}, + {&__pyx_n_s_PIPECR, __pyx_k_PIPECR, sizeof(__pyx_k_PIPECR), 0, 0, 1, 1}, + {&__pyx_n_s_PIPEFCG, __pyx_k_PIPEFCG, sizeof(__pyx_k_PIPEFCG), 0, 0, 1, 1}, + {&__pyx_n_s_PIPEFGMRES, __pyx_k_PIPEFGMRES, sizeof(__pyx_k_PIPEFGMRES), 0, 0, 1, 1}, + {&__pyx_n_s_PIPEGCR, __pyx_k_PIPEGCR, sizeof(__pyx_k_PIPEGCR), 0, 0, 1, 1}, + {&__pyx_n_s_PIPELCG, __pyx_k_PIPELCG, sizeof(__pyx_k_PIPELCG), 0, 0, 1, 1}, + {&__pyx_n_s_PIPEPRCG, __pyx_k_PIPEPRCG, sizeof(__pyx_k_PIPEPRCG), 0, 0, 1, 1}, + {&__pyx_n_s_PLEX, __pyx_k_PLEX, sizeof(__pyx_k_PLEX), 0, 0, 1, 1}, + {&__pyx_n_s_POINT, __pyx_k_POINT, sizeof(__pyx_k_POINT), 0, 0, 1, 1}, + {&__pyx_n_s_POINT_PRISM_TENSOR, __pyx_k_POINT_PRISM_TENSOR, sizeof(__pyx_k_POINT_PRISM_TENSOR), 0, 0, 1, 1}, + {&__pyx_n_s_POLYNOMIAL, __pyx_k_POLYNOMIAL, sizeof(__pyx_k_POLYNOMIAL), 0, 0, 1, 1}, + {&__pyx_n_s_POSITIVE_DEFINITE, __pyx_k_POSITIVE_DEFINITE, sizeof(__pyx_k_POSITIVE_DEFINITE), 0, 0, 1, 1}, + {&__pyx_n_s_POUNDERS, __pyx_k_POUNDERS, sizeof(__pyx_k_POUNDERS), 0, 0, 1, 1}, + {&__pyx_n_s_PREALLOCATOR, __pyx_k_PREALLOCATOR, sizeof(__pyx_k_PREALLOCATOR), 0, 0, 1, 1}, + {&__pyx_n_s_PRECONDITIONED, __pyx_k_PRECONDITIONED, sizeof(__pyx_k_PRECONDITIONED), 0, 0, 1, 1}, + {&__pyx_n_s_PREONLY, __pyx_k_PREONLY, sizeof(__pyx_k_PREONLY), 0, 0, 1, 1}, + {&__pyx_n_s_PRODUCT, __pyx_k_PRODUCT, sizeof(__pyx_k_PRODUCT), 0, 0, 1, 1}, + {&__pyx_n_s_PSEUDO, __pyx_k_PSEUDO, sizeof(__pyx_k_PSEUDO), 0, 0, 1, 1}, + {&__pyx_n_s_PTRIMMED, __pyx_k_PTRIMMED, sizeof(__pyx_k_PTRIMMED), 0, 0, 1, 1}, + {&__pyx_n_s_PTSCOTCH, __pyx_k_PTSCOTCH, sizeof(__pyx_k_PTSCOTCH), 0, 0, 1, 1}, + {&__pyx_n_s_PYRAMID, __pyx_k_PYRAMID, sizeof(__pyx_k_PYRAMID), 0, 0, 1, 1}, + {&__pyx_n_s_PYTHON, __pyx_k_PYTHON, sizeof(__pyx_k_PYTHON), 0, 0, 1, 1}, + {&__pyx_n_s_Partitioner, __pyx_k_Partitioner, sizeof(__pyx_k_Partitioner), 0, 0, 1, 1}, + {&__pyx_n_s_PartitionerType, __pyx_k_PartitionerType, sizeof(__pyx_k_PartitionerType), 0, 0, 1, 1}, + {&__pyx_n_s_PatchConstructType, __pyx_k_PatchConstructType, sizeof(__pyx_k_PatchConstructType), 0, 0, 1, 1}, + {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_PolytopeType, __pyx_k_PolytopeType, sizeof(__pyx_k_PolytopeType), 0, 0, 1, 1}, + {&__pyx_kp_u_Portable_Extensible_Toolkit_for, __pyx_k_Portable_Extensible_Toolkit_for, sizeof(__pyx_k_Portable_Extensible_Toolkit_for), 0, 1, 0, 0}, + {&__pyx_n_s_Print, __pyx_k_Print, sizeof(__pyx_k_Print), 0, 0, 1, 1}, + {&__pyx_n_s_ProblemType, __pyx_k_ProblemType, sizeof(__pyx_k_ProblemType), 0, 0, 1, 1}, + {&__pyx_n_s_PtAP, __pyx_k_PtAP, sizeof(__pyx_k_PtAP), 0, 0, 1, 1}, + {&__pyx_n_s_Q0, __pyx_k_Q0, sizeof(__pyx_k_Q0), 0, 0, 1, 1}, + {&__pyx_n_s_Q1, __pyx_k_Q1, sizeof(__pyx_k_Q1), 0, 0, 1, 1}, + {&__pyx_n_s_QCG, __pyx_k_QCG, sizeof(__pyx_k_QCG), 0, 0, 1, 1}, + {&__pyx_n_s_QMD, __pyx_k_QMD, sizeof(__pyx_k_QMD), 0, 0, 1, 1}, + {&__pyx_n_s_QMRCGS, __pyx_k_QMRCGS, sizeof(__pyx_k_QMRCGS), 0, 0, 1, 1}, + {&__pyx_n_s_QN, __pyx_k_QN, sizeof(__pyx_k_QN), 0, 0, 1, 1}, + {&__pyx_n_s_QR, __pyx_k_QR, sizeof(__pyx_k_QR), 0, 0, 1, 1}, + {&__pyx_n_s_QUADRILATERAL, __pyx_k_QUADRILATERAL, sizeof(__pyx_k_QUADRILATERAL), 0, 0, 1, 1}, + {&__pyx_n_s_QUAD_PRISM_TENSOR, __pyx_k_QUAD_PRISM_TENSOR, sizeof(__pyx_k_QUAD_PRISM_TENSOR), 0, 0, 1, 1}, + {&__pyx_n_s_QUARTER, __pyx_k_QUARTER, sizeof(__pyx_k_QUARTER), 0, 0, 1, 1}, + {&__pyx_n_s_QUARTER_SIZE, __pyx_k_QUARTER_SIZE, sizeof(__pyx_k_QUARTER_SIZE), 0, 0, 1, 1}, + {&__pyx_n_s_Quad, __pyx_k_Quad, sizeof(__pyx_k_Quad), 0, 0, 1, 1}, + {&__pyx_n_s_R, __pyx_k_R, sizeof(__pyx_k_R), 0, 0, 1, 1}, + {&__pyx_n_s_RADAU5, __pyx_k_RADAU5, sizeof(__pyx_k_RADAU5), 0, 0, 1, 1}, + {&__pyx_n_s_RAND, __pyx_k_RAND, sizeof(__pyx_k_RAND), 0, 0, 1, 1}, + {&__pyx_n_s_RAND48, __pyx_k_RAND48, sizeof(__pyx_k_RAND48), 0, 0, 1, 1}, + {&__pyx_n_s_RANDER48, __pyx_k_RANDER48, sizeof(__pyx_k_RANDER48), 0, 0, 1, 1}, + {&__pyx_n_s_RANDOM123, __pyx_k_RANDOM123, sizeof(__pyx_k_RANDOM123), 0, 0, 1, 1}, + {&__pyx_n_s_RARt, __pyx_k_RARt, sizeof(__pyx_k_RARt), 0, 0, 1, 1}, + {&__pyx_n_s_RCM, __pyx_k_RCM, sizeof(__pyx_k_RCM), 0, 0, 1, 1}, + {&__pyx_n_s_READ, __pyx_k_READ, sizeof(__pyx_k_READ), 0, 0, 1, 1}, + {&__pyx_n_s_REDISTRIBUTE, __pyx_k_REDISTRIBUTE, sizeof(__pyx_k_REDISTRIBUTE), 0, 0, 1, 1}, + {&__pyx_n_s_REDUNDANT, __pyx_k_REDUNDANT, sizeof(__pyx_k_REDUNDANT), 0, 0, 1, 1}, + {&__pyx_n_s_REFINE1D, __pyx_k_REFINE1D, sizeof(__pyx_k_REFINE1D), 0, 0, 1, 1}, + {&__pyx_n_s_REFINEALFELD, __pyx_k_REFINEALFELD, sizeof(__pyx_k_REFINEALFELD), 0, 0, 1, 1}, + {&__pyx_n_s_REFINEBOUNDARYLAYER, __pyx_k_REFINEBOUNDARYLAYER, sizeof(__pyx_k_REFINEBOUNDARYLAYER), 0, 0, 1, 1}, + {&__pyx_n_s_REFINED, __pyx_k_REFINED, sizeof(__pyx_k_REFINED), 0, 0, 1, 1}, + {&__pyx_n_s_REFINEPOWELLSABIN, __pyx_k_REFINEPOWELLSABIN, sizeof(__pyx_k_REFINEPOWELLSABIN), 0, 0, 1, 1}, + {&__pyx_n_s_REFINEREGULAR, __pyx_k_REFINEREGULAR, sizeof(__pyx_k_REFINEREGULAR), 0, 0, 1, 1}, + {&__pyx_n_s_REFINESBR, __pyx_k_REFINESBR, sizeof(__pyx_k_REFINESBR), 0, 0, 1, 1}, + {&__pyx_n_s_REFINETOBOX, __pyx_k_REFINETOBOX, sizeof(__pyx_k_REFINETOBOX), 0, 0, 1, 1}, + {&__pyx_n_s_REFINETOSIMPLEX, __pyx_k_REFINETOSIMPLEX, sizeof(__pyx_k_REFINETOSIMPLEX), 0, 0, 1, 1}, + {&__pyx_n_s_RESTRICT, __pyx_k_RESTRICT, sizeof(__pyx_k_RESTRICT), 0, 0, 1, 1}, + {&__pyx_n_s_REVERSE, __pyx_k_REVERSE, sizeof(__pyx_k_REVERSE), 0, 0, 1, 1}, + {&__pyx_n_s_REVERSE_LOCAL, __pyx_k_REVERSE_LOCAL, sizeof(__pyx_k_REVERSE_LOCAL), 0, 0, 1, 1}, + {&__pyx_n_s_RICHARDSON, __pyx_k_RICHARDSON, sizeof(__pyx_k_RICHARDSON), 0, 0, 1, 1}, + {&__pyx_n_s_RIGHT, __pyx_k_RIGHT, sizeof(__pyx_k_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_RK, __pyx_k_RK, sizeof(__pyx_k_RK), 0, 0, 1, 1}, + {&__pyx_n_s_RK1FE, __pyx_k_RK1FE, sizeof(__pyx_k_RK1FE), 0, 0, 1, 1}, + {&__pyx_n_s_RK2A, __pyx_k_RK2A, sizeof(__pyx_k_RK2A), 0, 0, 1, 1}, + {&__pyx_n_s_RK2B, __pyx_k_RK2B, sizeof(__pyx_k_RK2B), 0, 0, 1, 1}, + {&__pyx_n_s_RK3, __pyx_k_RK3, sizeof(__pyx_k_RK3), 0, 0, 1, 1}, + {&__pyx_n_s_RK3BS, __pyx_k_RK3BS, sizeof(__pyx_k_RK3BS), 0, 0, 1, 1}, + {&__pyx_n_s_RK4, __pyx_k_RK4, sizeof(__pyx_k_RK4), 0, 0, 1, 1}, + {&__pyx_n_s_RK5BS, __pyx_k_RK5BS, sizeof(__pyx_k_RK5BS), 0, 0, 1, 1}, + {&__pyx_n_s_RK5DP, __pyx_k_RK5DP, sizeof(__pyx_k_RK5DP), 0, 0, 1, 1}, + {&__pyx_n_s_RK5F, __pyx_k_RK5F, sizeof(__pyx_k_RK5F), 0, 0, 1, 1}, + {&__pyx_n_s_RK6VR, __pyx_k_RK6VR, sizeof(__pyx_k_RK6VR), 0, 0, 1, 1}, + {&__pyx_n_s_RK7VR, __pyx_k_RK7VR, sizeof(__pyx_k_RK7VR), 0, 0, 1, 1}, + {&__pyx_n_s_RK8VR, __pyx_k_RK8VR, sizeof(__pyx_k_RK8VR), 0, 0, 1, 1}, + {&__pyx_n_s_RKType, __pyx_k_RKType, sizeof(__pyx_k_RKType), 0, 0, 1, 1}, + {&__pyx_n_s_ROSW, __pyx_k_ROSW, sizeof(__pyx_k_ROSW), 0, 0, 1, 1}, + {&__pyx_n_s_ROWLENGTH, __pyx_k_ROWLENGTH, sizeof(__pyx_k_ROWLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_ROWSCALINGVIENNACL, __pyx_k_ROWSCALINGVIENNACL, sizeof(__pyx_k_ROWSCALINGVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_ROW_ORIENTED, __pyx_k_ROW_ORIENTED, sizeof(__pyx_k_ROW_ORIENTED), 0, 0, 1, 1}, + {&__pyx_n_s_RT_Pi, __pyx_k_RT_Pi, sizeof(__pyx_k_RT_Pi), 0, 0, 1, 1}, + {&__pyx_n_s_RT_Pi_Full, __pyx_k_RT_Pi_Full, sizeof(__pyx_k_RT_Pi_Full), 0, 0, 1, 1}, + {&__pyx_n_s_RUNGE_KUTTA, __pyx_k_RUNGE_KUTTA, sizeof(__pyx_k_RUNGE_KUTTA), 0, 0, 1, 1}, + {&__pyx_n_s_Random, __pyx_k_Random, sizeof(__pyx_k_Random), 0, 0, 1, 1}, + {&__pyx_n_s_RandomType, __pyx_k_RandomType, sizeof(__pyx_k_RandomType), 0, 0, 1, 1}, + {&__pyx_n_s_RealType, __pyx_k_RealType, sizeof(__pyx_k_RealType), 0, 0, 1, 1}, + {&__pyx_n_s_Reason, __pyx_k_Reason, sizeof(__pyx_k_Reason), 0, 0, 1, 1}, + {&__pyx_n_s_ReorderDefaultFlag, __pyx_k_ReorderDefaultFlag, sizeof(__pyx_k_ReorderDefaultFlag), 0, 0, 1, 1}, + {&__pyx_n_s_Right, __pyx_k_Right, sizeof(__pyx_k_Right), 0, 0, 1, 1}, + {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, + {&__pyx_n_s_S, __pyx_k_S, sizeof(__pyx_k_S), 0, 0, 1, 1}, + {&__pyx_n_s_SAME, __pyx_k_SAME, sizeof(__pyx_k_SAME), 0, 0, 1, 1}, + {&__pyx_n_s_SAME_NONZERO_PATTERN, __pyx_k_SAME_NONZERO_PATTERN, sizeof(__pyx_k_SAME_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_SAME_NZ, __pyx_k_SAME_NZ, sizeof(__pyx_k_SAME_NZ), 0, 0, 1, 1}, + {&__pyx_n_s_SAVIENNACL, __pyx_k_SAVIENNACL, sizeof(__pyx_k_SAVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_SAWS, __pyx_k_SAWS, sizeof(__pyx_k_SAWS), 0, 0, 1, 1}, + {&__pyx_n_s_SBAIJ, __pyx_k_SBAIJ, sizeof(__pyx_k_SBAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SCALAPACK, __pyx_k_SCALAPACK, sizeof(__pyx_k_SCALAPACK), 0, 0, 1, 1}, + {&__pyx_n_s_SCATTER, __pyx_k_SCATTER, sizeof(__pyx_k_SCATTER), 0, 0, 1, 1}, + {&__pyx_n_s_SCATTER_FORWARD, __pyx_k_SCATTER_FORWARD, sizeof(__pyx_k_SCATTER_FORWARD), 0, 0, 1, 1}, + {&__pyx_n_s_SCATTER_FORWARD_LOCAL, __pyx_k_SCATTER_FORWARD_LOCAL, sizeof(__pyx_k_SCATTER_FORWARD_LOCAL), 0, 0, 1, 1}, + {&__pyx_n_s_SCATTER_REVERSE, __pyx_k_SCATTER_REVERSE, sizeof(__pyx_k_SCATTER_REVERSE), 0, 0, 1, 1}, + {&__pyx_n_s_SCATTER_REVERSE_LOCAL, __pyx_k_SCATTER_REVERSE_LOCAL, sizeof(__pyx_k_SCATTER_REVERSE_LOCAL), 0, 0, 1, 1}, + {&__pyx_n_s_SCHUR, __pyx_k_SCHUR, sizeof(__pyx_k_SCHUR), 0, 0, 1, 1}, + {&__pyx_n_s_SCHURCOMPLEMENT, __pyx_k_SCHURCOMPLEMENT, sizeof(__pyx_k_SCHURCOMPLEMENT), 0, 0, 1, 1}, + {&__pyx_n_s_SEGMENT, __pyx_k_SEGMENT, sizeof(__pyx_k_SEGMENT), 0, 0, 1, 1}, + {&__pyx_n_s_SEG_PRISM_TENSOR, __pyx_k_SEG_PRISM_TENSOR, sizeof(__pyx_k_SEG_PRISM_TENSOR), 0, 0, 1, 1}, + {&__pyx_n_s_SELF, __pyx_k_SELF, sizeof(__pyx_k_SELF), 0, 0, 1, 1}, + {&__pyx_n_s_SELFP, __pyx_k_SELFP, sizeof(__pyx_k_SELFP), 0, 0, 1, 1}, + {&__pyx_n_s_SELL, __pyx_k_SELL, sizeof(__pyx_k_SELL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQ, __pyx_k_SEQ, sizeof(__pyx_k_SEQ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJ, __pyx_k_SEQAIJ, sizeof(__pyx_k_SEQAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJCRL, __pyx_k_SEQAIJCRL, sizeof(__pyx_k_SEQAIJCRL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJCUSPARSE, __pyx_k_SEQAIJCUSPARSE, sizeof(__pyx_k_SEQAIJCUSPARSE), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJMKL, __pyx_k_SEQAIJMKL, sizeof(__pyx_k_SEQAIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJPERM, __pyx_k_SEQAIJPERM, sizeof(__pyx_k_SEQAIJPERM), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJSELL, __pyx_k_SEQAIJSELL, sizeof(__pyx_k_SEQAIJSELL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQAIJVIENNACL, __pyx_k_SEQAIJVIENNACL, sizeof(__pyx_k_SEQAIJVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQBAIJ, __pyx_k_SEQBAIJ, sizeof(__pyx_k_SEQBAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQBAIJMKL, __pyx_k_SEQBAIJMKL, sizeof(__pyx_k_SEQBAIJMKL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQCUDA, __pyx_k_SEQCUDA, sizeof(__pyx_k_SEQCUDA), 0, 0, 1, 1}, + {&__pyx_n_s_SEQCUFFT, __pyx_k_SEQCUFFT, sizeof(__pyx_k_SEQCUFFT), 0, 0, 1, 1}, + {&__pyx_n_s_SEQDENSE, __pyx_k_SEQDENSE, sizeof(__pyx_k_SEQDENSE), 0, 0, 1, 1}, + {&__pyx_n_s_SEQDENSECUDA, __pyx_k_SEQDENSECUDA, sizeof(__pyx_k_SEQDENSECUDA), 0, 0, 1, 1}, + {&__pyx_n_s_SEQHIP, __pyx_k_SEQHIP, sizeof(__pyx_k_SEQHIP), 0, 0, 1, 1}, + {&__pyx_n_s_SEQKAIJ, __pyx_k_SEQKAIJ, sizeof(__pyx_k_SEQKAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQKOKKOS, __pyx_k_SEQKOKKOS, sizeof(__pyx_k_SEQKOKKOS), 0, 0, 1, 1}, + {&__pyx_n_s_SEQMAIJ, __pyx_k_SEQMAIJ, sizeof(__pyx_k_SEQMAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQSBAIJ, __pyx_k_SEQSBAIJ, sizeof(__pyx_k_SEQSBAIJ), 0, 0, 1, 1}, + {&__pyx_n_s_SEQSELL, __pyx_k_SEQSELL, sizeof(__pyx_k_SEQSELL), 0, 0, 1, 1}, + {&__pyx_n_s_SEQVIENNACL, __pyx_k_SEQVIENNACL, sizeof(__pyx_k_SEQVIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_SETUP_ERROR, __pyx_k_SETUP_ERROR, sizeof(__pyx_k_SETUP_ERROR), 0, 0, 1, 1}, + {&__pyx_n_s_SF, __pyx_k_SF, sizeof(__pyx_k_SF), 0, 0, 1, 1}, + {&__pyx_n_s_SFType, __pyx_k_SFType, sizeof(__pyx_k_SFType), 0, 0, 1, 1}, + {&__pyx_n_s_SHARED, __pyx_k_SHARED, sizeof(__pyx_k_SHARED), 0, 0, 1, 1}, + {&__pyx_n_s_SHARE_NONZERO_PATTERN, __pyx_k_SHARE_NONZERO_PATTERN, sizeof(__pyx_k_SHARE_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_SHELL, __pyx_k_SHELL, sizeof(__pyx_k_SHELL), 0, 0, 1, 1}, + {&__pyx_n_s_SIMPLE, __pyx_k_SIMPLE, sizeof(__pyx_k_SIMPLE), 0, 0, 1, 1}, + {&__pyx_n_s_SLICED, __pyx_k_SLICED, sizeof(__pyx_k_SLICED), 0, 0, 1, 1}, + {&__pyx_n_s_SNES, __pyx_k_SNES, sizeof(__pyx_k_SNES), 0, 0, 1, 1}, + {&__pyx_n_s_SNESConvergedReason, __pyx_k_SNESConvergedReason, sizeof(__pyx_k_SNESConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_SNESNormSchedule, __pyx_k_SNESNormSchedule, sizeof(__pyx_k_SNESNormSchedule), 0, 0, 1, 1}, + {&__pyx_n_s_SNESType, __pyx_k_SNESType, sizeof(__pyx_k_SNESType), 0, 0, 1, 1}, + {&__pyx_n_s_SOCKET, __pyx_k_SOCKET, sizeof(__pyx_k_SOCKET), 0, 0, 1, 1}, + {&__pyx_n_s_SOR, __pyx_k_SOR, sizeof(__pyx_k_SOR), 0, 0, 1, 1}, + {&__pyx_n_s_SORTED_FULL, __pyx_k_SORTED_FULL, sizeof(__pyx_k_SORTED_FULL), 0, 0, 1, 1}, + {&__pyx_n_s_SORType, __pyx_k_SORType, sizeof(__pyx_k_SORType), 0, 0, 1, 1}, + {&__pyx_n_s_SPAI, __pyx_k_SPAI, sizeof(__pyx_k_SPAI), 0, 0, 1, 1}, + {&__pyx_n_s_SPARSEELEMENTAL, __pyx_k_SPARSEELEMENTAL, sizeof(__pyx_k_SPARSEELEMENTAL), 0, 0, 1, 1}, + {&__pyx_n_s_SPD, __pyx_k_SPD, sizeof(__pyx_k_SPD), 0, 0, 1, 1}, + {&__pyx_n_s_SPECIAL, __pyx_k_SPECIAL, sizeof(__pyx_k_SPECIAL), 0, 0, 1, 1}, + {&__pyx_n_s_SPECTRAL, __pyx_k_SPECTRAL, sizeof(__pyx_k_SPECTRAL), 0, 0, 1, 1}, + {&__pyx_n_s_SPQR, __pyx_k_SPQR, sizeof(__pyx_k_SPQR), 0, 0, 1, 1}, + {&__pyx_n_s_SPRNG, __pyx_k_SPRNG, sizeof(__pyx_k_SPRNG), 0, 0, 1, 1}, + {&__pyx_n_s_SSFLS, __pyx_k_SSFLS, sizeof(__pyx_k_SSFLS), 0, 0, 1, 1}, + {&__pyx_n_s_SSILS, __pyx_k_SSILS, sizeof(__pyx_k_SSILS), 0, 0, 1, 1}, + {&__pyx_n_s_SSP, __pyx_k_SSP, sizeof(__pyx_k_SSP), 0, 0, 1, 1}, + {&__pyx_n_s_STAG, __pyx_k_STAG, sizeof(__pyx_k_STAG), 0, 0, 1, 1}, + {&__pyx_n_s_STANDARD, __pyx_k_STANDARD, sizeof(__pyx_k_STANDARD), 0, 0, 1, 1}, + {&__pyx_n_s_STAR, __pyx_k_STAR, sizeof(__pyx_k_STAR), 0, 0, 1, 1}, + {&__pyx_n_s_STCG, __pyx_k_STCG, sizeof(__pyx_k_STCG), 0, 0, 1, 1}, + {&__pyx_n_s_STDERR, __pyx_k_STDERR, sizeof(__pyx_k_STDERR), 0, 0, 1, 1}, + {&__pyx_n_s_STDOUT, __pyx_k_STDOUT, sizeof(__pyx_k_STDOUT), 0, 0, 1, 1}, + {&__pyx_n_s_STEPOVER, __pyx_k_STEPOVER, sizeof(__pyx_k_STEPOVER), 0, 0, 1, 1}, + {&__pyx_n_s_STRIDE, __pyx_k_STRIDE, sizeof(__pyx_k_STRIDE), 0, 0, 1, 1}, + {&__pyx_n_s_STRING, __pyx_k_STRING, sizeof(__pyx_k_STRING), 0, 0, 1, 1}, + {&__pyx_n_s_STRUCTURALLY_SYMMETRIC, __pyx_k_STRUCTURALLY_SYMMETRIC, sizeof(__pyx_k_STRUCTURALLY_SYMMETRIC), 0, 0, 1, 1}, + {&__pyx_n_s_STRUCTURE_ONLY, __pyx_k_STRUCTURE_ONLY, sizeof(__pyx_k_STRUCTURE_ONLY), 0, 0, 1, 1}, + {&__pyx_n_s_STRUMPACK, __pyx_k_STRUMPACK, sizeof(__pyx_k_STRUMPACK), 0, 0, 1, 1}, + {&__pyx_n_s_SUBMATRIX, __pyx_k_SUBMATRIX, sizeof(__pyx_k_SUBMATRIX), 0, 0, 1, 1}, + {&__pyx_n_s_SUBMAT_SINGLEIS, __pyx_k_SUBMAT_SINGLEIS, sizeof(__pyx_k_SUBMAT_SINGLEIS), 0, 0, 1, 1}, + {&__pyx_n_s_SUBPC_ERROR, __pyx_k_SUBPC_ERROR, sizeof(__pyx_k_SUBPC_ERROR), 0, 0, 1, 1}, + {&__pyx_n_s_SUBSET, __pyx_k_SUBSET, sizeof(__pyx_k_SUBSET), 0, 0, 1, 1}, + {&__pyx_n_s_SUBSET_NONZERO_PATTERN, __pyx_k_SUBSET_NONZERO_PATTERN, sizeof(__pyx_k_SUBSET_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_SUBSET_NZ, __pyx_k_SUBSET_NZ, sizeof(__pyx_k_SUBSET_NZ), 0, 0, 1, 1}, + {&__pyx_n_s_SUBSET_OFF_PROC_ENTRIES, __pyx_k_SUBSET_OFF_PROC_ENTRIES, sizeof(__pyx_k_SUBSET_OFF_PROC_ENTRIES), 0, 0, 1, 1}, + {&__pyx_n_s_SUBSPACE, __pyx_k_SUBSPACE, sizeof(__pyx_k_SUBSPACE), 0, 0, 1, 1}, + {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_SUNDIALS, __pyx_k_SUNDIALS, sizeof(__pyx_k_SUNDIALS), 0, 0, 1, 1}, + {&__pyx_n_s_SUPERLU, __pyx_k_SUPERLU, sizeof(__pyx_k_SUPERLU), 0, 0, 1, 1}, + {&__pyx_n_s_SUPERLU_DIST, __pyx_k_SUPERLU_DIST, sizeof(__pyx_k_SUPERLU_DIST), 0, 0, 1, 1}, + {&__pyx_n_s_SVD, __pyx_k_SVD, sizeof(__pyx_k_SVD), 0, 0, 1, 1}, + {&__pyx_n_s_SWARM, __pyx_k_SWARM, sizeof(__pyx_k_SWARM), 0, 0, 1, 1}, + {&__pyx_n_s_SYCL, __pyx_k_SYCL, sizeof(__pyx_k_SYCL), 0, 0, 1, 1}, + {&__pyx_n_s_SYMMETRIC, __pyx_k_SYMMETRIC, sizeof(__pyx_k_SYMMETRIC), 0, 0, 1, 1}, + {&__pyx_n_s_SYMMETRIC_MULTIPLICATIVE, __pyx_k_SYMMETRIC_MULTIPLICATIVE, sizeof(__pyx_k_SYMMETRIC_MULTIPLICATIVE), 0, 0, 1, 1}, + {&__pyx_n_s_SYMMETRY_ETERNAL, __pyx_k_SYMMETRY_ETERNAL, sizeof(__pyx_k_SYMMETRY_ETERNAL), 0, 0, 1, 1}, + {&__pyx_n_s_SYMMETRY_SWEEP, __pyx_k_SYMMETRY_SWEEP, sizeof(__pyx_k_SYMMETRY_SWEEP), 0, 0, 1, 1}, + {&__pyx_n_s_SYMMLQ, __pyx_k_SYMMLQ, sizeof(__pyx_k_SYMMLQ), 0, 0, 1, 1}, + {&__pyx_n_s_SYNC, __pyx_k_SYNC, sizeof(__pyx_k_SYNC), 0, 0, 1, 1}, + {&__pyx_n_s_SYSPFMG, __pyx_k_SYSPFMG, sizeof(__pyx_k_SYSPFMG), 0, 0, 1, 1}, + {&__pyx_n_s_ScalarType, __pyx_k_ScalarType, sizeof(__pyx_k_ScalarType), 0, 0, 1, 1}, + {&__pyx_n_s_Scatter, __pyx_k_Scatter, sizeof(__pyx_k_Scatter), 0, 0, 1, 1}, + {&__pyx_n_s_ScatterMode, __pyx_k_ScatterMode, sizeof(__pyx_k_ScatterMode), 0, 0, 1, 1}, + {&__pyx_n_s_ScatterType, __pyx_k_ScatterType, sizeof(__pyx_k_ScatterType), 0, 0, 1, 1}, + {&__pyx_n_s_SchurFactType, __pyx_k_SchurFactType, sizeof(__pyx_k_SchurFactType), 0, 0, 1, 1}, + {&__pyx_n_s_SchurPreType, __pyx_k_SchurPreType, sizeof(__pyx_k_SchurPreType), 0, 0, 1, 1}, + {&__pyx_n_s_Section, __pyx_k_Section, sizeof(__pyx_k_Section), 0, 0, 1, 1}, + {&__pyx_n_s_Side, __pyx_k_Side, sizeof(__pyx_k_Side), 0, 0, 1, 1}, + {&__pyx_n_s_Size, __pyx_k_Size, sizeof(__pyx_k_Size), 0, 0, 1, 1}, + {&__pyx_n_s_SolverType, __pyx_k_SolverType, sizeof(__pyx_k_SolverType), 0, 0, 1, 1}, + {&__pyx_n_s_Space, __pyx_k_Space, sizeof(__pyx_k_Space), 0, 0, 1, 1}, + {&__pyx_n_s_SpaceType, __pyx_k_SpaceType, sizeof(__pyx_k_SpaceType), 0, 0, 1, 1}, + {&__pyx_n_s_Stage, __pyx_k_Stage, sizeof(__pyx_k_Stage), 0, 0, 1, 1}, + {&__pyx_n_s_Stencil, __pyx_k_Stencil, sizeof(__pyx_k_Stencil), 0, 0, 1, 1}, + {&__pyx_n_s_StencilLocation, __pyx_k_StencilLocation, sizeof(__pyx_k_StencilLocation), 0, 0, 1, 1}, + {&__pyx_n_s_StencilType, __pyx_k_StencilType, sizeof(__pyx_k_StencilType), 0, 0, 1, 1}, + {&__pyx_n_s_StreamType, __pyx_k_StreamType, sizeof(__pyx_k_StreamType), 0, 0, 1, 1}, + {&__pyx_n_s_Structure, __pyx_k_Structure, sizeof(__pyx_k_Structure), 0, 0, 1, 1}, + {&__pyx_n_s_Sys, __pyx_k_Sys, sizeof(__pyx_k_Sys), 0, 0, 1, 1}, + {&__pyx_n_s_SystemError, __pyx_k_SystemError, sizeof(__pyx_k_SystemError), 0, 0, 1, 1}, + {&__pyx_n_s_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 1, 1}, + {&__pyx_n_s_TAO, __pyx_k_TAO, sizeof(__pyx_k_TAO), 0, 0, 1, 1}, + {&__pyx_n_s_TAOConvergedReason, __pyx_k_TAOConvergedReason, sizeof(__pyx_k_TAOConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_TAOType, __pyx_k_TAOType, sizeof(__pyx_k_TAOType), 0, 0, 1, 1}, + {&__pyx_kp_s_TAO_Solver_Termination_Reasons, __pyx_k_TAO_Solver_Termination_Reasons, sizeof(__pyx_k_TAO_Solver_Termination_Reasons), 0, 0, 1, 0}, + {&__pyx_kp_s_TAO_Solver_Types, __pyx_k_TAO_Solver_Types, sizeof(__pyx_k_TAO_Solver_Types), 0, 0, 1, 0}, + {&__pyx_n_s_TCQMR, __pyx_k_TCQMR, sizeof(__pyx_k_TCQMR), 0, 0, 1, 1}, + {&__pyx_n_s_TELESCOPE, __pyx_k_TELESCOPE, sizeof(__pyx_k_TELESCOPE), 0, 0, 1, 1}, + {&__pyx_n_s_TENSOR, __pyx_k_TENSOR, sizeof(__pyx_k_TENSOR), 0, 0, 1, 1}, + {&__pyx_n_s_TETRAHEDRON, __pyx_k_TETRAHEDRON, sizeof(__pyx_k_TETRAHEDRON), 0, 0, 1, 1}, + {&__pyx_n_s_TFQMR, __pyx_k_TFQMR, sizeof(__pyx_k_TFQMR), 0, 0, 1, 1}, + {&__pyx_n_s_TFS, __pyx_k_TFS, sizeof(__pyx_k_TFS), 0, 0, 1, 1}, + {&__pyx_n_s_TH, __pyx_k_TH, sizeof(__pyx_k_TH), 0, 0, 1, 1}, + {&__pyx_n_s_THETA, __pyx_k_THETA, sizeof(__pyx_k_THETA), 0, 0, 1, 1}, + {&__pyx_n_s_THIRD, __pyx_k_THIRD, sizeof(__pyx_k_THIRD), 0, 0, 1, 1}, + {&__pyx_n_s_THIRD_SIZE, __pyx_k_THIRD_SIZE, sizeof(__pyx_k_THIRD_SIZE), 0, 0, 1, 1}, + {&__pyx_n_s_TRANSFORMFILTER, __pyx_k_TRANSFORMFILTER, sizeof(__pyx_k_TRANSFORMFILTER), 0, 0, 1, 1}, + {&__pyx_n_s_TRANSPOSE, __pyx_k_TRANSPOSE, sizeof(__pyx_k_TRANSPOSE), 0, 0, 1, 1}, + {&__pyx_n_s_TRIANGLE, __pyx_k_TRIANGLE, sizeof(__pyx_k_TRIANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_TRI_PRISM, __pyx_k_TRI_PRISM, sizeof(__pyx_k_TRI_PRISM), 0, 0, 1, 1}, + {&__pyx_n_s_TRI_PRISM_TENSOR, __pyx_k_TRI_PRISM_TENSOR, sizeof(__pyx_k_TRI_PRISM_TENSOR), 0, 0, 1, 1}, + {&__pyx_n_s_TRON, __pyx_k_TRON, sizeof(__pyx_k_TRON), 0, 0, 1, 1}, + {&__pyx_n_s_TRUE, __pyx_k_TRUE, sizeof(__pyx_k_TRUE), 0, 0, 1, 1}, + {&__pyx_n_s_TS, __pyx_k_TS, sizeof(__pyx_k_TS), 0, 0, 1, 1}, + {&__pyx_n_s_TSARKIMEXType, __pyx_k_TSARKIMEXType, sizeof(__pyx_k_TSARKIMEXType), 0, 0, 1, 1}, + {&__pyx_n_s_TSConvergedReason, __pyx_k_TSConvergedReason, sizeof(__pyx_k_TSConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_TSEquationType, __pyx_k_TSEquationType, sizeof(__pyx_k_TSEquationType), 0, 0, 1, 1}, + {&__pyx_n_s_TSExactFinalTime, __pyx_k_TSExactFinalTime, sizeof(__pyx_k_TSExactFinalTime), 0, 0, 1, 1}, + {&__pyx_n_s_TSIRM, __pyx_k_TSIRM, sizeof(__pyx_k_TSIRM), 0, 0, 1, 1}, + {&__pyx_n_s_TSProblemType, __pyx_k_TSProblemType, sizeof(__pyx_k_TSProblemType), 0, 0, 1, 1}, + {&__pyx_n_s_TSRKType, __pyx_k_TSRKType, sizeof(__pyx_k_TSRKType), 0, 0, 1, 1}, + {&__pyx_n_s_TSType, __pyx_k_TSType, sizeof(__pyx_k_TSType), 0, 0, 1, 1}, + {&__pyx_n_s_TWIST, __pyx_k_TWIST, sizeof(__pyx_k_TWIST), 0, 0, 1, 1}, + {&__pyx_kp_b_T_2, __pyx_k_T_2, sizeof(__pyx_k_T_2), 0, 0, 0, 0}, + {&__pyx_kp_s_Tensor_dtype_does_not_match_PETS, __pyx_k_Tensor_dtype_does_not_match_PETS, sizeof(__pyx_k_Tensor_dtype_does_not_match_PETS), 0, 0, 1, 0}, + {&__pyx_n_s_Type, __pyx_k_Type, sizeof(__pyx_k_Type), 0, 0, 1, 1}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_U, __pyx_k_U, sizeof(__pyx_k_U), 0, 0, 1, 1}, + {&__pyx_n_s_UA, __pyx_k_UA, sizeof(__pyx_k_UA), 0, 0, 1, 1}, + {&__pyx_n_s_UMFPACK, __pyx_k_UMFPACK, sizeof(__pyx_k_UMFPACK), 0, 0, 1, 1}, + {&__pyx_n_s_UNKNOWN, __pyx_k_UNKNOWN, sizeof(__pyx_k_UNKNOWN), 0, 0, 1, 1}, + {&__pyx_n_s_UNKNOWN_NONZERO_PATTERN, __pyx_k_UNKNOWN_NONZERO_PATTERN, sizeof(__pyx_k_UNKNOWN_NONZERO_PATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_UNKNOWN_NZ, __pyx_k_UNKNOWN_NZ, sizeof(__pyx_k_UNKNOWN_NZ), 0, 0, 1, 1}, + {&__pyx_n_s_UNPRECONDITIONED, __pyx_k_UNPRECONDITIONED, sizeof(__pyx_k_UNPRECONDITIONED), 0, 0, 1, 1}, + {&__pyx_n_s_UNSPECIFIED, __pyx_k_UNSPECIFIED, sizeof(__pyx_k_UNSPECIFIED), 0, 0, 1, 1}, + {&__pyx_n_s_UNUSED_NONZERO_LOCATION_ERR, __pyx_k_UNUSED_NONZERO_LOCATION_ERR, sizeof(__pyx_k_UNUSED_NONZERO_LOCATION_ERR), 0, 0, 1, 1}, + {&__pyx_n_s_UP, __pyx_k_UP, sizeof(__pyx_k_UP), 0, 0, 1, 1}, + {&__pyx_n_s_UPDATE, __pyx_k_UPDATE, sizeof(__pyx_k_UPDATE), 0, 0, 1, 1}, + {&__pyx_n_s_UPPER, __pyx_k_UPPER, sizeof(__pyx_k_UPPER), 0, 0, 1, 1}, + {&__pyx_n_s_UP_LEFT, __pyx_k_UP_LEFT, sizeof(__pyx_k_UP_LEFT), 0, 0, 1, 1}, + {&__pyx_n_s_UP_RIGHT, __pyx_k_UP_RIGHT, sizeof(__pyx_k_UP_RIGHT), 0, 0, 1, 1}, + {&__pyx_n_s_USER, __pyx_k_USER, sizeof(__pyx_k_USER), 0, 0, 1, 1}, + {&__pyx_n_s_USE_HASH_TABLE, __pyx_k_USE_HASH_TABLE, sizeof(__pyx_k_USE_HASH_TABLE), 0, 0, 1, 1}, + {&__pyx_n_s_USE_INODES, __pyx_k_USE_INODES, sizeof(__pyx_k_USE_INODES), 0, 0, 1, 1}, + {&__pyx_kp_s_Unable_to_convert_item_to_object, __pyx_k_Unable_to_convert_item_to_object, sizeof(__pyx_k_Unable_to_convert_item_to_object), 0, 0, 1, 0}, + {&__pyx_kp_s_Unsupported_PetscScalar_type, __pyx_k_Unsupported_PetscScalar_type, sizeof(__pyx_k_Unsupported_PetscScalar_type), 0, 0, 1, 0}, + {&__pyx_n_s_V, __pyx_k_V, sizeof(__pyx_k_V), 0, 0, 1, 1}, + {&__pyx_n_s_VANKA, __pyx_k_VANKA, sizeof(__pyx_k_VANKA), 0, 0, 1, 1}, + {&__pyx_n_s_VIENNACL, __pyx_k_VIENNACL, sizeof(__pyx_k_VIENNACL), 0, 0, 1, 1}, + {&__pyx_n_s_VINEWTONRSLS, __pyx_k_VINEWTONRSLS, sizeof(__pyx_k_VINEWTONRSLS), 0, 0, 1, 1}, + {&__pyx_n_s_VINEWTONSSLS, __pyx_k_VINEWTONSSLS, sizeof(__pyx_k_VINEWTONSSLS), 0, 0, 1, 1}, + {&__pyx_n_s_VPBJACOBI, __pyx_k_VPBJACOBI, sizeof(__pyx_k_VPBJACOBI), 0, 0, 1, 1}, + {&__pyx_n_s_VTK, __pyx_k_VTK, sizeof(__pyx_k_VTK), 0, 0, 1, 1}, + {&__pyx_n_s_VTK_VTR, __pyx_k_VTK_VTR, sizeof(__pyx_k_VTK_VTR), 0, 0, 1, 1}, + {&__pyx_n_s_VTK_VTS, __pyx_k_VTK_VTS, sizeof(__pyx_k_VTK_VTS), 0, 0, 1, 1}, + {&__pyx_n_s_VTK_VTU, __pyx_k_VTK_VTU, sizeof(__pyx_k_VTK_VTU), 0, 0, 1, 1}, + {&__pyx_n_s_VU, __pyx_k_VU, sizeof(__pyx_k_VU), 0, 0, 1, 1}, + {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, + {&__pyx_n_s_Vec, __pyx_k_Vec, sizeof(__pyx_k_Vec), 0, 0, 1, 1}, + {&__pyx_n_s_VecOption, __pyx_k_VecOption, sizeof(__pyx_k_VecOption), 0, 0, 1, 1}, + {&__pyx_n_s_VecType, __pyx_k_VecType, sizeof(__pyx_k_VecType), 0, 0, 1, 1}, + {&__pyx_n_s_Vec_LocalForm, __pyx_k_Vec_LocalForm, sizeof(__pyx_k_Vec_LocalForm), 0, 0, 1, 1}, + {&__pyx_n_s_Vec_buffer, __pyx_k_Vec_buffer, sizeof(__pyx_k_Vec_buffer), 0, 0, 1, 1}, + {&__pyx_kp_s_Vector_local_size_d_is_not_compa, __pyx_k_Vector_local_size_d_is_not_compa, sizeof(__pyx_k_Vector_local_size_d_is_not_compa), 0, 0, 1, 0}, + {&__pyx_n_s_View_MemoryView, __pyx_k_View_MemoryView, sizeof(__pyx_k_View_MemoryView), 0, 0, 1, 1}, + {&__pyx_n_s_Viewer, __pyx_k_Viewer, sizeof(__pyx_k_Viewer), 0, 0, 1, 1}, + {&__pyx_n_s_ViewerFormat, __pyx_k_ViewerFormat, sizeof(__pyx_k_ViewerFormat), 0, 0, 1, 1}, + {&__pyx_n_s_ViewerHDF5, __pyx_k_ViewerHDF5, sizeof(__pyx_k_ViewerHDF5), 0, 0, 1, 1}, + {&__pyx_n_s_ViewerType, __pyx_k_ViewerType, sizeof(__pyx_k_ViewerType), 0, 0, 1, 1}, + {&__pyx_n_s_W, __pyx_k_W, sizeof(__pyx_k_W), 0, 0, 1, 1}, + {&__pyx_n_s_WBM, __pyx_k_WBM, sizeof(__pyx_k_WBM), 0, 0, 1, 1}, + {&__pyx_n_s_WINDOW, __pyx_k_WINDOW, sizeof(__pyx_k_WINDOW), 0, 0, 1, 1}, + {&__pyx_n_s_WRITE, __pyx_k_WRITE, sizeof(__pyx_k_WRITE), 0, 0, 1, 1}, + {&__pyx_n_s_WXY, __pyx_k_WXY, sizeof(__pyx_k_WXY), 0, 0, 1, 1}, + {&__pyx_n_s_X, __pyx_k_X, sizeof(__pyx_k_X), 0, 0, 1, 1}, + {&__pyx_n_s_ZERO_INITIAL_GUESS, __pyx_k_ZERO_INITIAL_GUESS, sizeof(__pyx_k_ZERO_INITIAL_GUESS), 0, 0, 1, 1}, + {&__pyx_kp_s__13, __pyx_k__13, sizeof(__pyx_k__13), 0, 0, 1, 0}, + {&__pyx_kp_s__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 0, 1, 0}, + {&__pyx_kp_u__14, __pyx_k__14, sizeof(__pyx_k__14), 0, 1, 0, 0}, + {&__pyx_kp_s__20, __pyx_k__20, sizeof(__pyx_k__20), 0, 0, 1, 0}, + {&__pyx_kp_b__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 0, 0}, + {&__pyx_kp_s__4, __pyx_k__4, sizeof(__pyx_k__4), 0, 0, 1, 0}, + {&__pyx_kp_b__57, __pyx_k__57, sizeof(__pyx_k__57), 0, 0, 0, 0}, + {&__pyx_kp_s__57, __pyx_k__57, sizeof(__pyx_k__57), 0, 0, 1, 0}, + {&__pyx_kp_b__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 0, 0}, + {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, + {&__pyx_kp_b__78, __pyx_k__78, sizeof(__pyx_k__78), 0, 0, 0, 0}, + {&__pyx_kp_b__79, __pyx_k__79, sizeof(__pyx_k__79), 0, 0, 0, 0}, + {&__pyx_n_s_a, __pyx_k_a, sizeof(__pyx_k_a), 0, 0, 1, 1}, + {&__pyx_kp_s_a_2, __pyx_k_a_2, sizeof(__pyx_k_a_2), 0, 0, 1, 0}, + {&__pyx_n_s_a_max, __pyx_k_a_max, sizeof(__pyx_k_a_max), 0, 0, 1, 1}, + {&__pyx_n_s_abort, __pyx_k_abort, sizeof(__pyx_k_abort), 0, 0, 1, 1}, + {&__pyx_kp_s_accessing_non_existent_buffer_se, __pyx_k_accessing_non_existent_buffer_se, sizeof(__pyx_k_accessing_non_existent_buffer_se), 0, 0, 1, 0}, + {&__pyx_n_s_adaptStep, __pyx_k_adaptStep, sizeof(__pyx_k_adaptStep), 0, 0, 1, 1}, + {&__pyx_n_s_addFlops, __pyx_k_addFlops, sizeof(__pyx_k_addFlops), 0, 0, 1, 1}, + {&__pyx_n_s_addv, __pyx_k_addv, sizeof(__pyx_k_addv), 0, 0, 1, 1}, + {&__pyx_n_s_adj, __pyx_k_adj, sizeof(__pyx_k_adj), 0, 0, 1, 1}, + {&__pyx_n_s_adjoint_steps, __pyx_k_adjoint_steps, sizeof(__pyx_k_adjoint_steps), 0, 0, 1, 1}, + {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, + {&__pyx_n_s_allocate_buffer, __pyx_k_allocate_buffer, sizeof(__pyx_k_allocate_buffer), 0, 0, 1, 1}, + {&__pyx_n_s_alpha, __pyx_k_alpha, sizeof(__pyx_k_alpha), 0, 0, 1, 1}, + {&__pyx_n_s_alpha2, __pyx_k_alpha2, sizeof(__pyx_k_alpha2), 0, 0, 1, 1}, + {&__pyx_n_s_alpha_f, __pyx_k_alpha_f, sizeof(__pyx_k_alpha_f), 0, 0, 1, 1}, + {&__pyx_n_s_alpha_m, __pyx_k_alpha_m, sizeof(__pyx_k_alpha_m), 0, 0, 1, 1}, + {&__pyx_n_s_alphas, __pyx_k_alphas, sizeof(__pyx_k_alphas), 0, 0, 1, 1}, + {&__pyx_n_s_amount, __pyx_k_amount, sizeof(__pyx_k_amount), 0, 0, 1, 1}, + {&__pyx_n_s_app, __pyx_k_app, sizeof(__pyx_k_app), 0, 0, 1, 1}, + {&__pyx_n_s_appctx, __pyx_k_appctx, sizeof(__pyx_k_appctx), 0, 0, 1, 1}, + {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, + {&__pyx_n_s_apply, __pyx_k_apply, sizeof(__pyx_k_apply), 0, 0, 1, 1}, + {&__pyx_n_s_applySymmetricLeft, __pyx_k_applySymmetricLeft, sizeof(__pyx_k_applySymmetricLeft), 0, 0, 1, 1}, + {&__pyx_n_s_applySymmetricRight, __pyx_k_applySymmetricRight, sizeof(__pyx_k_applySymmetricRight), 0, 0, 1, 1}, + {&__pyx_n_s_applyTranspose, __pyx_k_applyTranspose, sizeof(__pyx_k_applyTranspose), 0, 0, 1, 1}, + {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, + {&__pyx_n_s_array, __pyx_k_array, sizeof(__pyx_k_array), 0, 0, 1, 1}, + {&__pyx_n_s_array_interface, __pyx_k_array_interface, sizeof(__pyx_k_array_interface), 0, 0, 1, 1}, + {&__pyx_kp_s_array_size_d_and_vector_local_si, __pyx_k_array_size_d_and_vector_local_si, sizeof(__pyx_k_array_size_d_and_vector_local_si), 0, 0, 1, 0}, + {&__pyx_kp_s_array_size_d_incompatible_with_v, __pyx_k_array_size_d_incompatible_with_v, sizeof(__pyx_k_array_size_d_incompatible_with_v), 0, 0, 1, 0}, + {&__pyx_n_s_array_w, __pyx_k_array_w, sizeof(__pyx_k_array_w), 0, 0, 1, 1}, + {&__pyx_n_s_asmtype, __pyx_k_asmtype, sizeof(__pyx_k_asmtype), 0, 0, 1, 1}, + {&__pyx_n_s_assemblies, __pyx_k_assemblies, sizeof(__pyx_k_assemblies), 0, 0, 1, 1}, + {&__pyx_n_s_assembly, __pyx_k_assembly, sizeof(__pyx_k_assembly), 0, 0, 1, 1}, + {&__pyx_n_s_assemblyBegin, __pyx_k_assemblyBegin, sizeof(__pyx_k_assemblyBegin), 0, 0, 1, 1}, + {&__pyx_n_s_assemblyEnd, __pyx_k_assemblyEnd, sizeof(__pyx_k_assemblyEnd), 0, 0, 1, 1}, + {&__pyx_n_s_atexit, __pyx_k_atexit, sizeof(__pyx_k_atexit), 0, 0, 1, 1}, + {&__pyx_n_s_atol, __pyx_k_atol, sizeof(__pyx_k_atol), 0, 0, 1, 1}, + {&__pyx_n_s_attr, __pyx_k_attr, sizeof(__pyx_k_attr), 0, 0, 1, 1}, + {&__pyx_n_s_au, __pyx_k_au, sizeof(__pyx_k_au), 0, 0, 1, 1}, + {&__pyx_n_s_author, __pyx_k_author, sizeof(__pyx_k_author), 0, 0, 1, 1}, + {&__pyx_n_s_authorinfo, __pyx_k_authorinfo, sizeof(__pyx_k_authorinfo), 0, 0, 1, 1}, + {&__pyx_n_s_aux, __pyx_k_aux, sizeof(__pyx_k_aux), 0, 0, 1, 1}, + {&__pyx_n_s_axpy, __pyx_k_axpy, sizeof(__pyx_k_axpy), 0, 0, 1, 1}, + {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, + {&__pyx_n_s_back, __pyx_k_back, sizeof(__pyx_k_back), 0, 0, 1, 1}, + {&__pyx_n_s_back_down, __pyx_k_back_down, sizeof(__pyx_k_back_down), 0, 0, 1, 1}, + {&__pyx_n_s_back_down_left, __pyx_k_back_down_left, sizeof(__pyx_k_back_down_left), 0, 0, 1, 1}, + {&__pyx_n_s_back_down_right, __pyx_k_back_down_right, sizeof(__pyx_k_back_down_right), 0, 0, 1, 1}, + {&__pyx_n_s_back_left, __pyx_k_back_left, sizeof(__pyx_k_back_left), 0, 0, 1, 1}, + {&__pyx_n_s_back_right, __pyx_k_back_right, sizeof(__pyx_k_back_right), 0, 0, 1, 1}, + {&__pyx_n_s_back_up, __pyx_k_back_up, sizeof(__pyx_k_back_up), 0, 0, 1, 1}, + {&__pyx_n_s_back_up_left, __pyx_k_back_up_left, sizeof(__pyx_k_back_up_left), 0, 0, 1, 1}, + {&__pyx_n_s_back_up_right, __pyx_k_back_up_right, sizeof(__pyx_k_back_up_right), 0, 0, 1, 1}, + {&__pyx_n_s_barrier, __pyx_k_barrier, sizeof(__pyx_k_barrier), 0, 0, 1, 1}, + {&__pyx_n_s_base, __pyx_k_base, sizeof(__pyx_k_base), 0, 0, 1, 1}, + {&__pyx_n_s_batchSize, __pyx_k_batchSize, sizeof(__pyx_k_batchSize), 0, 0, 1, 1}, + {&__pyx_n_s_bcComps, __pyx_k_bcComps, sizeof(__pyx_k_bcComps), 0, 0, 1, 1}, + {&__pyx_n_s_bcField, __pyx_k_bcField, sizeof(__pyx_k_bcField), 0, 0, 1, 1}, + {&__pyx_n_s_bcPoints, __pyx_k_bcPoints, sizeof(__pyx_k_bcPoints), 0, 0, 1, 1}, + {&__pyx_kp_s_bcPoints_is_a_required_argument, __pyx_k_bcPoints_is_a_required_argument, sizeof(__pyx_k_bcPoints_is_a_required_argument), 0, 0, 1, 0}, + {&__pyx_n_s_bdLabel, __pyx_k_bdLabel, sizeof(__pyx_k_bdLabel), 0, 0, 1, 1}, + {&__pyx_n_s_bdlabel, __pyx_k_bdlabel, sizeof(__pyx_k_bdlabel), 0, 0, 1, 1}, + {&__pyx_n_s_bdvalue, __pyx_k_bdvalue, sizeof(__pyx_k_bdvalue), 0, 0, 1, 1}, + {&__pyx_n_s_begin, __pyx_k_begin, sizeof(__pyx_k_begin), 0, 0, 1, 1}, + {&__pyx_n_s_begin_args, __pyx_k_begin_args, sizeof(__pyx_k_begin_args), 0, 0, 1, 1}, + {&__pyx_n_s_begin_kargs, __pyx_k_begin_kargs, sizeof(__pyx_k_begin_kargs), 0, 0, 1, 1}, + {&__pyx_n_s_beta, __pyx_k_beta, sizeof(__pyx_k_beta), 0, 0, 1, 1}, + {&__pyx_n_s_bits, __pyx_k_bits, sizeof(__pyx_k_bits), 0, 0, 1, 1}, + {&__pyx_n_s_blockSize, __pyx_k_blockSize, sizeof(__pyx_k_blockSize), 0, 0, 1, 1}, + {&__pyx_n_s_block_size, __pyx_k_block_size, sizeof(__pyx_k_block_size), 0, 0, 1, 1}, + {&__pyx_kp_s_block_size_d_must_be_positive, __pyx_k_block_size_d_must_be_positive, sizeof(__pyx_k_block_size_d_must_be_positive), 0, 0, 1, 0}, + {&__pyx_kp_s_block_size_not_set, __pyx_k_block_size_not_set, sizeof(__pyx_k_block_size_not_set), 0, 0, 1, 0}, + {&__pyx_n_s_blocksize, __pyx_k_blocksize, sizeof(__pyx_k_blocksize), 0, 0, 1, 1}, + {&__pyx_n_s_bndr, __pyx_k_bndr, sizeof(__pyx_k_bndr), 0, 0, 1, 1}, + {&__pyx_n_s_boundary, __pyx_k_boundary, sizeof(__pyx_k_boundary), 0, 0, 1, 1}, + {&__pyx_n_s_boundary_type, __pyx_k_boundary_type, sizeof(__pyx_k_boundary_type), 0, 0, 1, 1}, + {&__pyx_n_s_boundary_types, __pyx_k_boundary_types, sizeof(__pyx_k_boundary_types), 0, 0, 1, 1}, + {&__pyx_n_s_box, __pyx_k_box, sizeof(__pyx_k_box), 0, 0, 1, 1}, + {&__pyx_n_s_bs, __pyx_k_bs, sizeof(__pyx_k_bs), 0, 0, 1, 1}, + {&__pyx_n_s_bsize, __pyx_k_bsize, sizeof(__pyx_k_bsize), 0, 0, 1, 1}, + {&__pyx_n_s_buffer, __pyx_k_buffer, sizeof(__pyx_k_buffer), 0, 0, 1, 1}, + {&__pyx_n_s_buffer_w, __pyx_k_buffer_w, sizeof(__pyx_k_buffer_w), 0, 0, 1, 1}, + {&__pyx_n_s_buildResidual, __pyx_k_buildResidual, sizeof(__pyx_k_buildResidual), 0, 0, 1, 1}, + {&__pyx_n_s_buildSolution, __pyx_k_buildSolution, sizeof(__pyx_k_buildSolution), 0, 0, 1, 1}, + {&__pyx_n_s_builtins, __pyx_k_builtins, sizeof(__pyx_k_builtins), 0, 0, 1, 1}, + {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, + {&__pyx_n_u_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 1, 0, 1}, + {&__pyx_kp_s_c_d, __pyx_k_c_d, sizeof(__pyx_k_c_d), 0, 0, 1, 0}, + {&__pyx_n_s_cancelMonitor, __pyx_k_cancelMonitor, sizeof(__pyx_k_cancelMonitor), 0, 0, 1, 1}, + {&__pyx_kp_s_cannot_place_input_array_size_d, __pyx_k_cannot_place_input_array_size_d, sizeof(__pyx_k_cannot_place_input_array_size_d), 0, 0, 1, 0}, + {&__pyx_n_s_catol, __pyx_k_catol, sizeof(__pyx_k_catol), 0, 0, 1, 1}, + {&__pyx_n_s_ccomm, __pyx_k_ccomm, sizeof(__pyx_k_ccomm), 0, 0, 1, 1}, + {&__pyx_n_s_cdctx, __pyx_k_cdctx, sizeof(__pyx_k_cdctx), 0, 0, 1, 1}, + {&__pyx_n_s_cdevice_type, __pyx_k_cdevice_type, sizeof(__pyx_k_cdevice_type), 0, 0, 1, 1}, + {&__pyx_n_s_cell, __pyx_k_cell, sizeof(__pyx_k_cell), 0, 0, 1, 1}, + {&__pyx_n_s_cellNodeMaps, __pyx_k_cellNodeMaps, sizeof(__pyx_k_cellNodeMaps), 0, 0, 1, 1}, + {&__pyx_kp_s_cell_indices_must_have_two_dimen, __pyx_k_cell_indices_must_have_two_dimen, sizeof(__pyx_k_cell_indices_must_have_two_dimen), 0, 0, 1, 0}, + {&__pyx_n_s_cells, __pyx_k_cells, sizeof(__pyx_k_cells), 0, 0, 1, 1}, + {&__pyx_n_s_cgid, __pyx_k_cgid, sizeof(__pyx_k_cgid), 0, 0, 1, 1}, + {&__pyx_n_s_citation, __pyx_k_citation, sizeof(__pyx_k_citation), 0, 0, 1, 1}, + {&__pyx_n_s_class, __pyx_k_class, sizeof(__pyx_k_class), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_cmap, __pyx_k_cmap, sizeof(__pyx_k_cmap), 0, 0, 1, 1}, + {&__pyx_n_s_cnorm, __pyx_k_cnorm, sizeof(__pyx_k_cnorm), 0, 0, 1, 1}, + {&__pyx_n_s_coarsen, __pyx_k_coarsen, sizeof(__pyx_k_coarsen), 0, 0, 1, 1}, + {&__pyx_n_s_coarsenhook, __pyx_k_coarsenhook, sizeof(__pyx_k_coarsenhook), 0, 0, 1, 1}, + {&__pyx_n_s_code, __pyx_k_code, sizeof(__pyx_k_code), 0, 0, 1, 1}, + {&__pyx_n_s_col, __pyx_k_col, sizeof(__pyx_k_col), 0, 0, 1, 1}, + {&__pyx_n_s_col_bsize, __pyx_k_col_bsize, sizeof(__pyx_k_col_bsize), 0, 0, 1, 1}, + {&__pyx_n_s_cols, __pyx_k_cols, sizeof(__pyx_k_cols), 0, 0, 1, 1}, + {&__pyx_n_s_column, __pyx_k_column, sizeof(__pyx_k_column), 0, 0, 1, 1}, + {&__pyx_kp_s_column_indices_must_have_two_dim, __pyx_k_column_indices_must_have_two_dim, sizeof(__pyx_k_column_indices_must_have_two_dim), 0, 0, 1, 0}, + {&__pyx_n_s_comm, __pyx_k_comm, sizeof(__pyx_k_comm), 0, 0, 1, 1}, + {&__pyx_n_s_comms, __pyx_k_comms, sizeof(__pyx_k_comms), 0, 0, 1, 1}, + {&__pyx_kp_s_communicator_not_owned, __pyx_k_communicator_not_owned, sizeof(__pyx_k_communicator_not_owned), 0, 0, 1, 0}, + {&__pyx_n_s_comp, __pyx_k_comp, sizeof(__pyx_k_comp), 0, 0, 1, 1}, + {&__pyx_n_s_compile, __pyx_k_compile, sizeof(__pyx_k_compile), 0, 0, 1, 1}, + {&__pyx_n_s_compressed, __pyx_k_compressed, sizeof(__pyx_k_compressed), 0, 0, 1, 1}, + {&__pyx_n_s_concatenate, __pyx_k_concatenate, sizeof(__pyx_k_concatenate), 0, 0, 1, 1}, + {&__pyx_n_s_cone, __pyx_k_cone, sizeof(__pyx_k_cone), 0, 0, 1, 1}, + {&__pyx_n_s_coneOrientation, __pyx_k_coneOrientation, sizeof(__pyx_k_coneOrientation), 0, 0, 1, 1}, + {&__pyx_n_s_conePoint, __pyx_k_conePoint, sizeof(__pyx_k_conePoint), 0, 0, 1, 1}, + {&__pyx_n_s_conePos, __pyx_k_conePos, sizeof(__pyx_k_conePos), 0, 0, 1, 1}, + {&__pyx_n_s_conforming, __pyx_k_conforming, sizeof(__pyx_k_conforming), 0, 0, 1, 1}, + {&__pyx_n_s_conjugate, __pyx_k_conjugate, sizeof(__pyx_k_conjugate), 0, 0, 1, 1}, + {&__pyx_n_s_constant, __pyx_k_constant, sizeof(__pyx_k_constant), 0, 0, 1, 1}, + {&__pyx_n_s_constraints, __pyx_k_constraints, sizeof(__pyx_k_constraints), 0, 0, 1, 1}, + {&__pyx_n_s_context, __pyx_k_context, sizeof(__pyx_k_context), 0, 0, 1, 1}, + {&__pyx_kp_s_contiguous_and_direct, __pyx_k_contiguous_and_direct, sizeof(__pyx_k_contiguous_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_contiguous_and_indirect, __pyx_k_contiguous_and_indirect, sizeof(__pyx_k_contiguous_and_indirect), 0, 0, 1, 0}, + {&__pyx_n_s_continuous, __pyx_k_continuous, sizeof(__pyx_k_continuous), 0, 0, 1, 1}, + {&__pyx_n_s_converged, __pyx_k_converged, sizeof(__pyx_k_converged), 0, 0, 1, 1}, + {&__pyx_n_s_coordinates, __pyx_k_coordinates, sizeof(__pyx_k_coordinates), 0, 0, 1, 1}, + {&__pyx_kp_s_coordinates_must_have_two_dimens, __pyx_k_coordinates_must_have_two_dimens, sizeof(__pyx_k_coordinates_must_have_two_dimens), 0, 0, 1, 0}, + {&__pyx_kp_s_coordinates_size_must_be_at_leas, __pyx_k_coordinates_size_must_be_at_leas, sizeof(__pyx_k_coordinates_size_must_be_at_leas), 0, 0, 1, 0}, + {&__pyx_n_s_coords, __pyx_k_coords, sizeof(__pyx_k_coords), 0, 0, 1, 1}, + {&__pyx_kp_s_coords_vertices_must_have_two_di, __pyx_k_coords_vertices_must_have_two_di, sizeof(__pyx_k_coords_vertices_must_have_two_di), 0, 0, 1, 0}, + {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, + {&__pyx_n_s_correction_type, __pyx_k_correction_type, sizeof(__pyx_k_correction_type), 0, 0, 1, 1}, + {&__pyx_n_s_count, __pyx_k_count, sizeof(__pyx_k_count), 0, 0, 1, 1}, + {&__pyx_n_s_cpuarray, __pyx_k_cpuarray, sizeof(__pyx_k_cpuarray), 0, 0, 1, 1}, + {&__pyx_n_s_crank, __pyx_k_crank, sizeof(__pyx_k_crank), 0, 0, 1, 1}, + {&__pyx_n_s_cratio, __pyx_k_cratio, sizeof(__pyx_k_cratio), 0, 0, 1, 1}, + {&__pyx_n_s_create, __pyx_k_create, sizeof(__pyx_k_create), 0, 0, 1, 1}, + {&__pyx_n_s_createDefaultSF, __pyx_k_createDefaultSF, sizeof(__pyx_k_createDefaultSF), 0, 0, 1, 1}, + {&__pyx_n_s_createGlobalVec, __pyx_k_createGlobalVec, sizeof(__pyx_k_createGlobalVec), 0, 0, 1, 1}, + {&__pyx_n_s_createGlobalVector, __pyx_k_createGlobalVector, sizeof(__pyx_k_createGlobalVector), 0, 0, 1, 1}, + {&__pyx_n_s_createLabel, __pyx_k_createLabel, sizeof(__pyx_k_createLabel), 0, 0, 1, 1}, + {&__pyx_n_s_createLocalVec, __pyx_k_createLocalVec, sizeof(__pyx_k_createLocalVec), 0, 0, 1, 1}, + {&__pyx_n_s_createLocalVector, __pyx_k_createLocalVector, sizeof(__pyx_k_createLocalVector), 0, 0, 1, 1}, + {&__pyx_n_s_createMat, __pyx_k_createMat, sizeof(__pyx_k_createMat), 0, 0, 1, 1}, + {&__pyx_n_s_createMatrix, __pyx_k_createMatrix, sizeof(__pyx_k_createMatrix), 0, 0, 1, 1}, + {&__pyx_n_s_createNaturalVec, __pyx_k_createNaturalVec, sizeof(__pyx_k_createNaturalVec), 0, 0, 1, 1}, + {&__pyx_n_s_createNaturalVector, __pyx_k_createNaturalVector, sizeof(__pyx_k_createNaturalVector), 0, 0, 1, 1}, + {&__pyx_n_s_createSectionSF, __pyx_k_createSectionSF, sizeof(__pyx_k_createSectionSF), 0, 0, 1, 1}, + {&__pyx_n_s_createSubMatrix, __pyx_k_createSubMatrix, sizeof(__pyx_k_createSubMatrix), 0, 0, 1, 1}, + {&__pyx_n_s_createVecLeft, __pyx_k_createVecLeft, sizeof(__pyx_k_createVecLeft), 0, 0, 1, 1}, + {&__pyx_n_s_createVecRight, __pyx_k_createVecRight, sizeof(__pyx_k_createVecRight), 0, 0, 1, 1}, + {&__pyx_n_s_createVecs, __pyx_k_createVecs, sizeof(__pyx_k_createVecs), 0, 0, 1, 1}, + {&__pyx_n_s_create_gvec, __pyx_k_create_gvec, sizeof(__pyx_k_create_gvec), 0, 0, 1, 1}, + {&__pyx_n_s_create_injection, __pyx_k_create_injection, sizeof(__pyx_k_create_injection), 0, 0, 1, 1}, + {&__pyx_n_s_create_interpolation, __pyx_k_create_interpolation, sizeof(__pyx_k_create_interpolation), 0, 0, 1, 1}, + {&__pyx_n_s_create_lvec, __pyx_k_create_lvec, sizeof(__pyx_k_create_lvec), 0, 0, 1, 1}, + {&__pyx_n_s_create_matrix, __pyx_k_create_matrix, sizeof(__pyx_k_create_matrix), 0, 0, 1, 1}, + {&__pyx_n_s_create_restriction, __pyx_k_create_restriction, sizeof(__pyx_k_create_restriction), 0, 0, 1, 1}, + {&__pyx_n_s_create_subdm, __pyx_k_create_subdm, sizeof(__pyx_k_create_subdm), 0, 0, 1, 1}, + {&__pyx_n_s_crtol, __pyx_k_crtol, sizeof(__pyx_k_crtol), 0, 0, 1, 1}, + {&__pyx_n_s_csize, __pyx_k_csize, sizeof(__pyx_k_csize), 0, 0, 1, 1}, + {&__pyx_n_s_csr, __pyx_k_csr, sizeof(__pyx_k_csr), 0, 0, 1, 1}, + {&__pyx_n_s_ctype, __pyx_k_ctype, sizeof(__pyx_k_ctype), 0, 0, 1, 1}, + {&__pyx_n_s_cudahandle, __pyx_k_cudahandle, sizeof(__pyx_k_cudahandle), 0, 0, 1, 1}, + {&__pyx_n_s_cycle_type, __pyx_k_cycle_type, sizeof(__pyx_k_cycle_type), 0, 0, 1, 1}, + {&__pyx_kp_s_d_s, __pyx_k_d_s, sizeof(__pyx_k_d_s), 0, 0, 1, 0}, + {&__pyx_n_s_da, __pyx_k_da, sizeof(__pyx_k_da), 0, 0, 1, 1}, + {&__pyx_n_s_data, __pyx_k_data, sizeof(__pyx_k_data), 0, 0, 1, 1}, + {&__pyx_n_s_date, __pyx_k_date, sizeof(__pyx_k_date), 0, 0, 1, 1}, + {&__pyx_n_s_dctx, __pyx_k_dctx, sizeof(__pyx_k_dctx), 0, 0, 1, 1}, + {&__pyx_n_s_debugger, __pyx_k_debugger, sizeof(__pyx_k_debugger), 0, 0, 1, 1}, + {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, + {&__pyx_n_s_decomp, __pyx_k_decomp, sizeof(__pyx_k_decomp), 0, 0, 1, 1}, + {&__pyx_n_s_decorator, __pyx_k_decorator, sizeof(__pyx_k_decorator), 0, 0, 1, 1}, + {&__pyx_n_s_default, __pyx_k_default, sizeof(__pyx_k_default), 0, 0, 1, 1}, + {&__pyx_n_s_degree, __pyx_k_degree, sizeof(__pyx_k_degree), 0, 0, 1, 1}, + {&__pyx_n_s_delValue, __pyx_k_delValue, sizeof(__pyx_k_delValue), 0, 0, 1, 1}, + {&__pyx_n_s_dense, __pyx_k_dense, sizeof(__pyx_k_dense), 0, 0, 1, 1}, + {&__pyx_n_s_design, __pyx_k_design, sizeof(__pyx_k_design), 0, 0, 1, 1}, + {&__pyx_n_s_destroy, __pyx_k_destroy, sizeof(__pyx_k_destroy), 0, 0, 1, 1}, + {&__pyx_n_s_determinant, __pyx_k_determinant, sizeof(__pyx_k_determinant), 0, 0, 1, 1}, + {&__pyx_n_s_devel, __pyx_k_devel, sizeof(__pyx_k_devel), 0, 0, 1, 1}, + {&__pyx_n_s_device, __pyx_k_device, sizeof(__pyx_k_device), 0, 0, 1, 1}, + {&__pyx_n_s_device_id, __pyx_k_device_id, sizeof(__pyx_k_device_id), 0, 0, 1, 1}, + {&__pyx_n_s_device_type, __pyx_k_device_type, sizeof(__pyx_k_device_type), 0, 0, 1, 1}, + {&__pyx_n_s_diag, __pyx_k_diag, sizeof(__pyx_k_diag), 0, 0, 1, 1}, + {&__pyx_n_s_diagonalScale, __pyx_k_diagonalScale, sizeof(__pyx_k_diagonalScale), 0, 0, 1, 1}, + {&__pyx_n_s_diagonal_fill, __pyx_k_diagonal_fill, sizeof(__pyx_k_diagonal_fill), 0, 0, 1, 1}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_dim, __pyx_k_dim, sizeof(__pyx_k_dim), 0, 0, 1, 1}, + {&__pyx_n_s_dims, __pyx_k_dims, sizeof(__pyx_k_dims), 0, 0, 1, 1}, + {&__pyx_n_s_direction, __pyx_k_direction, sizeof(__pyx_k_direction), 0, 0, 1, 1}, + {&__pyx_n_s_disc, __pyx_k_disc, sizeof(__pyx_k_disc), 0, 0, 1, 1}, + {&__pyx_n_s_display, __pyx_k_display, sizeof(__pyx_k_display), 0, 0, 1, 1}, + {&__pyx_n_s_dist, __pyx_k_dist, sizeof(__pyx_k_dist), 0, 0, 1, 1}, + {&__pyx_n_s_div, __pyx_k_div, sizeof(__pyx_k_div), 0, 0, 1, 1}, + {&__pyx_n_s_divtol, __pyx_k_divtol, sizeof(__pyx_k_divtol), 0, 0, 1, 1}, + {&__pyx_n_s_dlpack, __pyx_k_dlpack, sizeof(__pyx_k_dlpack), 0, 0, 1, 1}, + {&__pyx_n_s_dltensor, __pyx_k_dltensor, sizeof(__pyx_k_dltensor), 0, 0, 1, 1}, + {&__pyx_n_s_dm, __pyx_k_dm, sizeof(__pyx_k_dm), 0, 0, 1, 1}, + {&__pyx_n_s_dmTo, __pyx_k_dmTo, sizeof(__pyx_k_dmTo), 0, 0, 1, 1}, + {&__pyx_n_s_dm_type, __pyx_k_dm_type, sizeof(__pyx_k_dm_type), 0, 0, 1, 1}, + {&__pyx_n_s_dmf, __pyx_k_dmf, sizeof(__pyx_k_dmf), 0, 0, 1, 1}, + {&__pyx_n_s_dms, __pyx_k_dms, sizeof(__pyx_k_dms), 0, 0, 1, 1}, + {&__pyx_n_s_dmswarm_type, __pyx_k_dmswarm_type, sizeof(__pyx_k_dmswarm_type), 0, 0, 1, 1}, + {&__pyx_n_s_dmtype, __pyx_k_dmtype, sizeof(__pyx_k_dmtype), 0, 0, 1, 1}, + {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, + {&__pyx_n_s_dof, __pyx_k_dof, sizeof(__pyx_k_dof), 0, 0, 1, 1}, + {&__pyx_n_s_dofs, __pyx_k_dofs, sizeof(__pyx_k_dofs), 0, 0, 1, 1}, + {&__pyx_n_s_dosort, __pyx_k_dosort, sizeof(__pyx_k_dosort), 0, 0, 1, 1}, + {&__pyx_n_s_down, __pyx_k_down, sizeof(__pyx_k_down), 0, 0, 1, 1}, + {&__pyx_n_s_down_left, __pyx_k_down_left, sizeof(__pyx_k_down_left), 0, 0, 1, 1}, + {&__pyx_n_s_down_right, __pyx_k_down_right, sizeof(__pyx_k_down_right), 0, 0, 1, 1}, + {&__pyx_n_s_drop, __pyx_k_drop, sizeof(__pyx_k_drop), 0, 0, 1, 1}, + {&__pyx_n_s_ds_type, __pyx_k_ds_type, sizeof(__pyx_k_ds_type), 0, 0, 1, 1}, + {&__pyx_n_s_dspace, __pyx_k_dspace, sizeof(__pyx_k_dspace), 0, 0, 1, 1}, + {&__pyx_n_s_dt, __pyx_k_dt, sizeof(__pyx_k_dt), 0, 0, 1, 1}, + {&__pyx_n_s_dtcol, __pyx_k_dtcol, sizeof(__pyx_k_dtcol), 0, 0, 1, 1}, + {&__pyx_n_s_dtcount, __pyx_k_dtcount, sizeof(__pyx_k_dtcount), 0, 0, 1, 1}, + {&__pyx_n_s_dtype, __pyx_k_dtype, sizeof(__pyx_k_dtype), 0, 0, 1, 1}, + {&__pyx_n_s_dtype_is_object, __pyx_k_dtype_is_object, sizeof(__pyx_k_dtype_is_object), 0, 0, 1, 1}, + {&__pyx_n_s_dualspace_type, __pyx_k_dualspace_type, sizeof(__pyx_k_dualspace_type), 0, 0, 1, 1}, + {&__pyx_n_s_duplicate, __pyx_k_duplicate, sizeof(__pyx_k_duplicate), 0, 0, 1, 1}, + {&__pyx_n_s_e, __pyx_k_e, sizeof(__pyx_k_e), 0, 0, 1, 1}, + {&__pyx_n_s_elem_type, __pyx_k_elem_type, sizeof(__pyx_k_elem_type), 0, 0, 1, 1}, + {&__pyx_n_s_element, __pyx_k_element, sizeof(__pyx_k_element), 0, 0, 1, 1}, + {&__pyx_n_s_emacs, __pyx_k_emacs, sizeof(__pyx_k_emacs), 0, 0, 1, 1}, + {&__pyx_kp_s_empty_citation, __pyx_k_empty_citation, sizeof(__pyx_k_empty_citation), 0, 0, 1, 0}, + {&__pyx_kp_s_empty_name, __pyx_k_empty_name, sizeof(__pyx_k_empty_name), 0, 0, 1, 0}, + {&__pyx_n_s_encode, __pyx_k_encode, sizeof(__pyx_k_encode), 0, 0, 1, 1}, + {&__pyx_n_s_end, __pyx_k_end, sizeof(__pyx_k_end), 0, 0, 1, 1}, + {&__pyx_n_s_end_args, __pyx_k_end_args, sizeof(__pyx_k_end_args), 0, 0, 1, 1}, + {&__pyx_n_s_end_kargs, __pyx_k_end_kargs, sizeof(__pyx_k_end_kargs), 0, 0, 1, 1}, + {&__pyx_n_s_enter, __pyx_k_enter, sizeof(__pyx_k_enter), 0, 0, 1, 1}, + {&__pyx_n_s_entityDepth, __pyx_k_entityDepth, sizeof(__pyx_k_entityDepth), 0, 0, 1, 1}, + {&__pyx_n_s_entry, __pyx_k_entry, sizeof(__pyx_k_entry), 0, 0, 1, 1}, + {&__pyx_n_s_enum2str, __pyx_k_enum2str, sizeof(__pyx_k_enum2str), 0, 0, 1, 1}, + {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, + {&__pyx_n_s_epsilon, __pyx_k_epsilon, sizeof(__pyx_k_epsilon), 0, 0, 1, 1}, + {&__pyx_n_s_eqtype, __pyx_k_eqtype, sizeof(__pyx_k_eqtype), 0, 0, 1, 1}, + {&__pyx_n_s_equality_constraints, __pyx_k_equality_constraints, sizeof(__pyx_k_equality_constraints), 0, 0, 1, 1}, + {&__pyx_n_s_errhandler, __pyx_k_errhandler, sizeof(__pyx_k_errhandler), 0, 0, 1, 1}, + {&__pyx_n_s_error, __pyx_k_error, sizeof(__pyx_k_error), 0, 0, 1, 1}, + {&__pyx_kp_s_error_code_d, __pyx_k_error_code_d, sizeof(__pyx_k_error_code_d), 0, 0, 1, 0}, + {&__pyx_n_s_eta, __pyx_k_eta, sizeof(__pyx_k_eta), 0, 0, 1, 1}, + {&__pyx_n_s_evaluatestep, __pyx_k_evaluatestep, sizeof(__pyx_k_evaluatestep), 0, 0, 1, 1}, + {&__pyx_n_s_eventhandler, __pyx_k_eventhandler, sizeof(__pyx_k_eventhandler), 0, 0, 1, 1}, + {&__pyx_n_s_exec, __pyx_k_exec, sizeof(__pyx_k_exec), 0, 0, 1, 1}, + {&__pyx_n_s_exit, __pyx_k_exit, sizeof(__pyx_k_exit), 0, 0, 1, 1}, + {&__pyx_n_s_exoid, __pyx_k_exoid, sizeof(__pyx_k_exoid), 0, 0, 1, 1}, + {&__pyx_kp_s_expecting_a_C_contiguous_array, __pyx_k_expecting_a_C_contiguous_array, sizeof(__pyx_k_expecting_a_C_contiguous_array), 0, 0, 1, 0}, + {&__pyx_kp_s_expecting_tuple_list_or_dict, __pyx_k_expecting_tuple_list_or_dict, sizeof(__pyx_k_expecting_tuple_list_or_dict), 0, 0, 1, 0}, + {&__pyx_n_s_f, __pyx_k_f, sizeof(__pyx_k_f), 0, 0, 1, 1}, + {&__pyx_n_s_faces, __pyx_k_faces, sizeof(__pyx_k_faces), 0, 0, 1, 1}, + {&__pyx_n_s_fact, __pyx_k_fact, sizeof(__pyx_k_fact), 0, 0, 1, 1}, + {&__pyx_n_s_factor_mallocs, __pyx_k_factor_mallocs, sizeof(__pyx_k_factor_mallocs), 0, 0, 1, 1}, + {&__pyx_n_s_fe_type, __pyx_k_fe_type, sizeof(__pyx_k_fe_type), 0, 0, 1, 1}, + {&__pyx_n_s_fget, __pyx_k_fget, sizeof(__pyx_k_fget), 0, 0, 1, 1}, + {&__pyx_n_s_field, __pyx_k_field, sizeof(__pyx_k_field), 0, 0, 1, 1}, + {&__pyx_n_s_fieldName, __pyx_k_fieldName, sizeof(__pyx_k_fieldName), 0, 0, 1, 1}, + {&__pyx_n_s_fieldname, __pyx_k_fieldname, sizeof(__pyx_k_fieldname), 0, 0, 1, 1}, + {&__pyx_n_s_fieldnames, __pyx_k_fieldnames, sizeof(__pyx_k_fieldnames), 0, 0, 1, 1}, + {&__pyx_n_s_fields, __pyx_k_fields, sizeof(__pyx_k_fields), 0, 0, 1, 1}, + {&__pyx_n_s_file, __pyx_k_file, sizeof(__pyx_k_file), 0, 0, 1, 1}, + {&__pyx_n_s_filename, __pyx_k_filename, sizeof(__pyx_k_filename), 0, 0, 1, 1}, + {&__pyx_n_s_fill, __pyx_k_fill, sizeof(__pyx_k_fill), 0, 0, 1, 1}, + {&__pyx_n_s_fill_param, __pyx_k_fill_param, sizeof(__pyx_k_fill_param), 0, 0, 1, 1}, + {&__pyx_n_s_fill_ratio_given, __pyx_k_fill_ratio_given, sizeof(__pyx_k_fill_ratio_given), 0, 0, 1, 1}, + {&__pyx_n_s_fill_ratio_needed, __pyx_k_fill_ratio_needed, sizeof(__pyx_k_fill_ratio_needed), 0, 0, 1, 1}, + {&__pyx_n_s_finalize, __pyx_k_finalize, sizeof(__pyx_k_finalize), 0, 0, 1, 1}, + {&__pyx_n_s_first, __pyx_k_first, sizeof(__pyx_k_first), 0, 0, 1, 1}, + {&__pyx_n_s_fix, __pyx_k_fix, sizeof(__pyx_k_fix), 0, 0, 1, 1}, + {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1}, + {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, + {&__pyx_n_s_flg, __pyx_k_flg, sizeof(__pyx_k_flg), 0, 0, 1, 1}, + {&__pyx_n_s_flip, __pyx_k_flip, sizeof(__pyx_k_flip), 0, 0, 1, 1}, + {&__pyx_n_s_flops, __pyx_k_flops, sizeof(__pyx_k_flops), 0, 0, 1, 1}, + {&__pyx_n_s_flush, __pyx_k_flush, sizeof(__pyx_k_flush), 0, 0, 1, 1}, + {&__pyx_n_s_fnorm, __pyx_k_fnorm, sizeof(__pyx_k_fnorm), 0, 0, 1, 1}, + {&__pyx_n_s_force, __pyx_k_force, sizeof(__pyx_k_force), 0, 0, 1, 1}, + {&__pyx_n_s_formDegree, __pyx_k_formDegree, sizeof(__pyx_k_formDegree), 0, 0, 1, 1}, + {&__pyx_n_s_formSNESFunction, __pyx_k_formSNESFunction, sizeof(__pyx_k_formSNESFunction), 0, 0, 1, 1}, + {&__pyx_n_s_formSNESJacobian, __pyx_k_formSNESJacobian, sizeof(__pyx_k_formSNESJacobian), 0, 0, 1, 1}, + {&__pyx_n_s_format, __pyx_k_format, sizeof(__pyx_k_format), 0, 0, 1, 1}, + {&__pyx_n_s_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 0, 1, 1}, + {&__pyx_n_u_fortran, __pyx_k_fortran, sizeof(__pyx_k_fortran), 0, 1, 0, 1}, + {&__pyx_n_s_forward, __pyx_k_forward, sizeof(__pyx_k_forward), 0, 0, 1, 1}, + {&__pyx_n_s_front, __pyx_k_front, sizeof(__pyx_k_front), 0, 0, 1, 1}, + {&__pyx_n_s_front_down, __pyx_k_front_down, sizeof(__pyx_k_front_down), 0, 0, 1, 1}, + {&__pyx_n_s_front_down_left, __pyx_k_front_down_left, sizeof(__pyx_k_front_down_left), 0, 0, 1, 1}, + {&__pyx_n_s_front_down_right, __pyx_k_front_down_right, sizeof(__pyx_k_front_down_right), 0, 0, 1, 1}, + {&__pyx_n_s_front_left, __pyx_k_front_left, sizeof(__pyx_k_front_left), 0, 0, 1, 1}, + {&__pyx_n_s_front_right, __pyx_k_front_right, sizeof(__pyx_k_front_right), 0, 0, 1, 1}, + {&__pyx_n_s_front_up, __pyx_k_front_up, sizeof(__pyx_k_front_up), 0, 0, 1, 1}, + {&__pyx_n_s_front_up_left, __pyx_k_front_up_left, sizeof(__pyx_k_front_up_left), 0, 0, 1, 1}, + {&__pyx_n_s_front_up_right, __pyx_k_front_up_right, sizeof(__pyx_k_front_up_right), 0, 0, 1, 1}, + {&__pyx_n_s_func, __pyx_k_func, sizeof(__pyx_k_func), 0, 0, 1, 1}, + {&__pyx_n_s_function, __pyx_k_function, sizeof(__pyx_k_function), 0, 0, 1, 1}, + {&__pyx_n_s_functional, __pyx_k_functional, sizeof(__pyx_k_functional), 0, 0, 1, 1}, + {&__pyx_n_s_functools, __pyx_k_functools, sizeof(__pyx_k_functools), 0, 0, 1, 1}, + {&__pyx_n_s_g, __pyx_k_g, sizeof(__pyx_k_g), 0, 0, 1, 1}, + {&__pyx_n_s_gamgtype, __pyx_k_gamgtype, sizeof(__pyx_k_gamgtype), 0, 0, 1, 1}, + {&__pyx_n_s_gamma, __pyx_k_gamma, sizeof(__pyx_k_gamma), 0, 0, 1, 1}, + {&__pyx_n_s_garbage_cleanup, __pyx_k_garbage_cleanup, sizeof(__pyx_k_garbage_cleanup), 0, 0, 1, 1}, + {&__pyx_n_s_garbage_view, __pyx_k_garbage_view, sizeof(__pyx_k_garbage_view), 0, 0, 1, 1}, + {&__pyx_n_s_gasmtype, __pyx_k_gasmtype, sizeof(__pyx_k_gasmtype), 0, 0, 1, 1}, + {&__pyx_n_s_gatol, __pyx_k_gatol, sizeof(__pyx_k_gatol), 0, 0, 1, 1}, + {&__pyx_n_s_get, __pyx_k_get, sizeof(__pyx_k_get), 0, 0, 1, 1}, + {&__pyx_kp_s_get1dCoordinatecArrays_for_DMSta, __pyx_k_get1dCoordinatecArrays_for_DMSta, sizeof(__pyx_k_get1dCoordinatecArrays_for_DMSta), 0, 0, 1, 0}, + {&__pyx_n_s_getActive, __pyx_k_getActive, sizeof(__pyx_k_getActive), 0, 0, 1, 1}, + {&__pyx_n_s_getActiveAll, __pyx_k_getActiveAll, sizeof(__pyx_k_getActiveAll), 0, 0, 1, 1}, + {&__pyx_n_s_getAppCtx, __pyx_k_getAppCtx, sizeof(__pyx_k_getAppCtx), 0, 0, 1, 1}, + {&__pyx_n_s_getApplicationContext, __pyx_k_getApplicationContext, sizeof(__pyx_k_getApplicationContext), 0, 0, 1, 1}, + {&__pyx_n_s_getArray, __pyx_k_getArray, sizeof(__pyx_k_getArray), 0, 0, 1, 1}, + {&__pyx_n_s_getBlockIndices, __pyx_k_getBlockIndices, sizeof(__pyx_k_getBlockIndices), 0, 0, 1, 1}, + {&__pyx_n_s_getBlockInfo, __pyx_k_getBlockInfo, sizeof(__pyx_k_getBlockInfo), 0, 0, 1, 1}, + {&__pyx_n_s_getBlockSize, __pyx_k_getBlockSize, sizeof(__pyx_k_getBlockSize), 0, 0, 1, 1}, + {&__pyx_n_s_getBlockSizes, __pyx_k_getBlockSizes, sizeof(__pyx_k_getBlockSizes), 0, 0, 1, 1}, + {&__pyx_n_s_getBoundaryType, __pyx_k_getBoundaryType, sizeof(__pyx_k_getBoundaryType), 0, 0, 1, 1}, + {&__pyx_n_s_getBoundaryTypes, __pyx_k_getBoundaryTypes, sizeof(__pyx_k_getBoundaryTypes), 0, 0, 1, 1}, + {&__pyx_n_s_getBuffer, __pyx_k_getBuffer, sizeof(__pyx_k_getBuffer), 0, 0, 1, 1}, + {&__pyx_n_s_getCPUTime, __pyx_k_getCPUTime, sizeof(__pyx_k_getCPUTime), 0, 0, 1, 1}, + {&__pyx_n_s_getClassId, __pyx_k_getClassId, sizeof(__pyx_k_getClassId), 0, 0, 1, 1}, + {&__pyx_n_s_getClassName, __pyx_k_getClassName, sizeof(__pyx_k_getClassName), 0, 0, 1, 1}, + {&__pyx_n_s_getComm, __pyx_k_getComm, sizeof(__pyx_k_getComm), 0, 0, 1, 1}, + {&__pyx_n_s_getConstraintTolerances, __pyx_k_getConstraintTolerances, sizeof(__pyx_k_getConstraintTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_getConvergedReason, __pyx_k_getConvergedReason, sizeof(__pyx_k_getConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_getConvergenceHistory, __pyx_k_getConvergenceHistory, sizeof(__pyx_k_getConvergenceHistory), 0, 0, 1, 1}, + {&__pyx_n_s_getCorners, __pyx_k_getCorners, sizeof(__pyx_k_getCorners), 0, 0, 1, 1}, + {&__pyx_n_s_getCurrent, __pyx_k_getCurrent, sizeof(__pyx_k_getCurrent), 0, 0, 1, 1}, + {&__pyx_n_s_getDM, __pyx_k_getDM, sizeof(__pyx_k_getDM), 0, 0, 1, 1}, + {&__pyx_n_s_getDS, __pyx_k_getDS, sizeof(__pyx_k_getDS), 0, 0, 1, 1}, + {&__pyx_n_s_getDefaultComm, __pyx_k_getDefaultComm, sizeof(__pyx_k_getDefaultComm), 0, 0, 1, 1}, + {&__pyx_n_s_getDefaultGlobalSection, __pyx_k_getDefaultGlobalSection, sizeof(__pyx_k_getDefaultGlobalSection), 0, 0, 1, 1}, + {&__pyx_n_s_getDefaultLocalSection, __pyx_k_getDefaultLocalSection, sizeof(__pyx_k_getDefaultLocalSection), 0, 0, 1, 1}, + {&__pyx_n_s_getDefaultSF, __pyx_k_getDefaultSF, sizeof(__pyx_k_getDefaultSF), 0, 0, 1, 1}, + {&__pyx_n_s_getDefaultSection, __pyx_k_getDefaultSection, sizeof(__pyx_k_getDefaultSection), 0, 0, 1, 1}, + {&__pyx_n_s_getDevice, __pyx_k_getDevice, sizeof(__pyx_k_getDevice), 0, 0, 1, 1}, + {&__pyx_n_s_getDeviceId, __pyx_k_getDeviceId, sizeof(__pyx_k_getDeviceId), 0, 0, 1, 1}, + {&__pyx_n_s_getDeviceType, __pyx_k_getDeviceType, sizeof(__pyx_k_getDeviceType), 0, 0, 1, 1}, + {&__pyx_n_s_getDiagonal, __pyx_k_getDiagonal, sizeof(__pyx_k_getDiagonal), 0, 0, 1, 1}, + {&__pyx_n_s_getDiagonalBlock, __pyx_k_getDiagonalBlock, sizeof(__pyx_k_getDiagonalBlock), 0, 0, 1, 1}, + {&__pyx_n_s_getDim, __pyx_k_getDim, sizeof(__pyx_k_getDim), 0, 0, 1, 1}, + {&__pyx_n_s_getDimension, __pyx_k_getDimension, sizeof(__pyx_k_getDimension), 0, 0, 1, 1}, + {&__pyx_n_s_getDof, __pyx_k_getDof, sizeof(__pyx_k_getDof), 0, 0, 1, 1}, + {&__pyx_n_s_getEntriesPerElement, __pyx_k_getEntriesPerElement, sizeof(__pyx_k_getEntriesPerElement), 0, 0, 1, 1}, + {&__pyx_n_s_getEquationType, __pyx_k_getEquationType, sizeof(__pyx_k_getEquationType), 0, 0, 1, 1}, + {&__pyx_n_s_getFlops, __pyx_k_getFlops, sizeof(__pyx_k_getFlops), 0, 0, 1, 1}, + {&__pyx_n_s_getFunctionNorm, __pyx_k_getFunctionNorm, sizeof(__pyx_k_getFunctionNorm), 0, 0, 1, 1}, + {&__pyx_n_s_getFunctionTolerances, __pyx_k_getFunctionTolerances, sizeof(__pyx_k_getFunctionTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_getFunctionValue, __pyx_k_getFunctionValue, sizeof(__pyx_k_getFunctionValue), 0, 0, 1, 1}, + {&__pyx_n_s_getGhostCorners, __pyx_k_getGhostCorners, sizeof(__pyx_k_getGhostCorners), 0, 0, 1, 1}, + {&__pyx_n_s_getGhostRanges, __pyx_k_getGhostRanges, sizeof(__pyx_k_getGhostRanges), 0, 0, 1, 1}, + {&__pyx_n_s_getGlobalSection, __pyx_k_getGlobalSection, sizeof(__pyx_k_getGlobalSection), 0, 0, 1, 1}, + {&__pyx_n_s_getGlobalSizes, __pyx_k_getGlobalSizes, sizeof(__pyx_k_getGlobalSizes), 0, 0, 1, 1}, + {&__pyx_n_s_getGradient, __pyx_k_getGradient, sizeof(__pyx_k_getGradient), 0, 0, 1, 1}, + {&__pyx_n_s_getGradientTolerances, __pyx_k_getGradientTolerances, sizeof(__pyx_k_getGradientTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_getIndices, __pyx_k_getIndices, sizeof(__pyx_k_getIndices), 0, 0, 1, 1}, + {&__pyx_n_s_getInfo, __pyx_k_getInfo, sizeof(__pyx_k_getInfo), 0, 0, 1, 1}, + {&__pyx_n_s_getInitialGuessKnoll, __pyx_k_getInitialGuessKnoll, sizeof(__pyx_k_getInitialGuessKnoll), 0, 0, 1, 1}, + {&__pyx_n_s_getInitialGuessNonzero, __pyx_k_getInitialGuessNonzero, sizeof(__pyx_k_getInitialGuessNonzero), 0, 0, 1, 1}, + {&__pyx_n_s_getInterval, __pyx_k_getInterval, sizeof(__pyx_k_getInterval), 0, 0, 1, 1}, + {&__pyx_n_s_getIterationNumber, __pyx_k_getIterationNumber, sizeof(__pyx_k_getIterationNumber), 0, 0, 1, 1}, + {&__pyx_n_s_getKSP, __pyx_k_getKSP, sizeof(__pyx_k_getKSP), 0, 0, 1, 1}, + {&__pyx_n_s_getKSPFailures, __pyx_k_getKSPFailures, sizeof(__pyx_k_getKSPFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getLinearSolveFailures, __pyx_k_getLinearSolveFailures, sizeof(__pyx_k_getLinearSolveFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getLocalSection, __pyx_k_getLocalSection, sizeof(__pyx_k_getLocalSection), 0, 0, 1, 1}, + {&__pyx_n_s_getLocalSize, __pyx_k_getLocalSize, sizeof(__pyx_k_getLocalSize), 0, 0, 1, 1}, + {&__pyx_n_s_getLocalSizes, __pyx_k_getLocalSizes, sizeof(__pyx_k_getLocalSizes), 0, 0, 1, 1}, + {&__pyx_n_s_getMatrix, __pyx_k_getMatrix, sizeof(__pyx_k_getMatrix), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxFunctionEvaluations, __pyx_k_getMaxFunctionEvaluations, sizeof(__pyx_k_getMaxFunctionEvaluations), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxKSPFailures, __pyx_k_getMaxKSPFailures, sizeof(__pyx_k_getMaxKSPFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxLinearSolveFailures, __pyx_k_getMaxLinearSolveFailures, sizeof(__pyx_k_getMaxLinearSolveFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxNonlinearStepFailures, __pyx_k_getMaxNonlinearStepFailures, sizeof(__pyx_k_getMaxNonlinearStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxStepFailures, __pyx_k_getMaxStepFailures, sizeof(__pyx_k_getMaxStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxSteps, __pyx_k_getMaxSteps, sizeof(__pyx_k_getMaxSteps), 0, 0, 1, 1}, + {&__pyx_n_s_getMaxTime, __pyx_k_getMaxTime, sizeof(__pyx_k_getMaxTime), 0, 0, 1, 1}, + {&__pyx_n_s_getNPC, __pyx_k_getNPC, sizeof(__pyx_k_getNPC), 0, 0, 1, 1}, + {&__pyx_n_s_getName, __pyx_k_getName, sizeof(__pyx_k_getName), 0, 0, 1, 1}, + {&__pyx_n_s_getNonlinearStepFailures, __pyx_k_getNonlinearStepFailures, sizeof(__pyx_k_getNonlinearStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getNormType, __pyx_k_getNormType, sizeof(__pyx_k_getNormType), 0, 0, 1, 1}, + {&__pyx_n_s_getNumber, __pyx_k_getNumber, sizeof(__pyx_k_getNumber), 0, 0, 1, 1}, + {&__pyx_n_s_getNumberDM, __pyx_k_getNumberDM, sizeof(__pyx_k_getNumberDM), 0, 0, 1, 1}, + {&__pyx_n_s_getObjectiveValue, __pyx_k_getObjectiveValue, sizeof(__pyx_k_getObjectiveValue), 0, 0, 1, 1}, + {&__pyx_n_s_getOperators, __pyx_k_getOperators, sizeof(__pyx_k_getOperators), 0, 0, 1, 1}, + {&__pyx_n_s_getOptionsPrefix, __pyx_k_getOptionsPrefix, sizeof(__pyx_k_getOptionsPrefix), 0, 0, 1, 1}, + {&__pyx_n_s_getOwnershipRange, __pyx_k_getOwnershipRange, sizeof(__pyx_k_getOwnershipRange), 0, 0, 1, 1}, + {&__pyx_n_s_getOwnershipRanges, __pyx_k_getOwnershipRanges, sizeof(__pyx_k_getOwnershipRanges), 0, 0, 1, 1}, + {&__pyx_n_s_getPC, __pyx_k_getPC, sizeof(__pyx_k_getPC), 0, 0, 1, 1}, + {&__pyx_n_s_getPCSide, __pyx_k_getPCSide, sizeof(__pyx_k_getPCSide), 0, 0, 1, 1}, + {&__pyx_n_s_getProblemType, __pyx_k_getProblemType, sizeof(__pyx_k_getProblemType), 0, 0, 1, 1}, + {&__pyx_n_s_getProcSizes, __pyx_k_getProcSizes, sizeof(__pyx_k_getProcSizes), 0, 0, 1, 1}, + {&__pyx_n_s_getRanges, __pyx_k_getRanges, sizeof(__pyx_k_getRanges), 0, 0, 1, 1}, + {&__pyx_n_s_getRank, __pyx_k_getRank, sizeof(__pyx_k_getRank), 0, 0, 1, 1}, + {&__pyx_n_s_getRefCount, __pyx_k_getRefCount, sizeof(__pyx_k_getRefCount), 0, 0, 1, 1}, + {&__pyx_n_s_getResidualNorm, __pyx_k_getResidualNorm, sizeof(__pyx_k_getResidualNorm), 0, 0, 1, 1}, + {&__pyx_n_s_getRhs, __pyx_k_getRhs, sizeof(__pyx_k_getRhs), 0, 0, 1, 1}, + {&__pyx_n_s_getSNES, __pyx_k_getSNES, sizeof(__pyx_k_getSNES), 0, 0, 1, 1}, + {&__pyx_n_s_getSection, __pyx_k_getSection, sizeof(__pyx_k_getSection), 0, 0, 1, 1}, + {&__pyx_n_s_getSectionSF, __pyx_k_getSectionSF, sizeof(__pyx_k_getSectionSF), 0, 0, 1, 1}, + {&__pyx_n_s_getSeed, __pyx_k_getSeed, sizeof(__pyx_k_getSeed), 0, 0, 1, 1}, + {&__pyx_n_s_getSize, __pyx_k_getSize, sizeof(__pyx_k_getSize), 0, 0, 1, 1}, + {&__pyx_n_s_getSizes, __pyx_k_getSizes, sizeof(__pyx_k_getSizes), 0, 0, 1, 1}, + {&__pyx_n_s_getSolution, __pyx_k_getSolution, sizeof(__pyx_k_getSolution), 0, 0, 1, 1}, + {&__pyx_n_s_getSolutionNorm, __pyx_k_getSolutionNorm, sizeof(__pyx_k_getSolutionNorm), 0, 0, 1, 1}, + {&__pyx_n_s_getSolutionUpdate, __pyx_k_getSolutionUpdate, sizeof(__pyx_k_getSolutionUpdate), 0, 0, 1, 1}, + {&__pyx_n_s_getStencil, __pyx_k_getStencil, sizeof(__pyx_k_getStencil), 0, 0, 1, 1}, + {&__pyx_n_s_getStencilType, __pyx_k_getStencilType, sizeof(__pyx_k_getStencilType), 0, 0, 1, 1}, + {&__pyx_n_s_getStencilWidth, __pyx_k_getStencilWidth, sizeof(__pyx_k_getStencilWidth), 0, 0, 1, 1}, + {&__pyx_n_s_getStepFailures, __pyx_k_getStepFailures, sizeof(__pyx_k_getStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_getStepNumber, __pyx_k_getStepNumber, sizeof(__pyx_k_getStepNumber), 0, 0, 1, 1}, + {&__pyx_n_s_getStreamType, __pyx_k_getStreamType, sizeof(__pyx_k_getStreamType), 0, 0, 1, 1}, + {&__pyx_n_s_getString, __pyx_k_getString, sizeof(__pyx_k_getString), 0, 0, 1, 1}, + {&__pyx_n_s_getTime, __pyx_k_getTime, sizeof(__pyx_k_getTime), 0, 0, 1, 1}, + {&__pyx_n_s_getTimeStep, __pyx_k_getTimeStep, sizeof(__pyx_k_getTimeStep), 0, 0, 1, 1}, + {&__pyx_n_s_getTolerances, __pyx_k_getTolerances, sizeof(__pyx_k_getTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_getType, __pyx_k_getType, sizeof(__pyx_k_getType), 0, 0, 1, 1}, + {&__pyx_n_s_getUseEW, __pyx_k_getUseEW, sizeof(__pyx_k_getUseEW), 0, 0, 1, 1}, + {&__pyx_n_s_getUseFD, __pyx_k_getUseFD, sizeof(__pyx_k_getUseFD), 0, 0, 1, 1}, + {&__pyx_n_s_getUseMF, __pyx_k_getUseMF, sizeof(__pyx_k_getUseMF), 0, 0, 1, 1}, + {&__pyx_n_s_getValue, __pyx_k_getValue, sizeof(__pyx_k_getValue), 0, 0, 1, 1}, + {&__pyx_kp_s_getValuesStagStencil_not_yet_imp, __pyx_k_getValuesStagStencil_not_yet_imp, sizeof(__pyx_k_getValuesStagStencil_not_yet_imp), 0, 0, 1, 0}, + {&__pyx_kp_s_getVecArray_for_DMStag_not_yet_i, __pyx_k_getVecArray_for_DMStag_not_yet_i, sizeof(__pyx_k_getVecArray_for_DMStag_not_yet_i), 0, 0, 1, 0}, + {&__pyx_n_s_getVecLeft, __pyx_k_getVecLeft, sizeof(__pyx_k_getVecLeft), 0, 0, 1, 1}, + {&__pyx_n_s_getVecRight, __pyx_k_getVecRight, sizeof(__pyx_k_getVecRight), 0, 0, 1, 1}, + {&__pyx_n_s_getVecs, __pyx_k_getVecs, sizeof(__pyx_k_getVecs), 0, 0, 1, 1}, + {&__pyx_n_s_getVersion, __pyx_k_getVersion, sizeof(__pyx_k_getVersion), 0, 0, 1, 1}, + {&__pyx_n_s_getVersionInfo, __pyx_k_getVersionInfo, sizeof(__pyx_k_getVersionInfo), 0, 0, 1, 1}, + {&__pyx_n_s_getVisible, __pyx_k_getVisible, sizeof(__pyx_k_getVisible), 0, 0, 1, 1}, + {&__pyx_n_s_get_2, __pyx_k_get_2, sizeof(__pyx_k_get_2), 0, 0, 1, 1}, + {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, + {&__pyx_n_s_ghostBcNodes, __pyx_k_ghostBcNodes, sizeof(__pyx_k_ghostBcNodes), 0, 0, 1, 1}, + {&__pyx_n_s_ghosted, __pyx_k_ghosted, sizeof(__pyx_k_ghosted), 0, 0, 1, 1}, + {&__pyx_n_s_ghosts, __pyx_k_ghosts, sizeof(__pyx_k_ghosts), 0, 0, 1, 1}, + {&__pyx_kp_s_ghosts_size_d_array_size_d_and_v, __pyx_k_ghosts_size_d_array_size_d_and_v, sizeof(__pyx_k_ghosts_size_d_array_size_d_and_v), 0, 0, 1, 0}, + {&__pyx_n_s_globalBcNodes, __pyx_k_globalBcNodes, sizeof(__pyx_k_globalBcNodes), 0, 0, 1, 1}, + {&__pyx_kp_s_global_size_d_not_divisible_by_b, __pyx_k_global_size_d_not_divisible_by_b, sizeof(__pyx_k_global_size_d_not_divisible_by_b), 0, 0, 1, 0}, + {&__pyx_n_s_globalsec, __pyx_k_globalsec, sizeof(__pyx_k_globalsec), 0, 0, 1, 1}, + {&__pyx_n_s_gord, __pyx_k_gord, sizeof(__pyx_k_gord), 0, 0, 1, 1}, + {&__pyx_kp_s_got_differing_extents_in_dimensi, __pyx_k_got_differing_extents_in_dimensi, sizeof(__pyx_k_got_differing_extents_in_dimensi), 0, 0, 1, 0}, + {&__pyx_n_s_gradient, __pyx_k_gradient, sizeof(__pyx_k_gradient), 0, 0, 1, 1}, + {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1}, + {&__pyx_n_s_grtol, __pyx_k_grtol, sizeof(__pyx_k_grtol), 0, 0, 1, 1}, + {&__pyx_n_s_gsec, __pyx_k_gsec, sizeof(__pyx_k_gsec), 0, 0, 1, 1}, + {&__pyx_n_s_gtol, __pyx_k_gtol, sizeof(__pyx_k_gtol), 0, 0, 1, 1}, + {&__pyx_n_s_gttol, __pyx_k_gttol, sizeof(__pyx_k_gttol), 0, 0, 1, 1}, + {&__pyx_n_s_gv, __pyx_k_gv, sizeof(__pyx_k_gv), 0, 0, 1, 1}, + {&__pyx_n_s_gvec, __pyx_k_gvec, sizeof(__pyx_k_gvec), 0, 0, 1, 1}, + {&__pyx_n_s_h_max, __pyx_k_h_max, sizeof(__pyx_k_h_max), 0, 0, 1, 1}, + {&__pyx_n_s_h_min, __pyx_k_h_min, sizeof(__pyx_k_h_min), 0, 0, 1, 1}, + {&__pyx_n_s_handle, __pyx_k_handle, sizeof(__pyx_k_handle), 0, 0, 1, 1}, + {&__pyx_n_s_has, __pyx_k_has, sizeof(__pyx_k_has), 0, 0, 1, 1}, + {&__pyx_n_s_hasExternalPackage, __pyx_k_hasExternalPackage, sizeof(__pyx_k_hasExternalPackage), 0, 0, 1, 1}, + {&__pyx_n_s_hasLabel, __pyx_k_hasLabel, sizeof(__pyx_k_hasLabel), 0, 0, 1, 1}, + {&__pyx_n_s_hasLagrange, __pyx_k_hasLagrange, sizeof(__pyx_k_hasLagrange), 0, 0, 1, 1}, + {&__pyx_n_s_hasName, __pyx_k_hasName, sizeof(__pyx_k_hasName), 0, 0, 1, 1}, + {&__pyx_n_s_hausd, __pyx_k_hausd, sizeof(__pyx_k_hausd), 0, 0, 1, 1}, + {&__pyx_n_s_hessian, __pyx_k_hessian, sizeof(__pyx_k_hessian), 0, 0, 1, 1}, + {&__pyx_n_s_hiphandle, __pyx_k_hiphandle, sizeof(__pyx_k_hiphandle), 0, 0, 1, 1}, + {&__pyx_n_s_hmax, __pyx_k_hmax, sizeof(__pyx_k_hmax), 0, 0, 1, 1}, + {&__pyx_n_s_hmin, __pyx_k_hmin, sizeof(__pyx_k_hmin), 0, 0, 1, 1}, + {&__pyx_n_s_hypretype, __pyx_k_hypretype, sizeof(__pyx_k_hypretype), 0, 0, 1, 1}, + {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, + {&__pyx_n_s_icntl, __pyx_k_icntl, sizeof(__pyx_k_icntl), 0, 0, 1, 1}, + {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, + {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1}, + {&__pyx_n_s_idxm, __pyx_k_idxm, sizeof(__pyx_k_idxm), 0, 0, 1, 1}, + {&__pyx_n_s_ierr, __pyx_k_ierr, sizeof(__pyx_k_ierr), 0, 0, 1, 1}, + {&__pyx_n_s_ignore, __pyx_k_ignore, sizeof(__pyx_k_ignore), 0, 0, 1, 1}, + {&__pyx_n_s_ignoreOutsideDomain, __pyx_k_ignoreOutsideDomain, sizeof(__pyx_k_ignoreOutsideDomain), 0, 0, 1, 1}, + {&__pyx_n_s_imag, __pyx_k_imag, sizeof(__pyx_k_imag), 0, 0, 1, 1}, + {&__pyx_n_s_imagPart, __pyx_k_imagPart, sizeof(__pyx_k_imagPart), 0, 0, 1, 1}, + {&__pyx_n_s_imex, __pyx_k_imex, sizeof(__pyx_k_imex), 0, 0, 1, 1}, + {&__pyx_n_s_imode, __pyx_k_imode, sizeof(__pyx_k_imode), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_n_s_inblocks, __pyx_k_inblocks, sizeof(__pyx_k_inblocks), 0, 0, 1, 1}, + {&__pyx_kp_s_incompatible_array_sizes, __pyx_k_incompatible_array_sizes, sizeof(__pyx_k_incompatible_array_sizes), 0, 0, 1, 0}, + {&__pyx_kp_s_incompatible_array_sizes_ni_d_nj, __pyx_k_incompatible_array_sizes_ni_d_nj, sizeof(__pyx_k_incompatible_array_sizes_ni_d_nj), 0, 0, 1, 0}, + {&__pyx_kp_s_incompatible_array_sizes_ni_d_nv, __pyx_k_incompatible_array_sizes_ni_d_nv, sizeof(__pyx_k_incompatible_array_sizes_ni_d_nv), 0, 0, 1, 0}, + {&__pyx_kp_s_incompatible_array_sizes_ni_d_nv_2, __pyx_k_incompatible_array_sizes_ni_d_nv_2, sizeof(__pyx_k_incompatible_array_sizes_ni_d_nv_2), 0, 0, 1, 0}, + {&__pyx_kp_s_incompatible_array_sizes_nv_d, __pyx_k_incompatible_array_sizes_nv_d, sizeof(__pyx_k_incompatible_array_sizes_nv_d), 0, 0, 1, 0}, + {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, + {&__pyx_n_s_indicator, __pyx_k_indicator, sizeof(__pyx_k_indicator), 0, 0, 1, 1}, + {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1}, + {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, + {&__pyx_n_s_infoAllow, __pyx_k_infoAllow, sizeof(__pyx_k_infoAllow), 0, 0, 1, 1}, + {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, + {&__pyx_n_s_initialguess, __pyx_k_initialguess, sizeof(__pyx_k_initialguess), 0, 0, 1, 1}, + {&__pyx_n_s_initialize, __pyx_k_initialize, sizeof(__pyx_k_initialize), 0, 0, 1, 1}, + {&__pyx_kp_s_input_arrays_have_incompatible_s, __pyx_k_input_arrays_have_incompatible_s, sizeof(__pyx_k_input_arrays_have_incompatible_s), 0, 0, 1, 0}, + {&__pyx_n_s_int, __pyx_k_int, sizeof(__pyx_k_int), 0, 0, 1, 1}, + {&__pyx_n_s_intdim, __pyx_k_intdim, sizeof(__pyx_k_intdim), 0, 0, 1, 1}, + {&__pyx_n_s_interior, __pyx_k_interior, sizeof(__pyx_k_interior), 0, 0, 1, 1}, + {&__pyx_n_s_interp_type, __pyx_k_interp_type, sizeof(__pyx_k_interp_type), 0, 0, 1, 1}, + {&__pyx_n_s_interpolate, __pyx_k_interpolate, sizeof(__pyx_k_interpolate), 0, 0, 1, 1}, + {&__pyx_n_s_interval, __pyx_k_interval, sizeof(__pyx_k_interval), 0, 0, 1, 1}, + {&__pyx_n_s_invert, __pyx_k_invert, sizeof(__pyx_k_invert), 0, 0, 1, 1}, + {&__pyx_n_s_is, __pyx_k_is, sizeof(__pyx_k_is), 0, 0, 1, 1}, + {&__pyx_n_s_isActive, __pyx_k_isActive, sizeof(__pyx_k_isActive), 0, 0, 1, 1}, + {&__pyx_n_s_isAssembled, __pyx_k_isAssembled, sizeof(__pyx_k_isAssembled), 0, 0, 1, 1}, + {&__pyx_n_s_isFinalized, __pyx_k_isFinalized, sizeof(__pyx_k_isFinalized), 0, 0, 1, 1}, + {&__pyx_n_s_isHermitian, __pyx_k_isHermitian, sizeof(__pyx_k_isHermitian), 0, 0, 1, 1}, + {&__pyx_n_s_isIdentity, __pyx_k_isIdentity, sizeof(__pyx_k_isIdentity), 0, 0, 1, 1}, + {&__pyx_n_s_isInitialized, __pyx_k_isInitialized, sizeof(__pyx_k_isInitialized), 0, 0, 1, 1}, + {&__pyx_n_s_isPermutation, __pyx_k_isPermutation, sizeof(__pyx_k_isPermutation), 0, 0, 1, 1}, + {&__pyx_n_s_isSimplex, __pyx_k_isSimplex, sizeof(__pyx_k_isSimplex), 0, 0, 1, 1}, + {&__pyx_n_s_isSorted, __pyx_k_isSorted, sizeof(__pyx_k_isSorted), 0, 0, 1, 1}, + {&__pyx_n_s_isStructurallySymmetric, __pyx_k_isStructurallySymmetric, sizeof(__pyx_k_isStructurallySymmetric), 0, 0, 1, 1}, + {&__pyx_n_s_isSymmetric, __pyx_k_isSymmetric, sizeof(__pyx_k_isSymmetric), 0, 0, 1, 1}, + {&__pyx_n_s_is_from, __pyx_k_is_from, sizeof(__pyx_k_is_from), 0, 0, 1, 1}, + {&__pyx_n_s_is_local, __pyx_k_is_local, sizeof(__pyx_k_is_local), 0, 0, 1, 1}, + {&__pyx_n_s_is_to, __pyx_k_is_to, sizeof(__pyx_k_is_to), 0, 0, 1, 1}, + {&__pyx_n_s_is_type, __pyx_k_is_type, sizeof(__pyx_k_is_type), 0, 0, 1, 1}, + {&__pyx_n_s_iscol, __pyx_k_iscol, sizeof(__pyx_k_iscol), 0, 0, 1, 1}, + {&__pyx_n_s_iscols, __pyx_k_iscols, sizeof(__pyx_k_iscols), 0, 0, 1, 1}, + {&__pyx_n_s_iset, __pyx_k_iset, sizeof(__pyx_k_iset), 0, 0, 1, 1}, + {&__pyx_n_s_isets, __pyx_k_isets, sizeof(__pyx_k_isets), 0, 0, 1, 1}, + {&__pyx_n_s_isfields, __pyx_k_isfields, sizeof(__pyx_k_isfields), 0, 0, 1, 1}, + {&__pyx_n_s_isotropic, __pyx_k_isotropic, sizeof(__pyx_k_isotropic), 0, 0, 1, 1}, + {&__pyx_n_s_isperm, __pyx_k_isperm, sizeof(__pyx_k_isperm), 0, 0, 1, 1}, + {&__pyx_n_s_isrow, __pyx_k_isrow, sizeof(__pyx_k_isrow), 0, 0, 1, 1}, + {&__pyx_n_s_isrows, __pyx_k_isrows, sizeof(__pyx_k_isrows), 0, 0, 1, 1}, + {&__pyx_n_s_itemsize, __pyx_k_itemsize, sizeof(__pyx_k_itemsize), 0, 0, 1, 1}, + {&__pyx_kp_s_itemsize_0_for_cython_array, __pyx_k_itemsize_0_for_cython_array, sizeof(__pyx_k_itemsize_0_for_cython_array), 0, 0, 1, 0}, + {&__pyx_n_s_its, __pyx_k_its, sizeof(__pyx_k_its), 0, 0, 1, 1}, + {&__pyx_n_s_ival, __pyx_k_ival, sizeof(__pyx_k_ival), 0, 0, 1, 1}, + {&__pyx_n_s_j, __pyx_k_j, sizeof(__pyx_k_j), 0, 0, 1, 1}, + {&__pyx_n_s_jacobian, __pyx_k_jacobian, sizeof(__pyx_k_jacobian), 0, 0, 1, 1}, + {&__pyx_n_s_jacobian_design, __pyx_k_jacobian_design, sizeof(__pyx_k_jacobian_design), 0, 0, 1, 1}, + {&__pyx_n_s_jacobian_equality, __pyx_k_jacobian_equality, sizeof(__pyx_k_jacobian_equality), 0, 0, 1, 1}, + {&__pyx_n_s_jacobian_state, __pyx_k_jacobian_state, sizeof(__pyx_k_jacobian_state), 0, 0, 1, 1}, + {&__pyx_n_s_jacobianp, __pyx_k_jacobianp, sizeof(__pyx_k_jacobianp), 0, 0, 1, 1}, + {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, + {&__pyx_n_s_join_mode, __pyx_k_join_mode, sizeof(__pyx_k_join_mode), 0, 0, 1, 1}, + {&__pyx_n_s_k, __pyx_k_k, sizeof(__pyx_k_k), 0, 0, 1, 1}, + {&__pyx_n_s_kargs, __pyx_k_kargs, sizeof(__pyx_k_kargs), 0, 0, 1, 1}, + {&__pyx_kp_s_key_d_cannot_register_s_already, __pyx_k_key_d_cannot_register_s_already, sizeof(__pyx_k_key_d_cannot_register_s_already), 0, 0, 1, 0}, + {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, + {&__pyx_n_s_kind, __pyx_k_kind, sizeof(__pyx_k_kind), 0, 0, 1, 1}, + {&__pyx_n_s_klass, __pyx_k_klass, sizeof(__pyx_k_klass), 0, 0, 1, 1}, + {&__pyx_n_s_ksp, __pyx_k_ksp, sizeof(__pyx_k_ksp), 0, 0, 1, 1}, + {&__pyx_n_s_ksp_type, __pyx_k_ksp_type, sizeof(__pyx_k_ksp_type), 0, 0, 1, 1}, + {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, + {&__pyx_n_s_l, __pyx_k_l, sizeof(__pyx_k_l), 0, 0, 1, 1}, + {&__pyx_n_s_l2l, __pyx_k_l2l, sizeof(__pyx_k_l2l), 0, 0, 1, 1}, + {&__pyx_n_s_label, __pyx_k_label, sizeof(__pyx_k_label), 0, 0, 1, 1}, + {&__pyx_n_s_labelName, __pyx_k_labelName, sizeof(__pyx_k_labelName), 0, 0, 1, 1}, + {&__pyx_n_s_lambda, __pyx_k_lambda, sizeof(__pyx_k_lambda), 0, 0, 1, 1}, + {&__pyx_n_s_lanes, __pyx_k_lanes, sizeof(__pyx_k_lanes), 0, 0, 1, 1}, + {&__pyx_n_s_layoutType, __pyx_k_layoutType, sizeof(__pyx_k_layoutType), 0, 0, 1, 1}, + {&__pyx_n_s_lda, __pyx_k_lda, sizeof(__pyx_k_lda), 0, 0, 1, 1}, + {&__pyx_n_s_leafSection, __pyx_k_leafSection, sizeof(__pyx_k_leafSection), 0, 0, 1, 1}, + {&__pyx_n_s_leafdata, __pyx_k_leafdata, sizeof(__pyx_k_leafdata), 0, 0, 1, 1}, + {&__pyx_n_s_leafsize, __pyx_k_leafsize, sizeof(__pyx_k_leafsize), 0, 0, 1, 1}, + {&__pyx_n_s_leafupdate, __pyx_k_leafupdate, sizeof(__pyx_k_leafupdate), 0, 0, 1, 1}, + {&__pyx_n_s_left, __pyx_k_left, sizeof(__pyx_k_left), 0, 0, 1, 1}, + {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, + {&__pyx_n_s_level, __pyx_k_level, sizeof(__pyx_k_level), 0, 0, 1, 1}, + {&__pyx_n_s_levels, __pyx_k_levels, sizeof(__pyx_k_levels), 0, 0, 1, 1}, + {&__pyx_n_s_lgmap, __pyx_k_lgmap, sizeof(__pyx_k_lgmap), 0, 0, 1, 1}, + {&__pyx_n_s_lgmap_type, __pyx_k_lgmap_type, sizeof(__pyx_k_lgmap_type), 0, 0, 1, 1}, + {&__pyx_n_s_lgmapc, __pyx_k_lgmapc, sizeof(__pyx_k_lgmapc), 0, 0, 1, 1}, + {&__pyx_n_s_lgmapr, __pyx_k_lgmapr, sizeof(__pyx_k_lgmapr), 0, 0, 1, 1}, + {&__pyx_n_s_linear_its, __pyx_k_linear_its, sizeof(__pyx_k_linear_its), 0, 0, 1, 1}, + {&__pyx_n_s_lits, __pyx_k_lits, sizeof(__pyx_k_lits), 0, 0, 1, 1}, + {&__pyx_n_s_loc, __pyx_k_loc, sizeof(__pyx_k_loc), 0, 0, 1, 1}, + {&__pyx_n_s_locC, __pyx_k_locC, sizeof(__pyx_k_locC), 0, 0, 1, 1}, + {&__pyx_n_s_locX, __pyx_k_locX, sizeof(__pyx_k_locX), 0, 0, 1, 1}, + {&__pyx_n_s_local, __pyx_k_local, sizeof(__pyx_k_local), 0, 0, 1, 1}, + {&__pyx_kp_s_local_and_global_sizes_cannot_be, __pyx_k_local_and_global_sizes_cannot_be, sizeof(__pyx_k_local_and_global_sizes_cannot_be), 0, 0, 1, 0}, + {&__pyx_kp_s_local_size_d_not_divisible_by_bl, __pyx_k_local_size_d_not_divisible_by_bl, sizeof(__pyx_k_local_size_d_not_divisible_by_bl), 0, 0, 1, 0}, + {&__pyx_n_s_localsec, __pyx_k_localsec, sizeof(__pyx_k_localsec), 0, 0, 1, 1}, + {&__pyx_n_s_locs, __pyx_k_locs, sizeof(__pyx_k_locs), 0, 0, 1, 1}, + {&__pyx_n_s_logFlops, __pyx_k_logFlops, sizeof(__pyx_k_logFlops), 0, 0, 1, 1}, + {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, + {&__pyx_n_s_ltog, __pyx_k_ltog, sizeof(__pyx_k_ltog), 0, 0, 1, 1}, + {&__pyx_n_s_ltol, __pyx_k_ltol, sizeof(__pyx_k_ltol), 0, 0, 1, 1}, + {&__pyx_n_s_lv, __pyx_k_lv, sizeof(__pyx_k_lv), 0, 0, 1, 1}, + {&__pyx_n_s_lvec, __pyx_k_lvec, sizeof(__pyx_k_lvec), 0, 0, 1, 1}, + {&__pyx_n_s_lvecs, __pyx_k_lvecs, sizeof(__pyx_k_lvecs), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_major, __pyx_k_major, sizeof(__pyx_k_major), 0, 0, 1, 1}, + {&__pyx_n_s_mallocs, __pyx_k_mallocs, sizeof(__pyx_k_mallocs), 0, 0, 1, 1}, + {&__pyx_n_s_mat, __pyx_k_mat, sizeof(__pyx_k_mat), 0, 0, 1, 1}, + {&__pyx_n_s_matApply, __pyx_k_matApply, sizeof(__pyx_k_matApply), 0, 0, 1, 1}, + {&__pyx_n_s_matMult, __pyx_k_matMult, sizeof(__pyx_k_matMult), 0, 0, 1, 1}, + {&__pyx_n_s_mat_type, __pyx_k_mat_type, sizeof(__pyx_k_mat_type), 0, 0, 1, 1}, + {&__pyx_n_s_matpartitioning_type, __pyx_k_matpartitioning_type, sizeof(__pyx_k_matpartitioning_type), 0, 0, 1, 1}, + {&__pyx_n_s_mats, __pyx_k_mats, sizeof(__pyx_k_mats), 0, 0, 1, 1}, + {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, + {&__pyx_n_s_maxDegree, __pyx_k_maxDegree, sizeof(__pyx_k_maxDegree), 0, 0, 1, 1}, + {&__pyx_n_s_max_fails, __pyx_k_max_fails, sizeof(__pyx_k_max_fails), 0, 0, 1, 1}, + {&__pyx_n_s_max_funcs, __pyx_k_max_funcs, sizeof(__pyx_k_max_funcs), 0, 0, 1, 1}, + {&__pyx_n_s_max_it, __pyx_k_max_it, sizeof(__pyx_k_max_it), 0, 0, 1, 1}, + {&__pyx_n_s_max_steps, __pyx_k_max_steps, sizeof(__pyx_k_max_steps), 0, 0, 1, 1}, + {&__pyx_n_s_max_time, __pyx_k_max_time, sizeof(__pyx_k_max_time), 0, 0, 1, 1}, + {&__pyx_n_s_maxrank, __pyx_k_maxrank, sizeof(__pyx_k_maxrank), 0, 0, 1, 1}, + {&__pyx_n_s_maxval, __pyx_k_maxval, sizeof(__pyx_k_maxval), 0, 0, 1, 1}, + {&__pyx_n_s_memo, __pyx_k_memo, sizeof(__pyx_k_memo), 0, 0, 1, 1}, + {&__pyx_n_s_memory, __pyx_k_memory, sizeof(__pyx_k_memory), 0, 0, 1, 1}, + {&__pyx_n_s_memview, __pyx_k_memview, sizeof(__pyx_k_memview), 0, 0, 1, 1}, + {&__pyx_n_s_messageLength, __pyx_k_messageLength, sizeof(__pyx_k_messageLength), 0, 0, 1, 1}, + {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, + {&__pyx_n_s_metric, __pyx_k_metric, sizeof(__pyx_k_metric), 0, 0, 1, 1}, + {&__pyx_n_s_metric1, __pyx_k_metric1, sizeof(__pyx_k_metric1), 0, 0, 1, 1}, + {&__pyx_n_s_metric2, __pyx_k_metric2, sizeof(__pyx_k_metric2), 0, 0, 1, 1}, + {&__pyx_n_s_metric3, __pyx_k_metric3, sizeof(__pyx_k_metric3), 0, 0, 1, 1}, + {&__pyx_n_s_metricAvg, __pyx_k_metricAvg, sizeof(__pyx_k_metricAvg), 0, 0, 1, 1}, + {&__pyx_n_s_metricInt, __pyx_k_metricInt, sizeof(__pyx_k_metricInt), 0, 0, 1, 1}, + {&__pyx_n_s_mgtype, __pyx_k_mgtype, sizeof(__pyx_k_mgtype), 0, 0, 1, 1}, + {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1}, + {&__pyx_n_s_minor, __pyx_k_minor, sizeof(__pyx_k_minor), 0, 0, 1, 1}, + {&__pyx_n_s_mirror, __pyx_k_mirror, sizeof(__pyx_k_mirror), 0, 0, 1, 1}, + {&__pyx_n_s_missingDiagonal, __pyx_k_missingDiagonal, sizeof(__pyx_k_missingDiagonal), 0, 0, 1, 1}, + {&__pyx_n_s_mit, __pyx_k_mit, sizeof(__pyx_k_mit), 0, 0, 1, 1}, + {&__pyx_n_s_mode, __pyx_k_mode, sizeof(__pyx_k_mode), 0, 0, 1, 1}, + {&__pyx_n_s_model, __pyx_k_model, sizeof(__pyx_k_model), 0, 0, 1, 1}, + {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, + {&__pyx_n_s_monitor, __pyx_k_monitor, sizeof(__pyx_k_monitor), 0, 0, 1, 1}, + {&__pyx_n_s_monitorCancel, __pyx_k_monitorCancel, sizeof(__pyx_k_monitorCancel), 0, 0, 1, 1}, + {&__pyx_n_s_mpi4py, __pyx_k_mpi4py, sizeof(__pyx_k_mpi4py), 0, 0, 1, 1}, + {&__pyx_kp_s_mpi4py_MPI, __pyx_k_mpi4py_MPI, sizeof(__pyx_k_mpi4py_MPI), 0, 0, 1, 0}, + {&__pyx_n_s_mpiabort, __pyx_k_mpiabort, sizeof(__pyx_k_mpiabort), 0, 0, 1, 1}, + {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, + {&__pyx_n_s_mult, __pyx_k_mult, sizeof(__pyx_k_mult), 0, 0, 1, 1}, + {&__pyx_n_s_multAdd, __pyx_k_multAdd, sizeof(__pyx_k_multAdd), 0, 0, 1, 1}, + {&__pyx_n_s_multDiagonalBlock, __pyx_k_multDiagonalBlock, sizeof(__pyx_k_multDiagonalBlock), 0, 0, 1, 1}, + {&__pyx_n_s_multHermitian, __pyx_k_multHermitian, sizeof(__pyx_k_multHermitian), 0, 0, 1, 1}, + {&__pyx_n_s_multHermitianAdd, __pyx_k_multHermitianAdd, sizeof(__pyx_k_multHermitianAdd), 0, 0, 1, 1}, + {&__pyx_n_s_multTranspose, __pyx_k_multTranspose, sizeof(__pyx_k_multTranspose), 0, 0, 1, 1}, + {&__pyx_n_s_multTransposeAdd, __pyx_k_multTransposeAdd, sizeof(__pyx_k_multTransposeAdd), 0, 0, 1, 1}, + {&__pyx_n_s_multirootdata, __pyx_k_multirootdata, sizeof(__pyx_k_multirootdata), 0, 0, 1, 1}, + {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, + {&__pyx_n_s_na, __pyx_k_na, sizeof(__pyx_k_na), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_name_3, __pyx_k_name_3, sizeof(__pyx_k_name_3), 0, 0, 1, 1}, + {&__pyx_n_s_nbsteps, __pyx_k_nbsteps, sizeof(__pyx_k_nbsteps), 0, 0, 1, 1}, + {&__pyx_n_s_nc, __pyx_k_nc, sizeof(__pyx_k_nc), 0, 0, 1, 1}, + {&__pyx_n_s_ndim, __pyx_k_ndim, sizeof(__pyx_k_ndim), 0, 0, 1, 1}, + {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, + {&__pyx_n_s_newsec, __pyx_k_newsec, sizeof(__pyx_k_newsec), 0, 0, 1, 1}, + {&__pyx_n_s_newvec, __pyx_k_newvec, sizeof(__pyx_k_newvec), 0, 0, 1, 1}, + {&__pyx_n_s_ngs, __pyx_k_ngs, sizeof(__pyx_k_ngs), 0, 0, 1, 1}, + {&__pyx_n_s_nlevels, __pyx_k_nlevels, sizeof(__pyx_k_nlevels), 0, 0, 1, 1}, + {&__pyx_n_s_nlocal, __pyx_k_nlocal, sizeof(__pyx_k_nlocal), 0, 0, 1, 1}, + {&__pyx_n_s_nmax, __pyx_k_nmax, sizeof(__pyx_k_nmax), 0, 0, 1, 1}, + {&__pyx_n_s_nmin, __pyx_k_nmin, sizeof(__pyx_k_nmin), 0, 0, 1, 1}, + {&__pyx_n_s_nnz, __pyx_k_nnz, sizeof(__pyx_k_nnz), 0, 0, 1, 1}, + {&__pyx_n_s_noInsert, __pyx_k_noInsert, sizeof(__pyx_k_noInsert), 0, 0, 1, 1}, + {&__pyx_n_s_noMove, __pyx_k_noMove, sizeof(__pyx_k_noMove), 0, 0, 1, 1}, + {&__pyx_n_s_noSurf, __pyx_k_noSurf, sizeof(__pyx_k_noSurf), 0, 0, 1, 1}, + {&__pyx_n_s_noSwap, __pyx_k_noSwap, sizeof(__pyx_k_noSwap), 0, 0, 1, 1}, + {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, + {&__pyx_n_s_none, __pyx_k_none, sizeof(__pyx_k_none), 0, 0, 1, 1}, + {&__pyx_n_s_nonzero, __pyx_k_nonzero, sizeof(__pyx_k_nonzero), 0, 0, 1, 1}, + {&__pyx_n_s_nonzero_2, __pyx_k_nonzero_2, sizeof(__pyx_k_nonzero_2), 0, 0, 1, 1}, + {&__pyx_n_s_norm, __pyx_k_norm, sizeof(__pyx_k_norm), 0, 0, 1, 1}, + {&__pyx_n_s_norm_type, __pyx_k_norm_type, sizeof(__pyx_k_norm_type), 0, 0, 1, 1}, + {&__pyx_n_s_normsched, __pyx_k_normsched, sizeof(__pyx_k_normsched), 0, 0, 1, 1}, + {&__pyx_n_s_normtype, __pyx_k_normtype, sizeof(__pyx_k_normtype), 0, 0, 1, 1}, + {&__pyx_n_s_npoints, __pyx_k_npoints, sizeof(__pyx_k_npoints), 0, 0, 1, 1}, + {&__pyx_n_s_nroots, __pyx_k_nroots, sizeof(__pyx_k_nroots), 0, 0, 1, 1}, + {&__pyx_n_s_nsd, __pyx_k_nsd, sizeof(__pyx_k_nsd), 0, 0, 1, 1}, + {&__pyx_n_s_nsp, __pyx_k_nsp, sizeof(__pyx_k_nsp), 0, 0, 1, 1}, + {&__pyx_n_s_nsubcomm, __pyx_k_nsubcomm, sizeof(__pyx_k_nsubcomm), 0, 0, 1, 1}, + {&__pyx_n_s_null, __pyx_k_null, sizeof(__pyx_k_null), 0, 0, 1, 1}, + {&__pyx_kp_s_null_communicator, __pyx_k_null_communicator, sizeof(__pyx_k_null_communicator), 0, 0, 1, 0}, + {&__pyx_n_s_numBatches, __pyx_k_numBatches, sizeof(__pyx_k_numBatches), 0, 0, 1, 1}, + {&__pyx_n_s_numBlocks, __pyx_k_numBlocks, sizeof(__pyx_k_numBlocks), 0, 0, 1, 1}, + {&__pyx_n_s_numComp, __pyx_k_numComp, sizeof(__pyx_k_numComp), 0, 0, 1, 1}, + {&__pyx_n_s_numDof, __pyx_k_numDof, sizeof(__pyx_k_numDof), 0, 0, 1, 1}, + {&__pyx_n_s_numFields, __pyx_k_numFields, sizeof(__pyx_k_numFields), 0, 0, 1, 1}, + {&__pyx_n_s_numIter, __pyx_k_numIter, sizeof(__pyx_k_numIter), 0, 0, 1, 1}, + {&__pyx_n_s_numMessages, __pyx_k_numMessages, sizeof(__pyx_k_numMessages), 0, 0, 1, 1}, + {&__pyx_n_s_numProcs, __pyx_k_numProcs, sizeof(__pyx_k_numProcs), 0, 0, 1, 1}, + {&__pyx_n_s_numReductions, __pyx_k_numReductions, sizeof(__pyx_k_numReductions), 0, 0, 1, 1}, + {&__pyx_n_s_numSumSpaces, __pyx_k_numSumSpaces, sizeof(__pyx_k_numSumSpaces), 0, 0, 1, 1}, + {&__pyx_n_s_numTensSpaces, __pyx_k_numTensSpaces, sizeof(__pyx_k_numTensSpaces), 0, 0, 1, 1}, + {&__pyx_kp_s_number_of_dimensions_d_and_numbe, __pyx_k_number_of_dimensions_d_and_numbe, sizeof(__pyx_k_number_of_dimensions_d_and_numbe), 0, 0, 1, 0}, + {&__pyx_n_s_nz_allocated, __pyx_k_nz_allocated, sizeof(__pyx_k_nz_allocated), 0, 0, 1, 1}, + {&__pyx_n_s_nz_unneeded, __pyx_k_nz_unneeded, sizeof(__pyx_k_nz_unneeded), 0, 0, 1, 1}, + {&__pyx_n_s_nz_used, __pyx_k_nz_used, sizeof(__pyx_k_nz_used), 0, 0, 1, 1}, + {&__pyx_n_s_nzdiag, __pyx_k_nzdiag, sizeof(__pyx_k_nzdiag), 0, 0, 1, 1}, + {&__pyx_n_s_obj, __pyx_k_obj, sizeof(__pyx_k_obj), 0, 0, 1, 1}, + {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, + {&__pyx_n_s_objective, __pyx_k_objective, sizeof(__pyx_k_objective), 0, 0, 1, 1}, + {&__pyx_n_s_objgrad, __pyx_k_objgrad, sizeof(__pyx_k_objgrad), 0, 0, 1, 1}, + {&__pyx_n_s_offset, __pyx_k_offset, sizeof(__pyx_k_offset), 0, 0, 1, 1}, + {&__pyx_n_s_omega, __pyx_k_omega, sizeof(__pyx_k_omega), 0, 0, 1, 1}, + {&__pyx_n_s_ometric, __pyx_k_ometric, sizeof(__pyx_k_ometric), 0, 0, 1, 1}, + {&__pyx_kp_s_only_and, __pyx_k_only_and, sizeof(__pyx_k_only_and), 0, 0, 1, 0}, + {&__pyx_n_s_onnz, __pyx_k_onnz, sizeof(__pyx_k_onnz), 0, 0, 1, 1}, + {&__pyx_n_s_op, __pyx_k_op, sizeof(__pyx_k_op), 0, 0, 1, 1}, + {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, + {&__pyx_n_s_operator, __pyx_k_operator, sizeof(__pyx_k_operator), 0, 0, 1, 1}, + {&__pyx_n_s_operators, __pyx_k_operators, sizeof(__pyx_k_operators), 0, 0, 1, 1}, + {&__pyx_n_s_option, __pyx_k_option, sizeof(__pyx_k_option), 0, 0, 1, 1}, + {&__pyx_kp_s_option_prefix_must_be_string, __pyx_k_option_prefix_must_be_string, sizeof(__pyx_k_option_prefix_must_be_string), 0, 0, 1, 0}, + {&__pyx_kp_s_option_prefix_should_not_have_sp, __pyx_k_option_prefix_should_not_have_sp, sizeof(__pyx_k_option_prefix_should_not_have_sp), 0, 0, 1, 0}, + {&__pyx_kp_s_option_prefix_should_not_start_w, __pyx_k_option_prefix_should_not_start_w, sizeof(__pyx_k_option_prefix_should_not_start_w), 0, 0, 1, 0}, + {&__pyx_n_s_options, __pyx_k_options, sizeof(__pyx_k_options), 0, 0, 1, 1}, + {&__pyx_n_s_opts, __pyx_k_opts, sizeof(__pyx_k_opts), 0, 0, 1, 1}, + {&__pyx_n_s_ord_type, __pyx_k_ord_type, sizeof(__pyx_k_ord_type), 0, 0, 1, 1}, + {&__pyx_n_s_order, __pyx_k_order, sizeof(__pyx_k_order), 0, 0, 1, 1}, + {&__pyx_n_s_orientation, __pyx_k_orientation, sizeof(__pyx_k_orientation), 0, 0, 1, 1}, + {&__pyx_n_s_other, __pyx_k_other, sizeof(__pyx_k_other), 0, 0, 1, 1}, + {&__pyx_n_s_otype, __pyx_k_otype, sizeof(__pyx_k_otype), 0, 0, 1, 1}, + {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1}, + {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, + {&__pyx_n_s_overlap, __pyx_k_overlap, sizeof(__pyx_k_overlap), 0, 0, 1, 1}, + {&__pyx_kp_s_ownership_range_size_d_and_numbe, __pyx_k_ownership_range_size_d_and_numbe, sizeof(__pyx_k_ownership_range_size_d_and_numbe), 0, 0, 1, 0}, + {&__pyx_n_s_ownership_ranges, __pyx_k_ownership_ranges, sizeof(__pyx_k_ownership_ranges), 0, 0, 1, 1}, + {&__pyx_n_s_ozz, __pyx_k_ozz, sizeof(__pyx_k_ozz), 0, 0, 1, 1}, + {&__pyx_n_s_p, __pyx_k_p, sizeof(__pyx_k_p), 0, 0, 1, 1}, + {&__pyx_n_s_p1, __pyx_k_p1, sizeof(__pyx_k_p1), 0, 0, 1, 1}, + {&__pyx_n_s_pEnd, __pyx_k_pEnd, sizeof(__pyx_k_pEnd), 0, 0, 1, 1}, + {&__pyx_n_s_pStart, __pyx_k_pStart, sizeof(__pyx_k_pStart), 0, 0, 1, 1}, + {&__pyx_n_s_pack, __pyx_k_pack, sizeof(__pyx_k_pack), 0, 0, 1, 1}, + {&__pyx_n_s_package, __pyx_k_package, sizeof(__pyx_k_package), 0, 0, 1, 1}, + {&__pyx_n_s_package_2, __pyx_k_package_2, sizeof(__pyx_k_package_2), 0, 0, 1, 1}, + {&__pyx_n_s_parallel, __pyx_k_parallel, sizeof(__pyx_k_parallel), 0, 0, 1, 1}, + {&__pyx_n_s_parent, __pyx_k_parent, sizeof(__pyx_k_parent), 0, 0, 1, 1}, + {&__pyx_n_s_part, __pyx_k_part, sizeof(__pyx_k_part), 0, 0, 1, 1}, + {&__pyx_n_s_part_type, __pyx_k_part_type, sizeof(__pyx_k_part_type), 0, 0, 1, 1}, + {&__pyx_n_s_partitioning, __pyx_k_partitioning, sizeof(__pyx_k_partitioning), 0, 0, 1, 1}, + {&__pyx_n_s_pc, __pyx_k_pc, sizeof(__pyx_k_pc), 0, 0, 1, 1}, + {&__pyx_n_s_pc_type, __pyx_k_pc_type, sizeof(__pyx_k_pc_type), 0, 0, 1, 1}, + {&__pyx_n_s_pd, __pyx_k_pd, sizeof(__pyx_k_pd), 0, 0, 1, 1}, + {&__pyx_n_s_periodic, __pyx_k_periodic, sizeof(__pyx_k_periodic), 0, 0, 1, 1}, + {&__pyx_n_s_perm, __pyx_k_perm, sizeof(__pyx_k_perm), 0, 0, 1, 1}, + {&__pyx_n_s_permutation, __pyx_k_permutation, sizeof(__pyx_k_permutation), 0, 0, 1, 1}, + {&__pyx_n_s_petsc, __pyx_k_petsc, sizeof(__pyx_k_petsc), 0, 0, 1, 1}, + {&__pyx_n_s_petsc4py_PETSc, __pyx_k_petsc4py_PETSc, sizeof(__pyx_k_petsc4py_PETSc), 0, 0, 1, 1}, + {&__pyx_kp_s_petsc4py_PETSc_Device_pyx, __pyx_k_petsc4py_PETSc_Device_pyx, sizeof(__pyx_k_petsc4py_PETSc_Device_pyx), 0, 0, 1, 0}, + {&__pyx_kp_s_petsc4py_PETSc_Error_pyx, __pyx_k_petsc4py_PETSc_Error_pyx, sizeof(__pyx_k_petsc4py_PETSc_Error_pyx), 0, 0, 1, 0}, + {&__pyx_kp_s_petsc4py_PETSc_Log_pyx, __pyx_k_petsc4py_PETSc_Log_pyx, sizeof(__pyx_k_petsc4py_PETSc_Log_pyx), 0, 0, 1, 0}, + {&__pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_k_petsc4py_PETSc_PETSc_pyx, sizeof(__pyx_k_petsc4py_PETSc_PETSc_pyx), 0, 0, 1, 0}, + {&__pyx_kp_s_petsc4py_PETSc_cyclicgc_pxi, __pyx_k_petsc4py_PETSc_cyclicgc_pxi, sizeof(__pyx_k_petsc4py_PETSc_cyclicgc_pxi), 0, 0, 1, 0}, + {&__pyx_n_s_pi, __pyx_k_pi, sizeof(__pyx_k_pi), 0, 0, 1, 1}, + {&__pyx_n_s_pickle, __pyx_k_pickle, sizeof(__pyx_k_pickle), 0, 0, 1, 1}, + {&__pyx_n_s_pj, __pyx_k_pj, sizeof(__pyx_k_pj), 0, 0, 1, 1}, + {&__pyx_n_s_plexname, __pyx_k_plexname, sizeof(__pyx_k_plexname), 0, 0, 1, 1}, + {&__pyx_n_s_point, __pyx_k_point, sizeof(__pyx_k_point), 0, 0, 1, 1}, + {&__pyx_n_s_points, __pyx_k_points, sizeof(__pyx_k_points), 0, 0, 1, 1}, + {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, + {&__pyx_n_s_popErrorHandler, __pyx_k_popErrorHandler, sizeof(__pyx_k_popErrorHandler), 0, 0, 1, 1}, + {&__pyx_n_s_popSignalHandler, __pyx_k_popSignalHandler, sizeof(__pyx_k_popSignalHandler), 0, 0, 1, 1}, + {&__pyx_n_s_pop_python_vfprintf, __pyx_k_pop_python_vfprintf, sizeof(__pyx_k_pop_python_vfprintf), 0, 0, 1, 1}, + {&__pyx_n_s_position, __pyx_k_position, sizeof(__pyx_k_position), 0, 0, 1, 1}, + {&__pyx_n_s_positive_definite, __pyx_k_positive_definite, sizeof(__pyx_k_positive_definite), 0, 0, 1, 1}, + {&__pyx_n_s_postSolve, __pyx_k_postSolve, sizeof(__pyx_k_postSolve), 0, 0, 1, 1}, + {&__pyx_n_s_postStep, __pyx_k_postStep, sizeof(__pyx_k_postStep), 0, 0, 1, 1}, + {&__pyx_n_s_postevent, __pyx_k_postevent, sizeof(__pyx_k_postevent), 0, 0, 1, 1}, + {&__pyx_n_s_poststep, __pyx_k_poststep, sizeof(__pyx_k_poststep), 0, 0, 1, 1}, + {&__pyx_n_s_pre, __pyx_k_pre, sizeof(__pyx_k_pre), 0, 0, 1, 1}, + {&__pyx_n_s_preSolve, __pyx_k_preSolve, sizeof(__pyx_k_preSolve), 0, 0, 1, 1}, + {&__pyx_n_s_preStep, __pyx_k_preStep, sizeof(__pyx_k_preStep), 0, 0, 1, 1}, + {&__pyx_n_s_pre_finalize, __pyx_k_pre_finalize, sizeof(__pyx_k_pre_finalize), 0, 0, 1, 1}, + {&__pyx_n_s_precheck, __pyx_k_precheck, sizeof(__pyx_k_precheck), 0, 0, 1, 1}, + {&__pyx_n_s_prefix, __pyx_k_prefix, sizeof(__pyx_k_prefix), 0, 0, 1, 1}, + {&__pyx_kp_s_prefix_s_name_s, __pyx_k_prefix_s_name_s, sizeof(__pyx_k_prefix_s_name_s), 0, 0, 1, 0}, + {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, + {&__pyx_n_s_prestep, __pyx_k_prestep, sizeof(__pyx_k_prestep), 0, 0, 1, 1}, + {&__pyx_n_s_primv, __pyx_k_primv, sizeof(__pyx_k_primv), 0, 0, 1, 1}, + {&__pyx_n_s_proc_sizes, __pyx_k_proc_sizes, sizeof(__pyx_k_proc_sizes), 0, 0, 1, 1}, + {&__pyx_n_s_productNumeric, __pyx_k_productNumeric, sizeof(__pyx_k_productNumeric), 0, 0, 1, 1}, + {&__pyx_n_s_productSetFromOptions, __pyx_k_productSetFromOptions, sizeof(__pyx_k_productSetFromOptions), 0, 0, 1, 1}, + {&__pyx_n_s_productSymbolic, __pyx_k_productSymbolic, sizeof(__pyx_k_productSymbolic), 0, 0, 1, 1}, + {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1}, + {&__pyx_n_s_ptap, __pyx_k_ptap, sizeof(__pyx_k_ptap), 0, 0, 1, 1}, + {&__pyx_n_s_ptype, __pyx_k_ptype, sizeof(__pyx_k_ptype), 0, 0, 1, 1}, + {&__pyx_n_s_push, __pyx_k_push, sizeof(__pyx_k_push), 0, 0, 1, 1}, + {&__pyx_n_s_pushErrorHandler, __pyx_k_pushErrorHandler, sizeof(__pyx_k_pushErrorHandler), 0, 0, 1, 1}, + {&__pyx_n_s_push_python_vfprintf, __pyx_k_push_python_vfprintf, sizeof(__pyx_k_push_python_vfprintf), 0, 0, 1, 1}, + {&__pyx_n_s_py_sub_ctxs, __pyx_k_py_sub_ctxs, sizeof(__pyx_k_py_sub_ctxs), 0, 0, 1, 1}, + {&__pyx_n_s_py_type, __pyx_k_py_type, sizeof(__pyx_k_py_type), 0, 0, 1, 1}, + {&__pyx_n_s_python, __pyx_k_python, sizeof(__pyx_k_python), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_PickleError, __pyx_k_pyx_PickleError, sizeof(__pyx_k_pyx_PickleError), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_checksum, __pyx_k_pyx_checksum, sizeof(__pyx_k_pyx_checksum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_getbuffer, __pyx_k_pyx_getbuffer, sizeof(__pyx_k_pyx_getbuffer), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_result, __pyx_k_pyx_result, sizeof(__pyx_k_pyx_result), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_state, __pyx_k_pyx_state, sizeof(__pyx_k_pyx_state), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_type, __pyx_k_pyx_type, sizeof(__pyx_k_pyx_type), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_unpickle_Enum, __pyx_k_pyx_unpickle_Enum, sizeof(__pyx_k_pyx_unpickle_Enum), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, + {&__pyx_n_s_q0, __pyx_k_q0, sizeof(__pyx_k_q0), 0, 0, 1, 1}, + {&__pyx_n_s_q1, __pyx_k_q1, sizeof(__pyx_k_q1), 0, 0, 1, 1}, + {&__pyx_n_s_qorder, __pyx_k_qorder, sizeof(__pyx_k_qorder), 0, 0, 1, 1}, + {&__pyx_n_s_quad, __pyx_k_quad, sizeof(__pyx_k_quad), 0, 0, 1, 1}, + {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, + {&__pyx_n_s_r, __pyx_k_r, sizeof(__pyx_k_r), 0, 0, 1, 1}, + {&__pyx_kp_s_r_2, __pyx_k_r_2, sizeof(__pyx_k_r_2), 0, 0, 1, 0}, + {&__pyx_n_s_radius, __pyx_k_radius, sizeof(__pyx_k_radius), 0, 0, 1, 1}, + {&__pyx_n_s_random, __pyx_k_random, sizeof(__pyx_k_random), 0, 0, 1, 1}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_ranges, __pyx_k_ranges, sizeof(__pyx_k_ranges), 0, 0, 1, 1}, + {&__pyx_n_s_rank, __pyx_k_rank, sizeof(__pyx_k_rank), 0, 0, 1, 1}, + {&__pyx_n_s_read, __pyx_k_read, sizeof(__pyx_k_read), 0, 0, 1, 1}, + {&__pyx_n_s_readonly, __pyx_k_readonly, sizeof(__pyx_k_readonly), 0, 0, 1, 1}, + {&__pyx_kp_s_readonly_attribute, __pyx_k_readonly_attribute, sizeof(__pyx_k_readonly_attribute), 0, 0, 1, 0}, + {&__pyx_n_s_ready, __pyx_k_ready, sizeof(__pyx_k_ready), 0, 0, 1, 1}, + {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1}, + {&__pyx_n_s_realPart, __pyx_k_realPart, sizeof(__pyx_k_realPart), 0, 0, 1, 1}, + {&__pyx_n_s_reason, __pyx_k_reason, sizeof(__pyx_k_reason), 0, 0, 1, 1}, + {&__pyx_n_s_reciprocal, __pyx_k_reciprocal, sizeof(__pyx_k_reciprocal), 0, 0, 1, 1}, + {&__pyx_n_s_red, __pyx_k_red, sizeof(__pyx_k_red), 0, 0, 1, 1}, + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, + {&__pyx_n_s_redundant, __pyx_k_redundant, sizeof(__pyx_k_redundant), 0, 0, 1, 1}, + {&__pyx_n_s_redundantPoints, __pyx_k_redundantPoints, sizeof(__pyx_k_redundantPoints), 0, 0, 1, 1}, + {&__pyx_n_s_refine, __pyx_k_refine, sizeof(__pyx_k_refine), 0, 0, 1, 1}, + {&__pyx_n_s_refine_x, __pyx_k_refine_x, sizeof(__pyx_k_refine_x), 0, 0, 1, 1}, + {&__pyx_n_s_refine_y, __pyx_k_refine_y, sizeof(__pyx_k_refine_y), 0, 0, 1, 1}, + {&__pyx_n_s_refine_z, __pyx_k_refine_z, sizeof(__pyx_k_refine_z), 0, 0, 1, 1}, + {&__pyx_n_s_refinementLimit, __pyx_k_refinementLimit, sizeof(__pyx_k_refinementLimit), 0, 0, 1, 1}, + {&__pyx_n_s_refinementUniform, __pyx_k_refinementUniform, sizeof(__pyx_k_refinementUniform), 0, 0, 1, 1}, + {&__pyx_n_s_register, __pyx_k_register, sizeof(__pyx_k_register), 0, 0, 1, 1}, + {&__pyx_n_s_registerCitation, __pyx_k_registerCitation, sizeof(__pyx_k_registerCitation), 0, 0, 1, 1}, + {&__pyx_n_s_release, __pyx_k_release, sizeof(__pyx_k_release), 0, 0, 1, 1}, + {&__pyx_n_s_remote, __pyx_k_remote, sizeof(__pyx_k_remote), 0, 0, 1, 1}, + {&__pyx_n_s_remoteOffsets, __pyx_k_remoteOffsets, sizeof(__pyx_k_remoteOffsets), 0, 0, 1, 1}, + {&__pyx_n_s_remove, __pyx_k_remove, sizeof(__pyx_k_remove), 0, 0, 1, 1}, + {&__pyx_n_s_remove_sent_points, __pyx_k_remove_sent_points, sizeof(__pyx_k_remove_sent_points), 0, 0, 1, 1}, + {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, + {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1}, + {&__pyx_n_s_res, __pyx_k_res, sizeof(__pyx_k_res), 0, 0, 1, 1}, + {&__pyx_n_s_reset, __pyx_k_reset, sizeof(__pyx_k_reset), 0, 0, 1, 1}, + {&__pyx_n_s_reshape, __pyx_k_reshape, sizeof(__pyx_k_reshape), 0, 0, 1, 1}, + {&__pyx_n_s_residual, __pyx_k_residual, sizeof(__pyx_k_residual), 0, 0, 1, 1}, + {&__pyx_n_s_restart, __pyx_k_restart, sizeof(__pyx_k_restart), 0, 0, 1, 1}, + {&__pyx_n_s_restrictAnisotropy, __pyx_k_restrictAnisotropy, sizeof(__pyx_k_restrictAnisotropy), 0, 0, 1, 1}, + {&__pyx_n_s_restrictAnisotropyFirst, __pyx_k_restrictAnisotropyFirst, sizeof(__pyx_k_restrictAnisotropyFirst), 0, 0, 1, 1}, + {&__pyx_n_s_restrictSizes, __pyx_k_restrictSizes, sizeof(__pyx_k_restrictSizes), 0, 0, 1, 1}, + {&__pyx_n_s_restricthook, __pyx_k_restricthook, sizeof(__pyx_k_restricthook), 0, 0, 1, 1}, + {&__pyx_n_s_result, __pyx_k_result, sizeof(__pyx_k_result), 0, 0, 1, 1}, + {&__pyx_n_s_reuse, __pyx_k_reuse, sizeof(__pyx_k_reuse), 0, 0, 1, 1}, + {&__pyx_n_s_reverse, __pyx_k_reverse, sizeof(__pyx_k_reverse), 0, 0, 1, 1}, + {&__pyx_n_s_rgLabel, __pyx_k_rgLabel, sizeof(__pyx_k_rgLabel), 0, 0, 1, 1}, + {&__pyx_n_s_rhs, __pyx_k_rhs, sizeof(__pyx_k_rhs), 0, 0, 1, 1}, + {&__pyx_n_s_rhsjacobianp, __pyx_k_rhsjacobianp, sizeof(__pyx_k_rhsjacobianp), 0, 0, 1, 1}, + {&__pyx_n_s_right, __pyx_k_right, sizeof(__pyx_k_right), 0, 0, 1, 1}, + {&__pyx_n_s_rmap, __pyx_k_rmap, sizeof(__pyx_k_rmap), 0, 0, 1, 1}, + {&__pyx_n_s_rnd_type, __pyx_k_rnd_type, sizeof(__pyx_k_rnd_type), 0, 0, 1, 1}, + {&__pyx_n_s_rnorm, __pyx_k_rnorm, sizeof(__pyx_k_rnorm), 0, 0, 1, 1}, + {&__pyx_n_s_rollback, __pyx_k_rollback, sizeof(__pyx_k_rollback), 0, 0, 1, 1}, + {&__pyx_n_s_rootSection, __pyx_k_rootSection, sizeof(__pyx_k_rootSection), 0, 0, 1, 1}, + {&__pyx_n_s_rootdata, __pyx_k_rootdata, sizeof(__pyx_k_rootdata), 0, 0, 1, 1}, + {&__pyx_n_s_row, __pyx_k_row, sizeof(__pyx_k_row), 0, 0, 1, 1}, + {&__pyx_n_s_row_bsize, __pyx_k_row_bsize, sizeof(__pyx_k_row_bsize), 0, 0, 1, 1}, + {&__pyx_kp_s_row_indices_must_have_two_dimens, __pyx_k_row_indices_must_have_two_dimens, sizeof(__pyx_k_row_indices_must_have_two_dimens), 0, 0, 1, 0}, + {&__pyx_n_s_rowmap, __pyx_k_rowmap, sizeof(__pyx_k_rowmap), 0, 0, 1, 1}, + {&__pyx_n_s_rows, __pyx_k_rows, sizeof(__pyx_k_rows), 0, 0, 1, 1}, + {&__pyx_n_s_rscale, __pyx_k_rscale, sizeof(__pyx_k_rscale), 0, 0, 1, 1}, + {&__pyx_n_s_rsplit, __pyx_k_rsplit, sizeof(__pyx_k_rsplit), 0, 0, 1, 1}, + {&__pyx_n_s_rtol, __pyx_k_rtol, sizeof(__pyx_k_rtol), 0, 0, 1, 1}, + {&__pyx_n_s_rtol_0, __pyx_k_rtol_0, sizeof(__pyx_k_rtol_0), 0, 0, 1, 1}, + {&__pyx_n_s_rtol_max, __pyx_k_rtol_max, sizeof(__pyx_k_rtol_max), 0, 0, 1, 1}, + {&__pyx_n_s_rw, __pyx_k_rw, sizeof(__pyx_k_rw), 0, 0, 1, 1}, + {&__pyx_kp_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 0}, + {&__pyx_n_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 1}, + {&__pyx_kp_u_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 1, 0, 0}, + {&__pyx_kp_s_s_at_s_d, __pyx_k_s_at_s_d, sizeof(__pyx_k_s_at_s_d), 0, 0, 1, 0}, + {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0}, + {&__pyx_n_s_scale, __pyx_k_scale, sizeof(__pyx_k_scale), 0, 0, 1, 1}, + {&__pyx_n_s_scatter, __pyx_k_scatter, sizeof(__pyx_k_scatter), 0, 0, 1, 1}, + {&__pyx_n_s_scatter_type, __pyx_k_scatter_type, sizeof(__pyx_k_scatter_type), 0, 0, 1, 1}, + {&__pyx_n_s_sec, __pyx_k_sec, sizeof(__pyx_k_sec), 0, 0, 1, 1}, + {&__pyx_n_s_seconds, __pyx_k_seconds, sizeof(__pyx_k_seconds), 0, 0, 1, 1}, + {&__pyx_n_s_sectiondm, __pyx_k_sectiondm, sizeof(__pyx_k_sectiondm), 0, 0, 1, 1}, + {&__pyx_n_s_seed, __pyx_k_seed, sizeof(__pyx_k_seed), 0, 0, 1, 1}, + {&__pyx_n_s_selected, __pyx_k_selected, sizeof(__pyx_k_selected), 0, 0, 1, 1}, + {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, + {&__pyx_n_s_sep, __pyx_k_sep, sizeof(__pyx_k_sep), 0, 0, 1, 1}, + {&__pyx_n_s_setActive, __pyx_k_setActive, sizeof(__pyx_k_setActive), 0, 0, 1, 1}, + {&__pyx_n_s_setActiveAll, __pyx_k_setActiveAll, sizeof(__pyx_k_setActiveAll), 0, 0, 1, 1}, + {&__pyx_n_s_setAppCtx, __pyx_k_setAppCtx, sizeof(__pyx_k_setAppCtx), 0, 0, 1, 1}, + {&__pyx_n_s_setApplicationContext, __pyx_k_setApplicationContext, sizeof(__pyx_k_setApplicationContext), 0, 0, 1, 1}, + {&__pyx_n_s_setConvergedReason, __pyx_k_setConvergedReason, sizeof(__pyx_k_setConvergedReason), 0, 0, 1, 1}, + {&__pyx_n_s_setCurrent, __pyx_k_setCurrent, sizeof(__pyx_k_setCurrent), 0, 0, 1, 1}, + {&__pyx_n_s_setDM, __pyx_k_setDM, sizeof(__pyx_k_setDM), 0, 0, 1, 1}, + {&__pyx_n_s_setDS, __pyx_k_setDS, sizeof(__pyx_k_setDS), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultComm, __pyx_k_setDefaultComm, sizeof(__pyx_k_setDefaultComm), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultGlobalSection, __pyx_k_setDefaultGlobalSection, sizeof(__pyx_k_setDefaultGlobalSection), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultLocalSection, __pyx_k_setDefaultLocalSection, sizeof(__pyx_k_setDefaultLocalSection), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultSF, __pyx_k_setDefaultSF, sizeof(__pyx_k_setDefaultSF), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultSection, __pyx_k_setDefaultSection, sizeof(__pyx_k_setDefaultSection), 0, 0, 1, 1}, + {&__pyx_n_s_setDefaultType, __pyx_k_setDefaultType, sizeof(__pyx_k_setDefaultType), 0, 0, 1, 1}, + {&__pyx_n_s_setDevice, __pyx_k_setDevice, sizeof(__pyx_k_setDevice), 0, 0, 1, 1}, + {&__pyx_n_s_setDiagonal, __pyx_k_setDiagonal, sizeof(__pyx_k_setDiagonal), 0, 0, 1, 1}, + {&__pyx_n_s_setDimension, __pyx_k_setDimension, sizeof(__pyx_k_setDimension), 0, 0, 1, 1}, + {&__pyx_n_s_setEquationType, __pyx_k_setEquationType, sizeof(__pyx_k_setEquationType), 0, 0, 1, 1}, + {&__pyx_n_s_setFromOptions, __pyx_k_setFromOptions, sizeof(__pyx_k_setFromOptions), 0, 0, 1, 1}, + {&__pyx_n_s_setFunctionNorm, __pyx_k_setFunctionNorm, sizeof(__pyx_k_setFunctionNorm), 0, 0, 1, 1}, + {&__pyx_n_s_setFunctionTolerances, __pyx_k_setFunctionTolerances, sizeof(__pyx_k_setFunctionTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_setGlobalSection, __pyx_k_setGlobalSection, sizeof(__pyx_k_setGlobalSection), 0, 0, 1, 1}, + {&__pyx_n_s_setInitial, __pyx_k_setInitial, sizeof(__pyx_k_setInitial), 0, 0, 1, 1}, + {&__pyx_n_s_setInitialGuessKnoll, __pyx_k_setInitialGuessKnoll, sizeof(__pyx_k_setInitialGuessKnoll), 0, 0, 1, 1}, + {&__pyx_n_s_setInitialGuessNonzero, __pyx_k_setInitialGuessNonzero, sizeof(__pyx_k_setInitialGuessNonzero), 0, 0, 1, 1}, + {&__pyx_n_s_setInterval, __pyx_k_setInterval, sizeof(__pyx_k_setInterval), 0, 0, 1, 1}, + {&__pyx_n_s_setIterationNumber, __pyx_k_setIterationNumber, sizeof(__pyx_k_setIterationNumber), 0, 0, 1, 1}, + {&__pyx_n_s_setKSP, __pyx_k_setKSP, sizeof(__pyx_k_setKSP), 0, 0, 1, 1}, + {&__pyx_n_s_setLocalSection, __pyx_k_setLocalSection, sizeof(__pyx_k_setLocalSection), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxFunctionEvaluations, __pyx_k_setMaxFunctionEvaluations, sizeof(__pyx_k_setMaxFunctionEvaluations), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxKSPFailures, __pyx_k_setMaxKSPFailures, sizeof(__pyx_k_setMaxKSPFailures), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxLinearSolveFailures, __pyx_k_setMaxLinearSolveFailures, sizeof(__pyx_k_setMaxLinearSolveFailures), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxNonlinearStepFailures, __pyx_k_setMaxNonlinearStepFailures, sizeof(__pyx_k_setMaxNonlinearStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxStepFailures, __pyx_k_setMaxStepFailures, sizeof(__pyx_k_setMaxStepFailures), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxSteps, __pyx_k_setMaxSteps, sizeof(__pyx_k_setMaxSteps), 0, 0, 1, 1}, + {&__pyx_n_s_setMaxTime, __pyx_k_setMaxTime, sizeof(__pyx_k_setMaxTime), 0, 0, 1, 1}, + {&__pyx_n_s_setMonitor, __pyx_k_setMonitor, sizeof(__pyx_k_setMonitor), 0, 0, 1, 1}, + {&__pyx_n_s_setNPC, __pyx_k_setNPC, sizeof(__pyx_k_setNPC), 0, 0, 1, 1}, + {&__pyx_n_s_setName, __pyx_k_setName, sizeof(__pyx_k_setName), 0, 0, 1, 1}, + {&__pyx_n_s_setNormType, __pyx_k_setNormType, sizeof(__pyx_k_setNormType), 0, 0, 1, 1}, + {&__pyx_n_s_setOption, __pyx_k_setOption, sizeof(__pyx_k_setOption), 0, 0, 1, 1}, + {&__pyx_n_s_setOptionsPrefix, __pyx_k_setOptionsPrefix, sizeof(__pyx_k_setOptionsPrefix), 0, 0, 1, 1}, + {&__pyx_n_s_setPCSide, __pyx_k_setPCSide, sizeof(__pyx_k_setPCSide), 0, 0, 1, 1}, + {&__pyx_n_s_setParamsEW, __pyx_k_setParamsEW, sizeof(__pyx_k_setParamsEW), 0, 0, 1, 1}, + {&__pyx_n_s_setProblemType, __pyx_k_setProblemType, sizeof(__pyx_k_setProblemType), 0, 0, 1, 1}, + {&__pyx_n_s_setResidualNorm, __pyx_k_setResidualNorm, sizeof(__pyx_k_setResidualNorm), 0, 0, 1, 1}, + {&__pyx_n_s_setSection, __pyx_k_setSection, sizeof(__pyx_k_setSection), 0, 0, 1, 1}, + {&__pyx_n_s_setSectionSF, __pyx_k_setSectionSF, sizeof(__pyx_k_setSectionSF), 0, 0, 1, 1}, + {&__pyx_n_s_setSeed, __pyx_k_setSeed, sizeof(__pyx_k_setSeed), 0, 0, 1, 1}, + {&__pyx_n_s_setSizes, __pyx_k_setSizes, sizeof(__pyx_k_setSizes), 0, 0, 1, 1}, + {&__pyx_n_s_setSolution, __pyx_k_setSolution, sizeof(__pyx_k_setSolution), 0, 0, 1, 1}, + {&__pyx_n_s_setStepNumber, __pyx_k_setStepNumber, sizeof(__pyx_k_setStepNumber), 0, 0, 1, 1}, + {&__pyx_n_s_setStreamType, __pyx_k_setStreamType, sizeof(__pyx_k_setStreamType), 0, 0, 1, 1}, + {&__pyx_n_s_setTime, __pyx_k_setTime, sizeof(__pyx_k_setTime), 0, 0, 1, 1}, + {&__pyx_n_s_setTimeStep, __pyx_k_setTimeStep, sizeof(__pyx_k_setTimeStep), 0, 0, 1, 1}, + {&__pyx_n_s_setTolerances, __pyx_k_setTolerances, sizeof(__pyx_k_setTolerances), 0, 0, 1, 1}, + {&__pyx_n_s_setType, __pyx_k_setType, sizeof(__pyx_k_setType), 0, 0, 1, 1}, + {&__pyx_n_s_setUp, __pyx_k_setUp, sizeof(__pyx_k_setUp), 0, 0, 1, 1}, + {&__pyx_n_s_setUseEW, __pyx_k_setUseEW, sizeof(__pyx_k_setUseEW), 0, 0, 1, 1}, + {&__pyx_n_s_setUseFD, __pyx_k_setUseFD, sizeof(__pyx_k_setUseFD), 0, 0, 1, 1}, + {&__pyx_n_s_setUseMF, __pyx_k_setUseMF, sizeof(__pyx_k_setUseMF), 0, 0, 1, 1}, + {&__pyx_n_s_setValue, __pyx_k_setValue, sizeof(__pyx_k_setValue), 0, 0, 1, 1}, + {&__pyx_kp_s_setValueBlockedStagStencil_not_y, __pyx_k_setValueBlockedStagStencil_not_y, sizeof(__pyx_k_setValueBlockedStagStencil_not_y), 0, 0, 1, 0}, + {&__pyx_kp_s_setValueStagStencil_not_yet_impl, __pyx_k_setValueStagStencil_not_yet_impl, sizeof(__pyx_k_setValueStagStencil_not_yet_impl), 0, 0, 1, 0}, + {&__pyx_kp_s_setValuesStagStencil_not_yet_imp, __pyx_k_setValuesStagStencil_not_yet_imp, sizeof(__pyx_k_setValuesStagStencil_not_yet_imp), 0, 0, 1, 0}, + {&__pyx_n_s_setVisible, __pyx_k_setVisible, sizeof(__pyx_k_setVisible), 0, 0, 1, 1}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, + {&__pyx_n_s_setup, __pyx_k_setup, sizeof(__pyx_k_setup), 0, 0, 1, 1}, + {&__pyx_n_s_sf, __pyx_k_sf, sizeof(__pyx_k_sf), 0, 0, 1, 1}, + {&__pyx_n_s_sf_type, __pyx_k_sf_type, sizeof(__pyx_k_sf_type), 0, 0, 1, 1}, + {&__pyx_n_s_sfxc, __pyx_k_sfxc, sizeof(__pyx_k_sfxc), 0, 0, 1, 1}, + {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, + {&__pyx_n_s_shift, __pyx_k_shift, sizeof(__pyx_k_shift), 0, 0, 1, 1}, + {&__pyx_n_s_shift_type, __pyx_k_shift_type, sizeof(__pyx_k_shift_type), 0, 0, 1, 1}, + {&__pyx_n_s_shiftamount, __pyx_k_shiftamount, sizeof(__pyx_k_shiftamount), 0, 0, 1, 1}, + {&__pyx_n_s_shifttype, __pyx_k_shifttype, sizeof(__pyx_k_shifttype), 0, 0, 1, 1}, + {&__pyx_n_s_side, __pyx_k_side, sizeof(__pyx_k_side), 0, 0, 1, 1}, + {&__pyx_kp_s_side_r_not_understood, __pyx_k_side_r_not_understood, sizeof(__pyx_k_side_r_not_understood), 0, 0, 1, 0}, + {&__pyx_n_s_simplex, __pyx_k_simplex, sizeof(__pyx_k_simplex), 0, 0, 1, 1}, + {&__pyx_n_s_size, __pyx_k_size, sizeof(__pyx_k_size), 0, 0, 1, 1}, + {&__pyx_kp_s_size_I_is_d_expected_d, __pyx_k_size_I_is_d_expected_d, sizeof(__pyx_k_size_I_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_kp_s_size_J_is_d_expected_d, __pyx_k_size_J_is_d_expected_d, sizeof(__pyx_k_size_J_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_kp_s_size_V_is_d_expected_d, __pyx_k_size_V_is_d_expected_d, sizeof(__pyx_k_size_V_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_kp_s_size_array_is_d_expected_dx_d_d, __pyx_k_size_array_is_d_expected_dx_d_d, sizeof(__pyx_k_size_array_is_d_expected_dx_d_d), 0, 0, 1, 0}, + {&__pyx_kp_s_size_d_nnz_is_d_expected_d, __pyx_k_size_d_nnz_is_d_expected_d, sizeof(__pyx_k_size_d_nnz_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_kp_s_size_o_nnz_is_d_expected_d, __pyx_k_size_o_nnz_is_d_expected_d, sizeof(__pyx_k_size_o_nnz_is_d_expected_d), 0, 0, 1, 0}, + {&__pyx_n_s_sizes, __pyx_k_sizes, sizeof(__pyx_k_sizes), 0, 0, 1, 1}, + {&__pyx_kp_s_sizes_array_should_have_d_entrie, __pyx_k_sizes_array_should_have_d_entrie, sizeof(__pyx_k_sizes_array_should_have_d_entrie), 0, 0, 1, 0}, + {&__pyx_n_s_skip, __pyx_k_skip, sizeof(__pyx_k_skip), 0, 0, 1, 1}, + {&__pyx_n_s_sleep, __pyx_k_sleep, sizeof(__pyx_k_sleep), 0, 0, 1, 1}, + {&__pyx_n_s_smooths, __pyx_k_smooths, sizeof(__pyx_k_smooths), 0, 0, 1, 1}, + {&__pyx_n_s_snes, __pyx_k_snes, sizeof(__pyx_k_snes), 0, 0, 1, 1}, + {&__pyx_n_s_snes_type, __pyx_k_snes_type, sizeof(__pyx_k_snes_type), 0, 0, 1, 1}, + {&__pyx_n_s_solve, __pyx_k_solve, sizeof(__pyx_k_solve), 0, 0, 1, 1}, + {&__pyx_n_s_solveAdd, __pyx_k_solveAdd, sizeof(__pyx_k_solveAdd), 0, 0, 1, 1}, + {&__pyx_n_s_solveStep, __pyx_k_solveStep, sizeof(__pyx_k_solveStep), 0, 0, 1, 1}, + {&__pyx_n_s_solveTranspose, __pyx_k_solveTranspose, sizeof(__pyx_k_solveTranspose), 0, 0, 1, 1}, + {&__pyx_n_s_solveTransposeAdd, __pyx_k_solveTransposeAdd, sizeof(__pyx_k_solveTransposeAdd), 0, 0, 1, 1}, + {&__pyx_n_s_solver, __pyx_k_solver, sizeof(__pyx_k_solver), 0, 0, 1, 1}, + {&__pyx_n_s_sortype, __pyx_k_sortype, sizeof(__pyx_k_sortype), 0, 0, 1, 1}, + {&__pyx_n_s_sp, __pyx_k_sp, sizeof(__pyx_k_sp), 0, 0, 1, 1}, + {&__pyx_n_s_space_type, __pyx_k_space_type, sizeof(__pyx_k_space_type), 0, 0, 1, 1}, + {&__pyx_n_s_split, __pyx_k_split, sizeof(__pyx_k_split), 0, 0, 1, 1}, + {&__pyx_n_s_splitOwnership, __pyx_k_splitOwnership, sizeof(__pyx_k_splitOwnership), 0, 0, 1, 1}, + {&__pyx_n_s_stage, __pyx_k_stage, sizeof(__pyx_k_stage), 0, 0, 1, 1}, + {&__pyx_n_s_star, __pyx_k_star, sizeof(__pyx_k_star), 0, 0, 1, 1}, + {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, + {&__pyx_n_s_starts, __pyx_k_starts, sizeof(__pyx_k_starts), 0, 0, 1, 1}, + {&__pyx_n_s_startswith, __pyx_k_startswith, sizeof(__pyx_k_startswith), 0, 0, 1, 1}, + {&__pyx_n_s_state, __pyx_k_state, sizeof(__pyx_k_state), 0, 0, 1, 1}, + {&__pyx_n_s_staticmethod, __pyx_k_staticmethod, sizeof(__pyx_k_staticmethod), 0, 0, 1, 1}, + {&__pyx_n_s_staticproperty, __pyx_k_staticproperty, sizeof(__pyx_k_staticproperty), 0, 0, 1, 1}, + {&__pyx_n_s_staticproperty___get, __pyx_k_staticproperty___get, sizeof(__pyx_k_staticproperty___get), 0, 0, 1, 1}, + {&__pyx_n_s_stderr, __pyx_k_stderr, sizeof(__pyx_k_stderr), 0, 0, 1, 1}, + {&__pyx_n_s_stderr_2, __pyx_k_stderr_2, sizeof(__pyx_k_stderr_2), 0, 0, 1, 1}, + {&__pyx_n_s_stdout, __pyx_k_stdout, sizeof(__pyx_k_stdout), 0, 0, 1, 1}, + {&__pyx_n_s_stdout_2, __pyx_k_stdout_2, sizeof(__pyx_k_stdout_2), 0, 0, 1, 1}, + {&__pyx_n_s_stdout_is_stderr, __pyx_k_stdout_is_stderr, sizeof(__pyx_k_stdout_is_stderr), 0, 0, 1, 1}, + {&__pyx_n_s_stencil_type, __pyx_k_stencil_type, sizeof(__pyx_k_stencil_type), 0, 0, 1, 1}, + {&__pyx_n_s_stencil_width, __pyx_k_stencil_width, sizeof(__pyx_k_stencil_width), 0, 0, 1, 1}, + {&__pyx_n_s_stenciltype, __pyx_k_stenciltype, sizeof(__pyx_k_stenciltype), 0, 0, 1, 1}, + {&__pyx_n_s_step, __pyx_k_step, sizeof(__pyx_k_step), 0, 0, 1, 1}, + {&__pyx_n_s_stepTranspose, __pyx_k_stepTranspose, sizeof(__pyx_k_stepTranspose), 0, 0, 1, 1}, + {&__pyx_n_s_step_number, __pyx_k_step_number, sizeof(__pyx_k_step_number), 0, 0, 1, 1}, + {&__pyx_n_s_stol, __pyx_k_stol, sizeof(__pyx_k_stol), 0, 0, 1, 1}, + {&__pyx_n_s_stop, __pyx_k_stop, sizeof(__pyx_k_stop), 0, 0, 1, 1}, + {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1}, + {&__pyx_n_s_strata, __pyx_k_strata, sizeof(__pyx_k_strata), 0, 0, 1, 1}, + {&__pyx_n_s_stratum, __pyx_k_stratum, sizeof(__pyx_k_stratum), 0, 0, 1, 1}, + {&__pyx_n_s_stream, __pyx_k_stream, sizeof(__pyx_k_stream), 0, 0, 1, 1}, + {&__pyx_n_s_stream_type, __pyx_k_stream_type, sizeof(__pyx_k_stream_type), 0, 0, 1, 1}, + {&__pyx_kp_s_strided_and_direct, __pyx_k_strided_and_direct, sizeof(__pyx_k_strided_and_direct), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_direct_or_indirect, __pyx_k_strided_and_direct_or_indirect, sizeof(__pyx_k_strided_and_direct_or_indirect), 0, 0, 1, 0}, + {&__pyx_kp_s_strided_and_indirect, __pyx_k_strided_and_indirect, sizeof(__pyx_k_strided_and_indirect), 0, 0, 1, 0}, + {&__pyx_n_s_strides, __pyx_k_strides, sizeof(__pyx_k_strides), 0, 0, 1, 1}, + {&__pyx_n_s_string, __pyx_k_string, sizeof(__pyx_k_string), 0, 0, 1, 1}, + {&__pyx_kp_s_stringsource, __pyx_k_stringsource, sizeof(__pyx_k_stringsource), 0, 0, 1, 0}, + {&__pyx_n_s_strip, __pyx_k_strip, sizeof(__pyx_k_strip), 0, 0, 1, 1}, + {&__pyx_n_s_struct, __pyx_k_struct, sizeof(__pyx_k_struct), 0, 0, 1, 1}, + {&__pyx_n_s_structure, __pyx_k_structure, sizeof(__pyx_k_structure), 0, 0, 1, 1}, + {&__pyx_n_s_sub, __pyx_k_sub, sizeof(__pyx_k_sub), 0, 0, 1, 1}, + {&__pyx_n_s_subcomm, __pyx_k_subcomm, sizeof(__pyx_k_subcomm), 0, 0, 1, 1}, + {&__pyx_n_s_subdm, __pyx_k_subdm, sizeof(__pyx_k_subdm), 0, 0, 1, 1}, + {&__pyx_n_s_submat, __pyx_k_submat, sizeof(__pyx_k_submat), 0, 0, 1, 1}, + {&__pyx_n_s_submats, __pyx_k_submats, sizeof(__pyx_k_submats), 0, 0, 1, 1}, + {&__pyx_n_s_subminor, __pyx_k_subminor, sizeof(__pyx_k_subminor), 0, 0, 1, 1}, + {&__pyx_n_s_subsp, __pyx_k_subsp, sizeof(__pyx_k_subsp), 0, 0, 1, 1}, + {&__pyx_n_s_subspaceOffsets, __pyx_k_subspaceOffsets, sizeof(__pyx_k_subspaceOffsets), 0, 0, 1, 1}, + {&__pyx_n_s_subvec, __pyx_k_subvec, sizeof(__pyx_k_subvec), 0, 0, 1, 1}, + {&__pyx_n_s_supp, __pyx_k_supp, sizeof(__pyx_k_supp), 0, 0, 1, 1}, + {&__pyx_n_s_svalue, __pyx_k_svalue, sizeof(__pyx_k_svalue), 0, 0, 1, 1}, + {&__pyx_n_s_swidth, __pyx_k_swidth, sizeof(__pyx_k_swidth), 0, 0, 1, 1}, + {&__pyx_n_s_sx, __pyx_k_sx, sizeof(__pyx_k_sx), 0, 0, 1, 1}, + {&__pyx_n_s_sym, __pyx_k_sym, sizeof(__pyx_k_sym), 0, 0, 1, 1}, + {&__pyx_n_s_symmetric, __pyx_k_symmetric, sizeof(__pyx_k_symmetric), 0, 0, 1, 1}, + {&__pyx_n_s_syncFlush, __pyx_k_syncFlush, sizeof(__pyx_k_syncFlush), 0, 0, 1, 1}, + {&__pyx_n_s_syncPrint, __pyx_k_syncPrint, sizeof(__pyx_k_syncPrint), 0, 0, 1, 1}, + {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, + {&__pyx_n_s_t, __pyx_k_t, sizeof(__pyx_k_t), 0, 0, 1, 1}, + {&__pyx_n_s_tab, __pyx_k_tab, sizeof(__pyx_k_tab), 0, 0, 1, 1}, + {&__pyx_n_s_tabs, __pyx_k_tabs, sizeof(__pyx_k_tabs), 0, 0, 1, 1}, + {&__pyx_n_s_tao_type, __pyx_k_tao_type, sizeof(__pyx_k_tao_type), 0, 0, 1, 1}, + {&__pyx_n_s_targetComplexity, __pyx_k_targetComplexity, sizeof(__pyx_k_targetComplexity), 0, 0, 1, 1}, + {&__pyx_n_s_tbline, __pyx_k_tbline, sizeof(__pyx_k_tbline), 0, 0, 1, 1}, + {&__pyx_n_s_tblist, __pyx_k_tblist, sizeof(__pyx_k_tblist), 0, 0, 1, 1}, + {&__pyx_n_s_tensor, __pyx_k_tensor, sizeof(__pyx_k_tensor), 0, 0, 1, 1}, + {&__pyx_n_s_terminate, __pyx_k_terminate, sizeof(__pyx_k_terminate), 0, 0, 1, 1}, + {&__pyx_n_s_theta, __pyx_k_theta, sizeof(__pyx_k_theta), 0, 0, 1, 1}, + {&__pyx_n_s_threshold, __pyx_k_threshold, sizeof(__pyx_k_threshold), 0, 0, 1, 1}, + {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1}, + {&__pyx_n_s_time_step, __pyx_k_time_step, sizeof(__pyx_k_time_step), 0, 0, 1, 1}, + {&__pyx_n_s_timestep, __pyx_k_timestep, sizeof(__pyx_k_timestep), 0, 0, 1, 1}, + {&__pyx_n_s_title, __pyx_k_title, sizeof(__pyx_k_title), 0, 0, 1, 1}, + {&__pyx_n_s_toAll, __pyx_k_toAll, sizeof(__pyx_k_toAll), 0, 0, 1, 1}, + {&__pyx_n_s_toDLPack, __pyx_k_toDLPack, sizeof(__pyx_k_toDLPack), 0, 0, 1, 1}, + {&__pyx_n_s_toZero, __pyx_k_toZero, sizeof(__pyx_k_toZero), 0, 0, 1, 1}, + {&__pyx_n_s_toindx, __pyx_k_toindx, sizeof(__pyx_k_toindx), 0, 0, 1, 1}, + {&__pyx_n_s_tol, __pyx_k_tol, sizeof(__pyx_k_tol), 0, 0, 1, 1}, + {&__pyx_n_s_tr_type, __pyx_k_tr_type, sizeof(__pyx_k_tr_type), 0, 0, 1, 1}, + {&__pyx_n_s_traceback, __pyx_k_traceback, sizeof(__pyx_k_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_traceback_2, __pyx_k_traceback_2, sizeof(__pyx_k_traceback_2), 0, 0, 1, 1}, + {&__pyx_n_s_trans, __pyx_k_trans, sizeof(__pyx_k_trans), 0, 0, 1, 1}, + {&__pyx_n_s_transpose, __pyx_k_transpose, sizeof(__pyx_k_transpose), 0, 0, 1, 1}, + {&__pyx_n_s_trimmed, __pyx_k_trimmed, sizeof(__pyx_k_trimmed), 0, 0, 1, 1}, + {&__pyx_n_s_ts_type, __pyx_k_ts_type, sizeof(__pyx_k_ts_type), 0, 0, 1, 1}, + {&__pyx_n_s_tspan, __pyx_k_tspan, sizeof(__pyx_k_tspan), 0, 0, 1, 1}, + {&__pyx_n_s_twist, __pyx_k_twist, sizeof(__pyx_k_twist), 0, 0, 1, 1}, + {&__pyx_n_s_typ, __pyx_k_typ, sizeof(__pyx_k_typ), 0, 0, 1, 1}, + {&__pyx_n_s_type_registry, __pyx_k_type_registry, sizeof(__pyx_k_type_registry), 0, 0, 1, 1}, + {&__pyx_n_s_typestr, __pyx_k_typestr, sizeof(__pyx_k_typestr), 0, 0, 1, 1}, + {&__pyx_n_s_u, __pyx_k_u, sizeof(__pyx_k_u), 0, 0, 1, 1}, + {&__pyx_n_s_ua, __pyx_k_ua, sizeof(__pyx_k_ua), 0, 0, 1, 1}, + {&__pyx_n_s_uaux, __pyx_k_uaux, sizeof(__pyx_k_uaux), 0, 0, 1, 1}, + {&__pyx_n_s_uis, __pyx_k_uis, sizeof(__pyx_k_uis), 0, 0, 1, 1}, + {&__pyx_kp_s_unable_to_allocate_array_data, __pyx_k_unable_to_allocate_array_data, sizeof(__pyx_k_unable_to_allocate_array_data), 0, 0, 1, 0}, + {&__pyx_kp_s_unable_to_allocate_shape_and_str, __pyx_k_unable_to_allocate_shape_and_str, sizeof(__pyx_k_unable_to_allocate_shape_and_str), 0, 0, 1, 0}, + {&__pyx_kp_s_unhandled_PetscDeviceContextJoin, __pyx_k_unhandled_PetscDeviceContextJoin, sizeof(__pyx_k_unhandled_PetscDeviceContextJoin), 0, 0, 1, 0}, + {&__pyx_kp_s_unhandled_PetscDeviceType_d, __pyx_k_unhandled_PetscDeviceType_d, sizeof(__pyx_k_unhandled_PetscDeviceType_d), 0, 0, 1, 0}, + {&__pyx_kp_s_unhandled_PetscStreamType_d, __pyx_k_unhandled_PetscStreamType_d, sizeof(__pyx_k_unhandled_PetscStreamType_d), 0, 0, 1, 0}, + {&__pyx_n_s_uniform, __pyx_k_uniform, sizeof(__pyx_k_uniform), 0, 0, 1, 1}, + {&__pyx_n_s_unit, __pyx_k_unit, sizeof(__pyx_k_unit), 0, 0, 1, 1}, + {&__pyx_kp_s_unknown_boundary_type_s, __pyx_k_unknown_boundary_type_s, sizeof(__pyx_k_unknown_boundary_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_device_type_s, __pyx_k_unknown_device_type_s, sizeof(__pyx_k_unknown_device_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_element_type_s, __pyx_k_unknown_element_type_s, sizeof(__pyx_k_unknown_element_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_error_handler_s, __pyx_k_unknown_error_handler_s, sizeof(__pyx_k_unknown_error_handler_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_interpolation_type_s, __pyx_k_unknown_interpolation_type_s, sizeof(__pyx_k_unknown_interpolation_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_join_mode_s, __pyx_k_unknown_join_mode_s, sizeof(__pyx_k_unknown_join_mode_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_options_s, __pyx_k_unknown_options_s, sizeof(__pyx_k_unknown_options_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_scatter_mode_s, __pyx_k_unknown_scatter_mode_s, sizeof(__pyx_k_unknown_scatter_mode_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_shift_type_s, __pyx_k_unknown_shift_type_s, sizeof(__pyx_k_unknown_shift_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_stencil_location_type_s, __pyx_k_unknown_stencil_location_type_s, sizeof(__pyx_k_unknown_stencil_location_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_stencil_type_s, __pyx_k_unknown_stencil_type_s, sizeof(__pyx_k_unknown_stencil_type_s), 0, 0, 1, 0}, + {&__pyx_kp_s_unknown_stream_type_s, __pyx_k_unknown_stream_type_s, sizeof(__pyx_k_unknown_stream_type_s), 0, 0, 1, 0}, + {&__pyx_n_s_unnamed, __pyx_k_unnamed, sizeof(__pyx_k_unnamed), 0, 0, 1, 1}, + {&__pyx_n_s_unpack, __pyx_k_unpack, sizeof(__pyx_k_unpack), 0, 0, 1, 1}, + {&__pyx_n_s_up, __pyx_k_up, sizeof(__pyx_k_up), 0, 0, 1, 1}, + {&__pyx_n_s_up_left, __pyx_k_up_left, sizeof(__pyx_k_up_left), 0, 0, 1, 1}, + {&__pyx_n_s_up_right, __pyx_k_up_right, sizeof(__pyx_k_up_right), 0, 0, 1, 1}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1}, + {&__pyx_n_s_useAnchors, __pyx_k_useAnchors, sizeof(__pyx_k_useAnchors), 0, 0, 1, 1}, + {&__pyx_n_s_useClosure, __pyx_k_useClosure, sizeof(__pyx_k_useClosure), 0, 0, 1, 1}, + {&__pyx_n_s_useCone, __pyx_k_useCone, sizeof(__pyx_k_useCone), 0, 0, 1, 1}, + {&__pyx_n_s_useInitialGuess, __pyx_k_useInitialGuess, sizeof(__pyx_k_useInitialGuess), 0, 0, 1, 1}, + {&__pyx_n_s_v, __pyx_k_v, sizeof(__pyx_k_v), 0, 0, 1, 1}, + {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1}, + {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, + {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, + {&__pyx_kp_s_values_must_have_two_or_more_dim, __pyx_k_values_must_have_two_or_more_dim, sizeof(__pyx_k_values_must_have_two_or_more_dim), 0, 0, 1, 0}, + {&__pyx_n_s_varbounds, __pyx_k_varbounds, sizeof(__pyx_k_varbounds), 0, 0, 1, 1}, + {&__pyx_n_s_vec, __pyx_k_vec, sizeof(__pyx_k_vec), 0, 0, 1, 1}, + {&__pyx_n_s_vecTo, __pyx_k_vecTo, sizeof(__pyx_k_vecTo), 0, 0, 1, 1}, + {&__pyx_n_s_vec_from, __pyx_k_vec_from, sizeof(__pyx_k_vec_from), 0, 0, 1, 1}, + {&__pyx_n_s_vec_to, __pyx_k_vec_to, sizeof(__pyx_k_vec_to), 0, 0, 1, 1}, + {&__pyx_n_s_vec_type, __pyx_k_vec_type, sizeof(__pyx_k_vec_type), 0, 0, 1, 1}, + {&__pyx_n_s_vecs, __pyx_k_vecs, sizeof(__pyx_k_vecs), 0, 0, 1, 1}, + {&__pyx_n_s_vectors, __pyx_k_vectors, sizeof(__pyx_k_vectors), 0, 0, 1, 1}, + {&__pyx_n_s_verbosity, __pyx_k_verbosity, sizeof(__pyx_k_verbosity), 0, 0, 1, 1}, + {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, + {&__pyx_n_s_vg, __pyx_k_vg, sizeof(__pyx_k_vg), 0, 0, 1, 1}, + {&__pyx_n_s_viennaclvechandle, __pyx_k_viennaclvechandle, sizeof(__pyx_k_viennaclvechandle), 0, 0, 1, 1}, + {&__pyx_n_s_view, __pyx_k_view, sizeof(__pyx_k_view), 0, 0, 1, 1}, + {&__pyx_n_s_viewer, __pyx_k_viewer, sizeof(__pyx_k_viewer), 0, 0, 1, 1}, + {&__pyx_n_s_vl, __pyx_k_vl, sizeof(__pyx_k_vl), 0, 0, 1, 1}, + {&__pyx_n_s_vlg, __pyx_k_vlg, sizeof(__pyx_k_vlg), 0, 0, 1, 1}, + {&__pyx_n_s_vm, __pyx_k_vm, sizeof(__pyx_k_vm), 0, 0, 1, 1}, + {&__pyx_n_s_vn, __pyx_k_vn, sizeof(__pyx_k_vn), 0, 0, 1, 1}, + {&__pyx_n_s_vtol, __pyx_k_vtol, sizeof(__pyx_k_vtol), 0, 0, 1, 1}, + {&__pyx_n_s_vwr_type, __pyx_k_vwr_type, sizeof(__pyx_k_vwr_type), 0, 0, 1, 1}, + {&__pyx_n_s_w, __pyx_k_w, sizeof(__pyx_k_w), 0, 0, 1, 1}, + {&__pyx_kp_s_w_2, __pyx_k_w_2, sizeof(__pyx_k_w_2), 0, 0, 1, 0}, + {&__pyx_n_s_weight, __pyx_k_weight, sizeof(__pyx_k_weight), 0, 0, 1, 1}, + {&__pyx_n_s_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 0, 1, 1}, + {&__pyx_n_s_wrapped_func, __pyx_k_wrapped_func, sizeof(__pyx_k_wrapped_func), 0, 0, 1, 1}, + {&__pyx_n_s_wraps, __pyx_k_wraps, sizeof(__pyx_k_wraps), 0, 0, 1, 1}, + {&__pyx_n_s_write, __pyx_k_write, sizeof(__pyx_k_write), 0, 0, 1, 1}, + {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, + {&__pyx_n_s_xdot, __pyx_k_xdot, sizeof(__pyx_k_xdot), 0, 0, 1, 1}, + {&__pyx_n_s_xdotdot, __pyx_k_xdotdot, sizeof(__pyx_k_xdotdot), 0, 0, 1, 1}, + {&__pyx_n_s_xl, __pyx_k_xl, sizeof(__pyx_k_xl), 0, 0, 1, 1}, + {&__pyx_n_s_xmax, __pyx_k_xmax, sizeof(__pyx_k_xmax), 0, 0, 1, 1}, + {&__pyx_n_s_xmin, __pyx_k_xmin, sizeof(__pyx_k_xmin), 0, 0, 1, 1}, + {&__pyx_n_s_xnorm, __pyx_k_xnorm, sizeof(__pyx_k_xnorm), 0, 0, 1, 1}, + {&__pyx_n_s_xu, __pyx_k_xu, sizeof(__pyx_k_xu), 0, 0, 1, 1}, + {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, + {&__pyx_n_s_ymax, __pyx_k_ymax, sizeof(__pyx_k_ymax), 0, 0, 1, 1}, + {&__pyx_n_s_ymin, __pyx_k_ymin, sizeof(__pyx_k_ymin), 0, 0, 1, 1}, + {&__pyx_n_s_ynorm, __pyx_k_ynorm, sizeof(__pyx_k_ynorm), 0, 0, 1, 1}, + {&__pyx_n_s_zeroEntries, __pyx_k_zeroEntries, sizeof(__pyx_k_zeroEntries), 0, 0, 1, 1}, + {&__pyx_n_s_zeroRowsColumns, __pyx_k_zeroRowsColumns, sizeof(__pyx_k_zeroRowsColumns), 0, 0, 1, 1}, + {&__pyx_n_s_zeropivot, __pyx_k_zeropivot, sizeof(__pyx_k_zeropivot), 0, 0, 1, 1}, + {&__pyx_n_s_zmax, __pyx_k_zmax, sizeof(__pyx_k_zmax), 0, 0, 1, 1}, + {&__pyx_n_s_zmin, __pyx_k_zmin, sizeof(__pyx_k_zmin), 0, 0, 1, 1}, + {&__pyx_n_s_zoz, __pyx_k_zoz, sizeof(__pyx_k_zoz), 0, 0, 1, 1}, + {&__pyx_n_s_zzo, __pyx_k_zzo, sizeof(__pyx_k_zzo), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} +}; +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 15, __pyx_L1_error) + __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 3, __pyx_L1_error) + __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(2, 3, __pyx_L1_error) + __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s_staticmethod); if (!__pyx_builtin_staticmethod) __PYX_ERR(2, 101, __pyx_L1_error) + __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(3, 58, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(4, 46, __pyx_L1_error) + __pyx_builtin_KeyError = __Pyx_GetBuiltinName(__pyx_n_s_KeyError); if (!__pyx_builtin_KeyError) __PYX_ERR(4, 68, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(5, 71, __pyx_L1_error) + __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s_NotImplementedError); if (!__pyx_builtin_NotImplementedError) __PYX_ERR(5, 79, __pyx_L1_error) + __pyx_builtin_SystemError = __Pyx_GetBuiltinName(__pyx_n_s_SystemError); if (!__pyx_builtin_SystemError) __PYX_ERR(6, 202, __pyx_L1_error) + __pyx_builtin_Ellipsis = __Pyx_GetBuiltinName(__pyx_n_s_Ellipsis); if (!__pyx_builtin_Ellipsis) __PYX_ERR(7, 430, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(8, 485, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(9, 293, __pyx_L1_error) + __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s_NotImplemented); if (!__pyx_builtin_NotImplemented) __PYX_ERR(10, 23, __pyx_L1_error) + __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(11, 161, __pyx_L1_error) + __pyx_builtin_compile = __Pyx_GetBuiltinName(__pyx_n_s_compile); if (!__pyx_builtin_compile) __PYX_ERR(11, 162, __pyx_L1_error) + __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s_MemoryError); if (!__pyx_builtin_MemoryError) __PYX_ERR(12, 357, __pyx_L1_error) + __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s_id); if (!__pyx_builtin_id) __PYX_ERR(66, 615, __pyx_L1_error) + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(66, 834, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "petsc4py/PETSc/petscopt.pxi":46 + * prefix = prefix.getOptionsPrefix() + * elif not isinstance(prefix, str): + * raise TypeError('option prefix must be string') # <<<<<<<<<<<<<< + * if not prefix: + * return None + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_option_prefix_must_be_string); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(4, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "petsc4py/PETSc/petscopt.pxi":50 + * return None + * if prefix.count(' '): + * raise ValueError('option prefix should not have spaces') # <<<<<<<<<<<<<< + * if prefix.startswith('-'): + * raise ValueError('option prefix should not start with a hyphen') + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_option_prefix_should_not_have_sp); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(4, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "petsc4py/PETSc/petscopt.pxi":52 + * raise ValueError('option prefix should not have spaces') + * if prefix.startswith('-'): + * raise ValueError('option prefix should not start with a hyphen') # <<<<<<<<<<<<<< + * return prefix + * + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_option_prefix_should_not_start_w); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(4, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "petsc4py/PETSc/petscopt.pxi":175 + * if not iskey(key): + * return None + * key = key[1:] # <<<<<<<<<<<<<< + * if key[0] == '-': + * key = key[1:] + */ + __pyx_slice__6 = PySlice_New(__pyx_int_1, Py_None, Py_None); if (unlikely(!__pyx_slice__6)) __PYX_ERR(4, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__6); + __Pyx_GIVEREF(__pyx_slice__6); + + /* "petsc4py/PETSc/petscmpi.pxi":113 + * + * cdef inline int comm_size(MPI_Comm comm) except ? -1: + * if comm == MPI_COMM_NULL: raise ValueError("null communicator") # <<<<<<<<<<<<<< + * cdef int size = 0 + * CHKERR( MPI_Comm_size(comm, &size) ) + */ + __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_null_communicator); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(15, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); + + /* "petsc4py/PETSc/petscsys.pxi":79 + * if (bs < 1): raise ValueError( + * "block size %d must be positive" % toInt(bs)) + * if n==PETSC_DECIDE and N==PETSC_DECIDE: raise ValueError( # <<<<<<<<<<<<<< + * "local and global sizes cannot be both 'DECIDE'") + * if (n > 0) and (n % bs): raise ValueError( + */ + __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_local_and_global_sizes_cannot_be); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(16, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__9); + __Pyx_GIVEREF(__pyx_tuple__9); + + /* "petsc4py/PETSc/petscis.pxi":202 + * + * def __getreadbuffer__(self, Py_ssize_t idx, void **p): + * if idx != 0: raise SystemError( # <<<<<<<<<<<<<< + * "accessing non-existent buffer segment") + * return self.getbuffer(p) + */ + __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_accessing_non_existent_buffer_se); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(6, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__10); + __Pyx_GIVEREF(__pyx_tuple__10); + + /* "petsc4py/PETSc/petscvec.pxi":588 + * if idx != 0: raise SystemError( + * "accessing non-existent buffer segment") + * if self.readonly: raise TypeError( # <<<<<<<<<<<<<< + * "Object is not writable.") + * return self.getbuffer(p) + */ + __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Object_is_not_writable); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(7, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__11); + __Pyx_GIVEREF(__pyx_tuple__11); + + /* "petsc4py/PETSc/petscmat.pxi":918 + * ("row indices must have two dimensions: " + * "rows.ndim=%d") % (PyArray_NDIM(ai)) ) + * elif not PyArray_ISCONTIGUOUS(ai): raise ValueError( # <<<<<<<<<<<<<< + * "expecting a C-contiguous array") + * if PyArray_NDIM(aj) != 2: raise ValueError( + */ + __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_expecting_a_C_contiguous_array); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(20, 918, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__12); + __Pyx_GIVEREF(__pyx_tuple__12); + + /* "petsc4py/PETSc/Sys.pyx":19 + * vstr = bytes2str(cversion) + * if release != 0: + * date = vstr.split(",", 1)[-1].strip() # <<<<<<<<<<<<<< + * else: + * date = vstr.split("GIT Date:")[-1].strip() + */ + __pyx_tuple__15 = PyTuple_Pack(2, __pyx_kp_s__14, __pyx_int_1); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(32, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + + /* "petsc4py/PETSc/Sys.pyx":31 + * @classmethod + * def getVersionInfo(cls): + * version, dev, date, author = cls.getVersion(True, True, True) # <<<<<<<<<<<<<< + * return dict(major = version[0], + * minor = version[1], + */ + __pyx_tuple__16 = PyTuple_Pack(3, Py_True, Py_True, Py_True); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(32, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__16); + __Pyx_GIVEREF(__pyx_tuple__16); + + /* "petsc4py/PETSc/Sys.pyx":74 + * cdef object end = kargs.get('end', '\n') + * if comm_rank(ccomm) == 0: + * if not args: args = ('',) # <<<<<<<<<<<<<< + * format = ['%s', sep] * len(args) + * format[-1] = end + */ + __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s__7); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(32, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__17); + __Pyx_GIVEREF(__pyx_tuple__17); + + /* "petsc4py/PETSc/Sys.pyx":173 + * @classmethod + * def registerCitation(cls, citation): + * if not citation: raise ValueError("empty citation") # <<<<<<<<<<<<<< + * cdef const char *cit = NULL + * citation = str2bytes(citation, &cit) + */ + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_empty_citation); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(32, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + + /* "petsc4py/PETSc/Log.pyx":9 + * @classmethod + * def Stage(cls, name): + * if not name: raise ValueError("empty name") # <<<<<<<<<<<<<< + * cdef const char *cname = NULL + * name = str2bytes(name, &cname) + */ + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_empty_name); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(33, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + + /* "petsc4py/PETSc/Log.pyx":115 + * else: + * name_ = ".".join([func.__module__, getattr(func, "__qualname__", func.__name__)]) + * with cls.Event(name_, klass): # <<<<<<<<<<<<<< + * return func(*args, **kwargs) + * return wrapped_func + */ + __pyx_tuple__21 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(33, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + + /* "petsc4py/PETSc/Log.pyx":110 + * def decorator(func): + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): # <<<<<<<<<<<<<< + * if name: + * name_ = name + */ + __pyx_tuple__22 = PyTuple_Pack(3, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_name_3); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(33, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__22); + __Pyx_GIVEREF(__pyx_tuple__22); + __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__22, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Log_pyx, __pyx_n_s_wrapped_func, 110, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(33, 110, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":108 + * ... + * """ + * def decorator(func): # <<<<<<<<<<<<<< + * @functools.wraps(func) + * def wrapped_func(*args, **kwargs): + */ + __pyx_tuple__24 = PyTuple_Pack(3, __pyx_n_s_func, __pyx_n_s_wrapped_func, __pyx_n_s_wrapped_func); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(33, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__24); + __Pyx_GIVEREF(__pyx_tuple__24); + __pyx_codeobj__25 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__24, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Log_pyx, __pyx_n_s_decorator, 108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__25)) __PYX_ERR(33, 108, __pyx_L1_error) + + /* "petsc4py/PETSc/Log.pyx":167 + * def __set__(self, value): + * self; value; # unused + * raise TypeError("readonly attribute") # <<<<<<<<<<<<<< + * + * # + */ + __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_readonly_attribute); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(33, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__26); + __Pyx_GIVEREF(__pyx_tuple__26); + + /* "petsc4py/PETSc/Comm.pyx":25 + * if not isinstance(self, Comm): return NotImplemented + * if not isinstance(other, Comm): return NotImplemented + * if op!=2 and op!=3: raise TypeError("only '==' and '!='") # <<<<<<<<<<<<<< + * cdef Comm s = self + * cdef Comm o = other + */ + __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_only_and); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(10, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + + /* "petsc4py/PETSc/Comm.pyx":48 + * if self.comm == MPI_COMM_NULL: return + * if not self.isdup: + * raise ValueError("communicator not owned") # <<<<<<<<<<<<<< + * CHKERR( PetscCommDestroy(&self.comm) ) + * self.comm = MPI_COMM_NULL + */ + __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_communicator_not_owned); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(10, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__28); + __Pyx_GIVEREF(__pyx_tuple__28); + + /* "petsc4py/PETSc/Device.pyx":16 + * + * attrs['__enum2str'] = enum2str + * return type(class_name, (object, ), attrs) # <<<<<<<<<<<<<< + * + * DeviceType = make_enum_class( + */ + __pyx_tuple__29 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + + /* "petsc4py/PETSc/Vec.pyx":373 + * PyCapsule_SetName(dltensor, 'used_dltensor') + * else: + * raise ValueError("Expect a dltensor field, pycapsule.PyCapsule can only be consumed once") # <<<<<<<<<<<<<< + * if size is None: size = (toInt(nz), toInt(PETSC_DECIDE)) + * Vec_Sizes(size, bsize, &bs, &n, &N) + */ + __pyx_tuple__31 = PyTuple_Pack(1, __pyx_kp_s_Expect_a_dltensor_field_pycapsul); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(40, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + + /* "petsc4py/PETSc/Vec.pyx":438 + * + * if vec is None and dltensor is None: + * raise ValueError('Missing input parameters') # <<<<<<<<<<<<<< + * if vec is not None: + * ctx = (vec).get_attr('__dltensor_ctx__') + */ + __pyx_tuple__32 = PyTuple_Pack(1, __pyx_kp_s_Missing_input_parameters); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(40, 438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__32); + __Pyx_GIVEREF(__pyx_tuple__32); + + /* "petsc4py/PETSc/Vec.pyx":442 + * ctx = (vec).get_attr('__dltensor_ctx__') + * if ctx is None: + * raise ValueError('Input vector has no tensor information') # <<<<<<<<<<<<<< + * self.set_attr('__dltensor_ctx__', ctx) + * else: + */ + __pyx_tuple__33 = PyTuple_Pack(1, __pyx_kp_s_Input_vector_has_no_tensor_infor); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(40, 442, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + + /* "petsc4py/PETSc/Vec.pyx":450 + * ptr = PyCapsule_GetPointer(dltensor, 'used_dltensor') + * else: + * raise ValueError("Expect a dltensor or used_dltensor field") # <<<<<<<<<<<<<< + * bits = ptr.dl_tensor.dtype.bits + * if bits != 8*sizeof(PetscScalar): + */ + __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_Expect_a_dltensor_or_used_dltens); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(40, 450, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); + + /* "petsc4py/PETSc/Vec.pyx":487 + * if mode is None: mode = 'rw' + * if mode not in ['rw', 'r', 'w']: + * raise ValueError("Invalid mode: expected 'rw', 'r', or 'w'") # <<<<<<<<<<<<<< + * + * cdef int64_t ndim = 0 + */ + __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_Invalid_mode_expected_rw_r_or_w); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(40, 487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + + /* "petsc4py/PETSc/Vec.pyx":545 + * dtype.bits = 32 + * else: + * raise ValueError('Unsupported PetscScalar type') # <<<<<<<<<<<<<< + * dtype.lanes = 1 + * dlm_tensor.manager_ctx = self.vec + */ + __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_Unsupported_PetscScalar_type); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(40, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + + /* "petsc4py/PETSc/Vec.pyx":879 + * CHKERR( VecViennaCLGetCLMemWrite(self.vec, &memhdl) ) + * else: + * raise ValueError("Invalid mode: expected 'r', 'w' or 'rw'") # <<<<<<<<<<<<<< + * return memhdl + * + */ + __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_s_Invalid_mode_expected_r_w_or_rw); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(40, 879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); + + /* "petsc4py/PETSc/Vec.pyx":1141 + * + * def getValuesStagStencil(self, indices, values=None): + * raise NotImplementedError('getValuesStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setValue(self, index, value, addv=None): + */ + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_kp_s_getValuesStagStencil_not_yet_imp); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(40, 1141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); + + /* "petsc4py/PETSc/Vec.pyx":1156 + * + * def setValuesStagStencil(self, indices, values, addv=None): + * raise NotImplementedError('setValuesStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setLGMap(self, LGMap lgmap): + */ + __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_s_setValuesStagStencil_not_yet_imp); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(40, 1156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + + /* "petsc4py/PETSc/Vec.pyx":1361 + * def __set__(self, value): + * cdef buf = self.getBuffer() + * with buf as array: array[:] = value # <<<<<<<<<<<<<< + * + * property array_r: + */ + __pyx_slice__40 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_slice__40)) __PYX_ERR(40, 1361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__40); + __Pyx_GIVEREF(__pyx_slice__40); + + /* "petsc4py/PETSc/Mat.pyx":635 + * nvtx = PyArray_DIM(xyz, 0) + * CHKERR( MatGetLocalSize(A.mat, &rl, &cl) ) + * if cl != rl: raise ValueError("Not for rectangular matrices") # <<<<<<<<<<<<<< + * if nvtx < rl: raise ValueError( + * ("coordinates size must be at least %d" % rl )) + */ + __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_Not_for_rectangular_matrices); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(45, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__41); + __Pyx_GIVEREF(__pyx_tuple__41); + + /* "petsc4py/PETSc/Mat.pyx":1127 + * + * def setValueStagStencil(self, row, col, value, addv=None): + * raise NotImplementedError('setValueStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def setValueBlockedStencil(self, row, col, value, addv=None): + */ + __pyx_tuple__42 = PyTuple_Pack(1, __pyx_kp_s_setValueStagStencil_not_yet_impl); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(45, 1127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__42); + __Pyx_GIVEREF(__pyx_tuple__42); + + /* "petsc4py/PETSc/Mat.pyx":1135 + * + * def setValueBlockedStagStencil(self, row, col, value, addv=None): + * raise NotImplementedError('setValueBlockedStagStencil not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def zeroRows(self, rows, diag=1, Vec x=None, Vec b=None): + */ + __pyx_tuple__43 = PyTuple_Pack(1, __pyx_kp_s_setValueBlockedStagStencil_not_y); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(45, 1135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__43); + __Pyx_GIVEREF(__pyx_tuple__43); + + /* "petsc4py/PETSc/Mat.pyx":1316 + * cdef ndarray ibdiag = array_s(m*bs, cibdiag) + * ibdiag.shape = (toInt(m//bs), toInt(bs), toInt(bs)) + * return ibdiag.transpose(0, 2, 1) # <<<<<<<<<<<<<< + * + * # null space + */ + __pyx_tuple__44 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_2, __pyx_int_1); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(45, 1316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__44); + __Pyx_GIVEREF(__pyx_tuple__44); + + /* "petsc4py/PETSc/PC.pyx":876 + * + * if typ in {PC.PatchConstructType.PYTHON, PC.PatchConstructType.USER} and operator is None: + * raise ValueError("Must provide operator for USER or PYTHON type") # <<<<<<<<<<<<<< + * if operator is not None: + * context = (operator, args, kargs) + */ + __pyx_tuple__45 = PyTuple_Pack(1, __pyx_kp_s_Must_provide_operator_for_USER_o); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(47, 876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__45); + __Pyx_GIVEREF(__pyx_tuple__45); + + /* "petsc4py/PETSc/SNES.pyx":203 + * if comms is not None: + * if clevels != len(comms): + * raise ValueError("Must provide as many communicators as levels") # <<<<<<<<<<<<<< + * CHKERR( PetscMalloc(sizeof(MPI_Comm)*clevels, &ccomms) ) + * try: + */ + __pyx_tuple__46 = PyTuple_Pack(1, __pyx_kp_s_Must_provide_as_many_communicato); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(49, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__46); + __Pyx_GIVEREF(__pyx_tuple__46); + + /* "petsc4py/PETSc/TAO.pyx":818 + * self.setFunctionTolerances(**value) + * else: + * raise TypeError("expecting tuple/list or dict") # <<<<<<<<<<<<<< + * + * property gtol: + */ + __pyx_tuple__47 = PyTuple_Pack(1, __pyx_kp_s_expecting_tuple_list_or_dict); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(51, 818, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__47); + __Pyx_GIVEREF(__pyx_tuple__47); + + /* "petsc4py/PETSc/DMPlex.pyx":55 + * return self + * + * def createBoxMesh(self, faces, lower=(0,0,0), upper=(1,1,1), # <<<<<<<<<<<<<< + * simplex=True, periodic=False, interpolate=True, comm=None): + * cdef Py_ssize_t i = 0 + */ + __pyx_tuple__48 = PyTuple_Pack(3, __pyx_int_0, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(56, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__48); + __Pyx_GIVEREF(__pyx_tuple__48); + __pyx_tuple__49 = PyTuple_Pack(3, __pyx_int_1, __pyx_int_1, __pyx_int_1); if (unlikely(!__pyx_tuple__49)) __PYX_ERR(56, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__49); + __Pyx_GIVEREF(__pyx_tuple__49); + + /* "petsc4py/PETSc/DMPlex.pyx":416 + * finally: + * CHKERR( DMPlexRestoreTransitiveClosure(self.dm, cp, cuseCone, &numPoints, &points) ) + * return out[::2],out[1::2] # <<<<<<<<<<<<<< + * + * def vecGetClosure(self, Section sec, Vec vec, p): + */ + __pyx_slice__50 = PySlice_New(Py_None, Py_None, __pyx_int_2); if (unlikely(!__pyx_slice__50)) __PYX_ERR(56, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__50); + __Pyx_GIVEREF(__pyx_slice__50); + __pyx_slice__51 = PySlice_New(__pyx_int_1, Py_None, __pyx_int_2); if (unlikely(!__pyx_slice__51)) __PYX_ERR(56, 416, __pyx_L1_error) + __Pyx_GOTREF(__pyx_slice__51); + __Pyx_GIVEREF(__pyx_slice__51); + + /* "petsc4py/PETSc/DMPlex.pyx":656 + * bcpoints[i] = (bcPoints[i]).iset + * else: + * raise ValueError("bcPoints is a required argument") # <<<<<<<<<<<<<< + * else: + * assert bcComps is None + */ + __pyx_tuple__52 = PyTuple_Pack(1, __pyx_kp_s_bcPoints_is_a_required_argument); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(56, 656, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__52); + __Pyx_GIVEREF(__pyx_tuple__52); + + /* "petsc4py/PETSc/DMStag.pyx":311 + * + * def getVecArray(self, Vec vec): + * raise NotImplementedError('getVecArray for DMStag not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * def get1dCoordinatecArrays(self): + */ + __pyx_tuple__53 = PyTuple_Pack(1, __pyx_kp_s_getVecArray_for_DMStag_not_yet_i); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(57, 311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__53); + __Pyx_GIVEREF(__pyx_tuple__53); + + /* "petsc4py/PETSc/DMStag.pyx":314 + * + * def get1dCoordinatecArrays(self): + * raise NotImplementedError('get1dCoordinatecArrays for DMStag not yet implemented in petsc4py') # <<<<<<<<<<<<<< + * + * property dim: + */ + __pyx_tuple__54 = PyTuple_Pack(1, __pyx_kp_s_get1dCoordinatecArrays_for_DMSta); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(57, 314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__54); + __Pyx_GIVEREF(__pyx_tuple__54); + + /* "petsc4py/PETSc/Partitioner.pyx":68 + * numProcs, toInt(nsize)) + * if points is None: + * raise ValueError("Must provide both sizes and points arrays") # <<<<<<<<<<<<<< + * if points is not None: + * points = iarray_i(points, NULL, &cpoints) + */ + __pyx_tuple__56 = PyTuple_Pack(1, __pyx_kp_s_Must_provide_both_sizes_and_poin); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(62, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__56); + __Pyx_GIVEREF(__pyx_tuple__56); + + /* "petsc4py/PETSc/libpetsc4py.pyx":148 + * + * cdef object parse_url(object url): + * path, name = url.rsplit(":", 1) # <<<<<<<<<<<<<< + * return (path, name) + * + */ + __pyx_tuple__58 = PyTuple_Pack(2, __pyx_kp_s__57, __pyx_int_1); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(11, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__58); + __Pyx_GIVEREF(__pyx_tuple__58); + + /* "petsc4py/PETSc/libpetsc4py.pyx":263 + * # package.module[.{function|class}] + * if '.' in name: + * modname, clsname = name.rsplit('.', 1) # <<<<<<<<<<<<<< + * mod = PyImport_Import(modname) + * if hasattr(mod, clsname): + */ + __pyx_tuple__59 = PyTuple_Pack(2, __pyx_kp_s__20, __pyx_int_1); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(11, 263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__59); + __Pyx_GIVEREF(__pyx_tuple__59); + + /* "View.MemoryView":134 + * + * if not self.ndim: + * raise ValueError("Empty shape tuple for cython.array") # <<<<<<<<<<<<<< + * + * if itemsize <= 0: + */ + __pyx_tuple__60 = PyTuple_Pack(1, __pyx_kp_s_Empty_shape_tuple_for_cython_arr); if (unlikely(!__pyx_tuple__60)) __PYX_ERR(66, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__60); + __Pyx_GIVEREF(__pyx_tuple__60); + + /* "View.MemoryView":137 + * + * if itemsize <= 0: + * raise ValueError("itemsize <= 0 for cython.array") # <<<<<<<<<<<<<< + * + * if not isinstance(format, bytes): + */ + __pyx_tuple__61 = PyTuple_Pack(1, __pyx_kp_s_itemsize_0_for_cython_array); if (unlikely(!__pyx_tuple__61)) __PYX_ERR(66, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__61); + __Pyx_GIVEREF(__pyx_tuple__61); + + /* "View.MemoryView":149 + * + * if not self._shape: + * raise MemoryError("unable to allocate shape and strides.") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__62 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_shape_and_str); if (unlikely(!__pyx_tuple__62)) __PYX_ERR(66, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__62); + __Pyx_GIVEREF(__pyx_tuple__62); + + /* "View.MemoryView":177 + * self.data = malloc(self.len) + * if not self.data: + * raise MemoryError("unable to allocate array data.") # <<<<<<<<<<<<<< + * + * if self.dtype_is_object: + */ + __pyx_tuple__63 = PyTuple_Pack(1, __pyx_kp_s_unable_to_allocate_array_data); if (unlikely(!__pyx_tuple__63)) __PYX_ERR(66, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__63); + __Pyx_GIVEREF(__pyx_tuple__63); + + /* "View.MemoryView":193 + * bufmode = PyBUF_F_CONTIGUOUS | PyBUF_ANY_CONTIGUOUS + * if not (flags & bufmode): + * raise ValueError("Can only create a buffer that is contiguous in memory.") # <<<<<<<<<<<<<< + * info.buf = self.data + * info.len = self.len + */ + __pyx_tuple__64 = PyTuple_Pack(1, __pyx_kp_s_Can_only_create_a_buffer_that_is); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(66, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__64); + __Pyx_GIVEREF(__pyx_tuple__64); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__65 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__65); + __Pyx_GIVEREF(__pyx_tuple__65); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__66 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__66); + __Pyx_GIVEREF(__pyx_tuple__66); + + /* "View.MemoryView":420 + * def __setitem__(memoryview self, object index, object value): + * if self.view.readonly: + * raise TypeError("Cannot assign to read-only memoryview") # <<<<<<<<<<<<<< + * + * have_slices, index = _unellipsify(index, self.view.ndim) + */ + __pyx_tuple__67 = PyTuple_Pack(1, __pyx_kp_s_Cannot_assign_to_read_only_memor); if (unlikely(!__pyx_tuple__67)) __PYX_ERR(66, 420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__67); + __Pyx_GIVEREF(__pyx_tuple__67); + + /* "View.MemoryView":497 + * result = struct.unpack(self.view.format, bytesitem) + * except struct.error: + * raise ValueError("Unable to convert item to object") # <<<<<<<<<<<<<< + * else: + * if len(self.view.format) == 1: + */ + __pyx_tuple__68 = PyTuple_Pack(1, __pyx_kp_s_Unable_to_convert_item_to_object); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(66, 497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__68); + __Pyx_GIVEREF(__pyx_tuple__68); + + /* "View.MemoryView":522 + * def __getbuffer__(self, Py_buffer *info, int flags): + * if flags & PyBUF_WRITABLE and self.view.readonly: + * raise ValueError("Cannot create writable memory view from read-only memoryview") # <<<<<<<<<<<<<< + * + * if flags & PyBUF_ND: + */ + __pyx_tuple__69 = PyTuple_Pack(1, __pyx_kp_s_Cannot_create_writable_memory_vi); if (unlikely(!__pyx_tuple__69)) __PYX_ERR(66, 522, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__69); + __Pyx_GIVEREF(__pyx_tuple__69); + + /* "View.MemoryView":572 + * if self.view.strides == NULL: + * + * raise ValueError("Buffer view does not expose strides") # <<<<<<<<<<<<<< + * + * return tuple([stride for stride in self.view.strides[:self.view.ndim]]) + */ + __pyx_tuple__70 = PyTuple_Pack(1, __pyx_kp_s_Buffer_view_does_not_expose_stri); if (unlikely(!__pyx_tuple__70)) __PYX_ERR(66, 572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__70); + __Pyx_GIVEREF(__pyx_tuple__70); + + /* "View.MemoryView":579 + * def suboffsets(self): + * if self.view.suboffsets == NULL: + * return (-1,) * self.view.ndim # <<<<<<<<<<<<<< + * + * return tuple([suboffset for suboffset in self.view.suboffsets[:self.view.ndim]]) + */ + __pyx_tuple__71 = PyTuple_New(1); if (unlikely(!__pyx_tuple__71)) __PYX_ERR(66, 579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__71); + __Pyx_INCREF(__pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_int_neg_1); + PyTuple_SET_ITEM(__pyx_tuple__71, 0, __pyx_int_neg_1); + __Pyx_GIVEREF(__pyx_tuple__71); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__72 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__72); + __Pyx_GIVEREF(__pyx_tuple__72); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__73 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__73)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__73); + __Pyx_GIVEREF(__pyx_tuple__73); + + /* "View.MemoryView":705 + * for suboffset in suboffsets[:ndim]: + * if suboffset >= 0: + * raise ValueError("Indirect dimensions not supported") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__74 = PyTuple_Pack(1, __pyx_kp_s_Indirect_dimensions_not_supporte); if (unlikely(!__pyx_tuple__74)) __PYX_ERR(66, 705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__74); + __Pyx_GIVEREF(__pyx_tuple__74); + + /* "(tree fragment)":2 + * def __reduce_cython__(self): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + */ + __pyx_tuple__75 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__75)) __PYX_ERR(66, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__75); + __Pyx_GIVEREF(__pyx_tuple__75); + + /* "(tree fragment)":4 + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") + * def __setstate_cython__(self, __pyx_state): + * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< + */ + __pyx_tuple__76 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__76)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__76); + __Pyx_GIVEREF(__pyx_tuple__76); + __pyx_tuple__77 = PyTuple_Pack(3, __pyx_int_184977713, __pyx_int_136983863, __pyx_int_112105877); if (unlikely(!__pyx_tuple__77)) __PYX_ERR(66, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__77); + __Pyx_GIVEREF(__pyx_tuple__77); + + /* "petsc4py/PETSc/Const.pyx":15 + * # -------------------------------------------------------------------- + * + * class InsertMode(object): # <<<<<<<<<<<<<< + * # native + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES + */ + __pyx_tuple__80 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__80); + __Pyx_GIVEREF(__pyx_tuple__80); + + /* "petsc4py/PETSc/Const.pyx":36 + * # -------------------------------------------------------------------- + * + * class ScatterMode(object): # <<<<<<<<<<<<<< + * # native + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD + */ + __pyx_tuple__81 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__81)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__81); + __Pyx_GIVEREF(__pyx_tuple__81); + + /* "petsc4py/PETSc/Const.pyx":50 + * # -------------------------------------------------------------------- + * + * class NormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_1 = PETSC_NORM_1 + */ + __pyx_tuple__82 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__82)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__82); + __Pyx_GIVEREF(__pyx_tuple__82); + + /* "petsc4py/PETSc/Error.pyx":3 + * # -------------------------------------------------------------------- + * + * class Error(RuntimeError): # <<<<<<<<<<<<<< + * + * _traceback_ = [] + */ + __pyx_tuple__83 = PyTuple_Pack(1, __pyx_builtin_RuntimeError); if (unlikely(!__pyx_tuple__83)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__83); + __Pyx_GIVEREF(__pyx_tuple__83); + + /* "petsc4py/PETSc/Error.pyx":7 + * _traceback_ = [] + * + * def __init__(self, int ierr=0): # <<<<<<<<<<<<<< + * self.ierr = ierr + * RuntimeError.__init__(self, self.ierr) + */ + __pyx_tuple__84 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ierr); if (unlikely(!__pyx_tuple__84)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__84); + __Pyx_GIVEREF(__pyx_tuple__84); + __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Error_pyx, __pyx_n_s_init, 7, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(1, 7, __pyx_L1_error) + + /* "petsc4py/PETSc/Error.pyx":11 + * RuntimeError.__init__(self, self.ierr) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * cdef int ierr = self.ierr + * return ierr != 0 + */ + __pyx_tuple__86 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ierr); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__86); + __Pyx_GIVEREF(__pyx_tuple__86); + __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__86, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Error_pyx, __pyx_n_s_nonzero_2, 11, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(1, 11, __pyx_L1_error) + + /* "petsc4py/PETSc/Error.pyx":15 + * return ierr != 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return 'PETSc.Error(%d)' % self.ierr + * + */ + __pyx_tuple__88 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__88); + __Pyx_GIVEREF(__pyx_tuple__88); + __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Error_pyx, __pyx_n_s_repr, 15, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(1, 15, __pyx_L1_error) + + /* "petsc4py/PETSc/Error.pyx":18 + * return 'PETSc.Error(%d)' % self.ierr + * + * def __str__(self): # <<<<<<<<<<<<<< + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): + */ + __pyx_tuple__90 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_csize, __pyx_n_s_crank, __pyx_n_s_width, __pyx_n_s_rank, __pyx_n_s_tblist, __pyx_n_s_entry, __pyx_n_s_tbline); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(1, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__90); + __Pyx_GIVEREF(__pyx_tuple__90); + __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Error_pyx, __pyx_n_s_str, 18, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(1, 18, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":41 + * t.tp_clear = tp_clear + * + * def garbage_cleanup(comm=None): # <<<<<<<<<<<<<< + * """Cleans up unused PETSc objects on the communicator `comm`. If no + * communicator is provided first clean up on PETSC_COMM_WORLD, then + */ + __pyx_tuple__92 = PyTuple_Pack(2, __pyx_n_s_comm, __pyx_n_s_ccomm); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(35, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__92); + __Pyx_GIVEREF(__pyx_tuple__92); + __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_cyclicgc_pxi, __pyx_n_s_garbage_cleanup, 41, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(35, 41, __pyx_L1_error) + + /* "petsc4py/PETSc/cyclicgc.pxi":64 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * + * def garbage_view(comm=None): # <<<<<<<<<<<<<< + * """Prints out summary of the unused PETSc objects on each rank of + * the communicator `comm`. If no communicator is provided then + */ + __pyx_tuple__94 = PyTuple_Pack(2, __pyx_n_s_comm, __pyx_n_s_ccomm); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(35, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__94); + __Pyx_GIVEREF(__pyx_tuple__94); + __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_cyclicgc_pxi, __pyx_n_s_garbage_view, 64, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(35, 64, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":3 + * # -------------------------------------------------------------------- + * + * class ViewerType(object): # <<<<<<<<<<<<<< + * SOCKET = S_(PETSCVIEWERSOCKET) + * ASCII = S_(PETSCVIEWERASCII) + */ + __pyx_tuple__96 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(36, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__96); + __Pyx_GIVEREF(__pyx_tuple__96); + + /* "petsc4py/PETSc/Viewer.pyx":19 + * EXODUSII = S_(PETSCVIEWEREXODUSII) + * + * class ViewerFormat(object): # <<<<<<<<<<<<<< + * DEFAULT = PETSC_VIEWER_DEFAULT + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + */ + __pyx_tuple__97 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(36, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__97); + __Pyx_GIVEREF(__pyx_tuple__97); + + /* "petsc4py/PETSc/Viewer.pyx":59 + * FAILED = PETSC_VIEWER_FAILED + * + * class FileMode(object): # <<<<<<<<<<<<<< + * # native + * READ = PETSC_FILE_MODE_READ + */ + __pyx_tuple__98 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(36, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__98); + __Pyx_GIVEREF(__pyx_tuple__98); + + /* "petsc4py/PETSc/Viewer.pyx":70 + * AU = UA = APPEND_UPDATE + * + * class DrawSize(object): # <<<<<<<<<<<<<< + * # native + * FULL_SIZE = PETSC_DRAW_FULL_SIZE + */ + __pyx_tuple__99 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(36, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__99); + __Pyx_GIVEREF(__pyx_tuple__99); + + /* "petsc4py/PETSc/Random.pyx":3 + * # -------------------------------------------------------------------- + * + * class RandomType(object): # <<<<<<<<<<<<<< + * RAND = S_(PETSCRAND) + * RAND48 = S_(PETSCRAND48) + */ + __pyx_tuple__100 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(37, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__100); + __Pyx_GIVEREF(__pyx_tuple__100); + + /* "petsc4py/PETSc/Device.pyx":3 + * # -------------------------------------------------------------------- + * + * class staticproperty(property): # <<<<<<<<<<<<<< + * def __get__(self, *args, **kwargs): + * return self.fget.__get__(*args, **kwargs)() + */ + __pyx_tuple__101 = PyTuple_Pack(1, __pyx_builtin_property); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(2, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__101); + __Pyx_GIVEREF(__pyx_tuple__101); + + /* "petsc4py/PETSc/Device.pyx":4 + * + * class staticproperty(property): + * def __get__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * return self.fget.__get__(*args, **kwargs)() + * + */ + __pyx_tuple__102 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__102); + __Pyx_GIVEREF(__pyx_tuple__102); + __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Device_pyx, __pyx_n_s_get, 4, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(2, 4, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":102 + * + * @staticmethod + * def setDefaultType(device_type): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + * + */ + __pyx_tuple__104 = PyTuple_Pack(2, __pyx_n_s_device_type, __pyx_n_s_cdevice_type); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(2, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__104); + __Pyx_GIVEREF(__pyx_tuple__104); + __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Device_pyx, __pyx_n_s_setDefaultType, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(2, 102, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":238 + * + * @staticmethod + * def getCurrent(): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext dctx = NULL + * + */ + __pyx_tuple__106 = PyTuple_Pack(1, __pyx_n_s_dctx); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(2, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__106); + __Pyx_GIVEREF(__pyx_tuple__106); + __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Device_pyx, __pyx_n_s_getCurrent, 238, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(2, 238, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":245 + * + * @staticmethod + * def setCurrent(dctx): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cdctx = NULL + * + */ + __pyx_tuple__108 = PyTuple_Pack(2, __pyx_n_s_dctx, __pyx_n_s_cdctx); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(2, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__108); + __Pyx_GIVEREF(__pyx_tuple__108); + __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_Device_pyx, __pyx_n_s_setCurrent, 245, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(2, 245, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":3 + * # -------------------------------------------------------------------- + * + * class ISType(object): # <<<<<<<<<<<<<< + * GENERAL = S_(ISGENERAL) + * BLOCK = S_(ISBLOCK) + */ + __pyx_tuple__110 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(38, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__110); + __Pyx_GIVEREF(__pyx_tuple__110); + + /* "petsc4py/PETSc/IS.pyx":357 + * + * + * class GLMapMode(object): # <<<<<<<<<<<<<< + * MASK = PETSC_IS_GTOLM_MASK + * DROP = PETSC_IS_GTOLM_DROP + */ + __pyx_tuple__111 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(38, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__111); + __Pyx_GIVEREF(__pyx_tuple__111); + + /* "petsc4py/PETSc/IS.pyx":362 + * + * + * class LGMapType(object): # <<<<<<<<<<<<<< + * BASIC = S_(ISLOCALTOGLOBALMAPPINGBASIC) + * HASH = S_(ISLOCALTOGLOBALMAPPINGHASH) + */ + __pyx_tuple__112 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__112)) __PYX_ERR(38, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__112); + __Pyx_GIVEREF(__pyx_tuple__112); + + /* "petsc4py/PETSc/SF.pyx":3 + * # -------------------------------------------------------------------- + * + * class SFType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_tuple__113 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(39, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__113); + __Pyx_GIVEREF(__pyx_tuple__113); + + /* "petsc4py/PETSc/Vec.pyx":3 + * # -------------------------------------------------------------------- + * + * class VecType(object): # <<<<<<<<<<<<<< + * SEQ = S_(VECSEQ) + * MPI = S_(VECMPI) + */ + __pyx_tuple__114 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(40, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__114); + __Pyx_GIVEREF(__pyx_tuple__114); + + /* "petsc4py/PETSc/Vec.pyx":22 + * KOKKOS = S_(VECKOKKOS) + * + * class VecOption(object): # <<<<<<<<<<<<<< + * IGNORE_OFF_PROC_ENTRIES = VEC_IGNORE_OFF_PROC_ENTRIES + * IGNORE_NEGATIVE_INDICES = VEC_IGNORE_NEGATIVE_INDICES + */ + __pyx_tuple__115 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(40, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__115); + __Pyx_GIVEREF(__pyx_tuple__115); + + /* "petsc4py/PETSc/FE.pyx":3 + * # -------------------------------------------------------------------- + * + * class FEType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCFEBASIC) + * OPENCL = S_(PETSCFEOPENCL) + */ + __pyx_tuple__116 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(42, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__116); + __Pyx_GIVEREF(__pyx_tuple__116); + + /* "petsc4py/PETSc/Scatter.pyx":3 + * # -------------------------------------------------------------------- + * + * class ScatterType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_tuple__117 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(43, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__117); + __Pyx_GIVEREF(__pyx_tuple__117); + + /* "petsc4py/PETSc/Mat.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatType(object): # <<<<<<<<<<<<<< + * SAME = S_(MATSAME) + * MAIJ = S_(MATMAIJ) + */ + __pyx_tuple__118 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__118)) __PYX_ERR(45, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__118); + __Pyx_GIVEREF(__pyx_tuple__118); + + /* "petsc4py/PETSc/Mat.pyx":88 + * H2OPUS = S_(MATH2OPUS) + * + * class MatOption(object): # <<<<<<<<<<<<<< + * OPTION_MIN = MAT_OPTION_MIN + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + */ + __pyx_tuple__119 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(45, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__119); + __Pyx_GIVEREF(__pyx_tuple__119); + + /* "petsc4py/PETSc/Mat.pyx":117 + * OPTION_MAX = MAT_OPTION_MAX + * + * class MatAssemblyType(object): # <<<<<<<<<<<<<< + * # native + * FINAL_ASSEMBLY = MAT_FINAL_ASSEMBLY + */ + __pyx_tuple__120 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__120)) __PYX_ERR(45, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__120); + __Pyx_GIVEREF(__pyx_tuple__120); + + /* "petsc4py/PETSc/Mat.pyx":125 + * FLUSH = FLUSH_ASSEMBLY + * + * class MatInfoType(object): # <<<<<<<<<<<<<< + * LOCAL = MAT_LOCAL + * GLOBAL_MAX = MAT_GLOBAL_MAX + */ + __pyx_tuple__121 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(45, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__121); + __Pyx_GIVEREF(__pyx_tuple__121); + + /* "petsc4py/PETSc/Mat.pyx":130 + * GLOBAL_SUM = MAT_GLOBAL_SUM + * + * class MatStructure(object): # <<<<<<<<<<<<<< + * # native + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN + */ + __pyx_tuple__122 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__122)) __PYX_ERR(45, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__122); + __Pyx_GIVEREF(__pyx_tuple__122); + + /* "petsc4py/PETSc/Mat.pyx":142 + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN + * + * class MatDuplicateOption(object): # <<<<<<<<<<<<<< + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES + * COPY_VALUES = MAT_COPY_VALUES + */ + __pyx_tuple__123 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(45, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__123); + __Pyx_GIVEREF(__pyx_tuple__123); + + /* "petsc4py/PETSc/Mat.pyx":147 + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN + * + * class MatOrderingType(object): # <<<<<<<<<<<<<< + * NATURAL = S_(MATORDERINGNATURAL) + * ND = S_(MATORDERINGND) + */ + __pyx_tuple__124 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__124)) __PYX_ERR(45, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__124); + __Pyx_GIVEREF(__pyx_tuple__124); + + /* "petsc4py/PETSc/Mat.pyx":159 + * METISND = S_(MATORDERINGMETISND) + * + * class MatSolverType(object): # <<<<<<<<<<<<<< + * SUPERLU = S_(MATSOLVERSUPERLU) + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + */ + __pyx_tuple__125 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(45, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__125); + __Pyx_GIVEREF(__pyx_tuple__125); + + /* "petsc4py/PETSc/Mat.pyx":182 + * SPQR = S_(MATSOLVERSPQR) + * + * class MatFactorShiftType(object): # <<<<<<<<<<<<<< + * # native + * NONE = MAT_SHIFT_NONE + */ + __pyx_tuple__126 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(45, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__126); + __Pyx_GIVEREF(__pyx_tuple__126); + + /* "petsc4py/PETSc/Mat.pyx":192 + * PD = MAT_SHIFT_POSITIVE_DEFINITE + * + * class MatSORType(object): # <<<<<<<<<<<<<< + * FORWARD_SWEEP = SOR_FORWARD_SWEEP + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + */ + __pyx_tuple__127 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(45, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__127); + __Pyx_GIVEREF(__pyx_tuple__127); + + /* "petsc4py/PETSc/MatPartitioning.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatPartitioningType(object): # <<<<<<<<<<<<<< + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + */ + __pyx_tuple__128 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(46, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__128); + __Pyx_GIVEREF(__pyx_tuple__128); + + /* "petsc4py/PETSc/PC.pyx":3 + * # -------------------------------------------------------------------- + * + * class PCType(object): # <<<<<<<<<<<<<< + * NONE = S_(PCNONE) + * JACOBI = S_(PCJACOBI) + */ + __pyx_tuple__129 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(47, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__129); + __Pyx_GIVEREF(__pyx_tuple__129); + + /* "petsc4py/PETSc/PC.pyx":55 + * H2OPUS = S_(PCH2OPUS) + * + * class PCSide(object): # <<<<<<<<<<<<<< + * # native + * LEFT = PC_LEFT + */ + __pyx_tuple__130 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(47, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__130); + __Pyx_GIVEREF(__pyx_tuple__130); + + /* "petsc4py/PETSc/PC.pyx":65 + * S = SYMMETRIC + * + * class PCASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_ASM_NONE + * BASIC = PC_ASM_BASIC + */ + __pyx_tuple__131 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(47, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__131); + __Pyx_GIVEREF(__pyx_tuple__131); + + /* "petsc4py/PETSc/PC.pyx":71 + * INTERPOLATE = PC_ASM_INTERPOLATE + * + * class PCGASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_GASM_NONE + * BASIC = PC_GASM_BASIC + */ + __pyx_tuple__132 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(47, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__132); + __Pyx_GIVEREF(__pyx_tuple__132); + + /* "petsc4py/PETSc/PC.pyx":77 + * INTERPOLATE = PC_GASM_INTERPOLATE + * + * class PCMGType(object): # <<<<<<<<<<<<<< + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE + * ADDITIVE = PC_MG_ADDITIVE + */ + __pyx_tuple__133 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(47, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__133); + __Pyx_GIVEREF(__pyx_tuple__133); + + /* "petsc4py/PETSc/PC.pyx":83 + * KASKADE = PC_MG_KASKADE + * + * class PCMGCycleType(object): # <<<<<<<<<<<<<< + * V = PC_MG_CYCLE_V + * W = PC_MG_CYCLE_W + */ + __pyx_tuple__134 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__134)) __PYX_ERR(47, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__134); + __Pyx_GIVEREF(__pyx_tuple__134); + + /* "petsc4py/PETSc/PC.pyx":87 + * W = PC_MG_CYCLE_W + * + * class PCGAMGType(object): # <<<<<<<<<<<<<< + * AGG = S_(PCGAMGAGG) + * GEO = S_(PCGAMGGEO) + */ + __pyx_tuple__135 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(47, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__135); + __Pyx_GIVEREF(__pyx_tuple__135); + + /* "petsc4py/PETSc/PC.pyx":92 + * CLASSICAL = S_(PCGAMGCLASSICAL) + * + * class PCCompositeType(object): # <<<<<<<<<<<<<< + * ADDITIVE = PC_COMPOSITE_ADDITIVE + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + */ + __pyx_tuple__136 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(47, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__136); + __Pyx_GIVEREF(__pyx_tuple__136); + + /* "petsc4py/PETSc/PC.pyx":99 + * SCHUR = PC_COMPOSITE_SCHUR + * + * class PCFieldSplitSchurPreType(object): # <<<<<<<<<<<<<< + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + */ + __pyx_tuple__137 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(47, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__137); + __Pyx_GIVEREF(__pyx_tuple__137); + + /* "petsc4py/PETSc/PC.pyx":106 + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL + * + * class PCFieldSplitSchurFactType(object): # <<<<<<<<<<<<<< + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + */ + __pyx_tuple__138 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(47, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__138); + __Pyx_GIVEREF(__pyx_tuple__138); + + /* "petsc4py/PETSc/PC.pyx":112 + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL + * + * class PCPatchConstructType(object): # <<<<<<<<<<<<<< + * STAR = PC_PATCH_STAR + * VANKA = PC_PATCH_VANKA + */ + __pyx_tuple__139 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(47, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__139); + __Pyx_GIVEREF(__pyx_tuple__139); + + /* "petsc4py/PETSc/PC.pyx":119 + * PYTHON = PC_PATCH_PYTHON + * + * class PCHPDDMCoarseCorrectionType(object): # <<<<<<<<<<<<<< + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE + */ + __pyx_tuple__140 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(47, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__140); + __Pyx_GIVEREF(__pyx_tuple__140); + + /* "petsc4py/PETSc/PC.pyx":124 + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED + * + * class PCDeflationSpaceType(object): # <<<<<<<<<<<<<< + * HAAR = PC_DEFLATION_SPACE_HAAR + * DB2 = PC_DEFLATION_SPACE_DB2 + */ + __pyx_tuple__141 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(47, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__141); + __Pyx_GIVEREF(__pyx_tuple__141); + + /* "petsc4py/PETSc/PC.pyx":135 + * USER = PC_DEFLATION_SPACE_USER + * + * class PCFailedReason(object): # <<<<<<<<<<<<<< + * SETUP_ERROR = PC_SETUP_ERROR + * NOERROR = PC_NOERROR + */ + __pyx_tuple__142 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__142)) __PYX_ERR(47, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__142); + __Pyx_GIVEREF(__pyx_tuple__142); + + /* "petsc4py/PETSc/KSP.pyx":3 + * # -------------------------------------------------------------------- + * + * class KSPType(object): # <<<<<<<<<<<<<< + * RICHARDSON = S_(KSPRICHARDSON) + * CHEBYSHEV = S_(KSPCHEBYSHEV) + */ + __pyx_tuple__143 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(48, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__143); + __Pyx_GIVEREF(__pyx_tuple__143); + + /* "petsc4py/PETSc/KSP.pyx":53 + * HPDDM = S_(KSPHPDDM) + * + * class KSPNormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = KSP_NORM_DEFAULT + */ + __pyx_tuple__144 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__144)) __PYX_ERR(48, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__144); + __Pyx_GIVEREF(__pyx_tuple__144); + + /* "petsc4py/PETSc/KSP.pyx":67 + * NATURAL = NORM_NATURAL + * + * class KSPConvergedReason(object): # <<<<<<<<<<<<<< + * #iterating + * CONVERGED_ITERATING = KSP_CONVERGED_ITERATING + */ + __pyx_tuple__145 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__145)) __PYX_ERR(48, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__145); + __Pyx_GIVEREF(__pyx_tuple__145); + + /* "petsc4py/PETSc/SNES.pyx":3 + * # -------------------------------------------------------------------- + * + * class SNESType(object): # <<<<<<<<<<<<<< + * NEWTONLS = S_(SNESNEWTONLS) + * NEWTONTR = S_(SNESNEWTONTR) + */ + __pyx_tuple__146 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__146)) __PYX_ERR(49, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__146); + __Pyx_GIVEREF(__pyx_tuple__146); + + /* "petsc4py/PETSc/SNES.pyx":25 + * PATCH = S_(SNESPATCH) + * + * class SNESNormSchedule(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = SNES_NORM_DEFAULT + */ + __pyx_tuple__147 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__147)) __PYX_ERR(49, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__147); + __Pyx_GIVEREF(__pyx_tuple__147); + + /* "petsc4py/PETSc/SNES.pyx":41 + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY + * + * class SNESConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = SNES_CONVERGED_ITERATING + */ + __pyx_tuple__148 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__148)) __PYX_ERR(49, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__148); + __Pyx_GIVEREF(__pyx_tuple__148); + + /* "petsc4py/PETSc/TS.pyx":3 + * # ----------------------------------------------------------------------------- + * + * class TSType(object): # <<<<<<<<<<<<<< + * # native + * EULER = S_(TSEULER) + */ + __pyx_tuple__149 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(50, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__149); + __Pyx_GIVEREF(__pyx_tuple__149); + + /* "petsc4py/PETSc/TS.pyx":34 + * RUNGE_KUTTA = RK + * + * class TSRKType(object): # <<<<<<<<<<<<<< + * RK1FE = S_(TSRK1FE) + * RK2A = S_(TSRK2A) + */ + __pyx_tuple__150 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__150)) __PYX_ERR(50, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__150); + __Pyx_GIVEREF(__pyx_tuple__150); + + /* "petsc4py/PETSc/TS.pyx":48 + * RK8VR = S_(TSRK8VR) + * + * class TSARKIMEXType(object): # <<<<<<<<<<<<<< + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) + * ARKIMEXA2 = S_(TSARKIMEXA2) + */ + __pyx_tuple__151 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(50, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__151); + __Pyx_GIVEREF(__pyx_tuple__151); + + /* "petsc4py/PETSc/TS.pyx":63 + * ARKIMEX5 = S_(TSARKIMEX5) + * + * class TSProblemType(object): # <<<<<<<<<<<<<< + * LINEAR = TS_LINEAR + * NONLINEAR = TS_NONLINEAR + */ + __pyx_tuple__152 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__152)) __PYX_ERR(50, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__152); + __Pyx_GIVEREF(__pyx_tuple__152); + + /* "petsc4py/PETSc/TS.pyx":67 + * NONLINEAR = TS_NONLINEAR + * + * class TSEquationType(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EQ_UNSPECIFIED + * EXPLICIT = TS_EQ_EXPLICIT + */ + __pyx_tuple__153 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__153)) __PYX_ERR(50, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__153); + __Pyx_GIVEREF(__pyx_tuple__153); + + /* "petsc4py/PETSc/TS.pyx":82 + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI + * + * class TSExactFinalTime(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + */ + __pyx_tuple__154 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(50, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__154); + __Pyx_GIVEREF(__pyx_tuple__154); + + /* "petsc4py/PETSc/TS.pyx":88 + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP + * + * class TSConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = TS_CONVERGED_ITERATING + */ + __pyx_tuple__155 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__155)) __PYX_ERR(50, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__155); + __Pyx_GIVEREF(__pyx_tuple__155); + + /* "petsc4py/PETSc/AO.pyx":3 + * # -------------------------------------------------------------------- + * + * class AOType(object): # <<<<<<<<<<<<<< + * BASIC = S_(AOBASIC) + * ADVANCED = S_(AOADVANCED) + */ + __pyx_tuple__156 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__156)) __PYX_ERR(52, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__156); + __Pyx_GIVEREF(__pyx_tuple__156); + + /* "petsc4py/PETSc/DM.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMType(object): # <<<<<<<<<<<<<< + * DA = S_(DMDA_type) + * COMPOSITE = S_(DMCOMPOSITE) + */ + __pyx_tuple__157 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__157)) __PYX_ERR(53, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__157); + __Pyx_GIVEREF(__pyx_tuple__157); + + /* "petsc4py/PETSc/DM.pyx":20 + * STAG = S_(DMSTAG) + * + * class DMBoundaryType(object): # <<<<<<<<<<<<<< + * NONE = DM_BOUNDARY_NONE + * GHOSTED = DM_BOUNDARY_GHOSTED + */ + __pyx_tuple__158 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__158)) __PYX_ERR(53, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__158); + __Pyx_GIVEREF(__pyx_tuple__158); + + /* "petsc4py/PETSc/DM.pyx":27 + * TWIST = DM_BOUNDARY_TWIST + * + * class DMPolytopeType(object): # <<<<<<<<<<<<<< + * POINT = DM_POLYTOPE_POINT + * SEGMENT = DM_POLYTOPE_SEGMENT + */ + __pyx_tuple__159 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__159)) __PYX_ERR(53, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__159); + __Pyx_GIVEREF(__pyx_tuple__159); + + /* "petsc4py/PETSc/DS.pyx":3 + * # -------------------------------------------------------------------- + * + * class DSType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCDSBASIC) + * + */ + __pyx_tuple__160 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__160)) __PYX_ERR(54, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__160); + __Pyx_GIVEREF(__pyx_tuple__160); + + /* "petsc4py/PETSc/DMDA.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMDAStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMDA_STENCIL_STAR + * BOX = DMDA_STENCIL_BOX + */ + __pyx_tuple__161 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__161)) __PYX_ERR(55, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__161); + __Pyx_GIVEREF(__pyx_tuple__161); + + /* "petsc4py/PETSc/DMDA.pyx":7 + * BOX = DMDA_STENCIL_BOX + * + * class DMDAInterpolationType(object): # <<<<<<<<<<<<<< + * Q0 = DMDA_INTERPOLATION_Q0 + * Q1 = DMDA_INTERPOLATION_Q1 + */ + __pyx_tuple__162 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__162)) __PYX_ERR(55, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__162); + __Pyx_GIVEREF(__pyx_tuple__162); + + /* "petsc4py/PETSc/DMDA.pyx":11 + * Q1 = DMDA_INTERPOLATION_Q1 + * + * class DMDAElementType(object): # <<<<<<<<<<<<<< + * P1 = DMDA_ELEMENT_P1 + * Q1 = DMDA_ELEMENT_Q1 + */ + __pyx_tuple__163 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(55, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__163); + __Pyx_GIVEREF(__pyx_tuple__163); + + /* "petsc4py/PETSc/DMPlex.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMPlexReorderDefaultFlag(object): # <<<<<<<<<<<<<< + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE + */ + __pyx_tuple__164 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__164)) __PYX_ERR(56, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__164); + __Pyx_GIVEREF(__pyx_tuple__164); + + /* "petsc4py/PETSc/DMPlex.pyx":995 + * + * # -------------------------------------------------------------------- + * class DMPlexTransformType(object): # <<<<<<<<<<<<<< + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + */ + __pyx_tuple__165 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(56, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__165); + __Pyx_GIVEREF(__pyx_tuple__165); + + /* "petsc4py/PETSc/DMStag.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMStagStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMSTAG_STENCIL_STAR + * BOX = DMSTAG_STENCIL_BOX + */ + __pyx_tuple__166 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__166)) __PYX_ERR(57, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__166); + __Pyx_GIVEREF(__pyx_tuple__166); + + /* "petsc4py/PETSc/DMStag.pyx":8 + * NONE = DMSTAG_STENCIL_NONE + * + * class DMStagStencilLocation(object): # <<<<<<<<<<<<<< + * NULLLOC = DMSTAG_NULL_LOCATION + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + */ + __pyx_tuple__167 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(57, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__167); + __Pyx_GIVEREF(__pyx_tuple__167); + + /* "petsc4py/PETSc/DMSwarm.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMSwarmType(object): # <<<<<<<<<<<<<< + * BASIC = DMSWARM_BASIC + * PIC = DMSWARM_PIC + */ + __pyx_tuple__168 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__168)) __PYX_ERR(61, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__168); + __Pyx_GIVEREF(__pyx_tuple__168); + + /* "petsc4py/PETSc/DMSwarm.pyx":7 + * PIC = DMSWARM_PIC + * + * class DMSwarmMigrateType(object): # <<<<<<<<<<<<<< + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + */ + __pyx_tuple__169 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(61, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__169); + __Pyx_GIVEREF(__pyx_tuple__169); + + /* "petsc4py/PETSc/DMSwarm.pyx":13 + * MIGRATE_USER = DMSWARM_MIGRATE_USER + * + * class DMSwarmCollectType(object): # <<<<<<<<<<<<<< + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + */ + __pyx_tuple__170 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__170)) __PYX_ERR(61, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__170); + __Pyx_GIVEREF(__pyx_tuple__170); + + /* "petsc4py/PETSc/DMSwarm.pyx":19 + * COLLECT_USER = DMSWARM_COLLECT_USER + * + * class DMSwarmPICLayoutType(object): # <<<<<<<<<<<<<< + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS + */ + __pyx_tuple__171 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(61, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__171); + __Pyx_GIVEREF(__pyx_tuple__171); + + /* "petsc4py/PETSc/Partitioner.pyx":3 + * # -------------------------------------------------------------------- + * + * class PartitionerType(object): # <<<<<<<<<<<<<< + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + */ + __pyx_tuple__172 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__172)) __PYX_ERR(62, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__172); + __Pyx_GIVEREF(__pyx_tuple__172); + + /* "petsc4py/PETSc/Space.pyx":3 + * # -------------------------------------------------------------------- + * + * class SpaceType(object): # <<<<<<<<<<<<<< + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + */ + __pyx_tuple__173 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(63, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__173); + __Pyx_GIVEREF(__pyx_tuple__173); + + /* "petsc4py/PETSc/Space.pyx":184 + * # -------------------------------------------------------------------- + * + * class DualSpaceType(object): # <<<<<<<<<<<<<< + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + */ + __pyx_tuple__174 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__174)) __PYX_ERR(63, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__174); + __Pyx_GIVEREF(__pyx_tuple__174); + + /* "petsc4py/PETSc/PETSc.pyx":561 + * # -------------------------------------------------------------------- + * + * def _initialize(args=None, comm=None): # <<<<<<<<<<<<<< + * import atexit + * global tracebacklist + */ + __pyx_tuple__175 = PyTuple_Pack(4, __pyx_n_s_args, __pyx_n_s_comm, __pyx_n_s_atexit, __pyx_n_s_ready); if (unlikely(!__pyx_tuple__175)) __PYX_ERR(12, 561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__175); + __Pyx_GIVEREF(__pyx_tuple__175); + __pyx_codeobj__176 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__175, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_initialize, 561, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__176)) __PYX_ERR(12, 561, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":580 + * atexit.register(_pre_finalize) + * + * def _pre_finalize(): # <<<<<<<<<<<<<< + * # Called while the Python interpreter is still running + * garbage_cleanup() + */ + __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_pre_finalize, 580, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(12, 580, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":584 + * garbage_cleanup() + * + * def _finalize(): # <<<<<<<<<<<<<< + * finalize() + * # + */ + __pyx_codeobj__178 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_finalize, 584, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__178)) __PYX_ERR(12, 584, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":606 + * citations_registry.clear() + * + * def _push_python_vfprintf(): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + */ + __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_push_python_vfprintf, 606, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(12, 606, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":609 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + * def _pop_python_vfprintf(): # <<<<<<<<<<<<<< + * _pop_vfprintf() + * + */ + __pyx_codeobj__180 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_pop_python_vfprintf, 609, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__180)) __PYX_ERR(12, 609, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":612 + * _pop_vfprintf() + * + * def _stdout_is_stderr(): # <<<<<<<<<<<<<< + * global PETSC_STDOUT, PETSC_STDERR + * return PETSC_STDOUT == PETSC_STDERR + */ + __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_petsc4py_PETSc_PETSc_pyx, __pyx_n_s_stdout_is_stderr, 612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(12, 612, __pyx_L1_error) + + /* "View.MemoryView":287 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_tuple__182 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct_or_indirect); if (unlikely(!__pyx_tuple__182)) __PYX_ERR(66, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__182); + __Pyx_GIVEREF(__pyx_tuple__182); + + /* "View.MemoryView":288 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_tuple__183 = PyTuple_Pack(1, __pyx_kp_s_strided_and_direct); if (unlikely(!__pyx_tuple__183)) __PYX_ERR(66, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__183); + __Pyx_GIVEREF(__pyx_tuple__183); + + /* "View.MemoryView":289 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__184 = PyTuple_Pack(1, __pyx_kp_s_strided_and_indirect); if (unlikely(!__pyx_tuple__184)) __PYX_ERR(66, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__184); + __Pyx_GIVEREF(__pyx_tuple__184); + + /* "View.MemoryView":292 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_tuple__185 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_direct); if (unlikely(!__pyx_tuple__185)) __PYX_ERR(66, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__185); + __Pyx_GIVEREF(__pyx_tuple__185); + + /* "View.MemoryView":293 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_tuple__186 = PyTuple_Pack(1, __pyx_kp_s_contiguous_and_indirect); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(66, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__186); + __Pyx_GIVEREF(__pyx_tuple__186); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_tuple__187 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__187)) __PYX_ERR(66, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__187); + __Pyx_GIVEREF(__pyx_tuple__187); + __pyx_codeobj__188 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__187, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_Enum, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__188)) __PYX_ERR(66, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + /* AssertionsEnabled.init */ + __Pyx_init_assertions_enabled(); + +if (unlikely(PyErr_Occurred())) __PYX_ERR(21, 1, __pyx_L1_error) + + __pyx_umethod_PyDict_Type_get.type = (PyObject*)&PyDict_Type; + __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; + __pyx_umethod_PyDict_Type_pop.type = (PyObject*)&PyDict_Type; + __pyx_umethod_PyList_Type_pop.type = (PyObject*)&PyList_Type; + if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_float_0_ = PyFloat_FromDouble(0.); if (unlikely(!__pyx_float_0_)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_float_0_0 = PyFloat_FromDouble(0.0); if (unlikely(!__pyx_float_0_0)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_float_1_0 = PyFloat_FromDouble(1.0); if (unlikely(!__pyx_float_1_0)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_5 = PyInt_FromLong(5); if (unlikely(!__pyx_int_5)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_6 = PyInt_FromLong(6); if (unlikely(!__pyx_int_6)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_7 = PyInt_FromLong(7); if (unlikely(!__pyx_int_7)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_10 = PyInt_FromLong(10); if (unlikely(!__pyx_int_10)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_13 = PyInt_FromLong(13); if (unlikely(!__pyx_int_13)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_17 = PyInt_FromLong(17); if (unlikely(!__pyx_int_17)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_18 = PyInt_FromLong(18); if (unlikely(!__pyx_int_18)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_19 = PyInt_FromLong(19); if (unlikely(!__pyx_int_19)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_23 = PyInt_FromLong(23); if (unlikely(!__pyx_int_23)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_34 = PyInt_FromLong(34); if (unlikely(!__pyx_int_34)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_43 = PyInt_FromLong(43); if (unlikely(!__pyx_int_43)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_45 = PyInt_FromLong(45); if (unlikely(!__pyx_int_45)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_46 = PyInt_FromLong(46); if (unlikely(!__pyx_int_46)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_47 = PyInt_FromLong(47); if (unlikely(!__pyx_int_47)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_48 = PyInt_FromLong(48); if (unlikely(!__pyx_int_48)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_59 = PyInt_FromLong(59); if (unlikely(!__pyx_int_59)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_88 = PyInt_FromLong(88); if (unlikely(!__pyx_int_88)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_102 = PyInt_FromLong(102); if (unlikely(!__pyx_int_102)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_105 = PyInt_FromLong(105); if (unlikely(!__pyx_int_105)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_106 = PyInt_FromLong(106); if (unlikely(!__pyx_int_106)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_113 = PyInt_FromLong(113); if (unlikely(!__pyx_int_113)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_119 = PyInt_FromLong(119); if (unlikely(!__pyx_int_119)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_121 = PyInt_FromLong(121); if (unlikely(!__pyx_int_121)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_122 = PyInt_FromLong(122); if (unlikely(!__pyx_int_122)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_112105877 = PyInt_FromLong(112105877L); if (unlikely(!__pyx_int_112105877)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_136983863 = PyInt_FromLong(136983863L); if (unlikely(!__pyx_int_136983863)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_184977713 = PyInt_FromLong(184977713L); if (unlikely(!__pyx_int_184977713)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(21, 1, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __pyx_v_8petsc4py_5PETSc_PetscError = Py_None; Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_appctx_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_citations_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_stage_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_class_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_event_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc___COMM_NULL__ = ((struct PyPetscCommObject *)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc___COMM_SELF__ = ((struct PyPetscCommObject *)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc___COMM_WORLD__ = ((struct PyPetscCommObject *)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_type_registry = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_module_cache = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_dMatOps = ((PyObject*)Py_None); Py_INCREF(Py_None); + __pyx_v_8petsc4py_5PETSc_tracebacklist = Py_None; Py_INCREF(Py_None); + generic = Py_None; Py_INCREF(Py_None); + strided = Py_None; Py_INCREF(Py_None); + indirect = Py_None; Py_INCREF(Py_None); + contiguous = Py_None; Py_INCREF(Py_None); + indirect_contiguous = Py_None; Py_INCREF(Py_None); + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + if (__Pyx_ExportFunction("GetComm", (void (*)(void))__pyx_f_8petsc4py_5PETSc_GetComm, "MPI_Comm (PyObject *, MPI_Comm)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("GetCommDefault", (void (*)(void))__pyx_f_8petsc4py_5PETSc_GetCommDefault, "MPI_Comm (void)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscType_Register", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscType_Register, "int (int, PyTypeObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscType_Lookup", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscType_Lookup, "PyTypeObject *(int)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("CHKERR", (void (*)(void))__pyx_f_8petsc4py_5PETSc_CHKERR, "PetscErrorCode (PetscErrorCode)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscError_Set", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscError_Set, "int (PetscErrorCode)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscComm_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscComm_New, "PyObject *(MPI_Comm)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscComm_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscComm_Get, "MPI_Comm (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscComm_GetPtr", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscComm_GetPtr, "MPI_Comm *(PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscObject_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscObject_New, "PyObject *(PetscObject)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscObject_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscObject_Get, "PetscObject (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscObject_GetPtr", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscObject_GetPtr, "PetscObject *(PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscViewer_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscViewer_New, "PyObject *(PetscViewer)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscViewer_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscViewer_Get, "PetscViewer (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscRandom_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscRandom_New, "PyObject *(PetscRandom)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscRandom_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscRandom_Get, "PetscRandom (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDevice_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDevice_New, "struct PyPetscDeviceObject *(PetscDevice)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDevice_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDevice_Get, "PetscDevice (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDeviceContext_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_New, "struct PyPetscDeviceContextObject *(PetscDeviceContext)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDeviceContext_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDeviceContext_Get, "PetscDeviceContext (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscIS_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscIS_New, "PyObject *(IS)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscIS_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscIS_Get, "IS (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscLGMap_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscLGMap_New, "PyObject *(ISLocalToGlobalMapping)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscLGMap_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscLGMap_Get, "ISLocalToGlobalMapping (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSF_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSF_New, "PyObject *(PetscSF)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSF_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSF_Get, "PetscSF (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscVec_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscVec_New, "PyObject *(Vec)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscVec_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscVec_Get, "Vec (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscScatter_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscScatter_New, "PyObject *(VecScatter)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscScatter_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscScatter_Get, "VecScatter (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSection_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSection_New, "PyObject *(PetscSection)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSection_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSection_Get, "PetscSection (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscMat_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscMat_New, "PyObject *(Mat)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscMat_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscMat_Get, "Mat (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscMatPartitioning_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_New, "PyObject *(MatPartitioning)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscMatPartitioning_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscMatPartitioning_Get, "MatPartitioning (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscPC_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscPC_New, "PyObject *(PC)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscPC_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscPC_Get, "PC (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscKSP_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscKSP_New, "PyObject *(KSP)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscKSP_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscKSP_Get, "KSP (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSNES_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSNES_New, "PyObject *(SNES)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSNES_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSNES_Get, "SNES (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscTS_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscTS_New, "PyObject *(TS)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscTS_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscTS_Get, "TS (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscTAO_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscTAO_New, "PyObject *(Tao)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscTAO_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscTAO_Get, "Tao (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscAO_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscAO_New, "PyObject *(AO)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscAO_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscAO_Get, "AO (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDM_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDM_New, "PyObject *(DM)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDM_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDM_Get, "DM (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDS_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDS_New, "PyObject *(PetscDS)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDS_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDS_Get, "PetscDS (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscPartitioner_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_New, "PyObject *(PetscPartitioner)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscPartitioner_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscPartitioner_Get, "PetscPartitioner (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscFE_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscFE_New, "PyObject *(PetscFE)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscFE_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscFE_Get, "PetscFE (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscQuad_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscQuad_New, "PyObject *(PetscQuadrature)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscQuad_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscQuad_Get, "PetscQuadrature (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDMLabel_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_New, "PyObject *(DMLabel)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDMLabel_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDMLabel_Get, "DMLabel (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSpace_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSpace_New, "PyObject *(PetscSpace)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscSpace_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscSpace_Get, "PetscSpace (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDualSpace_New", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_New, "PyObject *(PetscDualSpace)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + if (__Pyx_ExportFunction("PyPetscDualSpace_Get", (void (*)(void))__pyx_f_8petsc4py_5PETSc_PyPetscDualSpace_Get, "PetscDualSpace (PyObject *)") < 0) __PYX_ERR(21, 1, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + if (PyType_Ready(&PyPetscComm_Type) < 0) __PYX_ERR(10, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscComm_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscComm_Type.tp_dictoffset && PyPetscComm_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscComm_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Comm, (PyObject *)&PyPetscComm_Type) < 0) __PYX_ERR(10, 3, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_Comm = &PyPetscComm_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Object = &__pyx_vtable_8petsc4py_5PETSc_Object; + __pyx_vtable_8petsc4py_5PETSc_Object.get_attr = (PyObject *(*)(struct PyPetscObjectObject *, char *))__pyx_f_8petsc4py_5PETSc_6Object_get_attr; + __pyx_vtable_8petsc4py_5PETSc_Object.set_attr = (PyObject *(*)(struct PyPetscObjectObject *, char *, PyObject *))__pyx_f_8petsc4py_5PETSc_6Object_set_attr; + __pyx_vtable_8petsc4py_5PETSc_Object.get_dict = (PyObject *(*)(struct PyPetscObjectObject *))__pyx_f_8petsc4py_5PETSc_6Object_get_dict; + if (PyType_Ready(&PyPetscObject_Type) < 0) __PYX_ERR(34, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscObject_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscObject_Type.tp_dictoffset && PyPetscObject_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscObject_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscObject_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Object) < 0) __PYX_ERR(34, 3, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Object, (PyObject *)&PyPetscObject_Type) < 0) __PYX_ERR(34, 3, __pyx_L1_error) + if (PyPetscObject_Type.tp_weaklistoffset == 0) PyPetscObject_Type.tp_weaklistoffset = offsetof(struct PyPetscObjectObject, __weakref__); + __pyx_ptype_8petsc4py_5PETSc_Object = &PyPetscObject_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Viewer = &__pyx_vtable_8petsc4py_5PETSc_Viewer; + __pyx_vtable_8petsc4py_5PETSc_Viewer.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscViewer_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscViewer_Type) < 0) __PYX_ERR(36, 84, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscViewer_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscViewer_Type.tp_dictoffset && PyPetscViewer_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscViewer_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscViewer_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Viewer) < 0) __PYX_ERR(36, 84, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Viewer, (PyObject *)&PyPetscViewer_Type) < 0) __PYX_ERR(36, 84, __pyx_L1_error) + if (PyPetscViewer_Type.tp_weaklistoffset == 0) PyPetscViewer_Type.tp_weaklistoffset = offsetof(struct PyPetscViewerObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Viewer = &PyPetscViewer_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Random = &__pyx_vtable_8petsc4py_5PETSc_Random; + __pyx_vtable_8petsc4py_5PETSc_Random.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscRandom_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscRandom_Type) < 0) __PYX_ERR(37, 12, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscRandom_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscRandom_Type.tp_dictoffset && PyPetscRandom_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscRandom_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscRandom_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Random) < 0) __PYX_ERR(37, 12, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Random, (PyObject *)&PyPetscRandom_Type) < 0) __PYX_ERR(37, 12, __pyx_L1_error) + if (PyPetscRandom_Type.tp_weaklistoffset == 0) PyPetscRandom_Type.tp_weaklistoffset = offsetof(struct PyPetscRandomObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Random = &PyPetscRandom_Type; + if (PyType_Ready(&PyPetscDevice_Type) < 0) __PYX_ERR(2, 49, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDevice_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDevice_Type.tp_dictoffset && PyPetscDevice_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDevice_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Device, (PyObject *)&PyPetscDevice_Type) < 0) __PYX_ERR(2, 49, __pyx_L1_error) + if (PyPetscDevice_Type.tp_weaklistoffset == 0) PyPetscDevice_Type.tp_weaklistoffset = offsetof(struct PyPetscDeviceObject, __weakref__); + __pyx_ptype_8petsc4py_5PETSc_Device = &PyPetscDevice_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DeviceContext = &__pyx_vtable_8petsc4py_5PETSc_DeviceContext; + __pyx_vtable_8petsc4py_5PETSc_DeviceContext.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDeviceContext_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDeviceContext_Type) < 0) __PYX_ERR(2, 109, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDeviceContext_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDeviceContext_Type.tp_dictoffset && PyPetscDeviceContext_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDeviceContext_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDeviceContext_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DeviceContext) < 0) __PYX_ERR(2, 109, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DeviceContext, (PyObject *)&PyPetscDeviceContext_Type) < 0) __PYX_ERR(2, 109, __pyx_L1_error) + if (PyPetscDeviceContext_Type.tp_weaklistoffset == 0) PyPetscDeviceContext_Type.tp_weaklistoffset = offsetof(struct PyPetscDeviceContextObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DeviceContext = &PyPetscDeviceContext_Type; + __pyx_vtabptr_8petsc4py_5PETSc_IS = &__pyx_vtable_8petsc4py_5PETSc_IS; + __pyx_vtable_8petsc4py_5PETSc_IS.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscIS_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscIS_Type) < 0) __PYX_ERR(38, 10, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscIS_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscIS_Type.tp_dictoffset && PyPetscIS_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscIS_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscIS_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_IS) < 0) __PYX_ERR(38, 10, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IS, (PyObject *)&PyPetscIS_Type) < 0) __PYX_ERR(38, 10, __pyx_L1_error) + if (PyPetscIS_Type.tp_weaklistoffset == 0) PyPetscIS_Type.tp_weaklistoffset = offsetof(struct PyPetscISObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_IS = &PyPetscIS_Type; + __pyx_vtabptr_8petsc4py_5PETSc_LGMap = &__pyx_vtable_8petsc4py_5PETSc_LGMap; + __pyx_vtable_8petsc4py_5PETSc_LGMap.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscLGMap_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscLGMap_Type) < 0) __PYX_ERR(38, 369, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscLGMap_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscLGMap_Type.tp_dictoffset && PyPetscLGMap_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscLGMap_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscLGMap_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_LGMap) < 0) __PYX_ERR(38, 369, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LGMap, (PyObject *)&PyPetscLGMap_Type) < 0) __PYX_ERR(38, 369, __pyx_L1_error) + if (PyPetscLGMap_Type.tp_weaklistoffset == 0) PyPetscLGMap_Type.tp_weaklistoffset = offsetof(struct PyPetscLGMapObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_LGMap = &PyPetscLGMap_Type; + __pyx_vtabptr_8petsc4py_5PETSc_SF = &__pyx_vtable_8petsc4py_5PETSc_SF; + __pyx_vtable_8petsc4py_5PETSc_SF.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscSF_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscSF_Type) < 0) __PYX_ERR(39, 15, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscSF_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscSF_Type.tp_dictoffset && PyPetscSF_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscSF_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscSF_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_SF) < 0) __PYX_ERR(39, 15, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SF, (PyObject *)&PyPetscSF_Type) < 0) __PYX_ERR(39, 15, __pyx_L1_error) + if (PyPetscSF_Type.tp_weaklistoffset == 0) PyPetscSF_Type.tp_weaklistoffset = offsetof(struct PyPetscSFObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_SF = &PyPetscSF_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Vec = &__pyx_vtable_8petsc4py_5PETSc_Vec; + __pyx_vtable_8petsc4py_5PETSc_Vec.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscVec_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscVec_Type) < 0) __PYX_ERR(40, 28, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscVec_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscVec_Type.tp_dictoffset && PyPetscVec_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscVec_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscVec_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Vec) < 0) __PYX_ERR(40, 28, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Vec, (PyObject *)&PyPetscVec_Type) < 0) __PYX_ERR(40, 28, __pyx_L1_error) + if (PyPetscVec_Type.tp_weaklistoffset == 0) PyPetscVec_Type.tp_weaklistoffset = offsetof(struct PyPetscVecObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Vec = &PyPetscVec_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Space = &__pyx_vtable_8petsc4py_5PETSc_Space; + __pyx_vtable_8petsc4py_5PETSc_Space.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscSpace_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscSpace_Type) < 0) __PYX_ERR(63, 14, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscSpace_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscSpace_Type.tp_dictoffset && PyPetscSpace_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscSpace_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscSpace_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Space) < 0) __PYX_ERR(63, 14, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Space, (PyObject *)&PyPetscSpace_Type) < 0) __PYX_ERR(63, 14, __pyx_L1_error) + if (PyPetscSpace_Type.tp_weaklistoffset == 0) PyPetscSpace_Type.tp_weaklistoffset = offsetof(struct PyPetscSpaceObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Space = &PyPetscSpace_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DualSpace = &__pyx_vtable_8petsc4py_5PETSc_DualSpace; + __pyx_vtable_8petsc4py_5PETSc_DualSpace.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDualSpace_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDualSpace_Type) < 0) __PYX_ERR(63, 192, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDualSpace_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDualSpace_Type.tp_dictoffset && PyPetscDualSpace_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDualSpace_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDualSpace_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DualSpace) < 0) __PYX_ERR(63, 192, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DualSpace, (PyObject *)&PyPetscDualSpace_Type) < 0) __PYX_ERR(63, 192, __pyx_L1_error) + if (PyPetscDualSpace_Type.tp_weaklistoffset == 0) PyPetscDualSpace_Type.tp_weaklistoffset = offsetof(struct PyPetscDualSpaceObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DualSpace = &PyPetscDualSpace_Type; + __pyx_vtabptr_8petsc4py_5PETSc_FE = &__pyx_vtable_8petsc4py_5PETSc_FE; + __pyx_vtable_8petsc4py_5PETSc_FE.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscFE_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscFE_Type) < 0) __PYX_ERR(42, 10, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscFE_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscFE_Type.tp_dictoffset && PyPetscFE_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscFE_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscFE_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_FE) < 0) __PYX_ERR(42, 10, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_FE, (PyObject *)&PyPetscFE_Type) < 0) __PYX_ERR(42, 10, __pyx_L1_error) + if (PyPetscFE_Type.tp_weaklistoffset == 0) PyPetscFE_Type.tp_weaklistoffset = offsetof(struct PyPetscFEObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_FE = &PyPetscFE_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Quad = &__pyx_vtable_8petsc4py_5PETSc_Quad; + __pyx_vtable_8petsc4py_5PETSc_Quad.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscQuad_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscQuad_Type) < 0) __PYX_ERR(41, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscQuad_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscQuad_Type.tp_dictoffset && PyPetscQuad_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscQuad_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscQuad_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Quad) < 0) __PYX_ERR(41, 3, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Quad, (PyObject *)&PyPetscQuad_Type) < 0) __PYX_ERR(41, 3, __pyx_L1_error) + if (PyPetscQuad_Type.tp_weaklistoffset == 0) PyPetscQuad_Type.tp_weaklistoffset = offsetof(struct PyPetscQuadObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Quad = &PyPetscQuad_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Scatter = &__pyx_vtable_8petsc4py_5PETSc_Scatter; + __pyx_vtable_8petsc4py_5PETSc_Scatter.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscScatter_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscScatter_Type) < 0) __PYX_ERR(43, 15, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscScatter_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscScatter_Type.tp_dictoffset && PyPetscScatter_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscScatter_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscScatter_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Scatter) < 0) __PYX_ERR(43, 15, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Scatter, (PyObject *)&PyPetscScatter_Type) < 0) __PYX_ERR(43, 15, __pyx_L1_error) + if (PyPetscScatter_Type.tp_weaklistoffset == 0) PyPetscScatter_Type.tp_weaklistoffset = offsetof(struct PyPetscScatterObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Scatter = &PyPetscScatter_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Section = &__pyx_vtable_8petsc4py_5PETSc_Section; + __pyx_vtable_8petsc4py_5PETSc_Section.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscSection_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscSection_Type) < 0) __PYX_ERR(44, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscSection_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscSection_Type.tp_dictoffset && PyPetscSection_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscSection_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscSection_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Section) < 0) __PYX_ERR(44, 3, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Section, (PyObject *)&PyPetscSection_Type) < 0) __PYX_ERR(44, 3, __pyx_L1_error) + if (PyPetscSection_Type.tp_weaklistoffset == 0) PyPetscSection_Type.tp_weaklistoffset = offsetof(struct PyPetscSectionObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Section = &PyPetscSection_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Mat = &__pyx_vtable_8petsc4py_5PETSc_Mat; + __pyx_vtable_8petsc4py_5PETSc_Mat.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscMat_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscMat_Type) < 0) __PYX_ERR(45, 206, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscMat_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscMat_Type.tp_dictoffset && PyPetscMat_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscMat_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscMat_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Mat) < 0) __PYX_ERR(45, 206, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Mat, (PyObject *)&PyPetscMat_Type) < 0) __PYX_ERR(45, 206, __pyx_L1_error) + if (PyPetscMat_Type.tp_weaklistoffset == 0) PyPetscMat_Type.tp_weaklistoffset = offsetof(struct PyPetscMatObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Mat = &PyPetscMat_Type; + __pyx_vtabptr_8petsc4py_5PETSc_MatPartitioning = &__pyx_vtable_8petsc4py_5PETSc_MatPartitioning; + __pyx_vtable_8petsc4py_5PETSc_MatPartitioning.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscMatPartitioning_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscMatPartitioning_Type) < 0) __PYX_ERR(46, 15, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscMatPartitioning_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscMatPartitioning_Type.tp_dictoffset && PyPetscMatPartitioning_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscMatPartitioning_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscMatPartitioning_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_MatPartitioning) < 0) __PYX_ERR(46, 15, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_MatPartitioning, (PyObject *)&PyPetscMatPartitioning_Type) < 0) __PYX_ERR(46, 15, __pyx_L1_error) + if (PyPetscMatPartitioning_Type.tp_weaklistoffset == 0) PyPetscMatPartitioning_Type.tp_weaklistoffset = offsetof(struct PyPetscMatPartitioningObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_MatPartitioning = &PyPetscMatPartitioning_Type; + __pyx_vtabptr_8petsc4py_5PETSc_NullSpace = &__pyx_vtable_8petsc4py_5PETSc_NullSpace; + __pyx_vtable_8petsc4py_5PETSc_NullSpace.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscNullSpace_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscNullSpace_Type) < 0) __PYX_ERR(45, 2011, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscNullSpace_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscNullSpace_Type.tp_dictoffset && PyPetscNullSpace_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscNullSpace_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscNullSpace_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_NullSpace) < 0) __PYX_ERR(45, 2011, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_NullSpace, (PyObject *)&PyPetscNullSpace_Type) < 0) __PYX_ERR(45, 2011, __pyx_L1_error) + if (PyPetscNullSpace_Type.tp_weaklistoffset == 0) PyPetscNullSpace_Type.tp_weaklistoffset = offsetof(struct PyPetscNullSpaceObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_NullSpace = &PyPetscNullSpace_Type; + __pyx_vtabptr_8petsc4py_5PETSc_PC = &__pyx_vtable_8petsc4py_5PETSc_PC; + __pyx_vtable_8petsc4py_5PETSc_PC.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscPC_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscPC_Type) < 0) __PYX_ERR(47, 146, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscPC_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscPC_Type.tp_dictoffset && PyPetscPC_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscPC_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscPC_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_PC) < 0) __PYX_ERR(47, 146, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_PC, (PyObject *)&PyPetscPC_Type) < 0) __PYX_ERR(47, 146, __pyx_L1_error) + if (PyPetscPC_Type.tp_weaklistoffset == 0) PyPetscPC_Type.tp_weaklistoffset = offsetof(struct PyPetscPCObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_PC = &PyPetscPC_Type; + __pyx_vtabptr_8petsc4py_5PETSc_KSP = &__pyx_vtable_8petsc4py_5PETSc_KSP; + __pyx_vtable_8petsc4py_5PETSc_KSP.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscKSP_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscKSP_Type) < 0) __PYX_ERR(48, 94, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscKSP_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscKSP_Type.tp_dictoffset && PyPetscKSP_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscKSP_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscKSP_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_KSP) < 0) __PYX_ERR(48, 94, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_KSP, (PyObject *)&PyPetscKSP_Type) < 0) __PYX_ERR(48, 94, __pyx_L1_error) + if (PyPetscKSP_Type.tp_weaklistoffset == 0) PyPetscKSP_Type.tp_weaklistoffset = offsetof(struct PyPetscKSPObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_KSP = &PyPetscKSP_Type; + __pyx_vtabptr_8petsc4py_5PETSc_SNES = &__pyx_vtable_8petsc4py_5PETSc_SNES; + __pyx_vtable_8petsc4py_5PETSc_SNES.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscSNES_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscSNES_Type) < 0) __PYX_ERR(49, 65, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscSNES_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscSNES_Type.tp_dictoffset && PyPetscSNES_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscSNES_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscSNES_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_SNES) < 0) __PYX_ERR(49, 65, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_SNES, (PyObject *)&PyPetscSNES_Type) < 0) __PYX_ERR(49, 65, __pyx_L1_error) + if (PyPetscSNES_Type.tp_weaklistoffset == 0) PyPetscSNES_Type.tp_weaklistoffset = offsetof(struct PyPetscSNESObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_SNES = &PyPetscSNES_Type; + __pyx_vtabptr_8petsc4py_5PETSc_TS = &__pyx_vtable_8petsc4py_5PETSc_TS; + __pyx_vtable_8petsc4py_5PETSc_TS.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscTS_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscTS_Type) < 0) __PYX_ERR(50, 103, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscTS_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscTS_Type.tp_dictoffset && PyPetscTS_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscTS_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscTS_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_TS) < 0) __PYX_ERR(50, 103, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TS, (PyObject *)&PyPetscTS_Type) < 0) __PYX_ERR(50, 103, __pyx_L1_error) + if (PyPetscTS_Type.tp_weaklistoffset == 0) PyPetscTS_Type.tp_weaklistoffset = offsetof(struct PyPetscTSObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_TS = &PyPetscTS_Type; + __pyx_vtabptr_8petsc4py_5PETSc_TAO = &__pyx_vtable_8petsc4py_5PETSc_TAO; + __pyx_vtable_8petsc4py_5PETSc_TAO.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscTAO_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscTAO_Type) < 0) __PYX_ERR(51, 66, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscTAO_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscTAO_Type.tp_dictoffset && PyPetscTAO_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscTAO_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscTAO_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_TAO) < 0) __PYX_ERR(51, 66, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_TAO, (PyObject *)&PyPetscTAO_Type) < 0) __PYX_ERR(51, 66, __pyx_L1_error) + if (PyPetscTAO_Type.tp_weaklistoffset == 0) PyPetscTAO_Type.tp_weaklistoffset = offsetof(struct PyPetscTAOObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_TAO = &PyPetscTAO_Type; + __pyx_vtabptr_8petsc4py_5PETSc_AO = &__pyx_vtable_8petsc4py_5PETSc_AO; + __pyx_vtable_8petsc4py_5PETSc_AO.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscAO_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscAO_Type) < 0) __PYX_ERR(52, 11, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscAO_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscAO_Type.tp_dictoffset && PyPetscAO_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscAO_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscAO_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_AO) < 0) __PYX_ERR(52, 11, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AO, (PyObject *)&PyPetscAO_Type) < 0) __PYX_ERR(52, 11, __pyx_L1_error) + if (PyPetscAO_Type.tp_weaklistoffset == 0) PyPetscAO_Type.tp_weaklistoffset = offsetof(struct PyPetscAOObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_AO = &PyPetscAO_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DM = &__pyx_vtable_8petsc4py_5PETSc_DM; + __pyx_vtable_8petsc4py_5PETSc_DM.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDM_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDM_Type) < 0) __PYX_ERR(53, 46, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDM_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDM_Type.tp_dictoffset && PyPetscDM_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDM_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDM_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DM) < 0) __PYX_ERR(53, 46, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DM, (PyObject *)&PyPetscDM_Type) < 0) __PYX_ERR(53, 46, __pyx_L1_error) + if (PyPetscDM_Type.tp_weaklistoffset == 0) PyPetscDM_Type.tp_weaklistoffset = offsetof(struct PyPetscDMObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DM = &PyPetscDM_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DMPlexTransform = &__pyx_vtable_8petsc4py_5PETSc_DMPlexTransform; + __pyx_vtable_8petsc4py_5PETSc_DMPlexTransform.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDMPlexTransform_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDMPlexTransform_Type) < 0) __PYX_ERR(56, 1007, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDMPlexTransform_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDMPlexTransform_Type.tp_dictoffset && PyPetscDMPlexTransform_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDMPlexTransform_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDMPlexTransform_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMPlexTransform) < 0) __PYX_ERR(56, 1007, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMPlexTransform, (PyObject *)&PyPetscDMPlexTransform_Type) < 0) __PYX_ERR(56, 1007, __pyx_L1_error) + if (PyPetscDMPlexTransform_Type.tp_weaklistoffset == 0) PyPetscDMPlexTransform_Type.tp_weaklistoffset = offsetof(struct PyPetscDMPlexTransformObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMPlexTransform = &PyPetscDMPlexTransform_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DS = &__pyx_vtable_8petsc4py_5PETSc_DS; + __pyx_vtable_8petsc4py_5PETSc_DS.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDS_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDS_Type) < 0) __PYX_ERR(54, 8, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDS_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDS_Type.tp_dictoffset && PyPetscDS_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDS_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDS_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DS) < 0) __PYX_ERR(54, 8, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DS, (PyObject *)&PyPetscDS_Type) < 0) __PYX_ERR(54, 8, __pyx_L1_error) + if (PyPetscDS_Type.tp_weaklistoffset == 0) PyPetscDS_Type.tp_weaklistoffset = offsetof(struct PyPetscDSObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DS = &PyPetscDS_Type; + __pyx_vtabptr_8petsc4py_5PETSc_Partitioner = &__pyx_vtable_8petsc4py_5PETSc_Partitioner; + __pyx_vtable_8petsc4py_5PETSc_Partitioner.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscPartitioner_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscPartitioner_Type) < 0) __PYX_ERR(62, 14, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscPartitioner_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscPartitioner_Type.tp_dictoffset && PyPetscPartitioner_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscPartitioner_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscPartitioner_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_Partitioner) < 0) __PYX_ERR(62, 14, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Partitioner, (PyObject *)&PyPetscPartitioner_Type) < 0) __PYX_ERR(62, 14, __pyx_L1_error) + if (PyPetscPartitioner_Type.tp_weaklistoffset == 0) PyPetscPartitioner_Type.tp_weaklistoffset = offsetof(struct PyPetscPartitionerObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_Partitioner = &PyPetscPartitioner_Type; + __pyx_vtabptr_8petsc4py_5PETSc_DMLabel = &__pyx_vtable_8petsc4py_5PETSc_DMLabel; + __pyx_vtable_8petsc4py_5PETSc_DMLabel.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Object; + PyPetscDMLabel_Type.tp_base = __pyx_ptype_8petsc4py_5PETSc_Object; + if (PyType_Ready(&PyPetscDMLabel_Type) < 0) __PYX_ERR(60, 2, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + PyPetscDMLabel_Type.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!PyPetscDMLabel_Type.tp_dictoffset && PyPetscDMLabel_Type.tp_getattro == PyObject_GenericGetAttr)) { + PyPetscDMLabel_Type.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(PyPetscDMLabel_Type.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMLabel) < 0) __PYX_ERR(60, 2, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMLabel, (PyObject *)&PyPetscDMLabel_Type) < 0) __PYX_ERR(60, 2, __pyx_L1_error) + if (PyPetscDMLabel_Type.tp_weaklistoffset == 0) PyPetscDMLabel_Type.tp_weaklistoffset = offsetof(struct PyPetscDMLabelObject, __pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMLabel = &PyPetscDMLabel_Type; + __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(13, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_8petsc4py_5PETSc_dtype = __Pyx_ImportType_0_29_36(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(PyArray_Descr),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_dtype) __PYX_ERR(13, 9, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_ndarray = __Pyx_ImportType_0_29_36(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_0_29_36(PyArrayObject),__Pyx_ImportType_CheckSize_Warn_0_29_36); if (!__pyx_ptype_8petsc4py_5PETSc_ndarray) __PYX_ERR(13, 12, __pyx_L1_error) + __pyx_vtabptr_8petsc4py_5PETSc__IS_buffer = &__pyx_vtable_8petsc4py_5PETSc__IS_buffer; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.acquire = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquire; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.release = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_release; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.acquirebuffer = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, Py_buffer *, int))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_acquirebuffer; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.releasebuffer = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, Py_buffer *))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_releasebuffer; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.enter = (PyObject *(*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_enter; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.exit = (PyObject *(*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_exit; + __pyx_vtable_8petsc4py_5PETSc__IS_buffer.getbuffer = (Py_ssize_t (*)(struct __pyx_obj_8petsc4py_5PETSc__IS_buffer *, void **))__pyx_f_8petsc4py_5PETSc_10_IS_buffer_getbuffer; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__IS_buffer) < 0) __PYX_ERR(6, 111, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__IS_buffer.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__IS_buffer.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__IS_buffer.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__IS_buffer.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__IS_buffer.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__IS_buffer) < 0) __PYX_ERR(6, 111, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_IS_buffer, (PyObject *)&__pyx_type_8petsc4py_5PETSc__IS_buffer) < 0) __PYX_ERR(6, 111, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__IS_buffer = &__pyx_type_8petsc4py_5PETSc__IS_buffer; + __pyx_vtabptr_8petsc4py_5PETSc__Vec_buffer = &__pyx_vtable_8petsc4py_5PETSc__Vec_buffer; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.acquire = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquire; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.release = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_release; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.acquirebuffer = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, Py_buffer *, int))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_acquirebuffer; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.releasebuffer = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, Py_buffer *))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_releasebuffer; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.enter = (PyObject *(*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_enter; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.exit = (PyObject *(*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_exit; + __pyx_vtable_8petsc4py_5PETSc__Vec_buffer.getbuffer = (Py_ssize_t (*)(struct __pyx_obj_8petsc4py_5PETSc__Vec_buffer *, void **))__pyx_f_8petsc4py_5PETSc_11_Vec_buffer_getbuffer; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__Vec_buffer) < 0) __PYX_ERR(7, 489, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__Vec_buffer.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__Vec_buffer.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__Vec_buffer.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__Vec_buffer.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__Vec_buffer.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__Vec_buffer) < 0) __PYX_ERR(7, 489, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Vec_buffer, (PyObject *)&__pyx_type_8petsc4py_5PETSc__Vec_buffer) < 0) __PYX_ERR(7, 489, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__Vec_buffer = &__pyx_type_8petsc4py_5PETSc__Vec_buffer; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__Vec_LocalForm) < 0) __PYX_ERR(7, 609, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__Vec_LocalForm.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__Vec_LocalForm.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__Vec_LocalForm.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__Vec_LocalForm.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Vec_LocalForm, (PyObject *)&__pyx_type_8petsc4py_5PETSc__Vec_LocalForm) < 0) __PYX_ERR(7, 609, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__Vec_LocalForm = &__pyx_type_8petsc4py_5PETSc__Vec_LocalForm; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__Mat_Stencil) < 0) __PYX_ERR(20, 1138, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__Mat_Stencil.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__Mat_Stencil.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__Mat_Stencil.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__Mat_Stencil.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Mat_Stencil, (PyObject *)&__pyx_type_8petsc4py_5PETSc__Mat_Stencil) < 0) __PYX_ERR(20, 1138, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__Mat_Stencil = &__pyx_type_8petsc4py_5PETSc__Mat_Stencil; + __pyx_vtabptr_8petsc4py_5PETSc__DMDA_Vec_array = &__pyx_vtable_8petsc4py_5PETSc__DMDA_Vec_array; + __pyx_vtable_8petsc4py_5PETSc__DMDA_Vec_array.acquire = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *))__pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_acquire; + __pyx_vtable_8petsc4py_5PETSc__DMDA_Vec_array.release = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__DMDA_Vec_array *))__pyx_f_8petsc4py_5PETSc_15_DMDA_Vec_array_release; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__DMDA_Vec_array) < 0) __PYX_ERR(9, 198, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__DMDA_Vec_array.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__DMDA_Vec_array.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__DMDA_Vec_array.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__DMDA_Vec_array.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__DMDA_Vec_array.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__DMDA_Vec_array) < 0) __PYX_ERR(9, 198, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMDA_Vec_array, (PyObject *)&__pyx_type_8petsc4py_5PETSc__DMDA_Vec_array) < 0) __PYX_ERR(9, 198, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__DMDA_Vec_array = &__pyx_type_8petsc4py_5PETSc__DMDA_Vec_array; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__DMComposite_access) < 0) __PYX_ERR(28, 17, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__DMComposite_access.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__DMComposite_access.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__DMComposite_access.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__DMComposite_access.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMComposite_access, (PyObject *)&__pyx_type_8petsc4py_5PETSc__DMComposite_access) < 0) __PYX_ERR(28, 17, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__DMComposite_access = &__pyx_type_8petsc4py_5PETSc__DMComposite_access; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_Options) < 0) __PYX_ERR(31, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_Options.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_Options.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_Options.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_Options.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Options, (PyObject *)&__pyx_type_8petsc4py_5PETSc_Options) < 0) __PYX_ERR(31, 3, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_Options = &__pyx_type_8petsc4py_5PETSc_Options; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_Sys) < 0) __PYX_ERR(32, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_Sys.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_Sys.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_Sys.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_Sys.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Sys, (PyObject *)&__pyx_type_8petsc4py_5PETSc_Sys) < 0) __PYX_ERR(32, 3, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_Sys = &__pyx_type_8petsc4py_5PETSc_Sys; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_Log) < 0) __PYX_ERR(33, 5, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_Log.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_Log.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_Log.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_Log.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Log, (PyObject *)&__pyx_type_8petsc4py_5PETSc_Log) < 0) __PYX_ERR(33, 5, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_Log = &__pyx_type_8petsc4py_5PETSc_Log; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_LogStage) < 0) __PYX_ERR(33, 129, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_LogStage.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_LogStage.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_LogStage.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_LogStage.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LogStage, (PyObject *)&__pyx_type_8petsc4py_5PETSc_LogStage) < 0) __PYX_ERR(33, 129, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_LogStage = &__pyx_type_8petsc4py_5PETSc_LogStage; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_LogClass) < 0) __PYX_ERR(33, 225, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_LogClass.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_LogClass.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_LogClass.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_LogClass.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LogClass, (PyObject *)&__pyx_type_8petsc4py_5PETSc_LogClass) < 0) __PYX_ERR(33, 225, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_LogClass = &__pyx_type_8petsc4py_5PETSc_LogClass; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_LogEvent) < 0) __PYX_ERR(33, 287, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_LogEvent.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_LogEvent.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_LogEvent.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_LogEvent.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_LogEvent, (PyObject *)&__pyx_type_8petsc4py_5PETSc_LogEvent) < 0) __PYX_ERR(33, 287, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_LogEvent = &__pyx_type_8petsc4py_5PETSc_LogEvent; + __pyx_vtabptr_8petsc4py_5PETSc_ViewerHDF5 = &__pyx_vtable_8petsc4py_5PETSc_ViewerHDF5; + __pyx_vtable_8petsc4py_5PETSc_ViewerHDF5.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_Viewer; + __pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_base = __pyx_ptype_8petsc4py_5PETSc_Viewer; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_ViewerHDF5) < 0) __PYX_ERR(36, 374, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_ViewerHDF5) < 0) __PYX_ERR(36, 374, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_ViewerHDF5, (PyObject *)&__pyx_type_8petsc4py_5PETSc_ViewerHDF5) < 0) __PYX_ERR(36, 374, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_ViewerHDF5.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_ViewerHDF5, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_ViewerHDF5 = &__pyx_type_8petsc4py_5PETSc_ViewerHDF5; + __pyx_vtabptr_8petsc4py_5PETSc_DMDA = &__pyx_vtable_8petsc4py_5PETSc_DMDA; + __pyx_vtable_8petsc4py_5PETSc_DMDA.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMDA.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMDA) < 0) __PYX_ERR(55, 17, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMDA.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMDA.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMDA.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMDA.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMDA.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMDA) < 0) __PYX_ERR(55, 17, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMDA, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMDA) < 0) __PYX_ERR(55, 17, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMDA.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMDA.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMDA, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMDA = &__pyx_type_8petsc4py_5PETSc_DMDA; + __pyx_vtabptr_8petsc4py_5PETSc_DMPlex = &__pyx_vtable_8petsc4py_5PETSc_DMPlex; + __pyx_vtable_8petsc4py_5PETSc_DMPlex.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMPlex.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMPlex) < 0) __PYX_ERR(56, 10, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMPlex.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMPlex.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMPlex.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMPlex.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMPlex.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMPlex) < 0) __PYX_ERR(56, 10, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMPlex, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMPlex) < 0) __PYX_ERR(56, 10, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMPlex.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMPlex.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMPlex, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMPlex = &__pyx_type_8petsc4py_5PETSc_DMPlex; + __pyx_vtabptr_8petsc4py_5PETSc_DMStag = &__pyx_vtable_8petsc4py_5PETSc_DMStag; + __pyx_vtable_8petsc4py_5PETSc_DMStag.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMStag.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMStag) < 0) __PYX_ERR(57, 40, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMStag.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMStag.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMStag.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMStag.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMStag.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMStag) < 0) __PYX_ERR(57, 40, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMStag, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMStag) < 0) __PYX_ERR(57, 40, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMStag.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMStag.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMStag, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMStag = &__pyx_type_8petsc4py_5PETSc_DMStag; + __pyx_vtabptr_8petsc4py_5PETSc_DMComposite = &__pyx_vtable_8petsc4py_5PETSc_DMComposite; + __pyx_vtable_8petsc4py_5PETSc_DMComposite.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMComposite.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMComposite) < 0) __PYX_ERR(58, 3, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMComposite.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMComposite.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMComposite.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMComposite.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMComposite.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMComposite) < 0) __PYX_ERR(58, 3, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMComposite, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMComposite) < 0) __PYX_ERR(58, 3, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMComposite.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMComposite.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMComposite, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMComposite = &__pyx_type_8petsc4py_5PETSc_DMComposite; + __pyx_vtabptr_8petsc4py_5PETSc_DMShell = &__pyx_vtable_8petsc4py_5PETSc_DMShell; + __pyx_vtable_8petsc4py_5PETSc_DMShell.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMShell.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMShell) < 0) __PYX_ERR(59, 1, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMShell.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMShell.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMShell.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMShell.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMShell.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMShell) < 0) __PYX_ERR(59, 1, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMShell, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMShell) < 0) __PYX_ERR(59, 1, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMShell.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMShell.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMShell, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMShell = &__pyx_type_8petsc4py_5PETSc_DMShell; + __pyx_vtabptr_8petsc4py_5PETSc_DMSwarm = &__pyx_vtable_8petsc4py_5PETSc_DMSwarm; + __pyx_vtable_8petsc4py_5PETSc_DMSwarm.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc_DM; + __pyx_type_8petsc4py_5PETSc_DMSwarm.tp_base = __pyx_ptype_8petsc4py_5PETSc_DM; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMSwarm) < 0) __PYX_ERR(61, 25, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMSwarm.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMSwarm.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMSwarm.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMSwarm.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc_DMSwarm.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc_DMSwarm) < 0) __PYX_ERR(61, 25, __pyx_L1_error) + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMSwarm, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMSwarm) < 0) __PYX_ERR(61, 25, __pyx_L1_error) + if (__pyx_type_8petsc4py_5PETSc_DMSwarm.tp_weaklistoffset == 0) __pyx_type_8petsc4py_5PETSc_DMSwarm.tp_weaklistoffset = offsetof(struct __pyx_obj_8petsc4py_5PETSc_DMSwarm, __pyx_base.__pyx_base.__weakref__); + __pyx_ptype_8petsc4py_5PETSc_DMSwarm = &__pyx_type_8petsc4py_5PETSc_DMSwarm; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc_DMInterpolation) < 0) __PYX_ERR(64, 2, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc_DMInterpolation.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc_DMInterpolation.tp_dictoffset && __pyx_type_8petsc4py_5PETSc_DMInterpolation.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc_DMInterpolation.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_DMInterpolation, (PyObject *)&__pyx_type_8petsc4py_5PETSc_DMInterpolation) < 0) __PYX_ERR(64, 2, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc_DMInterpolation = &__pyx_type_8petsc4py_5PETSc_DMInterpolation; + __pyx_vtabptr_8petsc4py_5PETSc__PyObj = &__pyx_vtable_8petsc4py_5PETSc__PyObj; + __pyx_vtable_8petsc4py_5PETSc__PyObj.setcontext = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, void *, struct PyPetscObjectObject *))__pyx_f_8petsc4py_5PETSc_6_PyObj_setcontext; + __pyx_vtable_8petsc4py_5PETSc__PyObj.getcontext = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, void **))__pyx_f_8petsc4py_5PETSc_6_PyObj_getcontext; + __pyx_vtable_8petsc4py_5PETSc__PyObj.setname = (int (*)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *, char *))__pyx_f_8petsc4py_5PETSc_6_PyObj_setname; + __pyx_vtable_8petsc4py_5PETSc__PyObj.getname = (char *(*)(struct __pyx_obj_8petsc4py_5PETSc__PyObj *))__pyx_f_8petsc4py_5PETSc_6_PyObj_getname; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyObj) < 0) __PYX_ERR(11, 172, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyObj.tp_print = 0; + #endif + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyObj.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyObj) < 0) __PYX_ERR(11, 172, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyObj = &__pyx_type_8petsc4py_5PETSc__PyObj; + __pyx_vtabptr_8petsc4py_5PETSc__PyMat = &__pyx_vtable_8petsc4py_5PETSc__PyMat; + __pyx_vtable_8petsc4py_5PETSc__PyMat.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PyMat.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyMat) < 0) __PYX_ERR(11, 343, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyMat.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PyMat.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PyMat.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PyMat.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyMat.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyMat) < 0) __PYX_ERR(11, 343, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyMat = &__pyx_type_8petsc4py_5PETSc__PyMat; + __pyx_vtabptr_8petsc4py_5PETSc__PyPC = &__pyx_vtable_8petsc4py_5PETSc__PyPC; + __pyx_vtable_8petsc4py_5PETSc__PyPC.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PyPC.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyPC) < 0) __PYX_ERR(11, 1251, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyPC.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PyPC.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PyPC.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PyPC.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyPC.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyPC) < 0) __PYX_ERR(11, 1251, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyPC = &__pyx_type_8petsc4py_5PETSc__PyPC; + __pyx_vtabptr_8petsc4py_5PETSc__PyKSP = &__pyx_vtable_8petsc4py_5PETSc__PyKSP; + __pyx_vtable_8petsc4py_5PETSc__PyKSP.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PyKSP.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyKSP) < 0) __PYX_ERR(11, 1548, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyKSP.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PyKSP.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PyKSP.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PyKSP.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyKSP.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyKSP) < 0) __PYX_ERR(11, 1548, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyKSP = &__pyx_type_8petsc4py_5PETSc__PyKSP; + __pyx_vtabptr_8petsc4py_5PETSc__PySNES = &__pyx_vtable_8petsc4py_5PETSc__PySNES; + __pyx_vtable_8petsc4py_5PETSc__PySNES.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PySNES.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PySNES) < 0) __PYX_ERR(11, 1910, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PySNES.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PySNES.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PySNES.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PySNES.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PySNES.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PySNES) < 0) __PYX_ERR(11, 1910, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PySNES = &__pyx_type_8petsc4py_5PETSc__PySNES; + __pyx_vtabptr_8petsc4py_5PETSc__PyTS = &__pyx_vtable_8petsc4py_5PETSc__PyTS; + __pyx_vtable_8petsc4py_5PETSc__PyTS.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PyTS.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyTS) < 0) __PYX_ERR(11, 2261, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyTS.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PyTS.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PyTS.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PyTS.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyTS.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyTS) < 0) __PYX_ERR(11, 2261, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyTS = &__pyx_type_8petsc4py_5PETSc__PyTS; + __pyx_vtabptr_8petsc4py_5PETSc__PyTao = &__pyx_vtable_8petsc4py_5PETSc__PyTao; + __pyx_vtable_8petsc4py_5PETSc__PyTao.__pyx_base = *__pyx_vtabptr_8petsc4py_5PETSc__PyObj; + __pyx_type_8petsc4py_5PETSc__PyTao.tp_base = __pyx_ptype_8petsc4py_5PETSc__PyObj; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc__PyTao) < 0) __PYX_ERR(11, 2682, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc__PyTao.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc__PyTao.tp_dictoffset && __pyx_type_8petsc4py_5PETSc__PyTao.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc__PyTao.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type_8petsc4py_5PETSc__PyTao.tp_dict, __pyx_vtabptr_8petsc4py_5PETSc__PyTao) < 0) __PYX_ERR(11, 2682, __pyx_L1_error) + __pyx_ptype_8petsc4py_5PETSc__PyTao = &__pyx_type_8petsc4py_5PETSc__PyTao; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator) < 0) __PYX_ERR(33, 92, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator.tp_dictoffset && __pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; + } + __pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator = &__pyx_type_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator; + if (PyType_Ready(&__pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator) < 0) __PYX_ERR(33, 108, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator.tp_dictoffset && __pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator.tp_getattro = __Pyx_PyObject_GenericGetAttrNoDict; + } + __pyx_ptype_8petsc4py_5PETSc___pyx_scope_struct_1_decorator = &__pyx_type_8petsc4py_5PETSc___pyx_scope_struct_1_decorator; + __pyx_vtabptr_array = &__pyx_vtable_array; + __pyx_vtable_array.get_memview = (PyObject *(*)(struct __pyx_array_obj *))__pyx_array_get_memview; + if (PyType_Ready(&__pyx_type___pyx_array) < 0) __PYX_ERR(66, 106, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_array.tp_print = 0; + #endif + if (__Pyx_SetVtable(__pyx_type___pyx_array.tp_dict, __pyx_vtabptr_array) < 0) __PYX_ERR(66, 106, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_array) < 0) __PYX_ERR(66, 106, __pyx_L1_error) + __pyx_array_type = &__pyx_type___pyx_array; + if (PyType_Ready(&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(66, 280, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_MemviewEnum.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_MemviewEnum.tp_dictoffset && __pyx_type___pyx_MemviewEnum.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_MemviewEnum.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_MemviewEnum) < 0) __PYX_ERR(66, 280, __pyx_L1_error) + __pyx_MemviewEnum_type = &__pyx_type___pyx_MemviewEnum; + __pyx_vtabptr_memoryview = &__pyx_vtable_memoryview; + __pyx_vtable_memoryview.get_item_pointer = (char *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_get_item_pointer; + __pyx_vtable_memoryview.is_slice = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_is_slice; + __pyx_vtable_memoryview.setitem_slice_assignment = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_slice_assignment; + __pyx_vtable_memoryview.setitem_slice_assign_scalar = (PyObject *(*)(struct __pyx_memoryview_obj *, struct __pyx_memoryview_obj *, PyObject *))__pyx_memoryview_setitem_slice_assign_scalar; + __pyx_vtable_memoryview.setitem_indexed = (PyObject *(*)(struct __pyx_memoryview_obj *, PyObject *, PyObject *))__pyx_memoryview_setitem_indexed; + __pyx_vtable_memoryview.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryview_convert_item_to_object; + __pyx_vtable_memoryview.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryview_assign_item_from_object; + if (PyType_Ready(&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(66, 331, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_memoryview.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryview.tp_dictoffset && __pyx_type___pyx_memoryview.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryview.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryview.tp_dict, __pyx_vtabptr_memoryview) < 0) __PYX_ERR(66, 331, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryview) < 0) __PYX_ERR(66, 331, __pyx_L1_error) + __pyx_memoryview_type = &__pyx_type___pyx_memoryview; + __pyx_vtabptr__memoryviewslice = &__pyx_vtable__memoryviewslice; + __pyx_vtable__memoryviewslice.__pyx_base = *__pyx_vtabptr_memoryview; + __pyx_vtable__memoryviewslice.__pyx_base.convert_item_to_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *))__pyx_memoryviewslice_convert_item_to_object; + __pyx_vtable__memoryviewslice.__pyx_base.assign_item_from_object = (PyObject *(*)(struct __pyx_memoryview_obj *, char *, PyObject *))__pyx_memoryviewslice_assign_item_from_object; + __pyx_type___pyx_memoryviewslice.tp_base = __pyx_memoryview_type; + if (PyType_Ready(&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(66, 967, __pyx_L1_error) + #if PY_VERSION_HEX < 0x030800B1 + __pyx_type___pyx_memoryviewslice.tp_print = 0; + #endif + if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type___pyx_memoryviewslice.tp_dictoffset && __pyx_type___pyx_memoryviewslice.tp_getattro == PyObject_GenericGetAttr)) { + __pyx_type___pyx_memoryviewslice.tp_getattro = __Pyx_PyObject_GenericGetAttr; + } + if (__Pyx_SetVtable(__pyx_type___pyx_memoryviewslice.tp_dict, __pyx_vtabptr__memoryviewslice) < 0) __PYX_ERR(66, 967, __pyx_L1_error) + if (__Pyx_setup_reduce((PyObject*)&__pyx_type___pyx_memoryviewslice) < 0) __PYX_ERR(66, 967, __pyx_L1_error) + __pyx_memoryviewslice_type = &__pyx_type___pyx_memoryviewslice; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#ifndef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#elif PY_MAJOR_VERSION < 3 +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" void +#else +#define __Pyx_PyMODINIT_FUNC void +#endif +#else +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyObject * +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC initPETSc(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC initPETSc(void) +#else +__Pyx_PyMODINIT_FUNC PyInit_PETSc(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit_PETSc(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { + result = PyDict_SetItemString(moddict, to_name, value); + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec_PETSc(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + PyObject *__pyx_t_1 = NULL; + int __pyx_t_2; + PyObject *__pyx_t_3 = NULL; + PyObject *__pyx_t_4 = NULL; + PyObject *__pyx_t_5 = NULL; + PyObject *__pyx_t_6 = NULL; + PyObject *__pyx_t_7 = NULL; + PyObject *__pyx_t_8 = NULL; + static PyThread_type_lock __pyx_t_9[8]; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module 'PETSc' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit_PETSc(void)", 0); + if (__Pyx_check_binary_version() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(21, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(21, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + PyEval_InitThreads(); + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("PETSc", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + #endif + if (unlikely(!__pyx_m)) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(21, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(21, 1, __pyx_L1_error) + Py_INCREF(__pyx_b); + __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(21, 1, __pyx_L1_error) + Py_INCREF(__pyx_cython_runtime); + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(21, 1, __pyx_L1_error) + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitGlobals() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_petsc4py__PETSc) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(21, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(21, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "petsc4py.PETSc")) { + if (unlikely(PyDict_SetItemString(modules, "petsc4py.PETSc", __pyx_m) < 0)) __PYX_ERR(21, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(21, 1, __pyx_L1_error) + if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(21, 1, __pyx_L1_error) + (void)__Pyx_modinit_type_import_code(); + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(21, 1, __pyx_L1_error) + #endif + + /* "petsc4py/PETSc/PETSc.pyx":52 + * # -------------- + * + * cdef object PetscError = PyExc_RuntimeError # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode SETERR(PetscErrorCode ierr) with gil: + */ + __pyx_t_1 = ((PyObject *)PyExc_RuntimeError); + __Pyx_INCREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_PetscError); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_PetscError, __pyx_t_1); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":146 + * include "arraynpy.pxi" + * + * import_array() # <<<<<<<<<<<<<< + * + * IntType = PyArray_TypeObjectFromType(NPY_PETSC_INT) + */ + __pyx_t_2 = _import_array(); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(12, 146, __pyx_L1_error) + + /* "petsc4py/PETSc/PETSc.pyx":148 + * import_array() + * + * IntType = PyArray_TypeObjectFromType(NPY_PETSC_INT) # <<<<<<<<<<<<<< + * RealType = PyArray_TypeObjectFromType(NPY_PETSC_REAL) + * ScalarType = PyArray_TypeObjectFromType(NPY_PETSC_SCALAR) + */ + __pyx_t_1 = PyArray_TypeObjectFromType(NPY_PETSC_INT); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_IntType, __pyx_t_1) < 0) __PYX_ERR(12, 148, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":149 + * + * IntType = PyArray_TypeObjectFromType(NPY_PETSC_INT) + * RealType = PyArray_TypeObjectFromType(NPY_PETSC_REAL) # <<<<<<<<<<<<<< + * ScalarType = PyArray_TypeObjectFromType(NPY_PETSC_SCALAR) + * ComplexType = PyArray_TypeObjectFromType(NPY_PETSC_COMPLEX) + */ + __pyx_t_1 = PyArray_TypeObjectFromType(NPY_PETSC_REAL); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RealType, __pyx_t_1) < 0) __PYX_ERR(12, 149, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":150 + * IntType = PyArray_TypeObjectFromType(NPY_PETSC_INT) + * RealType = PyArray_TypeObjectFromType(NPY_PETSC_REAL) + * ScalarType = PyArray_TypeObjectFromType(NPY_PETSC_SCALAR) # <<<<<<<<<<<<<< + * ComplexType = PyArray_TypeObjectFromType(NPY_PETSC_COMPLEX) + * + */ + __pyx_t_1 = PyArray_TypeObjectFromType(NPY_PETSC_SCALAR); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScalarType, __pyx_t_1) < 0) __PYX_ERR(12, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":151 + * RealType = PyArray_TypeObjectFromType(NPY_PETSC_REAL) + * ScalarType = PyArray_TypeObjectFromType(NPY_PETSC_SCALAR) + * ComplexType = PyArray_TypeObjectFromType(NPY_PETSC_COMPLEX) # <<<<<<<<<<<<<< + * + * include "dlpack.pxi" + */ + __pyx_t_1 = PyArray_TypeObjectFromType(NPY_PETSC_COMPLEX); if (unlikely(!__pyx_t_1)) __PYX_ERR(12, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ComplexType, __pyx_t_1) < 0) __PYX_ERR(12, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/petscpyappctx.pxi":1 + * cdef set appctx_registry = set() # <<<<<<<<<<<<<< + * + * cdef inline object registerAppCtx(void *appctx): + */ + __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(30, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_appctx_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_appctx_registry, ((PyObject*)__pyx_t_1)); + __Pyx_GIVEREF(__pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":199 + * # -------------------------------------------------------------------- + * + * __doc__ = u""" # <<<<<<<<<<<<<< + * Portable, Extensible Toolkit for Scientific Computation + * """ + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_doc, __pyx_kp_u_Portable_Extensible_Toolkit_for) < 0) __PYX_ERR(12, 199, __pyx_L1_error) + + /* "petsc4py/PETSc/Const.pyx":3 + * # -------------------------------------------------------------------- + * + * DECIDE = PETSC_DECIDE # <<<<<<<<<<<<<< + * DEFAULT = PETSC_DEFAULT + * DETERMINE = PETSC_DETERMINE + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DECIDE, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":4 + * + * DECIDE = PETSC_DECIDE + * DEFAULT = PETSC_DEFAULT # <<<<<<<<<<<<<< + * DETERMINE = PETSC_DETERMINE + * + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PETSC_DEFAULT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEFAULT, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":5 + * DECIDE = PETSC_DECIDE + * DEFAULT = PETSC_DEFAULT + * DETERMINE = PETSC_DETERMINE # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __Pyx_PyInt_From_int(PETSC_DETERMINE); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DETERMINE, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":9 + * # -------------------------------------------------------------------- + * + * INFINITY = toReal(PETSC_INFINITY) # <<<<<<<<<<<<<< + * NINFINITY = toReal(PETSC_NINFINITY) + * PINFINITY = toReal(PETSC_INFINITY) + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(PETSC_INFINITY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INFINITY, __pyx_t_1) < 0) __PYX_ERR(0, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":10 + * + * INFINITY = toReal(PETSC_INFINITY) + * NINFINITY = toReal(PETSC_NINFINITY) # <<<<<<<<<<<<<< + * PINFINITY = toReal(PETSC_INFINITY) + * + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(PETSC_NINFINITY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NINFINITY, __pyx_t_1) < 0) __PYX_ERR(0, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":11 + * INFINITY = toReal(PETSC_INFINITY) + * NINFINITY = toReal(PETSC_NINFINITY) + * PINFINITY = toReal(PETSC_INFINITY) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_1 = __pyx_f_8petsc4py_5PETSc_toReal(PETSC_INFINITY); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PINFINITY, __pyx_t_1) < 0) __PYX_ERR(0, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":15 + * # -------------------------------------------------------------------- + * + * class InsertMode(object): # <<<<<<<<<<<<<< + * # native + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__80); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__80, __pyx_n_s_InsertMode, __pyx_n_s_InsertMode, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Const.pyx":17 + * class InsertMode(object): + * # native + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES # <<<<<<<<<<<<<< + * INSERT_VALUES = PETSC_INSERT_VALUES + * ADD_VALUES = PETSC_ADD_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(NOT_SET_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NOT_SET_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":18 + * # native + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES + * INSERT_VALUES = PETSC_INSERT_VALUES # <<<<<<<<<<<<<< + * ADD_VALUES = PETSC_ADD_VALUES + * MAX_VALUES = PETSC_MAX_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(INSERT_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":19 + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES + * INSERT_VALUES = PETSC_INSERT_VALUES + * ADD_VALUES = PETSC_ADD_VALUES # <<<<<<<<<<<<<< + * MAX_VALUES = PETSC_MAX_VALUES + * INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(ADD_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":20 + * INSERT_VALUES = PETSC_INSERT_VALUES + * ADD_VALUES = PETSC_ADD_VALUES + * MAX_VALUES = PETSC_MAX_VALUES # <<<<<<<<<<<<<< + * INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES + * ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(MAX_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_MAX_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":21 + * ADD_VALUES = PETSC_ADD_VALUES + * MAX_VALUES = PETSC_MAX_VALUES + * INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES # <<<<<<<<<<<<<< + * ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES + * INSERT_BC_VALUES = PETSC_INSERT_BC_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(INSERT_ALL_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT_ALL_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":22 + * MAX_VALUES = PETSC_MAX_VALUES + * INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES + * ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES # <<<<<<<<<<<<<< + * INSERT_BC_VALUES = PETSC_INSERT_BC_VALUES + * ADD_BC_VALUES = PETSC_ADD_BC_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(ADD_ALL_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD_ALL_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":23 + * INSERT_ALL_VALUES = PETSC_INSERT_ALL_VALUES + * ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES + * INSERT_BC_VALUES = PETSC_INSERT_BC_VALUES # <<<<<<<<<<<<<< + * ADD_BC_VALUES = PETSC_ADD_BC_VALUES + * # aliases + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(INSERT_BC_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT_BC_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":24 + * ADD_ALL_VALUES = PETSC_ADD_ALL_VALUES + * INSERT_BC_VALUES = PETSC_INSERT_BC_VALUES + * ADD_BC_VALUES = PETSC_ADD_BC_VALUES # <<<<<<<<<<<<<< + * # aliases + * INSERT = INSERT_VALUES + */ + __pyx_t_4 = __Pyx_PyInt_From_InsertMode(ADD_BC_VALUES); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD_BC_VALUES, __pyx_t_4) < 0) __PYX_ERR(0, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":26 + * ADD_BC_VALUES = PETSC_ADD_BC_VALUES + * # aliases + * INSERT = INSERT_VALUES # <<<<<<<<<<<<<< + * ADD = ADD_VALUES + * MAX = MAX_VALUES + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_INSERT_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_INSERT_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT, __pyx_t_4) < 0) __PYX_ERR(0, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":27 + * # aliases + * INSERT = INSERT_VALUES + * ADD = ADD_VALUES # <<<<<<<<<<<<<< + * MAX = MAX_VALUES + * INSERT_ALL = INSERT_ALL_VALUES + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_ADD_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADD_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(0, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":28 + * INSERT = INSERT_VALUES + * ADD = ADD_VALUES + * MAX = MAX_VALUES # <<<<<<<<<<<<<< + * INSERT_ALL = INSERT_ALL_VALUES + * ADD_ALL = ADD_ALL_VALUES + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_MAX_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_MAX_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":29 + * ADD = ADD_VALUES + * MAX = MAX_VALUES + * INSERT_ALL = INSERT_ALL_VALUES # <<<<<<<<<<<<<< + * ADD_ALL = ADD_ALL_VALUES + * INSERT_BC = INSERT_BC_VALUES + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_INSERT_ALL_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_INSERT_ALL_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT_ALL, __pyx_t_4) < 0) __PYX_ERR(0, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":30 + * MAX = MAX_VALUES + * INSERT_ALL = INSERT_ALL_VALUES + * ADD_ALL = ADD_ALL_VALUES # <<<<<<<<<<<<<< + * INSERT_BC = INSERT_BC_VALUES + * ADD_BC = ADD_BC_VALUES + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_ADD_ALL_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADD_ALL_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD_ALL, __pyx_t_4) < 0) __PYX_ERR(0, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":31 + * INSERT_ALL = INSERT_ALL_VALUES + * ADD_ALL = ADD_ALL_VALUES + * INSERT_BC = INSERT_BC_VALUES # <<<<<<<<<<<<<< + * ADD_BC = ADD_BC_VALUES + * + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_INSERT_BC_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_INSERT_BC_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INSERT_BC, __pyx_t_4) < 0) __PYX_ERR(0, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":32 + * ADD_ALL = ADD_ALL_VALUES + * INSERT_BC = INSERT_BC_VALUES + * ADD_BC = ADD_BC_VALUES # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_ADD_BC_VALUES); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ADD_BC_VALUES); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_ADD_BC, __pyx_t_4) < 0) __PYX_ERR(0, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":15 + * # -------------------------------------------------------------------- + * + * class InsertMode(object): # <<<<<<<<<<<<<< + * # native + * NOT_SET_VALUES = PETSC_NOT_SET_VALUES + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_InsertMode, __pyx_tuple__80, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_InsertMode, __pyx_t_4) < 0) __PYX_ERR(0, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":36 + * # -------------------------------------------------------------------- + * + * class ScatterMode(object): # <<<<<<<<<<<<<< + * # native + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__81); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__81, __pyx_n_s_ScatterMode, __pyx_n_s_ScatterMode, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Const.pyx":38 + * class ScatterMode(object): + * # native + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD # <<<<<<<<<<<<<< + * SCATTER_REVERSE = PETSC_SCATTER_REVERSE + * SCATTER_FORWARD_LOCAL = PETSC_SCATTER_FORWARD_LOCAL + */ + __pyx_t_4 = __Pyx_PyInt_From_ScatterMode(SCATTER_FORWARD); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_SCATTER_FORWARD, __pyx_t_4) < 0) __PYX_ERR(0, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":39 + * # native + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD + * SCATTER_REVERSE = PETSC_SCATTER_REVERSE # <<<<<<<<<<<<<< + * SCATTER_FORWARD_LOCAL = PETSC_SCATTER_FORWARD_LOCAL + * SCATTER_REVERSE_LOCAL = PETSC_SCATTER_REVERSE_LOCAL + */ + __pyx_t_4 = __Pyx_PyInt_From_ScatterMode(SCATTER_REVERSE); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_SCATTER_REVERSE, __pyx_t_4) < 0) __PYX_ERR(0, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":40 + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD + * SCATTER_REVERSE = PETSC_SCATTER_REVERSE + * SCATTER_FORWARD_LOCAL = PETSC_SCATTER_FORWARD_LOCAL # <<<<<<<<<<<<<< + * SCATTER_REVERSE_LOCAL = PETSC_SCATTER_REVERSE_LOCAL + * # aliases + */ + __pyx_t_4 = __Pyx_PyInt_From_ScatterMode(SCATTER_FORWARD_LOCAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_SCATTER_FORWARD_LOCAL, __pyx_t_4) < 0) __PYX_ERR(0, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":41 + * SCATTER_REVERSE = PETSC_SCATTER_REVERSE + * SCATTER_FORWARD_LOCAL = PETSC_SCATTER_FORWARD_LOCAL + * SCATTER_REVERSE_LOCAL = PETSC_SCATTER_REVERSE_LOCAL # <<<<<<<<<<<<<< + * # aliases + * FORWARD = SCATTER_FORWARD + */ + __pyx_t_4 = __Pyx_PyInt_From_ScatterMode(SCATTER_REVERSE_LOCAL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_SCATTER_REVERSE_LOCAL, __pyx_t_4) < 0) __PYX_ERR(0, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":43 + * SCATTER_REVERSE_LOCAL = PETSC_SCATTER_REVERSE_LOCAL + * # aliases + * FORWARD = SCATTER_FORWARD # <<<<<<<<<<<<<< + * REVERSE = SCATTER_REVERSE + * FORWARD_LOCAL = SCATTER_FORWARD_LOCAL + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_SCATTER_FORWARD); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SCATTER_FORWARD); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_FORWARD, __pyx_t_4) < 0) __PYX_ERR(0, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":44 + * # aliases + * FORWARD = SCATTER_FORWARD + * REVERSE = SCATTER_REVERSE # <<<<<<<<<<<<<< + * FORWARD_LOCAL = SCATTER_FORWARD_LOCAL + * REVERSE_LOCAL = SCATTER_REVERSE_LOCAL + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_SCATTER_REVERSE); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SCATTER_REVERSE); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_REVERSE, __pyx_t_4) < 0) __PYX_ERR(0, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":45 + * FORWARD = SCATTER_FORWARD + * REVERSE = SCATTER_REVERSE + * FORWARD_LOCAL = SCATTER_FORWARD_LOCAL # <<<<<<<<<<<<<< + * REVERSE_LOCAL = SCATTER_REVERSE_LOCAL + * + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_SCATTER_FORWARD_LOCAL); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SCATTER_FORWARD_LOCAL); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_FORWARD_LOCAL, __pyx_t_4) < 0) __PYX_ERR(0, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":46 + * REVERSE = SCATTER_REVERSE + * FORWARD_LOCAL = SCATTER_FORWARD_LOCAL + * REVERSE_LOCAL = SCATTER_REVERSE_LOCAL # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_SCATTER_REVERSE_LOCAL); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_SCATTER_REVERSE_LOCAL); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_REVERSE_LOCAL, __pyx_t_4) < 0) __PYX_ERR(0, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":36 + * # -------------------------------------------------------------------- + * + * class ScatterMode(object): # <<<<<<<<<<<<<< + * # native + * SCATTER_FORWARD = PETSC_SCATTER_FORWARD + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_ScatterMode, __pyx_tuple__81, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScatterMode, __pyx_t_4) < 0) __PYX_ERR(0, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Const.pyx":50 + * # -------------------------------------------------------------------- + * + * class NormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_1 = PETSC_NORM_1 + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__82); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__82, __pyx_n_s_NormType, __pyx_n_s_NormType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Const.pyx":52 + * class NormType(object): + * # native + * NORM_1 = PETSC_NORM_1 # <<<<<<<<<<<<<< + * NORM_2 = PETSC_NORM_2 + * NORM_1_AND_2 = PETSC_NORM_1_AND_2 + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_1, __pyx_t_4) < 0) __PYX_ERR(0, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":53 + * # native + * NORM_1 = PETSC_NORM_1 + * NORM_2 = PETSC_NORM_2 # <<<<<<<<<<<<<< + * NORM_1_AND_2 = PETSC_NORM_1_AND_2 + * NORM_FROBENIUS = PETSC_NORM_FROBENIUS + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_2, __pyx_t_4) < 0) __PYX_ERR(0, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":54 + * NORM_1 = PETSC_NORM_1 + * NORM_2 = PETSC_NORM_2 + * NORM_1_AND_2 = PETSC_NORM_1_AND_2 # <<<<<<<<<<<<<< + * NORM_FROBENIUS = PETSC_NORM_FROBENIUS + * NORM_INFINITY = PETSC_NORM_INFINITY + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_1_AND_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_1_AND_2, __pyx_t_4) < 0) __PYX_ERR(0, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":55 + * NORM_2 = PETSC_NORM_2 + * NORM_1_AND_2 = PETSC_NORM_1_AND_2 + * NORM_FROBENIUS = PETSC_NORM_FROBENIUS # <<<<<<<<<<<<<< + * NORM_INFINITY = PETSC_NORM_INFINITY + * NORM_MAX = PETSC_NORM_MAX + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_FROBENIUS); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_FROBENIUS, __pyx_t_4) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":56 + * NORM_1_AND_2 = PETSC_NORM_1_AND_2 + * NORM_FROBENIUS = PETSC_NORM_FROBENIUS + * NORM_INFINITY = PETSC_NORM_INFINITY # <<<<<<<<<<<<<< + * NORM_MAX = PETSC_NORM_MAX + * # aliases + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_INFINITY); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_INFINITY, __pyx_t_4) < 0) __PYX_ERR(0, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":57 + * NORM_FROBENIUS = PETSC_NORM_FROBENIUS + * NORM_INFINITY = PETSC_NORM_INFINITY + * NORM_MAX = PETSC_NORM_MAX # <<<<<<<<<<<<<< + * # aliases + * N1 = NORM_1 + */ + __pyx_t_4 = __Pyx_PyInt_From_NormType(NORM_MAX); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_NORM_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":59 + * NORM_MAX = PETSC_NORM_MAX + * # aliases + * N1 = NORM_1 # <<<<<<<<<<<<<< + * N2 = NORM_2 + * N12 = NORM_1_AND_2 + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_1); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_1); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_N1, __pyx_t_4) < 0) __PYX_ERR(0, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":60 + * # aliases + * N1 = NORM_1 + * N2 = NORM_2 # <<<<<<<<<<<<<< + * N12 = NORM_1_AND_2 + * MAX = NORM_MAX + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_2); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_2); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_N2, __pyx_t_4) < 0) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":61 + * N1 = NORM_1 + * N2 = NORM_2 + * N12 = NORM_1_AND_2 # <<<<<<<<<<<<<< + * MAX = NORM_MAX + * FROBENIUS = NORM_FROBENIUS + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_1_AND_2); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_1_AND_2); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_N12, __pyx_t_4) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":62 + * N2 = NORM_2 + * N12 = NORM_1_AND_2 + * MAX = NORM_MAX # <<<<<<<<<<<<<< + * FROBENIUS = NORM_FROBENIUS + * INFINITY = NORM_INFINITY + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_MAX); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_MAX); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_MAX, __pyx_t_4) < 0) __PYX_ERR(0, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":63 + * N12 = NORM_1_AND_2 + * MAX = NORM_MAX + * FROBENIUS = NORM_FROBENIUS # <<<<<<<<<<<<<< + * INFINITY = NORM_INFINITY + * # extra aliases + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_FROBENIUS); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_FROBENIUS); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_FROBENIUS, __pyx_t_4) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":64 + * MAX = NORM_MAX + * FROBENIUS = NORM_FROBENIUS + * INFINITY = NORM_INFINITY # <<<<<<<<<<<<<< + * # extra aliases + * FRB = FROBENIUS + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_NORM_INFINITY); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_NORM_INFINITY); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INFINITY, __pyx_t_4) < 0) __PYX_ERR(0, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":66 + * INFINITY = NORM_INFINITY + * # extra aliases + * FRB = FROBENIUS # <<<<<<<<<<<<<< + * INF = INFINITY + * + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_FROBENIUS); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_FROBENIUS); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_FRB, __pyx_t_4) < 0) __PYX_ERR(0, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":67 + * # extra aliases + * FRB = FROBENIUS + * INF = INFINITY # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_3, __pyx_n_s_INFINITY); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_INFINITY); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_INF, __pyx_t_4) < 0) __PYX_ERR(0, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Const.pyx":50 + * # -------------------------------------------------------------------- + * + * class NormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_1 = PETSC_NORM_1 + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_NormType, __pyx_tuple__82, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NormType, __pyx_t_4) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Error.pyx":3 + * # -------------------------------------------------------------------- + * + * class Error(RuntimeError): # <<<<<<<<<<<<<< + * + * _traceback_ = [] + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__83); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__83, __pyx_n_s_Error, __pyx_n_s_Error, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Error.pyx":5 + * class Error(RuntimeError): + * + * _traceback_ = [] # <<<<<<<<<<<<<< + * + * def __init__(self, int ierr=0): + */ + __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_traceback, __pyx_t_4) < 0) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Error.pyx":7 + * _traceback_ = [] + * + * def __init__(self, int ierr=0): # <<<<<<<<<<<<<< + * self.ierr = ierr + * RuntimeError.__init__(self, self.ierr) + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_5Error_1__init__, 0, __pyx_n_s_Error___init, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_5); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_init, __pyx_t_4) < 0) __PYX_ERR(1, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Error.pyx":11 + * RuntimeError.__init__(self, self.ierr) + * + * def __nonzero__(self): # <<<<<<<<<<<<<< + * cdef int ierr = self.ierr + * return ierr != 0 + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_5Error_3__nonzero__, 0, __pyx_n_s_Error___nonzero, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_nonzero_2, __pyx_t_4) < 0) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Error.pyx":15 + * return ierr != 0 + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return 'PETSc.Error(%d)' % self.ierr + * + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_5Error_5__repr__, 0, __pyx_n_s_Error___repr, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_repr, __pyx_t_4) < 0) __PYX_ERR(1, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Error.pyx":18 + * return 'PETSc.Error(%d)' % self.ierr + * + * def __str__(self): # <<<<<<<<<<<<<< + * cdef int csize=1, crank=0 + * if not (PetscFinalizeCalled): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_5Error_7__str__, 0, __pyx_n_s_Error___str, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_str, __pyx_t_4) < 0) __PYX_ERR(1, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Error.pyx":3 + * # -------------------------------------------------------------------- + * + * class Error(RuntimeError): # <<<<<<<<<<<<<< + * + * _traceback_ = [] + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_Error, __pyx_tuple__83, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Error, __pyx_t_4) < 0) __PYX_ERR(1, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Sys.pyx":6 + * + * @classmethod + * def getVersion(cls, devel=False, date=False, author=False): # <<<<<<<<<<<<<< + * cdef char cversion[256] + * cdef PetscInt major=0, minor=0, micro=0, release=0 + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_getVersion); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":5 + * cdef class Sys: + * + * @classmethod # <<<<<<<<<<<<<< + * def getVersion(cls, devel=False, date=False, author=False): + * cdef char cversion[256] + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_getVersion, __pyx_t_3) < 0) __PYX_ERR(32, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":30 + * + * @classmethod + * def getVersionInfo(cls): # <<<<<<<<<<<<<< + * version, dev, date, author = cls.getVersion(True, True, True) + * return dict(major = version[0], + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_getVersionInfo); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":29 + * return tuple(out) + * + * @classmethod # <<<<<<<<<<<<<< + * def getVersionInfo(cls): + * version, dev, date, author = cls.getVersion(True, True, True) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_getVersionInfo, __pyx_t_1) < 0) __PYX_ERR(32, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":42 + * + * @classmethod + * def isInitialized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscInitializeCalled) + * + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_isInitialized); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":41 + * # --- xxx --- + * + * @classmethod # <<<<<<<<<<<<<< + * def isInitialized(cls): + * return toBool(PetscInitializeCalled) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_isInitialized, __pyx_t_3) < 0) __PYX_ERR(32, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":46 + * + * @classmethod + * def isFinalized(cls): # <<<<<<<<<<<<<< + * return toBool(PetscFinalizeCalled) + * + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_isFinalized); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":45 + * return toBool(PetscInitializeCalled) + * + * @classmethod # <<<<<<<<<<<<<< + * def isFinalized(cls): + * return toBool(PetscFinalizeCalled) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_isFinalized, __pyx_t_1) < 0) __PYX_ERR(32, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":52 + * + * @classmethod + * def getDefaultComm(cls): # <<<<<<<<<<<<<< + * cdef Comm comm = Comm() + * comm.comm = PETSC_COMM_DEFAULT + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_getDefaultComm); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":51 + * # --- xxx --- + * + * @classmethod # <<<<<<<<<<<<<< + * def getDefaultComm(cls): + * cdef Comm comm = Comm() + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_getDefaultComm, __pyx_t_3) < 0) __PYX_ERR(32, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":58 + * + * @classmethod + * def setDefaultComm(cls, comm): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + * if ccomm == MPI_COMM_NULL: + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_setDefaultComm); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":57 + * return comm + * + * @classmethod # <<<<<<<<<<<<<< + * def setDefaultComm(cls, comm): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_WORLD) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_setDefaultComm, __pyx_t_1) < 0) __PYX_ERR(32, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":68 + * + * @classmethod + * def Print(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_Print); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":67 + * # --- xxx --- + * + * @classmethod # <<<<<<<<<<<<<< + * def Print(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_Print, __pyx_t_3) < 0) __PYX_ERR(32, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":85 + * + * @classmethod + * def syncPrint(cls, *args, **kargs): # <<<<<<<<<<<<<< + * cdef object comm = kargs.get('comm', None) + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_syncPrint); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":84 + * CHKERR( PetscPrintf(ccomm, '%s', m) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def syncPrint(cls, *args, **kargs): + * cdef object comm = kargs.get('comm', None) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_syncPrint, __pyx_t_1) < 0) __PYX_ERR(32, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":101 + * + * @classmethod + * def syncFlush(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_syncFlush); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":100 + * if flush: CHKERR( PetscSynchronizedFlush(ccomm, PETSC_STDOUT) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def syncFlush(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_syncFlush, __pyx_t_3) < 0) __PYX_ERR(32, 101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":108 + * + * @classmethod + * def splitOwnership(cls, size, bsize=None, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef PetscInt bs=0, n=0, N=0 + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_splitOwnership); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":107 + * # --- xxx --- + * + * @classmethod # <<<<<<<<<<<<<< + * def splitOwnership(cls, size, bsize=None, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_splitOwnership, __pyx_t_1) < 0) __PYX_ERR(32, 108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":121 + * + * @classmethod + * def sleep(cls, seconds=1): # <<<<<<<<<<<<<< + * cdef int s = seconds + * CHKERR( PetscSleep(s) ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_sleep); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":120 + * return (toInt(n), toInt(N)) + * + * @classmethod # <<<<<<<<<<<<<< + * def sleep(cls, seconds=1): + * cdef int s = seconds + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_sleep, __pyx_t_3) < 0) __PYX_ERR(32, 121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":128 + * + * @classmethod + * def pushErrorHandler(cls, errhandler): # <<<<<<<<<<<<<< + * cdef PetscErrorHandlerFunction handler = NULL + * if errhandler == "python": + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_pushErrorHandler); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":127 + * # --- xxx --- + * + * @classmethod # <<<<<<<<<<<<<< + * def pushErrorHandler(cls, errhandler): + * cdef PetscErrorHandlerFunction handler = NULL + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_pushErrorHandler, __pyx_t_1) < 0) __PYX_ERR(32, 128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":152 + * + * @classmethod + * def popErrorHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopErrorHandler() ) + * + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_popErrorHandler); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":151 + * + * + * @classmethod # <<<<<<<<<<<<<< + * def popErrorHandler(cls): + * CHKERR( PetscPopErrorHandler() ) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_popErrorHandler, __pyx_t_3) < 0) __PYX_ERR(32, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":156 + * + * @classmethod + * def popSignalHandler(cls): # <<<<<<<<<<<<<< + * CHKERR( PetscPopSignalHandler() ) + * + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_popSignalHandler); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":155 + * CHKERR( PetscPopErrorHandler() ) + * + * @classmethod # <<<<<<<<<<<<<< + * def popSignalHandler(cls): + * CHKERR( PetscPopSignalHandler() ) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_popSignalHandler, __pyx_t_1) < 0) __PYX_ERR(32, 156, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":160 + * + * @classmethod + * def infoAllow(cls, flag, filename=None, mode="w"): # <<<<<<<<<<<<<< + * cdef PetscBool tval = PETSC_FALSE + * cdef const char *cfilename = NULL + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_infoAllow); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":159 + * CHKERR( PetscPopSignalHandler() ) + * + * @classmethod # <<<<<<<<<<<<<< + * def infoAllow(cls, flag, filename=None, mode="w"): + * cdef PetscBool tval = PETSC_FALSE + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_infoAllow, __pyx_t_3) < 0) __PYX_ERR(32, 160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":172 + * + * @classmethod + * def registerCitation(cls, citation): # <<<<<<<<<<<<<< + * if not citation: raise ValueError("empty citation") + * cdef const char *cit = NULL + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_registerCitation); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Sys.pyx":171 + * CHKERR( PetscInfoSetFile(cfilename, cmode) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def registerCitation(cls, citation): + * if not citation: raise ValueError("empty citation") + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_registerCitation, __pyx_t_1) < 0) __PYX_ERR(32, 172, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":181 + * + * @classmethod + * def hasExternalPackage(cls, package): # <<<<<<<<<<<<<< + * cdef const char *cpackage = NULL + * package = str2bytes(package, &cpackage) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys, __pyx_n_s_hasExternalPackage); if (unlikely(!__pyx_t_1)) __PYX_ERR(32, 181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Sys.pyx":180 + * set_citation(citation, toBool(flag)) + * + * @classmethod # <<<<<<<<<<<<<< + * def hasExternalPackage(cls, package): + * cdef const char *cpackage = NULL + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Sys->tp_dict, __pyx_n_s_hasExternalPackage, __pyx_t_3) < 0) __PYX_ERR(32, 181, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Sys); + + /* "petsc4py/PETSc/Sys.pyx":189 + * + * + * cdef dict citations_registry = { } # <<<<<<<<<<<<<< + * + * cdef PetscBool get_citation(object citation): + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(32, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_citations_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_citations_registry, ((PyObject*)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":2 + * # -------------------------------------------------------------------- + * import functools # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_3 = __Pyx_Import(__pyx_n_s_functools, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_functools, __pyx_t_3) < 0) __PYX_ERR(33, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":8 + * + * @classmethod + * def Stage(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_Stage); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":7 + * cdef class Log: + * + * @classmethod # <<<<<<<<<<<<<< + * def Stage(cls, name): + * if not name: raise ValueError("empty name") + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_Stage, __pyx_t_1) < 0) __PYX_ERR(33, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":22 + * + * @classmethod + * def Class(cls, name): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_Class); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":21 + * return stage + * + * @classmethod # <<<<<<<<<<<<<< + * def Class(cls, name): + * if not name: raise ValueError("empty name") + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_Class, __pyx_t_3) < 0) __PYX_ERR(33, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":36 + * + * @classmethod + * def Event(cls, name, klass=None): # <<<<<<<<<<<<<< + * if not name: raise ValueError("empty name") + * cdef const char *cname = NULL + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_Event); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":35 + * return klass + * + * @classmethod # <<<<<<<<<<<<<< + * def Event(cls, name, klass=None): + * if not name: raise ValueError("empty name") + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_Event, __pyx_t_1) < 0) __PYX_ERR(33, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":52 + * + * @classmethod + * def begin(cls, all=False): # <<<<<<<<<<<<<< + * if all: CHKERR( PetscLogAllBegin() ) + * else: CHKERR( PetscLogDefaultBegin() ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_begin); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":51 + * return event + * + * @classmethod # <<<<<<<<<<<<<< + * def begin(cls, all=False): + * if all: CHKERR( PetscLogAllBegin() ) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_begin, __pyx_t_3) < 0) __PYX_ERR(33, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":57 + * + * @classmethod + * def view(cls, Viewer viewer=None): # <<<<<<<<<<<<<< + * cdef PetscViewer vwr = NULL + * if viewer is not None: vwr = viewer.vwr + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_view); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":56 + * else: CHKERR( PetscLogDefaultBegin() ) + * + * @classmethod # <<<<<<<<<<<<<< + * def view(cls, Viewer viewer=None): + * cdef PetscViewer vwr = NULL + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_view, __pyx_t_1) < 0) __PYX_ERR(33, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":64 + * + * @classmethod + * def logFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_logFlops); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":63 + * CHKERR( PetscLogView(vwr) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def logFlops(cls, flops): + * cdef PetscLogDouble cflops=flops + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_logFlops, __pyx_t_3) < 0) __PYX_ERR(33, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":69 + * + * @classmethod + * def addFlops(cls, flops): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=flops + * CHKERR( PetscLogFlops(cflops) ) + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_addFlops); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":68 + * CHKERR( PetscLogFlops(cflops) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def addFlops(cls, flops): + * cdef PetscLogDouble cflops=flops + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_addFlops, __pyx_t_1) < 0) __PYX_ERR(33, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":74 + * + * @classmethod + * def getFlops(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cflops=0 + * CHKERR( PetscGetFlops(&cflops) ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_getFlops); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":73 + * CHKERR( PetscLogFlops(cflops) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def getFlops(cls): + * cdef PetscLogDouble cflops=0 + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_getFlops, __pyx_t_3) < 0) __PYX_ERR(33, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":80 + * + * @classmethod + * def getTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble wctime=0 + * CHKERR( PetscTime(&wctime) ) + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_getTime); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":79 + * return cflops + * + * @classmethod # <<<<<<<<<<<<<< + * def getTime(cls): + * cdef PetscLogDouble wctime=0 + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_getTime, __pyx_t_1) < 0) __PYX_ERR(33, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":86 + * + * @classmethod + * def getCPUTime(cls): # <<<<<<<<<<<<<< + * cdef PetscLogDouble cputime=0 + * CHKERR( PetscGetCPUTime(&cputime) ) + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_getCPUTime); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":85 + * return wctime + * + * @classmethod # <<<<<<<<<<<<<< + * def getCPUTime(cls): + * cdef PetscLogDouble cputime=0 + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_getCPUTime, __pyx_t_3) < 0) __PYX_ERR(33, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":92 + * + * @classmethod + * def EventDecorator(cls, name=None, klass=None): # <<<<<<<<<<<<<< + * """Decorate a function with a PETSc event. + * + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_EventDecorator); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Log.pyx":91 + * return cputime + * + * @classmethod # <<<<<<<<<<<<<< + * def EventDecorator(cls, name=None, klass=None): + * """Decorate a function with a PETSc event. + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_EventDecorator, __pyx_t_1) < 0) __PYX_ERR(33, 92, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":121 + * + * @classmethod + * def isActive(cls): # <<<<<<<<<<<<<< + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + * cdef PetscBool flag = PETSC_FALSE + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log, __pyx_n_s_isActive); if (unlikely(!__pyx_t_1)) __PYX_ERR(33, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Log.pyx":120 + * return decorator + * + * @classmethod # <<<<<<<<<<<<<< + * def isActive(cls): + * """Return ``True`` if logging is switched on and ``False`` otherwise.""" + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Log->tp_dict, __pyx_n_s_isActive, __pyx_t_3) < 0) __PYX_ERR(33, 121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Log); + + /* "petsc4py/PETSc/Log.pyx":212 + * + * + * cdef dict stage_registry = { } # <<<<<<<<<<<<<< + * + * cdef LogStage get_LogStage(object name): + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_stage_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_stage_registry, ((PyObject*)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":274 + * + * + * cdef dict class_registry = { } # <<<<<<<<<<<<<< + * + * cdef LogClass get_LogClass(object name): + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_class_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_class_registry, ((PyObject*)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Log.pyx":378 + * return info + * + * cdef dict event_registry = { } # <<<<<<<<<<<<<< + * + * cdef LogEvent get_LogEvent(object name): + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(33, 378, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_event_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_event_registry, ((PyObject*)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Comm.pyx":109 + * # --- mpi4py compatibility API --- + * + * Free = destroy # <<<<<<<<<<<<<< + * Clone = duplicate + * Dup = duplicate + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_destroy); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Free, __pyx_t_3) < 0) __PYX_ERR(10, 109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":110 + * + * Free = destroy + * Clone = duplicate # <<<<<<<<<<<<<< + * Dup = duplicate + * Get_size = getSize + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_duplicate); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Clone, __pyx_t_3) < 0) __PYX_ERR(10, 110, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":111 + * Free = destroy + * Clone = duplicate + * Dup = duplicate # <<<<<<<<<<<<<< + * Get_size = getSize + * Get_rank = getRank + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_duplicate); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Dup, __pyx_t_3) < 0) __PYX_ERR(10, 111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":112 + * Clone = duplicate + * Dup = duplicate + * Get_size = getSize # <<<<<<<<<<<<<< + * Get_rank = getRank + * Barrier = barrier + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_getSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Get_size, __pyx_t_3) < 0) __PYX_ERR(10, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":113 + * Dup = duplicate + * Get_size = getSize + * Get_rank = getRank # <<<<<<<<<<<<<< + * Barrier = barrier + * + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_getRank); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Get_rank, __pyx_t_3) < 0) __PYX_ERR(10, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":114 + * Get_size = getSize + * Get_rank = getRank + * Barrier = barrier # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm, __pyx_n_s_barrier); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm->tp_dict, __pyx_n_s_Barrier, __pyx_t_3) < 0) __PYX_ERR(10, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Comm); + + /* "petsc4py/PETSc/Comm.pyx":118 + * # -------------------------------------------------------------------- + * + * cdef Comm __COMM_NULL__ = Comm() # <<<<<<<<<<<<<< + * cdef Comm __COMM_SELF__ = Comm() + * cdef Comm __COMM_WORLD__ = Comm() + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_NULL__)); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc___COMM_NULL__, ((struct PyPetscCommObject *)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Comm.pyx":119 + * + * cdef Comm __COMM_NULL__ = Comm() + * cdef Comm __COMM_SELF__ = Comm() # <<<<<<<<<<<<<< + * cdef Comm __COMM_WORLD__ = Comm() + * + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_SELF__)); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc___COMM_SELF__, ((struct PyPetscCommObject *)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Comm.pyx":120 + * cdef Comm __COMM_NULL__ = Comm() + * cdef Comm __COMM_SELF__ = Comm() + * cdef Comm __COMM_WORLD__ = Comm() # <<<<<<<<<<<<<< + * + * COMM_NULL = __COMM_NULL__ + */ + __pyx_t_3 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Comm)); if (unlikely(!__pyx_t_3)) __PYX_ERR(10, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_XGOTREF(((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_WORLD__)); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc___COMM_WORLD__, ((struct PyPetscCommObject *)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Comm.pyx":122 + * cdef Comm __COMM_WORLD__ = Comm() + * + * COMM_NULL = __COMM_NULL__ # <<<<<<<<<<<<<< + * COMM_SELF = __COMM_SELF__ + * COMM_WORLD = __COMM_WORLD__ + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COMM_NULL, ((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_NULL__)) < 0) __PYX_ERR(10, 122, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":123 + * + * COMM_NULL = __COMM_NULL__ + * COMM_SELF = __COMM_SELF__ # <<<<<<<<<<<<<< + * COMM_WORLD = __COMM_WORLD__ + * + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COMM_SELF, ((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_SELF__)) < 0) __PYX_ERR(10, 123, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":124 + * COMM_NULL = __COMM_NULL__ + * COMM_SELF = __COMM_SELF__ + * COMM_WORLD = __COMM_WORLD__ # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COMM_WORLD, ((PyObject *)__pyx_v_8petsc4py_5PETSc___COMM_WORLD__)) < 0) __PYX_ERR(10, 124, __pyx_L1_error) + + /* "petsc4py/PETSc/Comm.pyx":128 + * # -------------------------------------------------------------------- + * + * cdef MPI_Comm PETSC_COMM_DEFAULT = MPI_COMM_NULL # <<<<<<<<<<<<<< + * + * cdef MPI_Comm GetComm(object comm, MPI_Comm defv) except *: + */ + __pyx_v_8petsc4py_5PETSc_PETSC_COMM_DEFAULT = MPI_COMM_NULL; + + /* "petsc4py/PETSc/cyclicgc.pxi":41 + * t.tp_clear = tp_clear + * + * def garbage_cleanup(comm=None): # <<<<<<<<<<<<<< + * """Cleans up unused PETSc objects on the communicator `comm`. If no + * communicator is provided first clean up on PETSC_COMM_WORLD, then + */ + __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_1garbage_cleanup, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_garbage_cleanup, __pyx_t_3) < 0) __PYX_ERR(35, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/cyclicgc.pxi":64 + * CHKERR( PetscGarbageCleanup(ccomm) ) + * + * def garbage_view(comm=None): # <<<<<<<<<<<<<< + * """Prints out summary of the unused PETSc objects on each rank of + * the communicator `comm`. If no communicator is provided then + */ + __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_3garbage_view, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_3)) __PYX_ERR(35, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_garbage_view, __pyx_t_3) < 0) __PYX_ERR(35, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Object.pyx":264 + * include "cyclicgc.pxi" + * + * cdef dict type_registry = { 0 : None } # <<<<<<<<<<<<<< + * __type_registry__ = type_registry + * + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(34, 264, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_int_0, Py_None) < 0) __PYX_ERR(34, 264, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_type_registry); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_type_registry, ((PyObject*)__pyx_t_3)); + __Pyx_GIVEREF(__pyx_t_3); + __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Object.pyx":265 + * + * cdef dict type_registry = { 0 : None } + * __type_registry__ = type_registry # <<<<<<<<<<<<<< + * + * cdef int PyPetscType_Register(int classid, type cls) except -1: + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_type_registry, __pyx_v_8petsc4py_5PETSc_type_registry) < 0) __PYX_ERR(34, 265, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":3 + * # -------------------------------------------------------------------- + * + * class ViewerType(object): # <<<<<<<<<<<<<< + * SOCKET = S_(PETSCVIEWERSOCKET) + * ASCII = S_(PETSCVIEWERASCII) + */ + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__96); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_tuple__96, __pyx_n_s_ViewerType, __pyx_n_s_ViewerType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":4 + * + * class ViewerType(object): + * SOCKET = S_(PETSCVIEWERSOCKET) # <<<<<<<<<<<<<< + * ASCII = S_(PETSCVIEWERASCII) + * BINARY = S_(PETSCVIEWERBINARY) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERSOCKET); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_SOCKET, __pyx_t_4) < 0) __PYX_ERR(36, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":5 + * class ViewerType(object): + * SOCKET = S_(PETSCVIEWERSOCKET) + * ASCII = S_(PETSCVIEWERASCII) # <<<<<<<<<<<<<< + * BINARY = S_(PETSCVIEWERBINARY) + * STRING = S_(PETSCVIEWERSTRING) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERASCII); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII, __pyx_t_4) < 0) __PYX_ERR(36, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":6 + * SOCKET = S_(PETSCVIEWERSOCKET) + * ASCII = S_(PETSCVIEWERASCII) + * BINARY = S_(PETSCVIEWERBINARY) # <<<<<<<<<<<<<< + * STRING = S_(PETSCVIEWERSTRING) + * DRAW = S_(PETSCVIEWERDRAW) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERBINARY); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_BINARY, __pyx_t_4) < 0) __PYX_ERR(36, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":7 + * ASCII = S_(PETSCVIEWERASCII) + * BINARY = S_(PETSCVIEWERBINARY) + * STRING = S_(PETSCVIEWERSTRING) # <<<<<<<<<<<<<< + * DRAW = S_(PETSCVIEWERDRAW) + * VU = S_(PETSCVIEWERVU) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERSTRING); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_STRING, __pyx_t_4) < 0) __PYX_ERR(36, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":8 + * BINARY = S_(PETSCVIEWERBINARY) + * STRING = S_(PETSCVIEWERSTRING) + * DRAW = S_(PETSCVIEWERDRAW) # <<<<<<<<<<<<<< + * VU = S_(PETSCVIEWERVU) + * MATHEMATICA = S_(PETSCVIEWERMATHEMATICA) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERDRAW); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW, __pyx_t_4) < 0) __PYX_ERR(36, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":9 + * STRING = S_(PETSCVIEWERSTRING) + * DRAW = S_(PETSCVIEWERDRAW) + * VU = S_(PETSCVIEWERVU) # <<<<<<<<<<<<<< + * MATHEMATICA = S_(PETSCVIEWERMATHEMATICA) + * HDF5 = S_(PETSCVIEWERHDF5) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERVU); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_VU, __pyx_t_4) < 0) __PYX_ERR(36, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":10 + * DRAW = S_(PETSCVIEWERDRAW) + * VU = S_(PETSCVIEWERVU) + * MATHEMATICA = S_(PETSCVIEWERMATHEMATICA) # <<<<<<<<<<<<<< + * HDF5 = S_(PETSCVIEWERHDF5) + * VTK = S_(PETSCVIEWERVTK) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERMATHEMATICA); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_MATHEMATICA, __pyx_t_4) < 0) __PYX_ERR(36, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":11 + * VU = S_(PETSCVIEWERVU) + * MATHEMATICA = S_(PETSCVIEWERMATHEMATICA) + * HDF5 = S_(PETSCVIEWERHDF5) # <<<<<<<<<<<<<< + * VTK = S_(PETSCVIEWERVTK) + * MATLAB = S_(PETSCVIEWERMATLAB) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERHDF5); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HDF5, __pyx_t_4) < 0) __PYX_ERR(36, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":12 + * MATHEMATICA = S_(PETSCVIEWERMATHEMATICA) + * HDF5 = S_(PETSCVIEWERHDF5) + * VTK = S_(PETSCVIEWERVTK) # <<<<<<<<<<<<<< + * MATLAB = S_(PETSCVIEWERMATLAB) + * SAWS = S_(PETSCVIEWERSAWS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERVTK); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_VTK, __pyx_t_4) < 0) __PYX_ERR(36, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":13 + * HDF5 = S_(PETSCVIEWERHDF5) + * VTK = S_(PETSCVIEWERVTK) + * MATLAB = S_(PETSCVIEWERMATLAB) # <<<<<<<<<<<<<< + * SAWS = S_(PETSCVIEWERSAWS) + * GLVIS = S_(PETSCVIEWERGLVIS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERMATLAB); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_MATLAB, __pyx_t_4) < 0) __PYX_ERR(36, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":14 + * VTK = S_(PETSCVIEWERVTK) + * MATLAB = S_(PETSCVIEWERMATLAB) + * SAWS = S_(PETSCVIEWERSAWS) # <<<<<<<<<<<<<< + * GLVIS = S_(PETSCVIEWERGLVIS) + * ADIOS = S_(PETSCVIEWERADIOS) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERSAWS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_SAWS, __pyx_t_4) < 0) __PYX_ERR(36, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":15 + * MATLAB = S_(PETSCVIEWERMATLAB) + * SAWS = S_(PETSCVIEWERSAWS) + * GLVIS = S_(PETSCVIEWERGLVIS) # <<<<<<<<<<<<<< + * ADIOS = S_(PETSCVIEWERADIOS) + * EXODUSII = S_(PETSCVIEWEREXODUSII) + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERGLVIS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_GLVIS, __pyx_t_4) < 0) __PYX_ERR(36, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":16 + * SAWS = S_(PETSCVIEWERSAWS) + * GLVIS = S_(PETSCVIEWERGLVIS) + * ADIOS = S_(PETSCVIEWERADIOS) # <<<<<<<<<<<<<< + * EXODUSII = S_(PETSCVIEWEREXODUSII) + * + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWERADIOS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ADIOS, __pyx_t_4) < 0) __PYX_ERR(36, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":17 + * GLVIS = S_(PETSCVIEWERGLVIS) + * ADIOS = S_(PETSCVIEWERADIOS) + * EXODUSII = S_(PETSCVIEWEREXODUSII) # <<<<<<<<<<<<<< + * + * class ViewerFormat(object): + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_S_(PETSCVIEWEREXODUSII); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_EXODUSII, __pyx_t_4) < 0) __PYX_ERR(36, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":3 + * # -------------------------------------------------------------------- + * + * class ViewerType(object): # <<<<<<<<<<<<<< + * SOCKET = S_(PETSCVIEWERSOCKET) + * ASCII = S_(PETSCVIEWERASCII) + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_ViewerType, __pyx_tuple__96, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ViewerType, __pyx_t_4) < 0) __PYX_ERR(36, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":19 + * EXODUSII = S_(PETSCVIEWEREXODUSII) + * + * class ViewerFormat(object): # <<<<<<<<<<<<<< + * DEFAULT = PETSC_VIEWER_DEFAULT + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + */ + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__97); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_tuple__97, __pyx_n_s_ViewerFormat, __pyx_n_s_ViewerFormat, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":20 + * + * class ViewerFormat(object): + * DEFAULT = PETSC_VIEWER_DEFAULT # <<<<<<<<<<<<<< + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + * ASCII_MATHEMATICA = PETSC_VIEWER_ASCII_MATHEMATICA + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DEFAULT); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DEFAULT, __pyx_t_4) < 0) __PYX_ERR(36, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":21 + * class ViewerFormat(object): + * DEFAULT = PETSC_VIEWER_DEFAULT + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB # <<<<<<<<<<<<<< + * ASCII_MATHEMATICA = PETSC_VIEWER_ASCII_MATHEMATICA + * ASCII_IMPL = PETSC_VIEWER_ASCII_IMPL + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_MATLAB); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_MATLAB, __pyx_t_4) < 0) __PYX_ERR(36, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":22 + * DEFAULT = PETSC_VIEWER_DEFAULT + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + * ASCII_MATHEMATICA = PETSC_VIEWER_ASCII_MATHEMATICA # <<<<<<<<<<<<<< + * ASCII_IMPL = PETSC_VIEWER_ASCII_IMPL + * ASCII_INFO = PETSC_VIEWER_ASCII_INFO + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_MATHEMATICA); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_MATHEMATICA, __pyx_t_4) < 0) __PYX_ERR(36, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":23 + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + * ASCII_MATHEMATICA = PETSC_VIEWER_ASCII_MATHEMATICA + * ASCII_IMPL = PETSC_VIEWER_ASCII_IMPL # <<<<<<<<<<<<<< + * ASCII_INFO = PETSC_VIEWER_ASCII_INFO + * ASCII_INFO_DETAIL = PETSC_VIEWER_ASCII_INFO_DETAIL + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_IMPL); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_IMPL, __pyx_t_4) < 0) __PYX_ERR(36, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":24 + * ASCII_MATHEMATICA = PETSC_VIEWER_ASCII_MATHEMATICA + * ASCII_IMPL = PETSC_VIEWER_ASCII_IMPL + * ASCII_INFO = PETSC_VIEWER_ASCII_INFO # <<<<<<<<<<<<<< + * ASCII_INFO_DETAIL = PETSC_VIEWER_ASCII_INFO_DETAIL + * ASCII_COMMON = PETSC_VIEWER_ASCII_COMMON + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_INFO); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_INFO, __pyx_t_4) < 0) __PYX_ERR(36, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":25 + * ASCII_IMPL = PETSC_VIEWER_ASCII_IMPL + * ASCII_INFO = PETSC_VIEWER_ASCII_INFO + * ASCII_INFO_DETAIL = PETSC_VIEWER_ASCII_INFO_DETAIL # <<<<<<<<<<<<<< + * ASCII_COMMON = PETSC_VIEWER_ASCII_COMMON + * ASCII_SYMMODU = PETSC_VIEWER_ASCII_SYMMODU + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_INFO_DETAIL); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_INFO_DETAIL, __pyx_t_4) < 0) __PYX_ERR(36, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":26 + * ASCII_INFO = PETSC_VIEWER_ASCII_INFO + * ASCII_INFO_DETAIL = PETSC_VIEWER_ASCII_INFO_DETAIL + * ASCII_COMMON = PETSC_VIEWER_ASCII_COMMON # <<<<<<<<<<<<<< + * ASCII_SYMMODU = PETSC_VIEWER_ASCII_SYMMODU + * ASCII_INDEX = PETSC_VIEWER_ASCII_INDEX + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_COMMON); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_COMMON, __pyx_t_4) < 0) __PYX_ERR(36, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":27 + * ASCII_INFO_DETAIL = PETSC_VIEWER_ASCII_INFO_DETAIL + * ASCII_COMMON = PETSC_VIEWER_ASCII_COMMON + * ASCII_SYMMODU = PETSC_VIEWER_ASCII_SYMMODU # <<<<<<<<<<<<<< + * ASCII_INDEX = PETSC_VIEWER_ASCII_INDEX + * ASCII_DENSE = PETSC_VIEWER_ASCII_DENSE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_SYMMODU); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_SYMMODU, __pyx_t_4) < 0) __PYX_ERR(36, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":28 + * ASCII_COMMON = PETSC_VIEWER_ASCII_COMMON + * ASCII_SYMMODU = PETSC_VIEWER_ASCII_SYMMODU + * ASCII_INDEX = PETSC_VIEWER_ASCII_INDEX # <<<<<<<<<<<<<< + * ASCII_DENSE = PETSC_VIEWER_ASCII_DENSE + * ASCII_MATRIXMARKET= PETSC_VIEWER_ASCII_MATRIXMARKET + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_INDEX); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_INDEX, __pyx_t_4) < 0) __PYX_ERR(36, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":29 + * ASCII_SYMMODU = PETSC_VIEWER_ASCII_SYMMODU + * ASCII_INDEX = PETSC_VIEWER_ASCII_INDEX + * ASCII_DENSE = PETSC_VIEWER_ASCII_DENSE # <<<<<<<<<<<<<< + * ASCII_MATRIXMARKET= PETSC_VIEWER_ASCII_MATRIXMARKET + * ASCII_VTK = PETSC_VIEWER_ASCII_VTK_DEPRECATED + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_DENSE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_DENSE, __pyx_t_4) < 0) __PYX_ERR(36, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":30 + * ASCII_INDEX = PETSC_VIEWER_ASCII_INDEX + * ASCII_DENSE = PETSC_VIEWER_ASCII_DENSE + * ASCII_MATRIXMARKET= PETSC_VIEWER_ASCII_MATRIXMARKET # <<<<<<<<<<<<<< + * ASCII_VTK = PETSC_VIEWER_ASCII_VTK_DEPRECATED + * ASCII_VTK_CELL = PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_MATRIXMARKET); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_MATRIXMARKET, __pyx_t_4) < 0) __PYX_ERR(36, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":31 + * ASCII_DENSE = PETSC_VIEWER_ASCII_DENSE + * ASCII_MATRIXMARKET= PETSC_VIEWER_ASCII_MATRIXMARKET + * ASCII_VTK = PETSC_VIEWER_ASCII_VTK_DEPRECATED # <<<<<<<<<<<<<< + * ASCII_VTK_CELL = PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED + * ASCII_VTK_COORDS = PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_VTK_DEPRECATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_VTK, __pyx_t_4) < 0) __PYX_ERR(36, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":32 + * ASCII_MATRIXMARKET= PETSC_VIEWER_ASCII_MATRIXMARKET + * ASCII_VTK = PETSC_VIEWER_ASCII_VTK_DEPRECATED + * ASCII_VTK_CELL = PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED # <<<<<<<<<<<<<< + * ASCII_VTK_COORDS = PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED + * ASCII_PCICE = PETSC_VIEWER_ASCII_PCICE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_VTK_CELL, __pyx_t_4) < 0) __PYX_ERR(36, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":33 + * ASCII_VTK = PETSC_VIEWER_ASCII_VTK_DEPRECATED + * ASCII_VTK_CELL = PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED + * ASCII_VTK_COORDS = PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED # <<<<<<<<<<<<<< + * ASCII_PCICE = PETSC_VIEWER_ASCII_PCICE + * ASCII_PYTHON = PETSC_VIEWER_ASCII_PYTHON + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_VTK_COORDS, __pyx_t_4) < 0) __PYX_ERR(36, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":34 + * ASCII_VTK_CELL = PETSC_VIEWER_ASCII_VTK_CELL_DEPRECATED + * ASCII_VTK_COORDS = PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED + * ASCII_PCICE = PETSC_VIEWER_ASCII_PCICE # <<<<<<<<<<<<<< + * ASCII_PYTHON = PETSC_VIEWER_ASCII_PYTHON + * ASCII_FACTOR_INFO = PETSC_VIEWER_ASCII_FACTOR_INFO + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_PCICE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_PCICE, __pyx_t_4) < 0) __PYX_ERR(36, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":35 + * ASCII_VTK_COORDS = PETSC_VIEWER_ASCII_VTK_COORDS_DEPRECATED + * ASCII_PCICE = PETSC_VIEWER_ASCII_PCICE + * ASCII_PYTHON = PETSC_VIEWER_ASCII_PYTHON # <<<<<<<<<<<<<< + * ASCII_FACTOR_INFO = PETSC_VIEWER_ASCII_FACTOR_INFO + * ASCII_LATEX = PETSC_VIEWER_ASCII_LATEX + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_PYTHON); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_PYTHON, __pyx_t_4) < 0) __PYX_ERR(36, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":36 + * ASCII_PCICE = PETSC_VIEWER_ASCII_PCICE + * ASCII_PYTHON = PETSC_VIEWER_ASCII_PYTHON + * ASCII_FACTOR_INFO = PETSC_VIEWER_ASCII_FACTOR_INFO # <<<<<<<<<<<<<< + * ASCII_LATEX = PETSC_VIEWER_ASCII_LATEX + * ASCII_XML = PETSC_VIEWER_ASCII_XML + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_FACTOR_INFO); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_FACTOR_INFO, __pyx_t_4) < 0) __PYX_ERR(36, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":37 + * ASCII_PYTHON = PETSC_VIEWER_ASCII_PYTHON + * ASCII_FACTOR_INFO = PETSC_VIEWER_ASCII_FACTOR_INFO + * ASCII_LATEX = PETSC_VIEWER_ASCII_LATEX # <<<<<<<<<<<<<< + * ASCII_XML = PETSC_VIEWER_ASCII_XML + * ASCII_GLVIS = PETSC_VIEWER_ASCII_GLVIS + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_LATEX); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_LATEX, __pyx_t_4) < 0) __PYX_ERR(36, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":38 + * ASCII_FACTOR_INFO = PETSC_VIEWER_ASCII_FACTOR_INFO + * ASCII_LATEX = PETSC_VIEWER_ASCII_LATEX + * ASCII_XML = PETSC_VIEWER_ASCII_XML # <<<<<<<<<<<<<< + * ASCII_GLVIS = PETSC_VIEWER_ASCII_GLVIS + * ASCII_CSV = PETSC_VIEWER_ASCII_CSV + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_XML); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_XML, __pyx_t_4) < 0) __PYX_ERR(36, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":39 + * ASCII_LATEX = PETSC_VIEWER_ASCII_LATEX + * ASCII_XML = PETSC_VIEWER_ASCII_XML + * ASCII_GLVIS = PETSC_VIEWER_ASCII_GLVIS # <<<<<<<<<<<<<< + * ASCII_CSV = PETSC_VIEWER_ASCII_CSV + * DRAW_BASIC = PETSC_VIEWER_DRAW_BASIC + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_GLVIS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_GLVIS, __pyx_t_4) < 0) __PYX_ERR(36, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":40 + * ASCII_XML = PETSC_VIEWER_ASCII_XML + * ASCII_GLVIS = PETSC_VIEWER_ASCII_GLVIS + * ASCII_CSV = PETSC_VIEWER_ASCII_CSV # <<<<<<<<<<<<<< + * DRAW_BASIC = PETSC_VIEWER_DRAW_BASIC + * DRAW_LG = PETSC_VIEWER_DRAW_LG + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_ASCII_CSV); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_ASCII_CSV, __pyx_t_4) < 0) __PYX_ERR(36, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":41 + * ASCII_GLVIS = PETSC_VIEWER_ASCII_GLVIS + * ASCII_CSV = PETSC_VIEWER_ASCII_CSV + * DRAW_BASIC = PETSC_VIEWER_DRAW_BASIC # <<<<<<<<<<<<<< + * DRAW_LG = PETSC_VIEWER_DRAW_LG + * DRAW_LG_XRANGE = PETSC_VIEWER_DRAW_LG_XRANGE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DRAW_BASIC); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW_BASIC, __pyx_t_4) < 0) __PYX_ERR(36, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":42 + * ASCII_CSV = PETSC_VIEWER_ASCII_CSV + * DRAW_BASIC = PETSC_VIEWER_DRAW_BASIC + * DRAW_LG = PETSC_VIEWER_DRAW_LG # <<<<<<<<<<<<<< + * DRAW_LG_XRANGE = PETSC_VIEWER_DRAW_LG_XRANGE + * DRAW_CONTOUR = PETSC_VIEWER_DRAW_CONTOUR + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DRAW_LG); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW_LG, __pyx_t_4) < 0) __PYX_ERR(36, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":43 + * DRAW_BASIC = PETSC_VIEWER_DRAW_BASIC + * DRAW_LG = PETSC_VIEWER_DRAW_LG + * DRAW_LG_XRANGE = PETSC_VIEWER_DRAW_LG_XRANGE # <<<<<<<<<<<<<< + * DRAW_CONTOUR = PETSC_VIEWER_DRAW_CONTOUR + * DRAW_PORTS = PETSC_VIEWER_DRAW_PORTS + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DRAW_LG_XRANGE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW_LG_XRANGE, __pyx_t_4) < 0) __PYX_ERR(36, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":44 + * DRAW_LG = PETSC_VIEWER_DRAW_LG + * DRAW_LG_XRANGE = PETSC_VIEWER_DRAW_LG_XRANGE + * DRAW_CONTOUR = PETSC_VIEWER_DRAW_CONTOUR # <<<<<<<<<<<<<< + * DRAW_PORTS = PETSC_VIEWER_DRAW_PORTS + * VTK_VTS = PETSC_VIEWER_VTK_VTS + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DRAW_CONTOUR); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW_CONTOUR, __pyx_t_4) < 0) __PYX_ERR(36, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":45 + * DRAW_LG_XRANGE = PETSC_VIEWER_DRAW_LG_XRANGE + * DRAW_CONTOUR = PETSC_VIEWER_DRAW_CONTOUR + * DRAW_PORTS = PETSC_VIEWER_DRAW_PORTS # <<<<<<<<<<<<<< + * VTK_VTS = PETSC_VIEWER_VTK_VTS + * VTK_VTR = PETSC_VIEWER_VTK_VTR + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_DRAW_PORTS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_DRAW_PORTS, __pyx_t_4) < 0) __PYX_ERR(36, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":46 + * DRAW_CONTOUR = PETSC_VIEWER_DRAW_CONTOUR + * DRAW_PORTS = PETSC_VIEWER_DRAW_PORTS + * VTK_VTS = PETSC_VIEWER_VTK_VTS # <<<<<<<<<<<<<< + * VTK_VTR = PETSC_VIEWER_VTK_VTR + * VTK_VTU = PETSC_VIEWER_VTK_VTU + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_VTK_VTS); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_VTK_VTS, __pyx_t_4) < 0) __PYX_ERR(36, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":47 + * DRAW_PORTS = PETSC_VIEWER_DRAW_PORTS + * VTK_VTS = PETSC_VIEWER_VTK_VTS + * VTK_VTR = PETSC_VIEWER_VTK_VTR # <<<<<<<<<<<<<< + * VTK_VTU = PETSC_VIEWER_VTK_VTU + * BINARY_MATLAB = PETSC_VIEWER_BINARY_MATLAB + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_VTK_VTR); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_VTK_VTR, __pyx_t_4) < 0) __PYX_ERR(36, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":48 + * VTK_VTS = PETSC_VIEWER_VTK_VTS + * VTK_VTR = PETSC_VIEWER_VTK_VTR + * VTK_VTU = PETSC_VIEWER_VTK_VTU # <<<<<<<<<<<<<< + * BINARY_MATLAB = PETSC_VIEWER_BINARY_MATLAB + * NATIVE = PETSC_VIEWER_NATIVE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_VTK_VTU); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_VTK_VTU, __pyx_t_4) < 0) __PYX_ERR(36, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":49 + * VTK_VTR = PETSC_VIEWER_VTK_VTR + * VTK_VTU = PETSC_VIEWER_VTK_VTU + * BINARY_MATLAB = PETSC_VIEWER_BINARY_MATLAB # <<<<<<<<<<<<<< + * NATIVE = PETSC_VIEWER_NATIVE + * HDF5_PETSC = PETSC_VIEWER_HDF5_PETSC + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_BINARY_MATLAB); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_BINARY_MATLAB, __pyx_t_4) < 0) __PYX_ERR(36, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":50 + * VTK_VTU = PETSC_VIEWER_VTK_VTU + * BINARY_MATLAB = PETSC_VIEWER_BINARY_MATLAB + * NATIVE = PETSC_VIEWER_NATIVE # <<<<<<<<<<<<<< + * HDF5_PETSC = PETSC_VIEWER_HDF5_PETSC + * HDF5_VIZ = PETSC_VIEWER_HDF5_VIZ + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_NATIVE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_NATIVE, __pyx_t_4) < 0) __PYX_ERR(36, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":51 + * BINARY_MATLAB = PETSC_VIEWER_BINARY_MATLAB + * NATIVE = PETSC_VIEWER_NATIVE + * HDF5_PETSC = PETSC_VIEWER_HDF5_PETSC # <<<<<<<<<<<<<< + * HDF5_VIZ = PETSC_VIEWER_HDF5_VIZ + * HDF5_XDMF = PETSC_VIEWER_HDF5_XDMF + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_HDF5_PETSC); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HDF5_PETSC, __pyx_t_4) < 0) __PYX_ERR(36, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":52 + * NATIVE = PETSC_VIEWER_NATIVE + * HDF5_PETSC = PETSC_VIEWER_HDF5_PETSC + * HDF5_VIZ = PETSC_VIEWER_HDF5_VIZ # <<<<<<<<<<<<<< + * HDF5_XDMF = PETSC_VIEWER_HDF5_XDMF + * HDF5_MAT = PETSC_VIEWER_HDF5_MAT + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_HDF5_VIZ); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HDF5_VIZ, __pyx_t_4) < 0) __PYX_ERR(36, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":53 + * HDF5_PETSC = PETSC_VIEWER_HDF5_PETSC + * HDF5_VIZ = PETSC_VIEWER_HDF5_VIZ + * HDF5_XDMF = PETSC_VIEWER_HDF5_XDMF # <<<<<<<<<<<<<< + * HDF5_MAT = PETSC_VIEWER_HDF5_MAT + * NOFORMAT = PETSC_VIEWER_NOFORMAT + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_HDF5_XDMF); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HDF5_XDMF, __pyx_t_4) < 0) __PYX_ERR(36, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":54 + * HDF5_VIZ = PETSC_VIEWER_HDF5_VIZ + * HDF5_XDMF = PETSC_VIEWER_HDF5_XDMF + * HDF5_MAT = PETSC_VIEWER_HDF5_MAT # <<<<<<<<<<<<<< + * NOFORMAT = PETSC_VIEWER_NOFORMAT + * LOAD_BALANCE = PETSC_VIEWER_LOAD_BALANCE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_HDF5_MAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HDF5_MAT, __pyx_t_4) < 0) __PYX_ERR(36, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":55 + * HDF5_XDMF = PETSC_VIEWER_HDF5_XDMF + * HDF5_MAT = PETSC_VIEWER_HDF5_MAT + * NOFORMAT = PETSC_VIEWER_NOFORMAT # <<<<<<<<<<<<<< + * LOAD_BALANCE = PETSC_VIEWER_LOAD_BALANCE + * FAILED = PETSC_VIEWER_FAILED + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_NOFORMAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_NOFORMAT, __pyx_t_4) < 0) __PYX_ERR(36, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":56 + * HDF5_MAT = PETSC_VIEWER_HDF5_MAT + * NOFORMAT = PETSC_VIEWER_NOFORMAT + * LOAD_BALANCE = PETSC_VIEWER_LOAD_BALANCE # <<<<<<<<<<<<<< + * FAILED = PETSC_VIEWER_FAILED + * + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_LOAD_BALANCE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_LOAD_BALANCE, __pyx_t_4) < 0) __PYX_ERR(36, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":57 + * NOFORMAT = PETSC_VIEWER_NOFORMAT + * LOAD_BALANCE = PETSC_VIEWER_LOAD_BALANCE + * FAILED = PETSC_VIEWER_FAILED # <<<<<<<<<<<<<< + * + * class FileMode(object): + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscViewerFormat(PETSC_VIEWER_FAILED); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_FAILED, __pyx_t_4) < 0) __PYX_ERR(36, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":19 + * EXODUSII = S_(PETSCVIEWEREXODUSII) + * + * class ViewerFormat(object): # <<<<<<<<<<<<<< + * DEFAULT = PETSC_VIEWER_DEFAULT + * ASCII_MATLAB = PETSC_VIEWER_ASCII_MATLAB + */ + __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_ViewerFormat, __pyx_tuple__97, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ViewerFormat, __pyx_t_4) < 0) __PYX_ERR(36, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":59 + * FAILED = PETSC_VIEWER_FAILED + * + * class FileMode(object): # <<<<<<<<<<<<<< + * # native + * READ = PETSC_FILE_MODE_READ + */ + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__98); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_tuple__98, __pyx_n_s_FileMode, __pyx_n_s_FileMode, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":61 + * class FileMode(object): + * # native + * READ = PETSC_FILE_MODE_READ # <<<<<<<<<<<<<< + * WRITE = PETSC_FILE_MODE_WRITE + * APPEND = PETSC_FILE_MODE_APPEND + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscFileMode(FILE_MODE_READ); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_READ, __pyx_t_4) < 0) __PYX_ERR(36, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":62 + * # native + * READ = PETSC_FILE_MODE_READ + * WRITE = PETSC_FILE_MODE_WRITE # <<<<<<<<<<<<<< + * APPEND = PETSC_FILE_MODE_APPEND + * UPDATE = PETSC_FILE_MODE_UPDATE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscFileMode(FILE_MODE_WRITE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_WRITE, __pyx_t_4) < 0) __PYX_ERR(36, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":63 + * READ = PETSC_FILE_MODE_READ + * WRITE = PETSC_FILE_MODE_WRITE + * APPEND = PETSC_FILE_MODE_APPEND # <<<<<<<<<<<<<< + * UPDATE = PETSC_FILE_MODE_UPDATE + * APPEND_UPDATE = PETSC_FILE_MODE_APPEND_UPDATE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscFileMode(FILE_MODE_APPEND); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_APPEND, __pyx_t_4) < 0) __PYX_ERR(36, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":64 + * WRITE = PETSC_FILE_MODE_WRITE + * APPEND = PETSC_FILE_MODE_APPEND + * UPDATE = PETSC_FILE_MODE_UPDATE # <<<<<<<<<<<<<< + * APPEND_UPDATE = PETSC_FILE_MODE_APPEND_UPDATE + * # aliases + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscFileMode(FILE_MODE_UPDATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_UPDATE, __pyx_t_4) < 0) __PYX_ERR(36, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":65 + * APPEND = PETSC_FILE_MODE_APPEND + * UPDATE = PETSC_FILE_MODE_UPDATE + * APPEND_UPDATE = PETSC_FILE_MODE_APPEND_UPDATE # <<<<<<<<<<<<<< + * # aliases + * R, W, A, U = READ, WRITE, APPEND, UPDATE + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscFileMode(FILE_MODE_APPEND_UPDATE); if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_APPEND_UPDATE, __pyx_t_4) < 0) __PYX_ERR(36, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":67 + * APPEND_UPDATE = PETSC_FILE_MODE_APPEND_UPDATE + * # aliases + * R, W, A, U = READ, WRITE, APPEND, UPDATE # <<<<<<<<<<<<<< + * AU = UA = APPEND_UPDATE + * + */ + __pyx_t_4 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_READ); + if (unlikely(!__pyx_t_4)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_READ); + } + if (unlikely(!__pyx_t_4)) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_WRITE); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_WRITE); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_t_6 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_APPEND); + if (unlikely(!__pyx_t_6)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_APPEND); + } + if (unlikely(!__pyx_t_6)) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_UPDATE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_UPDATE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_R, __pyx_t_4) < 0) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_W, __pyx_t_5) < 0) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_A, __pyx_t_6) < 0) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_U, __pyx_t_7) < 0) __PYX_ERR(36, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":68 + * # aliases + * R, W, A, U = READ, WRITE, APPEND, UPDATE + * AU = UA = APPEND_UPDATE # <<<<<<<<<<<<<< + * + * class DrawSize(object): + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_APPEND_UPDATE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_APPEND_UPDATE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_AU, __pyx_t_7) < 0) __PYX_ERR(36, 68, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_UA, __pyx_t_7) < 0) __PYX_ERR(36, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":59 + * FAILED = PETSC_VIEWER_FAILED + * + * class FileMode(object): # <<<<<<<<<<<<<< + * # native + * READ = PETSC_FILE_MODE_READ + */ + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_FileMode, __pyx_tuple__98, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FileMode, __pyx_t_7) < 0) __PYX_ERR(36, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":70 + * AU = UA = APPEND_UPDATE + * + * class DrawSize(object): # <<<<<<<<<<<<<< + * # native + * FULL_SIZE = PETSC_DRAW_FULL_SIZE + */ + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__99); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_tuple__99, __pyx_n_s_DrawSize, __pyx_n_s_DrawSize, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":72 + * class DrawSize(object): + * # native + * FULL_SIZE = PETSC_DRAW_FULL_SIZE # <<<<<<<<<<<<<< + * HALF_SIZE = PETSC_DRAW_HALF_SIZE + * THIRD_SIZE = PETSC_DRAW_THIRD_SIZE + */ + __pyx_t_7 = __Pyx_PyInt_From_int(PETSC_DRAW_FULL_SIZE); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_FULL_SIZE, __pyx_t_7) < 0) __PYX_ERR(36, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":73 + * # native + * FULL_SIZE = PETSC_DRAW_FULL_SIZE + * HALF_SIZE = PETSC_DRAW_HALF_SIZE # <<<<<<<<<<<<<< + * THIRD_SIZE = PETSC_DRAW_THIRD_SIZE + * QUARTER_SIZE = PETSC_DRAW_QUARTER_SIZE + */ + __pyx_t_7 = __Pyx_PyInt_From_int(PETSC_DRAW_HALF_SIZE); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HALF_SIZE, __pyx_t_7) < 0) __PYX_ERR(36, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":74 + * FULL_SIZE = PETSC_DRAW_FULL_SIZE + * HALF_SIZE = PETSC_DRAW_HALF_SIZE + * THIRD_SIZE = PETSC_DRAW_THIRD_SIZE # <<<<<<<<<<<<<< + * QUARTER_SIZE = PETSC_DRAW_QUARTER_SIZE + * # aliases + */ + __pyx_t_7 = __Pyx_PyInt_From_int(PETSC_DRAW_THIRD_SIZE); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_THIRD_SIZE, __pyx_t_7) < 0) __PYX_ERR(36, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":75 + * HALF_SIZE = PETSC_DRAW_HALF_SIZE + * THIRD_SIZE = PETSC_DRAW_THIRD_SIZE + * QUARTER_SIZE = PETSC_DRAW_QUARTER_SIZE # <<<<<<<<<<<<<< + * # aliases + * FULL = FULL_SIZE + */ + __pyx_t_7 = __Pyx_PyInt_From_int(PETSC_DRAW_QUARTER_SIZE); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_QUARTER_SIZE, __pyx_t_7) < 0) __PYX_ERR(36, 75, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":77 + * QUARTER_SIZE = PETSC_DRAW_QUARTER_SIZE + * # aliases + * FULL = FULL_SIZE # <<<<<<<<<<<<<< + * HALF = HALF_SIZE + * THIRD = THIRD_SIZE + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_FULL_SIZE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_FULL_SIZE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_FULL, __pyx_t_7) < 0) __PYX_ERR(36, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":78 + * # aliases + * FULL = FULL_SIZE + * HALF = HALF_SIZE # <<<<<<<<<<<<<< + * THIRD = THIRD_SIZE + * QUARTER = QUARTER_SIZE + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_HALF_SIZE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_HALF_SIZE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_HALF, __pyx_t_7) < 0) __PYX_ERR(36, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":79 + * FULL = FULL_SIZE + * HALF = HALF_SIZE + * THIRD = THIRD_SIZE # <<<<<<<<<<<<<< + * QUARTER = QUARTER_SIZE + * + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_THIRD_SIZE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_THIRD_SIZE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_THIRD, __pyx_t_7) < 0) __PYX_ERR(36, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":80 + * HALF = HALF_SIZE + * THIRD = THIRD_SIZE + * QUARTER = QUARTER_SIZE # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_1, __pyx_n_s_QUARTER_SIZE); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_QUARTER_SIZE); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_QUARTER, __pyx_t_7) < 0) __PYX_ERR(36, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":70 + * AU = UA = APPEND_UPDATE + * + * class DrawSize(object): # <<<<<<<<<<<<<< + * # native + * FULL_SIZE = PETSC_DRAW_FULL_SIZE + */ + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_DrawSize, __pyx_tuple__99, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(36, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DrawSize, __pyx_t_7) < 0) __PYX_ERR(36, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "petsc4py/PETSc/Viewer.pyx":86 + * cdef class Viewer(Object): + * + * Type = ViewerType # <<<<<<<<<<<<<< + * Format = ViewerFormat + * Mode = FileMode + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ViewerType); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_Type, __pyx_t_3) < 0) __PYX_ERR(36, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":87 + * + * Type = ViewerType + * Format = ViewerFormat # <<<<<<<<<<<<<< + * Mode = FileMode + * Size = DrawSize + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ViewerFormat); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_Format, __pyx_t_3) < 0) __PYX_ERR(36, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":88 + * Type = ViewerType + * Format = ViewerFormat + * Mode = FileMode # <<<<<<<<<<<<<< + * Size = DrawSize + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_FileMode); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_Mode, __pyx_t_3) < 0) __PYX_ERR(36, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":89 + * Format = ViewerFormat + * Mode = FileMode + * Size = DrawSize # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_DrawSize); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_Size, __pyx_t_3) < 0) __PYX_ERR(36, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":241 + * + * @classmethod + * def STDOUT(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer, __pyx_n_s_STDOUT); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Viewer.pyx":240 + * CHKERR( PetscViewerRestoreSubViewer(self.vwr, ccomm, &sub.vwr) ) + * + * @classmethod # <<<<<<<<<<<<<< + * def STDOUT(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_STDOUT, __pyx_t_1) < 0) __PYX_ERR(36, 241, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":249 + * + * @classmethod + * def STDERR(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer, __pyx_n_s_STDERR); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":248 + * return viewer + * + * @classmethod # <<<<<<<<<<<<<< + * def STDERR(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_STDERR, __pyx_t_3) < 0) __PYX_ERR(36, 249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":257 + * + * @classmethod + * def ASCII(cls, name, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef const char *cname = NULL + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer, __pyx_n_s_ASCII); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Viewer.pyx":256 + * return viewer + * + * @classmethod # <<<<<<<<<<<<<< + * def ASCII(cls, name, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_ASCII, __pyx_t_1) < 0) __PYX_ERR(36, 257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":266 + * + * @classmethod + * def BINARY(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + __Pyx_GetNameInClass(__pyx_t_1, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer, __pyx_n_s_BINARY); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 266, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + + /* "petsc4py/PETSc/Viewer.pyx":265 + * return viewer + * + * @classmethod # <<<<<<<<<<<<<< + * def BINARY(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_3 = __Pyx_Method_ClassMethod(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_BINARY, __pyx_t_3) < 0) __PYX_ERR(36, 266, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":274 + * + * @classmethod + * def DRAW(cls, comm=None): # <<<<<<<<<<<<<< + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + * cdef Viewer viewer = Viewer() + */ + __Pyx_GetNameInClass(__pyx_t_3, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer, __pyx_n_s_DRAW); if (unlikely(!__pyx_t_3)) __PYX_ERR(36, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Viewer.pyx":273 + * return viewer + * + * @classmethod # <<<<<<<<<<<<<< + * def DRAW(cls, comm=None): + * cdef MPI_Comm ccomm = def_Comm(comm, PETSC_COMM_DEFAULT) + */ + __pyx_t_1 = __Pyx_Method_ClassMethod(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(36, 273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Viewer->tp_dict, __pyx_n_s_DRAW, __pyx_t_1) < 0) __PYX_ERR(36, 274, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Viewer); + + /* "petsc4py/PETSc/Viewer.pyx":423 + * # -------------------------------------------------------------------- + * + * del ViewerType # <<<<<<<<<<<<<< + * del ViewerFormat + * del FileMode + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_ViewerType) < 0) __PYX_ERR(36, 423, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":424 + * + * del ViewerType + * del ViewerFormat # <<<<<<<<<<<<<< + * del FileMode + * del DrawSize + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_ViewerFormat) < 0) __PYX_ERR(36, 424, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":425 + * del ViewerType + * del ViewerFormat + * del FileMode # <<<<<<<<<<<<<< + * del DrawSize + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_FileMode) < 0) __PYX_ERR(36, 425, __pyx_L1_error) + + /* "petsc4py/PETSc/Viewer.pyx":426 + * del ViewerFormat + * del FileMode + * del DrawSize # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DrawSize) < 0) __PYX_ERR(36, 426, __pyx_L1_error) + + /* "petsc4py/PETSc/Random.pyx":3 + * # -------------------------------------------------------------------- + * + * class RandomType(object): # <<<<<<<<<<<<<< + * RAND = S_(PETSCRAND) + * RAND48 = S_(PETSCRAND48) + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__100); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__100, __pyx_n_s_RandomType, __pyx_n_s_RandomType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(37, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Random.pyx":4 + * + * class RandomType(object): + * RAND = S_(PETSCRAND) # <<<<<<<<<<<<<< + * RAND48 = S_(PETSCRAND48) + * SPRNG = S_(PETSCSPRNG) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_S_(PETSCRAND); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_RAND, __pyx_t_7) < 0) __PYX_ERR(37, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Random.pyx":5 + * class RandomType(object): + * RAND = S_(PETSCRAND) + * RAND48 = S_(PETSCRAND48) # <<<<<<<<<<<<<< + * SPRNG = S_(PETSCSPRNG) + * RANDER48 = S_(PETSCRANDER48) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_S_(PETSCRAND48); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_RAND48, __pyx_t_7) < 0) __PYX_ERR(37, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Random.pyx":6 + * RAND = S_(PETSCRAND) + * RAND48 = S_(PETSCRAND48) + * SPRNG = S_(PETSCSPRNG) # <<<<<<<<<<<<<< + * RANDER48 = S_(PETSCRANDER48) + * RANDOM123 = S_(PETSCRANDOM123) + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPRNG); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_SPRNG, __pyx_t_7) < 0) __PYX_ERR(37, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Random.pyx":7 + * RAND48 = S_(PETSCRAND48) + * SPRNG = S_(PETSCSPRNG) + * RANDER48 = S_(PETSCRANDER48) # <<<<<<<<<<<<<< + * RANDOM123 = S_(PETSCRANDOM123) + * + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_S_(PETSCRANDER48); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_RANDER48, __pyx_t_7) < 0) __PYX_ERR(37, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Random.pyx":8 + * SPRNG = S_(PETSCSPRNG) + * RANDER48 = S_(PETSCRANDER48) + * RANDOM123 = S_(PETSCRANDOM123) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_7 = __pyx_f_8petsc4py_5PETSc_S_(PETSCRANDOM123); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_RANDOM123, __pyx_t_7) < 0) __PYX_ERR(37, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Random.pyx":3 + * # -------------------------------------------------------------------- + * + * class RandomType(object): # <<<<<<<<<<<<<< + * RAND = S_(PETSCRAND) + * RAND48 = S_(PETSCRAND48) + */ + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_RandomType, __pyx_tuple__100, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(37, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RandomType, __pyx_t_7) < 0) __PYX_ERR(37, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Random.pyx":14 + * cdef class Random(Object): + * + * Type = RandomType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_RandomType); if (unlikely(!__pyx_t_1)) __PYX_ERR(37, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Random->tp_dict, __pyx_n_s_Type, __pyx_t_1) < 0) __PYX_ERR(37, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Random); + + /* "petsc4py/PETSc/Random.pyx":101 + * # -------------------------------------------------------------------- + * + * del RandomType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_RandomType) < 0) __PYX_ERR(37, 101, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":3 + * # -------------------------------------------------------------------- + * + * class staticproperty(property): # <<<<<<<<<<<<<< + * def __get__(self, *args, **kwargs): + * return self.fget.__get__(*args, **kwargs)() + */ + __pyx_t_1 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__101); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_1, __pyx_tuple__101, __pyx_n_s_staticproperty, __pyx_n_s_staticproperty, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "petsc4py/PETSc/Device.pyx":4 + * + * class staticproperty(property): + * def __get__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * return self.fget.__get__(*args, **kwargs)() + * + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_14staticproperty_1__get__, 0, __pyx_n_s_staticproperty___get, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_3, __pyx_n_s_get, __pyx_t_7) < 0) __PYX_ERR(2, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "petsc4py/PETSc/Device.pyx":3 + * # -------------------------------------------------------------------- + * + * class staticproperty(property): # <<<<<<<<<<<<<< + * def __get__(self, *args, **kwargs): + * return self.fget.__get__(*args, **kwargs)() + */ + __pyx_t_7 = __Pyx_Py3ClassCreate(__pyx_t_1, __pyx_n_s_staticproperty, __pyx_tuple__101, __pyx_t_3, NULL, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_staticproperty, __pyx_t_7) < 0) __PYX_ERR(2, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":21 + * "DeviceType", + * ( + * ("HOST" , PETSC_DEVICE_HOST), # <<<<<<<<<<<<<< + * ("CUDA" , PETSC_DEVICE_CUDA), + * ("HIP" , PETSC_DEVICE_HIP), + */ + __pyx_t_1 = __Pyx_PyInt_From_PetscDeviceType(PETSC_DEVICE_HOST); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_HOST); + __Pyx_GIVEREF(__pyx_n_s_HOST); + PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_HOST); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":22 + * ( + * ("HOST" , PETSC_DEVICE_HOST), + * ("CUDA" , PETSC_DEVICE_CUDA), # <<<<<<<<<<<<<< + * ("HIP" , PETSC_DEVICE_HIP), + * ("SYCL" , PETSC_DEVICE_SYCL), + */ + __pyx_t_1 = __Pyx_PyInt_From_PetscDeviceType(PETSC_DEVICE_CUDA); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(2, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF(__pyx_n_s_CUDA); + __Pyx_GIVEREF(__pyx_n_s_CUDA); + PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_CUDA); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":23 + * ("HOST" , PETSC_DEVICE_HOST), + * ("CUDA" , PETSC_DEVICE_CUDA), + * ("HIP" , PETSC_DEVICE_HIP), # <<<<<<<<<<<<<< + * ("SYCL" , PETSC_DEVICE_SYCL), + * ("DEFAULT" , staticproperty(lambda *_,**__: PETSC_DEVICE_DEFAULT())) + */ + __pyx_t_1 = __Pyx_PyInt_From_PetscDeviceType(PETSC_DEVICE_HIP); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_n_s_HIP); + __Pyx_GIVEREF(__pyx_n_s_HIP); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_HIP); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":24 + * ("CUDA" , PETSC_DEVICE_CUDA), + * ("HIP" , PETSC_DEVICE_HIP), + * ("SYCL" , PETSC_DEVICE_SYCL), # <<<<<<<<<<<<<< + * ("DEFAULT" , staticproperty(lambda *_,**__: PETSC_DEVICE_DEFAULT())) + * ) + */ + __pyx_t_1 = __Pyx_PyInt_From_PetscDeviceType(PETSC_DEVICE_SYCL); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_n_s_SYCL); + __Pyx_GIVEREF(__pyx_n_s_SYCL); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_SYCL); + __Pyx_GIVEREF(__pyx_t_1); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_1); + __pyx_t_1 = 0; + + /* "petsc4py/PETSc/Device.pyx":25 + * ("HIP" , PETSC_DEVICE_HIP), + * ("SYCL" , PETSC_DEVICE_SYCL), + * ("DEFAULT" , staticproperty(lambda *_,**__: PETSC_DEVICE_DEFAULT())) # <<<<<<<<<<<<<< + * ) + * ) + */ + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_staticproperty); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_8petsc4py_5PETSc_16lambda, 0, __pyx_n_s_lambda, NULL, __pyx_n_s_petsc4py_PETSc, __pyx_d, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_n_s_DEFAULT); + __Pyx_GIVEREF(__pyx_n_s_DEFAULT); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_DEFAULT); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Device.pyx":21 + * "DeviceType", + * ( + * ("HOST" , PETSC_DEVICE_HOST), # <<<<<<<<<<<<<< + * ("CUDA" , PETSC_DEVICE_CUDA), + * ("HIP" , PETSC_DEVICE_HIP), + */ + __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_GIVEREF(__pyx_t_3); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_4); + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_6 = 0; + __pyx_t_5 = 0; + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Device.pyx":18 + * return type(class_name, (object, ), attrs) + * + * DeviceType = make_enum_class( # <<<<<<<<<<<<<< + * "DeviceType", + * ( + */ + __pyx_t_4 = __pyx_f_8petsc4py_5PETSc_make_enum_class(__pyx_n_s_DeviceType, ((PyObject*)__pyx_t_8)); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeviceType, __pyx_t_4) < 0) __PYX_ERR(2, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Device.pyx":32 + * "StreamType", + * ( + * ("GLOBAL_BLOCKING" , PETSC_STREAM_GLOBAL_BLOCKING), # <<<<<<<<<<<<<< + * ("DEFAULT_BLOCKING" , PETSC_STREAM_DEFAULT_BLOCKING), + * ("GLOBAL_NONBLOCKING" , PETSC_STREAM_GLOBAL_NONBLOCKING), + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscStreamType(PETSC_STREAM_GLOBAL_BLOCKING); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_n_s_GLOBAL_BLOCKING); + __Pyx_GIVEREF(__pyx_n_s_GLOBAL_BLOCKING); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_GLOBAL_BLOCKING); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Device.pyx":33 + * ( + * ("GLOBAL_BLOCKING" , PETSC_STREAM_GLOBAL_BLOCKING), + * ("DEFAULT_BLOCKING" , PETSC_STREAM_DEFAULT_BLOCKING), # <<<<<<<<<<<<<< + * ("GLOBAL_NONBLOCKING" , PETSC_STREAM_GLOBAL_NONBLOCKING), + * ) + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscStreamType(PETSC_STREAM_DEFAULT_BLOCKING); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_n_s_DEFAULT_BLOCKING); + __Pyx_GIVEREF(__pyx_n_s_DEFAULT_BLOCKING); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_DEFAULT_BLOCKING); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Device.pyx":34 + * ("GLOBAL_BLOCKING" , PETSC_STREAM_GLOBAL_BLOCKING), + * ("DEFAULT_BLOCKING" , PETSC_STREAM_DEFAULT_BLOCKING), + * ("GLOBAL_NONBLOCKING" , PETSC_STREAM_GLOBAL_NONBLOCKING), # <<<<<<<<<<<<<< + * ) + * ) + */ + __pyx_t_4 = __Pyx_PyInt_From_PetscStreamType(PETSC_STREAM_GLOBAL_NONBLOCKING); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_n_s_GLOBAL_NONBLOCKING); + __Pyx_GIVEREF(__pyx_n_s_GLOBAL_NONBLOCKING); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_GLOBAL_NONBLOCKING); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4); + __pyx_t_4 = 0; + + /* "petsc4py/PETSc/Device.pyx":32 + * "StreamType", + * ( + * ("GLOBAL_BLOCKING" , PETSC_STREAM_GLOBAL_BLOCKING), # <<<<<<<<<<<<<< + * ("DEFAULT_BLOCKING" , PETSC_STREAM_DEFAULT_BLOCKING), + * ("GLOBAL_NONBLOCKING" , PETSC_STREAM_GLOBAL_NONBLOCKING), + */ + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_8); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_6); + __pyx_t_8 = 0; + __pyx_t_5 = 0; + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Device.pyx":29 + * ) + * + * StreamType = make_enum_class( # <<<<<<<<<<<<<< + * "StreamType", + * ( + */ + __pyx_t_6 = __pyx_f_8petsc4py_5PETSc_make_enum_class(__pyx_n_s_StreamType, ((PyObject*)__pyx_t_4)); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_StreamType, __pyx_t_6) < 0) __PYX_ERR(2, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Device.pyx":41 + * "DeviceJoinMode", + * ( + * ("DESTROY" , PETSC_DEVICE_CONTEXT_JOIN_DESTROY), # <<<<<<<<<<<<<< + * ("SYNC" , PETSC_DEVICE_CONTEXT_JOIN_SYNC), + * ("NO_SYNC" , PETSC_DEVICE_CONTEXT_JOIN_NO_SYNC), + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscDeviceContextJoinMode(PETSC_DEVICE_CONTEXT_JOIN_DESTROY); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_INCREF(__pyx_n_s_DESTROY); + __Pyx_GIVEREF(__pyx_n_s_DESTROY); + PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_n_s_DESTROY); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Device.pyx":42 + * ( + * ("DESTROY" , PETSC_DEVICE_CONTEXT_JOIN_DESTROY), + * ("SYNC" , PETSC_DEVICE_CONTEXT_JOIN_SYNC), # <<<<<<<<<<<<<< + * ("NO_SYNC" , PETSC_DEVICE_CONTEXT_JOIN_NO_SYNC), + * ) + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscDeviceContextJoinMode(PETSC_DEVICE_CONTEXT_JOIN_SYNC); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(2, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_INCREF(__pyx_n_s_SYNC); + __Pyx_GIVEREF(__pyx_n_s_SYNC); + PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_n_s_SYNC); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Device.pyx":43 + * ("DESTROY" , PETSC_DEVICE_CONTEXT_JOIN_DESTROY), + * ("SYNC" , PETSC_DEVICE_CONTEXT_JOIN_SYNC), + * ("NO_SYNC" , PETSC_DEVICE_CONTEXT_JOIN_NO_SYNC), # <<<<<<<<<<<<<< + * ) + * ) + */ + __pyx_t_6 = __Pyx_PyInt_From_PetscDeviceContextJoinMode(PETSC_DEVICE_CONTEXT_JOIN_NO_SYNC); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_INCREF(__pyx_n_s_NO_SYNC); + __Pyx_GIVEREF(__pyx_n_s_NO_SYNC); + PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_n_s_NO_SYNC); + __Pyx_GIVEREF(__pyx_t_6); + PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Device.pyx":41 + * "DeviceJoinMode", + * ( + * ("DESTROY" , PETSC_DEVICE_CONTEXT_JOIN_DESTROY), # <<<<<<<<<<<<<< + * ("SYNC" , PETSC_DEVICE_CONTEXT_JOIN_SYNC), + * ("NO_SYNC" , PETSC_DEVICE_CONTEXT_JOIN_NO_SYNC), + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_4); + PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); + __Pyx_GIVEREF(__pyx_t_5); + PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5); + __Pyx_GIVEREF(__pyx_t_8); + PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_8); + __pyx_t_4 = 0; + __pyx_t_5 = 0; + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Device.pyx":38 + * ) + * + * DeviceJoinMode = make_enum_class( # <<<<<<<<<<<<<< + * "DeviceJoinMode", + * ( + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_make_enum_class(__pyx_n_s_DeviceJoinMode, ((PyObject*)__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DeviceJoinMode, __pyx_t_8) < 0) __PYX_ERR(2, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Device.pyx":51 + * cdef class Device: + * + * Type = DeviceType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DeviceType); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device->tp_dict, __pyx_n_s_Type, __pyx_t_8) < 0) __PYX_ERR(2, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Device); + + /* "petsc4py/PETSc/Device.pyx":60 + * + * @classmethod + * def create(cls, dtype = None, device_id = PETSC_DECIDE): # <<<<<<<<<<<<<< + * cdef PetscInt cdevice_id = asInt(device_id) + * cdef PetscDeviceType cdevice_type = asDeviceType(dtype if dtype is not None else cls.Type.DEFAULT) + */ + __pyx_t_8 = __Pyx_PyInt_From_int(PETSC_DECIDE); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_k__30 = __pyx_t_8; + __Pyx_GIVEREF(__pyx_t_8); + __pyx_t_8 = 0; + + /* "petsc4py/PETSc/Device.pyx":59 + * self.destroy() + * + * @classmethod # <<<<<<<<<<<<<< + * def create(cls, dtype = None, device_id = PETSC_DECIDE): + * cdef PetscInt cdevice_id = asInt(device_id) + */ + __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device, __pyx_n_s_create); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device->tp_dict, __pyx_n_s_create, __pyx_t_6) < 0) __PYX_ERR(2, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Device); + + /* "petsc4py/PETSc/Device.pyx":102 + * + * @staticmethod + * def setDefaultType(device_type): # <<<<<<<<<<<<<< + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + * + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_6Device_17setDefaultType, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device->tp_dict, __pyx_n_s_setDefaultType, __pyx_t_6) < 0) __PYX_ERR(2, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Device); + + /* "petsc4py/PETSc/Device.pyx":101 + * return self.getDeviceId() + * + * @staticmethod # <<<<<<<<<<<<<< + * def setDefaultType(device_type): + * cdef PetscDeviceType cdevice_type = asDeviceType(device_type) + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device, __pyx_n_s_setDefaultType); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Device->tp_dict, __pyx_n_s_setDefaultType, __pyx_t_8) < 0) __PYX_ERR(2, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Device); + + /* "petsc4py/PETSc/Device.pyx":111 + * cdef class DeviceContext(Object): + * + * JoinMode = DeviceJoinMode # <<<<<<<<<<<<<< + * StreamType = StreamType + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_DeviceJoinMode); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_JoinMode, __pyx_t_8) < 0) __PYX_ERR(2, 111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":112 + * + * JoinMode = DeviceJoinMode + * StreamType = StreamType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext, __pyx_n_s_StreamType); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_StreamType, __pyx_t_8) < 0) __PYX_ERR(2, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":122 + * + * @classmethod + * def create(cls): # <<<<<<<<<<<<<< + * cdef DeviceContext dctx = cls() + * + */ + __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext, __pyx_n_s_create); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Device.pyx":121 + * self.destroy() + * + * @classmethod # <<<<<<<<<<<<<< + * def create(cls): + * cdef DeviceContext dctx = cls() + */ + __pyx_t_6 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_create, __pyx_t_6) < 0) __PYX_ERR(2, 122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":238 + * + * @staticmethod + * def getCurrent(): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext dctx = NULL + * + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_13DeviceContext_33getCurrent, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_getCurrent, __pyx_t_6) < 0) __PYX_ERR(2, 238, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":237 + * CHKERR(PetscDeviceContextViewFromOptions(self.dctx, cobj, cname)) + * + * @staticmethod # <<<<<<<<<<<<<< + * def getCurrent(): + * cdef PetscDeviceContext dctx = NULL + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext, __pyx_n_s_getCurrent); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 238, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_getCurrent, __pyx_t_8) < 0) __PYX_ERR(2, 238, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":245 + * + * @staticmethod + * def setCurrent(dctx): # <<<<<<<<<<<<<< + * cdef PetscDeviceContext cdctx = NULL + * + */ + __pyx_t_8 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_13DeviceContext_35setCurrent, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_setCurrent, __pyx_t_8) < 0) __PYX_ERR(2, 245, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":244 + * return PyPetscDeviceContext_New(dctx) + * + * @staticmethod # <<<<<<<<<<<<<< + * def setCurrent(dctx): + * cdef PetscDeviceContext cdctx = NULL + */ + __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext, __pyx_n_s_setCurrent); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_staticmethod, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(2, 244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DeviceContext->tp_dict, __pyx_n_s_setCurrent, __pyx_t_6) < 0) __PYX_ERR(2, 245, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DeviceContext); + + /* "petsc4py/PETSc/Device.pyx":261 + * # -------------------------------------------------------------------- + * + * del DeviceType # <<<<<<<<<<<<<< + * del DeviceJoinMode + * del StreamType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DeviceType) < 0) __PYX_ERR(2, 261, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":262 + * + * del DeviceType + * del DeviceJoinMode # <<<<<<<<<<<<<< + * del StreamType + * del staticproperty + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DeviceJoinMode) < 0) __PYX_ERR(2, 262, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":263 + * del DeviceType + * del DeviceJoinMode + * del StreamType # <<<<<<<<<<<<<< + * del staticproperty + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_StreamType) < 0) __PYX_ERR(2, 263, __pyx_L1_error) + + /* "petsc4py/PETSc/Device.pyx":264 + * del DeviceJoinMode + * del StreamType + * del staticproperty # <<<<<<<<<<<<<< + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_staticproperty) < 0) __PYX_ERR(2, 264, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":3 + * # -------------------------------------------------------------------- + * + * class ISType(object): # <<<<<<<<<<<<<< + * GENERAL = S_(ISGENERAL) + * BLOCK = S_(ISBLOCK) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__110); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__110, __pyx_n_s_ISType, __pyx_n_s_ISType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(38, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/IS.pyx":4 + * + * class ISType(object): + * GENERAL = S_(ISGENERAL) # <<<<<<<<<<<<<< + * BLOCK = S_(ISBLOCK) + * STRIDE = S_(ISSTRIDE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(ISGENERAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GENERAL, __pyx_t_5) < 0) __PYX_ERR(38, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":5 + * class ISType(object): + * GENERAL = S_(ISGENERAL) + * BLOCK = S_(ISBLOCK) # <<<<<<<<<<<<<< + * STRIDE = S_(ISSTRIDE) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(ISBLOCK); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BLOCK, __pyx_t_5) < 0) __PYX_ERR(38, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":6 + * GENERAL = S_(ISGENERAL) + * BLOCK = S_(ISBLOCK) + * STRIDE = S_(ISSTRIDE) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(ISSTRIDE); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STRIDE, __pyx_t_5) < 0) __PYX_ERR(38, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":3 + * # -------------------------------------------------------------------- + * + * class ISType(object): # <<<<<<<<<<<<<< + * GENERAL = S_(ISGENERAL) + * BLOCK = S_(ISBLOCK) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_ISType, __pyx_tuple__110, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ISType, __pyx_t_5) < 0) __PYX_ERR(38, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/IS.pyx":12 + * cdef class IS(Object): + * + * Type = ISType # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ISType); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_IS->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(38, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_IS); + + /* "petsc4py/PETSc/IS.pyx":357 + * + * + * class GLMapMode(object): # <<<<<<<<<<<<<< + * MASK = PETSC_IS_GTOLM_MASK + * DROP = PETSC_IS_GTOLM_DROP + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__111); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__111, __pyx_n_s_GLMapMode, __pyx_n_s_GLMapMode, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(38, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/IS.pyx":358 + * + * class GLMapMode(object): + * MASK = PETSC_IS_GTOLM_MASK # <<<<<<<<<<<<<< + * DROP = PETSC_IS_GTOLM_DROP + * + */ + __pyx_t_5 = __Pyx_PyInt_From_ISGlobalToLocalMappingMode(IS_GTOLM_MASK); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 358, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MASK, __pyx_t_5) < 0) __PYX_ERR(38, 358, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":359 + * class GLMapMode(object): + * MASK = PETSC_IS_GTOLM_MASK + * DROP = PETSC_IS_GTOLM_DROP # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __Pyx_PyInt_From_ISGlobalToLocalMappingMode(IS_GTOLM_DROP); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 359, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DROP, __pyx_t_5) < 0) __PYX_ERR(38, 359, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":357 + * + * + * class GLMapMode(object): # <<<<<<<<<<<<<< + * MASK = PETSC_IS_GTOLM_MASK + * DROP = PETSC_IS_GTOLM_DROP + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_GLMapMode, __pyx_tuple__111, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_GLMapMode, __pyx_t_5) < 0) __PYX_ERR(38, 357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/IS.pyx":362 + * + * + * class LGMapType(object): # <<<<<<<<<<<<<< + * BASIC = S_(ISLOCALTOGLOBALMAPPINGBASIC) + * HASH = S_(ISLOCALTOGLOBALMAPPINGHASH) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__112); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__112, __pyx_n_s_LGMapType, __pyx_n_s_LGMapType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(38, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/IS.pyx":363 + * + * class LGMapType(object): + * BASIC = S_(ISLOCALTOGLOBALMAPPINGBASIC) # <<<<<<<<<<<<<< + * HASH = S_(ISLOCALTOGLOBALMAPPINGHASH) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(ISLOCALTOGLOBALMAPPINGBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(38, 363, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":364 + * class LGMapType(object): + * BASIC = S_(ISLOCALTOGLOBALMAPPINGBASIC) + * HASH = S_(ISLOCALTOGLOBALMAPPINGHASH) # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(ISLOCALTOGLOBALMAPPINGHASH); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HASH, __pyx_t_5) < 0) __PYX_ERR(38, 364, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/IS.pyx":362 + * + * + * class LGMapType(object): # <<<<<<<<<<<<<< + * BASIC = S_(ISLOCALTOGLOBALMAPPINGBASIC) + * HASH = S_(ISLOCALTOGLOBALMAPPINGHASH) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_LGMapType, __pyx_tuple__112, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(38, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LGMapType, __pyx_t_5) < 0) __PYX_ERR(38, 362, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/IS.pyx":371 + * cdef class LGMap(Object): + * + * MapMode = GLMapMode # <<<<<<<<<<<<<< + * + * Type = LGMapType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_GLMapMode); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 371, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap->tp_dict, __pyx_n_s_MapMode, __pyx_t_6) < 0) __PYX_ERR(38, 371, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_LGMap); + + /* "petsc4py/PETSc/IS.pyx":373 + * MapMode = GLMapMode + * + * Type = LGMapType # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_LGMapType); if (unlikely(!__pyx_t_6)) __PYX_ERR(38, 373, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_LGMap->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(38, 373, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_LGMap); + + /* "petsc4py/PETSc/IS.pyx":584 + * # -------------------------------------------------------------------- + * + * del ISType # <<<<<<<<<<<<<< + * del GLMapMode + * del LGMapType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_ISType) < 0) __PYX_ERR(38, 584, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":585 + * + * del ISType + * del GLMapMode # <<<<<<<<<<<<<< + * del LGMapType + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_GLMapMode) < 0) __PYX_ERR(38, 585, __pyx_L1_error) + + /* "petsc4py/PETSc/IS.pyx":586 + * del ISType + * del GLMapMode + * del LGMapType # <<<<<<<<<<<<<< + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_LGMapType) < 0) __PYX_ERR(38, 586, __pyx_L1_error) + + /* "petsc4py/PETSc/SF.pyx":3 + * # -------------------------------------------------------------------- + * + * class SFType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__113); if (unlikely(!__pyx_t_6)) __PYX_ERR(39, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__113, __pyx_n_s_SFType, __pyx_n_s_SFType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(39, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/SF.pyx":4 + * + * class SFType(object): + * BASIC = S_(PETSCSFBASIC) # <<<<<<<<<<<<<< + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(39, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":5 + * class SFType(object): + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) # <<<<<<<<<<<<<< + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFNEIGHBOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEIGHBOR, __pyx_t_5) < 0) __PYX_ERR(39, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":6 + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) # <<<<<<<<<<<<<< + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLGATHERV); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLGATHERV, __pyx_t_5) < 0) __PYX_ERR(39, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":7 + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) # <<<<<<<<<<<<<< + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLGATHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLGATHER, __pyx_t_5) < 0) __PYX_ERR(39, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":8 + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) # <<<<<<<<<<<<<< + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFGATHERV); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GATHERV, __pyx_t_5) < 0) __PYX_ERR(39, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":9 + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) # <<<<<<<<<<<<<< + * ALLTOALL = S_(PETSCSFALLTOALL) + * WINDOW = S_(PETSCSFWINDOW) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFGATHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GATHER, __pyx_t_5) < 0) __PYX_ERR(39, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":10 + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) # <<<<<<<<<<<<<< + * WINDOW = S_(PETSCSFWINDOW) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLTOALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLTOALL, __pyx_t_5) < 0) __PYX_ERR(39, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":11 + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) + * WINDOW = S_(PETSCSFWINDOW) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFWINDOW); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_WINDOW, __pyx_t_5) < 0) __PYX_ERR(39, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SF.pyx":3 + * # -------------------------------------------------------------------- + * + * class SFType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_SFType, __pyx_tuple__113, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(39, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SFType, __pyx_t_5) < 0) __PYX_ERR(39, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/SF.pyx":17 + * cdef class SF(Object): + * + * Type = SFType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SFType); if (unlikely(!__pyx_t_6)) __PYX_ERR(39, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SF->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(39, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SF); + + /* "petsc4py/PETSc/SF.pyx":232 + * # -------------------------------------------------------------------- + * + * del SFType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_SFType) < 0) __PYX_ERR(39, 232, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":3 + * # -------------------------------------------------------------------- + * + * class VecType(object): # <<<<<<<<<<<<<< + * SEQ = S_(VECSEQ) + * MPI = S_(VECMPI) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__114); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__114, __pyx_n_s_VecType, __pyx_n_s_VecType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Vec.pyx":4 + * + * class VecType(object): + * SEQ = S_(VECSEQ) # <<<<<<<<<<<<<< + * MPI = S_(VECMPI) + * STANDARD = S_(VECSTANDARD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSEQ); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQ, __pyx_t_5) < 0) __PYX_ERR(40, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":5 + * class VecType(object): + * SEQ = S_(VECSEQ) + * MPI = S_(VECMPI) # <<<<<<<<<<<<<< + * STANDARD = S_(VECSTANDARD) + * SHARED = S_(VECSHARED) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECMPI); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPI, __pyx_t_5) < 0) __PYX_ERR(40, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":6 + * SEQ = S_(VECSEQ) + * MPI = S_(VECMPI) + * STANDARD = S_(VECSTANDARD) # <<<<<<<<<<<<<< + * SHARED = S_(VECSHARED) + * SEQVIENNACL= S_(VECSEQVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSTANDARD); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STANDARD, __pyx_t_5) < 0) __PYX_ERR(40, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":7 + * MPI = S_(VECMPI) + * STANDARD = S_(VECSTANDARD) + * SHARED = S_(VECSHARED) # <<<<<<<<<<<<<< + * SEQVIENNACL= S_(VECSEQVIENNACL) + * MPIVIENNACL= S_(VECMPIVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSHARED); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHARED, __pyx_t_5) < 0) __PYX_ERR(40, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":8 + * STANDARD = S_(VECSTANDARD) + * SHARED = S_(VECSHARED) + * SEQVIENNACL= S_(VECSEQVIENNACL) # <<<<<<<<<<<<<< + * MPIVIENNACL= S_(VECMPIVIENNACL) + * VIENNACL = S_(VECVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSEQVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQVIENNACL, __pyx_t_5) < 0) __PYX_ERR(40, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":9 + * SHARED = S_(VECSHARED) + * SEQVIENNACL= S_(VECSEQVIENNACL) + * MPIVIENNACL= S_(VECMPIVIENNACL) # <<<<<<<<<<<<<< + * VIENNACL = S_(VECVIENNACL) + * SEQCUDA = S_(VECSEQCUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECMPIVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIVIENNACL, __pyx_t_5) < 0) __PYX_ERR(40, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":10 + * SEQVIENNACL= S_(VECSEQVIENNACL) + * MPIVIENNACL= S_(VECMPIVIENNACL) + * VIENNACL = S_(VECVIENNACL) # <<<<<<<<<<<<<< + * SEQCUDA = S_(VECSEQCUDA) + * MPICUDA = S_(VECMPICUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_VIENNACL, __pyx_t_5) < 0) __PYX_ERR(40, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":11 + * MPIVIENNACL= S_(VECMPIVIENNACL) + * VIENNACL = S_(VECVIENNACL) + * SEQCUDA = S_(VECSEQCUDA) # <<<<<<<<<<<<<< + * MPICUDA = S_(VECMPICUDA) + * CUDA = S_(VECCUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSEQCUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQCUDA, __pyx_t_5) < 0) __PYX_ERR(40, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":12 + * VIENNACL = S_(VECVIENNACL) + * SEQCUDA = S_(VECSEQCUDA) + * MPICUDA = S_(VECMPICUDA) # <<<<<<<<<<<<<< + * CUDA = S_(VECCUDA) + * SEQHIP = S_(VECSEQHIP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECMPICUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPICUDA, __pyx_t_5) < 0) __PYX_ERR(40, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":13 + * SEQCUDA = S_(VECSEQCUDA) + * MPICUDA = S_(VECMPICUDA) + * CUDA = S_(VECCUDA) # <<<<<<<<<<<<<< + * SEQHIP = S_(VECSEQHIP) + * MPIHIP = S_(VECMPIHIP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECCUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CUDA, __pyx_t_5) < 0) __PYX_ERR(40, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":14 + * MPICUDA = S_(VECMPICUDA) + * CUDA = S_(VECCUDA) + * SEQHIP = S_(VECSEQHIP) # <<<<<<<<<<<<<< + * MPIHIP = S_(VECMPIHIP) + * HIP = S_(VECHIP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSEQHIP); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQHIP, __pyx_t_5) < 0) __PYX_ERR(40, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":15 + * CUDA = S_(VECCUDA) + * SEQHIP = S_(VECSEQHIP) + * MPIHIP = S_(VECMPIHIP) # <<<<<<<<<<<<<< + * HIP = S_(VECHIP) + * NEST = S_(VECNEST) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECMPIHIP); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIHIP, __pyx_t_5) < 0) __PYX_ERR(40, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":16 + * SEQHIP = S_(VECSEQHIP) + * MPIHIP = S_(VECMPIHIP) + * HIP = S_(VECHIP) # <<<<<<<<<<<<<< + * NEST = S_(VECNEST) + * SEQKOKKOS = S_(VECSEQKOKKOS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECHIP); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HIP, __pyx_t_5) < 0) __PYX_ERR(40, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":17 + * MPIHIP = S_(VECMPIHIP) + * HIP = S_(VECHIP) + * NEST = S_(VECNEST) # <<<<<<<<<<<<<< + * SEQKOKKOS = S_(VECSEQKOKKOS) + * MPIKOKKOS = S_(VECMPIKOKKOS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECNEST); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEST, __pyx_t_5) < 0) __PYX_ERR(40, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":18 + * HIP = S_(VECHIP) + * NEST = S_(VECNEST) + * SEQKOKKOS = S_(VECSEQKOKKOS) # <<<<<<<<<<<<<< + * MPIKOKKOS = S_(VECMPIKOKKOS) + * KOKKOS = S_(VECKOKKOS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECSEQKOKKOS); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQKOKKOS, __pyx_t_5) < 0) __PYX_ERR(40, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":19 + * NEST = S_(VECNEST) + * SEQKOKKOS = S_(VECSEQKOKKOS) + * MPIKOKKOS = S_(VECMPIKOKKOS) # <<<<<<<<<<<<<< + * KOKKOS = S_(VECKOKKOS) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECMPIKOKKOS); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIKOKKOS, __pyx_t_5) < 0) __PYX_ERR(40, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":20 + * SEQKOKKOS = S_(VECSEQKOKKOS) + * MPIKOKKOS = S_(VECMPIKOKKOS) + * KOKKOS = S_(VECKOKKOS) # <<<<<<<<<<<<<< + * + * class VecOption(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(VECKOKKOS); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KOKKOS, __pyx_t_5) < 0) __PYX_ERR(40, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":3 + * # -------------------------------------------------------------------- + * + * class VecType(object): # <<<<<<<<<<<<<< + * SEQ = S_(VECSEQ) + * MPI = S_(VECMPI) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_VecType, __pyx_tuple__114, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_VecType, __pyx_t_5) < 0) __PYX_ERR(40, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Vec.pyx":22 + * KOKKOS = S_(VECKOKKOS) + * + * class VecOption(object): # <<<<<<<<<<<<<< + * IGNORE_OFF_PROC_ENTRIES = VEC_IGNORE_OFF_PROC_ENTRIES + * IGNORE_NEGATIVE_INDICES = VEC_IGNORE_NEGATIVE_INDICES + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__115); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__115, __pyx_n_s_VecOption, __pyx_n_s_VecOption, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(40, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Vec.pyx":23 + * + * class VecOption(object): + * IGNORE_OFF_PROC_ENTRIES = VEC_IGNORE_OFF_PROC_ENTRIES # <<<<<<<<<<<<<< + * IGNORE_NEGATIVE_INDICES = VEC_IGNORE_NEGATIVE_INDICES + * + */ + __pyx_t_5 = __Pyx_PyInt_From_VecOption(VEC_IGNORE_OFF_PROC_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IGNORE_OFF_PROC_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(40, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":24 + * class VecOption(object): + * IGNORE_OFF_PROC_ENTRIES = VEC_IGNORE_OFF_PROC_ENTRIES + * IGNORE_NEGATIVE_INDICES = VEC_IGNORE_NEGATIVE_INDICES # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_VecOption(VEC_IGNORE_NEGATIVE_INDICES); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IGNORE_NEGATIVE_INDICES, __pyx_t_5) < 0) __PYX_ERR(40, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Vec.pyx":22 + * KOKKOS = S_(VECKOKKOS) + * + * class VecOption(object): # <<<<<<<<<<<<<< + * IGNORE_OFF_PROC_ENTRIES = VEC_IGNORE_OFF_PROC_ENTRIES + * IGNORE_NEGATIVE_INDICES = VEC_IGNORE_NEGATIVE_INDICES + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_VecOption, __pyx_tuple__115, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(40, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_VecOption, __pyx_t_5) < 0) __PYX_ERR(40, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Vec.pyx":30 + * cdef class Vec(Object): + * + * Type = VecType # <<<<<<<<<<<<<< + * Option = VecOption + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_VecType); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(40, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Vec); + + /* "petsc4py/PETSc/Vec.pyx":31 + * + * Type = VecType + * Option = VecOption # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_VecOption); if (unlikely(!__pyx_t_6)) __PYX_ERR(40, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Vec->tp_dict, __pyx_n_s_Option, __pyx_t_6) < 0) __PYX_ERR(40, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Vec); + + /* "petsc4py/PETSc/Vec.pyx":1387 + * # -------------------------------------------------------------------- + * + * del VecType # <<<<<<<<<<<<<< + * del VecOption + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_VecType) < 0) __PYX_ERR(40, 1387, __pyx_L1_error) + + /* "petsc4py/PETSc/Vec.pyx":1388 + * + * del VecType + * del VecOption # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_VecOption) < 0) __PYX_ERR(40, 1388, __pyx_L1_error) + + /* "petsc4py/PETSc/FE.pyx":3 + * # -------------------------------------------------------------------- + * + * class FEType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCFEBASIC) + * OPENCL = S_(PETSCFEOPENCL) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__116); if (unlikely(!__pyx_t_6)) __PYX_ERR(42, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__116, __pyx_n_s_FEType, __pyx_n_s_FEType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(42, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/FE.pyx":4 + * + * class FEType(object): + * BASIC = S_(PETSCFEBASIC) # <<<<<<<<<<<<<< + * OPENCL = S_(PETSCFEOPENCL) + * COMPOSITE = S_(PETSCFECOMPOSITE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCFEBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(42, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/FE.pyx":5 + * class FEType(object): + * BASIC = S_(PETSCFEBASIC) + * OPENCL = S_(PETSCFEOPENCL) # <<<<<<<<<<<<<< + * COMPOSITE = S_(PETSCFECOMPOSITE) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCFEOPENCL); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_OPENCL, __pyx_t_5) < 0) __PYX_ERR(42, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/FE.pyx":6 + * BASIC = S_(PETSCFEBASIC) + * OPENCL = S_(PETSCFEOPENCL) + * COMPOSITE = S_(PETSCFECOMPOSITE) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCFECOMPOSITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COMPOSITE, __pyx_t_5) < 0) __PYX_ERR(42, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/FE.pyx":3 + * # -------------------------------------------------------------------- + * + * class FEType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCFEBASIC) + * OPENCL = S_(PETSCFEOPENCL) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_FEType, __pyx_tuple__116, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(42, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FEType, __pyx_t_5) < 0) __PYX_ERR(42, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/FE.pyx":12 + * cdef class FE(Object): + * + * Type = FEType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_FEType); if (unlikely(!__pyx_t_6)) __PYX_ERR(42, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_FE->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(42, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_FE); + + /* "petsc4py/PETSc/FE.pyx":152 + * # -------------------------------------------------------------------- + * + * del FEType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_FEType) < 0) __PYX_ERR(42, 152, __pyx_L1_error) + + /* "petsc4py/PETSc/Scatter.pyx":3 + * # -------------------------------------------------------------------- + * + * class ScatterType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__117); if (unlikely(!__pyx_t_6)) __PYX_ERR(43, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__117, __pyx_n_s_ScatterType, __pyx_n_s_ScatterType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(43, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Scatter.pyx":4 + * + * class ScatterType(object): + * BASIC = S_(PETSCSFBASIC) # <<<<<<<<<<<<<< + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(43, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":5 + * class ScatterType(object): + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) # <<<<<<<<<<<<<< + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFNEIGHBOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEIGHBOR, __pyx_t_5) < 0) __PYX_ERR(43, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":6 + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) # <<<<<<<<<<<<<< + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLGATHERV); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLGATHERV, __pyx_t_5) < 0) __PYX_ERR(43, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":7 + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) # <<<<<<<<<<<<<< + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLGATHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLGATHER, __pyx_t_5) < 0) __PYX_ERR(43, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":8 + * ALLGATHERV = S_(PETSCSFALLGATHERV) + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) # <<<<<<<<<<<<<< + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFGATHERV); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GATHERV, __pyx_t_5) < 0) __PYX_ERR(43, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":9 + * ALLGATHER = S_(PETSCSFALLGATHER) + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) # <<<<<<<<<<<<<< + * ALLTOALL = S_(PETSCSFALLTOALL) + * WINDOW = S_(PETSCSFWINDOW) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFGATHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GATHER, __pyx_t_5) < 0) __PYX_ERR(43, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":10 + * GATHERV = S_(PETSCSFGATHERV) + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) # <<<<<<<<<<<<<< + * WINDOW = S_(PETSCSFWINDOW) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFALLTOALL); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALLTOALL, __pyx_t_5) < 0) __PYX_ERR(43, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":11 + * GATHER = S_(PETSCSFGATHER) + * ALLTOALL = S_(PETSCSFALLTOALL) + * WINDOW = S_(PETSCSFWINDOW) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSFWINDOW); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_WINDOW, __pyx_t_5) < 0) __PYX_ERR(43, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":3 + * # -------------------------------------------------------------------- + * + * class ScatterType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCSFBASIC) + * NEIGHBOR = S_(PETSCSFNEIGHBOR) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_ScatterType, __pyx_tuple__117, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(43, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ScatterType, __pyx_t_5) < 0) __PYX_ERR(43, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Scatter.pyx":17 + * cdef class Scatter(Object): + * + * Type = ScatterType # <<<<<<<<<<<<<< + * Mode = ScatterMode + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ScatterType); if (unlikely(!__pyx_t_6)) __PYX_ERR(43, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(43, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Scatter); + + /* "petsc4py/PETSc/Scatter.pyx":18 + * + * Type = ScatterType + * Mode = ScatterMode # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ScatterMode); if (unlikely(!__pyx_t_6)) __PYX_ERR(43, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter->tp_dict, __pyx_n_s_Mode, __pyx_t_6) < 0) __PYX_ERR(43, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Scatter); + + /* "petsc4py/PETSc/Scatter.pyx":74 + * + * @classmethod + * def toAll(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter, __pyx_n_s_toAll); if (unlikely(!__pyx_t_6)) __PYX_ERR(43, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "petsc4py/PETSc/Scatter.pyx":73 + * return scatter + * + * @classmethod # <<<<<<<<<<<<<< + * def toAll(cls, Vec vec): + * cdef Scatter scatter = Scatter() + */ + __pyx_t_8 = __Pyx_Method_ClassMethod(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(43, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter->tp_dict, __pyx_n_s_toAll, __pyx_t_8) < 0) __PYX_ERR(43, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Scatter); + + /* "petsc4py/PETSc/Scatter.pyx":82 + * + * @classmethod + * def toZero(cls, Vec vec): # <<<<<<<<<<<<<< + * cdef Scatter scatter = Scatter() + * cdef Vec ovec = Vec() + */ + __Pyx_GetNameInClass(__pyx_t_8, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter, __pyx_n_s_toZero); if (unlikely(!__pyx_t_8)) __PYX_ERR(43, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Scatter.pyx":81 + * return (scatter, ovec) + * + * @classmethod # <<<<<<<<<<<<<< + * def toZero(cls, Vec vec): + * cdef Scatter scatter = Scatter() + */ + __pyx_t_6 = __Pyx_Method_ClassMethod(__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(43, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Scatter->tp_dict, __pyx_n_s_toZero, __pyx_t_6) < 0) __PYX_ERR(43, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Scatter); + + /* "petsc4py/PETSc/Scatter.pyx":126 + * # -------------------------------------------------------------------- + * + * del ScatterType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_ScatterType) < 0) __PYX_ERR(43, 126, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatType(object): # <<<<<<<<<<<<<< + * SAME = S_(MATSAME) + * MAIJ = S_(MATMAIJ) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__118); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__118, __pyx_n_s_MatType, __pyx_n_s_MatType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":4 + * + * class MatType(object): + * SAME = S_(MATSAME) # <<<<<<<<<<<<<< + * MAIJ = S_(MATMAIJ) + * SEQMAIJ = S_(MATSEQMAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SAME, __pyx_t_5) < 0) __PYX_ERR(45, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":5 + * class MatType(object): + * SAME = S_(MATSAME) + * MAIJ = S_(MATMAIJ) # <<<<<<<<<<<<<< + * SEQMAIJ = S_(MATSEQMAIJ) + * MPIMAIJ = S_(MATMPIMAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":6 + * SAME = S_(MATSAME) + * MAIJ = S_(MATMAIJ) + * SEQMAIJ = S_(MATSEQMAIJ) # <<<<<<<<<<<<<< + * MPIMAIJ = S_(MATMPIMAIJ) + * KAIJ = S_(MATKAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQMAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQMAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":7 + * MAIJ = S_(MATMAIJ) + * SEQMAIJ = S_(MATSEQMAIJ) + * MPIMAIJ = S_(MATMPIMAIJ) # <<<<<<<<<<<<<< + * KAIJ = S_(MATKAIJ) + * SEQKAIJ = S_(MATSEQKAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIMAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIMAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":8 + * SEQMAIJ = S_(MATSEQMAIJ) + * MPIMAIJ = S_(MATMPIMAIJ) + * KAIJ = S_(MATKAIJ) # <<<<<<<<<<<<<< + * SEQKAIJ = S_(MATSEQKAIJ) + * MPIKAIJ = S_(MATMPIKAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATKAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":9 + * MPIMAIJ = S_(MATMPIMAIJ) + * KAIJ = S_(MATKAIJ) + * SEQKAIJ = S_(MATSEQKAIJ) # <<<<<<<<<<<<<< + * MPIKAIJ = S_(MATMPIKAIJ) + * IS = S_(MATIS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQKAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQKAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":10 + * KAIJ = S_(MATKAIJ) + * SEQKAIJ = S_(MATSEQKAIJ) + * MPIKAIJ = S_(MATMPIKAIJ) # <<<<<<<<<<<<<< + * IS = S_(MATIS) + * AIJ = S_(MATAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIKAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIKAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":11 + * SEQKAIJ = S_(MATSEQKAIJ) + * MPIKAIJ = S_(MATMPIKAIJ) + * IS = S_(MATIS) # <<<<<<<<<<<<<< + * AIJ = S_(MATAIJ) + * SEQAIJ = S_(MATSEQAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATIS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IS, __pyx_t_5) < 0) __PYX_ERR(45, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":12 + * MPIKAIJ = S_(MATMPIKAIJ) + * IS = S_(MATIS) + * AIJ = S_(MATAIJ) # <<<<<<<<<<<<<< + * SEQAIJ = S_(MATSEQAIJ) + * MPIAIJ = S_(MATMPIAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJ, __pyx_t_5) < 0) __PYX_ERR(45, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":13 + * IS = S_(MATIS) + * AIJ = S_(MATAIJ) + * SEQAIJ = S_(MATSEQAIJ) # <<<<<<<<<<<<<< + * MPIAIJ = S_(MATMPIAIJ) + * AIJCRL = S_(MATAIJCRL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":14 + * AIJ = S_(MATAIJ) + * SEQAIJ = S_(MATSEQAIJ) + * MPIAIJ = S_(MATMPIAIJ) # <<<<<<<<<<<<<< + * AIJCRL = S_(MATAIJCRL) + * SEQAIJCRL = S_(MATSEQAIJCRL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":15 + * SEQAIJ = S_(MATSEQAIJ) + * MPIAIJ = S_(MATMPIAIJ) + * AIJCRL = S_(MATAIJCRL) # <<<<<<<<<<<<<< + * SEQAIJCRL = S_(MATSEQAIJCRL) + * MPIAIJCRL = S_(MATMPIAIJCRL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJCRL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJCRL, __pyx_t_5) < 0) __PYX_ERR(45, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":16 + * MPIAIJ = S_(MATMPIAIJ) + * AIJCRL = S_(MATAIJCRL) + * SEQAIJCRL = S_(MATSEQAIJCRL) # <<<<<<<<<<<<<< + * MPIAIJCRL = S_(MATMPIAIJCRL) + * AIJCUSPARSE = S_(MATAIJCUSPARSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJCRL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJCRL, __pyx_t_5) < 0) __PYX_ERR(45, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":17 + * AIJCRL = S_(MATAIJCRL) + * SEQAIJCRL = S_(MATSEQAIJCRL) + * MPIAIJCRL = S_(MATMPIAIJCRL) # <<<<<<<<<<<<<< + * AIJCUSPARSE = S_(MATAIJCUSPARSE) + * SEQAIJCUSPARSE = S_(MATSEQAIJCUSPARSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJCRL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJCRL, __pyx_t_5) < 0) __PYX_ERR(45, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":18 + * SEQAIJCRL = S_(MATSEQAIJCRL) + * MPIAIJCRL = S_(MATMPIAIJCRL) + * AIJCUSPARSE = S_(MATAIJCUSPARSE) # <<<<<<<<<<<<<< + * SEQAIJCUSPARSE = S_(MATSEQAIJCUSPARSE) + * MPIAIJCUSPARSE = S_(MATMPIAIJCUSPARSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJCUSPARSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJCUSPARSE, __pyx_t_5) < 0) __PYX_ERR(45, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":19 + * MPIAIJCRL = S_(MATMPIAIJCRL) + * AIJCUSPARSE = S_(MATAIJCUSPARSE) + * SEQAIJCUSPARSE = S_(MATSEQAIJCUSPARSE) # <<<<<<<<<<<<<< + * MPIAIJCUSPARSE = S_(MATMPIAIJCUSPARSE) + * AIJVIENNACL = S_(MATAIJVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJCUSPARSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJCUSPARSE, __pyx_t_5) < 0) __PYX_ERR(45, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":20 + * AIJCUSPARSE = S_(MATAIJCUSPARSE) + * SEQAIJCUSPARSE = S_(MATSEQAIJCUSPARSE) + * MPIAIJCUSPARSE = S_(MATMPIAIJCUSPARSE) # <<<<<<<<<<<<<< + * AIJVIENNACL = S_(MATAIJVIENNACL) + * SEQAIJVIENNACL = S_(MATSEQAIJVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJCUSPARSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJCUSPARSE, __pyx_t_5) < 0) __PYX_ERR(45, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":21 + * SEQAIJCUSPARSE = S_(MATSEQAIJCUSPARSE) + * MPIAIJCUSPARSE = S_(MATMPIAIJCUSPARSE) + * AIJVIENNACL = S_(MATAIJVIENNACL) # <<<<<<<<<<<<<< + * SEQAIJVIENNACL = S_(MATSEQAIJVIENNACL) + * MPIAIJVIENNACL = S_(MATMPIAIJVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJVIENNACL, __pyx_t_5) < 0) __PYX_ERR(45, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":22 + * MPIAIJCUSPARSE = S_(MATMPIAIJCUSPARSE) + * AIJVIENNACL = S_(MATAIJVIENNACL) + * SEQAIJVIENNACL = S_(MATSEQAIJVIENNACL) # <<<<<<<<<<<<<< + * MPIAIJVIENNACL = S_(MATMPIAIJVIENNACL) + * AIJPERM = S_(MATAIJPERM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJVIENNACL, __pyx_t_5) < 0) __PYX_ERR(45, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":23 + * AIJVIENNACL = S_(MATAIJVIENNACL) + * SEQAIJVIENNACL = S_(MATSEQAIJVIENNACL) + * MPIAIJVIENNACL = S_(MATMPIAIJVIENNACL) # <<<<<<<<<<<<<< + * AIJPERM = S_(MATAIJPERM) + * SEQAIJPERM = S_(MATSEQAIJPERM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJVIENNACL, __pyx_t_5) < 0) __PYX_ERR(45, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":24 + * SEQAIJVIENNACL = S_(MATSEQAIJVIENNACL) + * MPIAIJVIENNACL = S_(MATMPIAIJVIENNACL) + * AIJPERM = S_(MATAIJPERM) # <<<<<<<<<<<<<< + * SEQAIJPERM = S_(MATSEQAIJPERM) + * MPIAIJPERM = S_(MATMPIAIJPERM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJPERM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJPERM, __pyx_t_5) < 0) __PYX_ERR(45, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":25 + * MPIAIJVIENNACL = S_(MATMPIAIJVIENNACL) + * AIJPERM = S_(MATAIJPERM) + * SEQAIJPERM = S_(MATSEQAIJPERM) # <<<<<<<<<<<<<< + * MPIAIJPERM = S_(MATMPIAIJPERM) + * AIJSELL = S_(MATAIJSELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJPERM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJPERM, __pyx_t_5) < 0) __PYX_ERR(45, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":26 + * AIJPERM = S_(MATAIJPERM) + * SEQAIJPERM = S_(MATSEQAIJPERM) + * MPIAIJPERM = S_(MATMPIAIJPERM) # <<<<<<<<<<<<<< + * AIJSELL = S_(MATAIJSELL) + * SEQAIJSELL = S_(MATSEQAIJSELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJPERM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJPERM, __pyx_t_5) < 0) __PYX_ERR(45, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":27 + * SEQAIJPERM = S_(MATSEQAIJPERM) + * MPIAIJPERM = S_(MATMPIAIJPERM) + * AIJSELL = S_(MATAIJSELL) # <<<<<<<<<<<<<< + * SEQAIJSELL = S_(MATSEQAIJSELL) + * MPIAIJSELL = S_(MATMPIAIJSELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJSELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJSELL, __pyx_t_5) < 0) __PYX_ERR(45, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":28 + * MPIAIJPERM = S_(MATMPIAIJPERM) + * AIJSELL = S_(MATAIJSELL) + * SEQAIJSELL = S_(MATSEQAIJSELL) # <<<<<<<<<<<<<< + * MPIAIJSELL = S_(MATMPIAIJSELL) + * AIJMKL = S_(MATAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJSELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJSELL, __pyx_t_5) < 0) __PYX_ERR(45, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":29 + * AIJSELL = S_(MATAIJSELL) + * SEQAIJSELL = S_(MATSEQAIJSELL) + * MPIAIJSELL = S_(MATMPIAIJSELL) # <<<<<<<<<<<<<< + * AIJMKL = S_(MATAIJMKL) + * SEQAIJMKL = S_(MATSEQAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJSELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJSELL, __pyx_t_5) < 0) __PYX_ERR(45, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":30 + * SEQAIJSELL = S_(MATSEQAIJSELL) + * MPIAIJSELL = S_(MATMPIAIJSELL) + * AIJMKL = S_(MATAIJMKL) # <<<<<<<<<<<<<< + * SEQAIJMKL = S_(MATSEQAIJMKL) + * MPIAIJMKL = S_(MATMPIAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":31 + * MPIAIJSELL = S_(MATMPIAIJSELL) + * AIJMKL = S_(MATAIJMKL) + * SEQAIJMKL = S_(MATSEQAIJMKL) # <<<<<<<<<<<<<< + * MPIAIJMKL = S_(MATMPIAIJMKL) + * BAIJMKL = S_(MATBAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQAIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":32 + * AIJMKL = S_(MATAIJMKL) + * SEQAIJMKL = S_(MATSEQAIJMKL) + * MPIAIJMKL = S_(MATMPIAIJMKL) # <<<<<<<<<<<<<< + * BAIJMKL = S_(MATBAIJMKL) + * SEQBAIJMKL = S_(MATSEQBAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIAIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":33 + * SEQAIJMKL = S_(MATSEQAIJMKL) + * MPIAIJMKL = S_(MATMPIAIJMKL) + * BAIJMKL = S_(MATBAIJMKL) # <<<<<<<<<<<<<< + * SEQBAIJMKL = S_(MATSEQBAIJMKL) + * MPIBAIJMKL = S_(MATMPIBAIJMKL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATBAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BAIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":34 + * MPIAIJMKL = S_(MATMPIAIJMKL) + * BAIJMKL = S_(MATBAIJMKL) + * SEQBAIJMKL = S_(MATSEQBAIJMKL) # <<<<<<<<<<<<<< + * MPIBAIJMKL = S_(MATMPIBAIJMKL) + * SHELL = S_(MATSHELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQBAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQBAIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":35 + * BAIJMKL = S_(MATBAIJMKL) + * SEQBAIJMKL = S_(MATSEQBAIJMKL) + * MPIBAIJMKL = S_(MATMPIBAIJMKL) # <<<<<<<<<<<<<< + * SHELL = S_(MATSHELL) + * DENSE = S_(MATDENSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIBAIJMKL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIBAIJMKL, __pyx_t_5) < 0) __PYX_ERR(45, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":36 + * SEQBAIJMKL = S_(MATSEQBAIJMKL) + * MPIBAIJMKL = S_(MATMPIBAIJMKL) + * SHELL = S_(MATSHELL) # <<<<<<<<<<<<<< + * DENSE = S_(MATDENSE) + * DENSECUDA = S_(MATDENSECUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSHELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHELL, __pyx_t_5) < 0) __PYX_ERR(45, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":37 + * MPIBAIJMKL = S_(MATMPIBAIJMKL) + * SHELL = S_(MATSHELL) + * DENSE = S_(MATDENSE) # <<<<<<<<<<<<<< + * DENSECUDA = S_(MATDENSECUDA) + * SEQDENSE = S_(MATSEQDENSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATDENSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DENSE, __pyx_t_5) < 0) __PYX_ERR(45, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":38 + * SHELL = S_(MATSHELL) + * DENSE = S_(MATDENSE) + * DENSECUDA = S_(MATDENSECUDA) # <<<<<<<<<<<<<< + * SEQDENSE = S_(MATSEQDENSE) + * SEQDENSECUDA = S_(MATSEQDENSECUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATDENSECUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DENSECUDA, __pyx_t_5) < 0) __PYX_ERR(45, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":39 + * DENSE = S_(MATDENSE) + * DENSECUDA = S_(MATDENSECUDA) + * SEQDENSE = S_(MATSEQDENSE) # <<<<<<<<<<<<<< + * SEQDENSECUDA = S_(MATSEQDENSECUDA) + * MPIDENSE = S_(MATMPIDENSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQDENSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQDENSE, __pyx_t_5) < 0) __PYX_ERR(45, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":40 + * DENSECUDA = S_(MATDENSECUDA) + * SEQDENSE = S_(MATSEQDENSE) + * SEQDENSECUDA = S_(MATSEQDENSECUDA) # <<<<<<<<<<<<<< + * MPIDENSE = S_(MATMPIDENSE) + * MPIDENSECUDA = S_(MATMPIDENSECUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQDENSECUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQDENSECUDA, __pyx_t_5) < 0) __PYX_ERR(45, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":41 + * SEQDENSE = S_(MATSEQDENSE) + * SEQDENSECUDA = S_(MATSEQDENSECUDA) + * MPIDENSE = S_(MATMPIDENSE) # <<<<<<<<<<<<<< + * MPIDENSECUDA = S_(MATMPIDENSECUDA) + * ELEMENTAL = S_(MATELEMENTAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIDENSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIDENSE, __pyx_t_5) < 0) __PYX_ERR(45, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":42 + * SEQDENSECUDA = S_(MATSEQDENSECUDA) + * MPIDENSE = S_(MATMPIDENSE) + * MPIDENSECUDA = S_(MATMPIDENSECUDA) # <<<<<<<<<<<<<< + * ELEMENTAL = S_(MATELEMENTAL) + * BAIJ = S_(MATBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIDENSECUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIDENSECUDA, __pyx_t_5) < 0) __PYX_ERR(45, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":43 + * MPIDENSE = S_(MATMPIDENSE) + * MPIDENSECUDA = S_(MATMPIDENSECUDA) + * ELEMENTAL = S_(MATELEMENTAL) # <<<<<<<<<<<<<< + * BAIJ = S_(MATBAIJ) + * SEQBAIJ = S_(MATSEQBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATELEMENTAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ELEMENTAL, __pyx_t_5) < 0) __PYX_ERR(45, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":44 + * MPIDENSECUDA = S_(MATMPIDENSECUDA) + * ELEMENTAL = S_(MATELEMENTAL) + * BAIJ = S_(MATBAIJ) # <<<<<<<<<<<<<< + * SEQBAIJ = S_(MATSEQBAIJ) + * MPIBAIJ = S_(MATMPIBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":45 + * ELEMENTAL = S_(MATELEMENTAL) + * BAIJ = S_(MATBAIJ) + * SEQBAIJ = S_(MATSEQBAIJ) # <<<<<<<<<<<<<< + * MPIBAIJ = S_(MATMPIBAIJ) + * MPIADJ = S_(MATMPIADJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQBAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":46 + * BAIJ = S_(MATBAIJ) + * SEQBAIJ = S_(MATSEQBAIJ) + * MPIBAIJ = S_(MATMPIBAIJ) # <<<<<<<<<<<<<< + * MPIADJ = S_(MATMPIADJ) + * SBAIJ = S_(MATSBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIBAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":47 + * SEQBAIJ = S_(MATSEQBAIJ) + * MPIBAIJ = S_(MATMPIBAIJ) + * MPIADJ = S_(MATMPIADJ) # <<<<<<<<<<<<<< + * SBAIJ = S_(MATSBAIJ) + * SEQSBAIJ = S_(MATSEQSBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPIADJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPIADJ, __pyx_t_5) < 0) __PYX_ERR(45, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":48 + * MPIBAIJ = S_(MATMPIBAIJ) + * MPIADJ = S_(MATMPIADJ) + * SBAIJ = S_(MATSBAIJ) # <<<<<<<<<<<<<< + * SEQSBAIJ = S_(MATSEQSBAIJ) + * MPISBAIJ = S_(MATMPISBAIJ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SBAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":49 + * MPIADJ = S_(MATMPIADJ) + * SBAIJ = S_(MATSBAIJ) + * SEQSBAIJ = S_(MATSEQSBAIJ) # <<<<<<<<<<<<<< + * MPISBAIJ = S_(MATMPISBAIJ) + * MFFD = S_(MATMFFD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQSBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQSBAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":50 + * SBAIJ = S_(MATSBAIJ) + * SEQSBAIJ = S_(MATSEQSBAIJ) + * MPISBAIJ = S_(MATMPISBAIJ) # <<<<<<<<<<<<<< + * MFFD = S_(MATMFFD) + * NORMAL = S_(MATNORMAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPISBAIJ); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPISBAIJ, __pyx_t_5) < 0) __PYX_ERR(45, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":51 + * SEQSBAIJ = S_(MATSEQSBAIJ) + * MPISBAIJ = S_(MATMPISBAIJ) + * MFFD = S_(MATMFFD) # <<<<<<<<<<<<<< + * NORMAL = S_(MATNORMAL) + * NORMALHERMITIAN = S_(MATNORMALHERMITIAN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMFFD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MFFD, __pyx_t_5) < 0) __PYX_ERR(45, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":52 + * MPISBAIJ = S_(MATMPISBAIJ) + * MFFD = S_(MATMFFD) + * NORMAL = S_(MATNORMAL) # <<<<<<<<<<<<<< + * NORMALHERMITIAN = S_(MATNORMALHERMITIAN) + * LRC = S_(MATLRC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATNORMAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORMAL, __pyx_t_5) < 0) __PYX_ERR(45, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":53 + * MFFD = S_(MATMFFD) + * NORMAL = S_(MATNORMAL) + * NORMALHERMITIAN = S_(MATNORMALHERMITIAN) # <<<<<<<<<<<<<< + * LRC = S_(MATLRC) + * SCATTER = S_(MATSCATTER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATNORMALHERMITIAN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORMALHERMITIAN, __pyx_t_5) < 0) __PYX_ERR(45, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":54 + * NORMAL = S_(MATNORMAL) + * NORMALHERMITIAN = S_(MATNORMALHERMITIAN) + * LRC = S_(MATLRC) # <<<<<<<<<<<<<< + * SCATTER = S_(MATSCATTER) + * BLOCKMAT = S_(MATBLOCKMAT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLRC); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LRC, __pyx_t_5) < 0) __PYX_ERR(45, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":55 + * NORMALHERMITIAN = S_(MATNORMALHERMITIAN) + * LRC = S_(MATLRC) + * SCATTER = S_(MATSCATTER) # <<<<<<<<<<<<<< + * BLOCKMAT = S_(MATBLOCKMAT) + * COMPOSITE = S_(MATCOMPOSITE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSCATTER); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SCATTER, __pyx_t_5) < 0) __PYX_ERR(45, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":56 + * LRC = S_(MATLRC) + * SCATTER = S_(MATSCATTER) + * BLOCKMAT = S_(MATBLOCKMAT) # <<<<<<<<<<<<<< + * COMPOSITE = S_(MATCOMPOSITE) + * FFT = S_(MATFFT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATBLOCKMAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BLOCKMAT, __pyx_t_5) < 0) __PYX_ERR(45, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":57 + * SCATTER = S_(MATSCATTER) + * BLOCKMAT = S_(MATBLOCKMAT) + * COMPOSITE = S_(MATCOMPOSITE) # <<<<<<<<<<<<<< + * FFT = S_(MATFFT) + * FFTW = S_(MATFFTW) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATCOMPOSITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COMPOSITE, __pyx_t_5) < 0) __PYX_ERR(45, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":58 + * BLOCKMAT = S_(MATBLOCKMAT) + * COMPOSITE = S_(MATCOMPOSITE) + * FFT = S_(MATFFT) # <<<<<<<<<<<<<< + * FFTW = S_(MATFFTW) + * SEQCUFFT = S_(MATSEQCUFFT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATFFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FFT, __pyx_t_5) < 0) __PYX_ERR(45, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":59 + * COMPOSITE = S_(MATCOMPOSITE) + * FFT = S_(MATFFT) + * FFTW = S_(MATFFTW) # <<<<<<<<<<<<<< + * SEQCUFFT = S_(MATSEQCUFFT) + * TRANSPOSE = S_(MATTRANSPOSEVIRTUAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATFFTW); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FFTW, __pyx_t_5) < 0) __PYX_ERR(45, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":60 + * FFT = S_(MATFFT) + * FFTW = S_(MATFFTW) + * SEQCUFFT = S_(MATSEQCUFFT) # <<<<<<<<<<<<<< + * TRANSPOSE = S_(MATTRANSPOSEVIRTUAL) + * HERMITIANTRANSPOSE = S_(MATHERMITIANTRANSPOSEVIRTUAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQCUFFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQCUFFT, __pyx_t_5) < 0) __PYX_ERR(45, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":61 + * FFTW = S_(MATFFTW) + * SEQCUFFT = S_(MATSEQCUFFT) + * TRANSPOSE = S_(MATTRANSPOSEVIRTUAL) # <<<<<<<<<<<<<< + * HERMITIANTRANSPOSE = S_(MATHERMITIANTRANSPOSEVIRTUAL) + * SCHURCOMPLEMENT = S_(MATSCHURCOMPLEMENT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATTRANSPOSEVIRTUAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRANSPOSE, __pyx_t_5) < 0) __PYX_ERR(45, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":62 + * SEQCUFFT = S_(MATSEQCUFFT) + * TRANSPOSE = S_(MATTRANSPOSEVIRTUAL) + * HERMITIANTRANSPOSE = S_(MATHERMITIANTRANSPOSEVIRTUAL) # <<<<<<<<<<<<<< + * SCHURCOMPLEMENT = S_(MATSCHURCOMPLEMENT) + * PYTHON = S_(MATPYTHON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATHERMITIANTRANSPOSEVIRTUAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HERMITIANTRANSPOSE, __pyx_t_5) < 0) __PYX_ERR(45, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":63 + * TRANSPOSE = S_(MATTRANSPOSEVIRTUAL) + * HERMITIANTRANSPOSE = S_(MATHERMITIANTRANSPOSEVIRTUAL) + * SCHURCOMPLEMENT = S_(MATSCHURCOMPLEMENT) # <<<<<<<<<<<<<< + * PYTHON = S_(MATPYTHON) + * HYPRE = S_(MATHYPRE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSCHURCOMPLEMENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SCHURCOMPLEMENT, __pyx_t_5) < 0) __PYX_ERR(45, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":64 + * HERMITIANTRANSPOSE = S_(MATHERMITIANTRANSPOSEVIRTUAL) + * SCHURCOMPLEMENT = S_(MATSCHURCOMPLEMENT) + * PYTHON = S_(MATPYTHON) # <<<<<<<<<<<<<< + * HYPRE = S_(MATHYPRE) + * HYPRESTRUCT = S_(MATHYPRESTRUCT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(45, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":65 + * SCHURCOMPLEMENT = S_(MATSCHURCOMPLEMENT) + * PYTHON = S_(MATPYTHON) + * HYPRE = S_(MATHYPRE) # <<<<<<<<<<<<<< + * HYPRESTRUCT = S_(MATHYPRESTRUCT) + * HYPRESSTRUCT = S_(MATHYPRESSTRUCT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATHYPRE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HYPRE, __pyx_t_5) < 0) __PYX_ERR(45, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":66 + * PYTHON = S_(MATPYTHON) + * HYPRE = S_(MATHYPRE) + * HYPRESTRUCT = S_(MATHYPRESTRUCT) # <<<<<<<<<<<<<< + * HYPRESSTRUCT = S_(MATHYPRESSTRUCT) + * SUBMATRIX = S_(MATSUBMATRIX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATHYPRESTRUCT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HYPRESTRUCT, __pyx_t_5) < 0) __PYX_ERR(45, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":67 + * HYPRE = S_(MATHYPRE) + * HYPRESTRUCT = S_(MATHYPRESTRUCT) + * HYPRESSTRUCT = S_(MATHYPRESSTRUCT) # <<<<<<<<<<<<<< + * SUBMATRIX = S_(MATSUBMATRIX) + * LOCALREF = S_(MATLOCALREF) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATHYPRESSTRUCT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HYPRESSTRUCT, __pyx_t_5) < 0) __PYX_ERR(45, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":68 + * HYPRESTRUCT = S_(MATHYPRESTRUCT) + * HYPRESSTRUCT = S_(MATHYPRESSTRUCT) + * SUBMATRIX = S_(MATSUBMATRIX) # <<<<<<<<<<<<<< + * LOCALREF = S_(MATLOCALREF) + * NEST = S_(MATNEST) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSUBMATRIX); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBMATRIX, __pyx_t_5) < 0) __PYX_ERR(45, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":69 + * HYPRESSTRUCT = S_(MATHYPRESSTRUCT) + * SUBMATRIX = S_(MATSUBMATRIX) + * LOCALREF = S_(MATLOCALREF) # <<<<<<<<<<<<<< + * NEST = S_(MATNEST) + * PREALLOCATOR = S_(MATPREALLOCATOR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLOCALREF); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOCALREF, __pyx_t_5) < 0) __PYX_ERR(45, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":70 + * SUBMATRIX = S_(MATSUBMATRIX) + * LOCALREF = S_(MATLOCALREF) + * NEST = S_(MATNEST) # <<<<<<<<<<<<<< + * PREALLOCATOR = S_(MATPREALLOCATOR) + * SELL = S_(MATSELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATNEST); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEST, __pyx_t_5) < 0) __PYX_ERR(45, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":71 + * LOCALREF = S_(MATLOCALREF) + * NEST = S_(MATNEST) + * PREALLOCATOR = S_(MATPREALLOCATOR) # <<<<<<<<<<<<<< + * SELL = S_(MATSELL) + * SEQSELL = S_(MATSEQSELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPREALLOCATOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PREALLOCATOR, __pyx_t_5) < 0) __PYX_ERR(45, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":72 + * NEST = S_(MATNEST) + * PREALLOCATOR = S_(MATPREALLOCATOR) + * SELL = S_(MATSELL) # <<<<<<<<<<<<<< + * SEQSELL = S_(MATSEQSELL) + * MPISELL = S_(MATMPISELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SELL, __pyx_t_5) < 0) __PYX_ERR(45, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":73 + * PREALLOCATOR = S_(MATPREALLOCATOR) + * SELL = S_(MATSELL) + * SEQSELL = S_(MATSEQSELL) # <<<<<<<<<<<<<< + * MPISELL = S_(MATMPISELL) + * DUMMY = S_(MATDUMMY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSEQSELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEQSELL, __pyx_t_5) < 0) __PYX_ERR(45, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":74 + * SELL = S_(MATSELL) + * SEQSELL = S_(MATSEQSELL) + * MPISELL = S_(MATMPISELL) # <<<<<<<<<<<<<< + * DUMMY = S_(MATDUMMY) + * LMVM = S_(MATLMVM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATMPISELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPISELL, __pyx_t_5) < 0) __PYX_ERR(45, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":75 + * SEQSELL = S_(MATSEQSELL) + * MPISELL = S_(MATMPISELL) + * DUMMY = S_(MATDUMMY) # <<<<<<<<<<<<<< + * LMVM = S_(MATLMVM) + * LMVMDFP = S_(MATLMVMDFP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATDUMMY); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DUMMY, __pyx_t_5) < 0) __PYX_ERR(45, 75, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":76 + * MPISELL = S_(MATMPISELL) + * DUMMY = S_(MATDUMMY) + * LMVM = S_(MATLMVM) # <<<<<<<<<<<<<< + * LMVMDFP = S_(MATLMVMDFP) + * LMVMBFGS = S_(MATLMVMBFGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVM, __pyx_t_5) < 0) __PYX_ERR(45, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":77 + * DUMMY = S_(MATDUMMY) + * LMVM = S_(MATLMVM) + * LMVMDFP = S_(MATLMVMDFP) # <<<<<<<<<<<<<< + * LMVMBFGS = S_(MATLMVMBFGS) + * LMVMSR1 = S_(MATLMVMSR1) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMDFP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMDFP, __pyx_t_5) < 0) __PYX_ERR(45, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":78 + * LMVM = S_(MATLMVM) + * LMVMDFP = S_(MATLMVMDFP) + * LMVMBFGS = S_(MATLMVMBFGS) # <<<<<<<<<<<<<< + * LMVMSR1 = S_(MATLMVMSR1) + * LMVMBROYDEN = S_(MATLMVMBROYDEN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMBFGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMBFGS, __pyx_t_5) < 0) __PYX_ERR(45, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":79 + * LMVMDFP = S_(MATLMVMDFP) + * LMVMBFGS = S_(MATLMVMBFGS) + * LMVMSR1 = S_(MATLMVMSR1) # <<<<<<<<<<<<<< + * LMVMBROYDEN = S_(MATLMVMBROYDEN) + * LMVMBADBROYDEN = S_(MATLMVMBADBROYDEN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMSR1); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMSR1, __pyx_t_5) < 0) __PYX_ERR(45, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":80 + * LMVMBFGS = S_(MATLMVMBFGS) + * LMVMSR1 = S_(MATLMVMSR1) + * LMVMBROYDEN = S_(MATLMVMBROYDEN) # <<<<<<<<<<<<<< + * LMVMBADBROYDEN = S_(MATLMVMBADBROYDEN) + * LMVMSYMBROYDEN = S_(MATLMVMSYMBROYDEN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMBROYDEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMBROYDEN, __pyx_t_5) < 0) __PYX_ERR(45, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":81 + * LMVMSR1 = S_(MATLMVMSR1) + * LMVMBROYDEN = S_(MATLMVMBROYDEN) + * LMVMBADBROYDEN = S_(MATLMVMBADBROYDEN) # <<<<<<<<<<<<<< + * LMVMSYMBROYDEN = S_(MATLMVMSYMBROYDEN) + * LMVMSYMBADBROYDEN = S_(MATLMVMSYMBADBROYDEN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMBADBROYDEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMBADBROYDEN, __pyx_t_5) < 0) __PYX_ERR(45, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":82 + * LMVMBROYDEN = S_(MATLMVMBROYDEN) + * LMVMBADBROYDEN = S_(MATLMVMBADBROYDEN) + * LMVMSYMBROYDEN = S_(MATLMVMSYMBROYDEN) # <<<<<<<<<<<<<< + * LMVMSYMBADBROYDEN = S_(MATLMVMSYMBADBROYDEN) + * LMVMDIAGBBROYDEN = S_(MATLMVMDIAGBROYDEN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMSYMBROYDEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMSYMBROYDEN, __pyx_t_5) < 0) __PYX_ERR(45, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":83 + * LMVMBADBROYDEN = S_(MATLMVMBADBROYDEN) + * LMVMSYMBROYDEN = S_(MATLMVMSYMBROYDEN) + * LMVMSYMBADBROYDEN = S_(MATLMVMSYMBADBROYDEN) # <<<<<<<<<<<<<< + * LMVMDIAGBBROYDEN = S_(MATLMVMDIAGBROYDEN) + * CONSTANTDIAGONAL = S_(MATCONSTANTDIAGONAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMSYMBADBROYDEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMSYMBADBROYDEN, __pyx_t_5) < 0) __PYX_ERR(45, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":84 + * LMVMSYMBROYDEN = S_(MATLMVMSYMBROYDEN) + * LMVMSYMBADBROYDEN = S_(MATLMVMSYMBADBROYDEN) + * LMVMDIAGBBROYDEN = S_(MATLMVMDIAGBROYDEN) # <<<<<<<<<<<<<< + * CONSTANTDIAGONAL = S_(MATCONSTANTDIAGONAL) + * H2OPUS = S_(MATH2OPUS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATLMVMDIAGBROYDEN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVMDIAGBBROYDEN, __pyx_t_5) < 0) __PYX_ERR(45, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":85 + * LMVMSYMBADBROYDEN = S_(MATLMVMSYMBADBROYDEN) + * LMVMDIAGBBROYDEN = S_(MATLMVMDIAGBROYDEN) + * CONSTANTDIAGONAL = S_(MATCONSTANTDIAGONAL) # <<<<<<<<<<<<<< + * H2OPUS = S_(MATH2OPUS) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATCONSTANTDIAGONAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONSTANTDIAGONAL, __pyx_t_5) < 0) __PYX_ERR(45, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":86 + * LMVMDIAGBBROYDEN = S_(MATLMVMDIAGBROYDEN) + * CONSTANTDIAGONAL = S_(MATCONSTANTDIAGONAL) + * H2OPUS = S_(MATH2OPUS) # <<<<<<<<<<<<<< + * + * class MatOption(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATH2OPUS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_H2OPUS, __pyx_t_5) < 0) __PYX_ERR(45, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatType(object): # <<<<<<<<<<<<<< + * SAME = S_(MATSAME) + * MAIJ = S_(MATMAIJ) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatType, __pyx_tuple__118, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatType, __pyx_t_5) < 0) __PYX_ERR(45, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":88 + * H2OPUS = S_(MATH2OPUS) + * + * class MatOption(object): # <<<<<<<<<<<<<< + * OPTION_MIN = MAT_OPTION_MIN + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__119); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__119, __pyx_n_s_MatOption, __pyx_n_s_MatOption, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":89 + * + * class MatOption(object): + * OPTION_MIN = MAT_OPTION_MIN # <<<<<<<<<<<<<< + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + * ROW_ORIENTED = MAT_ROW_ORIENTED + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_OPTION_MIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_OPTION_MIN, __pyx_t_5) < 0) __PYX_ERR(45, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":90 + * class MatOption(object): + * OPTION_MIN = MAT_OPTION_MIN + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR # <<<<<<<<<<<<<< + * ROW_ORIENTED = MAT_ROW_ORIENTED + * SYMMETRIC = MAT_SYMMETRIC + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_UNUSED_NONZERO_LOCATION_ERR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNUSED_NONZERO_LOCATION_ERR, __pyx_t_5) < 0) __PYX_ERR(45, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":91 + * OPTION_MIN = MAT_OPTION_MIN + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + * ROW_ORIENTED = MAT_ROW_ORIENTED # <<<<<<<<<<<<<< + * SYMMETRIC = MAT_SYMMETRIC + * STRUCTURALLY_SYMMETRIC = MAT_STRUCTURALLY_SYMMETRIC + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_ROW_ORIENTED); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ROW_ORIENTED, __pyx_t_5) < 0) __PYX_ERR(45, 91, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":92 + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + * ROW_ORIENTED = MAT_ROW_ORIENTED + * SYMMETRIC = MAT_SYMMETRIC # <<<<<<<<<<<<<< + * STRUCTURALLY_SYMMETRIC = MAT_STRUCTURALLY_SYMMETRIC + * FORCE_DIAGONAL_ENTRIES = MAT_FORCE_DIAGONAL_ENTRIES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SYMMETRIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMETRIC, __pyx_t_5) < 0) __PYX_ERR(45, 92, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":93 + * ROW_ORIENTED = MAT_ROW_ORIENTED + * SYMMETRIC = MAT_SYMMETRIC + * STRUCTURALLY_SYMMETRIC = MAT_STRUCTURALLY_SYMMETRIC # <<<<<<<<<<<<<< + * FORCE_DIAGONAL_ENTRIES = MAT_FORCE_DIAGONAL_ENTRIES + * IGNORE_OFF_PROC_ENTRIES = MAT_IGNORE_OFF_PROC_ENTRIES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_STRUCTURALLY_SYMMETRIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STRUCTURALLY_SYMMETRIC, __pyx_t_5) < 0) __PYX_ERR(45, 93, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":94 + * SYMMETRIC = MAT_SYMMETRIC + * STRUCTURALLY_SYMMETRIC = MAT_STRUCTURALLY_SYMMETRIC + * FORCE_DIAGONAL_ENTRIES = MAT_FORCE_DIAGONAL_ENTRIES # <<<<<<<<<<<<<< + * IGNORE_OFF_PROC_ENTRIES = MAT_IGNORE_OFF_PROC_ENTRIES + * USE_HASH_TABLE = MAT_USE_HASH_TABLE + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_FORCE_DIAGONAL_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FORCE_DIAGONAL_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(45, 94, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":95 + * STRUCTURALLY_SYMMETRIC = MAT_STRUCTURALLY_SYMMETRIC + * FORCE_DIAGONAL_ENTRIES = MAT_FORCE_DIAGONAL_ENTRIES + * IGNORE_OFF_PROC_ENTRIES = MAT_IGNORE_OFF_PROC_ENTRIES # <<<<<<<<<<<<<< + * USE_HASH_TABLE = MAT_USE_HASH_TABLE + * KEEP_NONZERO_PATTERN = MAT_KEEP_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_IGNORE_OFF_PROC_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IGNORE_OFF_PROC_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(45, 95, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":96 + * FORCE_DIAGONAL_ENTRIES = MAT_FORCE_DIAGONAL_ENTRIES + * IGNORE_OFF_PROC_ENTRIES = MAT_IGNORE_OFF_PROC_ENTRIES + * USE_HASH_TABLE = MAT_USE_HASH_TABLE # <<<<<<<<<<<<<< + * KEEP_NONZERO_PATTERN = MAT_KEEP_NONZERO_PATTERN + * IGNORE_ZERO_ENTRIES = MAT_IGNORE_ZERO_ENTRIES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_USE_HASH_TABLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_USE_HASH_TABLE, __pyx_t_5) < 0) __PYX_ERR(45, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":97 + * IGNORE_OFF_PROC_ENTRIES = MAT_IGNORE_OFF_PROC_ENTRIES + * USE_HASH_TABLE = MAT_USE_HASH_TABLE + * KEEP_NONZERO_PATTERN = MAT_KEEP_NONZERO_PATTERN # <<<<<<<<<<<<<< + * IGNORE_ZERO_ENTRIES = MAT_IGNORE_ZERO_ENTRIES + * USE_INODES = MAT_USE_INODES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_KEEP_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KEEP_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":98 + * USE_HASH_TABLE = MAT_USE_HASH_TABLE + * KEEP_NONZERO_PATTERN = MAT_KEEP_NONZERO_PATTERN + * IGNORE_ZERO_ENTRIES = MAT_IGNORE_ZERO_ENTRIES # <<<<<<<<<<<<<< + * USE_INODES = MAT_USE_INODES + * HERMITIAN = MAT_HERMITIAN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_IGNORE_ZERO_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IGNORE_ZERO_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(45, 98, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":99 + * KEEP_NONZERO_PATTERN = MAT_KEEP_NONZERO_PATTERN + * IGNORE_ZERO_ENTRIES = MAT_IGNORE_ZERO_ENTRIES + * USE_INODES = MAT_USE_INODES # <<<<<<<<<<<<<< + * HERMITIAN = MAT_HERMITIAN + * SYMMETRY_ETERNAL = MAT_SYMMETRY_ETERNAL + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_USE_INODES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_USE_INODES, __pyx_t_5) < 0) __PYX_ERR(45, 99, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":100 + * IGNORE_ZERO_ENTRIES = MAT_IGNORE_ZERO_ENTRIES + * USE_INODES = MAT_USE_INODES + * HERMITIAN = MAT_HERMITIAN # <<<<<<<<<<<<<< + * SYMMETRY_ETERNAL = MAT_SYMMETRY_ETERNAL + * NEW_NONZERO_LOCATION_ERR = MAT_NEW_NONZERO_LOCATION_ERR + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_HERMITIAN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HERMITIAN, __pyx_t_5) < 0) __PYX_ERR(45, 100, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":101 + * USE_INODES = MAT_USE_INODES + * HERMITIAN = MAT_HERMITIAN + * SYMMETRY_ETERNAL = MAT_SYMMETRY_ETERNAL # <<<<<<<<<<<<<< + * NEW_NONZERO_LOCATION_ERR = MAT_NEW_NONZERO_LOCATION_ERR + * IGNORE_LOWER_TRIANGULAR = MAT_IGNORE_LOWER_TRIANGULAR + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SYMMETRY_ETERNAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMETRY_ETERNAL, __pyx_t_5) < 0) __PYX_ERR(45, 101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":102 + * HERMITIAN = MAT_HERMITIAN + * SYMMETRY_ETERNAL = MAT_SYMMETRY_ETERNAL + * NEW_NONZERO_LOCATION_ERR = MAT_NEW_NONZERO_LOCATION_ERR # <<<<<<<<<<<<<< + * IGNORE_LOWER_TRIANGULAR = MAT_IGNORE_LOWER_TRIANGULAR + * ERROR_LOWER_TRIANGULAR = MAT_ERROR_LOWER_TRIANGULAR + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_NEW_NONZERO_LOCATION_ERR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEW_NONZERO_LOCATION_ERR, __pyx_t_5) < 0) __PYX_ERR(45, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":103 + * SYMMETRY_ETERNAL = MAT_SYMMETRY_ETERNAL + * NEW_NONZERO_LOCATION_ERR = MAT_NEW_NONZERO_LOCATION_ERR + * IGNORE_LOWER_TRIANGULAR = MAT_IGNORE_LOWER_TRIANGULAR # <<<<<<<<<<<<<< + * ERROR_LOWER_TRIANGULAR = MAT_ERROR_LOWER_TRIANGULAR + * GETROW_UPPERTRIANGULAR = MAT_GETROW_UPPERTRIANGULAR + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_IGNORE_LOWER_TRIANGULAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IGNORE_LOWER_TRIANGULAR, __pyx_t_5) < 0) __PYX_ERR(45, 103, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":104 + * NEW_NONZERO_LOCATION_ERR = MAT_NEW_NONZERO_LOCATION_ERR + * IGNORE_LOWER_TRIANGULAR = MAT_IGNORE_LOWER_TRIANGULAR + * ERROR_LOWER_TRIANGULAR = MAT_ERROR_LOWER_TRIANGULAR # <<<<<<<<<<<<<< + * GETROW_UPPERTRIANGULAR = MAT_GETROW_UPPERTRIANGULAR + * SPD = MAT_SPD + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_ERROR_LOWER_TRIANGULAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ERROR_LOWER_TRIANGULAR, __pyx_t_5) < 0) __PYX_ERR(45, 104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":105 + * IGNORE_LOWER_TRIANGULAR = MAT_IGNORE_LOWER_TRIANGULAR + * ERROR_LOWER_TRIANGULAR = MAT_ERROR_LOWER_TRIANGULAR + * GETROW_UPPERTRIANGULAR = MAT_GETROW_UPPERTRIANGULAR # <<<<<<<<<<<<<< + * SPD = MAT_SPD + * NO_OFF_PROC_ZERO_ROWS = MAT_NO_OFF_PROC_ZERO_ROWS + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_GETROW_UPPERTRIANGULAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GETROW_UPPERTRIANGULAR, __pyx_t_5) < 0) __PYX_ERR(45, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":106 + * ERROR_LOWER_TRIANGULAR = MAT_ERROR_LOWER_TRIANGULAR + * GETROW_UPPERTRIANGULAR = MAT_GETROW_UPPERTRIANGULAR + * SPD = MAT_SPD # <<<<<<<<<<<<<< + * NO_OFF_PROC_ZERO_ROWS = MAT_NO_OFF_PROC_ZERO_ROWS + * NO_OFF_PROC_ENTRIES = MAT_NO_OFF_PROC_ENTRIES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SPD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPD, __pyx_t_5) < 0) __PYX_ERR(45, 106, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":107 + * GETROW_UPPERTRIANGULAR = MAT_GETROW_UPPERTRIANGULAR + * SPD = MAT_SPD + * NO_OFF_PROC_ZERO_ROWS = MAT_NO_OFF_PROC_ZERO_ROWS # <<<<<<<<<<<<<< + * NO_OFF_PROC_ENTRIES = MAT_NO_OFF_PROC_ENTRIES + * NEW_NONZERO_LOCATIONS = MAT_NEW_NONZERO_LOCATIONS + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_NO_OFF_PROC_ZERO_ROWS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NO_OFF_PROC_ZERO_ROWS, __pyx_t_5) < 0) __PYX_ERR(45, 107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":108 + * SPD = MAT_SPD + * NO_OFF_PROC_ZERO_ROWS = MAT_NO_OFF_PROC_ZERO_ROWS + * NO_OFF_PROC_ENTRIES = MAT_NO_OFF_PROC_ENTRIES # <<<<<<<<<<<<<< + * NEW_NONZERO_LOCATIONS = MAT_NEW_NONZERO_LOCATIONS + * NEW_NONZERO_ALLOCATION_ERR = MAT_NEW_NONZERO_ALLOCATION_ERR + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_NO_OFF_PROC_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NO_OFF_PROC_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(45, 108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":109 + * NO_OFF_PROC_ZERO_ROWS = MAT_NO_OFF_PROC_ZERO_ROWS + * NO_OFF_PROC_ENTRIES = MAT_NO_OFF_PROC_ENTRIES + * NEW_NONZERO_LOCATIONS = MAT_NEW_NONZERO_LOCATIONS # <<<<<<<<<<<<<< + * NEW_NONZERO_ALLOCATION_ERR = MAT_NEW_NONZERO_ALLOCATION_ERR + * SUBSET_OFF_PROC_ENTRIES = MAT_SUBSET_OFF_PROC_ENTRIES + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_NEW_NONZERO_LOCATIONS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEW_NONZERO_LOCATIONS, __pyx_t_5) < 0) __PYX_ERR(45, 109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":110 + * NO_OFF_PROC_ENTRIES = MAT_NO_OFF_PROC_ENTRIES + * NEW_NONZERO_LOCATIONS = MAT_NEW_NONZERO_LOCATIONS + * NEW_NONZERO_ALLOCATION_ERR = MAT_NEW_NONZERO_ALLOCATION_ERR # <<<<<<<<<<<<<< + * SUBSET_OFF_PROC_ENTRIES = MAT_SUBSET_OFF_PROC_ENTRIES + * SUBMAT_SINGLEIS = MAT_SUBMAT_SINGLEIS + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_NEW_NONZERO_ALLOCATION_ERR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEW_NONZERO_ALLOCATION_ERR, __pyx_t_5) < 0) __PYX_ERR(45, 110, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":111 + * NEW_NONZERO_LOCATIONS = MAT_NEW_NONZERO_LOCATIONS + * NEW_NONZERO_ALLOCATION_ERR = MAT_NEW_NONZERO_ALLOCATION_ERR + * SUBSET_OFF_PROC_ENTRIES = MAT_SUBSET_OFF_PROC_ENTRIES # <<<<<<<<<<<<<< + * SUBMAT_SINGLEIS = MAT_SUBMAT_SINGLEIS + * STRUCTURE_ONLY = MAT_STRUCTURE_ONLY + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SUBSET_OFF_PROC_ENTRIES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBSET_OFF_PROC_ENTRIES, __pyx_t_5) < 0) __PYX_ERR(45, 111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":112 + * NEW_NONZERO_ALLOCATION_ERR = MAT_NEW_NONZERO_ALLOCATION_ERR + * SUBSET_OFF_PROC_ENTRIES = MAT_SUBSET_OFF_PROC_ENTRIES + * SUBMAT_SINGLEIS = MAT_SUBMAT_SINGLEIS # <<<<<<<<<<<<<< + * STRUCTURE_ONLY = MAT_STRUCTURE_ONLY + * SORTED_FULL = MAT_SORTED_FULL + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SUBMAT_SINGLEIS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBMAT_SINGLEIS, __pyx_t_5) < 0) __PYX_ERR(45, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":113 + * SUBSET_OFF_PROC_ENTRIES = MAT_SUBSET_OFF_PROC_ENTRIES + * SUBMAT_SINGLEIS = MAT_SUBMAT_SINGLEIS + * STRUCTURE_ONLY = MAT_STRUCTURE_ONLY # <<<<<<<<<<<<<< + * SORTED_FULL = MAT_SORTED_FULL + * OPTION_MAX = MAT_OPTION_MAX + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_STRUCTURE_ONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STRUCTURE_ONLY, __pyx_t_5) < 0) __PYX_ERR(45, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":114 + * SUBMAT_SINGLEIS = MAT_SUBMAT_SINGLEIS + * STRUCTURE_ONLY = MAT_STRUCTURE_ONLY + * SORTED_FULL = MAT_SORTED_FULL # <<<<<<<<<<<<<< + * OPTION_MAX = MAT_OPTION_MAX + * + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_SORTED_FULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SORTED_FULL, __pyx_t_5) < 0) __PYX_ERR(45, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":115 + * STRUCTURE_ONLY = MAT_STRUCTURE_ONLY + * SORTED_FULL = MAT_SORTED_FULL + * OPTION_MAX = MAT_OPTION_MAX # <<<<<<<<<<<<<< + * + * class MatAssemblyType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_MatOption(MAT_OPTION_MAX); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_OPTION_MAX, __pyx_t_5) < 0) __PYX_ERR(45, 115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":88 + * H2OPUS = S_(MATH2OPUS) + * + * class MatOption(object): # <<<<<<<<<<<<<< + * OPTION_MIN = MAT_OPTION_MIN + * UNUSED_NONZERO_LOCATION_ERR = MAT_UNUSED_NONZERO_LOCATION_ERR + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatOption, __pyx_tuple__119, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatOption, __pyx_t_5) < 0) __PYX_ERR(45, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":117 + * OPTION_MAX = MAT_OPTION_MAX + * + * class MatAssemblyType(object): # <<<<<<<<<<<<<< + * # native + * FINAL_ASSEMBLY = MAT_FINAL_ASSEMBLY + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__120); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__120, __pyx_n_s_MatAssemblyType, __pyx_n_s_MatAssemblyType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":119 + * class MatAssemblyType(object): + * # native + * FINAL_ASSEMBLY = MAT_FINAL_ASSEMBLY # <<<<<<<<<<<<<< + * FLUSH_ASSEMBLY = MAT_FLUSH_ASSEMBLY + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_MatAssemblyType(MAT_FINAL_ASSEMBLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FINAL_ASSEMBLY, __pyx_t_5) < 0) __PYX_ERR(45, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":120 + * # native + * FINAL_ASSEMBLY = MAT_FINAL_ASSEMBLY + * FLUSH_ASSEMBLY = MAT_FLUSH_ASSEMBLY # <<<<<<<<<<<<<< + * # aliases + * FINAL = FINAL_ASSEMBLY + */ + __pyx_t_5 = __Pyx_PyInt_From_MatAssemblyType(MAT_FLUSH_ASSEMBLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FLUSH_ASSEMBLY, __pyx_t_5) < 0) __PYX_ERR(45, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":122 + * FLUSH_ASSEMBLY = MAT_FLUSH_ASSEMBLY + * # aliases + * FINAL = FINAL_ASSEMBLY # <<<<<<<<<<<<<< + * FLUSH = FLUSH_ASSEMBLY + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_FINAL_ASSEMBLY); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_FINAL_ASSEMBLY); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FINAL, __pyx_t_5) < 0) __PYX_ERR(45, 122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":123 + * # aliases + * FINAL = FINAL_ASSEMBLY + * FLUSH = FLUSH_ASSEMBLY # <<<<<<<<<<<<<< + * + * class MatInfoType(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_FLUSH_ASSEMBLY); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_FLUSH_ASSEMBLY); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FLUSH, __pyx_t_5) < 0) __PYX_ERR(45, 123, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":117 + * OPTION_MAX = MAT_OPTION_MAX + * + * class MatAssemblyType(object): # <<<<<<<<<<<<<< + * # native + * FINAL_ASSEMBLY = MAT_FINAL_ASSEMBLY + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatAssemblyType, __pyx_tuple__120, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatAssemblyType, __pyx_t_5) < 0) __PYX_ERR(45, 117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":125 + * FLUSH = FLUSH_ASSEMBLY + * + * class MatInfoType(object): # <<<<<<<<<<<<<< + * LOCAL = MAT_LOCAL + * GLOBAL_MAX = MAT_GLOBAL_MAX + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__121); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__121, __pyx_n_s_MatInfoType, __pyx_n_s_MatInfoType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":126 + * + * class MatInfoType(object): + * LOCAL = MAT_LOCAL # <<<<<<<<<<<<<< + * GLOBAL_MAX = MAT_GLOBAL_MAX + * GLOBAL_SUM = MAT_GLOBAL_SUM + */ + __pyx_t_5 = __Pyx_PyInt_From_MatInfoType(MAT_LOCAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOCAL, __pyx_t_5) < 0) __PYX_ERR(45, 126, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":127 + * class MatInfoType(object): + * LOCAL = MAT_LOCAL + * GLOBAL_MAX = MAT_GLOBAL_MAX # <<<<<<<<<<<<<< + * GLOBAL_SUM = MAT_GLOBAL_SUM + * + */ + __pyx_t_5 = __Pyx_PyInt_From_MatInfoType(MAT_GLOBAL_MAX); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GLOBAL_MAX, __pyx_t_5) < 0) __PYX_ERR(45, 127, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":128 + * LOCAL = MAT_LOCAL + * GLOBAL_MAX = MAT_GLOBAL_MAX + * GLOBAL_SUM = MAT_GLOBAL_SUM # <<<<<<<<<<<<<< + * + * class MatStructure(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_MatInfoType(MAT_GLOBAL_SUM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GLOBAL_SUM, __pyx_t_5) < 0) __PYX_ERR(45, 128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":125 + * FLUSH = FLUSH_ASSEMBLY + * + * class MatInfoType(object): # <<<<<<<<<<<<<< + * LOCAL = MAT_LOCAL + * GLOBAL_MAX = MAT_GLOBAL_MAX + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatInfoType, __pyx_tuple__121, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatInfoType, __pyx_t_5) < 0) __PYX_ERR(45, 125, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":130 + * GLOBAL_SUM = MAT_GLOBAL_SUM + * + * class MatStructure(object): # <<<<<<<<<<<<<< + * # native + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__122); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__122, __pyx_n_s_MatStructure, __pyx_n_s_MatStructure, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":132 + * class MatStructure(object): + * # native + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN # <<<<<<<<<<<<<< + * DIFFERENT_NONZERO_PATTERN = MAT_DIFFERENT_NONZERO_PATTERN + * SUBSET_NONZERO_PATTERN = MAT_SUBSET_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatStructure(SAME_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SAME_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":133 + * # native + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN + * DIFFERENT_NONZERO_PATTERN = MAT_DIFFERENT_NONZERO_PATTERN # <<<<<<<<<<<<<< + * SUBSET_NONZERO_PATTERN = MAT_SUBSET_NONZERO_PATTERN + * UNKNOWN_NONZERO_PATTERN = MAT_UNKNOWN_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatStructure(DIFFERENT_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIFFERENT_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 133, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":134 + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN + * DIFFERENT_NONZERO_PATTERN = MAT_DIFFERENT_NONZERO_PATTERN + * SUBSET_NONZERO_PATTERN = MAT_SUBSET_NONZERO_PATTERN # <<<<<<<<<<<<<< + * UNKNOWN_NONZERO_PATTERN = MAT_UNKNOWN_NONZERO_PATTERN + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_MatStructure(SUBSET_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBSET_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 134, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":135 + * DIFFERENT_NONZERO_PATTERN = MAT_DIFFERENT_NONZERO_PATTERN + * SUBSET_NONZERO_PATTERN = MAT_SUBSET_NONZERO_PATTERN + * UNKNOWN_NONZERO_PATTERN = MAT_UNKNOWN_NONZERO_PATTERN # <<<<<<<<<<<<<< + * # aliases + * SAME = SAME_NZ = SAME_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatStructure(UNKNOWN_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNKNOWN_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 135, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":137 + * UNKNOWN_NONZERO_PATTERN = MAT_UNKNOWN_NONZERO_PATTERN + * # aliases + * SAME = SAME_NZ = SAME_NONZERO_PATTERN # <<<<<<<<<<<<<< + * SUBSET = SUBSET_NZ = SUBSET_NONZERO_PATTERN + * DIFFERENT = DIFFERENT_NZ = DIFFERENT_NONZERO_PATTERN + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_SAME_NONZERO_PATTERN); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SAME_NONZERO_PATTERN); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SAME, __pyx_t_5) < 0) __PYX_ERR(45, 137, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SAME_NZ, __pyx_t_5) < 0) __PYX_ERR(45, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":138 + * # aliases + * SAME = SAME_NZ = SAME_NONZERO_PATTERN + * SUBSET = SUBSET_NZ = SUBSET_NONZERO_PATTERN # <<<<<<<<<<<<<< + * DIFFERENT = DIFFERENT_NZ = DIFFERENT_NONZERO_PATTERN + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_SUBSET_NONZERO_PATTERN); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SUBSET_NONZERO_PATTERN); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBSET, __pyx_t_5) < 0) __PYX_ERR(45, 138, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBSET_NZ, __pyx_t_5) < 0) __PYX_ERR(45, 138, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":139 + * SAME = SAME_NZ = SAME_NONZERO_PATTERN + * SUBSET = SUBSET_NZ = SUBSET_NONZERO_PATTERN + * DIFFERENT = DIFFERENT_NZ = DIFFERENT_NONZERO_PATTERN # <<<<<<<<<<<<<< + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_DIFFERENT_NONZERO_PATTERN); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_DIFFERENT_NONZERO_PATTERN); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIFFERENT, __pyx_t_5) < 0) __PYX_ERR(45, 139, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIFFERENT_NZ, __pyx_t_5) < 0) __PYX_ERR(45, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":140 + * SUBSET = SUBSET_NZ = SUBSET_NONZERO_PATTERN + * DIFFERENT = DIFFERENT_NZ = DIFFERENT_NONZERO_PATTERN + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN # <<<<<<<<<<<<<< + * + * class MatDuplicateOption(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_UNKNOWN_NONZERO_PATTERN); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_UNKNOWN_NONZERO_PATTERN); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNKNOWN, __pyx_t_5) < 0) __PYX_ERR(45, 140, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNKNOWN_NZ, __pyx_t_5) < 0) __PYX_ERR(45, 140, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":130 + * GLOBAL_SUM = MAT_GLOBAL_SUM + * + * class MatStructure(object): # <<<<<<<<<<<<<< + * # native + * SAME_NONZERO_PATTERN = MAT_SAME_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatStructure, __pyx_tuple__122, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatStructure, __pyx_t_5) < 0) __PYX_ERR(45, 130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":142 + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN + * + * class MatDuplicateOption(object): # <<<<<<<<<<<<<< + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES + * COPY_VALUES = MAT_COPY_VALUES + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__123); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__123, __pyx_n_s_MatDuplicateOption, __pyx_n_s_MatDuplicateOption, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":143 + * + * class MatDuplicateOption(object): + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES # <<<<<<<<<<<<<< + * COPY_VALUES = MAT_COPY_VALUES + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN + */ + __pyx_t_5 = __Pyx_PyInt_From_MatDuplicateOption(MAT_DO_NOT_COPY_VALUES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DO_NOT_COPY_VALUES, __pyx_t_5) < 0) __PYX_ERR(45, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":144 + * class MatDuplicateOption(object): + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES + * COPY_VALUES = MAT_COPY_VALUES # <<<<<<<<<<<<<< + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN + * + */ + __pyx_t_5 = __Pyx_PyInt_From_MatDuplicateOption(MAT_COPY_VALUES); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COPY_VALUES, __pyx_t_5) < 0) __PYX_ERR(45, 144, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":145 + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES + * COPY_VALUES = MAT_COPY_VALUES + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN # <<<<<<<<<<<<<< + * + * class MatOrderingType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_MatDuplicateOption(MAT_SHARE_NONZERO_PATTERN); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHARE_NONZERO_PATTERN, __pyx_t_5) < 0) __PYX_ERR(45, 145, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":142 + * UNKNOWN = UNKNOWN_NZ = UNKNOWN_NONZERO_PATTERN + * + * class MatDuplicateOption(object): # <<<<<<<<<<<<<< + * DO_NOT_COPY_VALUES = MAT_DO_NOT_COPY_VALUES + * COPY_VALUES = MAT_COPY_VALUES + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatDuplicateOption, __pyx_tuple__123, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatDuplicateOption, __pyx_t_5) < 0) __PYX_ERR(45, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":147 + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN + * + * class MatOrderingType(object): # <<<<<<<<<<<<<< + * NATURAL = S_(MATORDERINGNATURAL) + * ND = S_(MATORDERINGND) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__124); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__124, __pyx_n_s_MatOrderingType, __pyx_n_s_MatOrderingType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":148 + * + * class MatOrderingType(object): + * NATURAL = S_(MATORDERINGNATURAL) # <<<<<<<<<<<<<< + * ND = S_(MATORDERINGND) + * OWD = S_(MATORDERING1WD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGNATURAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NATURAL, __pyx_t_5) < 0) __PYX_ERR(45, 148, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":149 + * class MatOrderingType(object): + * NATURAL = S_(MATORDERINGNATURAL) + * ND = S_(MATORDERINGND) # <<<<<<<<<<<<<< + * OWD = S_(MATORDERING1WD) + * RCM = S_(MATORDERINGRCM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGND); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ND, __pyx_t_5) < 0) __PYX_ERR(45, 149, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":150 + * NATURAL = S_(MATORDERINGNATURAL) + * ND = S_(MATORDERINGND) + * OWD = S_(MATORDERING1WD) # <<<<<<<<<<<<<< + * RCM = S_(MATORDERINGRCM) + * QMD = S_(MATORDERINGQMD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERING1WD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_OWD, __pyx_t_5) < 0) __PYX_ERR(45, 150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":151 + * ND = S_(MATORDERINGND) + * OWD = S_(MATORDERING1WD) + * RCM = S_(MATORDERINGRCM) # <<<<<<<<<<<<<< + * QMD = S_(MATORDERINGQMD) + * ROWLENGTH = S_(MATORDERINGROWLENGTH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGRCM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RCM, __pyx_t_5) < 0) __PYX_ERR(45, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":152 + * OWD = S_(MATORDERING1WD) + * RCM = S_(MATORDERINGRCM) + * QMD = S_(MATORDERINGQMD) # <<<<<<<<<<<<<< + * ROWLENGTH = S_(MATORDERINGROWLENGTH) + * WBM = S_(MATORDERINGWBM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGQMD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QMD, __pyx_t_5) < 0) __PYX_ERR(45, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":153 + * RCM = S_(MATORDERINGRCM) + * QMD = S_(MATORDERINGQMD) + * ROWLENGTH = S_(MATORDERINGROWLENGTH) # <<<<<<<<<<<<<< + * WBM = S_(MATORDERINGWBM) + * SPECTRAL = S_(MATORDERINGSPECTRAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGROWLENGTH); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ROWLENGTH, __pyx_t_5) < 0) __PYX_ERR(45, 153, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":154 + * QMD = S_(MATORDERINGQMD) + * ROWLENGTH = S_(MATORDERINGROWLENGTH) + * WBM = S_(MATORDERINGWBM) # <<<<<<<<<<<<<< + * SPECTRAL = S_(MATORDERINGSPECTRAL) + * AMD = S_(MATORDERINGAMD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGWBM); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_WBM, __pyx_t_5) < 0) __PYX_ERR(45, 154, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":155 + * ROWLENGTH = S_(MATORDERINGROWLENGTH) + * WBM = S_(MATORDERINGWBM) + * SPECTRAL = S_(MATORDERINGSPECTRAL) # <<<<<<<<<<<<<< + * AMD = S_(MATORDERINGAMD) + * METISND = S_(MATORDERINGMETISND) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGSPECTRAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPECTRAL, __pyx_t_5) < 0) __PYX_ERR(45, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":156 + * WBM = S_(MATORDERINGWBM) + * SPECTRAL = S_(MATORDERINGSPECTRAL) + * AMD = S_(MATORDERINGAMD) # <<<<<<<<<<<<<< + * METISND = S_(MATORDERINGMETISND) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGAMD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AMD, __pyx_t_5) < 0) __PYX_ERR(45, 156, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":157 + * SPECTRAL = S_(MATORDERINGSPECTRAL) + * AMD = S_(MATORDERINGAMD) + * METISND = S_(MATORDERINGMETISND) # <<<<<<<<<<<<<< + * + * class MatSolverType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATORDERINGMETISND); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_METISND, __pyx_t_5) < 0) __PYX_ERR(45, 157, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":147 + * SHARE_NONZERO_PATTERN = MAT_SHARE_NONZERO_PATTERN + * + * class MatOrderingType(object): # <<<<<<<<<<<<<< + * NATURAL = S_(MATORDERINGNATURAL) + * ND = S_(MATORDERINGND) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatOrderingType, __pyx_tuple__124, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatOrderingType, __pyx_t_5) < 0) __PYX_ERR(45, 147, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":159 + * METISND = S_(MATORDERINGMETISND) + * + * class MatSolverType(object): # <<<<<<<<<<<<<< + * SUPERLU = S_(MATSOLVERSUPERLU) + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__125); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__125, __pyx_n_s_MatSolverType, __pyx_n_s_MatSolverType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":160 + * + * class MatSolverType(object): + * SUPERLU = S_(MATSOLVERSUPERLU) # <<<<<<<<<<<<<< + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + * STRUMPACK = S_(MATSOLVERSTRUMPACK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSUPERLU); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUPERLU, __pyx_t_5) < 0) __PYX_ERR(45, 160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":161 + * class MatSolverType(object): + * SUPERLU = S_(MATSOLVERSUPERLU) + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) # <<<<<<<<<<<<<< + * STRUMPACK = S_(MATSOLVERSTRUMPACK) + * UMFPACK = S_(MATSOLVERUMFPACK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSUPERLU_DIST); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUPERLU_DIST, __pyx_t_5) < 0) __PYX_ERR(45, 161, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":162 + * SUPERLU = S_(MATSOLVERSUPERLU) + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + * STRUMPACK = S_(MATSOLVERSTRUMPACK) # <<<<<<<<<<<<<< + * UMFPACK = S_(MATSOLVERUMFPACK) + * CHOLMOD = S_(MATSOLVERCHOLMOD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSTRUMPACK); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STRUMPACK, __pyx_t_5) < 0) __PYX_ERR(45, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":163 + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + * STRUMPACK = S_(MATSOLVERSTRUMPACK) + * UMFPACK = S_(MATSOLVERUMFPACK) # <<<<<<<<<<<<<< + * CHOLMOD = S_(MATSOLVERCHOLMOD) + * KLU = S_(MATSOLVERKLU) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERUMFPACK); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UMFPACK, __pyx_t_5) < 0) __PYX_ERR(45, 163, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":164 + * STRUMPACK = S_(MATSOLVERSTRUMPACK) + * UMFPACK = S_(MATSOLVERUMFPACK) + * CHOLMOD = S_(MATSOLVERCHOLMOD) # <<<<<<<<<<<<<< + * KLU = S_(MATSOLVERKLU) + * SPARSEELEMENTAL = S_(MATSOLVERSPARSEELEMENTAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERCHOLMOD); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 164, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CHOLMOD, __pyx_t_5) < 0) __PYX_ERR(45, 164, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":165 + * UMFPACK = S_(MATSOLVERUMFPACK) + * CHOLMOD = S_(MATSOLVERCHOLMOD) + * KLU = S_(MATSOLVERKLU) # <<<<<<<<<<<<<< + * SPARSEELEMENTAL = S_(MATSOLVERSPARSEELEMENTAL) + * ELEMENTAL = S_(MATSOLVERELEMENTAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERKLU); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KLU, __pyx_t_5) < 0) __PYX_ERR(45, 165, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":166 + * CHOLMOD = S_(MATSOLVERCHOLMOD) + * KLU = S_(MATSOLVERKLU) + * SPARSEELEMENTAL = S_(MATSOLVERSPARSEELEMENTAL) # <<<<<<<<<<<<<< + * ELEMENTAL = S_(MATSOLVERELEMENTAL) + * SCALAPACK = S_(MATSOLVERSCALAPACK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSPARSEELEMENTAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 166, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPARSEELEMENTAL, __pyx_t_5) < 0) __PYX_ERR(45, 166, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":167 + * KLU = S_(MATSOLVERKLU) + * SPARSEELEMENTAL = S_(MATSOLVERSPARSEELEMENTAL) + * ELEMENTAL = S_(MATSOLVERELEMENTAL) # <<<<<<<<<<<<<< + * SCALAPACK = S_(MATSOLVERSCALAPACK) + * ESSL = S_(MATSOLVERESSL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERELEMENTAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ELEMENTAL, __pyx_t_5) < 0) __PYX_ERR(45, 167, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":168 + * SPARSEELEMENTAL = S_(MATSOLVERSPARSEELEMENTAL) + * ELEMENTAL = S_(MATSOLVERELEMENTAL) + * SCALAPACK = S_(MATSOLVERSCALAPACK) # <<<<<<<<<<<<<< + * ESSL = S_(MATSOLVERESSL) + * LUSOL = S_(MATSOLVERLUSOL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSCALAPACK); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 168, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SCALAPACK, __pyx_t_5) < 0) __PYX_ERR(45, 168, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":169 + * ELEMENTAL = S_(MATSOLVERELEMENTAL) + * SCALAPACK = S_(MATSOLVERSCALAPACK) + * ESSL = S_(MATSOLVERESSL) # <<<<<<<<<<<<<< + * LUSOL = S_(MATSOLVERLUSOL) + * MUMPS = S_(MATSOLVERMUMPS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERESSL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ESSL, __pyx_t_5) < 0) __PYX_ERR(45, 169, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":170 + * SCALAPACK = S_(MATSOLVERSCALAPACK) + * ESSL = S_(MATSOLVERESSL) + * LUSOL = S_(MATSOLVERLUSOL) # <<<<<<<<<<<<<< + * MUMPS = S_(MATSOLVERMUMPS) + * MKL_PARDISO = S_(MATSOLVERMKL_PARDISO) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERLUSOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 170, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LUSOL, __pyx_t_5) < 0) __PYX_ERR(45, 170, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":171 + * ESSL = S_(MATSOLVERESSL) + * LUSOL = S_(MATSOLVERLUSOL) + * MUMPS = S_(MATSOLVERMUMPS) # <<<<<<<<<<<<<< + * MKL_PARDISO = S_(MATSOLVERMKL_PARDISO) + * MKL_CPARDISO = S_(MATSOLVERMKL_CPARDISO) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERMUMPS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MUMPS, __pyx_t_5) < 0) __PYX_ERR(45, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":172 + * LUSOL = S_(MATSOLVERLUSOL) + * MUMPS = S_(MATSOLVERMUMPS) + * MKL_PARDISO = S_(MATSOLVERMKL_PARDISO) # <<<<<<<<<<<<<< + * MKL_CPARDISO = S_(MATSOLVERMKL_CPARDISO) + * PASTIX = S_(MATSOLVERPASTIX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERMKL_PARDISO); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MKL_PARDISO, __pyx_t_5) < 0) __PYX_ERR(45, 172, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":173 + * MUMPS = S_(MATSOLVERMUMPS) + * MKL_PARDISO = S_(MATSOLVERMKL_PARDISO) + * MKL_CPARDISO = S_(MATSOLVERMKL_CPARDISO) # <<<<<<<<<<<<<< + * PASTIX = S_(MATSOLVERPASTIX) + * MATLAB = S_(MATSOLVERMATLAB) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERMKL_CPARDISO); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MKL_CPARDISO, __pyx_t_5) < 0) __PYX_ERR(45, 173, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":174 + * MKL_PARDISO = S_(MATSOLVERMKL_PARDISO) + * MKL_CPARDISO = S_(MATSOLVERMKL_CPARDISO) + * PASTIX = S_(MATSOLVERPASTIX) # <<<<<<<<<<<<<< + * MATLAB = S_(MATSOLVERMATLAB) + * PETSC = S_(MATSOLVERPETSC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERPASTIX); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PASTIX, __pyx_t_5) < 0) __PYX_ERR(45, 174, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":175 + * MKL_CPARDISO = S_(MATSOLVERMKL_CPARDISO) + * PASTIX = S_(MATSOLVERPASTIX) + * MATLAB = S_(MATSOLVERMATLAB) # <<<<<<<<<<<<<< + * PETSC = S_(MATSOLVERPETSC) + * BAS = S_(MATSOLVERBAS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERMATLAB); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MATLAB, __pyx_t_5) < 0) __PYX_ERR(45, 175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":176 + * PASTIX = S_(MATSOLVERPASTIX) + * MATLAB = S_(MATSOLVERMATLAB) + * PETSC = S_(MATSOLVERPETSC) # <<<<<<<<<<<<<< + * BAS = S_(MATSOLVERBAS) + * CUSPARSE = S_(MATSOLVERCUSPARSE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERPETSC); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PETSC, __pyx_t_5) < 0) __PYX_ERR(45, 176, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":177 + * MATLAB = S_(MATSOLVERMATLAB) + * PETSC = S_(MATSOLVERPETSC) + * BAS = S_(MATSOLVERBAS) # <<<<<<<<<<<<<< + * CUSPARSE = S_(MATSOLVERCUSPARSE) + * CUDA = S_(MATSOLVERCUDA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERBAS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BAS, __pyx_t_5) < 0) __PYX_ERR(45, 177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":178 + * PETSC = S_(MATSOLVERPETSC) + * BAS = S_(MATSOLVERBAS) + * CUSPARSE = S_(MATSOLVERCUSPARSE) # <<<<<<<<<<<<<< + * CUDA = S_(MATSOLVERCUDA) + * SPQR = S_(MATSOLVERSPQR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERCUSPARSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 178, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CUSPARSE, __pyx_t_5) < 0) __PYX_ERR(45, 178, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":179 + * BAS = S_(MATSOLVERBAS) + * CUSPARSE = S_(MATSOLVERCUSPARSE) + * CUDA = S_(MATSOLVERCUDA) # <<<<<<<<<<<<<< + * SPQR = S_(MATSOLVERSPQR) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERCUDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CUDA, __pyx_t_5) < 0) __PYX_ERR(45, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":180 + * CUSPARSE = S_(MATSOLVERCUSPARSE) + * CUDA = S_(MATSOLVERCUDA) + * SPQR = S_(MATSOLVERSPQR) # <<<<<<<<<<<<<< + * + * class MatFactorShiftType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATSOLVERSPQR); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPQR, __pyx_t_5) < 0) __PYX_ERR(45, 180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":159 + * METISND = S_(MATORDERINGMETISND) + * + * class MatSolverType(object): # <<<<<<<<<<<<<< + * SUPERLU = S_(MATSOLVERSUPERLU) + * SUPERLU_DIST = S_(MATSOLVERSUPERLU_DIST) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatSolverType, __pyx_tuple__125, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatSolverType, __pyx_t_5) < 0) __PYX_ERR(45, 159, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":182 + * SPQR = S_(MATSOLVERSPQR) + * + * class MatFactorShiftType(object): # <<<<<<<<<<<<<< + * # native + * NONE = MAT_SHIFT_NONE + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__126); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__126, __pyx_n_s_MatFactorShiftType, __pyx_n_s_MatFactorShiftType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":184 + * class MatFactorShiftType(object): + * # native + * NONE = MAT_SHIFT_NONE # <<<<<<<<<<<<<< + * NONZERO = MAT_SHIFT_NONZERO + * POSITIVE_DEFINITE = MAT_SHIFT_POSITIVE_DEFINITE + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(45, 184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":185 + * # native + * NONE = MAT_SHIFT_NONE + * NONZERO = MAT_SHIFT_NONZERO # <<<<<<<<<<<<<< + * POSITIVE_DEFINITE = MAT_SHIFT_POSITIVE_DEFINITE + * INBLOCKS = MAT_SHIFT_INBLOCKS + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_NONZERO); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONZERO, __pyx_t_5) < 0) __PYX_ERR(45, 185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":186 + * NONE = MAT_SHIFT_NONE + * NONZERO = MAT_SHIFT_NONZERO + * POSITIVE_DEFINITE = MAT_SHIFT_POSITIVE_DEFINITE # <<<<<<<<<<<<<< + * INBLOCKS = MAT_SHIFT_INBLOCKS + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_POSITIVE_DEFINITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_POSITIVE_DEFINITE, __pyx_t_5) < 0) __PYX_ERR(45, 186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":187 + * NONZERO = MAT_SHIFT_NONZERO + * POSITIVE_DEFINITE = MAT_SHIFT_POSITIVE_DEFINITE + * INBLOCKS = MAT_SHIFT_INBLOCKS # <<<<<<<<<<<<<< + * # aliases + * NZ = MAT_SHIFT_NONZERO + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_INBLOCKS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INBLOCKS, __pyx_t_5) < 0) __PYX_ERR(45, 187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":189 + * INBLOCKS = MAT_SHIFT_INBLOCKS + * # aliases + * NZ = MAT_SHIFT_NONZERO # <<<<<<<<<<<<<< + * PD = MAT_SHIFT_POSITIVE_DEFINITE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_NONZERO); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NZ, __pyx_t_5) < 0) __PYX_ERR(45, 189, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":190 + * # aliases + * NZ = MAT_SHIFT_NONZERO + * PD = MAT_SHIFT_POSITIVE_DEFINITE # <<<<<<<<<<<<<< + * + * class MatSORType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_MatFactorShiftType(MAT_SHIFT_POSITIVE_DEFINITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PD, __pyx_t_5) < 0) __PYX_ERR(45, 190, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":182 + * SPQR = S_(MATSOLVERSPQR) + * + * class MatFactorShiftType(object): # <<<<<<<<<<<<<< + * # native + * NONE = MAT_SHIFT_NONE + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatFactorShiftType, __pyx_tuple__126, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatFactorShiftType, __pyx_t_5) < 0) __PYX_ERR(45, 182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":192 + * PD = MAT_SHIFT_POSITIVE_DEFINITE + * + * class MatSORType(object): # <<<<<<<<<<<<<< + * FORWARD_SWEEP = SOR_FORWARD_SWEEP + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__127); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__127, __pyx_n_s_MatSORType, __pyx_n_s_MatSORType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(45, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Mat.pyx":193 + * + * class MatSORType(object): + * FORWARD_SWEEP = SOR_FORWARD_SWEEP # <<<<<<<<<<<<<< + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + * SYMMETRY_SWEEP = SOR_SYMMETRIC_SWEEP + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_FORWARD_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FORWARD_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 193, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":194 + * class MatSORType(object): + * FORWARD_SWEEP = SOR_FORWARD_SWEEP + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP # <<<<<<<<<<<<<< + * SYMMETRY_SWEEP = SOR_SYMMETRIC_SWEEP + * LOCAL_FORWARD_SWEEP = SOR_LOCAL_FORWARD_SWEEP + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_BACKWARD_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACKWARD_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 194, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":195 + * FORWARD_SWEEP = SOR_FORWARD_SWEEP + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + * SYMMETRY_SWEEP = SOR_SYMMETRIC_SWEEP # <<<<<<<<<<<<<< + * LOCAL_FORWARD_SWEEP = SOR_LOCAL_FORWARD_SWEEP + * LOCAL_BACKWARD_SWEEP = SOR_LOCAL_BACKWARD_SWEEP + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_SYMMETRIC_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMETRY_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 195, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":196 + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + * SYMMETRY_SWEEP = SOR_SYMMETRIC_SWEEP + * LOCAL_FORWARD_SWEEP = SOR_LOCAL_FORWARD_SWEEP # <<<<<<<<<<<<<< + * LOCAL_BACKWARD_SWEEP = SOR_LOCAL_BACKWARD_SWEEP + * LOCAL_SYMMETRIC_SWEEP = SOR_LOCAL_SYMMETRIC_SWEEP + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_LOCAL_FORWARD_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOCAL_FORWARD_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 196, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":197 + * SYMMETRY_SWEEP = SOR_SYMMETRIC_SWEEP + * LOCAL_FORWARD_SWEEP = SOR_LOCAL_FORWARD_SWEEP + * LOCAL_BACKWARD_SWEEP = SOR_LOCAL_BACKWARD_SWEEP # <<<<<<<<<<<<<< + * LOCAL_SYMMETRIC_SWEEP = SOR_LOCAL_SYMMETRIC_SWEEP + * ZERO_INITIAL_GUESS = SOR_ZERO_INITIAL_GUESS + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_LOCAL_BACKWARD_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOCAL_BACKWARD_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":198 + * LOCAL_FORWARD_SWEEP = SOR_LOCAL_FORWARD_SWEEP + * LOCAL_BACKWARD_SWEEP = SOR_LOCAL_BACKWARD_SWEEP + * LOCAL_SYMMETRIC_SWEEP = SOR_LOCAL_SYMMETRIC_SWEEP # <<<<<<<<<<<<<< + * ZERO_INITIAL_GUESS = SOR_ZERO_INITIAL_GUESS + * EISENSTAT = SOR_EISENSTAT + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_LOCAL_SYMMETRIC_SWEEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOCAL_SYMMETRIC_SWEEP, __pyx_t_5) < 0) __PYX_ERR(45, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":199 + * LOCAL_BACKWARD_SWEEP = SOR_LOCAL_BACKWARD_SWEEP + * LOCAL_SYMMETRIC_SWEEP = SOR_LOCAL_SYMMETRIC_SWEEP + * ZERO_INITIAL_GUESS = SOR_ZERO_INITIAL_GUESS # <<<<<<<<<<<<<< + * EISENSTAT = SOR_EISENSTAT + * APPLY_UPPER = SOR_APPLY_UPPER + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_ZERO_INITIAL_GUESS); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ZERO_INITIAL_GUESS, __pyx_t_5) < 0) __PYX_ERR(45, 199, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":200 + * LOCAL_SYMMETRIC_SWEEP = SOR_LOCAL_SYMMETRIC_SWEEP + * ZERO_INITIAL_GUESS = SOR_ZERO_INITIAL_GUESS + * EISENSTAT = SOR_EISENSTAT # <<<<<<<<<<<<<< + * APPLY_UPPER = SOR_APPLY_UPPER + * APPLY_LOWER = SOR_APPLY_LOWER + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_EISENSTAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EISENSTAT, __pyx_t_5) < 0) __PYX_ERR(45, 200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":201 + * ZERO_INITIAL_GUESS = SOR_ZERO_INITIAL_GUESS + * EISENSTAT = SOR_EISENSTAT + * APPLY_UPPER = SOR_APPLY_UPPER # <<<<<<<<<<<<<< + * APPLY_LOWER = SOR_APPLY_LOWER + * + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_APPLY_UPPER); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_APPLY_UPPER, __pyx_t_5) < 0) __PYX_ERR(45, 201, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":202 + * EISENSTAT = SOR_EISENSTAT + * APPLY_UPPER = SOR_APPLY_UPPER + * APPLY_LOWER = SOR_APPLY_LOWER # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_MatSORType(SOR_APPLY_LOWER); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_APPLY_LOWER, __pyx_t_5) < 0) __PYX_ERR(45, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Mat.pyx":192 + * PD = MAT_SHIFT_POSITIVE_DEFINITE + * + * class MatSORType(object): # <<<<<<<<<<<<<< + * FORWARD_SWEEP = SOR_FORWARD_SWEEP + * BACKWARD_SWEEP = SOR_BACKWARD_SWEEP + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatSORType, __pyx_tuple__127, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(45, 192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatSORType, __pyx_t_5) < 0) __PYX_ERR(45, 192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Mat.pyx":208 + * cdef class Mat(Object): + * + * Type = MatType # <<<<<<<<<<<<<< + * Option = MatOption + * AssemblyType = MatAssemblyType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(45, 208, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":209 + * + * Type = MatType + * Option = MatOption # <<<<<<<<<<<<<< + * AssemblyType = MatAssemblyType + * InfoType = MatInfoType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatOption); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_Option, __pyx_t_6) < 0) __PYX_ERR(45, 209, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":210 + * Type = MatType + * Option = MatOption + * AssemblyType = MatAssemblyType # <<<<<<<<<<<<<< + * InfoType = MatInfoType + * Structure = MatStructure + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatAssemblyType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_AssemblyType, __pyx_t_6) < 0) __PYX_ERR(45, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":211 + * Option = MatOption + * AssemblyType = MatAssemblyType + * InfoType = MatInfoType # <<<<<<<<<<<<<< + * Structure = MatStructure + * DuplicateOption = MatDuplicateOption + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatInfoType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_InfoType, __pyx_t_6) < 0) __PYX_ERR(45, 211, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":212 + * AssemblyType = MatAssemblyType + * InfoType = MatInfoType + * Structure = MatStructure # <<<<<<<<<<<<<< + * DuplicateOption = MatDuplicateOption + * OrderingType = MatOrderingType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatStructure); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_Structure, __pyx_t_6) < 0) __PYX_ERR(45, 212, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":213 + * InfoType = MatInfoType + * Structure = MatStructure + * DuplicateOption = MatDuplicateOption # <<<<<<<<<<<<<< + * OrderingType = MatOrderingType + * SolverType = MatSolverType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatDuplicateOption); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_DuplicateOption, __pyx_t_6) < 0) __PYX_ERR(45, 213, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":214 + * Structure = MatStructure + * DuplicateOption = MatDuplicateOption + * OrderingType = MatOrderingType # <<<<<<<<<<<<<< + * SolverType = MatSolverType + * FactorShiftType = MatFactorShiftType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatOrderingType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_OrderingType, __pyx_t_6) < 0) __PYX_ERR(45, 214, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":215 + * DuplicateOption = MatDuplicateOption + * OrderingType = MatOrderingType + * SolverType = MatSolverType # <<<<<<<<<<<<<< + * FactorShiftType = MatFactorShiftType + * SORType = MatSORType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatSolverType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_SolverType, __pyx_t_6) < 0) __PYX_ERR(45, 215, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":216 + * OrderingType = MatOrderingType + * SolverType = MatSolverType + * FactorShiftType = MatFactorShiftType # <<<<<<<<<<<<<< + * SORType = MatSORType + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatFactorShiftType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_FactorShiftType, __pyx_t_6) < 0) __PYX_ERR(45, 216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":217 + * SolverType = MatSolverType + * FactorShiftType = MatFactorShiftType + * SORType = MatSORType # <<<<<<<<<<<<<< + * # + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatSORType); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_SORType, __pyx_t_6) < 0) __PYX_ERR(45, 217, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":1108 + * # + * + * Stencil = _Mat_Stencil # <<<<<<<<<<<<<< + * + * def setStencil(self, dims, starts=None, dof=1): + */ + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_Stencil, ((PyObject *)__pyx_ptype_8petsc4py_5PETSc__Mat_Stencil)) < 0) __PYX_ERR(45, 1108, __pyx_L1_error) + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":1257 + * return vecl + * + * getVecs = createVecs # <<<<<<<<<<<<<< + * getVecRight = createVecRight + * getVecLeft = createVecLeft + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat, __pyx_n_s_createVecs); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_getVecs, __pyx_t_6) < 0) __PYX_ERR(45, 1257, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":1258 + * + * getVecs = createVecs + * getVecRight = createVecRight # <<<<<<<<<<<<<< + * getVecLeft = createVecLeft + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat, __pyx_n_s_createVecRight); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1258, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_getVecRight, __pyx_t_6) < 0) __PYX_ERR(45, 1258, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":1259 + * getVecs = createVecs + * getVecRight = createVecRight + * getVecLeft = createVecLeft # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat, __pyx_n_s_createVecLeft); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1259, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_getVecLeft, __pyx_t_6) < 0) __PYX_ERR(45, 1259, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":1883 + * # backward compatibility + * + * PtAP = ptap # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat, __pyx_n_s_ptap); if (unlikely(!__pyx_t_6)) __PYX_ERR(45, 1883, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Mat->tp_dict, __pyx_n_s_PtAP, __pyx_t_6) < 0) __PYX_ERR(45, 1883, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Mat); + + /* "petsc4py/PETSc/Mat.pyx":2098 + * # -------------------------------------------------------------------- + * + * del MatType # <<<<<<<<<<<<<< + * del MatOption + * del MatAssemblyType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatType) < 0) __PYX_ERR(45, 2098, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2099 + * + * del MatType + * del MatOption # <<<<<<<<<<<<<< + * del MatAssemblyType + * del MatInfoType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatOption) < 0) __PYX_ERR(45, 2099, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2100 + * del MatType + * del MatOption + * del MatAssemblyType # <<<<<<<<<<<<<< + * del MatInfoType + * del MatStructure + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatAssemblyType) < 0) __PYX_ERR(45, 2100, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2101 + * del MatOption + * del MatAssemblyType + * del MatInfoType # <<<<<<<<<<<<<< + * del MatStructure + * del MatDuplicateOption + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatInfoType) < 0) __PYX_ERR(45, 2101, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2102 + * del MatAssemblyType + * del MatInfoType + * del MatStructure # <<<<<<<<<<<<<< + * del MatDuplicateOption + * del MatOrderingType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatStructure) < 0) __PYX_ERR(45, 2102, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2103 + * del MatInfoType + * del MatStructure + * del MatDuplicateOption # <<<<<<<<<<<<<< + * del MatOrderingType + * del MatSolverType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatDuplicateOption) < 0) __PYX_ERR(45, 2103, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2104 + * del MatStructure + * del MatDuplicateOption + * del MatOrderingType # <<<<<<<<<<<<<< + * del MatSolverType + * del MatFactorShiftType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatOrderingType) < 0) __PYX_ERR(45, 2104, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2105 + * del MatDuplicateOption + * del MatOrderingType + * del MatSolverType # <<<<<<<<<<<<<< + * del MatFactorShiftType + * del MatSORType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatSolverType) < 0) __PYX_ERR(45, 2105, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2106 + * del MatOrderingType + * del MatSolverType + * del MatFactorShiftType # <<<<<<<<<<<<<< + * del MatSORType + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatFactorShiftType) < 0) __PYX_ERR(45, 2106, __pyx_L1_error) + + /* "petsc4py/PETSc/Mat.pyx":2107 + * del MatSolverType + * del MatFactorShiftType + * del MatSORType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatSORType) < 0) __PYX_ERR(45, 2107, __pyx_L1_error) + + /* "petsc4py/PETSc/MatPartitioning.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatPartitioningType(object): # <<<<<<<<<<<<<< + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__128); if (unlikely(!__pyx_t_6)) __PYX_ERR(46, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__128, __pyx_n_s_MatPartitioningType, __pyx_n_s_MatPartitioningType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(46, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/MatPartitioning.pyx":4 + * + * class MatPartitioningType(object): + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) # <<<<<<<<<<<<<< + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + * PARTITIONINGSQUARE = S_(MATPARTITIONINGSQUARE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGCURRENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGCURRENT, __pyx_t_5) < 0) __PYX_ERR(46, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":5 + * class MatPartitioningType(object): + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) # <<<<<<<<<<<<<< + * PARTITIONINGSQUARE = S_(MATPARTITIONINGSQUARE) + * PARTITIONINGPARMETIS = S_(MATPARTITIONINGPARMETIS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGAVERAGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGAVERAGE, __pyx_t_5) < 0) __PYX_ERR(46, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":6 + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + * PARTITIONINGSQUARE = S_(MATPARTITIONINGSQUARE) # <<<<<<<<<<<<<< + * PARTITIONINGPARMETIS = S_(MATPARTITIONINGPARMETIS) + * PARTITIONINGCHACO = S_(MATPARTITIONINGCHACO) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGSQUARE); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGSQUARE, __pyx_t_5) < 0) __PYX_ERR(46, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":7 + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + * PARTITIONINGSQUARE = S_(MATPARTITIONINGSQUARE) + * PARTITIONINGPARMETIS = S_(MATPARTITIONINGPARMETIS) # <<<<<<<<<<<<<< + * PARTITIONINGCHACO = S_(MATPARTITIONINGCHACO) + * PARTITIONINGPARTY = S_(MATPARTITIONINGPARTY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGPARMETIS); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGPARMETIS, __pyx_t_5) < 0) __PYX_ERR(46, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":8 + * PARTITIONINGSQUARE = S_(MATPARTITIONINGSQUARE) + * PARTITIONINGPARMETIS = S_(MATPARTITIONINGPARMETIS) + * PARTITIONINGCHACO = S_(MATPARTITIONINGCHACO) # <<<<<<<<<<<<<< + * PARTITIONINGPARTY = S_(MATPARTITIONINGPARTY) + * PARTITIONINGPTSCOTCH = S_(MATPARTITIONINGPTSCOTCH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGCHACO); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGCHACO, __pyx_t_5) < 0) __PYX_ERR(46, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":9 + * PARTITIONINGPARMETIS = S_(MATPARTITIONINGPARMETIS) + * PARTITIONINGCHACO = S_(MATPARTITIONINGCHACO) + * PARTITIONINGPARTY = S_(MATPARTITIONINGPARTY) # <<<<<<<<<<<<<< + * PARTITIONINGPTSCOTCH = S_(MATPARTITIONINGPTSCOTCH) + * PARTITIONINGHIERARCH = S_(MATPARTITIONINGHIERARCH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGPARTY); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGPARTY, __pyx_t_5) < 0) __PYX_ERR(46, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":10 + * PARTITIONINGCHACO = S_(MATPARTITIONINGCHACO) + * PARTITIONINGPARTY = S_(MATPARTITIONINGPARTY) + * PARTITIONINGPTSCOTCH = S_(MATPARTITIONINGPTSCOTCH) # <<<<<<<<<<<<<< + * PARTITIONINGHIERARCH = S_(MATPARTITIONINGHIERARCH) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGPTSCOTCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGPTSCOTCH, __pyx_t_5) < 0) __PYX_ERR(46, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":11 + * PARTITIONINGPARTY = S_(MATPARTITIONINGPARTY) + * PARTITIONINGPTSCOTCH = S_(MATPARTITIONINGPTSCOTCH) + * PARTITIONINGHIERARCH = S_(MATPARTITIONINGHIERARCH) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(MATPARTITIONINGHIERARCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARTITIONINGHIERARCH, __pyx_t_5) < 0) __PYX_ERR(46, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":3 + * # -------------------------------------------------------------------- + * + * class MatPartitioningType(object): # <<<<<<<<<<<<<< + * PARTITIONINGCURRENT = S_(MATPARTITIONINGCURRENT) + * PARTITIONINGAVERAGE = S_(MATPARTITIONINGAVERAGE) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_MatPartitioningType, __pyx_tuple__128, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(46, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MatPartitioningType, __pyx_t_5) < 0) __PYX_ERR(46, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/MatPartitioning.pyx":17 + * cdef class MatPartitioning(Object): + * + * Type = MatPartitioningType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_MatPartitioningType); if (unlikely(!__pyx_t_6)) __PYX_ERR(46, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_MatPartitioning->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(46, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_MatPartitioning); + + /* "petsc4py/PETSc/MatPartitioning.pyx":62 + * # -------------------------------------------------------------------- + * + * del MatPartitioningType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_MatPartitioningType) < 0) __PYX_ERR(46, 62, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":3 + * # -------------------------------------------------------------------- + * + * class PCType(object): # <<<<<<<<<<<<<< + * NONE = S_(PCNONE) + * JACOBI = S_(PCJACOBI) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__129); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__129, __pyx_n_s_PCType, __pyx_n_s_PCType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":4 + * + * class PCType(object): + * NONE = S_(PCNONE) # <<<<<<<<<<<<<< + * JACOBI = S_(PCJACOBI) + * SOR = S_(PCSOR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCNONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(47, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":5 + * class PCType(object): + * NONE = S_(PCNONE) + * JACOBI = S_(PCJACOBI) # <<<<<<<<<<<<<< + * SOR = S_(PCSOR) + * LU = S_(PCLU) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCJACOBI); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_JACOBI, __pyx_t_5) < 0) __PYX_ERR(47, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":6 + * NONE = S_(PCNONE) + * JACOBI = S_(PCJACOBI) + * SOR = S_(PCSOR) # <<<<<<<<<<<<<< + * LU = S_(PCLU) + * QR = S_(PCQR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SOR, __pyx_t_5) < 0) __PYX_ERR(47, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":7 + * JACOBI = S_(PCJACOBI) + * SOR = S_(PCSOR) + * LU = S_(PCLU) # <<<<<<<<<<<<<< + * QR = S_(PCQR) + * SHELL = S_(PCSHELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCLU); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LU, __pyx_t_5) < 0) __PYX_ERR(47, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":8 + * SOR = S_(PCSOR) + * LU = S_(PCLU) + * QR = S_(PCQR) # <<<<<<<<<<<<<< + * SHELL = S_(PCSHELL) + * BJACOBI = S_(PCBJACOBI) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCQR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QR, __pyx_t_5) < 0) __PYX_ERR(47, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":9 + * LU = S_(PCLU) + * QR = S_(PCQR) + * SHELL = S_(PCSHELL) # <<<<<<<<<<<<<< + * BJACOBI = S_(PCBJACOBI) + * VPBJACOBI = S_(PCVPBJACOBI) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSHELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHELL, __pyx_t_5) < 0) __PYX_ERR(47, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":10 + * QR = S_(PCQR) + * SHELL = S_(PCSHELL) + * BJACOBI = S_(PCBJACOBI) # <<<<<<<<<<<<<< + * VPBJACOBI = S_(PCVPBJACOBI) + * MG = S_(PCMG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCBJACOBI); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BJACOBI, __pyx_t_5) < 0) __PYX_ERR(47, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":11 + * SHELL = S_(PCSHELL) + * BJACOBI = S_(PCBJACOBI) + * VPBJACOBI = S_(PCVPBJACOBI) # <<<<<<<<<<<<<< + * MG = S_(PCMG) + * EISENSTAT = S_(PCEISENSTAT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCVPBJACOBI); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_VPBJACOBI, __pyx_t_5) < 0) __PYX_ERR(47, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":12 + * BJACOBI = S_(PCBJACOBI) + * VPBJACOBI = S_(PCVPBJACOBI) + * MG = S_(PCMG) # <<<<<<<<<<<<<< + * EISENSTAT = S_(PCEISENSTAT) + * ILU = S_(PCILU) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCMG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MG, __pyx_t_5) < 0) __PYX_ERR(47, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":13 + * VPBJACOBI = S_(PCVPBJACOBI) + * MG = S_(PCMG) + * EISENSTAT = S_(PCEISENSTAT) # <<<<<<<<<<<<<< + * ILU = S_(PCILU) + * ICC = S_(PCICC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCEISENSTAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EISENSTAT, __pyx_t_5) < 0) __PYX_ERR(47, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":14 + * MG = S_(PCMG) + * EISENSTAT = S_(PCEISENSTAT) + * ILU = S_(PCILU) # <<<<<<<<<<<<<< + * ICC = S_(PCICC) + * ASM = S_(PCASM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCILU); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ILU, __pyx_t_5) < 0) __PYX_ERR(47, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":15 + * EISENSTAT = S_(PCEISENSTAT) + * ILU = S_(PCILU) + * ICC = S_(PCICC) # <<<<<<<<<<<<<< + * ASM = S_(PCASM) + * GASM = S_(PCGASM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCICC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ICC, __pyx_t_5) < 0) __PYX_ERR(47, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":16 + * ILU = S_(PCILU) + * ICC = S_(PCICC) + * ASM = S_(PCASM) # <<<<<<<<<<<<<< + * GASM = S_(PCGASM) + * KSP = S_(PCKSP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCASM); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ASM, __pyx_t_5) < 0) __PYX_ERR(47, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":17 + * ICC = S_(PCICC) + * ASM = S_(PCASM) + * GASM = S_(PCGASM) # <<<<<<<<<<<<<< + * KSP = S_(PCKSP) + * COMPOSITE = S_(PCCOMPOSITE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGASM); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GASM, __pyx_t_5) < 0) __PYX_ERR(47, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":18 + * ASM = S_(PCASM) + * GASM = S_(PCGASM) + * KSP = S_(PCKSP) # <<<<<<<<<<<<<< + * COMPOSITE = S_(PCCOMPOSITE) + * REDUNDANT = S_(PCREDUNDANT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCKSP); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KSP, __pyx_t_5) < 0) __PYX_ERR(47, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":19 + * GASM = S_(PCGASM) + * KSP = S_(PCKSP) + * COMPOSITE = S_(PCCOMPOSITE) # <<<<<<<<<<<<<< + * REDUNDANT = S_(PCREDUNDANT) + * SPAI = S_(PCSPAI) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCCOMPOSITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COMPOSITE, __pyx_t_5) < 0) __PYX_ERR(47, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":20 + * KSP = S_(PCKSP) + * COMPOSITE = S_(PCCOMPOSITE) + * REDUNDANT = S_(PCREDUNDANT) # <<<<<<<<<<<<<< + * SPAI = S_(PCSPAI) + * NN = S_(PCNN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCREDUNDANT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REDUNDANT, __pyx_t_5) < 0) __PYX_ERR(47, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":21 + * COMPOSITE = S_(PCCOMPOSITE) + * REDUNDANT = S_(PCREDUNDANT) + * SPAI = S_(PCSPAI) # <<<<<<<<<<<<<< + * NN = S_(PCNN) + * CHOLESKY = S_(PCCHOLESKY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSPAI); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPAI, __pyx_t_5) < 0) __PYX_ERR(47, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":22 + * REDUNDANT = S_(PCREDUNDANT) + * SPAI = S_(PCSPAI) + * NN = S_(PCNN) # <<<<<<<<<<<<<< + * CHOLESKY = S_(PCCHOLESKY) + * PBJACOBI = S_(PCPBJACOBI) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCNN); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NN, __pyx_t_5) < 0) __PYX_ERR(47, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":23 + * SPAI = S_(PCSPAI) + * NN = S_(PCNN) + * CHOLESKY = S_(PCCHOLESKY) # <<<<<<<<<<<<<< + * PBJACOBI = S_(PCPBJACOBI) + * MAT = S_(PCMAT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCCHOLESKY); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CHOLESKY, __pyx_t_5) < 0) __PYX_ERR(47, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":24 + * NN = S_(PCNN) + * CHOLESKY = S_(PCCHOLESKY) + * PBJACOBI = S_(PCPBJACOBI) # <<<<<<<<<<<<<< + * MAT = S_(PCMAT) + * HYPRE = S_(PCHYPRE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCPBJACOBI); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PBJACOBI, __pyx_t_5) < 0) __PYX_ERR(47, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":25 + * CHOLESKY = S_(PCCHOLESKY) + * PBJACOBI = S_(PCPBJACOBI) + * MAT = S_(PCMAT) # <<<<<<<<<<<<<< + * HYPRE = S_(PCHYPRE) + * PARMS = S_(PCPARMS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCMAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MAT, __pyx_t_5) < 0) __PYX_ERR(47, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":26 + * PBJACOBI = S_(PCPBJACOBI) + * MAT = S_(PCMAT) + * HYPRE = S_(PCHYPRE) # <<<<<<<<<<<<<< + * PARMS = S_(PCPARMS) + * FIELDSPLIT = S_(PCFIELDSPLIT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCHYPRE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HYPRE, __pyx_t_5) < 0) __PYX_ERR(47, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":27 + * MAT = S_(PCMAT) + * HYPRE = S_(PCHYPRE) + * PARMS = S_(PCPARMS) # <<<<<<<<<<<<<< + * FIELDSPLIT = S_(PCFIELDSPLIT) + * TFS = S_(PCTFS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCPARMS); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARMS, __pyx_t_5) < 0) __PYX_ERR(47, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":28 + * HYPRE = S_(PCHYPRE) + * PARMS = S_(PCPARMS) + * FIELDSPLIT = S_(PCFIELDSPLIT) # <<<<<<<<<<<<<< + * TFS = S_(PCTFS) + * ML = S_(PCML) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCFIELDSPLIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FIELDSPLIT, __pyx_t_5) < 0) __PYX_ERR(47, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":29 + * PARMS = S_(PCPARMS) + * FIELDSPLIT = S_(PCFIELDSPLIT) + * TFS = S_(PCTFS) # <<<<<<<<<<<<<< + * ML = S_(PCML) + * GALERKIN = S_(PCGALERKIN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCTFS); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TFS, __pyx_t_5) < 0) __PYX_ERR(47, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":30 + * FIELDSPLIT = S_(PCFIELDSPLIT) + * TFS = S_(PCTFS) + * ML = S_(PCML) # <<<<<<<<<<<<<< + * GALERKIN = S_(PCGALERKIN) + * EXOTIC = S_(PCEXOTIC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCML); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ML, __pyx_t_5) < 0) __PYX_ERR(47, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":31 + * TFS = S_(PCTFS) + * ML = S_(PCML) + * GALERKIN = S_(PCGALERKIN) # <<<<<<<<<<<<<< + * EXOTIC = S_(PCEXOTIC) + * CP = S_(PCCP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGALERKIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GALERKIN, __pyx_t_5) < 0) __PYX_ERR(47, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":32 + * ML = S_(PCML) + * GALERKIN = S_(PCGALERKIN) + * EXOTIC = S_(PCEXOTIC) # <<<<<<<<<<<<<< + * CP = S_(PCCP) + * BFBT = S_(PCBFBT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCEXOTIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EXOTIC, __pyx_t_5) < 0) __PYX_ERR(47, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":33 + * GALERKIN = S_(PCGALERKIN) + * EXOTIC = S_(PCEXOTIC) + * CP = S_(PCCP) # <<<<<<<<<<<<<< + * BFBT = S_(PCBFBT) + * LSC = S_(PCLSC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCCP); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CP, __pyx_t_5) < 0) __PYX_ERR(47, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":34 + * EXOTIC = S_(PCEXOTIC) + * CP = S_(PCCP) + * BFBT = S_(PCBFBT) # <<<<<<<<<<<<<< + * LSC = S_(PCLSC) + * PYTHON = S_(PCPYTHON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCBFBT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BFBT, __pyx_t_5) < 0) __PYX_ERR(47, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":35 + * CP = S_(PCCP) + * BFBT = S_(PCBFBT) + * LSC = S_(PCLSC) # <<<<<<<<<<<<<< + * PYTHON = S_(PCPYTHON) + * PFMG = S_(PCPFMG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCLSC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LSC, __pyx_t_5) < 0) __PYX_ERR(47, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":36 + * BFBT = S_(PCBFBT) + * LSC = S_(PCLSC) + * PYTHON = S_(PCPYTHON) # <<<<<<<<<<<<<< + * PFMG = S_(PCPFMG) + * SYSPFMG = S_(PCSYSPFMG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCPYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(47, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":37 + * LSC = S_(PCLSC) + * PYTHON = S_(PCPYTHON) + * PFMG = S_(PCPFMG) # <<<<<<<<<<<<<< + * SYSPFMG = S_(PCSYSPFMG) + * REDISTRIBUTE = S_(PCREDISTRIBUTE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCPFMG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PFMG, __pyx_t_5) < 0) __PYX_ERR(47, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":38 + * PYTHON = S_(PCPYTHON) + * PFMG = S_(PCPFMG) + * SYSPFMG = S_(PCSYSPFMG) # <<<<<<<<<<<<<< + * REDISTRIBUTE = S_(PCREDISTRIBUTE) + * SVD = S_(PCSVD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSYSPFMG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYSPFMG, __pyx_t_5) < 0) __PYX_ERR(47, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":39 + * PFMG = S_(PCPFMG) + * SYSPFMG = S_(PCSYSPFMG) + * REDISTRIBUTE = S_(PCREDISTRIBUTE) # <<<<<<<<<<<<<< + * SVD = S_(PCSVD) + * GAMG = S_(PCGAMG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCREDISTRIBUTE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REDISTRIBUTE, __pyx_t_5) < 0) __PYX_ERR(47, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":40 + * SYSPFMG = S_(PCSYSPFMG) + * REDISTRIBUTE = S_(PCREDISTRIBUTE) + * SVD = S_(PCSVD) # <<<<<<<<<<<<<< + * GAMG = S_(PCGAMG) + * CHOWILUVIENNACL = S_(PCCHOWILUVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSVD); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SVD, __pyx_t_5) < 0) __PYX_ERR(47, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":41 + * REDISTRIBUTE = S_(PCREDISTRIBUTE) + * SVD = S_(PCSVD) + * GAMG = S_(PCGAMG) # <<<<<<<<<<<<<< + * CHOWILUVIENNACL = S_(PCCHOWILUVIENNACL) + * ROWSCALINGVIENNACL = S_(PCROWSCALINGVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGAMG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GAMG, __pyx_t_5) < 0) __PYX_ERR(47, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":42 + * SVD = S_(PCSVD) + * GAMG = S_(PCGAMG) + * CHOWILUVIENNACL = S_(PCCHOWILUVIENNACL) # <<<<<<<<<<<<<< + * ROWSCALINGVIENNACL = S_(PCROWSCALINGVIENNACL) + * SAVIENNACL = S_(PCSAVIENNACL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCCHOWILUVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CHOWILUVIENNACL, __pyx_t_5) < 0) __PYX_ERR(47, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":43 + * GAMG = S_(PCGAMG) + * CHOWILUVIENNACL = S_(PCCHOWILUVIENNACL) + * ROWSCALINGVIENNACL = S_(PCROWSCALINGVIENNACL) # <<<<<<<<<<<<<< + * SAVIENNACL = S_(PCSAVIENNACL) + * BDDC = S_(PCBDDC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCROWSCALINGVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ROWSCALINGVIENNACL, __pyx_t_5) < 0) __PYX_ERR(47, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":44 + * CHOWILUVIENNACL = S_(PCCHOWILUVIENNACL) + * ROWSCALINGVIENNACL = S_(PCROWSCALINGVIENNACL) + * SAVIENNACL = S_(PCSAVIENNACL) # <<<<<<<<<<<<<< + * BDDC = S_(PCBDDC) + * KACZMARZ = S_(PCKACZMARZ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCSAVIENNACL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SAVIENNACL, __pyx_t_5) < 0) __PYX_ERR(47, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":45 + * ROWSCALINGVIENNACL = S_(PCROWSCALINGVIENNACL) + * SAVIENNACL = S_(PCSAVIENNACL) + * BDDC = S_(PCBDDC) # <<<<<<<<<<<<<< + * KACZMARZ = S_(PCKACZMARZ) + * TELESCOPE = S_(PCTELESCOPE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCBDDC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BDDC, __pyx_t_5) < 0) __PYX_ERR(47, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":46 + * SAVIENNACL = S_(PCSAVIENNACL) + * BDDC = S_(PCBDDC) + * KACZMARZ = S_(PCKACZMARZ) # <<<<<<<<<<<<<< + * TELESCOPE = S_(PCTELESCOPE) + * PATCH = S_(PCPATCH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCKACZMARZ); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KACZMARZ, __pyx_t_5) < 0) __PYX_ERR(47, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":47 + * BDDC = S_(PCBDDC) + * KACZMARZ = S_(PCKACZMARZ) + * TELESCOPE = S_(PCTELESCOPE) # <<<<<<<<<<<<<< + * PATCH = S_(PCPATCH) + * LMVM = S_(PCLMVM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCTELESCOPE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TELESCOPE, __pyx_t_5) < 0) __PYX_ERR(47, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":48 + * KACZMARZ = S_(PCKACZMARZ) + * TELESCOPE = S_(PCTELESCOPE) + * PATCH = S_(PCPATCH) # <<<<<<<<<<<<<< + * LMVM = S_(PCLMVM) + * HMG = S_(PCHMG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCPATCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PATCH, __pyx_t_5) < 0) __PYX_ERR(47, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":49 + * TELESCOPE = S_(PCTELESCOPE) + * PATCH = S_(PCPATCH) + * LMVM = S_(PCLMVM) # <<<<<<<<<<<<<< + * HMG = S_(PCHMG) + * DEFLATION = S_(PCDEFLATION) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCLMVM); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LMVM, __pyx_t_5) < 0) __PYX_ERR(47, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":50 + * PATCH = S_(PCPATCH) + * LMVM = S_(PCLMVM) + * HMG = S_(PCHMG) # <<<<<<<<<<<<<< + * DEFLATION = S_(PCDEFLATION) + * HPDDM = S_(PCHPDDM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCHMG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HMG, __pyx_t_5) < 0) __PYX_ERR(47, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":51 + * LMVM = S_(PCLMVM) + * HMG = S_(PCHMG) + * DEFLATION = S_(PCDEFLATION) # <<<<<<<<<<<<<< + * HPDDM = S_(PCHPDDM) + * H2OPUS = S_(PCH2OPUS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCDEFLATION); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DEFLATION, __pyx_t_5) < 0) __PYX_ERR(47, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":52 + * HMG = S_(PCHMG) + * DEFLATION = S_(PCDEFLATION) + * HPDDM = S_(PCHPDDM) # <<<<<<<<<<<<<< + * H2OPUS = S_(PCH2OPUS) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCHPDDM); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HPDDM, __pyx_t_5) < 0) __PYX_ERR(47, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":53 + * DEFLATION = S_(PCDEFLATION) + * HPDDM = S_(PCHPDDM) + * H2OPUS = S_(PCH2OPUS) # <<<<<<<<<<<<<< + * + * class PCSide(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCH2OPUS); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_H2OPUS, __pyx_t_5) < 0) __PYX_ERR(47, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":3 + * # -------------------------------------------------------------------- + * + * class PCType(object): # <<<<<<<<<<<<<< + * NONE = S_(PCNONE) + * JACOBI = S_(PCJACOBI) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCType, __pyx_tuple__129, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCType, __pyx_t_5) < 0) __PYX_ERR(47, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":55 + * H2OPUS = S_(PCH2OPUS) + * + * class PCSide(object): # <<<<<<<<<<<<<< + * # native + * LEFT = PC_LEFT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__130); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__130, __pyx_n_s_PCSide, __pyx_n_s_PCSide, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":57 + * class PCSide(object): + * # native + * LEFT = PC_LEFT # <<<<<<<<<<<<<< + * RIGHT = PC_RIGHT + * SYMMETRIC = PC_SYMMETRIC + */ + __pyx_t_5 = __Pyx_PyInt_From_PCSide(PC_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LEFT, __pyx_t_5) < 0) __PYX_ERR(47, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":58 + * # native + * LEFT = PC_LEFT + * RIGHT = PC_RIGHT # <<<<<<<<<<<<<< + * SYMMETRIC = PC_SYMMETRIC + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_PCSide(PC_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RIGHT, __pyx_t_5) < 0) __PYX_ERR(47, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":59 + * LEFT = PC_LEFT + * RIGHT = PC_RIGHT + * SYMMETRIC = PC_SYMMETRIC # <<<<<<<<<<<<<< + * # aliases + * L = LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_PCSide(PC_SYMMETRIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMETRIC, __pyx_t_5) < 0) __PYX_ERR(47, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":61 + * SYMMETRIC = PC_SYMMETRIC + * # aliases + * L = LEFT # <<<<<<<<<<<<<< + * R = RIGHT + * S = SYMMETRIC + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_LEFT); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_LEFT); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_L, __pyx_t_5) < 0) __PYX_ERR(47, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":62 + * # aliases + * L = LEFT + * R = RIGHT # <<<<<<<<<<<<<< + * S = SYMMETRIC + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_RIGHT); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_RIGHT); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_R, __pyx_t_5) < 0) __PYX_ERR(47, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":63 + * L = LEFT + * R = RIGHT + * S = SYMMETRIC # <<<<<<<<<<<<<< + * + * class PCASMType(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_SYMMETRIC); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_SYMMETRIC); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_S, __pyx_t_5) < 0) __PYX_ERR(47, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":55 + * H2OPUS = S_(PCH2OPUS) + * + * class PCSide(object): # <<<<<<<<<<<<<< + * # native + * LEFT = PC_LEFT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCSide, __pyx_tuple__130, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCSide, __pyx_t_5) < 0) __PYX_ERR(47, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":65 + * S = SYMMETRIC + * + * class PCASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_ASM_NONE + * BASIC = PC_ASM_BASIC + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__131); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__131, __pyx_n_s_PCASMType, __pyx_n_s_PCASMType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":66 + * + * class PCASMType(object): + * NONE = PC_ASM_NONE # <<<<<<<<<<<<<< + * BASIC = PC_ASM_BASIC + * RESTRICT = PC_ASM_RESTRICT + */ + __pyx_t_5 = __Pyx_PyInt_From_PCASMType(PC_ASM_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 66, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(47, 66, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":67 + * class PCASMType(object): + * NONE = PC_ASM_NONE + * BASIC = PC_ASM_BASIC # <<<<<<<<<<<<<< + * RESTRICT = PC_ASM_RESTRICT + * INTERPOLATE = PC_ASM_INTERPOLATE + */ + __pyx_t_5 = __Pyx_PyInt_From_PCASMType(PC_ASM_BASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(47, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":68 + * NONE = PC_ASM_NONE + * BASIC = PC_ASM_BASIC + * RESTRICT = PC_ASM_RESTRICT # <<<<<<<<<<<<<< + * INTERPOLATE = PC_ASM_INTERPOLATE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCASMType(PC_ASM_RESTRICT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RESTRICT, __pyx_t_5) < 0) __PYX_ERR(47, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":69 + * BASIC = PC_ASM_BASIC + * RESTRICT = PC_ASM_RESTRICT + * INTERPOLATE = PC_ASM_INTERPOLATE # <<<<<<<<<<<<<< + * + * class PCGASMType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCASMType(PC_ASM_INTERPOLATE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INTERPOLATE, __pyx_t_5) < 0) __PYX_ERR(47, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":65 + * S = SYMMETRIC + * + * class PCASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_ASM_NONE + * BASIC = PC_ASM_BASIC + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCASMType, __pyx_tuple__131, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCASMType, __pyx_t_5) < 0) __PYX_ERR(47, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":71 + * INTERPOLATE = PC_ASM_INTERPOLATE + * + * class PCGASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_GASM_NONE + * BASIC = PC_GASM_BASIC + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__132); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__132, __pyx_n_s_PCGASMType, __pyx_n_s_PCGASMType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":72 + * + * class PCGASMType(object): + * NONE = PC_GASM_NONE # <<<<<<<<<<<<<< + * BASIC = PC_GASM_BASIC + * RESTRICT = PC_GASM_RESTRICT + */ + __pyx_t_5 = __Pyx_PyInt_From_PCGASMType(PC_GASM_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(47, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":73 + * class PCGASMType(object): + * NONE = PC_GASM_NONE + * BASIC = PC_GASM_BASIC # <<<<<<<<<<<<<< + * RESTRICT = PC_GASM_RESTRICT + * INTERPOLATE = PC_GASM_INTERPOLATE + */ + __pyx_t_5 = __Pyx_PyInt_From_PCGASMType(PC_GASM_BASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(47, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":74 + * NONE = PC_GASM_NONE + * BASIC = PC_GASM_BASIC + * RESTRICT = PC_GASM_RESTRICT # <<<<<<<<<<<<<< + * INTERPOLATE = PC_GASM_INTERPOLATE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCGASMType(PC_GASM_RESTRICT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RESTRICT, __pyx_t_5) < 0) __PYX_ERR(47, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":75 + * BASIC = PC_GASM_BASIC + * RESTRICT = PC_GASM_RESTRICT + * INTERPOLATE = PC_GASM_INTERPOLATE # <<<<<<<<<<<<<< + * + * class PCMGType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCGASMType(PC_GASM_INTERPOLATE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INTERPOLATE, __pyx_t_5) < 0) __PYX_ERR(47, 75, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":71 + * INTERPOLATE = PC_ASM_INTERPOLATE + * + * class PCGASMType(object): # <<<<<<<<<<<<<< + * NONE = PC_GASM_NONE + * BASIC = PC_GASM_BASIC + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCGASMType, __pyx_tuple__132, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCGASMType, __pyx_t_5) < 0) __PYX_ERR(47, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":77 + * INTERPOLATE = PC_GASM_INTERPOLATE + * + * class PCMGType(object): # <<<<<<<<<<<<<< + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE + * ADDITIVE = PC_MG_ADDITIVE + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__133); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__133, __pyx_n_s_PCMGType, __pyx_n_s_PCMGType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":78 + * + * class PCMGType(object): + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE # <<<<<<<<<<<<<< + * ADDITIVE = PC_MG_ADDITIVE + * FULL = PC_MG_FULL + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGType(PC_MG_MULTIPLICATIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MULTIPLICATIVE, __pyx_t_5) < 0) __PYX_ERR(47, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":79 + * class PCMGType(object): + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE + * ADDITIVE = PC_MG_ADDITIVE # <<<<<<<<<<<<<< + * FULL = PC_MG_FULL + * KASKADE = PC_MG_KASKADE + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGType(PC_MG_ADDITIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ADDITIVE, __pyx_t_5) < 0) __PYX_ERR(47, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":80 + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE + * ADDITIVE = PC_MG_ADDITIVE + * FULL = PC_MG_FULL # <<<<<<<<<<<<<< + * KASKADE = PC_MG_KASKADE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGType(PC_MG_FULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FULL, __pyx_t_5) < 0) __PYX_ERR(47, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":81 + * ADDITIVE = PC_MG_ADDITIVE + * FULL = PC_MG_FULL + * KASKADE = PC_MG_KASKADE # <<<<<<<<<<<<<< + * + * class PCMGCycleType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGType(PC_MG_KASKADE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KASKADE, __pyx_t_5) < 0) __PYX_ERR(47, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":77 + * INTERPOLATE = PC_GASM_INTERPOLATE + * + * class PCMGType(object): # <<<<<<<<<<<<<< + * MULTIPLICATIVE = PC_MG_MULTIPLICATIVE + * ADDITIVE = PC_MG_ADDITIVE + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCMGType, __pyx_tuple__133, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCMGType, __pyx_t_5) < 0) __PYX_ERR(47, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":83 + * KASKADE = PC_MG_KASKADE + * + * class PCMGCycleType(object): # <<<<<<<<<<<<<< + * V = PC_MG_CYCLE_V + * W = PC_MG_CYCLE_W + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__134); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__134, __pyx_n_s_PCMGCycleType, __pyx_n_s_PCMGCycleType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":84 + * + * class PCMGCycleType(object): + * V = PC_MG_CYCLE_V # <<<<<<<<<<<<<< + * W = PC_MG_CYCLE_W + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGCycleType(PC_MG_CYCLE_V); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_V, __pyx_t_5) < 0) __PYX_ERR(47, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":85 + * class PCMGCycleType(object): + * V = PC_MG_CYCLE_V + * W = PC_MG_CYCLE_W # <<<<<<<<<<<<<< + * + * class PCGAMGType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCMGCycleType(PC_MG_CYCLE_W); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_W, __pyx_t_5) < 0) __PYX_ERR(47, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":83 + * KASKADE = PC_MG_KASKADE + * + * class PCMGCycleType(object): # <<<<<<<<<<<<<< + * V = PC_MG_CYCLE_V + * W = PC_MG_CYCLE_W + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCMGCycleType, __pyx_tuple__134, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCMGCycleType, __pyx_t_5) < 0) __PYX_ERR(47, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":87 + * W = PC_MG_CYCLE_W + * + * class PCGAMGType(object): # <<<<<<<<<<<<<< + * AGG = S_(PCGAMGAGG) + * GEO = S_(PCGAMGGEO) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__135); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__135, __pyx_n_s_PCGAMGType, __pyx_n_s_PCGAMGType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":88 + * + * class PCGAMGType(object): + * AGG = S_(PCGAMGAGG) # <<<<<<<<<<<<<< + * GEO = S_(PCGAMGGEO) + * CLASSICAL = S_(PCGAMGCLASSICAL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGAMGAGG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AGG, __pyx_t_5) < 0) __PYX_ERR(47, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":89 + * class PCGAMGType(object): + * AGG = S_(PCGAMGAGG) + * GEO = S_(PCGAMGGEO) # <<<<<<<<<<<<<< + * CLASSICAL = S_(PCGAMGCLASSICAL) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGAMGGEO); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GEO, __pyx_t_5) < 0) __PYX_ERR(47, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":90 + * AGG = S_(PCGAMGAGG) + * GEO = S_(PCGAMGGEO) + * CLASSICAL = S_(PCGAMGCLASSICAL) # <<<<<<<<<<<<<< + * + * class PCCompositeType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PCGAMGCLASSICAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CLASSICAL, __pyx_t_5) < 0) __PYX_ERR(47, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":87 + * W = PC_MG_CYCLE_W + * + * class PCGAMGType(object): # <<<<<<<<<<<<<< + * AGG = S_(PCGAMGAGG) + * GEO = S_(PCGAMGGEO) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCGAMGType, __pyx_tuple__135, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCGAMGType, __pyx_t_5) < 0) __PYX_ERR(47, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":92 + * CLASSICAL = S_(PCGAMGCLASSICAL) + * + * class PCCompositeType(object): # <<<<<<<<<<<<<< + * ADDITIVE = PC_COMPOSITE_ADDITIVE + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__136); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__136, __pyx_n_s_PCCompositeType, __pyx_n_s_PCCompositeType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":93 + * + * class PCCompositeType(object): + * ADDITIVE = PC_COMPOSITE_ADDITIVE # <<<<<<<<<<<<<< + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + * SYMMETRIC_MULTIPLICATIVE = PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE + */ + __pyx_t_5 = __Pyx_PyInt_From_PCCompositeType(PC_COMPOSITE_ADDITIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ADDITIVE, __pyx_t_5) < 0) __PYX_ERR(47, 93, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":94 + * class PCCompositeType(object): + * ADDITIVE = PC_COMPOSITE_ADDITIVE + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE # <<<<<<<<<<<<<< + * SYMMETRIC_MULTIPLICATIVE = PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE + * SPECIAL = PC_COMPOSITE_SPECIAL + */ + __pyx_t_5 = __Pyx_PyInt_From_PCCompositeType(PC_COMPOSITE_MULTIPLICATIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MULTIPLICATIVE, __pyx_t_5) < 0) __PYX_ERR(47, 94, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":95 + * ADDITIVE = PC_COMPOSITE_ADDITIVE + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + * SYMMETRIC_MULTIPLICATIVE = PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE # <<<<<<<<<<<<<< + * SPECIAL = PC_COMPOSITE_SPECIAL + * SCHUR = PC_COMPOSITE_SCHUR + */ + __pyx_t_5 = __Pyx_PyInt_From_PCCompositeType(PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMETRIC_MULTIPLICATIVE, __pyx_t_5) < 0) __PYX_ERR(47, 95, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":96 + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + * SYMMETRIC_MULTIPLICATIVE = PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE + * SPECIAL = PC_COMPOSITE_SPECIAL # <<<<<<<<<<<<<< + * SCHUR = PC_COMPOSITE_SCHUR + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCCompositeType(PC_COMPOSITE_SPECIAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SPECIAL, __pyx_t_5) < 0) __PYX_ERR(47, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":97 + * SYMMETRIC_MULTIPLICATIVE = PC_COMPOSITE_SYMMETRIC_MULTIPLICATIVE + * SPECIAL = PC_COMPOSITE_SPECIAL + * SCHUR = PC_COMPOSITE_SCHUR # <<<<<<<<<<<<<< + * + * class PCFieldSplitSchurPreType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCCompositeType(PC_COMPOSITE_SCHUR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SCHUR, __pyx_t_5) < 0) __PYX_ERR(47, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":92 + * CLASSICAL = S_(PCGAMGCLASSICAL) + * + * class PCCompositeType(object): # <<<<<<<<<<<<<< + * ADDITIVE = PC_COMPOSITE_ADDITIVE + * MULTIPLICATIVE = PC_COMPOSITE_MULTIPLICATIVE + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCCompositeType, __pyx_tuple__136, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 92, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCCompositeType, __pyx_t_5) < 0) __PYX_ERR(47, 92, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":99 + * SCHUR = PC_COMPOSITE_SCHUR + * + * class PCFieldSplitSchurPreType(object): # <<<<<<<<<<<<<< + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__137); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__137, __pyx_n_s_PCFieldSplitSchurPreType, __pyx_n_s_PCFieldSplitSchurPreType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":100 + * + * class PCFieldSplitSchurPreType(object): + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF # <<<<<<<<<<<<<< + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + * A11 = PC_FIELDSPLIT_SCHUR_PRE_A11 + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurPreType(PC_FIELDSPLIT_SCHUR_PRE_SELF); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SELF, __pyx_t_5) < 0) __PYX_ERR(47, 100, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":101 + * class PCFieldSplitSchurPreType(object): + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP # <<<<<<<<<<<<<< + * A11 = PC_FIELDSPLIT_SCHUR_PRE_A11 + * USER = PC_FIELDSPLIT_SCHUR_PRE_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurPreType(PC_FIELDSPLIT_SCHUR_PRE_SELFP); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SELFP, __pyx_t_5) < 0) __PYX_ERR(47, 101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":102 + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + * A11 = PC_FIELDSPLIT_SCHUR_PRE_A11 # <<<<<<<<<<<<<< + * USER = PC_FIELDSPLIT_SCHUR_PRE_USER + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurPreType(PC_FIELDSPLIT_SCHUR_PRE_A11); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_A11, __pyx_t_5) < 0) __PYX_ERR(47, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":103 + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + * A11 = PC_FIELDSPLIT_SCHUR_PRE_A11 + * USER = PC_FIELDSPLIT_SCHUR_PRE_USER # <<<<<<<<<<<<<< + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurPreType(PC_FIELDSPLIT_SCHUR_PRE_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_USER, __pyx_t_5) < 0) __PYX_ERR(47, 103, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":104 + * A11 = PC_FIELDSPLIT_SCHUR_PRE_A11 + * USER = PC_FIELDSPLIT_SCHUR_PRE_USER + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL # <<<<<<<<<<<<<< + * + * class PCFieldSplitSchurFactType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurPreType(PC_FIELDSPLIT_SCHUR_PRE_FULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 104, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FULL, __pyx_t_5) < 0) __PYX_ERR(47, 104, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":99 + * SCHUR = PC_COMPOSITE_SCHUR + * + * class PCFieldSplitSchurPreType(object): # <<<<<<<<<<<<<< + * SELF = PC_FIELDSPLIT_SCHUR_PRE_SELF + * SELFP = PC_FIELDSPLIT_SCHUR_PRE_SELFP + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCFieldSplitSchurPreType, __pyx_tuple__137, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCFieldSplitSchurPreType, __pyx_t_5) < 0) __PYX_ERR(47, 99, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":106 + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL + * + * class PCFieldSplitSchurFactType(object): # <<<<<<<<<<<<<< + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__138); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__138, __pyx_n_s_PCFieldSplitSchurFactType, __pyx_n_s_PCFieldSplitSchurFactType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":107 + * + * class PCFieldSplitSchurFactType(object): + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG # <<<<<<<<<<<<<< + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + * UPPER = PC_FIELDSPLIT_SCHUR_FACT_UPPER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurFactType(PC_FIELDSPLIT_SCHUR_FACT_DIAG); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIAG, __pyx_t_5) < 0) __PYX_ERR(47, 107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":108 + * class PCFieldSplitSchurFactType(object): + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER # <<<<<<<<<<<<<< + * UPPER = PC_FIELDSPLIT_SCHUR_FACT_UPPER + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurFactType(PC_FIELDSPLIT_SCHUR_FACT_LOWER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LOWER, __pyx_t_5) < 0) __PYX_ERR(47, 108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":109 + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + * UPPER = PC_FIELDSPLIT_SCHUR_FACT_UPPER # <<<<<<<<<<<<<< + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurFactType(PC_FIELDSPLIT_SCHUR_FACT_UPPER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UPPER, __pyx_t_5) < 0) __PYX_ERR(47, 109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":110 + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + * UPPER = PC_FIELDSPLIT_SCHUR_FACT_UPPER + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL # <<<<<<<<<<<<<< + * + * class PCPatchConstructType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFieldSplitSchurFactType(PC_FIELDSPLIT_SCHUR_FACT_FULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FULL, __pyx_t_5) < 0) __PYX_ERR(47, 110, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":106 + * FULL = PC_FIELDSPLIT_SCHUR_PRE_FULL + * + * class PCFieldSplitSchurFactType(object): # <<<<<<<<<<<<<< + * DIAG = PC_FIELDSPLIT_SCHUR_FACT_DIAG + * LOWER = PC_FIELDSPLIT_SCHUR_FACT_LOWER + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCFieldSplitSchurFactType, __pyx_tuple__138, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCFieldSplitSchurFactType, __pyx_t_5) < 0) __PYX_ERR(47, 106, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":112 + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL + * + * class PCPatchConstructType(object): # <<<<<<<<<<<<<< + * STAR = PC_PATCH_STAR + * VANKA = PC_PATCH_VANKA + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__139); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__139, __pyx_n_s_PCPatchConstructType, __pyx_n_s_PCPatchConstructType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":113 + * + * class PCPatchConstructType(object): + * STAR = PC_PATCH_STAR # <<<<<<<<<<<<<< + * VANKA = PC_PATCH_VANKA + * PARDECOMP = PC_PATCH_PARDECOMP + */ + __pyx_t_5 = __Pyx_PyInt_From_PCPatchConstructType(PC_PATCH_STAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STAR, __pyx_t_5) < 0) __PYX_ERR(47, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":114 + * class PCPatchConstructType(object): + * STAR = PC_PATCH_STAR + * VANKA = PC_PATCH_VANKA # <<<<<<<<<<<<<< + * PARDECOMP = PC_PATCH_PARDECOMP + * USER = PC_PATCH_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCPatchConstructType(PC_PATCH_VANKA); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_VANKA, __pyx_t_5) < 0) __PYX_ERR(47, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":115 + * STAR = PC_PATCH_STAR + * VANKA = PC_PATCH_VANKA + * PARDECOMP = PC_PATCH_PARDECOMP # <<<<<<<<<<<<<< + * USER = PC_PATCH_USER + * PYTHON = PC_PATCH_PYTHON + */ + __pyx_t_5 = __Pyx_PyInt_From_PCPatchConstructType(PC_PATCH_PARDECOMP); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARDECOMP, __pyx_t_5) < 0) __PYX_ERR(47, 115, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":116 + * VANKA = PC_PATCH_VANKA + * PARDECOMP = PC_PATCH_PARDECOMP + * USER = PC_PATCH_USER # <<<<<<<<<<<<<< + * PYTHON = PC_PATCH_PYTHON + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCPatchConstructType(PC_PATCH_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 116, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_USER, __pyx_t_5) < 0) __PYX_ERR(47, 116, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":117 + * PARDECOMP = PC_PATCH_PARDECOMP + * USER = PC_PATCH_USER + * PYTHON = PC_PATCH_PYTHON # <<<<<<<<<<<<<< + * + * class PCHPDDMCoarseCorrectionType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCPatchConstructType(PC_PATCH_PYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(47, 117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":112 + * FULL = PC_FIELDSPLIT_SCHUR_FACT_FULL + * + * class PCPatchConstructType(object): # <<<<<<<<<<<<<< + * STAR = PC_PATCH_STAR + * VANKA = PC_PATCH_VANKA + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCPatchConstructType, __pyx_tuple__139, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCPatchConstructType, __pyx_t_5) < 0) __PYX_ERR(47, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":119 + * PYTHON = PC_PATCH_PYTHON + * + * class PCHPDDMCoarseCorrectionType(object): # <<<<<<<<<<<<<< + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__140); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__140, __pyx_n_s_PCHPDDMCoarseCorrectionType, __pyx_n_s_PCHPDDMCoarseCorrectionType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":120 + * + * class PCHPDDMCoarseCorrectionType(object): + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED # <<<<<<<<<<<<<< + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED + */ + __pyx_t_5 = __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(PC_HPDDM_COARSE_CORRECTION_DEFLATED); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DEFLATED, __pyx_t_5) < 0) __PYX_ERR(47, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":121 + * class PCHPDDMCoarseCorrectionType(object): + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE # <<<<<<<<<<<<<< + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(PC_HPDDM_COARSE_CORRECTION_ADDITIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ADDITIVE, __pyx_t_5) < 0) __PYX_ERR(47, 121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":122 + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED # <<<<<<<<<<<<<< + * + * class PCDeflationSpaceType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(PC_HPDDM_COARSE_CORRECTION_BALANCED); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BALANCED, __pyx_t_5) < 0) __PYX_ERR(47, 122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":119 + * PYTHON = PC_PATCH_PYTHON + * + * class PCHPDDMCoarseCorrectionType(object): # <<<<<<<<<<<<<< + * DEFLATED = PC_HPDDM_COARSE_CORRECTION_DEFLATED + * ADDITIVE = PC_HPDDM_COARSE_CORRECTION_ADDITIVE + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCHPDDMCoarseCorrectionType, __pyx_tuple__140, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCHPDDMCoarseCorrectionType, __pyx_t_5) < 0) __PYX_ERR(47, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":124 + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED + * + * class PCDeflationSpaceType(object): # <<<<<<<<<<<<<< + * HAAR = PC_DEFLATION_SPACE_HAAR + * DB2 = PC_DEFLATION_SPACE_DB2 + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__141); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__141, __pyx_n_s_PCDeflationSpaceType, __pyx_n_s_PCDeflationSpaceType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":125 + * + * class PCDeflationSpaceType(object): + * HAAR = PC_DEFLATION_SPACE_HAAR # <<<<<<<<<<<<<< + * DB2 = PC_DEFLATION_SPACE_DB2 + * DB4 = PC_DEFLATION_SPACE_DB4 + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_HAAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HAAR, __pyx_t_5) < 0) __PYX_ERR(47, 125, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":126 + * class PCDeflationSpaceType(object): + * HAAR = PC_DEFLATION_SPACE_HAAR + * DB2 = PC_DEFLATION_SPACE_DB2 # <<<<<<<<<<<<<< + * DB4 = PC_DEFLATION_SPACE_DB4 + * DB8 = PC_DEFLATION_SPACE_DB8 + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_DB2); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 126, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DB2, __pyx_t_5) < 0) __PYX_ERR(47, 126, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":127 + * HAAR = PC_DEFLATION_SPACE_HAAR + * DB2 = PC_DEFLATION_SPACE_DB2 + * DB4 = PC_DEFLATION_SPACE_DB4 # <<<<<<<<<<<<<< + * DB8 = PC_DEFLATION_SPACE_DB8 + * DB16 = PC_DEFLATION_SPACE_DB16 + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_DB4); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DB4, __pyx_t_5) < 0) __PYX_ERR(47, 127, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":128 + * DB2 = PC_DEFLATION_SPACE_DB2 + * DB4 = PC_DEFLATION_SPACE_DB4 + * DB8 = PC_DEFLATION_SPACE_DB8 # <<<<<<<<<<<<<< + * DB16 = PC_DEFLATION_SPACE_DB16 + * BIORTH22 = PC_DEFLATION_SPACE_BIORTH22 + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_DB8); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DB8, __pyx_t_5) < 0) __PYX_ERR(47, 128, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":129 + * DB4 = PC_DEFLATION_SPACE_DB4 + * DB8 = PC_DEFLATION_SPACE_DB8 + * DB16 = PC_DEFLATION_SPACE_DB16 # <<<<<<<<<<<<<< + * BIORTH22 = PC_DEFLATION_SPACE_BIORTH22 + * MEYER = PC_DEFLATION_SPACE_MEYER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_DB16); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DB16, __pyx_t_5) < 0) __PYX_ERR(47, 129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":130 + * DB8 = PC_DEFLATION_SPACE_DB8 + * DB16 = PC_DEFLATION_SPACE_DB16 + * BIORTH22 = PC_DEFLATION_SPACE_BIORTH22 # <<<<<<<<<<<<<< + * MEYER = PC_DEFLATION_SPACE_MEYER + * AGGERGATION = PC_DEFLATION_SPACE_AGGREGATION + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_BIORTH22); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BIORTH22, __pyx_t_5) < 0) __PYX_ERR(47, 130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":131 + * DB16 = PC_DEFLATION_SPACE_DB16 + * BIORTH22 = PC_DEFLATION_SPACE_BIORTH22 + * MEYER = PC_DEFLATION_SPACE_MEYER # <<<<<<<<<<<<<< + * AGGERGATION = PC_DEFLATION_SPACE_AGGREGATION + * USER = PC_DEFLATION_SPACE_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_MEYER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 131, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MEYER, __pyx_t_5) < 0) __PYX_ERR(47, 131, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":132 + * BIORTH22 = PC_DEFLATION_SPACE_BIORTH22 + * MEYER = PC_DEFLATION_SPACE_MEYER + * AGGERGATION = PC_DEFLATION_SPACE_AGGREGATION # <<<<<<<<<<<<<< + * USER = PC_DEFLATION_SPACE_USER + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_AGGREGATION); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_AGGERGATION, __pyx_t_5) < 0) __PYX_ERR(47, 132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":133 + * MEYER = PC_DEFLATION_SPACE_MEYER + * AGGERGATION = PC_DEFLATION_SPACE_AGGREGATION + * USER = PC_DEFLATION_SPACE_USER # <<<<<<<<<<<<<< + * + * class PCFailedReason(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_PCDeflationSpaceType(PC_DEFLATION_SPACE_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_USER, __pyx_t_5) < 0) __PYX_ERR(47, 133, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":124 + * BALANCED = PC_HPDDM_COARSE_CORRECTION_BALANCED + * + * class PCDeflationSpaceType(object): # <<<<<<<<<<<<<< + * HAAR = PC_DEFLATION_SPACE_HAAR + * DB2 = PC_DEFLATION_SPACE_DB2 + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCDeflationSpaceType, __pyx_tuple__141, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCDeflationSpaceType, __pyx_t_5) < 0) __PYX_ERR(47, 124, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":135 + * USER = PC_DEFLATION_SPACE_USER + * + * class PCFailedReason(object): # <<<<<<<<<<<<<< + * SETUP_ERROR = PC_SETUP_ERROR + * NOERROR = PC_NOERROR + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__142); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__142, __pyx_n_s_PCFailedReason, __pyx_n_s_PCFailedReason, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(47, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/PC.pyx":136 + * + * class PCFailedReason(object): + * SETUP_ERROR = PC_SETUP_ERROR # <<<<<<<<<<<<<< + * NOERROR = PC_NOERROR + * FACTOR_STRUCT_ZEROPIVOT = PC_FACTOR_STRUCT_ZEROPIVOT + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_SETUP_ERROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 136, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SETUP_ERROR, __pyx_t_5) < 0) __PYX_ERR(47, 136, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":137 + * class PCFailedReason(object): + * SETUP_ERROR = PC_SETUP_ERROR + * NOERROR = PC_NOERROR # <<<<<<<<<<<<<< + * FACTOR_STRUCT_ZEROPIVOT = PC_FACTOR_STRUCT_ZEROPIVOT + * FACTOR_NUMERIC_ZEROPIVOT = PC_FACTOR_NUMERIC_ZEROPIVOT + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_NOERROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NOERROR, __pyx_t_5) < 0) __PYX_ERR(47, 137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":138 + * SETUP_ERROR = PC_SETUP_ERROR + * NOERROR = PC_NOERROR + * FACTOR_STRUCT_ZEROPIVOT = PC_FACTOR_STRUCT_ZEROPIVOT # <<<<<<<<<<<<<< + * FACTOR_NUMERIC_ZEROPIVOT = PC_FACTOR_NUMERIC_ZEROPIVOT + * FACTOR_OUTMEMORY = PC_FACTOR_OUTMEMORY + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_FACTOR_STRUCT_ZEROPIVOT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 138, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FACTOR_STRUCT_ZEROPIVOT, __pyx_t_5) < 0) __PYX_ERR(47, 138, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":139 + * NOERROR = PC_NOERROR + * FACTOR_STRUCT_ZEROPIVOT = PC_FACTOR_STRUCT_ZEROPIVOT + * FACTOR_NUMERIC_ZEROPIVOT = PC_FACTOR_NUMERIC_ZEROPIVOT # <<<<<<<<<<<<<< + * FACTOR_OUTMEMORY = PC_FACTOR_OUTMEMORY + * FACTOR_OTHER = PC_FACTOR_OTHER + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_FACTOR_NUMERIC_ZEROPIVOT); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FACTOR_NUMERIC_ZEROPIVOT, __pyx_t_5) < 0) __PYX_ERR(47, 139, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":140 + * FACTOR_STRUCT_ZEROPIVOT = PC_FACTOR_STRUCT_ZEROPIVOT + * FACTOR_NUMERIC_ZEROPIVOT = PC_FACTOR_NUMERIC_ZEROPIVOT + * FACTOR_OUTMEMORY = PC_FACTOR_OUTMEMORY # <<<<<<<<<<<<<< + * FACTOR_OTHER = PC_FACTOR_OTHER + * SUBPC_ERROR = PC_SUBPC_ERROR + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_FACTOR_OUTMEMORY); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FACTOR_OUTMEMORY, __pyx_t_5) < 0) __PYX_ERR(47, 140, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":141 + * FACTOR_NUMERIC_ZEROPIVOT = PC_FACTOR_NUMERIC_ZEROPIVOT + * FACTOR_OUTMEMORY = PC_FACTOR_OUTMEMORY + * FACTOR_OTHER = PC_FACTOR_OTHER # <<<<<<<<<<<<<< + * SUBPC_ERROR = PC_SUBPC_ERROR + * + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_FACTOR_OTHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 141, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FACTOR_OTHER, __pyx_t_5) < 0) __PYX_ERR(47, 141, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":142 + * FACTOR_OUTMEMORY = PC_FACTOR_OUTMEMORY + * FACTOR_OTHER = PC_FACTOR_OTHER + * SUBPC_ERROR = PC_SUBPC_ERROR # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_PCFailedReason(PC_SUBPC_ERROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBPC_ERROR, __pyx_t_5) < 0) __PYX_ERR(47, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/PC.pyx":135 + * USER = PC_DEFLATION_SPACE_USER + * + * class PCFailedReason(object): # <<<<<<<<<<<<<< + * SETUP_ERROR = PC_SETUP_ERROR + * NOERROR = PC_NOERROR + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PCFailedReason, __pyx_tuple__142, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(47, 135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PCFailedReason, __pyx_t_5) < 0) __PYX_ERR(47, 135, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PC.pyx":148 + * cdef class PC(Object): + * + * Type = PCType # <<<<<<<<<<<<<< + * Side = PCSide + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(47, 148, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":149 + * + * Type = PCType + * Side = PCSide # <<<<<<<<<<<<<< + * + * ASMType = PCASMType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCSide); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_Side, __pyx_t_6) < 0) __PYX_ERR(47, 149, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":151 + * Side = PCSide + * + * ASMType = PCASMType # <<<<<<<<<<<<<< + * GASMType = PCGASMType + * MGType = PCMGType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCASMType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_ASMType, __pyx_t_6) < 0) __PYX_ERR(47, 151, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":152 + * + * ASMType = PCASMType + * GASMType = PCGASMType # <<<<<<<<<<<<<< + * MGType = PCMGType + * MGCycleType = PCMGCycleType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCGASMType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_GASMType, __pyx_t_6) < 0) __PYX_ERR(47, 152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":153 + * ASMType = PCASMType + * GASMType = PCGASMType + * MGType = PCMGType # <<<<<<<<<<<<<< + * MGCycleType = PCMGCycleType + * GAMGType = PCGAMGType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCMGType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_MGType, __pyx_t_6) < 0) __PYX_ERR(47, 153, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":154 + * GASMType = PCGASMType + * MGType = PCMGType + * MGCycleType = PCMGCycleType # <<<<<<<<<<<<<< + * GAMGType = PCGAMGType + * CompositeType = PCCompositeType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCMGCycleType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_MGCycleType, __pyx_t_6) < 0) __PYX_ERR(47, 154, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":155 + * MGType = PCMGType + * MGCycleType = PCMGCycleType + * GAMGType = PCGAMGType # <<<<<<<<<<<<<< + * CompositeType = PCCompositeType + * SchurFactType = PCFieldSplitSchurFactType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCGAMGType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_GAMGType, __pyx_t_6) < 0) __PYX_ERR(47, 155, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":156 + * MGCycleType = PCMGCycleType + * GAMGType = PCGAMGType + * CompositeType = PCCompositeType # <<<<<<<<<<<<<< + * SchurFactType = PCFieldSplitSchurFactType + * SchurPreType = PCFieldSplitSchurPreType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCCompositeType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_CompositeType, __pyx_t_6) < 0) __PYX_ERR(47, 156, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":157 + * GAMGType = PCGAMGType + * CompositeType = PCCompositeType + * SchurFactType = PCFieldSplitSchurFactType # <<<<<<<<<<<<<< + * SchurPreType = PCFieldSplitSchurPreType + * PatchConstructType = PCPatchConstructType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCFieldSplitSchurFactType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_SchurFactType, __pyx_t_6) < 0) __PYX_ERR(47, 157, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":158 + * CompositeType = PCCompositeType + * SchurFactType = PCFieldSplitSchurFactType + * SchurPreType = PCFieldSplitSchurPreType # <<<<<<<<<<<<<< + * PatchConstructType = PCPatchConstructType + * HPDDMCoarseCorrectionType = PCHPDDMCoarseCorrectionType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCFieldSplitSchurPreType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_SchurPreType, __pyx_t_6) < 0) __PYX_ERR(47, 158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":159 + * SchurFactType = PCFieldSplitSchurFactType + * SchurPreType = PCFieldSplitSchurPreType + * PatchConstructType = PCPatchConstructType # <<<<<<<<<<<<<< + * HPDDMCoarseCorrectionType = PCHPDDMCoarseCorrectionType + * DeflationSpaceType = PCDeflationSpaceType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCPatchConstructType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_PatchConstructType, __pyx_t_6) < 0) __PYX_ERR(47, 159, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":160 + * SchurPreType = PCFieldSplitSchurPreType + * PatchConstructType = PCPatchConstructType + * HPDDMCoarseCorrectionType = PCHPDDMCoarseCorrectionType # <<<<<<<<<<<<<< + * DeflationSpaceType = PCDeflationSpaceType + * FailedReason = PCFailedReason + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCHPDDMCoarseCorrectionType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_HPDDMCoarseCorrectionType, __pyx_t_6) < 0) __PYX_ERR(47, 160, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":161 + * PatchConstructType = PCPatchConstructType + * HPDDMCoarseCorrectionType = PCHPDDMCoarseCorrectionType + * DeflationSpaceType = PCDeflationSpaceType # <<<<<<<<<<<<<< + * FailedReason = PCFailedReason + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCDeflationSpaceType); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_DeflationSpaceType, __pyx_t_6) < 0) __PYX_ERR(47, 161, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":162 + * HPDDMCoarseCorrectionType = PCHPDDMCoarseCorrectionType + * DeflationSpaceType = PCDeflationSpaceType + * FailedReason = PCFailedReason # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PCFailedReason); if (unlikely(!__pyx_t_6)) __PYX_ERR(47, 162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_PC->tp_dict, __pyx_n_s_FailedReason, __pyx_t_6) < 0) __PYX_ERR(47, 162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_PC); + + /* "petsc4py/PETSc/PC.pyx":994 + * # -------------------------------------------------------------------- + * + * del PCType # <<<<<<<<<<<<<< + * del PCSide + * del PCASMType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCType) < 0) __PYX_ERR(47, 994, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":995 + * + * del PCType + * del PCSide # <<<<<<<<<<<<<< + * del PCASMType + * del PCGASMType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCSide) < 0) __PYX_ERR(47, 995, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":996 + * del PCType + * del PCSide + * del PCASMType # <<<<<<<<<<<<<< + * del PCGASMType + * del PCMGType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCASMType) < 0) __PYX_ERR(47, 996, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":997 + * del PCSide + * del PCASMType + * del PCGASMType # <<<<<<<<<<<<<< + * del PCMGType + * del PCMGCycleType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCGASMType) < 0) __PYX_ERR(47, 997, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":998 + * del PCASMType + * del PCGASMType + * del PCMGType # <<<<<<<<<<<<<< + * del PCMGCycleType + * del PCGAMGType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCMGType) < 0) __PYX_ERR(47, 998, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":999 + * del PCGASMType + * del PCMGType + * del PCMGCycleType # <<<<<<<<<<<<<< + * del PCGAMGType + * del PCCompositeType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCMGCycleType) < 0) __PYX_ERR(47, 999, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1000 + * del PCMGType + * del PCMGCycleType + * del PCGAMGType # <<<<<<<<<<<<<< + * del PCCompositeType + * del PCFieldSplitSchurPreType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCGAMGType) < 0) __PYX_ERR(47, 1000, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1001 + * del PCMGCycleType + * del PCGAMGType + * del PCCompositeType # <<<<<<<<<<<<<< + * del PCFieldSplitSchurPreType + * del PCFieldSplitSchurFactType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCCompositeType) < 0) __PYX_ERR(47, 1001, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1002 + * del PCGAMGType + * del PCCompositeType + * del PCFieldSplitSchurPreType # <<<<<<<<<<<<<< + * del PCFieldSplitSchurFactType + * del PCPatchConstructType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCFieldSplitSchurPreType) < 0) __PYX_ERR(47, 1002, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1003 + * del PCCompositeType + * del PCFieldSplitSchurPreType + * del PCFieldSplitSchurFactType # <<<<<<<<<<<<<< + * del PCPatchConstructType + * del PCHPDDMCoarseCorrectionType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCFieldSplitSchurFactType) < 0) __PYX_ERR(47, 1003, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1004 + * del PCFieldSplitSchurPreType + * del PCFieldSplitSchurFactType + * del PCPatchConstructType # <<<<<<<<<<<<<< + * del PCHPDDMCoarseCorrectionType + * del PCDeflationSpaceType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCPatchConstructType) < 0) __PYX_ERR(47, 1004, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1005 + * del PCFieldSplitSchurFactType + * del PCPatchConstructType + * del PCHPDDMCoarseCorrectionType # <<<<<<<<<<<<<< + * del PCDeflationSpaceType + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCHPDDMCoarseCorrectionType) < 0) __PYX_ERR(47, 1005, __pyx_L1_error) + + /* "petsc4py/PETSc/PC.pyx":1006 + * del PCPatchConstructType + * del PCHPDDMCoarseCorrectionType + * del PCDeflationSpaceType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_PCDeflationSpaceType) < 0) __PYX_ERR(47, 1006, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":3 + * # -------------------------------------------------------------------- + * + * class KSPType(object): # <<<<<<<<<<<<<< + * RICHARDSON = S_(KSPRICHARDSON) + * CHEBYSHEV = S_(KSPCHEBYSHEV) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__143); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__143, __pyx_n_s_KSPType, __pyx_n_s_KSPType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(48, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/KSP.pyx":4 + * + * class KSPType(object): + * RICHARDSON = S_(KSPRICHARDSON) # <<<<<<<<<<<<<< + * CHEBYSHEV = S_(KSPCHEBYSHEV) + * CG = S_(KSPCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPRICHARDSON); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RICHARDSON, __pyx_t_5) < 0) __PYX_ERR(48, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":5 + * class KSPType(object): + * RICHARDSON = S_(KSPRICHARDSON) + * CHEBYSHEV = S_(KSPCHEBYSHEV) # <<<<<<<<<<<<<< + * CG = S_(KSPCG) + * GROPPCG = S_(KSPGROPPCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCHEBYSHEV); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CHEBYSHEV, __pyx_t_5) < 0) __PYX_ERR(48, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":6 + * RICHARDSON = S_(KSPRICHARDSON) + * CHEBYSHEV = S_(KSPCHEBYSHEV) + * CG = S_(KSPCG) # <<<<<<<<<<<<<< + * GROPPCG = S_(KSPGROPPCG) + * PIPECG = S_(KSPPIPECG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CG, __pyx_t_5) < 0) __PYX_ERR(48, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":7 + * CHEBYSHEV = S_(KSPCHEBYSHEV) + * CG = S_(KSPCG) + * GROPPCG = S_(KSPGROPPCG) # <<<<<<<<<<<<<< + * PIPECG = S_(KSPPIPECG) + * PIPECGRR = S_(KSPPIPECGRR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPGROPPCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GROPPCG, __pyx_t_5) < 0) __PYX_ERR(48, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":8 + * CG = S_(KSPCG) + * GROPPCG = S_(KSPGROPPCG) + * PIPECG = S_(KSPPIPECG) # <<<<<<<<<<<<<< + * PIPECGRR = S_(KSPPIPECGRR) + * PIPELCG = S_(KSPPIPELCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPECG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPECG, __pyx_t_5) < 0) __PYX_ERR(48, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":9 + * GROPPCG = S_(KSPGROPPCG) + * PIPECG = S_(KSPPIPECG) + * PIPECGRR = S_(KSPPIPECGRR) # <<<<<<<<<<<<<< + * PIPELCG = S_(KSPPIPELCG) + * PIPEPRCG = S_(KSPPIPEPRCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPECGRR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPECGRR, __pyx_t_5) < 0) __PYX_ERR(48, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":10 + * PIPECG = S_(KSPPIPECG) + * PIPECGRR = S_(KSPPIPECGRR) + * PIPELCG = S_(KSPPIPELCG) # <<<<<<<<<<<<<< + * PIPEPRCG = S_(KSPPIPEPRCG) + * PIPECG2 = S_(KSPPIPECG2) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPELCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPELCG, __pyx_t_5) < 0) __PYX_ERR(48, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":11 + * PIPECGRR = S_(KSPPIPECGRR) + * PIPELCG = S_(KSPPIPELCG) + * PIPEPRCG = S_(KSPPIPEPRCG) # <<<<<<<<<<<<<< + * PIPECG2 = S_(KSPPIPECG2) + * CGNE = S_(KSPCGNE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPEPRCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPEPRCG, __pyx_t_5) < 0) __PYX_ERR(48, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":12 + * PIPELCG = S_(KSPPIPELCG) + * PIPEPRCG = S_(KSPPIPEPRCG) + * PIPECG2 = S_(KSPPIPECG2) # <<<<<<<<<<<<<< + * CGNE = S_(KSPCGNE) + * NASH = S_(KSPNASH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPECG2); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPECG2, __pyx_t_5) < 0) __PYX_ERR(48, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":13 + * PIPEPRCG = S_(KSPPIPEPRCG) + * PIPECG2 = S_(KSPPIPECG2) + * CGNE = S_(KSPCGNE) # <<<<<<<<<<<<<< + * NASH = S_(KSPNASH) + * STCG = S_(KSPSTCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCGNE); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CGNE, __pyx_t_5) < 0) __PYX_ERR(48, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":14 + * PIPECG2 = S_(KSPPIPECG2) + * CGNE = S_(KSPCGNE) + * NASH = S_(KSPNASH) # <<<<<<<<<<<<<< + * STCG = S_(KSPSTCG) + * GLTR = S_(KSPGLTR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPNASH); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NASH, __pyx_t_5) < 0) __PYX_ERR(48, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":15 + * CGNE = S_(KSPCGNE) + * NASH = S_(KSPNASH) + * STCG = S_(KSPSTCG) # <<<<<<<<<<<<<< + * GLTR = S_(KSPGLTR) + * FCG = S_(KSPFCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPSTCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STCG, __pyx_t_5) < 0) __PYX_ERR(48, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":16 + * NASH = S_(KSPNASH) + * STCG = S_(KSPSTCG) + * GLTR = S_(KSPGLTR) # <<<<<<<<<<<<<< + * FCG = S_(KSPFCG) + * PIPEFCG = S_(KSPPIPEFCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPGLTR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GLTR, __pyx_t_5) < 0) __PYX_ERR(48, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":17 + * STCG = S_(KSPSTCG) + * GLTR = S_(KSPGLTR) + * FCG = S_(KSPFCG) # <<<<<<<<<<<<<< + * PIPEFCG = S_(KSPPIPEFCG) + * GMRES = S_(KSPGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPFCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FCG, __pyx_t_5) < 0) __PYX_ERR(48, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":18 + * GLTR = S_(KSPGLTR) + * FCG = S_(KSPFCG) + * PIPEFCG = S_(KSPPIPEFCG) # <<<<<<<<<<<<<< + * GMRES = S_(KSPGMRES) + * PIPEFGMRES = S_(KSPPIPEFGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPEFCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPEFCG, __pyx_t_5) < 0) __PYX_ERR(48, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":19 + * FCG = S_(KSPFCG) + * PIPEFCG = S_(KSPPIPEFCG) + * GMRES = S_(KSPGMRES) # <<<<<<<<<<<<<< + * PIPEFGMRES = S_(KSPPIPEFGMRES) + * FGMRES = S_(KSPFGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GMRES, __pyx_t_5) < 0) __PYX_ERR(48, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":20 + * PIPEFCG = S_(KSPPIPEFCG) + * GMRES = S_(KSPGMRES) + * PIPEFGMRES = S_(KSPPIPEFGMRES) # <<<<<<<<<<<<<< + * FGMRES = S_(KSPFGMRES) + * LGMRES = S_(KSPLGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPEFGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPEFGMRES, __pyx_t_5) < 0) __PYX_ERR(48, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":21 + * GMRES = S_(KSPGMRES) + * PIPEFGMRES = S_(KSPPIPEFGMRES) + * FGMRES = S_(KSPFGMRES) # <<<<<<<<<<<<<< + * LGMRES = S_(KSPLGMRES) + * DGMRES = S_(KSPDGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPFGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FGMRES, __pyx_t_5) < 0) __PYX_ERR(48, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":22 + * PIPEFGMRES = S_(KSPPIPEFGMRES) + * FGMRES = S_(KSPFGMRES) + * LGMRES = S_(KSPLGMRES) # <<<<<<<<<<<<<< + * DGMRES = S_(KSPDGMRES) + * PGMRES = S_(KSPPGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPLGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LGMRES, __pyx_t_5) < 0) __PYX_ERR(48, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":23 + * FGMRES = S_(KSPFGMRES) + * LGMRES = S_(KSPLGMRES) + * DGMRES = S_(KSPDGMRES) # <<<<<<<<<<<<<< + * PGMRES = S_(KSPPGMRES) + * TCQMR = S_(KSPTCQMR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPDGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DGMRES, __pyx_t_5) < 0) __PYX_ERR(48, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":24 + * LGMRES = S_(KSPLGMRES) + * DGMRES = S_(KSPDGMRES) + * PGMRES = S_(KSPPGMRES) # <<<<<<<<<<<<<< + * TCQMR = S_(KSPTCQMR) + * BCGS = S_(KSPBCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PGMRES, __pyx_t_5) < 0) __PYX_ERR(48, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":25 + * DGMRES = S_(KSPDGMRES) + * PGMRES = S_(KSPPGMRES) + * TCQMR = S_(KSPTCQMR) # <<<<<<<<<<<<<< + * BCGS = S_(KSPBCGS) + * IBCGS = S_(KSPIBCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPTCQMR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TCQMR, __pyx_t_5) < 0) __PYX_ERR(48, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":26 + * PGMRES = S_(KSPPGMRES) + * TCQMR = S_(KSPTCQMR) + * BCGS = S_(KSPBCGS) # <<<<<<<<<<<<<< + * IBCGS = S_(KSPIBCGS) + * QMRCGS = S_(KSPQMRCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPBCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BCGS, __pyx_t_5) < 0) __PYX_ERR(48, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":27 + * TCQMR = S_(KSPTCQMR) + * BCGS = S_(KSPBCGS) + * IBCGS = S_(KSPIBCGS) # <<<<<<<<<<<<<< + * QMRCGS = S_(KSPQMRCGS) + * FBCGS = S_(KSPFBCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPIBCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IBCGS, __pyx_t_5) < 0) __PYX_ERR(48, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":28 + * BCGS = S_(KSPBCGS) + * IBCGS = S_(KSPIBCGS) + * QMRCGS = S_(KSPQMRCGS) # <<<<<<<<<<<<<< + * FBCGS = S_(KSPFBCGS) + * FBCGSR = S_(KSPFBCGSR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPQMRCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QMRCGS, __pyx_t_5) < 0) __PYX_ERR(48, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":29 + * IBCGS = S_(KSPIBCGS) + * QMRCGS = S_(KSPQMRCGS) + * FBCGS = S_(KSPFBCGS) # <<<<<<<<<<<<<< + * FBCGSR = S_(KSPFBCGSR) + * BCGSL = S_(KSPBCGSL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPFBCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FBCGS, __pyx_t_5) < 0) __PYX_ERR(48, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":30 + * QMRCGS = S_(KSPQMRCGS) + * FBCGS = S_(KSPFBCGS) + * FBCGSR = S_(KSPFBCGSR) # <<<<<<<<<<<<<< + * BCGSL = S_(KSPBCGSL) + * PIPEBCGS = S_(KSPPIPEBCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPFBCGSR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FBCGSR, __pyx_t_5) < 0) __PYX_ERR(48, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":31 + * FBCGS = S_(KSPFBCGS) + * FBCGSR = S_(KSPFBCGSR) + * BCGSL = S_(KSPBCGSL) # <<<<<<<<<<<<<< + * PIPEBCGS = S_(KSPPIPEBCGS) + * CGS = S_(KSPCGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPBCGSL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BCGSL, __pyx_t_5) < 0) __PYX_ERR(48, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":32 + * FBCGSR = S_(KSPFBCGSR) + * BCGSL = S_(KSPBCGSL) + * PIPEBCGS = S_(KSPPIPEBCGS) # <<<<<<<<<<<<<< + * CGS = S_(KSPCGS) + * TFQMR = S_(KSPTFQMR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPEBCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPEBCGS, __pyx_t_5) < 0) __PYX_ERR(48, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":33 + * BCGSL = S_(KSPBCGSL) + * PIPEBCGS = S_(KSPPIPEBCGS) + * CGS = S_(KSPCGS) # <<<<<<<<<<<<<< + * TFQMR = S_(KSPTFQMR) + * CR = S_(KSPCR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CGS, __pyx_t_5) < 0) __PYX_ERR(48, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":34 + * PIPEBCGS = S_(KSPPIPEBCGS) + * CGS = S_(KSPCGS) + * TFQMR = S_(KSPTFQMR) # <<<<<<<<<<<<<< + * CR = S_(KSPCR) + * PIPECR = S_(KSPPIPECR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPTFQMR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TFQMR, __pyx_t_5) < 0) __PYX_ERR(48, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":35 + * CGS = S_(KSPCGS) + * TFQMR = S_(KSPTFQMR) + * CR = S_(KSPCR) # <<<<<<<<<<<<<< + * PIPECR = S_(KSPPIPECR) + * LSQR = S_(KSPLSQR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CR, __pyx_t_5) < 0) __PYX_ERR(48, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":36 + * TFQMR = S_(KSPTFQMR) + * CR = S_(KSPCR) + * PIPECR = S_(KSPPIPECR) # <<<<<<<<<<<<<< + * LSQR = S_(KSPLSQR) + * PREONLY = S_(KSPPREONLY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPECR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPECR, __pyx_t_5) < 0) __PYX_ERR(48, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":37 + * CR = S_(KSPCR) + * PIPECR = S_(KSPPIPECR) + * LSQR = S_(KSPLSQR) # <<<<<<<<<<<<<< + * PREONLY = S_(KSPPREONLY) + * NONE = S_(KSPNONE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPLSQR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LSQR, __pyx_t_5) < 0) __PYX_ERR(48, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":38 + * PIPECR = S_(KSPPIPECR) + * LSQR = S_(KSPLSQR) + * PREONLY = S_(KSPPREONLY) # <<<<<<<<<<<<<< + * NONE = S_(KSPNONE) + * QCG = S_(KSPQCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPREONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PREONLY, __pyx_t_5) < 0) __PYX_ERR(48, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":39 + * LSQR = S_(KSPLSQR) + * PREONLY = S_(KSPPREONLY) + * NONE = S_(KSPNONE) # <<<<<<<<<<<<<< + * QCG = S_(KSPQCG) + * BICG = S_(KSPBICG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPNONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(48, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":40 + * PREONLY = S_(KSPPREONLY) + * NONE = S_(KSPNONE) + * QCG = S_(KSPQCG) # <<<<<<<<<<<<<< + * BICG = S_(KSPBICG) + * MINRES = S_(KSPMINRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPQCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QCG, __pyx_t_5) < 0) __PYX_ERR(48, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":41 + * NONE = S_(KSPNONE) + * QCG = S_(KSPQCG) + * BICG = S_(KSPBICG) # <<<<<<<<<<<<<< + * MINRES = S_(KSPMINRES) + * SYMMLQ = S_(KSPSYMMLQ) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPBICG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BICG, __pyx_t_5) < 0) __PYX_ERR(48, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":42 + * QCG = S_(KSPQCG) + * BICG = S_(KSPBICG) + * MINRES = S_(KSPMINRES) # <<<<<<<<<<<<<< + * SYMMLQ = S_(KSPSYMMLQ) + * LCD = S_(KSPLCD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPMINRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MINRES, __pyx_t_5) < 0) __PYX_ERR(48, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":43 + * BICG = S_(KSPBICG) + * MINRES = S_(KSPMINRES) + * SYMMLQ = S_(KSPSYMMLQ) # <<<<<<<<<<<<<< + * LCD = S_(KSPLCD) + * PYTHON = S_(KSPPYTHON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPSYMMLQ); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SYMMLQ, __pyx_t_5) < 0) __PYX_ERR(48, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":44 + * MINRES = S_(KSPMINRES) + * SYMMLQ = S_(KSPSYMMLQ) + * LCD = S_(KSPLCD) # <<<<<<<<<<<<<< + * PYTHON = S_(KSPPYTHON) + * GCR = S_(KSPGCR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPLCD); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LCD, __pyx_t_5) < 0) __PYX_ERR(48, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":45 + * SYMMLQ = S_(KSPSYMMLQ) + * LCD = S_(KSPLCD) + * PYTHON = S_(KSPPYTHON) # <<<<<<<<<<<<<< + * GCR = S_(KSPGCR) + * PIPEGCR = S_(KSPPIPEGCR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(48, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":46 + * LCD = S_(KSPLCD) + * PYTHON = S_(KSPPYTHON) + * GCR = S_(KSPGCR) # <<<<<<<<<<<<<< + * PIPEGCR = S_(KSPPIPEGCR) + * TSIRM = S_(KSPTSIRM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPGCR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GCR, __pyx_t_5) < 0) __PYX_ERR(48, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":47 + * PYTHON = S_(KSPPYTHON) + * GCR = S_(KSPGCR) + * PIPEGCR = S_(KSPPIPEGCR) # <<<<<<<<<<<<<< + * TSIRM = S_(KSPTSIRM) + * CGLS = S_(KSPCGLS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPPIPEGCR); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIPEGCR, __pyx_t_5) < 0) __PYX_ERR(48, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":48 + * GCR = S_(KSPGCR) + * PIPEGCR = S_(KSPPIPEGCR) + * TSIRM = S_(KSPTSIRM) # <<<<<<<<<<<<<< + * CGLS = S_(KSPCGLS) + * FETIDP = S_(KSPFETIDP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPTSIRM); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TSIRM, __pyx_t_5) < 0) __PYX_ERR(48, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":49 + * PIPEGCR = S_(KSPPIPEGCR) + * TSIRM = S_(KSPTSIRM) + * CGLS = S_(KSPCGLS) # <<<<<<<<<<<<<< + * FETIDP = S_(KSPFETIDP) + * HPDDM = S_(KSPHPDDM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPCGLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CGLS, __pyx_t_5) < 0) __PYX_ERR(48, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":50 + * TSIRM = S_(KSPTSIRM) + * CGLS = S_(KSPCGLS) + * FETIDP = S_(KSPFETIDP) # <<<<<<<<<<<<<< + * HPDDM = S_(KSPHPDDM) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPFETIDP); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FETIDP, __pyx_t_5) < 0) __PYX_ERR(48, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":51 + * CGLS = S_(KSPCGLS) + * FETIDP = S_(KSPFETIDP) + * HPDDM = S_(KSPHPDDM) # <<<<<<<<<<<<<< + * + * class KSPNormType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(KSPHPDDM); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HPDDM, __pyx_t_5) < 0) __PYX_ERR(48, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":3 + * # -------------------------------------------------------------------- + * + * class KSPType(object): # <<<<<<<<<<<<<< + * RICHARDSON = S_(KSPRICHARDSON) + * CHEBYSHEV = S_(KSPCHEBYSHEV) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_KSPType, __pyx_tuple__143, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KSPType, __pyx_t_5) < 0) __PYX_ERR(48, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/KSP.pyx":53 + * HPDDM = S_(KSPHPDDM) + * + * class KSPNormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = KSP_NORM_DEFAULT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__144); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__144, __pyx_n_s_KSPNormType, __pyx_n_s_KSPNormType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(48, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/KSP.pyx":55 + * class KSPNormType(object): + * # native + * NORM_DEFAULT = KSP_NORM_DEFAULT # <<<<<<<<<<<<<< + * NORM_NONE = KSP_NORM_NONE + * NORM_PRECONDITIONED = KSP_NORM_PRECONDITIONED + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPNormType(KSP_NORM_DEFAULT); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_DEFAULT, __pyx_t_5) < 0) __PYX_ERR(48, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":56 + * # native + * NORM_DEFAULT = KSP_NORM_DEFAULT + * NORM_NONE = KSP_NORM_NONE # <<<<<<<<<<<<<< + * NORM_PRECONDITIONED = KSP_NORM_PRECONDITIONED + * NORM_UNPRECONDITIONED = KSP_NORM_UNPRECONDITIONED + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPNormType(KSP_NORM_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_NONE, __pyx_t_5) < 0) __PYX_ERR(48, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":57 + * NORM_DEFAULT = KSP_NORM_DEFAULT + * NORM_NONE = KSP_NORM_NONE + * NORM_PRECONDITIONED = KSP_NORM_PRECONDITIONED # <<<<<<<<<<<<<< + * NORM_UNPRECONDITIONED = KSP_NORM_UNPRECONDITIONED + * NORM_NATURAL = KSP_NORM_NATURAL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPNormType(KSP_NORM_PRECONDITIONED); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_PRECONDITIONED, __pyx_t_5) < 0) __PYX_ERR(48, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":58 + * NORM_NONE = KSP_NORM_NONE + * NORM_PRECONDITIONED = KSP_NORM_PRECONDITIONED + * NORM_UNPRECONDITIONED = KSP_NORM_UNPRECONDITIONED # <<<<<<<<<<<<<< + * NORM_NATURAL = KSP_NORM_NATURAL + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPNormType(KSP_NORM_UNPRECONDITIONED); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_UNPRECONDITIONED, __pyx_t_5) < 0) __PYX_ERR(48, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":59 + * NORM_PRECONDITIONED = KSP_NORM_PRECONDITIONED + * NORM_UNPRECONDITIONED = KSP_NORM_UNPRECONDITIONED + * NORM_NATURAL = KSP_NORM_NATURAL # <<<<<<<<<<<<<< + * # aliases + * DEFAULT = NORM_DEFAULT + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPNormType(KSP_NORM_NATURAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_NATURAL, __pyx_t_5) < 0) __PYX_ERR(48, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":61 + * NORM_NATURAL = KSP_NORM_NATURAL + * # aliases + * DEFAULT = NORM_DEFAULT # <<<<<<<<<<<<<< + * NONE = NO = NORM_NONE + * PRECONDITIONED = NORM_PRECONDITIONED + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_DEFAULT); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_DEFAULT); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DEFAULT, __pyx_t_5) < 0) __PYX_ERR(48, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":62 + * # aliases + * DEFAULT = NORM_DEFAULT + * NONE = NO = NORM_NONE # <<<<<<<<<<<<<< + * PRECONDITIONED = NORM_PRECONDITIONED + * UNPRECONDITIONED = NORM_UNPRECONDITIONED + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_NONE); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_NONE); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(48, 62, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NO, __pyx_t_5) < 0) __PYX_ERR(48, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":63 + * DEFAULT = NORM_DEFAULT + * NONE = NO = NORM_NONE + * PRECONDITIONED = NORM_PRECONDITIONED # <<<<<<<<<<<<<< + * UNPRECONDITIONED = NORM_UNPRECONDITIONED + * NATURAL = NORM_NATURAL + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_PRECONDITIONED); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_PRECONDITIONED); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PRECONDITIONED, __pyx_t_5) < 0) __PYX_ERR(48, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":64 + * NONE = NO = NORM_NONE + * PRECONDITIONED = NORM_PRECONDITIONED + * UNPRECONDITIONED = NORM_UNPRECONDITIONED # <<<<<<<<<<<<<< + * NATURAL = NORM_NATURAL + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_UNPRECONDITIONED); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_UNPRECONDITIONED); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNPRECONDITIONED, __pyx_t_5) < 0) __PYX_ERR(48, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":65 + * PRECONDITIONED = NORM_PRECONDITIONED + * UNPRECONDITIONED = NORM_UNPRECONDITIONED + * NATURAL = NORM_NATURAL # <<<<<<<<<<<<<< + * + * class KSPConvergedReason(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_NATURAL); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_NATURAL); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NATURAL, __pyx_t_5) < 0) __PYX_ERR(48, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":53 + * HPDDM = S_(KSPHPDDM) + * + * class KSPNormType(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = KSP_NORM_DEFAULT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_KSPNormType, __pyx_tuple__144, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KSPNormType, __pyx_t_5) < 0) __PYX_ERR(48, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/KSP.pyx":67 + * NATURAL = NORM_NATURAL + * + * class KSPConvergedReason(object): # <<<<<<<<<<<<<< + * #iterating + * CONVERGED_ITERATING = KSP_CONVERGED_ITERATING + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__145); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__145, __pyx_n_s_KSPConvergedReason, __pyx_n_s_KSPConvergedReason, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(48, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/KSP.pyx":69 + * class KSPConvergedReason(object): + * #iterating + * CONVERGED_ITERATING = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * ITERATING = KSP_CONVERGED_ITERATING + * # converged + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITERATING, __pyx_t_5) < 0) __PYX_ERR(48, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":70 + * #iterating + * CONVERGED_ITERATING = KSP_CONVERGED_ITERATING + * ITERATING = KSP_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * # converged + * CONVERGED_RTOL_NORMAL = KSP_CONVERGED_RTOL_NORMAL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ITERATING, __pyx_t_5) < 0) __PYX_ERR(48, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":72 + * ITERATING = KSP_CONVERGED_ITERATING + * # converged + * CONVERGED_RTOL_NORMAL = KSP_CONVERGED_RTOL_NORMAL # <<<<<<<<<<<<<< + * CONVERGED_ATOL_NORMAL = KSP_CONVERGED_ATOL_NORMAL + * CONVERGED_RTOL = KSP_CONVERGED_RTOL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_RTOL_NORMAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_RTOL_NORMAL, __pyx_t_5) < 0) __PYX_ERR(48, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":73 + * # converged + * CONVERGED_RTOL_NORMAL = KSP_CONVERGED_RTOL_NORMAL + * CONVERGED_ATOL_NORMAL = KSP_CONVERGED_ATOL_NORMAL # <<<<<<<<<<<<<< + * CONVERGED_RTOL = KSP_CONVERGED_RTOL + * CONVERGED_ATOL = KSP_CONVERGED_ATOL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_ATOL_NORMAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ATOL_NORMAL, __pyx_t_5) < 0) __PYX_ERR(48, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":74 + * CONVERGED_RTOL_NORMAL = KSP_CONVERGED_RTOL_NORMAL + * CONVERGED_ATOL_NORMAL = KSP_CONVERGED_ATOL_NORMAL + * CONVERGED_RTOL = KSP_CONVERGED_RTOL # <<<<<<<<<<<<<< + * CONVERGED_ATOL = KSP_CONVERGED_ATOL + * CONVERGED_ITS = KSP_CONVERGED_ITS + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_RTOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_RTOL, __pyx_t_5) < 0) __PYX_ERR(48, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":75 + * CONVERGED_ATOL_NORMAL = KSP_CONVERGED_ATOL_NORMAL + * CONVERGED_RTOL = KSP_CONVERGED_RTOL + * CONVERGED_ATOL = KSP_CONVERGED_ATOL # <<<<<<<<<<<<<< + * CONVERGED_ITS = KSP_CONVERGED_ITS + * CONVERGED_NEG_CURVE = KSP_CONVERGED_NEG_CURVE + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_ATOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ATOL, __pyx_t_5) < 0) __PYX_ERR(48, 75, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":76 + * CONVERGED_RTOL = KSP_CONVERGED_RTOL + * CONVERGED_ATOL = KSP_CONVERGED_ATOL + * CONVERGED_ITS = KSP_CONVERGED_ITS # <<<<<<<<<<<<<< + * CONVERGED_NEG_CURVE = KSP_CONVERGED_NEG_CURVE + * CONVERGED_STEP_LENGTH = KSP_CONVERGED_STEP_LENGTH + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_ITS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITS, __pyx_t_5) < 0) __PYX_ERR(48, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":77 + * CONVERGED_ATOL = KSP_CONVERGED_ATOL + * CONVERGED_ITS = KSP_CONVERGED_ITS + * CONVERGED_NEG_CURVE = KSP_CONVERGED_NEG_CURVE # <<<<<<<<<<<<<< + * CONVERGED_STEP_LENGTH = KSP_CONVERGED_STEP_LENGTH + * CONVERGED_HAPPY_BREAKDOWN = KSP_CONVERGED_HAPPY_BREAKDOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_NEG_CURVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_NEG_CURVE, __pyx_t_5) < 0) __PYX_ERR(48, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":78 + * CONVERGED_ITS = KSP_CONVERGED_ITS + * CONVERGED_NEG_CURVE = KSP_CONVERGED_NEG_CURVE + * CONVERGED_STEP_LENGTH = KSP_CONVERGED_STEP_LENGTH # <<<<<<<<<<<<<< + * CONVERGED_HAPPY_BREAKDOWN = KSP_CONVERGED_HAPPY_BREAKDOWN + * # diverged + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_STEP_LENGTH); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_STEP_LENGTH, __pyx_t_5) < 0) __PYX_ERR(48, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":79 + * CONVERGED_NEG_CURVE = KSP_CONVERGED_NEG_CURVE + * CONVERGED_STEP_LENGTH = KSP_CONVERGED_STEP_LENGTH + * CONVERGED_HAPPY_BREAKDOWN = KSP_CONVERGED_HAPPY_BREAKDOWN # <<<<<<<<<<<<<< + * # diverged + * DIVERGED_NULL = KSP_DIVERGED_NULL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_CONVERGED_HAPPY_BREAKDOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_HAPPY_BREAKDOWN, __pyx_t_5) < 0) __PYX_ERR(48, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":81 + * CONVERGED_HAPPY_BREAKDOWN = KSP_CONVERGED_HAPPY_BREAKDOWN + * # diverged + * DIVERGED_NULL = KSP_DIVERGED_NULL # <<<<<<<<<<<<<< + * DIVERGED_MAX_IT = KSP_DIVERGED_MAX_IT + * DIVERGED_DTOL = KSP_DIVERGED_DTOL + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_NULL, __pyx_t_5) < 0) __PYX_ERR(48, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":82 + * # diverged + * DIVERGED_NULL = KSP_DIVERGED_NULL + * DIVERGED_MAX_IT = KSP_DIVERGED_MAX_IT # <<<<<<<<<<<<<< + * DIVERGED_DTOL = KSP_DIVERGED_DTOL + * DIVERGED_BREAKDOWN = KSP_DIVERGED_BREAKDOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_ITS); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_MAX_IT, __pyx_t_5) < 0) __PYX_ERR(48, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":83 + * DIVERGED_NULL = KSP_DIVERGED_NULL + * DIVERGED_MAX_IT = KSP_DIVERGED_MAX_IT + * DIVERGED_DTOL = KSP_DIVERGED_DTOL # <<<<<<<<<<<<<< + * DIVERGED_BREAKDOWN = KSP_DIVERGED_BREAKDOWN + * DIVERGED_BREAKDOWN_BICG = KSP_DIVERGED_BREAKDOWN_BICG + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_DTOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_DTOL, __pyx_t_5) < 0) __PYX_ERR(48, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":84 + * DIVERGED_MAX_IT = KSP_DIVERGED_MAX_IT + * DIVERGED_DTOL = KSP_DIVERGED_DTOL + * DIVERGED_BREAKDOWN = KSP_DIVERGED_BREAKDOWN # <<<<<<<<<<<<<< + * DIVERGED_BREAKDOWN_BICG = KSP_DIVERGED_BREAKDOWN_BICG + * DIVERGED_NONSYMMETRIC = KSP_DIVERGED_NONSYMMETRIC + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_BREAKDOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_BREAKDOWN, __pyx_t_5) < 0) __PYX_ERR(48, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":85 + * DIVERGED_DTOL = KSP_DIVERGED_DTOL + * DIVERGED_BREAKDOWN = KSP_DIVERGED_BREAKDOWN + * DIVERGED_BREAKDOWN_BICG = KSP_DIVERGED_BREAKDOWN_BICG # <<<<<<<<<<<<<< + * DIVERGED_NONSYMMETRIC = KSP_DIVERGED_NONSYMMETRIC + * DIVERGED_INDEFINITE_PC = KSP_DIVERGED_INDEFINITE_PC + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_BREAKDOWN_BICG); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_BREAKDOWN_BICG, __pyx_t_5) < 0) __PYX_ERR(48, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":86 + * DIVERGED_BREAKDOWN = KSP_DIVERGED_BREAKDOWN + * DIVERGED_BREAKDOWN_BICG = KSP_DIVERGED_BREAKDOWN_BICG + * DIVERGED_NONSYMMETRIC = KSP_DIVERGED_NONSYMMETRIC # <<<<<<<<<<<<<< + * DIVERGED_INDEFINITE_PC = KSP_DIVERGED_INDEFINITE_PC + * DIVERGED_NANORINF = KSP_DIVERGED_NANORINF + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_NONSYMMETRIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_NONSYMMETRIC, __pyx_t_5) < 0) __PYX_ERR(48, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":87 + * DIVERGED_BREAKDOWN_BICG = KSP_DIVERGED_BREAKDOWN_BICG + * DIVERGED_NONSYMMETRIC = KSP_DIVERGED_NONSYMMETRIC + * DIVERGED_INDEFINITE_PC = KSP_DIVERGED_INDEFINITE_PC # <<<<<<<<<<<<<< + * DIVERGED_NANORINF = KSP_DIVERGED_NANORINF + * DIVERGED_INDEFINITE_MAT = KSP_DIVERGED_INDEFINITE_MAT + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_INDEFINITE_PC); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 87, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_INDEFINITE_PC, __pyx_t_5) < 0) __PYX_ERR(48, 87, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":88 + * DIVERGED_NONSYMMETRIC = KSP_DIVERGED_NONSYMMETRIC + * DIVERGED_INDEFINITE_PC = KSP_DIVERGED_INDEFINITE_PC + * DIVERGED_NANORINF = KSP_DIVERGED_NANORINF # <<<<<<<<<<<<<< + * DIVERGED_INDEFINITE_MAT = KSP_DIVERGED_INDEFINITE_MAT + * DIVERGED_PCSETUP_FAILED = KSP_DIVERGED_PC_FAILED + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_NANORINF); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_NANORINF, __pyx_t_5) < 0) __PYX_ERR(48, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":89 + * DIVERGED_INDEFINITE_PC = KSP_DIVERGED_INDEFINITE_PC + * DIVERGED_NANORINF = KSP_DIVERGED_NANORINF + * DIVERGED_INDEFINITE_MAT = KSP_DIVERGED_INDEFINITE_MAT # <<<<<<<<<<<<<< + * DIVERGED_PCSETUP_FAILED = KSP_DIVERGED_PC_FAILED + * + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_INDEFINITE_MAT); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 89, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_INDEFINITE_MAT, __pyx_t_5) < 0) __PYX_ERR(48, 89, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":90 + * DIVERGED_NANORINF = KSP_DIVERGED_NANORINF + * DIVERGED_INDEFINITE_MAT = KSP_DIVERGED_INDEFINITE_MAT + * DIVERGED_PCSETUP_FAILED = KSP_DIVERGED_PC_FAILED # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_KSPConvergedReason(KSP_DIVERGED_PC_FAILED); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_PCSETUP_FAILED, __pyx_t_5) < 0) __PYX_ERR(48, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/KSP.pyx":67 + * NATURAL = NORM_NATURAL + * + * class KSPConvergedReason(object): # <<<<<<<<<<<<<< + * #iterating + * CONVERGED_ITERATING = KSP_CONVERGED_ITERATING + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_KSPConvergedReason, __pyx_tuple__145, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(48, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KSPConvergedReason, __pyx_t_5) < 0) __PYX_ERR(48, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/KSP.pyx":96 + * cdef class KSP(Object): + * + * Type = KSPType # <<<<<<<<<<<<<< + * NormType = KSPNormType + * ConvergedReason = KSPConvergedReason + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_KSPType); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(48, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_KSP); + + /* "petsc4py/PETSc/KSP.pyx":97 + * + * Type = KSPType + * NormType = KSPNormType # <<<<<<<<<<<<<< + * ConvergedReason = KSPConvergedReason + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_KSPNormType); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 97, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP->tp_dict, __pyx_n_s_NormType, __pyx_t_6) < 0) __PYX_ERR(48, 97, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_KSP); + + /* "petsc4py/PETSc/KSP.pyx":98 + * Type = KSPType + * NormType = KSPNormType + * ConvergedReason = KSPConvergedReason # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_KSPConvergedReason); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP->tp_dict, __pyx_n_s_ConvergedReason, __pyx_t_6) < 0) __PYX_ERR(48, 98, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_KSP); + + /* "petsc4py/PETSc/KSP.pyx":315 + * self.set_attr('__monitor__', None) + * + * cancelMonitor = monitorCancel # <<<<<<<<<<<<<< + * + * def monitor(self, its, rnorm): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP, __pyx_n_s_monitorCancel); if (unlikely(!__pyx_t_6)) __PYX_ERR(48, 315, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_KSP->tp_dict, __pyx_n_s_cancelMonitor, __pyx_t_6) < 0) __PYX_ERR(48, 315, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_KSP); + + /* "petsc4py/PETSc/KSP.pyx":695 + * # -------------------------------------------------------------------- + * + * del KSPType # <<<<<<<<<<<<<< + * del KSPNormType + * del KSPConvergedReason + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_KSPType) < 0) __PYX_ERR(48, 695, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":696 + * + * del KSPType + * del KSPNormType # <<<<<<<<<<<<<< + * del KSPConvergedReason + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_KSPNormType) < 0) __PYX_ERR(48, 696, __pyx_L1_error) + + /* "petsc4py/PETSc/KSP.pyx":697 + * del KSPType + * del KSPNormType + * del KSPConvergedReason # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_KSPConvergedReason) < 0) __PYX_ERR(48, 697, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":3 + * # -------------------------------------------------------------------- + * + * class SNESType(object): # <<<<<<<<<<<<<< + * NEWTONLS = S_(SNESNEWTONLS) + * NEWTONTR = S_(SNESNEWTONTR) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__146); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__146, __pyx_n_s_SNESType, __pyx_n_s_SNESType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/SNES.pyx":4 + * + * class SNESType(object): + * NEWTONLS = S_(SNESNEWTONLS) # <<<<<<<<<<<<<< + * NEWTONTR = S_(SNESNEWTONTR) + * PYTHON = S_(SNESPYTHON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNEWTONLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEWTONLS, __pyx_t_5) < 0) __PYX_ERR(49, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":5 + * class SNESType(object): + * NEWTONLS = S_(SNESNEWTONLS) + * NEWTONTR = S_(SNESNEWTONTR) # <<<<<<<<<<<<<< + * PYTHON = S_(SNESPYTHON) + * NRICHARDSON = S_(SNESNRICHARDSON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNEWTONTR); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NEWTONTR, __pyx_t_5) < 0) __PYX_ERR(49, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":6 + * NEWTONLS = S_(SNESNEWTONLS) + * NEWTONTR = S_(SNESNEWTONTR) + * PYTHON = S_(SNESPYTHON) # <<<<<<<<<<<<<< + * NRICHARDSON = S_(SNESNRICHARDSON) + * KSPONLY = S_(SNESKSPONLY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESPYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(49, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":7 + * NEWTONTR = S_(SNESNEWTONTR) + * PYTHON = S_(SNESPYTHON) + * NRICHARDSON = S_(SNESNRICHARDSON) # <<<<<<<<<<<<<< + * KSPONLY = S_(SNESKSPONLY) + * KSPTRANSPOSEONLY = S_(SNESKSPTRANSPOSEONLY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNRICHARDSON); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NRICHARDSON, __pyx_t_5) < 0) __PYX_ERR(49, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":8 + * PYTHON = S_(SNESPYTHON) + * NRICHARDSON = S_(SNESNRICHARDSON) + * KSPONLY = S_(SNESKSPONLY) # <<<<<<<<<<<<<< + * KSPTRANSPOSEONLY = S_(SNESKSPTRANSPOSEONLY) + * VINEWTONRSLS = S_(SNESVINEWTONRSLS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESKSPONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KSPONLY, __pyx_t_5) < 0) __PYX_ERR(49, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":9 + * NRICHARDSON = S_(SNESNRICHARDSON) + * KSPONLY = S_(SNESKSPONLY) + * KSPTRANSPOSEONLY = S_(SNESKSPTRANSPOSEONLY) # <<<<<<<<<<<<<< + * VINEWTONRSLS = S_(SNESVINEWTONRSLS) + * VINEWTONSSLS = S_(SNESVINEWTONSSLS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESKSPTRANSPOSEONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_KSPTRANSPOSEONLY, __pyx_t_5) < 0) __PYX_ERR(49, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":10 + * KSPONLY = S_(SNESKSPONLY) + * KSPTRANSPOSEONLY = S_(SNESKSPTRANSPOSEONLY) + * VINEWTONRSLS = S_(SNESVINEWTONRSLS) # <<<<<<<<<<<<<< + * VINEWTONSSLS = S_(SNESVINEWTONSSLS) + * NGMRES = S_(SNESNGMRES) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESVINEWTONRSLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_VINEWTONRSLS, __pyx_t_5) < 0) __PYX_ERR(49, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":11 + * KSPTRANSPOSEONLY = S_(SNESKSPTRANSPOSEONLY) + * VINEWTONRSLS = S_(SNESVINEWTONRSLS) + * VINEWTONSSLS = S_(SNESVINEWTONSSLS) # <<<<<<<<<<<<<< + * NGMRES = S_(SNESNGMRES) + * QN = S_(SNESQN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESVINEWTONSSLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_VINEWTONSSLS, __pyx_t_5) < 0) __PYX_ERR(49, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":12 + * VINEWTONRSLS = S_(SNESVINEWTONRSLS) + * VINEWTONSSLS = S_(SNESVINEWTONSSLS) + * NGMRES = S_(SNESNGMRES) # <<<<<<<<<<<<<< + * QN = S_(SNESQN) + * SHELL = S_(SNESSHELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNGMRES); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NGMRES, __pyx_t_5) < 0) __PYX_ERR(49, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":13 + * VINEWTONSSLS = S_(SNESVINEWTONSSLS) + * NGMRES = S_(SNESNGMRES) + * QN = S_(SNESQN) # <<<<<<<<<<<<<< + * SHELL = S_(SNESSHELL) + * NGS = S_(SNESNGS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESQN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QN, __pyx_t_5) < 0) __PYX_ERR(49, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":14 + * NGMRES = S_(SNESNGMRES) + * QN = S_(SNESQN) + * SHELL = S_(SNESSHELL) # <<<<<<<<<<<<<< + * NGS = S_(SNESNGS) + * NCG = S_(SNESNCG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESSHELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHELL, __pyx_t_5) < 0) __PYX_ERR(49, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":15 + * QN = S_(SNESQN) + * SHELL = S_(SNESSHELL) + * NGS = S_(SNESNGS) # <<<<<<<<<<<<<< + * NCG = S_(SNESNCG) + * FAS = S_(SNESFAS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNGS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NGS, __pyx_t_5) < 0) __PYX_ERR(49, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":16 + * SHELL = S_(SNESSHELL) + * NGS = S_(SNESNGS) + * NCG = S_(SNESNCG) # <<<<<<<<<<<<<< + * FAS = S_(SNESFAS) + * MS = S_(SNESMS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNCG); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NCG, __pyx_t_5) < 0) __PYX_ERR(49, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":17 + * NGS = S_(SNESNGS) + * NCG = S_(SNESNCG) + * FAS = S_(SNESFAS) # <<<<<<<<<<<<<< + * MS = S_(SNESMS) + * NASM = S_(SNESNASM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESFAS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FAS, __pyx_t_5) < 0) __PYX_ERR(49, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":18 + * NCG = S_(SNESNCG) + * FAS = S_(SNESFAS) + * MS = S_(SNESMS) # <<<<<<<<<<<<<< + * NASM = S_(SNESNASM) + * ANDERSON = S_(SNESANDERSON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESMS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MS, __pyx_t_5) < 0) __PYX_ERR(49, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":19 + * FAS = S_(SNESFAS) + * MS = S_(SNESMS) + * NASM = S_(SNESNASM) # <<<<<<<<<<<<<< + * ANDERSON = S_(SNESANDERSON) + * ASPIN = S_(SNESASPIN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESNASM); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NASM, __pyx_t_5) < 0) __PYX_ERR(49, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":20 + * MS = S_(SNESMS) + * NASM = S_(SNESNASM) + * ANDERSON = S_(SNESANDERSON) # <<<<<<<<<<<<<< + * ASPIN = S_(SNESASPIN) + * COMPOSITE = S_(SNESCOMPOSITE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESANDERSON); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ANDERSON, __pyx_t_5) < 0) __PYX_ERR(49, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":21 + * NASM = S_(SNESNASM) + * ANDERSON = S_(SNESANDERSON) + * ASPIN = S_(SNESASPIN) # <<<<<<<<<<<<<< + * COMPOSITE = S_(SNESCOMPOSITE) + * PATCH = S_(SNESPATCH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESASPIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ASPIN, __pyx_t_5) < 0) __PYX_ERR(49, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":22 + * ANDERSON = S_(SNESANDERSON) + * ASPIN = S_(SNESASPIN) + * COMPOSITE = S_(SNESCOMPOSITE) # <<<<<<<<<<<<<< + * PATCH = S_(SNESPATCH) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESCOMPOSITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COMPOSITE, __pyx_t_5) < 0) __PYX_ERR(49, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":23 + * ASPIN = S_(SNESASPIN) + * COMPOSITE = S_(SNESCOMPOSITE) + * PATCH = S_(SNESPATCH) # <<<<<<<<<<<<<< + * + * class SNESNormSchedule(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(SNESPATCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PATCH, __pyx_t_5) < 0) __PYX_ERR(49, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":3 + * # -------------------------------------------------------------------- + * + * class SNESType(object): # <<<<<<<<<<<<<< + * NEWTONLS = S_(SNESNEWTONLS) + * NEWTONTR = S_(SNESNEWTONTR) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_SNESType, __pyx_tuple__146, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SNESType, __pyx_t_5) < 0) __PYX_ERR(49, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/SNES.pyx":25 + * PATCH = S_(SNESPATCH) + * + * class SNESNormSchedule(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = SNES_NORM_DEFAULT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__147); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__147, __pyx_n_s_SNESNormSchedule, __pyx_n_s_SNESNormSchedule, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/SNES.pyx":27 + * class SNESNormSchedule(object): + * # native + * NORM_DEFAULT = SNES_NORM_DEFAULT # <<<<<<<<<<<<<< + * NORM_NONE = SNES_NORM_NONE + * NORM_ALWAYS = SNES_NORM_ALWAYS + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_DEFAULT); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_DEFAULT, __pyx_t_5) < 0) __PYX_ERR(49, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":28 + * # native + * NORM_DEFAULT = SNES_NORM_DEFAULT + * NORM_NONE = SNES_NORM_NONE # <<<<<<<<<<<<<< + * NORM_ALWAYS = SNES_NORM_ALWAYS + * NORM_INITIAL_ONLY = SNES_NORM_INITIAL_ONLY + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_NONE, __pyx_t_5) < 0) __PYX_ERR(49, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":29 + * NORM_DEFAULT = SNES_NORM_DEFAULT + * NORM_NONE = SNES_NORM_NONE + * NORM_ALWAYS = SNES_NORM_ALWAYS # <<<<<<<<<<<<<< + * NORM_INITIAL_ONLY = SNES_NORM_INITIAL_ONLY + * NORM_FINAL_ONLY = SNES_NORM_FINAL_ONLY + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_ALWAYS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_ALWAYS, __pyx_t_5) < 0) __PYX_ERR(49, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":30 + * NORM_NONE = SNES_NORM_NONE + * NORM_ALWAYS = SNES_NORM_ALWAYS + * NORM_INITIAL_ONLY = SNES_NORM_INITIAL_ONLY # <<<<<<<<<<<<<< + * NORM_FINAL_ONLY = SNES_NORM_FINAL_ONLY + * NORM_INITIAL_FINAL_ONLY = SNES_NORM_INITIAL_FINAL_ONLY + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_INITIAL_ONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_INITIAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":31 + * NORM_ALWAYS = SNES_NORM_ALWAYS + * NORM_INITIAL_ONLY = SNES_NORM_INITIAL_ONLY + * NORM_FINAL_ONLY = SNES_NORM_FINAL_ONLY # <<<<<<<<<<<<<< + * NORM_INITIAL_FINAL_ONLY = SNES_NORM_INITIAL_FINAL_ONLY + * # aliases + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_FINAL_ONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_FINAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":32 + * NORM_INITIAL_ONLY = SNES_NORM_INITIAL_ONLY + * NORM_FINAL_ONLY = SNES_NORM_FINAL_ONLY + * NORM_INITIAL_FINAL_ONLY = SNES_NORM_INITIAL_FINAL_ONLY # <<<<<<<<<<<<<< + * # aliases + * DEFAULT = NORM_DEFAULT + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESNormSchedule(SNES_NORM_INITIAL_FINAL_ONLY); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NORM_INITIAL_FINAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":34 + * NORM_INITIAL_FINAL_ONLY = SNES_NORM_INITIAL_FINAL_ONLY + * # aliases + * DEFAULT = NORM_DEFAULT # <<<<<<<<<<<<<< + * NONE = NORM_NONE + * ALWAYS = NORM_ALWAYS + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_DEFAULT); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_DEFAULT); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DEFAULT, __pyx_t_5) < 0) __PYX_ERR(49, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":35 + * # aliases + * DEFAULT = NORM_DEFAULT + * NONE = NORM_NONE # <<<<<<<<<<<<<< + * ALWAYS = NORM_ALWAYS + * INITIAL_ONLY = NORM_INITIAL_ONLY + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_NONE); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_NONE); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(49, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":36 + * DEFAULT = NORM_DEFAULT + * NONE = NORM_NONE + * ALWAYS = NORM_ALWAYS # <<<<<<<<<<<<<< + * INITIAL_ONLY = NORM_INITIAL_ONLY + * FINAL_ONLY = NORM_FINAL_ONLY + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_ALWAYS); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_ALWAYS); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALWAYS, __pyx_t_5) < 0) __PYX_ERR(49, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":37 + * NONE = NORM_NONE + * ALWAYS = NORM_ALWAYS + * INITIAL_ONLY = NORM_INITIAL_ONLY # <<<<<<<<<<<<<< + * FINAL_ONLY = NORM_FINAL_ONLY + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_INITIAL_ONLY); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_INITIAL_ONLY); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INITIAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":38 + * ALWAYS = NORM_ALWAYS + * INITIAL_ONLY = NORM_INITIAL_ONLY + * FINAL_ONLY = NORM_FINAL_ONLY # <<<<<<<<<<<<<< + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_FINAL_ONLY); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_FINAL_ONLY); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FINAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":39 + * INITIAL_ONLY = NORM_INITIAL_ONLY + * FINAL_ONLY = NORM_FINAL_ONLY + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY # <<<<<<<<<<<<<< + * + * class SNESConvergedReason(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_NORM_INITIAL_FINAL_ONLY); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_NORM_INITIAL_FINAL_ONLY); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INITIAL_FINAL_ONLY, __pyx_t_5) < 0) __PYX_ERR(49, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":25 + * PATCH = S_(SNESPATCH) + * + * class SNESNormSchedule(object): # <<<<<<<<<<<<<< + * # native + * NORM_DEFAULT = SNES_NORM_DEFAULT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_SNESNormSchedule, __pyx_tuple__147, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SNESNormSchedule, __pyx_t_5) < 0) __PYX_ERR(49, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/SNES.pyx":41 + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY + * + * class SNESConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = SNES_CONVERGED_ITERATING + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__148); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__148, __pyx_n_s_SNESConvergedReason, __pyx_n_s_SNESConvergedReason, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(49, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/SNES.pyx":43 + * class SNESConvergedReason(object): + * # iterating + * CONVERGED_ITERATING = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * ITERATING = SNES_CONVERGED_ITERATING + * # converged + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITERATING, __pyx_t_5) < 0) __PYX_ERR(49, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":44 + * # iterating + * CONVERGED_ITERATING = SNES_CONVERGED_ITERATING + * ITERATING = SNES_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * # converged + * CONVERGED_FNORM_ABS = SNES_CONVERGED_FNORM_ABS + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ITERATING, __pyx_t_5) < 0) __PYX_ERR(49, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":46 + * ITERATING = SNES_CONVERGED_ITERATING + * # converged + * CONVERGED_FNORM_ABS = SNES_CONVERGED_FNORM_ABS # <<<<<<<<<<<<<< + * CONVERGED_FNORM_RELATIVE = SNES_CONVERGED_FNORM_RELATIVE + * CONVERGED_SNORM_RELATIVE = SNES_CONVERGED_SNORM_RELATIVE + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_FNORM_ABS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_FNORM_ABS, __pyx_t_5) < 0) __PYX_ERR(49, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":47 + * # converged + * CONVERGED_FNORM_ABS = SNES_CONVERGED_FNORM_ABS + * CONVERGED_FNORM_RELATIVE = SNES_CONVERGED_FNORM_RELATIVE # <<<<<<<<<<<<<< + * CONVERGED_SNORM_RELATIVE = SNES_CONVERGED_SNORM_RELATIVE + * CONVERGED_ITS = SNES_CONVERGED_ITS + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_FNORM_RELATIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_FNORM_RELATIVE, __pyx_t_5) < 0) __PYX_ERR(49, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":48 + * CONVERGED_FNORM_ABS = SNES_CONVERGED_FNORM_ABS + * CONVERGED_FNORM_RELATIVE = SNES_CONVERGED_FNORM_RELATIVE + * CONVERGED_SNORM_RELATIVE = SNES_CONVERGED_SNORM_RELATIVE # <<<<<<<<<<<<<< + * CONVERGED_ITS = SNES_CONVERGED_ITS + * # diverged + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_SNORM_RELATIVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_SNORM_RELATIVE, __pyx_t_5) < 0) __PYX_ERR(49, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":49 + * CONVERGED_FNORM_RELATIVE = SNES_CONVERGED_FNORM_RELATIVE + * CONVERGED_SNORM_RELATIVE = SNES_CONVERGED_SNORM_RELATIVE + * CONVERGED_ITS = SNES_CONVERGED_ITS # <<<<<<<<<<<<<< + * # diverged + * DIVERGED_FUNCTION_DOMAIN = SNES_DIVERGED_FUNCTION_DOMAIN + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_CONVERGED_ITS); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITS, __pyx_t_5) < 0) __PYX_ERR(49, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":51 + * CONVERGED_ITS = SNES_CONVERGED_ITS + * # diverged + * DIVERGED_FUNCTION_DOMAIN = SNES_DIVERGED_FUNCTION_DOMAIN # <<<<<<<<<<<<<< + * DIVERGED_FUNCTION_COUNT = SNES_DIVERGED_FUNCTION_COUNT + * DIVERGED_LINEAR_SOLVE = SNES_DIVERGED_LINEAR_SOLVE + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_FUNCTION_DOMAIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_FUNCTION_DOMAIN, __pyx_t_5) < 0) __PYX_ERR(49, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":52 + * # diverged + * DIVERGED_FUNCTION_DOMAIN = SNES_DIVERGED_FUNCTION_DOMAIN + * DIVERGED_FUNCTION_COUNT = SNES_DIVERGED_FUNCTION_COUNT # <<<<<<<<<<<<<< + * DIVERGED_LINEAR_SOLVE = SNES_DIVERGED_LINEAR_SOLVE + * DIVERGED_FNORM_NAN = SNES_DIVERGED_FNORM_NAN + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_FUNCTION_COUNT); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_FUNCTION_COUNT, __pyx_t_5) < 0) __PYX_ERR(49, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":53 + * DIVERGED_FUNCTION_DOMAIN = SNES_DIVERGED_FUNCTION_DOMAIN + * DIVERGED_FUNCTION_COUNT = SNES_DIVERGED_FUNCTION_COUNT + * DIVERGED_LINEAR_SOLVE = SNES_DIVERGED_LINEAR_SOLVE # <<<<<<<<<<<<<< + * DIVERGED_FNORM_NAN = SNES_DIVERGED_FNORM_NAN + * DIVERGED_MAX_IT = SNES_DIVERGED_MAX_IT + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_LINEAR_SOLVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_LINEAR_SOLVE, __pyx_t_5) < 0) __PYX_ERR(49, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":54 + * DIVERGED_FUNCTION_COUNT = SNES_DIVERGED_FUNCTION_COUNT + * DIVERGED_LINEAR_SOLVE = SNES_DIVERGED_LINEAR_SOLVE + * DIVERGED_FNORM_NAN = SNES_DIVERGED_FNORM_NAN # <<<<<<<<<<<<<< + * DIVERGED_MAX_IT = SNES_DIVERGED_MAX_IT + * DIVERGED_LINE_SEARCH = SNES_DIVERGED_LINE_SEARCH + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_FNORM_NAN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_FNORM_NAN, __pyx_t_5) < 0) __PYX_ERR(49, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":55 + * DIVERGED_LINEAR_SOLVE = SNES_DIVERGED_LINEAR_SOLVE + * DIVERGED_FNORM_NAN = SNES_DIVERGED_FNORM_NAN + * DIVERGED_MAX_IT = SNES_DIVERGED_MAX_IT # <<<<<<<<<<<<<< + * DIVERGED_LINE_SEARCH = SNES_DIVERGED_LINE_SEARCH + * DIVERGED_INNER = SNES_DIVERGED_INNER + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_MAX_IT); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_MAX_IT, __pyx_t_5) < 0) __PYX_ERR(49, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":56 + * DIVERGED_FNORM_NAN = SNES_DIVERGED_FNORM_NAN + * DIVERGED_MAX_IT = SNES_DIVERGED_MAX_IT + * DIVERGED_LINE_SEARCH = SNES_DIVERGED_LINE_SEARCH # <<<<<<<<<<<<<< + * DIVERGED_INNER = SNES_DIVERGED_INNER + * DIVERGED_LOCAL_MIN = SNES_DIVERGED_LOCAL_MIN + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_LINE_SEARCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_LINE_SEARCH, __pyx_t_5) < 0) __PYX_ERR(49, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":57 + * DIVERGED_MAX_IT = SNES_DIVERGED_MAX_IT + * DIVERGED_LINE_SEARCH = SNES_DIVERGED_LINE_SEARCH + * DIVERGED_INNER = SNES_DIVERGED_INNER # <<<<<<<<<<<<<< + * DIVERGED_LOCAL_MIN = SNES_DIVERGED_LOCAL_MIN + * DIVERGED_DTOL = SNES_DIVERGED_DTOL + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_INNER); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_INNER, __pyx_t_5) < 0) __PYX_ERR(49, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":58 + * DIVERGED_LINE_SEARCH = SNES_DIVERGED_LINE_SEARCH + * DIVERGED_INNER = SNES_DIVERGED_INNER + * DIVERGED_LOCAL_MIN = SNES_DIVERGED_LOCAL_MIN # <<<<<<<<<<<<<< + * DIVERGED_DTOL = SNES_DIVERGED_DTOL + * DIVERGED_JACOBIAN_DOMAIN = SNES_DIVERGED_JACOBIAN_DOMAIN + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_LOCAL_MIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_LOCAL_MIN, __pyx_t_5) < 0) __PYX_ERR(49, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":59 + * DIVERGED_INNER = SNES_DIVERGED_INNER + * DIVERGED_LOCAL_MIN = SNES_DIVERGED_LOCAL_MIN + * DIVERGED_DTOL = SNES_DIVERGED_DTOL # <<<<<<<<<<<<<< + * DIVERGED_JACOBIAN_DOMAIN = SNES_DIVERGED_JACOBIAN_DOMAIN + * DIVERGED_TR_DELTA = SNES_DIVERGED_TR_DELTA + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_DTOL); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_DTOL, __pyx_t_5) < 0) __PYX_ERR(49, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":60 + * DIVERGED_LOCAL_MIN = SNES_DIVERGED_LOCAL_MIN + * DIVERGED_DTOL = SNES_DIVERGED_DTOL + * DIVERGED_JACOBIAN_DOMAIN = SNES_DIVERGED_JACOBIAN_DOMAIN # <<<<<<<<<<<<<< + * DIVERGED_TR_DELTA = SNES_DIVERGED_TR_DELTA + * + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_JACOBIAN_DOMAIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_JACOBIAN_DOMAIN, __pyx_t_5) < 0) __PYX_ERR(49, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":61 + * DIVERGED_DTOL = SNES_DIVERGED_DTOL + * DIVERGED_JACOBIAN_DOMAIN = SNES_DIVERGED_JACOBIAN_DOMAIN + * DIVERGED_TR_DELTA = SNES_DIVERGED_TR_DELTA # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_SNESConvergedReason(SNES_DIVERGED_TR_DELTA); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_TR_DELTA, __pyx_t_5) < 0) __PYX_ERR(49, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/SNES.pyx":41 + * INITIAL_FINAL_ONLY = NORM_INITIAL_FINAL_ONLY + * + * class SNESConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = SNES_CONVERGED_ITERATING + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_SNESConvergedReason, __pyx_tuple__148, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(49, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SNESConvergedReason, __pyx_t_5) < 0) __PYX_ERR(49, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/SNES.pyx":67 + * cdef class SNES(Object): + * + * Type = SNESType # <<<<<<<<<<<<<< + * NormSchedule = SNESNormSchedule + * ConvergedReason = SNESConvergedReason + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SNESType); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(49, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":68 + * + * Type = SNESType + * NormSchedule = SNESNormSchedule # <<<<<<<<<<<<<< + * ConvergedReason = SNESConvergedReason + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SNESNormSchedule); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_NormSchedule, __pyx_t_6) < 0) __PYX_ERR(49, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":69 + * Type = SNESType + * NormSchedule = SNESNormSchedule + * ConvergedReason = SNESConvergedReason # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SNESConvergedReason); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_ConvergedReason, __pyx_t_6) < 0) __PYX_ERR(49, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":142 + * + * # backward compatibility + * setAppCtx = setApplicationContext # <<<<<<<<<<<<<< + * getAppCtx = getApplicationContext + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_setApplicationContext); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_setAppCtx, __pyx_t_6) < 0) __PYX_ERR(49, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":143 + * # backward compatibility + * setAppCtx = setApplicationContext + * getAppCtx = getApplicationContext # <<<<<<<<<<<<<< + * + * # --- discretization space --- + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_getApplicationContext); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_getAppCtx, __pyx_t_6) < 0) __PYX_ERR(49, 143, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":529 + * self.set_attr('__monitor__', None) + * + * cancelMonitor = monitorCancel # <<<<<<<<<<<<<< + * + * def monitor(self, its, rnorm): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_monitorCancel); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_cancelMonitor, __pyx_t_6) < 0) __PYX_ERR(49, 529, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":584 + * return toInt(ival) + * + * setMaxNonlinearStepFailures = setMaxStepFailures # <<<<<<<<<<<<<< + * getMaxNonlinearStepFailures = getMaxStepFailures + * getNonlinearStepFailures = getStepFailures + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_setMaxStepFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_setMaxNonlinearStepFailures, __pyx_t_6) < 0) __PYX_ERR(49, 584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":585 + * + * setMaxNonlinearStepFailures = setMaxStepFailures + * getMaxNonlinearStepFailures = getMaxStepFailures # <<<<<<<<<<<<<< + * getNonlinearStepFailures = getStepFailures + * setMaxLinearSolveFailures = setMaxKSPFailures + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_getMaxStepFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_getMaxNonlinearStepFailures, __pyx_t_6) < 0) __PYX_ERR(49, 585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":586 + * setMaxNonlinearStepFailures = setMaxStepFailures + * getMaxNonlinearStepFailures = getMaxStepFailures + * getNonlinearStepFailures = getStepFailures # <<<<<<<<<<<<<< + * setMaxLinearSolveFailures = setMaxKSPFailures + * getMaxLinearSolveFailures = getMaxKSPFailures + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_getStepFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 586, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_getNonlinearStepFailures, __pyx_t_6) < 0) __PYX_ERR(49, 586, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":587 + * getMaxNonlinearStepFailures = getMaxStepFailures + * getNonlinearStepFailures = getStepFailures + * setMaxLinearSolveFailures = setMaxKSPFailures # <<<<<<<<<<<<<< + * getMaxLinearSolveFailures = getMaxKSPFailures + * getLinearSolveFailures = getKSPFailures + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_setMaxKSPFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 587, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_setMaxLinearSolveFailures, __pyx_t_6) < 0) __PYX_ERR(49, 587, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":588 + * getNonlinearStepFailures = getStepFailures + * setMaxLinearSolveFailures = setMaxKSPFailures + * getMaxLinearSolveFailures = getMaxKSPFailures # <<<<<<<<<<<<<< + * getLinearSolveFailures = getKSPFailures + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_getMaxKSPFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 588, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_getMaxLinearSolveFailures, __pyx_t_6) < 0) __PYX_ERR(49, 588, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":589 + * setMaxLinearSolveFailures = setMaxKSPFailures + * getMaxLinearSolveFailures = getMaxKSPFailures + * getLinearSolveFailures = getKSPFailures # <<<<<<<<<<<<<< + * + * # --- solving --- + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES, __pyx_n_s_getKSPFailures); if (unlikely(!__pyx_t_6)) __PYX_ERR(49, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_SNES->tp_dict, __pyx_n_s_getLinearSolveFailures, __pyx_t_6) < 0) __PYX_ERR(49, 589, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_SNES); + + /* "petsc4py/PETSc/SNES.pyx":1034 + * # -------------------------------------------------------------------- + * + * del SNESType # <<<<<<<<<<<<<< + * del SNESNormSchedule + * del SNESConvergedReason + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_SNESType) < 0) __PYX_ERR(49, 1034, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":1035 + * + * del SNESType + * del SNESNormSchedule # <<<<<<<<<<<<<< + * del SNESConvergedReason + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_SNESNormSchedule) < 0) __PYX_ERR(49, 1035, __pyx_L1_error) + + /* "petsc4py/PETSc/SNES.pyx":1036 + * del SNESType + * del SNESNormSchedule + * del SNESConvergedReason # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_SNESConvergedReason) < 0) __PYX_ERR(49, 1036, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":3 + * # ----------------------------------------------------------------------------- + * + * class TSType(object): # <<<<<<<<<<<<<< + * # native + * EULER = S_(TSEULER) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__149); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__149, __pyx_n_s_TSType, __pyx_n_s_TSType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":5 + * class TSType(object): + * # native + * EULER = S_(TSEULER) # <<<<<<<<<<<<<< + * BEULER = S_(TSBEULER) + * BASICSYMPLECTIC = S_(TSBASICSYMPLECTIC) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSEULER); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EULER, __pyx_t_5) < 0) __PYX_ERR(50, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":6 + * # native + * EULER = S_(TSEULER) + * BEULER = S_(TSBEULER) # <<<<<<<<<<<<<< + * BASICSYMPLECTIC = S_(TSBASICSYMPLECTIC) + * PSEUDO = S_(TSPSEUDO) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSBEULER); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BEULER, __pyx_t_5) < 0) __PYX_ERR(50, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":7 + * EULER = S_(TSEULER) + * BEULER = S_(TSBEULER) + * BASICSYMPLECTIC = S_(TSBASICSYMPLECTIC) # <<<<<<<<<<<<<< + * PSEUDO = S_(TSPSEUDO) + * CN = S_(TSCN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSBASICSYMPLECTIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASICSYMPLECTIC, __pyx_t_5) < 0) __PYX_ERR(50, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":8 + * BEULER = S_(TSBEULER) + * BASICSYMPLECTIC = S_(TSBASICSYMPLECTIC) + * PSEUDO = S_(TSPSEUDO) # <<<<<<<<<<<<<< + * CN = S_(TSCN) + * SUNDIALS = S_(TSSUNDIALS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSPSEUDO); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PSEUDO, __pyx_t_5) < 0) __PYX_ERR(50, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":9 + * BASICSYMPLECTIC = S_(TSBASICSYMPLECTIC) + * PSEUDO = S_(TSPSEUDO) + * CN = S_(TSCN) # <<<<<<<<<<<<<< + * SUNDIALS = S_(TSSUNDIALS) + * RK = S_(TSRK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSCN); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CN, __pyx_t_5) < 0) __PYX_ERR(50, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":10 + * PSEUDO = S_(TSPSEUDO) + * CN = S_(TSCN) + * SUNDIALS = S_(TSSUNDIALS) # <<<<<<<<<<<<<< + * RK = S_(TSRK) + * PYTHON = S_(TSPYTHON) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSSUNDIALS); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUNDIALS, __pyx_t_5) < 0) __PYX_ERR(50, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":11 + * CN = S_(TSCN) + * SUNDIALS = S_(TSSUNDIALS) + * RK = S_(TSRK) # <<<<<<<<<<<<<< + * PYTHON = S_(TSPYTHON) + * THETA = S_(TSTHETA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK, __pyx_t_5) < 0) __PYX_ERR(50, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":12 + * SUNDIALS = S_(TSSUNDIALS) + * RK = S_(TSRK) + * PYTHON = S_(TSPYTHON) # <<<<<<<<<<<<<< + * THETA = S_(TSTHETA) + * ALPHA = S_(TSALPHA) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSPYTHON); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYTHON, __pyx_t_5) < 0) __PYX_ERR(50, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":13 + * RK = S_(TSRK) + * PYTHON = S_(TSPYTHON) + * THETA = S_(TSTHETA) # <<<<<<<<<<<<<< + * ALPHA = S_(TSALPHA) + * ALPHA2 = S_(TSALPHA2) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSTHETA); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_THETA, __pyx_t_5) < 0) __PYX_ERR(50, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":14 + * PYTHON = S_(TSPYTHON) + * THETA = S_(TSTHETA) + * ALPHA = S_(TSALPHA) # <<<<<<<<<<<<<< + * ALPHA2 = S_(TSALPHA2) + * GLLE = S_(TSGLLE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSALPHA); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALPHA, __pyx_t_5) < 0) __PYX_ERR(50, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":15 + * THETA = S_(TSTHETA) + * ALPHA = S_(TSALPHA) + * ALPHA2 = S_(TSALPHA2) # <<<<<<<<<<<<<< + * GLLE = S_(TSGLLE) + * GLEE = S_(TSGLEE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSALPHA2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ALPHA2, __pyx_t_5) < 0) __PYX_ERR(50, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":16 + * ALPHA = S_(TSALPHA) + * ALPHA2 = S_(TSALPHA2) + * GLLE = S_(TSGLLE) # <<<<<<<<<<<<<< + * GLEE = S_(TSGLEE) + * SSP = S_(TSSSP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSGLLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GLLE, __pyx_t_5) < 0) __PYX_ERR(50, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":17 + * ALPHA2 = S_(TSALPHA2) + * GLLE = S_(TSGLLE) + * GLEE = S_(TSGLEE) # <<<<<<<<<<<<<< + * SSP = S_(TSSSP) + * ARKIMEX = S_(TSARKIMEX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSGLEE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GLEE, __pyx_t_5) < 0) __PYX_ERR(50, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":18 + * GLLE = S_(TSGLLE) + * GLEE = S_(TSGLEE) + * SSP = S_(TSSSP) # <<<<<<<<<<<<<< + * ARKIMEX = S_(TSARKIMEX) + * ROSW = S_(TSROSW) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSSSP); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SSP, __pyx_t_5) < 0) __PYX_ERR(50, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":19 + * GLEE = S_(TSGLEE) + * SSP = S_(TSSSP) + * ARKIMEX = S_(TSARKIMEX) # <<<<<<<<<<<<<< + * ROSW = S_(TSROSW) + * EIMEX = S_(TSEIMEX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX, __pyx_t_5) < 0) __PYX_ERR(50, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":20 + * SSP = S_(TSSSP) + * ARKIMEX = S_(TSARKIMEX) + * ROSW = S_(TSROSW) # <<<<<<<<<<<<<< + * EIMEX = S_(TSEIMEX) + * MIMEX = S_(TSMIMEX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSROSW); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ROSW, __pyx_t_5) < 0) __PYX_ERR(50, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":21 + * ARKIMEX = S_(TSARKIMEX) + * ROSW = S_(TSROSW) + * EIMEX = S_(TSEIMEX) # <<<<<<<<<<<<<< + * MIMEX = S_(TSMIMEX) + * BDF = S_(TSBDF) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSEIMEX); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EIMEX, __pyx_t_5) < 0) __PYX_ERR(50, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":22 + * ROSW = S_(TSROSW) + * EIMEX = S_(TSEIMEX) + * MIMEX = S_(TSMIMEX) # <<<<<<<<<<<<<< + * BDF = S_(TSBDF) + * RADAU5 = S_(TSRADAU5) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSMIMEX); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIMEX, __pyx_t_5) < 0) __PYX_ERR(50, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":23 + * EIMEX = S_(TSEIMEX) + * MIMEX = S_(TSMIMEX) + * BDF = S_(TSBDF) # <<<<<<<<<<<<<< + * RADAU5 = S_(TSRADAU5) + * MPRK = S_(TSMPRK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSBDF); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BDF, __pyx_t_5) < 0) __PYX_ERR(50, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":24 + * MIMEX = S_(TSMIMEX) + * BDF = S_(TSBDF) + * RADAU5 = S_(TSRADAU5) # <<<<<<<<<<<<<< + * MPRK = S_(TSMPRK) + * DISCGRAD = S_(TSDISCGRAD) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRADAU5); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RADAU5, __pyx_t_5) < 0) __PYX_ERR(50, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":25 + * BDF = S_(TSBDF) + * RADAU5 = S_(TSRADAU5) + * MPRK = S_(TSMPRK) # <<<<<<<<<<<<<< + * DISCGRAD = S_(TSDISCGRAD) + * # aliases + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSMPRK); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MPRK, __pyx_t_5) < 0) __PYX_ERR(50, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":26 + * RADAU5 = S_(TSRADAU5) + * MPRK = S_(TSMPRK) + * DISCGRAD = S_(TSDISCGRAD) # <<<<<<<<<<<<<< + * # aliases + * FE = EULER + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSDISCGRAD); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DISCGRAD, __pyx_t_5) < 0) __PYX_ERR(50, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":28 + * DISCGRAD = S_(TSDISCGRAD) + * # aliases + * FE = EULER # <<<<<<<<<<<<<< + * BE = BEULER + * TH = THETA + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_EULER); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_EULER); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FE, __pyx_t_5) < 0) __PYX_ERR(50, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":29 + * # aliases + * FE = EULER + * BE = BEULER # <<<<<<<<<<<<<< + * TH = THETA + * CRANK_NICOLSON = CN + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_BEULER); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_BEULER); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BE, __pyx_t_5) < 0) __PYX_ERR(50, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":30 + * FE = EULER + * BE = BEULER + * TH = THETA # <<<<<<<<<<<<<< + * CRANK_NICOLSON = CN + * RUNGE_KUTTA = RK + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_THETA); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_THETA); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TH, __pyx_t_5) < 0) __PYX_ERR(50, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":31 + * BE = BEULER + * TH = THETA + * CRANK_NICOLSON = CN # <<<<<<<<<<<<<< + * RUNGE_KUTTA = RK + * + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_CN); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_CN); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CRANK_NICOLSON, __pyx_t_5) < 0) __PYX_ERR(50, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":32 + * TH = THETA + * CRANK_NICOLSON = CN + * RUNGE_KUTTA = RK # <<<<<<<<<<<<<< + * + * class TSRKType(object): + */ + __pyx_t_5 = PyObject_GetItem(__pyx_t_8, __pyx_n_s_RK); + if (unlikely(!__pyx_t_5)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_RK); + } + if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RUNGE_KUTTA, __pyx_t_5) < 0) __PYX_ERR(50, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":3 + * # ----------------------------------------------------------------------------- + * + * class TSType(object): # <<<<<<<<<<<<<< + * # native + * EULER = S_(TSEULER) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSType, __pyx_tuple__149, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSType, __pyx_t_5) < 0) __PYX_ERR(50, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":34 + * RUNGE_KUTTA = RK + * + * class TSRKType(object): # <<<<<<<<<<<<<< + * RK1FE = S_(TSRK1FE) + * RK2A = S_(TSRK2A) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__150); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__150, __pyx_n_s_TSRKType, __pyx_n_s_TSRKType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":35 + * + * class TSRKType(object): + * RK1FE = S_(TSRK1FE) # <<<<<<<<<<<<<< + * RK2A = S_(TSRK2A) + * RK2B = S_(TSRK2B) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK1FE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK1FE, __pyx_t_5) < 0) __PYX_ERR(50, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":36 + * class TSRKType(object): + * RK1FE = S_(TSRK1FE) + * RK2A = S_(TSRK2A) # <<<<<<<<<<<<<< + * RK2B = S_(TSRK2B) + * RK4 = S_(TSRK4) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK2A); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK2A, __pyx_t_5) < 0) __PYX_ERR(50, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":37 + * RK1FE = S_(TSRK1FE) + * RK2A = S_(TSRK2A) + * RK2B = S_(TSRK2B) # <<<<<<<<<<<<<< + * RK4 = S_(TSRK4) + * RK3BS = S_(TSRK3BS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK2B); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK2B, __pyx_t_5) < 0) __PYX_ERR(50, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":38 + * RK2A = S_(TSRK2A) + * RK2B = S_(TSRK2B) + * RK4 = S_(TSRK4) # <<<<<<<<<<<<<< + * RK3BS = S_(TSRK3BS) + * RK3 = S_(TSRK3) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK4); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK4, __pyx_t_5) < 0) __PYX_ERR(50, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":39 + * RK2B = S_(TSRK2B) + * RK4 = S_(TSRK4) + * RK3BS = S_(TSRK3BS) # <<<<<<<<<<<<<< + * RK3 = S_(TSRK3) + * RK5F = S_(TSRK5F) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK3BS); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK3BS, __pyx_t_5) < 0) __PYX_ERR(50, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":40 + * RK4 = S_(TSRK4) + * RK3BS = S_(TSRK3BS) + * RK3 = S_(TSRK3) # <<<<<<<<<<<<<< + * RK5F = S_(TSRK5F) + * RK5DP = S_(TSRK5DP) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK3, __pyx_t_5) < 0) __PYX_ERR(50, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":41 + * RK3BS = S_(TSRK3BS) + * RK3 = S_(TSRK3) + * RK5F = S_(TSRK5F) # <<<<<<<<<<<<<< + * RK5DP = S_(TSRK5DP) + * RK5BS = S_(TSRK5BS) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK5F); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK5F, __pyx_t_5) < 0) __PYX_ERR(50, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":42 + * RK3 = S_(TSRK3) + * RK5F = S_(TSRK5F) + * RK5DP = S_(TSRK5DP) # <<<<<<<<<<<<<< + * RK5BS = S_(TSRK5BS) + * RK6VR = S_(TSRK6VR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK5DP); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK5DP, __pyx_t_5) < 0) __PYX_ERR(50, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":43 + * RK5F = S_(TSRK5F) + * RK5DP = S_(TSRK5DP) + * RK5BS = S_(TSRK5BS) # <<<<<<<<<<<<<< + * RK6VR = S_(TSRK6VR) + * RK7VR = S_(TSRK7VR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK5BS); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK5BS, __pyx_t_5) < 0) __PYX_ERR(50, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":44 + * RK5DP = S_(TSRK5DP) + * RK5BS = S_(TSRK5BS) + * RK6VR = S_(TSRK6VR) # <<<<<<<<<<<<<< + * RK7VR = S_(TSRK7VR) + * RK8VR = S_(TSRK8VR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK6VR); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 44, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK6VR, __pyx_t_5) < 0) __PYX_ERR(50, 44, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":45 + * RK5BS = S_(TSRK5BS) + * RK6VR = S_(TSRK6VR) + * RK7VR = S_(TSRK7VR) # <<<<<<<<<<<<<< + * RK8VR = S_(TSRK8VR) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK7VR); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 45, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK7VR, __pyx_t_5) < 0) __PYX_ERR(50, 45, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":46 + * RK6VR = S_(TSRK6VR) + * RK7VR = S_(TSRK7VR) + * RK8VR = S_(TSRK8VR) # <<<<<<<<<<<<<< + * + * class TSARKIMEXType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSRK8VR); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RK8VR, __pyx_t_5) < 0) __PYX_ERR(50, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":34 + * RUNGE_KUTTA = RK + * + * class TSRKType(object): # <<<<<<<<<<<<<< + * RK1FE = S_(TSRK1FE) + * RK2A = S_(TSRK2A) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSRKType, __pyx_tuple__150, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSRKType, __pyx_t_5) < 0) __PYX_ERR(50, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":48 + * RK8VR = S_(TSRK8VR) + * + * class TSARKIMEXType(object): # <<<<<<<<<<<<<< + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) + * ARKIMEXA2 = S_(TSARKIMEXA2) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__151); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__151, __pyx_n_s_TSARKIMEXType, __pyx_n_s_TSARKIMEXType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":49 + * + * class TSARKIMEXType(object): + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) # <<<<<<<<<<<<<< + * ARKIMEXA2 = S_(TSARKIMEXA2) + * ARKIMEXL2 = S_(TSARKIMEXL2) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX1BEE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX1BEE, __pyx_t_5) < 0) __PYX_ERR(50, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":50 + * class TSARKIMEXType(object): + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) + * ARKIMEXA2 = S_(TSARKIMEXA2) # <<<<<<<<<<<<<< + * ARKIMEXL2 = S_(TSARKIMEXL2) + * ARKIMEXARS122 = S_(TSARKIMEXARS122) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXA2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXA2, __pyx_t_5) < 0) __PYX_ERR(50, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":51 + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) + * ARKIMEXA2 = S_(TSARKIMEXA2) + * ARKIMEXL2 = S_(TSARKIMEXL2) # <<<<<<<<<<<<<< + * ARKIMEXARS122 = S_(TSARKIMEXARS122) + * ARKIMEX2C = S_(TSARKIMEX2C) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXL2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXL2, __pyx_t_5) < 0) __PYX_ERR(50, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":52 + * ARKIMEXA2 = S_(TSARKIMEXA2) + * ARKIMEXL2 = S_(TSARKIMEXL2) + * ARKIMEXARS122 = S_(TSARKIMEXARS122) # <<<<<<<<<<<<<< + * ARKIMEX2C = S_(TSARKIMEX2C) + * ARKIMEX2D = S_(TSARKIMEX2D) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXARS122); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXARS122, __pyx_t_5) < 0) __PYX_ERR(50, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":53 + * ARKIMEXL2 = S_(TSARKIMEXL2) + * ARKIMEXARS122 = S_(TSARKIMEXARS122) + * ARKIMEX2C = S_(TSARKIMEX2C) # <<<<<<<<<<<<<< + * ARKIMEX2D = S_(TSARKIMEX2D) + * ARKIMEX2E = S_(TSARKIMEX2E) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX2C); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX2C, __pyx_t_5) < 0) __PYX_ERR(50, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":54 + * ARKIMEXARS122 = S_(TSARKIMEXARS122) + * ARKIMEX2C = S_(TSARKIMEX2C) + * ARKIMEX2D = S_(TSARKIMEX2D) # <<<<<<<<<<<<<< + * ARKIMEX2E = S_(TSARKIMEX2E) + * ARKIMEXPRSSP2 = S_(TSARKIMEXPRSSP2) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX2D); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX2D, __pyx_t_5) < 0) __PYX_ERR(50, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":55 + * ARKIMEX2C = S_(TSARKIMEX2C) + * ARKIMEX2D = S_(TSARKIMEX2D) + * ARKIMEX2E = S_(TSARKIMEX2E) # <<<<<<<<<<<<<< + * ARKIMEXPRSSP2 = S_(TSARKIMEXPRSSP2) + * ARKIMEX3 = S_(TSARKIMEX3) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX2E); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX2E, __pyx_t_5) < 0) __PYX_ERR(50, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":56 + * ARKIMEX2D = S_(TSARKIMEX2D) + * ARKIMEX2E = S_(TSARKIMEX2E) + * ARKIMEXPRSSP2 = S_(TSARKIMEXPRSSP2) # <<<<<<<<<<<<<< + * ARKIMEX3 = S_(TSARKIMEX3) + * ARKIMEXBPR3 = S_(TSARKIMEXBPR3) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXPRSSP2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 56, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXPRSSP2, __pyx_t_5) < 0) __PYX_ERR(50, 56, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":57 + * ARKIMEX2E = S_(TSARKIMEX2E) + * ARKIMEXPRSSP2 = S_(TSARKIMEXPRSSP2) + * ARKIMEX3 = S_(TSARKIMEX3) # <<<<<<<<<<<<<< + * ARKIMEXBPR3 = S_(TSARKIMEXBPR3) + * ARKIMEXARS443 = S_(TSARKIMEXARS443) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX3, __pyx_t_5) < 0) __PYX_ERR(50, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":58 + * ARKIMEXPRSSP2 = S_(TSARKIMEXPRSSP2) + * ARKIMEX3 = S_(TSARKIMEX3) + * ARKIMEXBPR3 = S_(TSARKIMEXBPR3) # <<<<<<<<<<<<<< + * ARKIMEXARS443 = S_(TSARKIMEXARS443) + * ARKIMEX4 = S_(TSARKIMEX4) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXBPR3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXBPR3, __pyx_t_5) < 0) __PYX_ERR(50, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":59 + * ARKIMEX3 = S_(TSARKIMEX3) + * ARKIMEXBPR3 = S_(TSARKIMEXBPR3) + * ARKIMEXARS443 = S_(TSARKIMEXARS443) # <<<<<<<<<<<<<< + * ARKIMEX4 = S_(TSARKIMEX4) + * ARKIMEX5 = S_(TSARKIMEX5) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEXARS443); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEXARS443, __pyx_t_5) < 0) __PYX_ERR(50, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":60 + * ARKIMEXBPR3 = S_(TSARKIMEXBPR3) + * ARKIMEXARS443 = S_(TSARKIMEXARS443) + * ARKIMEX4 = S_(TSARKIMEX4) # <<<<<<<<<<<<<< + * ARKIMEX5 = S_(TSARKIMEX5) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX4); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX4, __pyx_t_5) < 0) __PYX_ERR(50, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":61 + * ARKIMEXARS443 = S_(TSARKIMEXARS443) + * ARKIMEX4 = S_(TSARKIMEX4) + * ARKIMEX5 = S_(TSARKIMEX5) # <<<<<<<<<<<<<< + * + * class TSProblemType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(TSARKIMEX5); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ARKIMEX5, __pyx_t_5) < 0) __PYX_ERR(50, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":48 + * RK8VR = S_(TSRK8VR) + * + * class TSARKIMEXType(object): # <<<<<<<<<<<<<< + * ARKIMEX1BEE = S_(TSARKIMEX1BEE) + * ARKIMEXA2 = S_(TSARKIMEXA2) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSARKIMEXType, __pyx_tuple__151, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSARKIMEXType, __pyx_t_5) < 0) __PYX_ERR(50, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":63 + * ARKIMEX5 = S_(TSARKIMEX5) + * + * class TSProblemType(object): # <<<<<<<<<<<<<< + * LINEAR = TS_LINEAR + * NONLINEAR = TS_NONLINEAR + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__152); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__152, __pyx_n_s_TSProblemType, __pyx_n_s_TSProblemType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":64 + * + * class TSProblemType(object): + * LINEAR = TS_LINEAR # <<<<<<<<<<<<<< + * NONLINEAR = TS_NONLINEAR + * + */ + __pyx_t_5 = __Pyx_PyInt_From_TSProblemType(TS_LINEAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LINEAR, __pyx_t_5) < 0) __PYX_ERR(50, 64, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":65 + * class TSProblemType(object): + * LINEAR = TS_LINEAR + * NONLINEAR = TS_NONLINEAR # <<<<<<<<<<<<<< + * + * class TSEquationType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_TSProblemType(TS_NONLINEAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 65, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONLINEAR, __pyx_t_5) < 0) __PYX_ERR(50, 65, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":63 + * ARKIMEX5 = S_(TSARKIMEX5) + * + * class TSProblemType(object): # <<<<<<<<<<<<<< + * LINEAR = TS_LINEAR + * NONLINEAR = TS_NONLINEAR + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSProblemType, __pyx_tuple__152, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSProblemType, __pyx_t_5) < 0) __PYX_ERR(50, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":67 + * NONLINEAR = TS_NONLINEAR + * + * class TSEquationType(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EQ_UNSPECIFIED + * EXPLICIT = TS_EQ_EXPLICIT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__153); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__153, __pyx_n_s_TSEquationType, __pyx_n_s_TSEquationType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":68 + * + * class TSEquationType(object): + * UNSPECIFIED = TS_EQ_UNSPECIFIED # <<<<<<<<<<<<<< + * EXPLICIT = TS_EQ_EXPLICIT + * ODE_EXPLICIT = TS_EQ_ODE_EXPLICIT + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_UNSPECIFIED); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNSPECIFIED, __pyx_t_5) < 0) __PYX_ERR(50, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":69 + * class TSEquationType(object): + * UNSPECIFIED = TS_EQ_UNSPECIFIED + * EXPLICIT = TS_EQ_EXPLICIT # <<<<<<<<<<<<<< + * ODE_EXPLICIT = TS_EQ_ODE_EXPLICIT + * DAE_SEMI_EXPLICIT_INDEX1 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX1 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_EXPLICIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EXPLICIT, __pyx_t_5) < 0) __PYX_ERR(50, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":70 + * UNSPECIFIED = TS_EQ_UNSPECIFIED + * EXPLICIT = TS_EQ_EXPLICIT + * ODE_EXPLICIT = TS_EQ_ODE_EXPLICIT # <<<<<<<<<<<<<< + * DAE_SEMI_EXPLICIT_INDEX1 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX1 + * DAE_SEMI_EXPLICIT_INDEX2 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX2 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_ODE_EXPLICIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ODE_EXPLICIT, __pyx_t_5) < 0) __PYX_ERR(50, 70, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":71 + * EXPLICIT = TS_EQ_EXPLICIT + * ODE_EXPLICIT = TS_EQ_ODE_EXPLICIT + * DAE_SEMI_EXPLICIT_INDEX1 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX1 # <<<<<<<<<<<<<< + * DAE_SEMI_EXPLICIT_INDEX2 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX2 + * DAE_SEMI_EXPLICIT_INDEX3 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX3 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_SEMI_EXPLICIT_INDEX1); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 71, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_SEMI_EXPLICIT_INDEX1, __pyx_t_5) < 0) __PYX_ERR(50, 71, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":72 + * ODE_EXPLICIT = TS_EQ_ODE_EXPLICIT + * DAE_SEMI_EXPLICIT_INDEX1 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX1 + * DAE_SEMI_EXPLICIT_INDEX2 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX2 # <<<<<<<<<<<<<< + * DAE_SEMI_EXPLICIT_INDEX3 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX3 + * DAE_SEMI_EXPLICIT_INDEXHI = TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_SEMI_EXPLICIT_INDEX2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_SEMI_EXPLICIT_INDEX2, __pyx_t_5) < 0) __PYX_ERR(50, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":73 + * DAE_SEMI_EXPLICIT_INDEX1 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX1 + * DAE_SEMI_EXPLICIT_INDEX2 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX2 + * DAE_SEMI_EXPLICIT_INDEX3 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX3 # <<<<<<<<<<<<<< + * DAE_SEMI_EXPLICIT_INDEXHI = TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI + * IMPLICIT = TS_EQ_IMPLICIT + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_SEMI_EXPLICIT_INDEX3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_SEMI_EXPLICIT_INDEX3, __pyx_t_5) < 0) __PYX_ERR(50, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":74 + * DAE_SEMI_EXPLICIT_INDEX2 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX2 + * DAE_SEMI_EXPLICIT_INDEX3 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX3 + * DAE_SEMI_EXPLICIT_INDEXHI = TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI # <<<<<<<<<<<<<< + * IMPLICIT = TS_EQ_IMPLICIT + * ODE_IMPLICIT = TS_EQ_ODE_IMPLICIT + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_SEMI_EXPLICIT_INDEXHI, __pyx_t_5) < 0) __PYX_ERR(50, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":75 + * DAE_SEMI_EXPLICIT_INDEX3 = TS_EQ_DAE_SEMI_EXPLICIT_INDEX3 + * DAE_SEMI_EXPLICIT_INDEXHI = TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI + * IMPLICIT = TS_EQ_IMPLICIT # <<<<<<<<<<<<<< + * ODE_IMPLICIT = TS_EQ_ODE_IMPLICIT + * DAE_IMPLICIT_INDEX1 = TS_EQ_DAE_IMPLICIT_INDEX1 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_IMPLICIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 75, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_IMPLICIT, __pyx_t_5) < 0) __PYX_ERR(50, 75, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":76 + * DAE_SEMI_EXPLICIT_INDEXHI = TS_EQ_DAE_SEMI_EXPLICIT_INDEXHI + * IMPLICIT = TS_EQ_IMPLICIT + * ODE_IMPLICIT = TS_EQ_ODE_IMPLICIT # <<<<<<<<<<<<<< + * DAE_IMPLICIT_INDEX1 = TS_EQ_DAE_IMPLICIT_INDEX1 + * DAE_IMPLICIT_INDEX2 = TS_EQ_DAE_IMPLICIT_INDEX2 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_ODE_IMPLICIT); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ODE_IMPLICIT, __pyx_t_5) < 0) __PYX_ERR(50, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":77 + * IMPLICIT = TS_EQ_IMPLICIT + * ODE_IMPLICIT = TS_EQ_ODE_IMPLICIT + * DAE_IMPLICIT_INDEX1 = TS_EQ_DAE_IMPLICIT_INDEX1 # <<<<<<<<<<<<<< + * DAE_IMPLICIT_INDEX2 = TS_EQ_DAE_IMPLICIT_INDEX2 + * DAE_IMPLICIT_INDEX3 = TS_EQ_DAE_IMPLICIT_INDEX3 + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_IMPLICIT_INDEX1); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_IMPLICIT_INDEX1, __pyx_t_5) < 0) __PYX_ERR(50, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":78 + * ODE_IMPLICIT = TS_EQ_ODE_IMPLICIT + * DAE_IMPLICIT_INDEX1 = TS_EQ_DAE_IMPLICIT_INDEX1 + * DAE_IMPLICIT_INDEX2 = TS_EQ_DAE_IMPLICIT_INDEX2 # <<<<<<<<<<<<<< + * DAE_IMPLICIT_INDEX3 = TS_EQ_DAE_IMPLICIT_INDEX3 + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_IMPLICIT_INDEX2); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_IMPLICIT_INDEX2, __pyx_t_5) < 0) __PYX_ERR(50, 78, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":79 + * DAE_IMPLICIT_INDEX1 = TS_EQ_DAE_IMPLICIT_INDEX1 + * DAE_IMPLICIT_INDEX2 = TS_EQ_DAE_IMPLICIT_INDEX2 + * DAE_IMPLICIT_INDEX3 = TS_EQ_DAE_IMPLICIT_INDEX3 # <<<<<<<<<<<<<< + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI + * + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_IMPLICIT_INDEX3); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_IMPLICIT_INDEX3, __pyx_t_5) < 0) __PYX_ERR(50, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":80 + * DAE_IMPLICIT_INDEX2 = TS_EQ_DAE_IMPLICIT_INDEX2 + * DAE_IMPLICIT_INDEX3 = TS_EQ_DAE_IMPLICIT_INDEX3 + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI # <<<<<<<<<<<<<< + * + * class TSExactFinalTime(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_TSEquationType(TS_EQ_DAE_IMPLICIT_INDEXHI); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 80, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DAE_IMPLICIT_INDEXHI, __pyx_t_5) < 0) __PYX_ERR(50, 80, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":67 + * NONLINEAR = TS_NONLINEAR + * + * class TSEquationType(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EQ_UNSPECIFIED + * EXPLICIT = TS_EQ_EXPLICIT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSEquationType, __pyx_tuple__153, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 67, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSEquationType, __pyx_t_5) < 0) __PYX_ERR(50, 67, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":82 + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI + * + * class TSExactFinalTime(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__154); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__154, __pyx_n_s_TSExactFinalTime, __pyx_n_s_TSExactFinalTime, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":83 + * + * class TSExactFinalTime(object): + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED # <<<<<<<<<<<<<< + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + * INTERPOLATE = TS_EXACTFINALTIME_INTERPOLATE + */ + __pyx_t_5 = __Pyx_PyInt_From_TSExactFinalTimeOption(TS_EXACTFINALTIME_UNSPECIFIED); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 83, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNSPECIFIED, __pyx_t_5) < 0) __PYX_ERR(50, 83, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":84 + * class TSExactFinalTime(object): + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED + * STEPOVER = TS_EXACTFINALTIME_STEPOVER # <<<<<<<<<<<<<< + * INTERPOLATE = TS_EXACTFINALTIME_INTERPOLATE + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP + */ + __pyx_t_5 = __Pyx_PyInt_From_TSExactFinalTimeOption(TS_EXACTFINALTIME_STEPOVER); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 84, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STEPOVER, __pyx_t_5) < 0) __PYX_ERR(50, 84, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":85 + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + * INTERPOLATE = TS_EXACTFINALTIME_INTERPOLATE # <<<<<<<<<<<<<< + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP + * + */ + __pyx_t_5 = __Pyx_PyInt_From_TSExactFinalTimeOption(TS_EXACTFINALTIME_INTERPOLATE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INTERPOLATE, __pyx_t_5) < 0) __PYX_ERR(50, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":86 + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + * INTERPOLATE = TS_EXACTFINALTIME_INTERPOLATE + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP # <<<<<<<<<<<<<< + * + * class TSConvergedReason(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_TSExactFinalTimeOption(TS_EXACTFINALTIME_MATCHSTEP); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 86, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MATCHSTEP, __pyx_t_5) < 0) __PYX_ERR(50, 86, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":82 + * DAE_IMPLICIT_INDEXHI = TS_EQ_DAE_IMPLICIT_INDEXHI + * + * class TSExactFinalTime(object): # <<<<<<<<<<<<<< + * UNSPECIFIED = TS_EXACTFINALTIME_UNSPECIFIED + * STEPOVER = TS_EXACTFINALTIME_STEPOVER + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSExactFinalTime, __pyx_tuple__154, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSExactFinalTime, __pyx_t_5) < 0) __PYX_ERR(50, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":88 + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP + * + * class TSConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = TS_CONVERGED_ITERATING + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__155); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__155, __pyx_n_s_TSConvergedReason, __pyx_n_s_TSConvergedReason, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(50, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/TS.pyx":90 + * class TSConvergedReason(object): + * # iterating + * CONVERGED_ITERATING = TS_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * ITERATING = TS_CONVERGED_ITERATING + * # converged + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITERATING, __pyx_t_5) < 0) __PYX_ERR(50, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":91 + * # iterating + * CONVERGED_ITERATING = TS_CONVERGED_ITERATING + * ITERATING = TS_CONVERGED_ITERATING # <<<<<<<<<<<<<< + * # converged + * CONVERGED_TIME = TS_CONVERGED_TIME + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_ITERATING); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 91, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ITERATING, __pyx_t_5) < 0) __PYX_ERR(50, 91, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":93 + * ITERATING = TS_CONVERGED_ITERATING + * # converged + * CONVERGED_TIME = TS_CONVERGED_TIME # <<<<<<<<<<<<<< + * CONVERGED_ITS = TS_CONVERGED_ITS + * CONVERGED_USER = TS_CONVERGED_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_TIME); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_TIME, __pyx_t_5) < 0) __PYX_ERR(50, 93, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":94 + * # converged + * CONVERGED_TIME = TS_CONVERGED_TIME + * CONVERGED_ITS = TS_CONVERGED_ITS # <<<<<<<<<<<<<< + * CONVERGED_USER = TS_CONVERGED_USER + * CONVERGED_EVENT = TS_CONVERGED_EVENT + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_ITS); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 94, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_ITS, __pyx_t_5) < 0) __PYX_ERR(50, 94, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":95 + * CONVERGED_TIME = TS_CONVERGED_TIME + * CONVERGED_ITS = TS_CONVERGED_ITS + * CONVERGED_USER = TS_CONVERGED_USER # <<<<<<<<<<<<<< + * CONVERGED_EVENT = TS_CONVERGED_EVENT + * # diverged + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_USER, __pyx_t_5) < 0) __PYX_ERR(50, 95, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":96 + * CONVERGED_ITS = TS_CONVERGED_ITS + * CONVERGED_USER = TS_CONVERGED_USER + * CONVERGED_EVENT = TS_CONVERGED_EVENT # <<<<<<<<<<<<<< + * # diverged + * DIVERGED_NONLINEAR_SOLVE = TS_DIVERGED_NONLINEAR_SOLVE + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_CONVERGED_EVENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CONVERGED_EVENT, __pyx_t_5) < 0) __PYX_ERR(50, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":98 + * CONVERGED_EVENT = TS_CONVERGED_EVENT + * # diverged + * DIVERGED_NONLINEAR_SOLVE = TS_DIVERGED_NONLINEAR_SOLVE # <<<<<<<<<<<<<< + * DIVERGED_STEP_REJECTED = TS_DIVERGED_STEP_REJECTED + * + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_DIVERGED_NONLINEAR_SOLVE); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 98, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_NONLINEAR_SOLVE, __pyx_t_5) < 0) __PYX_ERR(50, 98, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":99 + * # diverged + * DIVERGED_NONLINEAR_SOLVE = TS_DIVERGED_NONLINEAR_SOLVE + * DIVERGED_STEP_REJECTED = TS_DIVERGED_STEP_REJECTED # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_TSConvergedReason(TS_DIVERGED_STEP_REJECTED); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 99, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DIVERGED_STEP_REJECTED, __pyx_t_5) < 0) __PYX_ERR(50, 99, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/TS.pyx":88 + * MATCHSTEP = TS_EXACTFINALTIME_MATCHSTEP + * + * class TSConvergedReason(object): # <<<<<<<<<<<<<< + * # iterating + * CONVERGED_ITERATING = TS_CONVERGED_ITERATING + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_TSConvergedReason, __pyx_tuple__155, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(50, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TSConvergedReason, __pyx_t_5) < 0) __PYX_ERR(50, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TS.pyx":105 + * cdef class TS(Object): + * + * Type = TSType # <<<<<<<<<<<<<< + * RKType = TSRKType + * ARKIMEXType = TSARKIMEXType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSType); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(50, 105, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":106 + * + * Type = TSType + * RKType = TSRKType # <<<<<<<<<<<<<< + * ARKIMEXType = TSARKIMEXType + * ProblemType = TSProblemType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSRKType); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_RKType, __pyx_t_6) < 0) __PYX_ERR(50, 106, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":107 + * Type = TSType + * RKType = TSRKType + * ARKIMEXType = TSARKIMEXType # <<<<<<<<<<<<<< + * ProblemType = TSProblemType + * EquationType = TSEquationType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSARKIMEXType); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_ARKIMEXType, __pyx_t_6) < 0) __PYX_ERR(50, 107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":108 + * RKType = TSRKType + * ARKIMEXType = TSARKIMEXType + * ProblemType = TSProblemType # <<<<<<<<<<<<<< + * EquationType = TSEquationType + * ExactFinalTime = TSExactFinalTime + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSProblemType); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_ProblemType, __pyx_t_6) < 0) __PYX_ERR(50, 108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":109 + * ARKIMEXType = TSARKIMEXType + * ProblemType = TSProblemType + * EquationType = TSEquationType # <<<<<<<<<<<<<< + * ExactFinalTime = TSExactFinalTime + * ExactFinalTimeOption = TSExactFinalTime + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSEquationType); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_EquationType, __pyx_t_6) < 0) __PYX_ERR(50, 109, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":110 + * ProblemType = TSProblemType + * EquationType = TSEquationType + * ExactFinalTime = TSExactFinalTime # <<<<<<<<<<<<<< + * ExactFinalTimeOption = TSExactFinalTime + * ConvergedReason = TSConvergedReason + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSExactFinalTime); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_ExactFinalTime, __pyx_t_6) < 0) __PYX_ERR(50, 110, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":111 + * EquationType = TSEquationType + * ExactFinalTime = TSExactFinalTime + * ExactFinalTimeOption = TSExactFinalTime # <<<<<<<<<<<<<< + * ConvergedReason = TSConvergedReason + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSExactFinalTime); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_ExactFinalTimeOption, __pyx_t_6) < 0) __PYX_ERR(50, 111, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":112 + * ExactFinalTime = TSExactFinalTime + * ExactFinalTimeOption = TSExactFinalTime + * ConvergedReason = TSConvergedReason # <<<<<<<<<<<<<< + * + * # --- xxx --- + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TSConvergedReason); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_ConvergedReason, __pyx_t_6) < 0) __PYX_ERR(50, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":664 + * CHKERR( TSMonitorCancel(self.ts) ) + * + * cancelMonitor = monitorCancel # <<<<<<<<<<<<<< + * + * def monitor(self, step, time, Vec u=None): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS, __pyx_n_s_monitorCancel); if (unlikely(!__pyx_t_6)) __PYX_ERR(50, 664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TS->tp_dict, __pyx_n_s_cancelMonitor, __pyx_t_6) < 0) __PYX_ERR(50, 664, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TS); + + /* "petsc4py/PETSc/TS.pyx":1072 + * # ----------------------------------------------------------------------------- + * + * del TSType # <<<<<<<<<<<<<< + * del TSRKType + * del TSARKIMEXType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSType) < 0) __PYX_ERR(50, 1072, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1073 + * + * del TSType + * del TSRKType # <<<<<<<<<<<<<< + * del TSARKIMEXType + * del TSProblemType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSRKType) < 0) __PYX_ERR(50, 1073, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1074 + * del TSType + * del TSRKType + * del TSARKIMEXType # <<<<<<<<<<<<<< + * del TSProblemType + * del TSEquationType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSARKIMEXType) < 0) __PYX_ERR(50, 1074, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1075 + * del TSRKType + * del TSARKIMEXType + * del TSProblemType # <<<<<<<<<<<<<< + * del TSEquationType + * del TSExactFinalTime + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSProblemType) < 0) __PYX_ERR(50, 1075, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1076 + * del TSARKIMEXType + * del TSProblemType + * del TSEquationType # <<<<<<<<<<<<<< + * del TSExactFinalTime + * del TSConvergedReason + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSEquationType) < 0) __PYX_ERR(50, 1076, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1077 + * del TSProblemType + * del TSEquationType + * del TSExactFinalTime # <<<<<<<<<<<<<< + * del TSConvergedReason + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSExactFinalTime) < 0) __PYX_ERR(50, 1077, __pyx_L1_error) + + /* "petsc4py/PETSc/TS.pyx":1078 + * del TSEquationType + * del TSExactFinalTime + * del TSConvergedReason # <<<<<<<<<<<<<< + * + * # ----------------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TSConvergedReason) < 0) __PYX_ERR(50, 1078, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":3 + * # -------------------------------------------------------------------- + * + * class TAOType: # <<<<<<<<<<<<<< + * """ + * TAO Solver Types + */ + __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_TAOType, __pyx_n_s_TAOType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, __pyx_kp_s_TAO_Solver_Types); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "petsc4py/PETSc/TAO.pyx":7 + * TAO Solver Types + * """ + * LMVM = S_(TAOLMVM) # <<<<<<<<<<<<<< + * NLS = S_(TAONLS) + * NTR = S_(TAONTR) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOLMVM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_LMVM, __pyx_t_8) < 0) __PYX_ERR(51, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":8 + * """ + * LMVM = S_(TAOLMVM) + * NLS = S_(TAONLS) # <<<<<<<<<<<<<< + * NTR = S_(TAONTR) + * NTL = S_(TAONTL) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAONLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_NLS, __pyx_t_8) < 0) __PYX_ERR(51, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":9 + * LMVM = S_(TAOLMVM) + * NLS = S_(TAONLS) + * NTR = S_(TAONTR) # <<<<<<<<<<<<<< + * NTL = S_(TAONTL) + * CG = S_(TAOCG) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAONTR); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_NTR, __pyx_t_8) < 0) __PYX_ERR(51, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":10 + * NLS = S_(TAONLS) + * NTR = S_(TAONTR) + * NTL = S_(TAONTL) # <<<<<<<<<<<<<< + * CG = S_(TAOCG) + * TRON = S_(TAOTRON) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAONTL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_NTL, __pyx_t_8) < 0) __PYX_ERR(51, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":11 + * NTR = S_(TAONTR) + * NTL = S_(TAONTL) + * CG = S_(TAOCG) # <<<<<<<<<<<<<< + * TRON = S_(TAOTRON) + * OWLQN = S_(TAOOWLQN) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOCG); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CG, __pyx_t_8) < 0) __PYX_ERR(51, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":12 + * NTL = S_(TAONTL) + * CG = S_(TAOCG) + * TRON = S_(TAOTRON) # <<<<<<<<<<<<<< + * OWLQN = S_(TAOOWLQN) + * BMRM = S_(TAOBMRM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOTRON); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_TRON, __pyx_t_8) < 0) __PYX_ERR(51, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":13 + * CG = S_(TAOCG) + * TRON = S_(TAOTRON) + * OWLQN = S_(TAOOWLQN) # <<<<<<<<<<<<<< + * BMRM = S_(TAOBMRM) + * BLMVM = S_(TAOBLMVM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOOWLQN); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_OWLQN, __pyx_t_8) < 0) __PYX_ERR(51, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":14 + * TRON = S_(TAOTRON) + * OWLQN = S_(TAOOWLQN) + * BMRM = S_(TAOBMRM) # <<<<<<<<<<<<<< + * BLMVM = S_(TAOBLMVM) + * BQNLS = S_(TAOBQNLS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBMRM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BMRM, __pyx_t_8) < 0) __PYX_ERR(51, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":15 + * OWLQN = S_(TAOOWLQN) + * BMRM = S_(TAOBMRM) + * BLMVM = S_(TAOBLMVM) # <<<<<<<<<<<<<< + * BQNLS = S_(TAOBQNLS) + * BNCG = S_(TAOBNCG) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBLMVM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BLMVM, __pyx_t_8) < 0) __PYX_ERR(51, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":16 + * BMRM = S_(TAOBMRM) + * BLMVM = S_(TAOBLMVM) + * BQNLS = S_(TAOBQNLS) # <<<<<<<<<<<<<< + * BNCG = S_(TAOBNCG) + * BNLS = S_(TAOBNLS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBQNLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BQNLS, __pyx_t_8) < 0) __PYX_ERR(51, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":17 + * BLMVM = S_(TAOBLMVM) + * BQNLS = S_(TAOBQNLS) + * BNCG = S_(TAOBNCG) # <<<<<<<<<<<<<< + * BNLS = S_(TAOBNLS) + * BNTR = S_(TAOBNTR) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBNCG); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BNCG, __pyx_t_8) < 0) __PYX_ERR(51, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":18 + * BQNLS = S_(TAOBQNLS) + * BNCG = S_(TAOBNCG) + * BNLS = S_(TAOBNLS) # <<<<<<<<<<<<<< + * BNTR = S_(TAOBNTR) + * BNTL = S_(TAOBNTL) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBNLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BNLS, __pyx_t_8) < 0) __PYX_ERR(51, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":19 + * BNCG = S_(TAOBNCG) + * BNLS = S_(TAOBNLS) + * BNTR = S_(TAOBNTR) # <<<<<<<<<<<<<< + * BNTL = S_(TAOBNTL) + * BQNKLS = S_(TAOBQNKLS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBNTR); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BNTR, __pyx_t_8) < 0) __PYX_ERR(51, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":20 + * BNLS = S_(TAOBNLS) + * BNTR = S_(TAOBNTR) + * BNTL = S_(TAOBNTL) # <<<<<<<<<<<<<< + * BQNKLS = S_(TAOBQNKLS) + * BQNKTR = S_(TAOBQNKTR) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBNTL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BNTL, __pyx_t_8) < 0) __PYX_ERR(51, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":21 + * BNTR = S_(TAOBNTR) + * BNTL = S_(TAOBNTL) + * BQNKLS = S_(TAOBQNKLS) # <<<<<<<<<<<<<< + * BQNKTR = S_(TAOBQNKTR) + * BQNKTL = S_(TAOBQNKTL) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBQNKLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BQNKLS, __pyx_t_8) < 0) __PYX_ERR(51, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":22 + * BNTL = S_(TAOBNTL) + * BQNKLS = S_(TAOBQNKLS) + * BQNKTR = S_(TAOBQNKTR) # <<<<<<<<<<<<<< + * BQNKTL = S_(TAOBQNKTL) + * BQPIP = S_(TAOBQPIP) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBQNKTR); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BQNKTR, __pyx_t_8) < 0) __PYX_ERR(51, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":23 + * BQNKLS = S_(TAOBQNKLS) + * BQNKTR = S_(TAOBQNKTR) + * BQNKTL = S_(TAOBQNKTL) # <<<<<<<<<<<<<< + * BQPIP = S_(TAOBQPIP) + * GPCG = S_(TAOGPCG) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBQNKTL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BQNKTL, __pyx_t_8) < 0) __PYX_ERR(51, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":24 + * BQNKTR = S_(TAOBQNKTR) + * BQNKTL = S_(TAOBQNKTL) + * BQPIP = S_(TAOBQPIP) # <<<<<<<<<<<<<< + * GPCG = S_(TAOGPCG) + * NM = S_(TAONM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBQPIP); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BQPIP, __pyx_t_8) < 0) __PYX_ERR(51, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":25 + * BQNKTL = S_(TAOBQNKTL) + * BQPIP = S_(TAOBQPIP) + * GPCG = S_(TAOGPCG) # <<<<<<<<<<<<<< + * NM = S_(TAONM) + * POUNDERS = S_(TAOPOUNDERS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOGPCG); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_GPCG, __pyx_t_8) < 0) __PYX_ERR(51, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":26 + * BQPIP = S_(TAOBQPIP) + * GPCG = S_(TAOGPCG) + * NM = S_(TAONM) # <<<<<<<<<<<<<< + * POUNDERS = S_(TAOPOUNDERS) + * BRGN = S_(TAOBRGN) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAONM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_NM, __pyx_t_8) < 0) __PYX_ERR(51, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":27 + * GPCG = S_(TAOGPCG) + * NM = S_(TAONM) + * POUNDERS = S_(TAOPOUNDERS) # <<<<<<<<<<<<<< + * BRGN = S_(TAOBRGN) + * LCL = S_(TAOLCL) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOPOUNDERS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_POUNDERS, __pyx_t_8) < 0) __PYX_ERR(51, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":28 + * NM = S_(TAONM) + * POUNDERS = S_(TAOPOUNDERS) + * BRGN = S_(TAOBRGN) # <<<<<<<<<<<<<< + * LCL = S_(TAOLCL) + * SSILS = S_(TAOSSILS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOBRGN); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_BRGN, __pyx_t_8) < 0) __PYX_ERR(51, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":29 + * POUNDERS = S_(TAOPOUNDERS) + * BRGN = S_(TAOBRGN) + * LCL = S_(TAOLCL) # <<<<<<<<<<<<<< + * SSILS = S_(TAOSSILS) + * SSFLS = S_(TAOSSFLS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOLCL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_LCL, __pyx_t_8) < 0) __PYX_ERR(51, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":30 + * BRGN = S_(TAOBRGN) + * LCL = S_(TAOLCL) + * SSILS = S_(TAOSSILS) # <<<<<<<<<<<<<< + * SSFLS = S_(TAOSSFLS) + * ASILS = S_(TAOASILS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOSSILS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_SSILS, __pyx_t_8) < 0) __PYX_ERR(51, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":31 + * LCL = S_(TAOLCL) + * SSILS = S_(TAOSSILS) + * SSFLS = S_(TAOSSFLS) # <<<<<<<<<<<<<< + * ASILS = S_(TAOASILS) + * ASFLS = S_(TAOASFLS) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOSSFLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_SSFLS, __pyx_t_8) < 0) __PYX_ERR(51, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":32 + * SSILS = S_(TAOSSILS) + * SSFLS = S_(TAOSSFLS) + * ASILS = S_(TAOASILS) # <<<<<<<<<<<<<< + * ASFLS = S_(TAOASFLS) + * IPM = S_(TAOIPM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOASILS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_ASILS, __pyx_t_8) < 0) __PYX_ERR(51, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":33 + * SSFLS = S_(TAOSSFLS) + * ASILS = S_(TAOASILS) + * ASFLS = S_(TAOASFLS) # <<<<<<<<<<<<<< + * IPM = S_(TAOIPM) + * PDIPM = S_(TAOPDIPM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOASFLS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_ASFLS, __pyx_t_8) < 0) __PYX_ERR(51, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":34 + * ASILS = S_(TAOASILS) + * ASFLS = S_(TAOASFLS) + * IPM = S_(TAOIPM) # <<<<<<<<<<<<<< + * PDIPM = S_(TAOPDIPM) + * SHELL = S_(TAOSHELL) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOIPM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_IPM, __pyx_t_8) < 0) __PYX_ERR(51, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":35 + * ASFLS = S_(TAOASFLS) + * IPM = S_(TAOIPM) + * PDIPM = S_(TAOPDIPM) # <<<<<<<<<<<<<< + * SHELL = S_(TAOSHELL) + * ADMM = S_(TAOADMM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOPDIPM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_PDIPM, __pyx_t_8) < 0) __PYX_ERR(51, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":36 + * IPM = S_(TAOIPM) + * PDIPM = S_(TAOPDIPM) + * SHELL = S_(TAOSHELL) # <<<<<<<<<<<<<< + * ADMM = S_(TAOADMM) + * ALMM = S_(TAOALMM) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOSHELL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_SHELL, __pyx_t_8) < 0) __PYX_ERR(51, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":37 + * PDIPM = S_(TAOPDIPM) + * SHELL = S_(TAOSHELL) + * ADMM = S_(TAOADMM) # <<<<<<<<<<<<<< + * ALMM = S_(TAOALMM) + * PYTHON = S_(TAOPYTHON) + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOADMM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_ADMM, __pyx_t_8) < 0) __PYX_ERR(51, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":38 + * SHELL = S_(TAOSHELL) + * ADMM = S_(TAOADMM) + * ALMM = S_(TAOALMM) # <<<<<<<<<<<<<< + * PYTHON = S_(TAOPYTHON) + * + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOALMM); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_ALMM, __pyx_t_8) < 0) __PYX_ERR(51, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":39 + * ADMM = S_(TAOADMM) + * ALMM = S_(TAOALMM) + * PYTHON = S_(TAOPYTHON) # <<<<<<<<<<<<<< + * + * class TAOConvergedReason: + */ + __pyx_t_8 = __pyx_f_8petsc4py_5PETSc_S_(TAOPYTHON); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_PYTHON, __pyx_t_8) < 0) __PYX_ERR(51, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":3 + * # -------------------------------------------------------------------- + * + * class TAOType: # <<<<<<<<<<<<<< + * """ + * TAO Solver Types + */ + __pyx_t_8 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_TAOType, __pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAOType, __pyx_t_8) < 0) __PYX_ERR(51, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TAO.pyx":41 + * PYTHON = S_(TAOPYTHON) + * + * class TAOConvergedReason: # <<<<<<<<<<<<<< + * """ + * TAO Solver Termination Reasons + */ + __pyx_t_6 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_TAOConvergedReason, __pyx_n_s_TAOConvergedReason, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, __pyx_kp_s_TAO_Solver_Termination_Reasons); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "petsc4py/PETSc/TAO.pyx":46 + * """ + * # iterating + * CONTINUE_ITERATING = TAO_CONTINUE_ITERATING # iterating # <<<<<<<<<<<<<< + * CONVERGED_ITERATING = TAO_CONTINUE_ITERATING # iterating + * ITERATING = TAO_CONTINUE_ITERATING # iterating + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONTINUE_ITERATING); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 46, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONTINUE_ITERATING, __pyx_t_8) < 0) __PYX_ERR(51, 46, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":47 + * # iterating + * CONTINUE_ITERATING = TAO_CONTINUE_ITERATING # iterating + * CONVERGED_ITERATING = TAO_CONTINUE_ITERATING # iterating # <<<<<<<<<<<<<< + * ITERATING = TAO_CONTINUE_ITERATING # iterating + * # converged + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONTINUE_ITERATING); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 47, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_ITERATING, __pyx_t_8) < 0) __PYX_ERR(51, 47, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":48 + * CONTINUE_ITERATING = TAO_CONTINUE_ITERATING # iterating + * CONVERGED_ITERATING = TAO_CONTINUE_ITERATING # iterating + * ITERATING = TAO_CONTINUE_ITERATING # iterating # <<<<<<<<<<<<<< + * # converged + * CONVERGED_GATOL = TAO_CONVERGED_GATOL # ||g(X)|| < gatol + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONTINUE_ITERATING); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_ITERATING, __pyx_t_8) < 0) __PYX_ERR(51, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":50 + * ITERATING = TAO_CONTINUE_ITERATING # iterating + * # converged + * CONVERGED_GATOL = TAO_CONVERGED_GATOL # ||g(X)|| < gatol # <<<<<<<<<<<<<< + * CONVERGED_GRTOL = TAO_CONVERGED_GRTOL # ||g(X)||/f(X) < grtol + * CONVERGED_GTTOL = TAO_CONVERGED_GTTOL # ||g(X)||/||g(X0)|| < gttol + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_GATOL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_GATOL, __pyx_t_8) < 0) __PYX_ERR(51, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":51 + * # converged + * CONVERGED_GATOL = TAO_CONVERGED_GATOL # ||g(X)|| < gatol + * CONVERGED_GRTOL = TAO_CONVERGED_GRTOL # ||g(X)||/f(X) < grtol # <<<<<<<<<<<<<< + * CONVERGED_GTTOL = TAO_CONVERGED_GTTOL # ||g(X)||/||g(X0)|| < gttol + * CONVERGED_STEPTOL = TAO_CONVERGED_STEPTOL # small step size + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_GRTOL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 51, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_GRTOL, __pyx_t_8) < 0) __PYX_ERR(51, 51, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":52 + * CONVERGED_GATOL = TAO_CONVERGED_GATOL # ||g(X)|| < gatol + * CONVERGED_GRTOL = TAO_CONVERGED_GRTOL # ||g(X)||/f(X) < grtol + * CONVERGED_GTTOL = TAO_CONVERGED_GTTOL # ||g(X)||/||g(X0)|| < gttol # <<<<<<<<<<<<<< + * CONVERGED_STEPTOL = TAO_CONVERGED_STEPTOL # small step size + * CONVERGED_MINF = TAO_CONVERGED_MINF # f(X) < F_min + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_GTTOL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 52, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_GTTOL, __pyx_t_8) < 0) __PYX_ERR(51, 52, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":53 + * CONVERGED_GRTOL = TAO_CONVERGED_GRTOL # ||g(X)||/f(X) < grtol + * CONVERGED_GTTOL = TAO_CONVERGED_GTTOL # ||g(X)||/||g(X0)|| < gttol + * CONVERGED_STEPTOL = TAO_CONVERGED_STEPTOL # small step size # <<<<<<<<<<<<<< + * CONVERGED_MINF = TAO_CONVERGED_MINF # f(X) < F_min + * CONVERGED_USER = TAO_CONVERGED_USER # user defined + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_STEPTOL); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 53, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_STEPTOL, __pyx_t_8) < 0) __PYX_ERR(51, 53, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":54 + * CONVERGED_GTTOL = TAO_CONVERGED_GTTOL # ||g(X)||/||g(X0)|| < gttol + * CONVERGED_STEPTOL = TAO_CONVERGED_STEPTOL # small step size + * CONVERGED_MINF = TAO_CONVERGED_MINF # f(X) < F_min # <<<<<<<<<<<<<< + * CONVERGED_USER = TAO_CONVERGED_USER # user defined + * # diverged + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_MINF); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 54, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_MINF, __pyx_t_8) < 0) __PYX_ERR(51, 54, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":55 + * CONVERGED_STEPTOL = TAO_CONVERGED_STEPTOL # small step size + * CONVERGED_MINF = TAO_CONVERGED_MINF # f(X) < F_min + * CONVERGED_USER = TAO_CONVERGED_USER # user defined # <<<<<<<<<<<<<< + * # diverged + * DIVERGED_MAXITS = TAO_DIVERGED_MAXITS # + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_CONVERGED_USER); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_CONVERGED_USER, __pyx_t_8) < 0) __PYX_ERR(51, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":57 + * CONVERGED_USER = TAO_CONVERGED_USER # user defined + * # diverged + * DIVERGED_MAXITS = TAO_DIVERGED_MAXITS # # <<<<<<<<<<<<<< + * DIVERGED_NAN = TAO_DIVERGED_NAN # + * DIVERGED_MAXFCN = TAO_DIVERGED_MAXFCN # + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_MAXITS); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 57, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_MAXITS, __pyx_t_8) < 0) __PYX_ERR(51, 57, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":58 + * # diverged + * DIVERGED_MAXITS = TAO_DIVERGED_MAXITS # + * DIVERGED_NAN = TAO_DIVERGED_NAN # # <<<<<<<<<<<<<< + * DIVERGED_MAXFCN = TAO_DIVERGED_MAXFCN # + * DIVERGED_LS_FAILURE = TAO_DIVERGED_LS_FAILURE # + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_NAN); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_NAN, __pyx_t_8) < 0) __PYX_ERR(51, 58, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":59 + * DIVERGED_MAXITS = TAO_DIVERGED_MAXITS # + * DIVERGED_NAN = TAO_DIVERGED_NAN # + * DIVERGED_MAXFCN = TAO_DIVERGED_MAXFCN # # <<<<<<<<<<<<<< + * DIVERGED_LS_FAILURE = TAO_DIVERGED_LS_FAILURE # + * DIVERGED_TR_REDUCTION = TAO_DIVERGED_TR_REDUCTION # + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_MAXFCN); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 59, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_MAXFCN, __pyx_t_8) < 0) __PYX_ERR(51, 59, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":60 + * DIVERGED_NAN = TAO_DIVERGED_NAN # + * DIVERGED_MAXFCN = TAO_DIVERGED_MAXFCN # + * DIVERGED_LS_FAILURE = TAO_DIVERGED_LS_FAILURE # # <<<<<<<<<<<<<< + * DIVERGED_TR_REDUCTION = TAO_DIVERGED_TR_REDUCTION # + * DIVERGED_USER = TAO_DIVERGED_USER # user defined + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_LS_FAILURE); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_LS_FAILURE, __pyx_t_8) < 0) __PYX_ERR(51, 60, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":61 + * DIVERGED_MAXFCN = TAO_DIVERGED_MAXFCN # + * DIVERGED_LS_FAILURE = TAO_DIVERGED_LS_FAILURE # + * DIVERGED_TR_REDUCTION = TAO_DIVERGED_TR_REDUCTION # # <<<<<<<<<<<<<< + * DIVERGED_USER = TAO_DIVERGED_USER # user defined + * + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_TR_REDUCTION); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_TR_REDUCTION, __pyx_t_8) < 0) __PYX_ERR(51, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":62 + * DIVERGED_LS_FAILURE = TAO_DIVERGED_LS_FAILURE # + * DIVERGED_TR_REDUCTION = TAO_DIVERGED_TR_REDUCTION # + * DIVERGED_USER = TAO_DIVERGED_USER # user defined # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_8 = __Pyx_PyInt_From_TaoConvergedReason(TAO_DIVERGED_USER); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (__Pyx_SetNameInClass(__pyx_t_6, __pyx_n_s_DIVERGED_USER, __pyx_t_8) < 0) __PYX_ERR(51, 62, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + + /* "petsc4py/PETSc/TAO.pyx":41 + * PYTHON = S_(TAOPYTHON) + * + * class TAOConvergedReason: # <<<<<<<<<<<<<< + * """ + * TAO Solver Termination Reasons + */ + __pyx_t_8 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_TAOConvergedReason, __pyx_empty_tuple, __pyx_t_6, NULL, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(51, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAOConvergedReason, __pyx_t_8) < 0) __PYX_ERR(51, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/TAO.pyx":72 + * """ + * + * Type = TAOType # <<<<<<<<<<<<<< + * Reason = TAOConvergedReason + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TAOType); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(51, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TAO); + + /* "petsc4py/PETSc/TAO.pyx":73 + * + * Type = TAOType + * Reason = TAOConvergedReason # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_TAOConvergedReason); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 73, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO->tp_dict, __pyx_n_s_Reason, __pyx_t_6) < 0) __PYX_ERR(51, 73, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TAO); + + /* "petsc4py/PETSc/TAO.pyx":669 + * return toReal(fval) + * + * getFunctionValue = getObjectiveValue # <<<<<<<<<<<<<< + * + * def getConvergedReason(self): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO, __pyx_n_s_getObjectiveValue); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO->tp_dict, __pyx_n_s_getFunctionValue, __pyx_t_6) < 0) __PYX_ERR(51, 669, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TAO); + + /* "petsc4py/PETSc/TAO.pyx":791 + * # --- backward compatibility --- + * + * setInitial = setSolution # <<<<<<<<<<<<<< + * + * # --- application context --- + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO, __pyx_n_s_setSolution); if (unlikely(!__pyx_t_6)) __PYX_ERR(51, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_TAO->tp_dict, __pyx_n_s_setInitial, __pyx_t_6) < 0) __PYX_ERR(51, 791, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_TAO); + + /* "petsc4py/PETSc/TAO.pyx":892 + * # -------------------------------------------------------------------- + * + * del TAOType # <<<<<<<<<<<<<< + * del TAOConvergedReason + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TAOType) < 0) __PYX_ERR(51, 892, __pyx_L1_error) + + /* "petsc4py/PETSc/TAO.pyx":893 + * + * del TAOType + * del TAOConvergedReason # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_TAOConvergedReason) < 0) __PYX_ERR(51, 893, __pyx_L1_error) + + /* "petsc4py/PETSc/AO.pyx":3 + * # -------------------------------------------------------------------- + * + * class AOType(object): # <<<<<<<<<<<<<< + * BASIC = S_(AOBASIC) + * ADVANCED = S_(AOADVANCED) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__156); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__156, __pyx_n_s_AOType, __pyx_n_s_AOType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(52, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/AO.pyx":4 + * + * class AOType(object): + * BASIC = S_(AOBASIC) # <<<<<<<<<<<<<< + * ADVANCED = S_(AOADVANCED) + * MAPPING = S_(AOMAPPING) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(AOBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(52, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":5 + * class AOType(object): + * BASIC = S_(AOBASIC) + * ADVANCED = S_(AOADVANCED) # <<<<<<<<<<<<<< + * MAPPING = S_(AOMAPPING) + * MEMORYSCALABLE = S_(AOMEMORYSCALABLE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(AOADVANCED); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ADVANCED, __pyx_t_5) < 0) __PYX_ERR(52, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":6 + * BASIC = S_(AOBASIC) + * ADVANCED = S_(AOADVANCED) + * MAPPING = S_(AOMAPPING) # <<<<<<<<<<<<<< + * MEMORYSCALABLE = S_(AOMEMORYSCALABLE) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(AOMAPPING); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MAPPING, __pyx_t_5) < 0) __PYX_ERR(52, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":7 + * ADVANCED = S_(AOADVANCED) + * MAPPING = S_(AOMAPPING) + * MEMORYSCALABLE = S_(AOMEMORYSCALABLE) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(AOMEMORYSCALABLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MEMORYSCALABLE, __pyx_t_5) < 0) __PYX_ERR(52, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/AO.pyx":3 + * # -------------------------------------------------------------------- + * + * class AOType(object): # <<<<<<<<<<<<<< + * BASIC = S_(AOBASIC) + * ADVANCED = S_(AOADVANCED) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_AOType, __pyx_tuple__156, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(52, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AOType, __pyx_t_5) < 0) __PYX_ERR(52, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/AO.pyx":13 + * cdef class AO(Object): + * + * Type = AOType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_AOType); if (unlikely(!__pyx_t_6)) __PYX_ERR(52, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_AO->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(52, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_AO); + + /* "petsc4py/PETSc/AO.pyx":117 + * # -------------------------------------------------------------------- + * + * del AOType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_AOType) < 0) __PYX_ERR(52, 117, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMType(object): # <<<<<<<<<<<<<< + * DA = S_(DMDA_type) + * COMPOSITE = S_(DMCOMPOSITE) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__157); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__157, __pyx_n_s_DMType, __pyx_n_s_DMType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(53, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DM.pyx":4 + * + * class DMType(object): + * DA = S_(DMDA_type) # <<<<<<<<<<<<<< + * COMPOSITE = S_(DMCOMPOSITE) + * SLICED = S_(DMSLICED) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMDA); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DA, __pyx_t_5) < 0) __PYX_ERR(53, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":5 + * class DMType(object): + * DA = S_(DMDA_type) + * COMPOSITE = S_(DMCOMPOSITE) # <<<<<<<<<<<<<< + * SLICED = S_(DMSLICED) + * SHELL = S_(DMSHELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMCOMPOSITE); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COMPOSITE, __pyx_t_5) < 0) __PYX_ERR(53, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":6 + * DA = S_(DMDA_type) + * COMPOSITE = S_(DMCOMPOSITE) + * SLICED = S_(DMSLICED) # <<<<<<<<<<<<<< + * SHELL = S_(DMSHELL) + * PLEX = S_(DMPLEX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMSLICED); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SLICED, __pyx_t_5) < 0) __PYX_ERR(53, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":7 + * COMPOSITE = S_(DMCOMPOSITE) + * SLICED = S_(DMSLICED) + * SHELL = S_(DMSHELL) # <<<<<<<<<<<<<< + * PLEX = S_(DMPLEX) + * REDUNDANT = S_(DMREDUNDANT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMSHELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHELL, __pyx_t_5) < 0) __PYX_ERR(53, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":8 + * SLICED = S_(DMSLICED) + * SHELL = S_(DMSHELL) + * PLEX = S_(DMPLEX) # <<<<<<<<<<<<<< + * REDUNDANT = S_(DMREDUNDANT) + * PATCH = S_(DMPATCH) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEX); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PLEX, __pyx_t_5) < 0) __PYX_ERR(53, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":9 + * SHELL = S_(DMSHELL) + * PLEX = S_(DMPLEX) + * REDUNDANT = S_(DMREDUNDANT) # <<<<<<<<<<<<<< + * PATCH = S_(DMPATCH) + * MOAB = S_(DMMOAB) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMREDUNDANT); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REDUNDANT, __pyx_t_5) < 0) __PYX_ERR(53, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":10 + * PLEX = S_(DMPLEX) + * REDUNDANT = S_(DMREDUNDANT) + * PATCH = S_(DMPATCH) # <<<<<<<<<<<<<< + * MOAB = S_(DMMOAB) + * NETWORK = S_(DMNETWORK) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPATCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PATCH, __pyx_t_5) < 0) __PYX_ERR(53, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":11 + * REDUNDANT = S_(DMREDUNDANT) + * PATCH = S_(DMPATCH) + * MOAB = S_(DMMOAB) # <<<<<<<<<<<<<< + * NETWORK = S_(DMNETWORK) + * FOREST = S_(DMFOREST) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMMOAB); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MOAB, __pyx_t_5) < 0) __PYX_ERR(53, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":12 + * PATCH = S_(DMPATCH) + * MOAB = S_(DMMOAB) + * NETWORK = S_(DMNETWORK) # <<<<<<<<<<<<<< + * FOREST = S_(DMFOREST) + * P4EST = S_(DMP4EST) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMNETWORK); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NETWORK, __pyx_t_5) < 0) __PYX_ERR(53, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":13 + * MOAB = S_(DMMOAB) + * NETWORK = S_(DMNETWORK) + * FOREST = S_(DMFOREST) # <<<<<<<<<<<<<< + * P4EST = S_(DMP4EST) + * P8EST = S_(DMP8EST) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMFOREST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FOREST, __pyx_t_5) < 0) __PYX_ERR(53, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":14 + * NETWORK = S_(DMNETWORK) + * FOREST = S_(DMFOREST) + * P4EST = S_(DMP4EST) # <<<<<<<<<<<<<< + * P8EST = S_(DMP8EST) + * SWARM = S_(DMSWARM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMP4EST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_P4EST, __pyx_t_5) < 0) __PYX_ERR(53, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":15 + * FOREST = S_(DMFOREST) + * P4EST = S_(DMP4EST) + * P8EST = S_(DMP8EST) # <<<<<<<<<<<<<< + * SWARM = S_(DMSWARM) + * PRODUCT = S_(DMPRODUCT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMP8EST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_P8EST, __pyx_t_5) < 0) __PYX_ERR(53, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":16 + * P4EST = S_(DMP4EST) + * P8EST = S_(DMP8EST) + * SWARM = S_(DMSWARM) # <<<<<<<<<<<<<< + * PRODUCT = S_(DMPRODUCT) + * STAG = S_(DMSTAG) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMSWARM); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SWARM, __pyx_t_5) < 0) __PYX_ERR(53, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":17 + * P8EST = S_(DMP8EST) + * SWARM = S_(DMSWARM) + * PRODUCT = S_(DMPRODUCT) # <<<<<<<<<<<<<< + * STAG = S_(DMSTAG) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPRODUCT); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PRODUCT, __pyx_t_5) < 0) __PYX_ERR(53, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":18 + * SWARM = S_(DMSWARM) + * PRODUCT = S_(DMPRODUCT) + * STAG = S_(DMSTAG) # <<<<<<<<<<<<<< + * + * class DMBoundaryType(object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMSTAG); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STAG, __pyx_t_5) < 0) __PYX_ERR(53, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMType(object): # <<<<<<<<<<<<<< + * DA = S_(DMDA_type) + * COMPOSITE = S_(DMCOMPOSITE) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMType, __pyx_tuple__157, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMType, __pyx_t_5) < 0) __PYX_ERR(53, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DM.pyx":20 + * STAG = S_(DMSTAG) + * + * class DMBoundaryType(object): # <<<<<<<<<<<<<< + * NONE = DM_BOUNDARY_NONE + * GHOSTED = DM_BOUNDARY_GHOSTED + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__158); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__158, __pyx_n_s_DMBoundaryType, __pyx_n_s_DMBoundaryType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(53, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DM.pyx":21 + * + * class DMBoundaryType(object): + * NONE = DM_BOUNDARY_NONE # <<<<<<<<<<<<<< + * GHOSTED = DM_BOUNDARY_GHOSTED + * MIRROR = DM_BOUNDARY_MIRROR + */ + __pyx_t_5 = __Pyx_PyInt_From_DMBoundaryType(DM_BOUNDARY_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(53, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":22 + * class DMBoundaryType(object): + * NONE = DM_BOUNDARY_NONE + * GHOSTED = DM_BOUNDARY_GHOSTED # <<<<<<<<<<<<<< + * MIRROR = DM_BOUNDARY_MIRROR + * PERIODIC = DM_BOUNDARY_PERIODIC + */ + __pyx_t_5 = __Pyx_PyInt_From_DMBoundaryType(DM_BOUNDARY_GHOSTED); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GHOSTED, __pyx_t_5) < 0) __PYX_ERR(53, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":23 + * NONE = DM_BOUNDARY_NONE + * GHOSTED = DM_BOUNDARY_GHOSTED + * MIRROR = DM_BOUNDARY_MIRROR # <<<<<<<<<<<<<< + * PERIODIC = DM_BOUNDARY_PERIODIC + * TWIST = DM_BOUNDARY_TWIST + */ + __pyx_t_5 = __Pyx_PyInt_From_DMBoundaryType(DM_BOUNDARY_MIRROR); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIRROR, __pyx_t_5) < 0) __PYX_ERR(53, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":24 + * GHOSTED = DM_BOUNDARY_GHOSTED + * MIRROR = DM_BOUNDARY_MIRROR + * PERIODIC = DM_BOUNDARY_PERIODIC # <<<<<<<<<<<<<< + * TWIST = DM_BOUNDARY_TWIST + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMBoundaryType(DM_BOUNDARY_PERIODIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PERIODIC, __pyx_t_5) < 0) __PYX_ERR(53, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":25 + * MIRROR = DM_BOUNDARY_MIRROR + * PERIODIC = DM_BOUNDARY_PERIODIC + * TWIST = DM_BOUNDARY_TWIST # <<<<<<<<<<<<<< + * + * class DMPolytopeType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMBoundaryType(DM_BOUNDARY_TWIST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TWIST, __pyx_t_5) < 0) __PYX_ERR(53, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":20 + * STAG = S_(DMSTAG) + * + * class DMBoundaryType(object): # <<<<<<<<<<<<<< + * NONE = DM_BOUNDARY_NONE + * GHOSTED = DM_BOUNDARY_GHOSTED + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMBoundaryType, __pyx_tuple__158, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMBoundaryType, __pyx_t_5) < 0) __PYX_ERR(53, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DM.pyx":27 + * TWIST = DM_BOUNDARY_TWIST + * + * class DMPolytopeType(object): # <<<<<<<<<<<<<< + * POINT = DM_POLYTOPE_POINT + * SEGMENT = DM_POLYTOPE_SEGMENT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__159); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__159, __pyx_n_s_DMPolytopeType, __pyx_n_s_DMPolytopeType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(53, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DM.pyx":28 + * + * class DMPolytopeType(object): + * POINT = DM_POLYTOPE_POINT # <<<<<<<<<<<<<< + * SEGMENT = DM_POLYTOPE_SEGMENT + * POINT_PRISM_TENSOR = DM_POLYTOPE_POINT_PRISM_TENSOR + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_POINT); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_POINT, __pyx_t_5) < 0) __PYX_ERR(53, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":29 + * class DMPolytopeType(object): + * POINT = DM_POLYTOPE_POINT + * SEGMENT = DM_POLYTOPE_SEGMENT # <<<<<<<<<<<<<< + * POINT_PRISM_TENSOR = DM_POLYTOPE_POINT_PRISM_TENSOR + * TRIANGLE = DM_POLYTOPE_TRIANGLE + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_SEGMENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEGMENT, __pyx_t_5) < 0) __PYX_ERR(53, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":30 + * POINT = DM_POLYTOPE_POINT + * SEGMENT = DM_POLYTOPE_SEGMENT + * POINT_PRISM_TENSOR = DM_POLYTOPE_POINT_PRISM_TENSOR # <<<<<<<<<<<<<< + * TRIANGLE = DM_POLYTOPE_TRIANGLE + * QUADRILATERAL = DM_POLYTOPE_QUADRILATERAL + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_POINT_PRISM_TENSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_POINT_PRISM_TENSOR, __pyx_t_5) < 0) __PYX_ERR(53, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":31 + * SEGMENT = DM_POLYTOPE_SEGMENT + * POINT_PRISM_TENSOR = DM_POLYTOPE_POINT_PRISM_TENSOR + * TRIANGLE = DM_POLYTOPE_TRIANGLE # <<<<<<<<<<<<<< + * QUADRILATERAL = DM_POLYTOPE_QUADRILATERAL + * SEG_PRISM_TENSOR = DM_POLYTOPE_SEG_PRISM_TENSOR + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_TRIANGLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRIANGLE, __pyx_t_5) < 0) __PYX_ERR(53, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":32 + * POINT_PRISM_TENSOR = DM_POLYTOPE_POINT_PRISM_TENSOR + * TRIANGLE = DM_POLYTOPE_TRIANGLE + * QUADRILATERAL = DM_POLYTOPE_QUADRILATERAL # <<<<<<<<<<<<<< + * SEG_PRISM_TENSOR = DM_POLYTOPE_SEG_PRISM_TENSOR + * TETRAHEDRON = DM_POLYTOPE_TETRAHEDRON + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_QUADRILATERAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QUADRILATERAL, __pyx_t_5) < 0) __PYX_ERR(53, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":33 + * TRIANGLE = DM_POLYTOPE_TRIANGLE + * QUADRILATERAL = DM_POLYTOPE_QUADRILATERAL + * SEG_PRISM_TENSOR = DM_POLYTOPE_SEG_PRISM_TENSOR # <<<<<<<<<<<<<< + * TETRAHEDRON = DM_POLYTOPE_TETRAHEDRON + * HEXAHEDRON = DM_POLYTOPE_HEXAHEDRON + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_SEG_PRISM_TENSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SEG_PRISM_TENSOR, __pyx_t_5) < 0) __PYX_ERR(53, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":34 + * QUADRILATERAL = DM_POLYTOPE_QUADRILATERAL + * SEG_PRISM_TENSOR = DM_POLYTOPE_SEG_PRISM_TENSOR + * TETRAHEDRON = DM_POLYTOPE_TETRAHEDRON # <<<<<<<<<<<<<< + * HEXAHEDRON = DM_POLYTOPE_HEXAHEDRON + * TRI_PRISM = DM_POLYTOPE_TRI_PRISM + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_TETRAHEDRON); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TETRAHEDRON, __pyx_t_5) < 0) __PYX_ERR(53, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":35 + * SEG_PRISM_TENSOR = DM_POLYTOPE_SEG_PRISM_TENSOR + * TETRAHEDRON = DM_POLYTOPE_TETRAHEDRON + * HEXAHEDRON = DM_POLYTOPE_HEXAHEDRON # <<<<<<<<<<<<<< + * TRI_PRISM = DM_POLYTOPE_TRI_PRISM + * TRI_PRISM_TENSOR = DM_POLYTOPE_TRI_PRISM_TENSOR + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_HEXAHEDRON); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_HEXAHEDRON, __pyx_t_5) < 0) __PYX_ERR(53, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":36 + * TETRAHEDRON = DM_POLYTOPE_TETRAHEDRON + * HEXAHEDRON = DM_POLYTOPE_HEXAHEDRON + * TRI_PRISM = DM_POLYTOPE_TRI_PRISM # <<<<<<<<<<<<<< + * TRI_PRISM_TENSOR = DM_POLYTOPE_TRI_PRISM_TENSOR + * QUAD_PRISM_TENSOR = DM_POLYTOPE_QUAD_PRISM_TENSOR + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_TRI_PRISM); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRI_PRISM, __pyx_t_5) < 0) __PYX_ERR(53, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":37 + * HEXAHEDRON = DM_POLYTOPE_HEXAHEDRON + * TRI_PRISM = DM_POLYTOPE_TRI_PRISM + * TRI_PRISM_TENSOR = DM_POLYTOPE_TRI_PRISM_TENSOR # <<<<<<<<<<<<<< + * QUAD_PRISM_TENSOR = DM_POLYTOPE_QUAD_PRISM_TENSOR + * PYRAMID = DM_POLYTOPE_PYRAMID + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_TRI_PRISM_TENSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 37, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRI_PRISM_TENSOR, __pyx_t_5) < 0) __PYX_ERR(53, 37, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":38 + * TRI_PRISM = DM_POLYTOPE_TRI_PRISM + * TRI_PRISM_TENSOR = DM_POLYTOPE_TRI_PRISM_TENSOR + * QUAD_PRISM_TENSOR = DM_POLYTOPE_QUAD_PRISM_TENSOR # <<<<<<<<<<<<<< + * PYRAMID = DM_POLYTOPE_PYRAMID + * FV_GHOST = DM_POLYTOPE_FV_GHOST + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_QUAD_PRISM_TENSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 38, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_QUAD_PRISM_TENSOR, __pyx_t_5) < 0) __PYX_ERR(53, 38, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":39 + * TRI_PRISM_TENSOR = DM_POLYTOPE_TRI_PRISM_TENSOR + * QUAD_PRISM_TENSOR = DM_POLYTOPE_QUAD_PRISM_TENSOR + * PYRAMID = DM_POLYTOPE_PYRAMID # <<<<<<<<<<<<<< + * FV_GHOST = DM_POLYTOPE_FV_GHOST + * INTERIOR_GHOST = DM_POLYTOPE_INTERIOR_GHOST + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_PYRAMID); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 39, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PYRAMID, __pyx_t_5) < 0) __PYX_ERR(53, 39, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":40 + * QUAD_PRISM_TENSOR = DM_POLYTOPE_QUAD_PRISM_TENSOR + * PYRAMID = DM_POLYTOPE_PYRAMID + * FV_GHOST = DM_POLYTOPE_FV_GHOST # <<<<<<<<<<<<<< + * INTERIOR_GHOST = DM_POLYTOPE_INTERIOR_GHOST + * UNKNOWN = DM_POLYTOPE_UNKNOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_FV_GHOST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 40, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FV_GHOST, __pyx_t_5) < 0) __PYX_ERR(53, 40, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":41 + * PYRAMID = DM_POLYTOPE_PYRAMID + * FV_GHOST = DM_POLYTOPE_FV_GHOST + * INTERIOR_GHOST = DM_POLYTOPE_INTERIOR_GHOST # <<<<<<<<<<<<<< + * UNKNOWN = DM_POLYTOPE_UNKNOWN + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_INTERIOR_GHOST); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 41, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_INTERIOR_GHOST, __pyx_t_5) < 0) __PYX_ERR(53, 41, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":42 + * FV_GHOST = DM_POLYTOPE_FV_GHOST + * INTERIOR_GHOST = DM_POLYTOPE_INTERIOR_GHOST + * UNKNOWN = DM_POLYTOPE_UNKNOWN # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPolytopeType(DM_POLYTOPE_UNKNOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UNKNOWN, __pyx_t_5) < 0) __PYX_ERR(53, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DM.pyx":27 + * TWIST = DM_BOUNDARY_TWIST + * + * class DMPolytopeType(object): # <<<<<<<<<<<<<< + * POINT = DM_POLYTOPE_POINT + * SEGMENT = DM_POLYTOPE_SEGMENT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMPolytopeType, __pyx_tuple__159, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(53, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMPolytopeType, __pyx_t_5) < 0) __PYX_ERR(53, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DM.pyx":48 + * cdef class DM(Object): + * + * Type = DMType # <<<<<<<<<<<<<< + * BoundaryType = DMBoundaryType + * PolytopeType = DMPolytopeType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMType); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 48, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(53, 48, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":49 + * + * Type = DMType + * BoundaryType = DMBoundaryType # <<<<<<<<<<<<<< + * PolytopeType = DMPolytopeType + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMBoundaryType); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 49, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_BoundaryType, __pyx_t_6) < 0) __PYX_ERR(53, 49, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":50 + * Type = DMType + * BoundaryType = DMBoundaryType + * PolytopeType = DMPolytopeType # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMPolytopeType); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_PolytopeType, __pyx_t_6) < 0) __PYX_ERR(53, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":549 + * return sec + * + * setDefaultSection = setSection # <<<<<<<<<<<<<< + * getDefaultSection = getSection + * setDefaultLocalSection = setLocalSection + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_setSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_setDefaultSection, __pyx_t_6) < 0) __PYX_ERR(53, 549, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":550 + * + * setDefaultSection = setSection + * getDefaultSection = getSection # <<<<<<<<<<<<<< + * setDefaultLocalSection = setLocalSection + * getDefaultLocalSection = getLocalSection + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_getSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 550, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_getDefaultSection, __pyx_t_6) < 0) __PYX_ERR(53, 550, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":551 + * setDefaultSection = setSection + * getDefaultSection = getSection + * setDefaultLocalSection = setLocalSection # <<<<<<<<<<<<<< + * getDefaultLocalSection = getLocalSection + * setDefaultGlobalSection = setGlobalSection + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_setLocalSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_setDefaultLocalSection, __pyx_t_6) < 0) __PYX_ERR(53, 551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":552 + * getDefaultSection = getSection + * setDefaultLocalSection = setLocalSection + * getDefaultLocalSection = getLocalSection # <<<<<<<<<<<<<< + * setDefaultGlobalSection = setGlobalSection + * getDefaultGlobalSection = getGlobalSection + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_getLocalSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 552, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_getDefaultLocalSection, __pyx_t_6) < 0) __PYX_ERR(53, 552, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":553 + * setDefaultLocalSection = setLocalSection + * getDefaultLocalSection = getLocalSection + * setDefaultGlobalSection = setGlobalSection # <<<<<<<<<<<<<< + * getDefaultGlobalSection = getGlobalSection + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_setGlobalSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_setDefaultGlobalSection, __pyx_t_6) < 0) __PYX_ERR(53, 553, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":554 + * getDefaultLocalSection = getLocalSection + * setDefaultGlobalSection = setGlobalSection + * getDefaultGlobalSection = getGlobalSection # <<<<<<<<<<<<<< + * + * def createSectionSF(self, Section localsec, Section globalsec): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_getGlobalSection); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_getDefaultGlobalSection, __pyx_t_6) < 0) __PYX_ERR(53, 554, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":568 + * CHKERR( DMSetSectionSF(self.dm, sf.sf) ) + * + * createDefaultSF = createSectionSF # <<<<<<<<<<<<<< + * getDefaultSF = getSectionSF + * setDefaultSF = setSectionSF + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_createSectionSF); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_createDefaultSF, __pyx_t_6) < 0) __PYX_ERR(53, 568, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":569 + * + * createDefaultSF = createSectionSF + * getDefaultSF = getSectionSF # <<<<<<<<<<<<<< + * setDefaultSF = setSectionSF + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_getSectionSF); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_getDefaultSF, __pyx_t_6) < 0) __PYX_ERR(53, 569, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":570 + * createDefaultSF = createSectionSF + * getDefaultSF = getSectionSF + * setDefaultSF = setSectionSF # <<<<<<<<<<<<<< + * + * def getPointSF(self): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_setSectionSF); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 570, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_setDefaultSF, __pyx_t_6) < 0) __PYX_ERR(53, 570, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":681 + * + * # backward compatibility + * createGlobalVector = createGlobalVec # <<<<<<<<<<<<<< + * createLocalVector = createLocalVec + * getMatrix = createMatrix = createMat + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_createGlobalVec); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_createGlobalVector, __pyx_t_6) < 0) __PYX_ERR(53, 681, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":682 + * # backward compatibility + * createGlobalVector = createGlobalVec + * createLocalVector = createLocalVec # <<<<<<<<<<<<<< + * getMatrix = createMatrix = createMat + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_createLocalVec); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_createLocalVector, __pyx_t_6) < 0) __PYX_ERR(53, 682, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + + /* "petsc4py/PETSc/DM.pyx":683 + * createGlobalVector = createGlobalVec + * createLocalVector = createLocalVec + * getMatrix = createMatrix = createMat # <<<<<<<<<<<<<< + * + * def setKSPComputeOperators(self, operators, args=None, kargs=None): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM, __pyx_n_s_createMat); if (unlikely(!__pyx_t_6)) __PYX_ERR(53, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_getMatrix, __pyx_t_6) < 0) __PYX_ERR(53, 683, __pyx_L1_error) + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DM->tp_dict, __pyx_n_s_createMatrix, __pyx_t_6) < 0) __PYX_ERR(53, 683, __pyx_L1_error) + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DM); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DM.pyx":791 + * # -------------------------------------------------------------------- + * + * del DMType # <<<<<<<<<<<<<< + * del DMBoundaryType + * del DMPolytopeType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMType) < 0) __PYX_ERR(53, 791, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":792 + * + * del DMType + * del DMBoundaryType # <<<<<<<<<<<<<< + * del DMPolytopeType + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMBoundaryType) < 0) __PYX_ERR(53, 792, __pyx_L1_error) + + /* "petsc4py/PETSc/DM.pyx":793 + * del DMType + * del DMBoundaryType + * del DMPolytopeType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMPolytopeType) < 0) __PYX_ERR(53, 793, __pyx_L1_error) + + /* "petsc4py/PETSc/DS.pyx":3 + * # -------------------------------------------------------------------- + * + * class DSType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCDSBASIC) + * + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__160); if (unlikely(!__pyx_t_6)) __PYX_ERR(54, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__160, __pyx_n_s_DSType, __pyx_n_s_DSType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(54, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DS.pyx":4 + * + * class DSType(object): + * BASIC = S_(PETSCDSBASIC) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCDSBASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(54, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(54, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DS.pyx":3 + * # -------------------------------------------------------------------- + * + * class DSType(object): # <<<<<<<<<<<<<< + * BASIC = S_(PETSCDSBASIC) + * + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DSType, __pyx_tuple__160, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(54, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DSType, __pyx_t_5) < 0) __PYX_ERR(54, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DS.pyx":10 + * cdef class DS(Object): + * + * Type = DSType # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DSType); if (unlikely(!__pyx_t_6)) __PYX_ERR(54, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DS->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(54, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DS); + + /* "petsc4py/PETSc/DS.pyx":104 + * # -------------------------------------------------------------------- + * + * del DSType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DSType) < 0) __PYX_ERR(54, 104, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMDAStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMDA_STENCIL_STAR + * BOX = DMDA_STENCIL_BOX + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__161); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__161, __pyx_n_s_DMDAStencilType, __pyx_n_s_DMDAStencilType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(55, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMDA.pyx":4 + * + * class DMDAStencilType(object): + * STAR = DMDA_STENCIL_STAR # <<<<<<<<<<<<<< + * BOX = DMDA_STENCIL_BOX + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAStencilType(DMDA_STENCIL_STAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STAR, __pyx_t_5) < 0) __PYX_ERR(55, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":5 + * class DMDAStencilType(object): + * STAR = DMDA_STENCIL_STAR + * BOX = DMDA_STENCIL_BOX # <<<<<<<<<<<<<< + * + * class DMDAInterpolationType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAStencilType(DMDA_STENCIL_BOX); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BOX, __pyx_t_5) < 0) __PYX_ERR(55, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMDAStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMDA_STENCIL_STAR + * BOX = DMDA_STENCIL_BOX + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMDAStencilType, __pyx_tuple__161, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMDAStencilType, __pyx_t_5) < 0) __PYX_ERR(55, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":7 + * BOX = DMDA_STENCIL_BOX + * + * class DMDAInterpolationType(object): # <<<<<<<<<<<<<< + * Q0 = DMDA_INTERPOLATION_Q0 + * Q1 = DMDA_INTERPOLATION_Q1 + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__162); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__162, __pyx_n_s_DMDAInterpolationType, __pyx_n_s_DMDAInterpolationType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(55, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMDA.pyx":8 + * + * class DMDAInterpolationType(object): + * Q0 = DMDA_INTERPOLATION_Q0 # <<<<<<<<<<<<<< + * Q1 = DMDA_INTERPOLATION_Q1 + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAInterpolationType(DMDA_Q0); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_Q0, __pyx_t_5) < 0) __PYX_ERR(55, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":9 + * class DMDAInterpolationType(object): + * Q0 = DMDA_INTERPOLATION_Q0 + * Q1 = DMDA_INTERPOLATION_Q1 # <<<<<<<<<<<<<< + * + * class DMDAElementType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAInterpolationType(DMDA_Q1); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_Q1, __pyx_t_5) < 0) __PYX_ERR(55, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":7 + * BOX = DMDA_STENCIL_BOX + * + * class DMDAInterpolationType(object): # <<<<<<<<<<<<<< + * Q0 = DMDA_INTERPOLATION_Q0 + * Q1 = DMDA_INTERPOLATION_Q1 + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMDAInterpolationType, __pyx_tuple__162, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMDAInterpolationType, __pyx_t_5) < 0) __PYX_ERR(55, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":11 + * Q1 = DMDA_INTERPOLATION_Q1 + * + * class DMDAElementType(object): # <<<<<<<<<<<<<< + * P1 = DMDA_ELEMENT_P1 + * Q1 = DMDA_ELEMENT_Q1 + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__163); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__163, __pyx_n_s_DMDAElementType, __pyx_n_s_DMDAElementType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(55, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMDA.pyx":12 + * + * class DMDAElementType(object): + * P1 = DMDA_ELEMENT_P1 # <<<<<<<<<<<<<< + * Q1 = DMDA_ELEMENT_Q1 + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAElementType(DMDA_ELEMENT_P1); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_P1, __pyx_t_5) < 0) __PYX_ERR(55, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":13 + * class DMDAElementType(object): + * P1 = DMDA_ELEMENT_P1 + * Q1 = DMDA_ELEMENT_Q1 # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_DMDAElementType(DMDA_ELEMENT_Q1); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_Q1, __pyx_t_5) < 0) __PYX_ERR(55, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":11 + * Q1 = DMDA_INTERPOLATION_Q1 + * + * class DMDAElementType(object): # <<<<<<<<<<<<<< + * P1 = DMDA_ELEMENT_P1 + * Q1 = DMDA_ELEMENT_Q1 + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMDAElementType, __pyx_tuple__163, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(55, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMDAElementType, __pyx_t_5) < 0) __PYX_ERR(55, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMDA.pyx":19 + * cdef class DMDA(DM): + * + * StencilType = DMDAStencilType # <<<<<<<<<<<<<< + * InterpolationType = DMDAInterpolationType + * ElementType = DMDAElementType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMDAStencilType); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA->tp_dict, __pyx_n_s_StencilType, __pyx_t_6) < 0) __PYX_ERR(55, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMDA); + + /* "petsc4py/PETSc/DMDA.pyx":20 + * + * StencilType = DMDAStencilType + * InterpolationType = DMDAInterpolationType # <<<<<<<<<<<<<< + * ElementType = DMDAElementType + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMDAInterpolationType); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA->tp_dict, __pyx_n_s_InterpolationType, __pyx_t_6) < 0) __PYX_ERR(55, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMDA); + + /* "petsc4py/PETSc/DMDA.pyx":21 + * StencilType = DMDAStencilType + * InterpolationType = DMDAInterpolationType + * ElementType = DMDAElementType # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMDAElementType); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA->tp_dict, __pyx_n_s_ElementType, __pyx_t_6) < 0) __PYX_ERR(55, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMDA); + + /* "petsc4py/PETSc/DMDA.pyx":514 + * + * # backward compatibility + * createNaturalVector = createNaturalVec # <<<<<<<<<<<<<< + * + * + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA, __pyx_n_s_createNaturalVec); if (unlikely(!__pyx_t_6)) __PYX_ERR(55, 514, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA->tp_dict, __pyx_n_s_createNaturalVector, __pyx_t_6) < 0) __PYX_ERR(55, 514, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMDA); + + /* "petsc4py/PETSc/DMDA.pyx":518 + * + * # backward compatibility alias + * DA = DMDA # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DA, ((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMDA)) < 0) __PYX_ERR(55, 518, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":522 + * # -------------------------------------------------------------------- + * + * del DMDAStencilType # <<<<<<<<<<<<<< + * del DMDAInterpolationType + * del DMDAElementType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMDAStencilType) < 0) __PYX_ERR(55, 522, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":523 + * + * del DMDAStencilType + * del DMDAInterpolationType # <<<<<<<<<<<<<< + * del DMDAElementType + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMDAInterpolationType) < 0) __PYX_ERR(55, 523, __pyx_L1_error) + + /* "petsc4py/PETSc/DMDA.pyx":524 + * del DMDAStencilType + * del DMDAInterpolationType + * del DMDAElementType # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMDAElementType) < 0) __PYX_ERR(55, 524, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMPlexReorderDefaultFlag(object): # <<<<<<<<<<<<<< + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__164); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__164, __pyx_n_s_DMPlexReorderDefaultFlag, __pyx_n_s_DMPlexReorderDefaultFlag, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(56, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMPlex.pyx":4 + * + * class DMPlexReorderDefaultFlag(object): + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET # <<<<<<<<<<<<<< + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE + * TRUE = DMPLEX_REORDER_DEFAULT_TRUE + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPlexReorderDefaultFlag(DMPLEX_REORDER_DEFAULT_NOTSET); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NOTSET, __pyx_t_5) < 0) __PYX_ERR(56, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":5 + * class DMPlexReorderDefaultFlag(object): + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE # <<<<<<<<<<<<<< + * TRUE = DMPLEX_REORDER_DEFAULT_TRUE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPlexReorderDefaultFlag(DMPLEX_REORDER_DEFAULT_FALSE); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FALSE, __pyx_t_5) < 0) __PYX_ERR(56, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":6 + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE + * TRUE = DMPLEX_REORDER_DEFAULT_TRUE # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_DMPlexReorderDefaultFlag(DMPLEX_REORDER_DEFAULT_TRUE); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRUE, __pyx_t_5) < 0) __PYX_ERR(56, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMPlexReorderDefaultFlag(object): # <<<<<<<<<<<<<< + * NOTSET = DMPLEX_REORDER_DEFAULT_NOTSET + * FALSE = DMPLEX_REORDER_DEFAULT_FALSE + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMPlexReorderDefaultFlag, __pyx_tuple__164, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMPlexReorderDefaultFlag, __pyx_t_5) < 0) __PYX_ERR(56, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":12 + * cdef class DMPlex(DM): + * + * ReorderDefaultFlag = DMPlexReorderDefaultFlag # <<<<<<<<<<<<<< + * + * # + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMPlexReorderDefaultFlag); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMPlex->tp_dict, __pyx_n_s_ReorderDefaultFlag, __pyx_t_6) < 0) __PYX_ERR(56, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMPlex); + + /* "petsc4py/PETSc/DMPlex.pyx":992 + * # -------------------------------------------------------------------- + * + * del DMPlexReorderDefaultFlag # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMPlexReorderDefaultFlag) < 0) __PYX_ERR(56, 992, __pyx_L1_error) + + /* "petsc4py/PETSc/DMPlex.pyx":995 + * + * # -------------------------------------------------------------------- + * class DMPlexTransformType(object): # <<<<<<<<<<<<<< + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__165); if (unlikely(!__pyx_t_6)) __PYX_ERR(56, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__165, __pyx_n_s_DMPlexTransformType, __pyx_n_s_DMPlexTransformType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(56, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMPlex.pyx":996 + * # -------------------------------------------------------------------- + * class DMPlexTransformType(object): + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) # <<<<<<<<<<<<<< + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + * REFINEPOWELLSABIN = S_(DMPLEXREFINEPOWELLSABIN) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINEREGULAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINEREGULAR, __pyx_t_5) < 0) __PYX_ERR(56, 996, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":997 + * class DMPlexTransformType(object): + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) + * REFINEALFELD = S_(DMPLEXREFINEALFELD) # <<<<<<<<<<<<<< + * REFINEPOWELLSABIN = S_(DMPLEXREFINEPOWELLSABIN) + * REFINEBOUNDARYLAYER = S_(DMPLEXREFINEBOUNDARYLAYER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINEALFELD); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINEALFELD, __pyx_t_5) < 0) __PYX_ERR(56, 997, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":998 + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + * REFINEPOWELLSABIN = S_(DMPLEXREFINEPOWELLSABIN) # <<<<<<<<<<<<<< + * REFINEBOUNDARYLAYER = S_(DMPLEXREFINEBOUNDARYLAYER) + * REFINESBR = S_(DMPLEXREFINESBR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINEPOWELLSABIN); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINEPOWELLSABIN, __pyx_t_5) < 0) __PYX_ERR(56, 998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":999 + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + * REFINEPOWELLSABIN = S_(DMPLEXREFINEPOWELLSABIN) + * REFINEBOUNDARYLAYER = S_(DMPLEXREFINEBOUNDARYLAYER) # <<<<<<<<<<<<<< + * REFINESBR = S_(DMPLEXREFINESBR) + * REFINETOBOX = S_(DMPLEXREFINETOBOX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINEBOUNDARYLAYER); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINEBOUNDARYLAYER, __pyx_t_5) < 0) __PYX_ERR(56, 999, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1000 + * REFINEPOWELLSABIN = S_(DMPLEXREFINEPOWELLSABIN) + * REFINEBOUNDARYLAYER = S_(DMPLEXREFINEBOUNDARYLAYER) + * REFINESBR = S_(DMPLEXREFINESBR) # <<<<<<<<<<<<<< + * REFINETOBOX = S_(DMPLEXREFINETOBOX) + * REFINETOSIMPLEX = S_(DMPLEXREFINETOSIMPLEX) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINESBR); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINESBR, __pyx_t_5) < 0) __PYX_ERR(56, 1000, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1001 + * REFINEBOUNDARYLAYER = S_(DMPLEXREFINEBOUNDARYLAYER) + * REFINESBR = S_(DMPLEXREFINESBR) + * REFINETOBOX = S_(DMPLEXREFINETOBOX) # <<<<<<<<<<<<<< + * REFINETOSIMPLEX = S_(DMPLEXREFINETOSIMPLEX) + * REFINE1D = S_(DMPLEXREFINE1D) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINETOBOX); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINETOBOX, __pyx_t_5) < 0) __PYX_ERR(56, 1001, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1002 + * REFINESBR = S_(DMPLEXREFINESBR) + * REFINETOBOX = S_(DMPLEXREFINETOBOX) + * REFINETOSIMPLEX = S_(DMPLEXREFINETOSIMPLEX) # <<<<<<<<<<<<<< + * REFINE1D = S_(DMPLEXREFINE1D) + * EXTRUDE = S_(DMPLEXEXTRUDE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINETOSIMPLEX); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1002, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINETOSIMPLEX, __pyx_t_5) < 0) __PYX_ERR(56, 1002, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1003 + * REFINETOBOX = S_(DMPLEXREFINETOBOX) + * REFINETOSIMPLEX = S_(DMPLEXREFINETOSIMPLEX) + * REFINE1D = S_(DMPLEXREFINE1D) # <<<<<<<<<<<<<< + * EXTRUDE = S_(DMPLEXEXTRUDE) + * TRANSFORMFILTER = S_(DMPLEXTRANSFORMFILTER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXREFINE1D); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINE1D, __pyx_t_5) < 0) __PYX_ERR(56, 1003, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1004 + * REFINETOSIMPLEX = S_(DMPLEXREFINETOSIMPLEX) + * REFINE1D = S_(DMPLEXREFINE1D) + * EXTRUDE = S_(DMPLEXEXTRUDE) # <<<<<<<<<<<<<< + * TRANSFORMFILTER = S_(DMPLEXTRANSFORMFILTER) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXEXTRUDE); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1004, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_EXTRUDE, __pyx_t_5) < 0) __PYX_ERR(56, 1004, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":1005 + * REFINE1D = S_(DMPLEXREFINE1D) + * EXTRUDE = S_(DMPLEXEXTRUDE) + * TRANSFORMFILTER = S_(DMPLEXTRANSFORMFILTER) # <<<<<<<<<<<<<< + * + * cdef class DMPlexTransform(Object): + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(DMPLEXTRANSFORMFILTER); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 1005, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TRANSFORMFILTER, __pyx_t_5) < 0) __PYX_ERR(56, 1005, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMPlex.pyx":995 + * + * # -------------------------------------------------------------------- + * class DMPlexTransformType(object): # <<<<<<<<<<<<<< + * REFINEREGULAR = S_(DMPLEXREFINEREGULAR) + * REFINEALFELD = S_(DMPLEXREFINEALFELD) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMPlexTransformType, __pyx_tuple__165, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(56, 995, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMPlexTransformType, __pyx_t_5) < 0) __PYX_ERR(56, 995, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMStagStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMSTAG_STENCIL_STAR + * BOX = DMSTAG_STENCIL_BOX + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__166); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__166, __pyx_n_s_DMStagStencilType, __pyx_n_s_DMStagStencilType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(57, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMStag.pyx":4 + * + * class DMStagStencilType(object): + * STAR = DMSTAG_STENCIL_STAR # <<<<<<<<<<<<<< + * BOX = DMSTAG_STENCIL_BOX + * NONE = DMSTAG_STENCIL_NONE + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilType(DMSTAG_STENCIL_STAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_STAR, __pyx_t_5) < 0) __PYX_ERR(57, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":5 + * class DMStagStencilType(object): + * STAR = DMSTAG_STENCIL_STAR + * BOX = DMSTAG_STENCIL_BOX # <<<<<<<<<<<<<< + * NONE = DMSTAG_STENCIL_NONE + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilType(DMSTAG_STENCIL_BOX); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BOX, __pyx_t_5) < 0) __PYX_ERR(57, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":6 + * STAR = DMSTAG_STENCIL_STAR + * BOX = DMSTAG_STENCIL_BOX + * NONE = DMSTAG_STENCIL_NONE # <<<<<<<<<<<<<< + * + * class DMStagStencilLocation(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilType(DMSTAG_STENCIL_NONE); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NONE, __pyx_t_5) < 0) __PYX_ERR(57, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMStagStencilType(object): # <<<<<<<<<<<<<< + * STAR = DMSTAG_STENCIL_STAR + * BOX = DMSTAG_STENCIL_BOX + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMStagStencilType, __pyx_tuple__166, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMStagStencilType, __pyx_t_5) < 0) __PYX_ERR(57, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":8 + * NONE = DMSTAG_STENCIL_NONE + * + * class DMStagStencilLocation(object): # <<<<<<<<<<<<<< + * NULLLOC = DMSTAG_NULL_LOCATION + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__167); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__167, __pyx_n_s_DMStagStencilLocation, __pyx_n_s_DMStagStencilLocation, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(57, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMStag.pyx":9 + * + * class DMStagStencilLocation(object): + * NULLLOC = DMSTAG_NULL_LOCATION # <<<<<<<<<<<<<< + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + * BACK_DOWN = DMSTAG_BACK_DOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_NULL_LOCATION); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_NULLLOC, __pyx_t_5) < 0) __PYX_ERR(57, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":10 + * class DMStagStencilLocation(object): + * NULLLOC = DMSTAG_NULL_LOCATION + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT # <<<<<<<<<<<<<< + * BACK_DOWN = DMSTAG_BACK_DOWN + * BACK_DOWN_RIGHT = DMSTAG_BACK_DOWN_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_DOWN_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_DOWN_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":11 + * NULLLOC = DMSTAG_NULL_LOCATION + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + * BACK_DOWN = DMSTAG_BACK_DOWN # <<<<<<<<<<<<<< + * BACK_DOWN_RIGHT = DMSTAG_BACK_DOWN_RIGHT + * BACK_LEFT = DMSTAG_BACK_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_DOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_DOWN, __pyx_t_5) < 0) __PYX_ERR(57, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":12 + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + * BACK_DOWN = DMSTAG_BACK_DOWN + * BACK_DOWN_RIGHT = DMSTAG_BACK_DOWN_RIGHT # <<<<<<<<<<<<<< + * BACK_LEFT = DMSTAG_BACK_LEFT + * BACK = DMSTAG_BACK + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_DOWN_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_DOWN_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":13 + * BACK_DOWN = DMSTAG_BACK_DOWN + * BACK_DOWN_RIGHT = DMSTAG_BACK_DOWN_RIGHT + * BACK_LEFT = DMSTAG_BACK_LEFT # <<<<<<<<<<<<<< + * BACK = DMSTAG_BACK + * BACK_RIGHT = DMSTAG_BACK_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":14 + * BACK_DOWN_RIGHT = DMSTAG_BACK_DOWN_RIGHT + * BACK_LEFT = DMSTAG_BACK_LEFT + * BACK = DMSTAG_BACK # <<<<<<<<<<<<<< + * BACK_RIGHT = DMSTAG_BACK_RIGHT + * BACK_UP_LEFT = DMSTAG_BACK_UP_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK, __pyx_t_5) < 0) __PYX_ERR(57, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":15 + * BACK_LEFT = DMSTAG_BACK_LEFT + * BACK = DMSTAG_BACK + * BACK_RIGHT = DMSTAG_BACK_RIGHT # <<<<<<<<<<<<<< + * BACK_UP_LEFT = DMSTAG_BACK_UP_LEFT + * BACK_UP = DMSTAG_BACK_UP + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":16 + * BACK = DMSTAG_BACK + * BACK_RIGHT = DMSTAG_BACK_RIGHT + * BACK_UP_LEFT = DMSTAG_BACK_UP_LEFT # <<<<<<<<<<<<<< + * BACK_UP = DMSTAG_BACK_UP + * BACK_UP_RIGHT = DMSTAG_BACK_UP_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_UP_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_UP_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":17 + * BACK_RIGHT = DMSTAG_BACK_RIGHT + * BACK_UP_LEFT = DMSTAG_BACK_UP_LEFT + * BACK_UP = DMSTAG_BACK_UP # <<<<<<<<<<<<<< + * BACK_UP_RIGHT = DMSTAG_BACK_UP_RIGHT + * DOWN_LEFT = DMSTAG_DOWN_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_UP); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_UP, __pyx_t_5) < 0) __PYX_ERR(57, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":18 + * BACK_UP_LEFT = DMSTAG_BACK_UP_LEFT + * BACK_UP = DMSTAG_BACK_UP + * BACK_UP_RIGHT = DMSTAG_BACK_UP_RIGHT # <<<<<<<<<<<<<< + * DOWN_LEFT = DMSTAG_DOWN_LEFT + * DOWN = DMSTAG_DOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_BACK_UP_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 18, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BACK_UP_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 18, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":19 + * BACK_UP = DMSTAG_BACK_UP + * BACK_UP_RIGHT = DMSTAG_BACK_UP_RIGHT + * DOWN_LEFT = DMSTAG_DOWN_LEFT # <<<<<<<<<<<<<< + * DOWN = DMSTAG_DOWN + * DOWN_RIGHT = DMSTAG_DOWN_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_DOWN_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DOWN_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":20 + * BACK_UP_RIGHT = DMSTAG_BACK_UP_RIGHT + * DOWN_LEFT = DMSTAG_DOWN_LEFT + * DOWN = DMSTAG_DOWN # <<<<<<<<<<<<<< + * DOWN_RIGHT = DMSTAG_DOWN_RIGHT + * LEFT = DMSTAG_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_DOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DOWN, __pyx_t_5) < 0) __PYX_ERR(57, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":21 + * DOWN_LEFT = DMSTAG_DOWN_LEFT + * DOWN = DMSTAG_DOWN + * DOWN_RIGHT = DMSTAG_DOWN_RIGHT # <<<<<<<<<<<<<< + * LEFT = DMSTAG_LEFT + * ELEMENT = DMSTAG_ELEMENT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_DOWN_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_DOWN_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":22 + * DOWN = DMSTAG_DOWN + * DOWN_RIGHT = DMSTAG_DOWN_RIGHT + * LEFT = DMSTAG_LEFT # <<<<<<<<<<<<<< + * ELEMENT = DMSTAG_ELEMENT + * RIGHT = DMSTAG_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":23 + * DOWN_RIGHT = DMSTAG_DOWN_RIGHT + * LEFT = DMSTAG_LEFT + * ELEMENT = DMSTAG_ELEMENT # <<<<<<<<<<<<<< + * RIGHT = DMSTAG_RIGHT + * UP_LEFT = DMSTAG_UP_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_ELEMENT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 23, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_ELEMENT, __pyx_t_5) < 0) __PYX_ERR(57, 23, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":24 + * LEFT = DMSTAG_LEFT + * ELEMENT = DMSTAG_ELEMENT + * RIGHT = DMSTAG_RIGHT # <<<<<<<<<<<<<< + * UP_LEFT = DMSTAG_UP_LEFT + * UP = DMSTAG_UP + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 24, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":25 + * ELEMENT = DMSTAG_ELEMENT + * RIGHT = DMSTAG_RIGHT + * UP_LEFT = DMSTAG_UP_LEFT # <<<<<<<<<<<<<< + * UP = DMSTAG_UP + * UP_RIGHT = DMSTAG_UP_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_UP_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UP_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":26 + * RIGHT = DMSTAG_RIGHT + * UP_LEFT = DMSTAG_UP_LEFT + * UP = DMSTAG_UP # <<<<<<<<<<<<<< + * UP_RIGHT = DMSTAG_UP_RIGHT + * FRONT_DOWN_LEFT = DMSTAG_FRONT_DOWN_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_UP); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 26, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UP, __pyx_t_5) < 0) __PYX_ERR(57, 26, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":27 + * UP_LEFT = DMSTAG_UP_LEFT + * UP = DMSTAG_UP + * UP_RIGHT = DMSTAG_UP_RIGHT # <<<<<<<<<<<<<< + * FRONT_DOWN_LEFT = DMSTAG_FRONT_DOWN_LEFT + * FRONT_DOWN = DMSTAG_FRONT_DOWN + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_UP_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_UP_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":28 + * UP = DMSTAG_UP + * UP_RIGHT = DMSTAG_UP_RIGHT + * FRONT_DOWN_LEFT = DMSTAG_FRONT_DOWN_LEFT # <<<<<<<<<<<<<< + * FRONT_DOWN = DMSTAG_FRONT_DOWN + * FRONT_DOWN_RIGHT = DMSTAG_FRONT_DOWN_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_DOWN_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_DOWN_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":29 + * UP_RIGHT = DMSTAG_UP_RIGHT + * FRONT_DOWN_LEFT = DMSTAG_FRONT_DOWN_LEFT + * FRONT_DOWN = DMSTAG_FRONT_DOWN # <<<<<<<<<<<<<< + * FRONT_DOWN_RIGHT = DMSTAG_FRONT_DOWN_RIGHT + * FRONT_LEFT = DMSTAG_FRONT_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_DOWN); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_DOWN, __pyx_t_5) < 0) __PYX_ERR(57, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":30 + * FRONT_DOWN_LEFT = DMSTAG_FRONT_DOWN_LEFT + * FRONT_DOWN = DMSTAG_FRONT_DOWN + * FRONT_DOWN_RIGHT = DMSTAG_FRONT_DOWN_RIGHT # <<<<<<<<<<<<<< + * FRONT_LEFT = DMSTAG_FRONT_LEFT + * FRONT = DMSTAG_FRONT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_DOWN_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_DOWN_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":31 + * FRONT_DOWN = DMSTAG_FRONT_DOWN + * FRONT_DOWN_RIGHT = DMSTAG_FRONT_DOWN_RIGHT + * FRONT_LEFT = DMSTAG_FRONT_LEFT # <<<<<<<<<<<<<< + * FRONT = DMSTAG_FRONT + * FRONT_RIGHT = DMSTAG_FRONT_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 31, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 31, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":32 + * FRONT_DOWN_RIGHT = DMSTAG_FRONT_DOWN_RIGHT + * FRONT_LEFT = DMSTAG_FRONT_LEFT + * FRONT = DMSTAG_FRONT # <<<<<<<<<<<<<< + * FRONT_RIGHT = DMSTAG_FRONT_RIGHT + * FRONT_UP_LEFT = DMSTAG_FRONT_UP_LEFT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 32, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT, __pyx_t_5) < 0) __PYX_ERR(57, 32, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":33 + * FRONT_LEFT = DMSTAG_FRONT_LEFT + * FRONT = DMSTAG_FRONT + * FRONT_RIGHT = DMSTAG_FRONT_RIGHT # <<<<<<<<<<<<<< + * FRONT_UP_LEFT = DMSTAG_FRONT_UP_LEFT + * FRONT_UP = DMSTAG_FRONT_UP + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 33, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":34 + * FRONT = DMSTAG_FRONT + * FRONT_RIGHT = DMSTAG_FRONT_RIGHT + * FRONT_UP_LEFT = DMSTAG_FRONT_UP_LEFT # <<<<<<<<<<<<<< + * FRONT_UP = DMSTAG_FRONT_UP + * FRONT_UP_RIGHT = DMSTAG_FRONT_UP_RIGHT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_UP_LEFT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_UP_LEFT, __pyx_t_5) < 0) __PYX_ERR(57, 34, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":35 + * FRONT_RIGHT = DMSTAG_FRONT_RIGHT + * FRONT_UP_LEFT = DMSTAG_FRONT_UP_LEFT + * FRONT_UP = DMSTAG_FRONT_UP # <<<<<<<<<<<<<< + * FRONT_UP_RIGHT = DMSTAG_FRONT_UP_RIGHT + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_UP); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 35, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_UP, __pyx_t_5) < 0) __PYX_ERR(57, 35, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":36 + * FRONT_UP_LEFT = DMSTAG_FRONT_UP_LEFT + * FRONT_UP = DMSTAG_FRONT_UP + * FRONT_UP_RIGHT = DMSTAG_FRONT_UP_RIGHT # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __Pyx_PyInt_From_DMStagStencilLocation(DMSTAG_FRONT_UP_RIGHT); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_FRONT_UP_RIGHT, __pyx_t_5) < 0) __PYX_ERR(57, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":8 + * NONE = DMSTAG_STENCIL_NONE + * + * class DMStagStencilLocation(object): # <<<<<<<<<<<<<< + * NULLLOC = DMSTAG_NULL_LOCATION + * BACK_DOWN_LEFT = DMSTAG_BACK_DOWN_LEFT + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMStagStencilLocation, __pyx_tuple__167, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(57, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMStagStencilLocation, __pyx_t_5) < 0) __PYX_ERR(57, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMStag.pyx":42 + * cdef class DMStag(DM): + * + * StencilType = DMStagStencilType # <<<<<<<<<<<<<< + * StencilLocation = DMStagStencilLocation + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMStagStencilType); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 42, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMStag->tp_dict, __pyx_n_s_StencilType, __pyx_t_6) < 0) __PYX_ERR(57, 42, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMStag); + + /* "petsc4py/PETSc/DMStag.pyx":43 + * + * StencilType = DMStagStencilType + * StencilLocation = DMStagStencilLocation # <<<<<<<<<<<<<< + * + * def create(self, dim, dofs=None, sizes=None, boundary_types=None, stencil_type=None, stencil_width=None, proc_sizes=None, ownership_ranges=None, comm=None, setUp=False): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMStagStencilLocation); if (unlikely(!__pyx_t_6)) __PYX_ERR(57, 43, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMStag->tp_dict, __pyx_n_s_StencilLocation, __pyx_t_6) < 0) __PYX_ERR(57, 43, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMStag); + + /* "petsc4py/PETSc/DMStag.pyx":363 + * # -------------------------------------------------------------------- + * + * del DMStagStencilType # <<<<<<<<<<<<<< + * del DMStagStencilLocation + * + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMStagStencilType) < 0) __PYX_ERR(57, 363, __pyx_L1_error) + + /* "petsc4py/PETSc/DMStag.pyx":364 + * + * del DMStagStencilType + * del DMStagStencilLocation # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMStagStencilLocation) < 0) __PYX_ERR(57, 364, __pyx_L1_error) + + /* "petsc4py/PETSc/DMComposite.pyx":25 + * CHKERR( DMCompositeGetNumberDM(self.dm, &n) ) + * return toInt(n) + * getNumberDM = getNumber # <<<<<<<<<<<<<< + * + * def getEntries(self): + */ + __Pyx_GetNameInClass(__pyx_t_6, (PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMComposite, __pyx_n_s_getNumber); if (unlikely(!__pyx_t_6)) __PYX_ERR(58, 25, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMComposite->tp_dict, __pyx_n_s_getNumberDM, __pyx_t_6) < 0) __PYX_ERR(58, 25, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMComposite); + + /* "petsc4py/PETSc/DMSwarm.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMSwarmType(object): # <<<<<<<<<<<<<< + * BASIC = DMSWARM_BASIC + * PIC = DMSWARM_PIC + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__168); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__168, __pyx_n_s_DMSwarmType, __pyx_n_s_DMSwarmType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(61, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMSwarm.pyx":4 + * + * class DMSwarmType(object): + * BASIC = DMSWARM_BASIC # <<<<<<<<<<<<<< + * PIC = DMSWARM_PIC + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmType(DMSWARM_BASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BASIC, __pyx_t_5) < 0) __PYX_ERR(61, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":5 + * class DMSwarmType(object): + * BASIC = DMSWARM_BASIC + * PIC = DMSWARM_PIC # <<<<<<<<<<<<<< + * + * class DMSwarmMigrateType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmType(DMSWARM_PIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PIC, __pyx_t_5) < 0) __PYX_ERR(61, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":3 + * # -------------------------------------------------------------------- + * + * class DMSwarmType(object): # <<<<<<<<<<<<<< + * BASIC = DMSWARM_BASIC + * PIC = DMSWARM_PIC + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMSwarmType, __pyx_tuple__168, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMSwarmType, __pyx_t_5) < 0) __PYX_ERR(61, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":7 + * PIC = DMSWARM_PIC + * + * class DMSwarmMigrateType(object): # <<<<<<<<<<<<<< + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__169); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__169, __pyx_n_s_DMSwarmMigrateType, __pyx_n_s_DMSwarmMigrateType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(61, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMSwarm.pyx":8 + * + * class DMSwarmMigrateType(object): + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC # <<<<<<<<<<<<<< + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + * MIGRATE_DMCELLEXACT = DMSWARM_MIGRATE_DMCELLEXACT + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmMigrateType(DMSWARM_MIGRATE_BASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIGRATE_BASIC, __pyx_t_5) < 0) __PYX_ERR(61, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":9 + * class DMSwarmMigrateType(object): + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER # <<<<<<<<<<<<<< + * MIGRATE_DMCELLEXACT = DMSWARM_MIGRATE_DMCELLEXACT + * MIGRATE_USER = DMSWARM_MIGRATE_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmMigrateType(DMSWARM_MIGRATE_DMCELLNSCATTER); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIGRATE_DMCELLNSCATTER, __pyx_t_5) < 0) __PYX_ERR(61, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":10 + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + * MIGRATE_DMCELLEXACT = DMSWARM_MIGRATE_DMCELLEXACT # <<<<<<<<<<<<<< + * MIGRATE_USER = DMSWARM_MIGRATE_USER + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmMigrateType(DMSWARM_MIGRATE_DMCELLEXACT); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIGRATE_DMCELLEXACT, __pyx_t_5) < 0) __PYX_ERR(61, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":11 + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + * MIGRATE_DMCELLEXACT = DMSWARM_MIGRATE_DMCELLEXACT + * MIGRATE_USER = DMSWARM_MIGRATE_USER # <<<<<<<<<<<<<< + * + * class DMSwarmCollectType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmMigrateType(DMSWARM_MIGRATE_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MIGRATE_USER, __pyx_t_5) < 0) __PYX_ERR(61, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":7 + * PIC = DMSWARM_PIC + * + * class DMSwarmMigrateType(object): # <<<<<<<<<<<<<< + * MIGRATE_BASIC = DMSWARM_MIGRATE_BASIC + * MIGRATE_DMCELLNSCATTER = DMSWARM_MIGRATE_DMCELLNSCATTER + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMSwarmMigrateType, __pyx_tuple__169, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMSwarmMigrateType, __pyx_t_5) < 0) __PYX_ERR(61, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":13 + * MIGRATE_USER = DMSWARM_MIGRATE_USER + * + * class DMSwarmCollectType(object): # <<<<<<<<<<<<<< + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__170); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__170, __pyx_n_s_DMSwarmCollectType, __pyx_n_s_DMSwarmCollectType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(61, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMSwarm.pyx":14 + * + * class DMSwarmCollectType(object): + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC # <<<<<<<<<<<<<< + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + * COLLECT_GENERAL = DMSWARM_COLLECT_GENERAL + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmCollectType(DMSWARM_COLLECT_BASIC); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 14, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COLLECT_BASIC, __pyx_t_5) < 0) __PYX_ERR(61, 14, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":15 + * class DMSwarmCollectType(object): + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX # <<<<<<<<<<<<<< + * COLLECT_GENERAL = DMSWARM_COLLECT_GENERAL + * COLLECT_USER = DMSWARM_COLLECT_USER + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmCollectType(DMSWARM_COLLECT_DMDABOUNDINGBOX); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 15, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COLLECT_DMDABOUNDINGBOX, __pyx_t_5) < 0) __PYX_ERR(61, 15, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":16 + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + * COLLECT_GENERAL = DMSWARM_COLLECT_GENERAL # <<<<<<<<<<<<<< + * COLLECT_USER = DMSWARM_COLLECT_USER + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmCollectType(DMSWARM_COLLECT_GENERAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COLLECT_GENERAL, __pyx_t_5) < 0) __PYX_ERR(61, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":17 + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + * COLLECT_GENERAL = DMSWARM_COLLECT_GENERAL + * COLLECT_USER = DMSWARM_COLLECT_USER # <<<<<<<<<<<<<< + * + * class DMSwarmPICLayoutType(object): + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmCollectType(DMSWARM_COLLECT_USER); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 17, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_COLLECT_USER, __pyx_t_5) < 0) __PYX_ERR(61, 17, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":13 + * MIGRATE_USER = DMSWARM_MIGRATE_USER + * + * class DMSwarmCollectType(object): # <<<<<<<<<<<<<< + * COLLECT_BASIC = DMSWARM_COLLECT_BASIC + * COLLECT_DMDABOUNDINGBOX = DMSWARM_COLLECT_DMDABOUNDINGBOX + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMSwarmCollectType, __pyx_tuple__170, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 13, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMSwarmCollectType, __pyx_t_5) < 0) __PYX_ERR(61, 13, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":19 + * COLLECT_USER = DMSWARM_COLLECT_USER + * + * class DMSwarmPICLayoutType(object): # <<<<<<<<<<<<<< + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__171); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__171, __pyx_n_s_DMSwarmPICLayoutType, __pyx_n_s_DMSwarmPICLayoutType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(61, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/DMSwarm.pyx":20 + * + * class DMSwarmPICLayoutType(object): + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR # <<<<<<<<<<<<<< + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS + * LAYOUT_SUBDIVISION = DMSWARMPIC_LAYOUT_SUBDIVISION + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmPICLayoutType(DMSWARMPIC_LAYOUT_REGULAR); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 20, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LAYOUT_REGULAR, __pyx_t_5) < 0) __PYX_ERR(61, 20, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":21 + * class DMSwarmPICLayoutType(object): + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS # <<<<<<<<<<<<<< + * LAYOUT_SUBDIVISION = DMSWARMPIC_LAYOUT_SUBDIVISION + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmPICLayoutType(DMSWARMPIC_LAYOUT_GAUSS); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LAYOUT_GAUSS, __pyx_t_5) < 0) __PYX_ERR(61, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":22 + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS + * LAYOUT_SUBDIVISION = DMSWARMPIC_LAYOUT_SUBDIVISION # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_5 = __Pyx_PyInt_From_DMSwarmPICLayoutType(DMSWARMPIC_LAYOUT_SUBDIVISION); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LAYOUT_SUBDIVISION, __pyx_t_5) < 0) __PYX_ERR(61, 22, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":19 + * COLLECT_USER = DMSWARM_COLLECT_USER + * + * class DMSwarmPICLayoutType(object): # <<<<<<<<<<<<<< + * LAYOUT_REGULAR = DMSWARMPIC_LAYOUT_REGULAR + * LAYOUT_GAUSS = DMSWARMPIC_LAYOUT_GAUSS + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DMSwarmPICLayoutType, __pyx_tuple__171, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(61, 19, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DMSwarmPICLayoutType, __pyx_t_5) < 0) __PYX_ERR(61, 19, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":27 + * cdef class DMSwarm(DM): + * + * Type = DMSwarmType # <<<<<<<<<<<<<< + * MigrateType = DMSwarmMigrateType + * CollectType = DMSwarmCollectType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMSwarmType); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMSwarm->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(61, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMSwarm); + + /* "petsc4py/PETSc/DMSwarm.pyx":28 + * + * Type = DMSwarmType + * MigrateType = DMSwarmMigrateType # <<<<<<<<<<<<<< + * CollectType = DMSwarmCollectType + * PICLayoutType = DMSwarmPICLayoutType + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMSwarmMigrateType); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMSwarm->tp_dict, __pyx_n_s_MigrateType, __pyx_t_6) < 0) __PYX_ERR(61, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMSwarm); + + /* "petsc4py/PETSc/DMSwarm.pyx":29 + * Type = DMSwarmType + * MigrateType = DMSwarmMigrateType + * CollectType = DMSwarmCollectType # <<<<<<<<<<<<<< + * PICLayoutType = DMSwarmPICLayoutType + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMSwarmCollectType); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 29, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMSwarm->tp_dict, __pyx_n_s_CollectType, __pyx_t_6) < 0) __PYX_ERR(61, 29, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMSwarm); + + /* "petsc4py/PETSc/DMSwarm.pyx":30 + * MigrateType = DMSwarmMigrateType + * CollectType = DMSwarmCollectType + * PICLayoutType = DMSwarmPICLayoutType # <<<<<<<<<<<<<< + * + * def create(self, comm=None): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DMSwarmPICLayoutType); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 30, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DMSwarm->tp_dict, __pyx_n_s_PICLayoutType, __pyx_t_6) < 0) __PYX_ERR(61, 30, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DMSwarm); + + /* "petsc4py/PETSc/DMSwarm.pyx":78 + * return self + * + * def registerField(self, fieldname, blocksize, dtype=ScalarType): # <<<<<<<<<<<<<< + * cdef const char *cfieldname = NULL + * cdef PetscInt cblocksize = asInt(blocksize) + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ScalarType); if (unlikely(!__pyx_t_6)) __PYX_ERR(61, 78, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_k__55 = __pyx_t_6; + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/DMSwarm.pyx":288 + * + * + * del DMSwarmType # <<<<<<<<<<<<<< + * del DMSwarmMigrateType + * del DMSwarmCollectType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMSwarmType) < 0) __PYX_ERR(61, 288, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":289 + * + * del DMSwarmType + * del DMSwarmMigrateType # <<<<<<<<<<<<<< + * del DMSwarmCollectType + * del DMSwarmPICLayoutType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMSwarmMigrateType) < 0) __PYX_ERR(61, 289, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":290 + * del DMSwarmType + * del DMSwarmMigrateType + * del DMSwarmCollectType # <<<<<<<<<<<<<< + * del DMSwarmPICLayoutType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMSwarmCollectType) < 0) __PYX_ERR(61, 290, __pyx_L1_error) + + /* "petsc4py/PETSc/DMSwarm.pyx":291 + * del DMSwarmMigrateType + * del DMSwarmCollectType + * del DMSwarmPICLayoutType # <<<<<<<<<<<<<< + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DMSwarmPICLayoutType) < 0) __PYX_ERR(61, 291, __pyx_L1_error) + + /* "petsc4py/PETSc/Partitioner.pyx":3 + * # -------------------------------------------------------------------- + * + * class PartitionerType(object): # <<<<<<<<<<<<<< + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__172); if (unlikely(!__pyx_t_6)) __PYX_ERR(62, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__172, __pyx_n_s_PartitionerType, __pyx_n_s_PartitionerType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(62, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Partitioner.pyx":4 + * + * class PartitionerType(object): + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) # <<<<<<<<<<<<<< + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + * CHACO = S_(PETSCPARTITIONERCHACO) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERPARMETIS); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PARMETIS, __pyx_t_5) < 0) __PYX_ERR(62, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":5 + * class PartitionerType(object): + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) # <<<<<<<<<<<<<< + * CHACO = S_(PETSCPARTITIONERCHACO) + * SIMPLE = S_(PETSCPARTITIONERSIMPLE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERPTSCOTCH); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PTSCOTCH, __pyx_t_5) < 0) __PYX_ERR(62, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":6 + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + * CHACO = S_(PETSCPARTITIONERCHACO) # <<<<<<<<<<<<<< + * SIMPLE = S_(PETSCPARTITIONERSIMPLE) + * SHELL = S_(PETSCPARTITIONERSHELL) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERCHACO); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_CHACO, __pyx_t_5) < 0) __PYX_ERR(62, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":7 + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + * CHACO = S_(PETSCPARTITIONERCHACO) + * SIMPLE = S_(PETSCPARTITIONERSIMPLE) # <<<<<<<<<<<<<< + * SHELL = S_(PETSCPARTITIONERSHELL) + * GATHER = S_(PETSCPARTITIONERGATHER) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERSIMPLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SIMPLE, __pyx_t_5) < 0) __PYX_ERR(62, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":8 + * CHACO = S_(PETSCPARTITIONERCHACO) + * SIMPLE = S_(PETSCPARTITIONERSIMPLE) + * SHELL = S_(PETSCPARTITIONERSHELL) # <<<<<<<<<<<<<< + * GATHER = S_(PETSCPARTITIONERGATHER) + * MATPARTITIONING = S_(PETSCPARTITIONERMATPARTITIONING) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERSHELL); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SHELL, __pyx_t_5) < 0) __PYX_ERR(62, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":9 + * SIMPLE = S_(PETSCPARTITIONERSIMPLE) + * SHELL = S_(PETSCPARTITIONERSHELL) + * GATHER = S_(PETSCPARTITIONERGATHER) # <<<<<<<<<<<<<< + * MATPARTITIONING = S_(PETSCPARTITIONERMATPARTITIONING) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERGATHER); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_GATHER, __pyx_t_5) < 0) __PYX_ERR(62, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":10 + * SHELL = S_(PETSCPARTITIONERSHELL) + * GATHER = S_(PETSCPARTITIONERGATHER) + * MATPARTITIONING = S_(PETSCPARTITIONERMATPARTITIONING) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCPARTITIONERMATPARTITIONING); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_MATPARTITIONING, __pyx_t_5) < 0) __PYX_ERR(62, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":3 + * # -------------------------------------------------------------------- + * + * class PartitionerType(object): # <<<<<<<<<<<<<< + * PARMETIS = S_(PETSCPARTITIONERPARMETIS) + * PTSCOTCH = S_(PETSCPARTITIONERPTSCOTCH) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_PartitionerType, __pyx_tuple__172, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(62, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PartitionerType, __pyx_t_5) < 0) __PYX_ERR(62, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Partitioner.pyx":16 + * cdef class Partitioner(Object): + * + * Type = PartitionerType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_PartitionerType); if (unlikely(!__pyx_t_6)) __PYX_ERR(62, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Partitioner->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(62, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Partitioner); + + /* "petsc4py/PETSc/Space.pyx":3 + * # -------------------------------------------------------------------- + * + * class SpaceType(object): # <<<<<<<<<<<<<< + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__173); if (unlikely(!__pyx_t_6)) __PYX_ERR(63, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__173, __pyx_n_s_SpaceType, __pyx_n_s_SpaceType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(63, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Space.pyx":4 + * + * class SpaceType(object): + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) # <<<<<<<<<<<<<< + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + * TENSOR = S_(PETSCSPACETENSOR) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACEPOLYNOMIAL); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_POLYNOMIAL, __pyx_t_5) < 0) __PYX_ERR(63, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":5 + * class SpaceType(object): + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) + * PTRIMMED = S_(PETSCSPACEPTRIMMED) # <<<<<<<<<<<<<< + * TENSOR = S_(PETSCSPACETENSOR) + * SUM = S_(PETSCSPACESUM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACEPTRIMMED); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_PTRIMMED, __pyx_t_5) < 0) __PYX_ERR(63, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":6 + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + * TENSOR = S_(PETSCSPACETENSOR) # <<<<<<<<<<<<<< + * SUM = S_(PETSCSPACESUM) + * POINT = S_(PETSCSPACEPOINT) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACETENSOR); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_TENSOR, __pyx_t_5) < 0) __PYX_ERR(63, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":7 + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + * TENSOR = S_(PETSCSPACETENSOR) + * SUM = S_(PETSCSPACESUM) # <<<<<<<<<<<<<< + * POINT = S_(PETSCSPACEPOINT) + * SUBSPACE = S_(PETSCSPACESUBSPACE) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACESUM); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUM, __pyx_t_5) < 0) __PYX_ERR(63, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":8 + * TENSOR = S_(PETSCSPACETENSOR) + * SUM = S_(PETSCSPACESUM) + * POINT = S_(PETSCSPACEPOINT) # <<<<<<<<<<<<<< + * SUBSPACE = S_(PETSCSPACESUBSPACE) + * WXY = S_(PETSCSPACEWXY) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACEPOINT); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 8, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_POINT, __pyx_t_5) < 0) __PYX_ERR(63, 8, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":9 + * SUM = S_(PETSCSPACESUM) + * POINT = S_(PETSCSPACEPOINT) + * SUBSPACE = S_(PETSCSPACESUBSPACE) # <<<<<<<<<<<<<< + * WXY = S_(PETSCSPACEWXY) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACESUBSPACE); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SUBSPACE, __pyx_t_5) < 0) __PYX_ERR(63, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":10 + * POINT = S_(PETSCSPACEPOINT) + * SUBSPACE = S_(PETSCSPACESUBSPACE) + * WXY = S_(PETSCSPACEWXY) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCSPACEWXY); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 10, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_WXY, __pyx_t_5) < 0) __PYX_ERR(63, 10, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":3 + * # -------------------------------------------------------------------- + * + * class SpaceType(object): # <<<<<<<<<<<<<< + * POLYNOMIAL = S_(PETSCSPACEPOLYNOMIAL) + * PTRIMMED = S_(PETSCSPACEPTRIMMED) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_SpaceType, __pyx_tuple__173, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 3, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SpaceType, __pyx_t_5) < 0) __PYX_ERR(63, 3, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Space.pyx":16 + * cdef class Space(Object): + * + * Type = SpaceType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_SpaceType); if (unlikely(!__pyx_t_6)) __PYX_ERR(63, 16, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_Space->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(63, 16, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_Space); + + /* "petsc4py/PETSc/Space.pyx":184 + * # -------------------------------------------------------------------- + * + * class DualSpaceType(object): # <<<<<<<<<<<<<< + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + */ + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_tuple__174); if (unlikely(!__pyx_t_6)) __PYX_ERR(63, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_8 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_tuple__174, __pyx_n_s_DualSpaceType, __pyx_n_s_DualSpaceType, (PyObject *) NULL, __pyx_n_s_petsc4py_PETSc, (PyObject *) NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(63, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + + /* "petsc4py/PETSc/Space.pyx":185 + * + * class DualSpaceType(object): + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) # <<<<<<<<<<<<<< + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + * REFINED = S_(PETSCDUALSPACEREFINED) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCDUALSPACELAGRANGE); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_LAGRANGE, __pyx_t_5) < 0) __PYX_ERR(63, 185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":186 + * class DualSpaceType(object): + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) + * SIMPLE = S_(PETSCDUALSPACESIMPLE) # <<<<<<<<<<<<<< + * REFINED = S_(PETSCDUALSPACEREFINED) + * BDM = S_(PETSCDUALSPACEBDM) + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCDUALSPACESIMPLE); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_SIMPLE, __pyx_t_5) < 0) __PYX_ERR(63, 186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":187 + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + * REFINED = S_(PETSCDUALSPACEREFINED) # <<<<<<<<<<<<<< + * BDM = S_(PETSCDUALSPACEBDM) + * + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCDUALSPACEREFINED); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_REFINED, __pyx_t_5) < 0) __PYX_ERR(63, 187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":188 + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + * REFINED = S_(PETSCDUALSPACEREFINED) + * BDM = S_(PETSCDUALSPACEBDM) # <<<<<<<<<<<<<< + * + * # -------------------------------------------------------------------- + */ + __pyx_t_5 = __pyx_f_8petsc4py_5PETSc_S_(PETSCDUALSPACEBDM); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 188, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_8, __pyx_n_s_BDM, __pyx_t_5) < 0) __PYX_ERR(63, 188, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "petsc4py/PETSc/Space.pyx":184 + * # -------------------------------------------------------------------- + * + * class DualSpaceType(object): # <<<<<<<<<<<<<< + * LAGRANGE = S_(PETSCDUALSPACELAGRANGE) + * SIMPLE = S_(PETSCDUALSPACESIMPLE) + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_DualSpaceType, __pyx_tuple__174, __pyx_t_8, NULL, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(63, 184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DualSpaceType, __pyx_t_5) < 0) __PYX_ERR(63, 184, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/Space.pyx":194 + * cdef class DualSpace(Object): + * + * Type = DualSpaceType # <<<<<<<<<<<<<< + * + * def __cinit__(self): + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_DualSpaceType); if (unlikely(!__pyx_t_6)) __PYX_ERR(63, 194, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_ptype_8petsc4py_5PETSc_DualSpace->tp_dict, __pyx_n_s_Type, __pyx_t_6) < 0) __PYX_ERR(63, 194, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_ptype_8petsc4py_5PETSc_DualSpace); + + /* "petsc4py/PETSc/Space.pyx":325 + * CHKERR( PetscDualSpaceSimpleSetFunctional(self.dualspace, cfunc, functional.quad) ) + * + * del SpaceType # <<<<<<<<<<<<<< + * del DualSpaceType + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_SpaceType) < 0) __PYX_ERR(63, 325, __pyx_L1_error) + + /* "petsc4py/PETSc/Space.pyx":326 + * + * del SpaceType + * del DualSpaceType # <<<<<<<<<<<<<< + */ + if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_DualSpaceType) < 0) __PYX_ERR(63, 326, __pyx_L1_error) + + /* "petsc4py/PETSc/libpetsc4py.pyx":32 + * # -------------------------------------------------------------------- + * + * cdef char *FUNCT = NULL # <<<<<<<<<<<<<< + * cdef char *fstack[1024] + * cdef int istack = 0 + */ + __pyx_v_8petsc4py_5PETSc_FUNCT = NULL; + + /* "petsc4py/PETSc/libpetsc4py.pyx":34 + * cdef char *FUNCT = NULL + * cdef char *fstack[1024] + * cdef int istack = 0 # <<<<<<<<<<<<<< + * + * cdef inline void FunctionBegin(char name[]) nogil: + */ + __pyx_v_8petsc4py_5PETSc_istack = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":151 + * return (path, name) + * + * cdef dict module_cache = {} # <<<<<<<<<<<<<< + * + * cdef object load_module(object path): + */ + __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 151, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_module_cache); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_module_cache, ((PyObject*)__pyx_t_6)); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":377 + * return FunctionEnd() + * + * cdef dict dMatOps = { 3 : 'mult', # <<<<<<<<<<<<<< + * 4 : 'multAdd', + * 5 : 'multTranspose', + */ + __pyx_t_6 = __Pyx_PyDict_NewPresized(29); if (unlikely(!__pyx_t_6)) __PYX_ERR(11, 377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_t_6, __pyx_int_3, __pyx_n_s_mult) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_4, __pyx_n_s_multAdd) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_5, __pyx_n_s_multTranspose) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_6, __pyx_n_s_multTransposeAdd) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_7, __pyx_n_s_solve) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_8, __pyx_n_s_solveAdd) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_9, __pyx_n_s_solveTranspose) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_10, __pyx_n_s_solveTransposeAdd) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_13, __pyx_n_s_SOR) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_17, __pyx_n_s_getDiagonal) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_18, __pyx_n_s_diagonalScale) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_19, __pyx_n_s_norm) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_23, __pyx_n_s_zeroEntries) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_32, __pyx_n_s_getDiagonalBlock) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_34, __pyx_n_s_duplicate) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_43, __pyx_n_s_copy) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_45, __pyx_n_s_scale) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_46, __pyx_n_s_shift) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_47, __pyx_n_s_setDiagonal) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_48, __pyx_n_s_zeroRowsColumns) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_59, __pyx_n_s_createSubMatrix) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_88, __pyx_n_s_getVecs) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_102, __pyx_n_s_conjugate) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_105, __pyx_n_s_realPart) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_106, __pyx_n_s_imagPart) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_113, __pyx_n_s_missingDiagonal) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_119, __pyx_n_s_multDiagonalBlock) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_121, __pyx_n_s_multHermitian) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_6, __pyx_int_122, __pyx_n_s_multHermitianAdd) < 0) __PYX_ERR(11, 377, __pyx_L1_error) + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_dMatOps); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_dMatOps, ((PyObject*)__pyx_t_6)); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/libpetsc4py.pyx":1120 + * return FunctionEnd() + * + * cdef PetscInt matmatid = -1 # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode MatProductSymbolic_Python( + */ + __pyx_v_8petsc4py_5PETSc_matmatid = -1L; + + /* "petsc4py/PETSc/PETSc.pyx":256 + * PetscErrorCode PetscTBEH(MPI_Comm,int,char*,char*,int,PetscErrorType,char*,void*) + * + * cdef object tracebacklist = [] # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode traceback( + */ + __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_v_8petsc4py_5PETSc_tracebacklist); + __Pyx_DECREF_SET(__pyx_v_8petsc4py_5PETSc_tracebacklist, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":345 + * PetscErrorCode PetscInitializePackageAll() + * + * cdef int PyPetsc_Argc = 0 # <<<<<<<<<<<<<< + * cdef char** PyPetsc_Argv = NULL + * + */ + __pyx_v_8petsc4py_5PETSc_PyPetsc_Argc = 0; + + /* "petsc4py/PETSc/PETSc.pyx":346 + * + * cdef int PyPetsc_Argc = 0 + * cdef char** PyPetsc_Argv = NULL # <<<<<<<<<<<<<< + * + * cdef int getinitargs(object args, int *argc, char **argv[]) except -1: + */ + __pyx_v_8petsc4py_5PETSc_PyPetsc_Argv = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":412 + * + * cdef PetscErrorCode (*prevfprintf)(FILE*,const char*,va_list) nogil + * prevfprintf = NULL # <<<<<<<<<<<<<< + * + * cdef PetscErrorCode PetscVFPrintf_PythonStdStream( + */ + __pyx_v_8petsc4py_5PETSc_prevfprintf = NULL; + + /* "petsc4py/PETSc/PETSc.pyx":504 + * PetscClassId PETSC_DEVICE_CONTEXT_CLASSID "PETSC_DEVICE_CONTEXT_CLASSID" + * + * cdef bint registercalled = 0 # <<<<<<<<<<<<<< + * + * cdef const char *citation = b"""\ + */ + __pyx_v_8petsc4py_5PETSc_registercalled = 0; + + /* "petsc4py/PETSc/PETSc.pyx":506 + * cdef bint registercalled = 0 + * + * cdef const char *citation = b"""\ # <<<<<<<<<<<<<< + * @Article{Dalcin2011, + * Author = {Lisandro D. Dalcin and Rodrigo R. Paz and Pablo A. Kler and Alejandro Cosimo}, + */ + __pyx_v_8petsc4py_5PETSc_citation = ((char const *)"@Article{Dalcin2011,\n Author = {Lisandro D. Dalcin and Rodrigo R. Paz and Pablo A. Kler and Alejandro Cosimo},\n Title = {Parallel distributed computing using {P}ython},\n Journal = {Advances in Water Resources},\n Note = {New Computational Methods and Software Tools},\n Volume = {34},\n Number = {9},\n Pages = {1124--1139},\n Year = {2011},\n DOI = {https://doi.org/10.1016/j.advwatres.2011.04.013}\n}\n"); + + /* "petsc4py/PETSc/PETSc.pyx":561 + * # -------------------------------------------------------------------- + * + * def _initialize(args=None, comm=None): # <<<<<<<<<<<<<< + * import atexit + * global tracebacklist + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_5_initialize, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_initialize, __pyx_t_6) < 0) __PYX_ERR(12, 561, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":580 + * atexit.register(_pre_finalize) + * + * def _pre_finalize(): # <<<<<<<<<<<<<< + * # Called while the Python interpreter is still running + * garbage_cleanup() + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_7_pre_finalize, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pre_finalize, __pyx_t_6) < 0) __PYX_ERR(12, 580, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":584 + * garbage_cleanup() + * + * def _finalize(): # <<<<<<<<<<<<<< + * finalize() + * # + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_9_finalize, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_finalize, __pyx_t_6) < 0) __PYX_ERR(12, 584, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":606 + * citations_registry.clear() + * + * def _push_python_vfprintf(): # <<<<<<<<<<<<<< + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_11_push_python_vfprintf, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 606, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_push_python_vfprintf, __pyx_t_6) < 0) __PYX_ERR(12, 606, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":609 + * _push_vfprintf(&PetscVFPrintf_PythonStdStream) + * + * def _pop_python_vfprintf(): # <<<<<<<<<<<<<< + * _pop_vfprintf() + * + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_13_pop_python_vfprintf, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pop_python_vfprintf, __pyx_t_6) < 0) __PYX_ERR(12, 609, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "petsc4py/PETSc/PETSc.pyx":612 + * _pop_vfprintf() + * + * def _stdout_is_stderr(): # <<<<<<<<<<<<<< + * global PETSC_STDOUT, PETSC_STDERR + * return PETSC_STDOUT == PETSC_STDERR + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_8petsc4py_5PETSc_15_stdout_is_stderr, NULL, __pyx_n_s_petsc4py_PETSc); if (unlikely(!__pyx_t_6)) __PYX_ERR(12, 612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stdout_is_stderr, __pyx_t_6) < 0) __PYX_ERR(12, 612, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "View.MemoryView":210 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_array_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * def __dealloc__(array self): + */ + __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_array_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_array_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(66, 210, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_array_type); + + /* "View.MemoryView":287 + * return self.name + * + * cdef generic = Enum("") # <<<<<<<<<<<<<< + * cdef strided = Enum("") # default + * cdef indirect = Enum("") + */ + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__182, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(generic); + __Pyx_DECREF_SET(generic, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":288 + * + * cdef generic = Enum("") + * cdef strided = Enum("") # default # <<<<<<<<<<<<<< + * cdef indirect = Enum("") + * + */ + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__183, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 288, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(strided); + __Pyx_DECREF_SET(strided, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":289 + * cdef generic = Enum("") + * cdef strided = Enum("") # default + * cdef indirect = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__184, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(indirect); + __Pyx_DECREF_SET(indirect, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":292 + * + * + * cdef contiguous = Enum("") # <<<<<<<<<<<<<< + * cdef indirect_contiguous = Enum("") + * + */ + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__185, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(contiguous); + __Pyx_DECREF_SET(contiguous, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":293 + * + * cdef contiguous = Enum("") + * cdef indirect_contiguous = Enum("") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_6 = __Pyx_PyObject_Call(((PyObject *)__pyx_MemviewEnum_type), __pyx_tuple__186, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_XGOTREF(indirect_contiguous); + __Pyx_DECREF_SET(indirect_contiguous, __pyx_t_6); + __Pyx_GIVEREF(__pyx_t_6); + __pyx_t_6 = 0; + + /* "View.MemoryView":317 + * + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 # <<<<<<<<<<<<<< + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ + * PyThread_allocate_lock(), + */ + __pyx_memoryview_thread_locks_used = 0; + + /* "View.MemoryView":318 + * DEF THREAD_LOCKS_PREALLOCATED = 8 + * cdef int __pyx_memoryview_thread_locks_used = 0 + * cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks = [ # <<<<<<<<<<<<<< + * PyThread_allocate_lock(), + * PyThread_allocate_lock(), + */ + __pyx_t_9[0] = PyThread_allocate_lock(); + __pyx_t_9[1] = PyThread_allocate_lock(); + __pyx_t_9[2] = PyThread_allocate_lock(); + __pyx_t_9[3] = PyThread_allocate_lock(); + __pyx_t_9[4] = PyThread_allocate_lock(); + __pyx_t_9[5] = PyThread_allocate_lock(); + __pyx_t_9[6] = PyThread_allocate_lock(); + __pyx_t_9[7] = PyThread_allocate_lock(); + memcpy(&(__pyx_memoryview_thread_locks[0]), __pyx_t_9, sizeof(__pyx_memoryview_thread_locks[0]) * (8)); + + /* "View.MemoryView":551 + * info.obj = self + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_memoryview_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(66, 551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_memoryview_type); + + /* "View.MemoryView":997 + * return self.from_object + * + * __pyx_getbuffer = capsule( &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_6 = __pyx_capsule_create(((void *)(&__pyx_memoryview_getbuffer)), ((char *)"getbuffer(obj, view, flags)")); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem((PyObject *)__pyx_memoryviewslice_type->tp_dict, __pyx_n_s_pyx_getbuffer, __pyx_t_6) < 0) __PYX_ERR(66, 997, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + PyType_Modified(__pyx_memoryviewslice_type); + + /* "(tree fragment)":1 + * def __pyx_unpickle_Enum(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< + * cdef object __pyx_PickleError + * cdef object __pyx_result + */ + __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_15View_dot_MemoryView_1__pyx_unpickle_Enum, NULL, __pyx_n_s_View_MemoryView); if (unlikely(!__pyx_t_6)) __PYX_ERR(66, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pyx_unpickle_Enum, __pyx_t_6) < 0) __PYX_ERR(66, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "BufferFormatFromTypeInfo":1465 + * + * @cname('__pyx_format_from_typeinfo') + * cdef bytes format_from_typeinfo(__Pyx_TypeInfo *type): # <<<<<<<<<<<<<< + * cdef __Pyx_StructField *field + * cdef __pyx_typeinfo_string fmt + */ + + /*--- Wrapped vars code ---*/ + + if (__Pyx_RegisterCleanup()) __PYX_ERR(21, 1, __pyx_L1_error) + goto __pyx_L0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_t_7); + __Pyx_XDECREF(__pyx_t_8); + if (__pyx_m) { + if (__pyx_d) { + __Pyx_AddTraceback("init petsc4py.PETSc", __pyx_clineno, __pyx_lineno, __pyx_filename); + } + Py_CLEAR(__pyx_m); + } else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_ImportError, "init petsc4py.PETSc"); + } + __pyx_L0:; + __Pyx_RefNannyFinishContext(); + #if CYTHON_PEP489_MULTI_PHASE_INIT + return (__pyx_m != NULL) ? 0 : -1; + #elif PY_MAJOR_VERSION >= 3 + return __pyx_m; + #else + return; + #endif +} + +static CYTHON_SMALL_CODE void __Pyx_CleanupGlobals(void) { + Py_CLEAR(__pyx_tuple__2); + Py_CLEAR(__pyx_tuple__3); + Py_CLEAR(__pyx_tuple__5); + Py_CLEAR(__pyx_slice__6); + Py_CLEAR(__pyx_tuple__8); + Py_CLEAR(__pyx_tuple__9); + Py_CLEAR(__pyx_tuple__10); + Py_CLEAR(__pyx_tuple__11); + Py_CLEAR(__pyx_tuple__12); + Py_CLEAR(__pyx_tuple__15); + Py_CLEAR(__pyx_tuple__16); + Py_CLEAR(__pyx_tuple__17); + Py_CLEAR(__pyx_tuple__18); + Py_CLEAR(__pyx_tuple__19); + Py_CLEAR(__pyx_tuple__21); + Py_CLEAR(__pyx_tuple__22); + Py_CLEAR(__pyx_codeobj__23); + Py_CLEAR(__pyx_tuple__24); + Py_CLEAR(__pyx_codeobj__25); + Py_CLEAR(__pyx_tuple__26); + Py_CLEAR(__pyx_tuple__27); + Py_CLEAR(__pyx_tuple__28); + Py_CLEAR(__pyx_tuple__29); + Py_CLEAR(__pyx_tuple__31); + Py_CLEAR(__pyx_tuple__32); + Py_CLEAR(__pyx_tuple__33); + Py_CLEAR(__pyx_tuple__34); + Py_CLEAR(__pyx_tuple__35); + Py_CLEAR(__pyx_tuple__36); + Py_CLEAR(__pyx_tuple__37); + Py_CLEAR(__pyx_tuple__38); + Py_CLEAR(__pyx_tuple__39); + Py_CLEAR(__pyx_slice__40); + Py_CLEAR(__pyx_tuple__41); + Py_CLEAR(__pyx_tuple__42); + Py_CLEAR(__pyx_tuple__43); + Py_CLEAR(__pyx_tuple__44); + Py_CLEAR(__pyx_tuple__45); + Py_CLEAR(__pyx_tuple__46); + Py_CLEAR(__pyx_tuple__47); + Py_CLEAR(__pyx_tuple__48); + Py_CLEAR(__pyx_tuple__49); + Py_CLEAR(__pyx_slice__50); + Py_CLEAR(__pyx_slice__51); + Py_CLEAR(__pyx_tuple__52); + Py_CLEAR(__pyx_tuple__53); + Py_CLEAR(__pyx_tuple__54); + Py_CLEAR(__pyx_tuple__56); + Py_CLEAR(__pyx_tuple__58); + Py_CLEAR(__pyx_tuple__59); + Py_CLEAR(__pyx_tuple__60); + Py_CLEAR(__pyx_tuple__61); + Py_CLEAR(__pyx_tuple__62); + Py_CLEAR(__pyx_tuple__63); + Py_CLEAR(__pyx_tuple__64); + Py_CLEAR(__pyx_tuple__65); + Py_CLEAR(__pyx_tuple__66); + Py_CLEAR(__pyx_tuple__67); + Py_CLEAR(__pyx_tuple__68); + Py_CLEAR(__pyx_tuple__69); + Py_CLEAR(__pyx_tuple__70); + Py_CLEAR(__pyx_tuple__71); + Py_CLEAR(__pyx_tuple__72); + Py_CLEAR(__pyx_tuple__73); + Py_CLEAR(__pyx_tuple__74); + Py_CLEAR(__pyx_tuple__75); + Py_CLEAR(__pyx_tuple__76); + Py_CLEAR(__pyx_tuple__77); + Py_CLEAR(__pyx_tuple__80); + Py_CLEAR(__pyx_tuple__81); + Py_CLEAR(__pyx_tuple__82); + Py_CLEAR(__pyx_tuple__83); + Py_CLEAR(__pyx_tuple__84); + Py_CLEAR(__pyx_codeobj__85); + Py_CLEAR(__pyx_tuple__86); + Py_CLEAR(__pyx_codeobj__87); + Py_CLEAR(__pyx_tuple__88); + Py_CLEAR(__pyx_codeobj__89); + Py_CLEAR(__pyx_tuple__90); + Py_CLEAR(__pyx_codeobj__91); + Py_CLEAR(__pyx_tuple__92); + Py_CLEAR(__pyx_codeobj__93); + Py_CLEAR(__pyx_tuple__94); + Py_CLEAR(__pyx_codeobj__95); + Py_CLEAR(__pyx_tuple__96); + Py_CLEAR(__pyx_tuple__97); + Py_CLEAR(__pyx_tuple__98); + Py_CLEAR(__pyx_tuple__99); + Py_CLEAR(__pyx_tuple__100); + Py_CLEAR(__pyx_tuple__101); + Py_CLEAR(__pyx_tuple__102); + Py_CLEAR(__pyx_codeobj__103); + Py_CLEAR(__pyx_tuple__104); + Py_CLEAR(__pyx_codeobj__105); + Py_CLEAR(__pyx_tuple__106); + Py_CLEAR(__pyx_codeobj__107); + Py_CLEAR(__pyx_tuple__108); + Py_CLEAR(__pyx_codeobj__109); + Py_CLEAR(__pyx_tuple__110); + Py_CLEAR(__pyx_tuple__111); + Py_CLEAR(__pyx_tuple__112); + Py_CLEAR(__pyx_tuple__113); + Py_CLEAR(__pyx_tuple__114); + Py_CLEAR(__pyx_tuple__115); + Py_CLEAR(__pyx_tuple__116); + Py_CLEAR(__pyx_tuple__117); + Py_CLEAR(__pyx_tuple__118); + Py_CLEAR(__pyx_tuple__119); + Py_CLEAR(__pyx_tuple__120); + Py_CLEAR(__pyx_tuple__121); + Py_CLEAR(__pyx_tuple__122); + Py_CLEAR(__pyx_tuple__123); + Py_CLEAR(__pyx_tuple__124); + Py_CLEAR(__pyx_tuple__125); + Py_CLEAR(__pyx_tuple__126); + Py_CLEAR(__pyx_tuple__127); + Py_CLEAR(__pyx_tuple__128); + Py_CLEAR(__pyx_tuple__129); + Py_CLEAR(__pyx_tuple__130); + Py_CLEAR(__pyx_tuple__131); + Py_CLEAR(__pyx_tuple__132); + Py_CLEAR(__pyx_tuple__133); + Py_CLEAR(__pyx_tuple__134); + Py_CLEAR(__pyx_tuple__135); + Py_CLEAR(__pyx_tuple__136); + Py_CLEAR(__pyx_tuple__137); + Py_CLEAR(__pyx_tuple__138); + Py_CLEAR(__pyx_tuple__139); + Py_CLEAR(__pyx_tuple__140); + Py_CLEAR(__pyx_tuple__141); + Py_CLEAR(__pyx_tuple__142); + Py_CLEAR(__pyx_tuple__143); + Py_CLEAR(__pyx_tuple__144); + Py_CLEAR(__pyx_tuple__145); + Py_CLEAR(__pyx_tuple__146); + Py_CLEAR(__pyx_tuple__147); + Py_CLEAR(__pyx_tuple__148); + Py_CLEAR(__pyx_tuple__149); + Py_CLEAR(__pyx_tuple__150); + Py_CLEAR(__pyx_tuple__151); + Py_CLEAR(__pyx_tuple__152); + Py_CLEAR(__pyx_tuple__153); + Py_CLEAR(__pyx_tuple__154); + Py_CLEAR(__pyx_tuple__155); + Py_CLEAR(__pyx_tuple__156); + Py_CLEAR(__pyx_tuple__157); + Py_CLEAR(__pyx_tuple__158); + Py_CLEAR(__pyx_tuple__159); + Py_CLEAR(__pyx_tuple__160); + Py_CLEAR(__pyx_tuple__161); + Py_CLEAR(__pyx_tuple__162); + Py_CLEAR(__pyx_tuple__163); + Py_CLEAR(__pyx_tuple__164); + Py_CLEAR(__pyx_tuple__165); + Py_CLEAR(__pyx_tuple__166); + Py_CLEAR(__pyx_tuple__167); + Py_CLEAR(__pyx_tuple__168); + Py_CLEAR(__pyx_tuple__169); + Py_CLEAR(__pyx_tuple__170); + Py_CLEAR(__pyx_tuple__171); + Py_CLEAR(__pyx_tuple__172); + Py_CLEAR(__pyx_tuple__173); + Py_CLEAR(__pyx_tuple__174); + Py_CLEAR(__pyx_tuple__175); + Py_CLEAR(__pyx_codeobj__176); + Py_CLEAR(__pyx_codeobj__177); + Py_CLEAR(__pyx_codeobj__178); + Py_CLEAR(__pyx_codeobj__179); + Py_CLEAR(__pyx_codeobj__180); + Py_CLEAR(__pyx_codeobj__181); + Py_CLEAR(__pyx_tuple__182); + Py_CLEAR(__pyx_tuple__183); + Py_CLEAR(__pyx_tuple__184); + Py_CLEAR(__pyx_tuple__185); + Py_CLEAR(__pyx_tuple__186); + Py_CLEAR(__pyx_tuple__187); + Py_CLEAR(__pyx_codeobj__188); + /* CodeObjectCache.cleanup */ + if (__pyx_code_cache.entries) { + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + int i, count = __pyx_code_cache.count; + __pyx_code_cache.count = 0; + __pyx_code_cache.max_count = 0; + __pyx_code_cache.entries = NULL; + for (i=0; i 0) { + PyObject* o = (PyObject*)__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator[--__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct__EventDecorator]; + (*Py_TYPE(o)->tp_free)(o); + } + while (__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator > 0) { + PyObject* o = (PyObject*)__pyx_freelist_8petsc4py_5PETSc___pyx_scope_struct_1_decorator[--__pyx_freecount_8petsc4py_5PETSc___pyx_scope_struct_1_decorator]; + (*Py_TYPE(o)->tp_free)(o); + } + Py_CLEAR(__pyx_d); + Py_CLEAR(__pyx_cython_runtime); + Py_CLEAR(__pyx_b); +} + +/* --- Runtime support code --- */ +/* Refnanny */ +#if CYTHON_REFNANNY +static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { + PyObject *m = NULL, *p = NULL; + void *r = NULL; + m = PyImport_ImportModule(modname); + if (!m) goto end; + p = PyObject_GetAttrString(m, "RefNannyAPI"); + if (!p) goto end; + r = PyLong_AsVoidPtr(p); +end: + Py_XDECREF(p); + Py_XDECREF(m); + return (__Pyx_RefNannyAPIStruct *)r; +} +#endif + +/* PyObjectGetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro)) + return tp->tp_getattro(obj, attr_name); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_getattr)) + return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); +#endif + return PyObject_GetAttr(obj, attr_name); +} +#endif + +/* GetBuiltinName */ +static PyObject *__Pyx_GetBuiltinName(PyObject *name) { + PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); + if (unlikely(!result)) { + PyErr_Format(PyExc_NameError, +#if PY_MAJOR_VERSION >= 3 + "name '%U' is not defined", name); +#else + "name '%.200s' is not defined", PyString_AS_STRING(name)); +#endif + } + return result; +} + +/* KeywordStringCheck */ +static int __Pyx_CheckKeywordStrings( + PyObject *kwdict, + const char* function_name, + int kw_allowed) +{ + PyObject* key = 0; + Py_ssize_t pos = 0; +#if CYTHON_COMPILING_IN_PYPY + if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) + goto invalid_keyword; + return 1; +#else + while (PyDict_Next(kwdict, &pos, &key, 0)) { + #if PY_MAJOR_VERSION < 3 + if (unlikely(!PyString_Check(key))) + #endif + if (unlikely(!PyUnicode_Check(key))) + goto invalid_keyword_type; + } + if ((!kw_allowed) && unlikely(key)) + goto invalid_keyword; + return 1; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + return 0; +#endif +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif + return 0; +} + +/* decode_c_bytes */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_bytes( + const char* cstring, Py_ssize_t length, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + if (unlikely((start < 0) | (stop < 0))) { + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + } + if (stop > length) + stop = length; + if (unlikely(stop <= start)) + return __Pyx_NewRef(__pyx_empty_unicode); + length = stop - start; + cstring += start; + if (decode_func) { + return decode_func(cstring, length, errors); + } else { + return PyUnicode_Decode(cstring, length, encoding, errors); + } +} + +/* PyFunctionFastCall */ +#if CYTHON_FAST_PYCALL +static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, + PyObject *globals) { + PyFrameObject *f; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject **fastlocals; + Py_ssize_t i; + PyObject *result; + assert(globals != NULL); + /* XXX Perhaps we should create a specialized + PyFrame_New() that doesn't take locals, but does + take builtins without sanity checking them. + */ + assert(tstate != NULL); + f = PyFrame_New(tstate, co, globals, NULL); + if (f == NULL) { + return NULL; + } + fastlocals = __Pyx_PyFrame_GetLocalsplus(f); + for (i = 0; i < na; i++) { + Py_INCREF(*args); + fastlocals[i] = *args++; + } + result = PyEval_EvalFrameEx(f,0); + ++tstate->recursion_depth; + Py_DECREF(f); + --tstate->recursion_depth; + return result; +} +#if 1 || PY_VERSION_HEX < 0x030600B1 +static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { + PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); + PyObject *globals = PyFunction_GET_GLOBALS(func); + PyObject *argdefs = PyFunction_GET_DEFAULTS(func); + PyObject *closure; +#if PY_MAJOR_VERSION >= 3 + PyObject *kwdefs; +#endif + PyObject *kwtuple, **k; + PyObject **d; + Py_ssize_t nd; + Py_ssize_t nk; + PyObject *result; + assert(kwargs == NULL || PyDict_Check(kwargs)); + nk = kwargs ? PyDict_Size(kwargs) : 0; + if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { + return NULL; + } + if ( +#if PY_MAJOR_VERSION >= 3 + co->co_kwonlyargcount == 0 && +#endif + likely(kwargs == NULL || nk == 0) && + co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { + if (argdefs == NULL && co->co_argcount == nargs) { + result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); + goto done; + } + else if (nargs == 0 && argdefs != NULL + && co->co_argcount == Py_SIZE(argdefs)) { + /* function called with no arguments, but all parameters have + a default value: use default values as arguments .*/ + args = &PyTuple_GET_ITEM(argdefs, 0); + result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); + goto done; + } + } + if (kwargs != NULL) { + Py_ssize_t pos, i; + kwtuple = PyTuple_New(2 * nk); + if (kwtuple == NULL) { + result = NULL; + goto done; + } + k = &PyTuple_GET_ITEM(kwtuple, 0); + pos = i = 0; + while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { + Py_INCREF(k[i]); + Py_INCREF(k[i+1]); + i += 2; + } + nk = i / 2; + } + else { + kwtuple = NULL; + k = NULL; + } + closure = PyFunction_GET_CLOSURE(func); +#if PY_MAJOR_VERSION >= 3 + kwdefs = PyFunction_GET_KW_DEFAULTS(func); +#endif + if (argdefs != NULL) { + d = &PyTuple_GET_ITEM(argdefs, 0); + nd = Py_SIZE(argdefs); + } + else { + d = NULL; + nd = 0; + } +#if PY_MAJOR_VERSION >= 3 + result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, kwdefs, closure); +#else + result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, + args, (int)nargs, + k, (int)nk, + d, (int)nd, closure); +#endif + Py_XDECREF(kwtuple); +done: + Py_LeaveRecursiveCall(); + return result; +} +#endif +#endif + +/* PyObjectCall */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { + PyObject *result; + ternaryfunc call = Py_TYPE(func)->tp_call; + if (unlikely(!call)) + return PyObject_Call(func, arg, kw); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = (*call)(func, arg, kw); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallMethO */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { + PyObject *self, *result; + PyCFunction cfunc; + cfunc = PyCFunction_GET_FUNCTION(func); + self = PyCFunction_GET_SELF(func); + if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) + return NULL; + result = cfunc(self, arg); + Py_LeaveRecursiveCall(); + if (unlikely(!result) && unlikely(!PyErr_Occurred())) { + PyErr_SetString( + PyExc_SystemError, + "NULL result without error in PyObject_Call"); + } + return result; +} +#endif + +/* PyObjectCallNoArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, NULL, 0); + } +#endif +#if defined(__Pyx_CyFunction_USED) && defined(NDEBUG) + if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) +#else + if (likely(PyCFunction_Check(func))) +#endif + { + if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { + return __Pyx_PyObject_CallMethO(func, NULL); + } + } + return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); +} +#endif + +/* PyCFunctionFastCall */ +#if CYTHON_FAST_PYCCALL +static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { + PyCFunctionObject *func = (PyCFunctionObject*)func_obj; + PyCFunction meth = PyCFunction_GET_FUNCTION(func); + PyObject *self = PyCFunction_GET_SELF(func); + int flags = PyCFunction_GET_FLAGS(func); + assert(PyCFunction_Check(func)); + assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); + assert(nargs >= 0); + assert(nargs == 0 || args != NULL); + /* _PyCFunction_FastCallDict() must not be called with an exception set, + because it may clear it (directly or indirectly) and so the + caller loses its exception */ + assert(!PyErr_Occurred()); + if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { + return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); + } else { + return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); + } +} +#endif + +/* PyObjectCallOneArg */ +#if CYTHON_COMPILING_IN_CPYTHON +static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_New(1); + if (unlikely(!args)) return NULL; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { +#if CYTHON_FAST_PYCALL + if (PyFunction_Check(func)) { + return __Pyx_PyFunction_FastCall(func, &arg, 1); + } +#endif + if (likely(PyCFunction_Check(func))) { + if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { + return __Pyx_PyObject_CallMethO(func, arg); +#if CYTHON_FAST_PYCCALL + } else if (__Pyx_PyFastCFunction_Check(func)) { + return __Pyx_PyCFunction_FastCall(func, &arg, 1); +#endif + } + } + return __Pyx__PyObject_CallOneArg(func, arg); +} +#else +static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { + PyObject *result; + PyObject *args = PyTuple_Pack(1, arg); + if (unlikely(!args)) return NULL; + result = __Pyx_PyObject_Call(func, args, NULL); + Py_DECREF(args); + return result; +} +#endif + +/* PyErrFetchRestore */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + tmp_type = tstate->curexc_type; + tmp_value = tstate->curexc_value; + tmp_tb = tstate->curexc_traceback; + tstate->curexc_type = type; + tstate->curexc_value = value; + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + *type = tstate->curexc_type; + *value = tstate->curexc_value; + *tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +} +#endif + +/* WriteUnraisableException */ +static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, + CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, + int full_traceback, CYTHON_UNUSED int nogil) { + PyObject *old_exc, *old_val, *old_tb; + PyObject *ctx; + __Pyx_PyThreadState_declare +#ifdef WITH_THREAD + PyGILState_STATE state; + if (nogil) + state = PyGILState_Ensure(); + else state = (PyGILState_STATE)0; +#endif + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); + if (full_traceback) { + Py_XINCREF(old_exc); + Py_XINCREF(old_val); + Py_XINCREF(old_tb); + __Pyx_ErrRestore(old_exc, old_val, old_tb); + PyErr_PrintEx(1); + } + #if PY_MAJOR_VERSION < 3 + ctx = PyString_FromString(name); + #else + ctx = PyUnicode_FromString(name); + #endif + __Pyx_ErrRestore(old_exc, old_val, old_tb); + if (!ctx) { + PyErr_WriteUnraisable(Py_None); + } else { + PyErr_WriteUnraisable(ctx); + Py_DECREF(ctx); + } +#ifdef WITH_THREAD + if (nogil) + PyGILState_Release(state); +#endif +} + +/* GetTopmostException */ +#if CYTHON_USE_EXC_INFO_STACK +static _PyErr_StackItem * +__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) +{ + _PyErr_StackItem *exc_info = tstate->exc_info; + while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && + exc_info->previous_item != NULL) + { + exc_info = exc_info->previous_item; + } + return exc_info; +} +#endif + +/* SaveResetException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); + *type = exc_info->exc_type; + *value = exc_info->exc_value; + *tb = exc_info->exc_traceback; + #else + *type = tstate->exc_type; + *value = tstate->exc_value; + *tb = tstate->exc_traceback; + #endif + Py_XINCREF(*type); + Py_XINCREF(*value); + Py_XINCREF(*tb); +} +static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = type; + exc_info->exc_value = value; + exc_info->exc_traceback = tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = type; + tstate->exc_value = value; + tstate->exc_traceback = tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +} +#endif + +/* PyErrExceptionMatches */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; icurexc_type; + if (exc_type == err) return 1; + if (unlikely(!exc_type)) return 0; + if (unlikely(PyTuple_Check(err))) + return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); + return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); +} +#endif + +/* GetException */ +#if CYTHON_FAST_THREAD_STATE +static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) +#else +static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) +#endif +{ + PyObject *local_type, *local_value, *local_tb; +#if CYTHON_FAST_THREAD_STATE + PyObject *tmp_type, *tmp_value, *tmp_tb; + local_type = tstate->curexc_type; + local_value = tstate->curexc_value; + local_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; +#else + PyErr_Fetch(&local_type, &local_value, &local_tb); +#endif + PyErr_NormalizeException(&local_type, &local_value, &local_tb); +#if CYTHON_FAST_THREAD_STATE + if (unlikely(tstate->curexc_type)) +#else + if (unlikely(PyErr_Occurred())) +#endif + goto bad; + #if PY_MAJOR_VERSION >= 3 + if (local_tb) { + if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) + goto bad; + } + #endif + Py_XINCREF(local_tb); + Py_XINCREF(local_type); + Py_XINCREF(local_value); + *type = local_type; + *value = local_value; + *tb = local_tb; +#if CYTHON_FAST_THREAD_STATE + #if CYTHON_USE_EXC_INFO_STACK + { + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = local_type; + exc_info->exc_value = local_value; + exc_info->exc_traceback = local_tb; + } + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = local_type; + tstate->exc_value = local_value; + tstate->exc_traceback = local_tb; + #endif + Py_XDECREF(tmp_type); + Py_XDECREF(tmp_value); + Py_XDECREF(tmp_tb); +#else + PyErr_SetExcInfo(local_type, local_value, local_tb); +#endif + return 0; +bad: + *type = 0; + *value = 0; + *tb = 0; + Py_XDECREF(local_type); + Py_XDECREF(local_value); + Py_XDECREF(local_tb); + return -1; +} + +/* BytesEquals */ +static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else + if (s1 == s2) { + return (equals == Py_EQ); + } else if (PyBytes_CheckExact(s1) & PyBytes_CheckExact(s2)) { + const char *ps1, *ps2; + Py_ssize_t length = PyBytes_GET_SIZE(s1); + if (length != PyBytes_GET_SIZE(s2)) + return (equals == Py_NE); + ps1 = PyBytes_AS_STRING(s1); + ps2 = PyBytes_AS_STRING(s2); + if (ps1[0] != ps2[0]) { + return (equals == Py_NE); + } else if (length == 1) { + return (equals == Py_EQ); + } else { + int result; +#if CYTHON_USE_UNICODE_INTERNALS && (PY_VERSION_HEX < 0x030B0000) + Py_hash_t hash1, hash2; + hash1 = ((PyBytesObject*)s1)->ob_shash; + hash2 = ((PyBytesObject*)s2)->ob_shash; + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + return (equals == Py_NE); + } +#endif + result = memcmp(ps1, ps2, (size_t)length); + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & PyBytes_CheckExact(s2)) { + return (equals == Py_NE); + } else if ((s2 == Py_None) & PyBytes_CheckExact(s1)) { + return (equals == Py_NE); + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +#endif +} + +/* UnicodeEquals */ +static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals) { +#if CYTHON_COMPILING_IN_PYPY + return PyObject_RichCompareBool(s1, s2, equals); +#else +#if PY_MAJOR_VERSION < 3 + PyObject* owned_ref = NULL; +#endif + int s1_is_unicode, s2_is_unicode; + if (s1 == s2) { + goto return_eq; + } + s1_is_unicode = PyUnicode_CheckExact(s1); + s2_is_unicode = PyUnicode_CheckExact(s2); +#if PY_MAJOR_VERSION < 3 + if ((s1_is_unicode & (!s2_is_unicode)) && PyString_CheckExact(s2)) { + owned_ref = PyUnicode_FromObject(s2); + if (unlikely(!owned_ref)) + return -1; + s2 = owned_ref; + s2_is_unicode = 1; + } else if ((s2_is_unicode & (!s1_is_unicode)) && PyString_CheckExact(s1)) { + owned_ref = PyUnicode_FromObject(s1); + if (unlikely(!owned_ref)) + return -1; + s1 = owned_ref; + s1_is_unicode = 1; + } else if (((!s2_is_unicode) & (!s1_is_unicode))) { + return __Pyx_PyBytes_Equals(s1, s2, equals); + } +#endif + if (s1_is_unicode & s2_is_unicode) { + Py_ssize_t length; + int kind; + void *data1, *data2; + if (unlikely(__Pyx_PyUnicode_READY(s1) < 0) || unlikely(__Pyx_PyUnicode_READY(s2) < 0)) + return -1; + length = __Pyx_PyUnicode_GET_LENGTH(s1); + if (length != __Pyx_PyUnicode_GET_LENGTH(s2)) { + goto return_ne; + } +#if CYTHON_USE_UNICODE_INTERNALS + { + Py_hash_t hash1, hash2; + #if CYTHON_PEP393_ENABLED + hash1 = ((PyASCIIObject*)s1)->hash; + hash2 = ((PyASCIIObject*)s2)->hash; + #else + hash1 = ((PyUnicodeObject*)s1)->hash; + hash2 = ((PyUnicodeObject*)s2)->hash; + #endif + if (hash1 != hash2 && hash1 != -1 && hash2 != -1) { + goto return_ne; + } + } +#endif + kind = __Pyx_PyUnicode_KIND(s1); + if (kind != __Pyx_PyUnicode_KIND(s2)) { + goto return_ne; + } + data1 = __Pyx_PyUnicode_DATA(s1); + data2 = __Pyx_PyUnicode_DATA(s2); + if (__Pyx_PyUnicode_READ(kind, data1, 0) != __Pyx_PyUnicode_READ(kind, data2, 0)) { + goto return_ne; + } else if (length == 1) { + goto return_eq; + } else { + int result = memcmp(data1, data2, (size_t)(length * kind)); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ) ? (result == 0) : (result != 0); + } + } else if ((s1 == Py_None) & s2_is_unicode) { + goto return_ne; + } else if ((s2 == Py_None) & s1_is_unicode) { + goto return_ne; + } else { + int result; + PyObject* py_result = PyObject_RichCompare(s1, s2, equals); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + if (!py_result) + return -1; + result = __Pyx_PyObject_IsTrue(py_result); + Py_DECREF(py_result); + return result; + } +return_eq: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_EQ); +return_ne: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(owned_ref); + #endif + return (equals == Py_NE); +#endif +} + +/* RaiseException */ +#if PY_MAJOR_VERSION < 3 +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, + CYTHON_UNUSED PyObject *cause) { + __Pyx_PyThreadState_declare + Py_XINCREF(type); + if (!value || value == Py_None) + value = NULL; + else + Py_INCREF(value); + if (!tb || tb == Py_None) + tb = NULL; + else { + Py_INCREF(tb); + if (!PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto raise_error; + } + } + if (PyType_Check(type)) { +#if CYTHON_COMPILING_IN_PYPY + if (!value) { + Py_INCREF(Py_None); + value = Py_None; + } +#endif + PyErr_NormalizeException(&type, &value, &tb); + } else { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto raise_error; + } + value = type; + type = (PyObject*) Py_TYPE(type); + Py_INCREF(type); + if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto raise_error; + } + } + __Pyx_PyThreadState_assign + __Pyx_ErrRestore(type, value, tb); + return; +raise_error: + Py_XDECREF(value); + Py_XDECREF(type); + Py_XDECREF(tb); + return; +} +#else +static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { + PyObject* owned_instance = NULL; + if (tb == Py_None) { + tb = 0; + } else if (tb && !PyTraceBack_Check(tb)) { + PyErr_SetString(PyExc_TypeError, + "raise: arg 3 must be a traceback or None"); + goto bad; + } + if (value == Py_None) + value = 0; + if (PyExceptionInstance_Check(type)) { + if (value) { + PyErr_SetString(PyExc_TypeError, + "instance exception may not have a separate value"); + goto bad; + } + value = type; + type = (PyObject*) Py_TYPE(value); + } else if (PyExceptionClass_Check(type)) { + PyObject *instance_class = NULL; + if (value && PyExceptionInstance_Check(value)) { + instance_class = (PyObject*) Py_TYPE(value); + if (instance_class != type) { + int is_subclass = PyObject_IsSubclass(instance_class, type); + if (!is_subclass) { + instance_class = NULL; + } else if (unlikely(is_subclass == -1)) { + goto bad; + } else { + type = instance_class; + } + } + } + if (!instance_class) { + PyObject *args; + if (!value) + args = PyTuple_New(0); + else if (PyTuple_Check(value)) { + Py_INCREF(value); + args = value; + } else + args = PyTuple_Pack(1, value); + if (!args) + goto bad; + owned_instance = PyObject_Call(type, args, NULL); + Py_DECREF(args); + if (!owned_instance) + goto bad; + value = owned_instance; + if (!PyExceptionInstance_Check(value)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %R", + type, Py_TYPE(value)); + goto bad; + } + } + } else { + PyErr_SetString(PyExc_TypeError, + "raise: exception class must be a subclass of BaseException"); + goto bad; + } + if (cause) { + PyObject *fixed_cause; + if (cause == Py_None) { + fixed_cause = NULL; + } else if (PyExceptionClass_Check(cause)) { + fixed_cause = PyObject_CallObject(cause, NULL); + if (fixed_cause == NULL) + goto bad; + } else if (PyExceptionInstance_Check(cause)) { + fixed_cause = cause; + Py_INCREF(fixed_cause); + } else { + PyErr_SetString(PyExc_TypeError, + "exception causes must derive from " + "BaseException"); + goto bad; + } + PyException_SetCause(value, fixed_cause); + } + PyErr_SetObject(type, value); + if (tb) { +#if CYTHON_FAST_THREAD_STATE + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* tmp_tb = tstate->curexc_traceback; + if (tb != tmp_tb) { + Py_INCREF(tb); + tstate->curexc_traceback = tb; + Py_XDECREF(tmp_tb); + } +#else + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); + Py_INCREF(tb); + PyErr_Restore(tmp_type, tmp_value, tb); + Py_XDECREF(tmp_tb); +#endif + } +bad: + Py_XDECREF(owned_instance); + return; +} +#endif + +/* PyObjectCall2Args */ +static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { + PyObject *args, *result = NULL; + #if CYTHON_FAST_PYCALL + if (PyFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyFunction_FastCall(function, args, 2); + } + #endif + #if CYTHON_FAST_PYCCALL + if (__Pyx_PyFastCFunction_Check(function)) { + PyObject *args[2] = {arg1, arg2}; + return __Pyx_PyCFunction_FastCall(function, args, 2); + } + #endif + args = PyTuple_New(2); + if (unlikely(!args)) goto done; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + Py_INCREF(function); + result = __Pyx_PyObject_Call(function, args, NULL); + Py_DECREF(args); + Py_DECREF(function); +done: + return result; +} + +/* SwapException */ +#if CYTHON_FAST_THREAD_STATE +static CYTHON_INLINE void __Pyx__ExceptionSwap(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + #if CYTHON_USE_EXC_INFO_STACK + _PyErr_StackItem *exc_info = tstate->exc_info; + tmp_type = exc_info->exc_type; + tmp_value = exc_info->exc_value; + tmp_tb = exc_info->exc_traceback; + exc_info->exc_type = *type; + exc_info->exc_value = *value; + exc_info->exc_traceback = *tb; + #else + tmp_type = tstate->exc_type; + tmp_value = tstate->exc_value; + tmp_tb = tstate->exc_traceback; + tstate->exc_type = *type; + tstate->exc_value = *value; + tstate->exc_traceback = *tb; + #endif + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#else +static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) { + PyObject *tmp_type, *tmp_value, *tmp_tb; + PyErr_GetExcInfo(&tmp_type, &tmp_value, &tmp_tb); + PyErr_SetExcInfo(*type, *value, *tb); + *type = tmp_type; + *value = tmp_value; + *tb = tmp_tb; +} +#endif + +/* PyObjectGetMethod */ +static int __Pyx_PyObject_GetMethod(PyObject *obj, PyObject *name, PyObject **method) { + PyObject *attr; +#if CYTHON_UNPACK_METHODS && CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_PYTYPE_LOOKUP + PyTypeObject *tp = Py_TYPE(obj); + PyObject *descr; + descrgetfunc f = NULL; + PyObject **dictptr, *dict; + int meth_found = 0; + assert (*method == NULL); + if (unlikely(tp->tp_getattro != PyObject_GenericGetAttr)) { + attr = __Pyx_PyObject_GetAttrStr(obj, name); + goto try_unpack; + } + if (unlikely(tp->tp_dict == NULL) && unlikely(PyType_Ready(tp) < 0)) { + return 0; + } + descr = _PyType_Lookup(tp, name); + if (likely(descr != NULL)) { + Py_INCREF(descr); +#if PY_MAJOR_VERSION >= 3 + #ifdef __Pyx_CyFunction_USED + if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type) || __Pyx_CyFunction_Check(descr))) + #else + if (likely(PyFunction_Check(descr) || (Py_TYPE(descr) == &PyMethodDescr_Type))) + #endif +#else + #ifdef __Pyx_CyFunction_USED + if (likely(PyFunction_Check(descr) || __Pyx_CyFunction_Check(descr))) + #else + if (likely(PyFunction_Check(descr))) + #endif +#endif + { + meth_found = 1; + } else { + f = Py_TYPE(descr)->tp_descr_get; + if (f != NULL && PyDescr_IsData(descr)) { + attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); + Py_DECREF(descr); + goto try_unpack; + } + } + } + dictptr = _PyObject_GetDictPtr(obj); + if (dictptr != NULL && (dict = *dictptr) != NULL) { + Py_INCREF(dict); + attr = __Pyx_PyDict_GetItemStr(dict, name); + if (attr != NULL) { + Py_INCREF(attr); + Py_DECREF(dict); + Py_XDECREF(descr); + goto try_unpack; + } + Py_DECREF(dict); + } + if (meth_found) { + *method = descr; + return 1; + } + if (f != NULL) { + attr = f(descr, obj, (PyObject *)Py_TYPE(obj)); + Py_DECREF(descr); + goto try_unpack; + } + if (descr != NULL) { + *method = descr; + return 0; + } + PyErr_Format(PyExc_AttributeError, +#if PY_MAJOR_VERSION >= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(name)); +#endif + return 0; +#else + attr = __Pyx_PyObject_GetAttrStr(obj, name); + goto try_unpack; +#endif +try_unpack: +#if CYTHON_UNPACK_METHODS + if (likely(attr) && PyMethod_Check(attr) && likely(PyMethod_GET_SELF(attr) == obj)) { + PyObject *function = PyMethod_GET_FUNCTION(attr); + Py_INCREF(function); + Py_DECREF(attr); + *method = function; + return 1; + } +#endif + *method = attr; + return 0; +} + +/* PyObjectCallMethod1 */ +static PyObject* __Pyx__PyObject_CallMethod1(PyObject* method, PyObject* arg) { + PyObject *result = __Pyx_PyObject_CallOneArg(method, arg); + Py_DECREF(method); + return result; +} +static PyObject* __Pyx_PyObject_CallMethod1(PyObject* obj, PyObject* method_name, PyObject* arg) { + PyObject *method = NULL, *result; + int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); + if (likely(is_method)) { + result = __Pyx_PyObject_Call2Args(method, obj, arg); + Py_DECREF(method); + return result; + } + if (unlikely(!method)) return NULL; + return __Pyx__PyObject_CallMethod1(method, arg); +} + +/* pop_index */ +static PyObject* __Pyx__PyObject_PopNewIndex(PyObject* L, PyObject* py_ix) { + PyObject *r; + if (unlikely(!py_ix)) return NULL; + r = __Pyx__PyObject_PopIndex(L, py_ix); + Py_DECREF(py_ix); + return r; +} +static PyObject* __Pyx__PyObject_PopIndex(PyObject* L, PyObject* py_ix) { + return __Pyx_PyObject_CallMethod1(L, __pyx_n_s_pop, py_ix); +} +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static PyObject* __Pyx__PyList_PopIndex(PyObject* L, PyObject* py_ix, Py_ssize_t ix) { + Py_ssize_t size = PyList_GET_SIZE(L); + if (likely(size > (((PyListObject*)L)->allocated >> 1))) { + Py_ssize_t cix = ix; + if (cix < 0) { + cix += size; + } + if (likely(__Pyx_is_valid_index(cix, size))) { + PyObject* v = PyList_GET_ITEM(L, cix); + __Pyx_SET_SIZE(L, Py_SIZE(L) - 1); + size -= 1; + memmove(&PyList_GET_ITEM(L, cix), &PyList_GET_ITEM(L, cix+1), (size_t)(size-cix)*sizeof(PyObject*)); + return v; + } + } + if (py_ix == Py_None) { + return __Pyx__PyObject_PopNewIndex(L, PyInt_FromSsize_t(ix)); + } else { + return __Pyx__PyObject_PopIndex(L, py_ix); + } +} +#endif + +/* SliceObject */ +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(PyObject* obj, + Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, + int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { +#if CYTHON_USE_TYPE_SLOTS + PyMappingMethods* mp; +#if PY_MAJOR_VERSION < 3 + PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; + if (likely(ms && ms->sq_slice)) { + if (!has_cstart) { + if (_py_start && (*_py_start != Py_None)) { + cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); + if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; + } else + cstart = 0; + } + if (!has_cstop) { + if (_py_stop && (*_py_stop != Py_None)) { + cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); + if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; + } else + cstop = PY_SSIZE_T_MAX; + } + if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { + Py_ssize_t l = ms->sq_length(obj); + if (likely(l >= 0)) { + if (cstop < 0) { + cstop += l; + if (cstop < 0) cstop = 0; + } + if (cstart < 0) { + cstart += l; + if (cstart < 0) cstart = 0; + } + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + goto bad; + PyErr_Clear(); + } + } + return ms->sq_slice(obj, cstart, cstop); + } +#endif + mp = Py_TYPE(obj)->tp_as_mapping; + if (likely(mp && mp->mp_subscript)) +#endif + { + PyObject* result; + PyObject *py_slice, *py_start, *py_stop; + if (_py_slice) { + py_slice = *_py_slice; + } else { + PyObject* owned_start = NULL; + PyObject* owned_stop = NULL; + if (_py_start) { + py_start = *_py_start; + } else { + if (has_cstart) { + owned_start = py_start = PyInt_FromSsize_t(cstart); + if (unlikely(!py_start)) goto bad; + } else + py_start = Py_None; + } + if (_py_stop) { + py_stop = *_py_stop; + } else { + if (has_cstop) { + owned_stop = py_stop = PyInt_FromSsize_t(cstop); + if (unlikely(!py_stop)) { + Py_XDECREF(owned_start); + goto bad; + } + } else + py_stop = Py_None; + } + py_slice = PySlice_New(py_start, py_stop, Py_None); + Py_XDECREF(owned_start); + Py_XDECREF(owned_stop); + if (unlikely(!py_slice)) goto bad; + } +#if CYTHON_USE_TYPE_SLOTS + result = mp->mp_subscript(obj, py_slice); +#else + result = PyObject_GetItem(obj, py_slice); +#endif + if (!_py_slice) { + Py_DECREF(py_slice); + } + return result; + } + PyErr_Format(PyExc_TypeError, + "'%.200s' object is unsliceable", Py_TYPE(obj)->tp_name); +bad: + return NULL; +} + +/* GetItemInt */ +static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { + PyObject *r; + if (!j) return NULL; + r = PyObject_GetItem(o, j); + Py_DECREF(j); + return r; +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyList_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { + PyObject *r = PyList_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + Py_ssize_t wrapped_i = i; + if (wraparound & unlikely(i < 0)) { + wrapped_i += PyTuple_GET_SIZE(o); + } + if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); + Py_INCREF(r); + return r; + } + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +#else + return PySequence_GetItem(o, i); +#endif +} +static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, + CYTHON_NCP_UNUSED int wraparound, + CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); + if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { + PyObject *r = PyList_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } + else if (PyTuple_CheckExact(o)) { + Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); + if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { + PyObject *r = PyTuple_GET_ITEM(o, n); + Py_INCREF(r); + return r; + } + } else { + PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; + if (likely(m && m->sq_item)) { + if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { + Py_ssize_t l = m->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return NULL; + PyErr_Clear(); + } + } + return m->sq_item(o, i); + } + } +#else + if (is_list || PySequence_Check(o)) { + return PySequence_GetItem(o, i); + } +#endif + return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); +} + +/* Import */ +static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { + PyObject *empty_list = 0; + PyObject *module = 0; + PyObject *global_dict = 0; + PyObject *empty_dict = 0; + PyObject *list; + #if PY_MAJOR_VERSION < 3 + PyObject *py_import; + py_import = __Pyx_PyObject_GetAttrStr(__pyx_b, __pyx_n_s_import); + if (!py_import) + goto bad; + #endif + if (from_list) + list = from_list; + else { + empty_list = PyList_New(0); + if (!empty_list) + goto bad; + list = empty_list; + } + global_dict = PyModule_GetDict(__pyx_m); + if (!global_dict) + goto bad; + empty_dict = PyDict_New(); + if (!empty_dict) + goto bad; + { + #if PY_MAJOR_VERSION >= 3 + if (level == -1) { + if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, 1); + if (!module) { + if (!PyErr_ExceptionMatches(PyExc_ImportError)) + goto bad; + PyErr_Clear(); + } + } + level = 0; + } + #endif + if (!module) { + #if PY_MAJOR_VERSION < 3 + PyObject *py_level = PyInt_FromLong(level); + if (!py_level) + goto bad; + module = PyObject_CallFunctionObjArgs(py_import, + name, global_dict, empty_dict, list, py_level, (PyObject *)NULL); + Py_DECREF(py_level); + #else + module = PyImport_ImportModuleLevelObject( + name, global_dict, empty_dict, list, level); + #endif + } + } +bad: + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_import); + #endif + Py_XDECREF(empty_list); + Py_XDECREF(empty_dict); + return module; +} + +/* ImportFrom */ +static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { + PyObject* value = __Pyx_PyObject_GetAttrStr(module, name); + if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Format(PyExc_ImportError, + #if PY_MAJOR_VERSION < 3 + "cannot import name %.230s", PyString_AS_STRING(name)); + #else + "cannot import name %S", name); + #endif + } + return value; +} + +/* ExtTypeTest */ +static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { + if (unlikely(!type)) { + PyErr_SetString(PyExc_SystemError, "Missing type object"); + return 0; + } + if (likely(__Pyx_TypeCheck(obj, type))) + return 1; + PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", + Py_TYPE(obj)->tp_name, type->tp_name); + return 0; +} + +/* RaiseTooManyValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { + PyErr_Format(PyExc_ValueError, + "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); +} + +/* RaiseNeedMoreValuesToUnpack */ +static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { + PyErr_Format(PyExc_ValueError, + "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", + index, (index == 1) ? "" : "s"); +} + +/* IterFinish */ +static CYTHON_INLINE int __Pyx_IterFinish(void) { +#if CYTHON_FAST_THREAD_STATE + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject* exc_type = tstate->curexc_type; + if (unlikely(exc_type)) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) { + PyObject *exc_value, *exc_tb; + exc_value = tstate->curexc_value; + exc_tb = tstate->curexc_traceback; + tstate->curexc_type = 0; + tstate->curexc_value = 0; + tstate->curexc_traceback = 0; + Py_DECREF(exc_type); + Py_XDECREF(exc_value); + Py_XDECREF(exc_tb); + return 0; + } else { + return -1; + } + } + return 0; +#else + if (unlikely(PyErr_Occurred())) { + if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) { + PyErr_Clear(); + return 0; + } else { + return -1; + } + } + return 0; +#endif +} + +/* UnpackItemEndCheck */ +static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected) { + if (unlikely(retval)) { + Py_DECREF(retval); + __Pyx_RaiseTooManyValuesError(expected); + return -1; + } + return __Pyx_IterFinish(); +} + +/* GetAttr */ +static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { +#if CYTHON_USE_TYPE_SLOTS +#if PY_MAJOR_VERSION >= 3 + if (likely(PyUnicode_Check(n))) +#else + if (likely(PyString_Check(n))) +#endif + return __Pyx_PyObject_GetAttrStr(o, n); +#endif + return PyObject_GetAttr(o, n); +} + +/* ObjectGetItem */ +#if CYTHON_USE_TYPE_SLOTS +static PyObject *__Pyx_PyObject_GetIndex(PyObject *obj, PyObject* index) { + PyObject *runerr = NULL; + Py_ssize_t key_value; + PySequenceMethods *m = Py_TYPE(obj)->tp_as_sequence; + if (unlikely(!(m && m->sq_item))) { + PyErr_Format(PyExc_TypeError, "'%.200s' object is not subscriptable", Py_TYPE(obj)->tp_name); + return NULL; + } + key_value = __Pyx_PyIndex_AsSsize_t(index); + if (likely(key_value != -1 || !(runerr = PyErr_Occurred()))) { + return __Pyx_GetItemInt_Fast(obj, key_value, 0, 1, 1); + } + if (PyErr_GivenExceptionMatches(runerr, PyExc_OverflowError)) { + PyErr_Clear(); + PyErr_Format(PyExc_IndexError, "cannot fit '%.200s' into an index-sized integer", Py_TYPE(index)->tp_name); + } + return NULL; +} +static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { + PyMappingMethods *m = Py_TYPE(obj)->tp_as_mapping; + if (likely(m && m->mp_subscript)) { + return m->mp_subscript(obj, key); + } + return __Pyx_PyObject_GetIndex(obj, key); +} +#endif + +/* RaiseDoubleKeywords */ +static void __Pyx_RaiseDoubleKeywordsError( + const char* func_name, + PyObject* kw_name) +{ + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION >= 3 + "%s() got multiple values for keyword argument '%U'", func_name, kw_name); + #else + "%s() got multiple values for keyword argument '%s'", func_name, + PyString_AsString(kw_name)); + #endif +} + +/* ParseKeywords */ +static int __Pyx_ParseOptionalKeywords( + PyObject *kwds, + PyObject **argnames[], + PyObject *kwds2, + PyObject *values[], + Py_ssize_t num_pos_args, + const char* function_name) +{ + PyObject *key = 0, *value = 0; + Py_ssize_t pos = 0; + PyObject*** name; + PyObject*** first_kw_arg = argnames + num_pos_args; + while (PyDict_Next(kwds, &pos, &key, &value)) { + name = first_kw_arg; + while (*name && (**name != key)) name++; + if (*name) { + values[name-argnames] = value; + continue; + } + name = first_kw_arg; + #if PY_MAJOR_VERSION < 3 + if (likely(PyString_Check(key))) { + while (*name) { + if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) + && _PyString_Eq(**name, key)) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + if ((**argname == key) || ( + (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) + && _PyString_Eq(**argname, key))) { + goto arg_passed_twice; + } + argname++; + } + } + } else + #endif + if (likely(PyUnicode_Check(key))) { + while (*name) { + int cmp = (**name == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : + #endif + PyUnicode_Compare(**name, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) { + values[name-argnames] = value; + break; + } + name++; + } + if (*name) continue; + else { + PyObject*** argname = argnames; + while (argname != first_kw_arg) { + int cmp = (**argname == key) ? 0 : + #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 + (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : + #endif + PyUnicode_Compare(**argname, key); + if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; + if (cmp == 0) goto arg_passed_twice; + argname++; + } + } + } else + goto invalid_keyword_type; + if (kwds2) { + if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; + } else { + goto invalid_keyword; + } + } + return 0; +arg_passed_twice: + __Pyx_RaiseDoubleKeywordsError(function_name, key); + goto bad; +invalid_keyword_type: + PyErr_Format(PyExc_TypeError, + "%.200s() keywords must be strings", function_name); + goto bad; +invalid_keyword: + PyErr_Format(PyExc_TypeError, + #if PY_MAJOR_VERSION < 3 + "%.200s() got an unexpected keyword argument '%.200s'", + function_name, PyString_AsString(key)); + #else + "%s() got an unexpected keyword argument '%U'", + function_name, key); + #endif +bad: + return -1; +} + +/* RaiseArgTupleInvalid */ +static void __Pyx_RaiseArgtupleInvalid( + const char* func_name, + int exact, + Py_ssize_t num_min, + Py_ssize_t num_max, + Py_ssize_t num_found) +{ + Py_ssize_t num_expected; + const char *more_or_less; + if (num_found < num_min) { + num_expected = num_min; + more_or_less = "at least"; + } else { + num_expected = num_max; + more_or_less = "at most"; + } + if (exact) { + more_or_less = "exactly"; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", + func_name, more_or_less, num_expected, + (num_expected == 1) ? "" : "s", num_found); +} + +/* ArgTypeTest */ +static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) +{ + if (unlikely(!type)) { + PyErr_SetString(PyExc_SystemError, "Missing type object"); + return 0; + } + else if (exact) { + #if PY_MAJOR_VERSION == 2 + if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; + #endif + } + else { + if (likely(__Pyx_TypeCheck(obj, type))) return 1; + } + PyErr_Format(PyExc_TypeError, + "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", + name, type->tp_name, Py_TYPE(obj)->tp_name); + return 0; +} + +/* PyObjectSetAttrStr */ +#if CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) { + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_setattro)) + return tp->tp_setattro(obj, attr_name, value); +#if PY_MAJOR_VERSION < 3 + if (likely(tp->tp_setattr)) + return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value); +#endif + return PyObject_SetAttr(obj, attr_name, value); +} +#endif + +/* UnpackUnboundCMethod */ +static int __Pyx_TryUnpackUnboundCMethod(__Pyx_CachedCFunction* target) { + PyObject *method; + method = __Pyx_PyObject_GetAttrStr(target->type, *target->method_name); + if (unlikely(!method)) + return -1; + target->method = method; +#if CYTHON_COMPILING_IN_CPYTHON + #if PY_MAJOR_VERSION >= 3 + if (likely(__Pyx_TypeCheck(method, &PyMethodDescr_Type))) + #endif + { + PyMethodDescrObject *descr = (PyMethodDescrObject*) method; + target->func = descr->d_method->ml_meth; + target->flag = descr->d_method->ml_flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_STACKLESS); + } +#endif + return 0; +} + +/* CallUnboundCMethod1 */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg) { + if (likely(cfunc->func)) { + int flag = cfunc->flag; + if (flag == METH_O) { + return (*(cfunc->func))(self, arg); + } else if (PY_VERSION_HEX >= 0x030600B1 && flag == METH_FASTCALL) { + #if PY_VERSION_HEX >= 0x030700A0 + return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, &arg, 1); + #else + return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); + #endif + } else if (PY_VERSION_HEX >= 0x030700A0 && flag == (METH_FASTCALL | METH_KEYWORDS)) { + return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, &arg, 1, NULL); + } + } + return __Pyx__CallUnboundCMethod1(cfunc, self, arg); +} +#endif +static PyObject* __Pyx__CallUnboundCMethod1(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg){ + PyObject *args, *result = NULL; + if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +#if CYTHON_COMPILING_IN_CPYTHON + if (cfunc->func && (cfunc->flag & METH_VARARGS)) { + args = PyTuple_New(1); + if (unlikely(!args)) goto bad; + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 0, arg); + if (cfunc->flag & METH_KEYWORDS) + result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); + else + result = (*cfunc->func)(self, args); + } else { + args = PyTuple_New(2); + if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); + Py_INCREF(arg); + PyTuple_SET_ITEM(args, 1, arg); + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); + } +#else + args = PyTuple_Pack(2, self, arg); + if (unlikely(!args)) goto bad; + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); +#endif +bad: + Py_XDECREF(args); + return result; +} + +/* CallUnboundCMethod2 */ +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030600B1 +static CYTHON_INLINE PyObject *__Pyx_CallUnboundCMethod2(__Pyx_CachedCFunction *cfunc, PyObject *self, PyObject *arg1, PyObject *arg2) { + if (likely(cfunc->func)) { + PyObject *args[2] = {arg1, arg2}; + if (cfunc->flag == METH_FASTCALL) { + #if PY_VERSION_HEX >= 0x030700A0 + return (*(__Pyx_PyCFunctionFast)(void*)(PyCFunction)cfunc->func)(self, args, 2); + #else + return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL); + #endif + } + #if PY_VERSION_HEX >= 0x030700A0 + if (cfunc->flag == (METH_FASTCALL | METH_KEYWORDS)) + return (*(__Pyx_PyCFunctionFastWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, 2, NULL); + #endif + } + return __Pyx__CallUnboundCMethod2(cfunc, self, arg1, arg2); +} +#endif +static PyObject* __Pyx__CallUnboundCMethod2(__Pyx_CachedCFunction* cfunc, PyObject* self, PyObject* arg1, PyObject* arg2){ + PyObject *args, *result = NULL; + if (unlikely(!cfunc->func && !cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +#if CYTHON_COMPILING_IN_CPYTHON + if (cfunc->func && (cfunc->flag & METH_VARARGS)) { + args = PyTuple_New(2); + if (unlikely(!args)) goto bad; + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 0, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 1, arg2); + if (cfunc->flag & METH_KEYWORDS) + result = (*(PyCFunctionWithKeywords)(void*)(PyCFunction)cfunc->func)(self, args, NULL); + else + result = (*cfunc->func)(self, args); + } else { + args = PyTuple_New(3); + if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); + Py_INCREF(arg1); + PyTuple_SET_ITEM(args, 1, arg1); + Py_INCREF(arg2); + PyTuple_SET_ITEM(args, 2, arg2); + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); + } +#else + args = PyTuple_Pack(3, self, arg1, arg2); + if (unlikely(!args)) goto bad; + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); +#endif +bad: + Py_XDECREF(args); + return result; +} + +/* dict_getitem_default */ +static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value) { + PyObject* value; +#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY + value = PyDict_GetItemWithError(d, key); + if (unlikely(!value)) { + if (unlikely(PyErr_Occurred())) + return NULL; + value = default_value; + } + Py_INCREF(value); + if ((1)); +#else + if (PyString_CheckExact(key) || PyUnicode_CheckExact(key) || PyInt_CheckExact(key)) { + value = PyDict_GetItem(d, key); + if (unlikely(!value)) { + value = default_value; + } + Py_INCREF(value); + } +#endif + else { + if (default_value == Py_None) + value = __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_get, d, key); + else + value = __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_get, d, key, default_value); + } + return value; +} + +/* py_dict_pop */ +static CYTHON_INLINE PyObject *__Pyx_PyDict_Pop(PyObject *d, PyObject *key, PyObject *default_value) { +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX > 0x030600B3 + if ((1)) { + return _PyDict_Pop(d, key, default_value); + } else +#endif + if (default_value) { + return __Pyx_CallUnboundCMethod2(&__pyx_umethod_PyDict_Type_pop, d, key, default_value); + } else { + return __Pyx_CallUnboundCMethod1(&__pyx_umethod_PyDict_Type_pop, d, key); + } +} + +/* CallUnboundCMethod0 */ +static PyObject* __Pyx__CallUnboundCMethod0(__Pyx_CachedCFunction* cfunc, PyObject* self) { + PyObject *args, *result = NULL; + if (unlikely(!cfunc->method) && unlikely(__Pyx_TryUnpackUnboundCMethod(cfunc) < 0)) return NULL; +#if CYTHON_ASSUME_SAFE_MACROS + args = PyTuple_New(1); + if (unlikely(!args)) goto bad; + Py_INCREF(self); + PyTuple_SET_ITEM(args, 0, self); +#else + args = PyTuple_Pack(1, self); + if (unlikely(!args)) goto bad; +#endif + result = __Pyx_PyObject_Call(cfunc->method, args, NULL); + Py_DECREF(args); +bad: + return result; +} + +/* py_dict_keys */ +static CYTHON_INLINE PyObject* __Pyx_PyDict_Keys(PyObject* d) { + if (PY_MAJOR_VERSION >= 3) + return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d); + else + return PyDict_Keys(d); +} + +/* MemviewSliceInit */ +static int +__Pyx_init_memviewslice(struct __pyx_memoryview_obj *memview, + int ndim, + __Pyx_memviewslice *memviewslice, + int memview_is_new_reference) +{ + __Pyx_RefNannyDeclarations + int i, retval=-1; + Py_buffer *buf = &memview->view; + __Pyx_RefNannySetupContext("init_memviewslice", 0); + if (unlikely(memviewslice->memview || memviewslice->data)) { + PyErr_SetString(PyExc_ValueError, + "memviewslice is already initialized!"); + goto fail; + } + if (buf->strides) { + for (i = 0; i < ndim; i++) { + memviewslice->strides[i] = buf->strides[i]; + } + } else { + Py_ssize_t stride = buf->itemsize; + for (i = ndim - 1; i >= 0; i--) { + memviewslice->strides[i] = stride; + stride *= buf->shape[i]; + } + } + for (i = 0; i < ndim; i++) { + memviewslice->shape[i] = buf->shape[i]; + if (buf->suboffsets) { + memviewslice->suboffsets[i] = buf->suboffsets[i]; + } else { + memviewslice->suboffsets[i] = -1; + } + } + memviewslice->memview = memview; + memviewslice->data = (char *)buf->buf; + if (__pyx_add_acquisition_count(memview) == 0 && !memview_is_new_reference) { + Py_INCREF(memview); + } + retval = 0; + goto no_fail; +fail: + memviewslice->memview = 0; + memviewslice->data = 0; + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} +#ifndef Py_NO_RETURN +#define Py_NO_RETURN +#endif +static void __pyx_fatalerror(const char *fmt, ...) Py_NO_RETURN { + va_list vargs; + char msg[200]; +#if PY_VERSION_HEX >= 0x030A0000 || defined(HAVE_STDARG_PROTOTYPES) + va_start(vargs, fmt); +#else + va_start(vargs); +#endif + vsnprintf(msg, 200, fmt, vargs); + va_end(vargs); + Py_FatalError(msg); +} +static CYTHON_INLINE int +__pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)++; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE int +__pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count, + PyThread_type_lock lock) +{ + int result; + PyThread_acquire_lock(lock, 1); + result = (*acquisition_count)--; + PyThread_release_lock(lock); + return result; +} +static CYTHON_INLINE void +__Pyx_INC_MEMVIEW(__Pyx_memviewslice *memslice, int have_gil, int lineno) +{ + int first_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (unlikely(!memview || (PyObject *) memview == Py_None)) + return; + if (unlikely(__pyx_get_slice_count(memview) < 0)) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + first_time = __pyx_add_acquisition_count(memview) == 0; + if (unlikely(first_time)) { + if (have_gil) { + Py_INCREF((PyObject *) memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_INCREF((PyObject *) memview); + PyGILState_Release(_gilstate); + } + } +} +static CYTHON_INLINE void __Pyx_XDEC_MEMVIEW(__Pyx_memviewslice *memslice, + int have_gil, int lineno) { + int last_time; + struct __pyx_memoryview_obj *memview = memslice->memview; + if (unlikely(!memview || (PyObject *) memview == Py_None)) { + memslice->memview = NULL; + return; + } + if (unlikely(__pyx_get_slice_count(memview) <= 0)) + __pyx_fatalerror("Acquisition count is %d (line %d)", + __pyx_get_slice_count(memview), lineno); + last_time = __pyx_sub_acquisition_count(memview) == 1; + memslice->data = NULL; + if (unlikely(last_time)) { + if (have_gil) { + Py_CLEAR(memslice->memview); + } else { + PyGILState_STATE _gilstate = PyGILState_Ensure(); + Py_CLEAR(memslice->memview); + PyGILState_Release(_gilstate); + } + } else { + memslice->memview = NULL; + } +} + +/* PyIntCompare */ +static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) { + if (op1 == op2) { + Py_RETURN_TRUE; + } + #if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(op1))) { + const long b = intval; + long a = PyInt_AS_LONG(op1); + if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE; + } + #endif + #if CYTHON_USE_PYLONG_INTERNALS + if (likely(PyLong_CheckExact(op1))) { + int unequal; + unsigned long uintval; + Py_ssize_t size = Py_SIZE(op1); + const digit* digits = ((PyLongObject*)op1)->ob_digit; + if (intval == 0) { + if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; + } else if (intval < 0) { + if (size >= 0) + Py_RETURN_FALSE; + intval = -intval; + size = -size; + } else { + if (size <= 0) + Py_RETURN_FALSE; + } + uintval = (unsigned long) intval; +#if PyLong_SHIFT * 4 < SIZEOF_LONG*8 + if (uintval >> (PyLong_SHIFT * 4)) { + unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) + | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); + } else +#endif +#if PyLong_SHIFT * 3 < SIZEOF_LONG*8 + if (uintval >> (PyLong_SHIFT * 3)) { + unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) + | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); + } else +#endif +#if PyLong_SHIFT * 2 < SIZEOF_LONG*8 + if (uintval >> (PyLong_SHIFT * 2)) { + unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) + | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); + } else +#endif +#if PyLong_SHIFT * 1 < SIZEOF_LONG*8 + if (uintval >> (PyLong_SHIFT * 1)) { + unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) + | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); + } else +#endif + unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); + if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; + } + #endif + if (PyFloat_CheckExact(op1)) { + const long b = intval; + double a = PyFloat_AS_DOUBLE(op1); + if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; + } + return ( + PyObject_RichCompare(op1, op2, Py_EQ)); +} + +/* PyDictVersioning */ +#if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS +static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; +} +static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { + PyObject **dictptr = NULL; + Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; + if (offset) { +#if CYTHON_COMPILING_IN_CPYTHON + dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); +#else + dictptr = _PyObject_GetDictPtr(obj); +#endif + } + return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; +} +static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { + PyObject *dict = Py_TYPE(obj)->tp_dict; + if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) + return 0; + return obj_dict_version == __Pyx_get_object_dict_version(obj); +} +#endif + +/* GetModuleGlobalName */ +#if CYTHON_USE_DICT_VERSIONS +static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) +#else +static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) +#endif +{ + PyObject *result; +#if !CYTHON_AVOID_BORROWED_REFS +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 + result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } else if (unlikely(PyErr_Occurred())) { + return NULL; + } +#else + result = PyDict_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } +#endif +#else + result = PyObject_GetItem(__pyx_d, name); + __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) + if (likely(result)) { + return __Pyx_NewRef(result); + } + PyErr_Clear(); +#endif + return __Pyx_GetBuiltinName(name); +} + +/* SetItemInt */ +static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { + int r; + if (!j) return -1; + r = PyObject_SetItem(o, j, v); + Py_DECREF(j); + return r; +} +static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, + CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { +#if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS + if (is_list || PyList_CheckExact(o)) { + Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); + if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { + PyObject* old = PyList_GET_ITEM(o, n); + Py_INCREF(v); + PyList_SET_ITEM(o, n, v); + Py_DECREF(old); + return 1; + } + } else { + PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; + if (likely(m && m->sq_ass_item)) { + if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { + Py_ssize_t l = m->sq_length(o); + if (likely(l >= 0)) { + i += l; + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + return -1; + PyErr_Clear(); + } + } + return m->sq_ass_item(o, i, v); + } + } +#else +#if CYTHON_COMPILING_IN_PYPY + if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) +#else + if (is_list || PySequence_Check(o)) +#endif + { + return PySequence_SetItem(o, i, v); + } +#endif + return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); +} + +/* PyIntBinop */ +#if !CYTHON_COMPILING_IN_PYPY +static PyObject* __Pyx_PyInt_AddObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, int inplace, int zerodivision_check) { + (void)inplace; + (void)zerodivision_check; + #if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(op1))) { + const long b = intval; + long x; + long a = PyInt_AS_LONG(op1); + x = (long)((unsigned long)a + b); + if (likely((x^a) >= 0 || (x^b) >= 0)) + return PyInt_FromLong(x); + return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + #endif + #if CYTHON_USE_PYLONG_INTERNALS + if (likely(PyLong_CheckExact(op1))) { + const long b = intval; + long a, x; +#ifdef HAVE_LONG_LONG + const PY_LONG_LONG llb = intval; + PY_LONG_LONG lla, llx; +#endif + const digit* digits = ((PyLongObject*)op1)->ob_digit; + const Py_ssize_t size = Py_SIZE(op1); + if (likely(__Pyx_sst_abs(size) <= 1)) { + a = likely(size) ? digits[0] : 0; + if (size == -1) a = -a; + } else { + switch (size) { + case -2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 2: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + a = (long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 2 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 3: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + a = (long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 3 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case -4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = -(PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + case 4: + if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + a = (long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + break; +#ifdef HAVE_LONG_LONG + } else if (8 * sizeof(PY_LONG_LONG) - 1 > 4 * PyLong_SHIFT) { + lla = (PY_LONG_LONG) (((((((((unsigned PY_LONG_LONG)digits[3]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[2]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[1]) << PyLong_SHIFT) | (unsigned PY_LONG_LONG)digits[0])); + goto long_long; +#endif + } + CYTHON_FALLTHROUGH; + default: return PyLong_Type.tp_as_number->nb_add(op1, op2); + } + } + x = a + b; + return PyLong_FromLong(x); +#ifdef HAVE_LONG_LONG + long_long: + llx = lla + llb; + return PyLong_FromLongLong(llx); +#endif + + + } + #endif + if (PyFloat_CheckExact(op1)) { + const long b = intval; + double a = PyFloat_AS_DOUBLE(op1); + double result; + PyFPE_START_PROTECT("add", return NULL) + result = ((double)a) + (double)b; + PyFPE_END_PROTECT(result) + return PyFloat_FromDouble(result); + } + return (inplace ? PyNumber_InPlaceAdd : PyNumber_Add)(op1, op2); +} +#endif + +/* pyfrozenset_new */ +static CYTHON_INLINE PyObject* __Pyx_PyFrozenSet_New(PyObject* it) { + if (it) { + PyObject* result; +#if CYTHON_COMPILING_IN_PYPY + PyObject* args; + args = PyTuple_Pack(1, it); + if (unlikely(!args)) + return NULL; + result = PyObject_Call((PyObject*)&PyFrozenSet_Type, args, NULL); + Py_DECREF(args); + return result; +#else + if (PyFrozenSet_CheckExact(it)) { + Py_INCREF(it); + return it; + } + result = PyFrozenSet_New(it); + if (unlikely(!result)) + return NULL; + if ((PY_VERSION_HEX >= 0x031000A1) || likely(PySet_GET_SIZE(result))) + return result; + Py_DECREF(result); +#endif + } +#if CYTHON_USE_TYPE_SLOTS + return PyFrozenSet_Type.tp_new(&PyFrozenSet_Type, __pyx_empty_tuple, NULL); +#else + return PyObject_Call((PyObject*)&PyFrozenSet_Type, __pyx_empty_tuple, NULL); +#endif +} + +/* PySetContains */ +static int __Pyx_PySet_ContainsUnhashable(PyObject *set, PyObject *key) { + int result = -1; + if (PySet_Check(key) && PyErr_ExceptionMatches(PyExc_TypeError)) { + PyObject *tmpkey; + PyErr_Clear(); + tmpkey = __Pyx_PyFrozenSet_New(key); + if (tmpkey != NULL) { + result = PySet_Contains(set, tmpkey); + Py_DECREF(tmpkey); + } + } + return result; +} +static CYTHON_INLINE int __Pyx_PySet_ContainsTF(PyObject* key, PyObject* set, int eq) { + int result = PySet_Contains(set, key); + if (unlikely(result < 0)) { + result = __Pyx_PySet_ContainsUnhashable(set, key); + } + return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); +} + +/* StringJoin */ +#if !CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE PyObject* __Pyx_PyBytes_Join(PyObject* sep, PyObject* values) { + return PyObject_CallMethodObjArgs(sep, __pyx_n_s_join, values, NULL); +} +#endif + +/* append */ +static CYTHON_INLINE int __Pyx_PyObject_Append(PyObject* L, PyObject* x) { + if (likely(PyList_CheckExact(L))) { + if (unlikely(__Pyx_PyList_Append(L, x) < 0)) return -1; + } else { + PyObject* retval = __Pyx_PyObject_CallMethod1(L, __pyx_n_s_append, x); + if (unlikely(!retval)) + return -1; + Py_DECREF(retval); + } + return 0; +} + +/* None */ +static CYTHON_INLINE void __Pyx_RaiseClosureNameError(const char *varname) { + PyErr_Format(PyExc_NameError, "free variable '%s' referenced before assignment in enclosing scope", varname); +} + +/* GetAttr3 */ +static PyObject *__Pyx_GetAttr3Default(PyObject *d) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + __Pyx_PyErr_Clear(); + Py_INCREF(d); + return d; +} +static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject *d) { + PyObject *r = __Pyx_GetAttr(o, n); + return (likely(r)) ? r : __Pyx_GetAttr3Default(d); +} + +/* FetchCommonType */ +static PyTypeObject* __Pyx_FetchCommonType(PyTypeObject* type) { + PyObject* fake_module; + PyTypeObject* cached_type = NULL; + fake_module = PyImport_AddModule((char*) "_cython_" CYTHON_ABI); + if (!fake_module) return NULL; + Py_INCREF(fake_module); + cached_type = (PyTypeObject*) PyObject_GetAttrString(fake_module, type->tp_name); + if (cached_type) { + if (!PyType_Check((PyObject*)cached_type)) { + PyErr_Format(PyExc_TypeError, + "Shared Cython type %.200s is not a type object", + type->tp_name); + goto bad; + } + if (cached_type->tp_basicsize != type->tp_basicsize) { + PyErr_Format(PyExc_TypeError, + "Shared Cython type %.200s has the wrong size, try recompiling", + type->tp_name); + goto bad; + } + } else { + if (!PyErr_ExceptionMatches(PyExc_AttributeError)) goto bad; + PyErr_Clear(); + if (PyType_Ready(type) < 0) goto bad; + if (PyObject_SetAttrString(fake_module, type->tp_name, (PyObject*) type) < 0) + goto bad; + Py_INCREF(type); + cached_type = type; + } +done: + Py_DECREF(fake_module); + return cached_type; +bad: + Py_XDECREF(cached_type); + cached_type = NULL; + goto done; +} + +/* CythonFunctionShared */ +#include +static PyObject * +__Pyx_CyFunction_get_doc(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *closure) +{ + if (unlikely(op->func_doc == NULL)) { + if (op->func.m_ml->ml_doc) { +#if PY_MAJOR_VERSION >= 3 + op->func_doc = PyUnicode_FromString(op->func.m_ml->ml_doc); +#else + op->func_doc = PyString_FromString(op->func.m_ml->ml_doc); +#endif + if (unlikely(op->func_doc == NULL)) + return NULL; + } else { + Py_INCREF(Py_None); + return Py_None; + } + } + Py_INCREF(op->func_doc); + return op->func_doc; +} +static int +__Pyx_CyFunction_set_doc(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) +{ + PyObject *tmp = op->func_doc; + if (value == NULL) { + value = Py_None; + } + Py_INCREF(value); + op->func_doc = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_name(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + if (unlikely(op->func_name == NULL)) { +#if PY_MAJOR_VERSION >= 3 + op->func_name = PyUnicode_InternFromString(op->func.m_ml->ml_name); +#else + op->func_name = PyString_InternFromString(op->func.m_ml->ml_name); +#endif + if (unlikely(op->func_name == NULL)) + return NULL; + } + Py_INCREF(op->func_name); + return op->func_name; +} +static int +__Pyx_CyFunction_set_name(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) +{ + PyObject *tmp; +#if PY_MAJOR_VERSION >= 3 + if (unlikely(value == NULL || !PyUnicode_Check(value))) +#else + if (unlikely(value == NULL || !PyString_Check(value))) +#endif + { + PyErr_SetString(PyExc_TypeError, + "__name__ must be set to a string object"); + return -1; + } + tmp = op->func_name; + Py_INCREF(value); + op->func_name = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_qualname(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + Py_INCREF(op->func_qualname); + return op->func_qualname; +} +static int +__Pyx_CyFunction_set_qualname(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) +{ + PyObject *tmp; +#if PY_MAJOR_VERSION >= 3 + if (unlikely(value == NULL || !PyUnicode_Check(value))) +#else + if (unlikely(value == NULL || !PyString_Check(value))) +#endif + { + PyErr_SetString(PyExc_TypeError, + "__qualname__ must be set to a string object"); + return -1; + } + tmp = op->func_qualname; + Py_INCREF(value); + op->func_qualname = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_self(__pyx_CyFunctionObject *m, CYTHON_UNUSED void *closure) +{ + PyObject *self; + self = m->func_closure; + if (self == NULL) + self = Py_None; + Py_INCREF(self); + return self; +} +static PyObject * +__Pyx_CyFunction_get_dict(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + if (unlikely(op->func_dict == NULL)) { + op->func_dict = PyDict_New(); + if (unlikely(op->func_dict == NULL)) + return NULL; + } + Py_INCREF(op->func_dict); + return op->func_dict; +} +static int +__Pyx_CyFunction_set_dict(__pyx_CyFunctionObject *op, PyObject *value, CYTHON_UNUSED void *context) +{ + PyObject *tmp; + if (unlikely(value == NULL)) { + PyErr_SetString(PyExc_TypeError, + "function's dictionary may not be deleted"); + return -1; + } + if (unlikely(!PyDict_Check(value))) { + PyErr_SetString(PyExc_TypeError, + "setting function's dictionary to a non-dict"); + return -1; + } + tmp = op->func_dict; + Py_INCREF(value); + op->func_dict = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_globals(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + Py_INCREF(op->func_globals); + return op->func_globals; +} +static PyObject * +__Pyx_CyFunction_get_closure(CYTHON_UNUSED __pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + Py_INCREF(Py_None); + return Py_None; +} +static PyObject * +__Pyx_CyFunction_get_code(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) +{ + PyObject* result = (op->func_code) ? op->func_code : Py_None; + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_init_defaults(__pyx_CyFunctionObject *op) { + int result = 0; + PyObject *res = op->defaults_getter((PyObject *) op); + if (unlikely(!res)) + return -1; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + op->defaults_tuple = PyTuple_GET_ITEM(res, 0); + Py_INCREF(op->defaults_tuple); + op->defaults_kwdict = PyTuple_GET_ITEM(res, 1); + Py_INCREF(op->defaults_kwdict); + #else + op->defaults_tuple = PySequence_ITEM(res, 0); + if (unlikely(!op->defaults_tuple)) result = -1; + else { + op->defaults_kwdict = PySequence_ITEM(res, 1); + if (unlikely(!op->defaults_kwdict)) result = -1; + } + #endif + Py_DECREF(res); + return result; +} +static int +__Pyx_CyFunction_set_defaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { + PyObject* tmp; + if (!value) { + value = Py_None; + } else if (value != Py_None && !PyTuple_Check(value)) { + PyErr_SetString(PyExc_TypeError, + "__defaults__ must be set to a tuple object"); + return -1; + } + Py_INCREF(value); + tmp = op->defaults_tuple; + op->defaults_tuple = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_defaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { + PyObject* result = op->defaults_tuple; + if (unlikely(!result)) { + if (op->defaults_getter) { + if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; + result = op->defaults_tuple; + } else { + result = Py_None; + } + } + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_set_kwdefaults(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { + PyObject* tmp; + if (!value) { + value = Py_None; + } else if (value != Py_None && !PyDict_Check(value)) { + PyErr_SetString(PyExc_TypeError, + "__kwdefaults__ must be set to a dict object"); + return -1; + } + Py_INCREF(value); + tmp = op->defaults_kwdict; + op->defaults_kwdict = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_kwdefaults(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { + PyObject* result = op->defaults_kwdict; + if (unlikely(!result)) { + if (op->defaults_getter) { + if (__Pyx_CyFunction_init_defaults(op) < 0) return NULL; + result = op->defaults_kwdict; + } else { + result = Py_None; + } + } + Py_INCREF(result); + return result; +} +static int +__Pyx_CyFunction_set_annotations(__pyx_CyFunctionObject *op, PyObject* value, CYTHON_UNUSED void *context) { + PyObject* tmp; + if (!value || value == Py_None) { + value = NULL; + } else if (!PyDict_Check(value)) { + PyErr_SetString(PyExc_TypeError, + "__annotations__ must be set to a dict object"); + return -1; + } + Py_XINCREF(value); + tmp = op->func_annotations; + op->func_annotations = value; + Py_XDECREF(tmp); + return 0; +} +static PyObject * +__Pyx_CyFunction_get_annotations(__pyx_CyFunctionObject *op, CYTHON_UNUSED void *context) { + PyObject* result = op->func_annotations; + if (unlikely(!result)) { + result = PyDict_New(); + if (unlikely(!result)) return NULL; + op->func_annotations = result; + } + Py_INCREF(result); + return result; +} +static PyGetSetDef __pyx_CyFunction_getsets[] = { + {(char *) "func_doc", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, + {(char *) "__doc__", (getter)__Pyx_CyFunction_get_doc, (setter)__Pyx_CyFunction_set_doc, 0, 0}, + {(char *) "func_name", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, + {(char *) "__name__", (getter)__Pyx_CyFunction_get_name, (setter)__Pyx_CyFunction_set_name, 0, 0}, + {(char *) "__qualname__", (getter)__Pyx_CyFunction_get_qualname, (setter)__Pyx_CyFunction_set_qualname, 0, 0}, + {(char *) "__self__", (getter)__Pyx_CyFunction_get_self, 0, 0, 0}, + {(char *) "func_dict", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, + {(char *) "__dict__", (getter)__Pyx_CyFunction_get_dict, (setter)__Pyx_CyFunction_set_dict, 0, 0}, + {(char *) "func_globals", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, + {(char *) "__globals__", (getter)__Pyx_CyFunction_get_globals, 0, 0, 0}, + {(char *) "func_closure", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, + {(char *) "__closure__", (getter)__Pyx_CyFunction_get_closure, 0, 0, 0}, + {(char *) "func_code", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, + {(char *) "__code__", (getter)__Pyx_CyFunction_get_code, 0, 0, 0}, + {(char *) "func_defaults", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, + {(char *) "__defaults__", (getter)__Pyx_CyFunction_get_defaults, (setter)__Pyx_CyFunction_set_defaults, 0, 0}, + {(char *) "__kwdefaults__", (getter)__Pyx_CyFunction_get_kwdefaults, (setter)__Pyx_CyFunction_set_kwdefaults, 0, 0}, + {(char *) "__annotations__", (getter)__Pyx_CyFunction_get_annotations, (setter)__Pyx_CyFunction_set_annotations, 0, 0}, + {0, 0, 0, 0, 0} +}; +static PyMemberDef __pyx_CyFunction_members[] = { + {(char *) "__module__", T_OBJECT, offsetof(PyCFunctionObject, m_module), PY_WRITE_RESTRICTED, 0}, + {0, 0, 0, 0, 0} +}; +static PyObject * +__Pyx_CyFunction_reduce(__pyx_CyFunctionObject *m, CYTHON_UNUSED PyObject *args) +{ +#if PY_MAJOR_VERSION >= 3 + Py_INCREF(m->func_qualname); + return m->func_qualname; +#else + return PyString_FromString(m->func.m_ml->ml_name); +#endif +} +static PyMethodDef __pyx_CyFunction_methods[] = { + {"__reduce__", (PyCFunction)__Pyx_CyFunction_reduce, METH_VARARGS, 0}, + {0, 0, 0, 0} +}; +#if PY_VERSION_HEX < 0x030500A0 +#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func_weakreflist) +#else +#define __Pyx_CyFunction_weakreflist(cyfunc) ((cyfunc)->func.m_weakreflist) +#endif +static PyObject *__Pyx_CyFunction_Init(__pyx_CyFunctionObject *op, PyMethodDef *ml, int flags, PyObject* qualname, + PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { + if (unlikely(op == NULL)) + return NULL; + op->flags = flags; + __Pyx_CyFunction_weakreflist(op) = NULL; + op->func.m_ml = ml; + op->func.m_self = (PyObject *) op; + Py_XINCREF(closure); + op->func_closure = closure; + Py_XINCREF(module); + op->func.m_module = module; + op->func_dict = NULL; + op->func_name = NULL; + Py_INCREF(qualname); + op->func_qualname = qualname; + op->func_doc = NULL; + op->func_classobj = NULL; + op->func_globals = globals; + Py_INCREF(op->func_globals); + Py_XINCREF(code); + op->func_code = code; + op->defaults_pyobjects = 0; + op->defaults_size = 0; + op->defaults = NULL; + op->defaults_tuple = NULL; + op->defaults_kwdict = NULL; + op->defaults_getter = NULL; + op->func_annotations = NULL; + return (PyObject *) op; +} +static int +__Pyx_CyFunction_clear(__pyx_CyFunctionObject *m) +{ + Py_CLEAR(m->func_closure); + Py_CLEAR(m->func.m_module); + Py_CLEAR(m->func_dict); + Py_CLEAR(m->func_name); + Py_CLEAR(m->func_qualname); + Py_CLEAR(m->func_doc); + Py_CLEAR(m->func_globals); + Py_CLEAR(m->func_code); + Py_CLEAR(m->func_classobj); + Py_CLEAR(m->defaults_tuple); + Py_CLEAR(m->defaults_kwdict); + Py_CLEAR(m->func_annotations); + if (m->defaults) { + PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); + int i; + for (i = 0; i < m->defaults_pyobjects; i++) + Py_XDECREF(pydefaults[i]); + PyObject_Free(m->defaults); + m->defaults = NULL; + } + return 0; +} +static void __Pyx__CyFunction_dealloc(__pyx_CyFunctionObject *m) +{ + if (__Pyx_CyFunction_weakreflist(m) != NULL) + PyObject_ClearWeakRefs((PyObject *) m); + __Pyx_CyFunction_clear(m); + PyObject_GC_Del(m); +} +static void __Pyx_CyFunction_dealloc(__pyx_CyFunctionObject *m) +{ + PyObject_GC_UnTrack(m); + __Pyx__CyFunction_dealloc(m); +} +static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg) +{ + Py_VISIT(m->func_closure); + Py_VISIT(m->func.m_module); + Py_VISIT(m->func_dict); + Py_VISIT(m->func_name); + Py_VISIT(m->func_qualname); + Py_VISIT(m->func_doc); + Py_VISIT(m->func_globals); + Py_VISIT(m->func_code); + Py_VISIT(m->func_classobj); + Py_VISIT(m->defaults_tuple); + Py_VISIT(m->defaults_kwdict); + if (m->defaults) { + PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m); + int i; + for (i = 0; i < m->defaults_pyobjects; i++) + Py_VISIT(pydefaults[i]); + } + return 0; +} +static PyObject *__Pyx_CyFunction_descr_get(PyObject *func, PyObject *obj, PyObject *type) +{ +#if PY_MAJOR_VERSION < 3 + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + if (m->flags & __Pyx_CYFUNCTION_STATICMETHOD) { + Py_INCREF(func); + return func; + } + if (m->flags & __Pyx_CYFUNCTION_CLASSMETHOD) { + if (type == NULL) + type = (PyObject *)(Py_TYPE(obj)); + return __Pyx_PyMethod_New(func, type, (PyObject *)(Py_TYPE(type))); + } + if (obj == Py_None) + obj = NULL; +#endif + return __Pyx_PyMethod_New(func, obj, type); +} +static PyObject* +__Pyx_CyFunction_repr(__pyx_CyFunctionObject *op) +{ +#if PY_MAJOR_VERSION >= 3 + return PyUnicode_FromFormat("", + op->func_qualname, (void *)op); +#else + return PyString_FromFormat("", + PyString_AsString(op->func_qualname), (void *)op); +#endif +} +static PyObject * __Pyx_CyFunction_CallMethod(PyObject *func, PyObject *self, PyObject *arg, PyObject *kw) { + PyCFunctionObject* f = (PyCFunctionObject*)func; + PyCFunction meth = f->m_ml->ml_meth; + Py_ssize_t size; + switch (f->m_ml->ml_flags & (METH_VARARGS | METH_KEYWORDS | METH_NOARGS | METH_O)) { + case METH_VARARGS: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) + return (*meth)(self, arg); + break; + case METH_VARARGS | METH_KEYWORDS: + return (*(PyCFunctionWithKeywords)(void*)meth)(self, arg, kw); + case METH_NOARGS: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) { + size = PyTuple_GET_SIZE(arg); + if (likely(size == 0)) + return (*meth)(self, NULL); + PyErr_Format(PyExc_TypeError, + "%.200s() takes no arguments (%" CYTHON_FORMAT_SSIZE_T "d given)", + f->m_ml->ml_name, size); + return NULL; + } + break; + case METH_O: + if (likely(kw == NULL || PyDict_Size(kw) == 0)) { + size = PyTuple_GET_SIZE(arg); + if (likely(size == 1)) { + PyObject *result, *arg0; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + arg0 = PyTuple_GET_ITEM(arg, 0); + #else + arg0 = PySequence_ITEM(arg, 0); if (unlikely(!arg0)) return NULL; + #endif + result = (*meth)(self, arg0); + #if !(CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS) + Py_DECREF(arg0); + #endif + return result; + } + PyErr_Format(PyExc_TypeError, + "%.200s() takes exactly one argument (%" CYTHON_FORMAT_SSIZE_T "d given)", + f->m_ml->ml_name, size); + return NULL; + } + break; + default: + PyErr_SetString(PyExc_SystemError, "Bad call flags in " + "__Pyx_CyFunction_Call. METH_OLDARGS is no " + "longer supported!"); + return NULL; + } + PyErr_Format(PyExc_TypeError, "%.200s() takes no keyword arguments", + f->m_ml->ml_name); + return NULL; +} +static CYTHON_INLINE PyObject *__Pyx_CyFunction_Call(PyObject *func, PyObject *arg, PyObject *kw) { + return __Pyx_CyFunction_CallMethod(func, ((PyCFunctionObject*)func)->m_self, arg, kw); +} +static PyObject *__Pyx_CyFunction_CallAsMethod(PyObject *func, PyObject *args, PyObject *kw) { + PyObject *result; + __pyx_CyFunctionObject *cyfunc = (__pyx_CyFunctionObject *) func; + if ((cyfunc->flags & __Pyx_CYFUNCTION_CCLASS) && !(cyfunc->flags & __Pyx_CYFUNCTION_STATICMETHOD)) { + Py_ssize_t argc; + PyObject *new_args; + PyObject *self; + argc = PyTuple_GET_SIZE(args); + new_args = PyTuple_GetSlice(args, 1, argc); + if (unlikely(!new_args)) + return NULL; + self = PyTuple_GetItem(args, 0); + if (unlikely(!self)) { + Py_DECREF(new_args); +#if PY_MAJOR_VERSION > 2 + PyErr_Format(PyExc_TypeError, + "unbound method %.200S() needs an argument", + cyfunc->func_qualname); +#else + PyErr_SetString(PyExc_TypeError, + "unbound method needs an argument"); +#endif + return NULL; + } + result = __Pyx_CyFunction_CallMethod(func, self, new_args, kw); + Py_DECREF(new_args); + } else { + result = __Pyx_CyFunction_Call(func, args, kw); + } + return result; +} +static PyTypeObject __pyx_CyFunctionType_type = { + PyVarObject_HEAD_INIT(0, 0) + "cython_function_or_method", + sizeof(__pyx_CyFunctionObject), + 0, + (destructor) __Pyx_CyFunction_dealloc, + 0, + 0, + 0, +#if PY_MAJOR_VERSION < 3 + 0, +#else + 0, +#endif + (reprfunc) __Pyx_CyFunction_repr, + 0, + 0, + 0, + 0, + __Pyx_CyFunction_CallAsMethod, + 0, + 0, + 0, + 0, + Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, + 0, + (traverseproc) __Pyx_CyFunction_traverse, + (inquiry) __Pyx_CyFunction_clear, + 0, +#if PY_VERSION_HEX < 0x030500A0 + offsetof(__pyx_CyFunctionObject, func_weakreflist), +#else + offsetof(PyCFunctionObject, m_weakreflist), +#endif + 0, + 0, + __pyx_CyFunction_methods, + __pyx_CyFunction_members, + __pyx_CyFunction_getsets, + 0, + 0, + __Pyx_CyFunction_descr_get, + 0, + offsetof(__pyx_CyFunctionObject, func_dict), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +#if PY_VERSION_HEX >= 0x030400a1 + 0, +#endif +#if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, +#endif +#if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, +#endif +#if PY_VERSION_HEX >= 0x030C0000 + 0, +#endif +#if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 && PY_VERSION_HEX < 0x030a0000 + 0, +#endif +}; +static int __pyx_CyFunction_init(void) { + __pyx_CyFunctionType = __Pyx_FetchCommonType(&__pyx_CyFunctionType_type); + if (unlikely(__pyx_CyFunctionType == NULL)) { + return -1; + } + return 0; +} +static CYTHON_INLINE void *__Pyx_CyFunction_InitDefaults(PyObject *func, size_t size, int pyobjects) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults = PyObject_Malloc(size); + if (unlikely(!m->defaults)) + return PyErr_NoMemory(); + memset(m->defaults, 0, size); + m->defaults_pyobjects = pyobjects; + m->defaults_size = size; + return m->defaults; +} +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsTuple(PyObject *func, PyObject *tuple) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults_tuple = tuple; + Py_INCREF(tuple); +} +static CYTHON_INLINE void __Pyx_CyFunction_SetDefaultsKwDict(PyObject *func, PyObject *dict) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->defaults_kwdict = dict; + Py_INCREF(dict); +} +static CYTHON_INLINE void __Pyx_CyFunction_SetAnnotationsDict(PyObject *func, PyObject *dict) { + __pyx_CyFunctionObject *m = (__pyx_CyFunctionObject *) func; + m->func_annotations = dict; + Py_INCREF(dict); +} + +/* CythonFunction */ +static PyObject *__Pyx_CyFunction_New(PyMethodDef *ml, int flags, PyObject* qualname, + PyObject *closure, PyObject *module, PyObject* globals, PyObject* code) { + PyObject *op = __Pyx_CyFunction_Init( + PyObject_GC_New(__pyx_CyFunctionObject, __pyx_CyFunctionType), + ml, flags, qualname, closure, module, globals, code + ); + if (likely(op)) { + PyObject_GC_Track(op); + } + return op; +} + +/* PyObjectCallMethod0 */ +static PyObject* __Pyx_PyObject_CallMethod0(PyObject* obj, PyObject* method_name) { + PyObject *method = NULL, *result = NULL; + int is_method = __Pyx_PyObject_GetMethod(obj, method_name, &method); + if (likely(is_method)) { + result = __Pyx_PyObject_CallOneArg(method, obj); + Py_DECREF(method); + return result; + } + if (unlikely(!method)) goto bad; + result = __Pyx_PyObject_CallNoArg(method); + Py_DECREF(method); +bad: + return result; +} + +/* pop */ +static CYTHON_INLINE PyObject* __Pyx__PyObject_Pop(PyObject* L) { + if (Py_TYPE(L) == &PySet_Type) { + return PySet_Pop(L); + } + return __Pyx_PyObject_CallMethod0(L, __pyx_n_s_pop); +} +#if CYTHON_USE_PYLIST_INTERNALS && CYTHON_ASSUME_SAFE_MACROS +static CYTHON_INLINE PyObject* __Pyx_PyList_Pop(PyObject* L) { + if (likely(PyList_GET_SIZE(L) > (((PyListObject*)L)->allocated >> 1))) { + __Pyx_SET_SIZE(L, Py_SIZE(L) - 1); + return PyList_GET_ITEM(L, PyList_GET_SIZE(L)); + } + return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyList_Type_pop, L); +} +#endif + +/* DictGetItem */ +#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY +static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { + PyObject *value; + value = PyDict_GetItemWithError(d, key); + if (unlikely(!value)) { + if (!PyErr_Occurred()) { + if (unlikely(PyTuple_Check(key))) { + PyObject* args = PyTuple_Pack(1, key); + if (likely(args)) { + PyErr_SetObject(PyExc_KeyError, args); + Py_DECREF(args); + } + } else { + PyErr_SetObject(PyExc_KeyError, key); + } + } + return NULL; + } + Py_INCREF(value); + return value; +} +#endif + +/* SliceObject */ +static CYTHON_INLINE int __Pyx_PyObject_SetSlice(PyObject* obj, PyObject* value, + Py_ssize_t cstart, Py_ssize_t cstop, + PyObject** _py_start, PyObject** _py_stop, PyObject** _py_slice, + int has_cstart, int has_cstop, CYTHON_UNUSED int wraparound) { +#if CYTHON_USE_TYPE_SLOTS + PyMappingMethods* mp; +#if PY_MAJOR_VERSION < 3 + PySequenceMethods* ms = Py_TYPE(obj)->tp_as_sequence; + if (likely(ms && ms->sq_ass_slice)) { + if (!has_cstart) { + if (_py_start && (*_py_start != Py_None)) { + cstart = __Pyx_PyIndex_AsSsize_t(*_py_start); + if ((cstart == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; + } else + cstart = 0; + } + if (!has_cstop) { + if (_py_stop && (*_py_stop != Py_None)) { + cstop = __Pyx_PyIndex_AsSsize_t(*_py_stop); + if ((cstop == (Py_ssize_t)-1) && PyErr_Occurred()) goto bad; + } else + cstop = PY_SSIZE_T_MAX; + } + if (wraparound && unlikely((cstart < 0) | (cstop < 0)) && likely(ms->sq_length)) { + Py_ssize_t l = ms->sq_length(obj); + if (likely(l >= 0)) { + if (cstop < 0) { + cstop += l; + if (cstop < 0) cstop = 0; + } + if (cstart < 0) { + cstart += l; + if (cstart < 0) cstart = 0; + } + } else { + if (!PyErr_ExceptionMatches(PyExc_OverflowError)) + goto bad; + PyErr_Clear(); + } + } + return ms->sq_ass_slice(obj, cstart, cstop, value); + } +#endif + mp = Py_TYPE(obj)->tp_as_mapping; + if (likely(mp && mp->mp_ass_subscript)) +#endif + { + int result; + PyObject *py_slice, *py_start, *py_stop; + if (_py_slice) { + py_slice = *_py_slice; + } else { + PyObject* owned_start = NULL; + PyObject* owned_stop = NULL; + if (_py_start) { + py_start = *_py_start; + } else { + if (has_cstart) { + owned_start = py_start = PyInt_FromSsize_t(cstart); + if (unlikely(!py_start)) goto bad; + } else + py_start = Py_None; + } + if (_py_stop) { + py_stop = *_py_stop; + } else { + if (has_cstop) { + owned_stop = py_stop = PyInt_FromSsize_t(cstop); + if (unlikely(!py_stop)) { + Py_XDECREF(owned_start); + goto bad; + } + } else + py_stop = Py_None; + } + py_slice = PySlice_New(py_start, py_stop, Py_None); + Py_XDECREF(owned_start); + Py_XDECREF(owned_stop); + if (unlikely(!py_slice)) goto bad; + } +#if CYTHON_USE_TYPE_SLOTS + result = mp->mp_ass_subscript(obj, py_slice, value); +#else + result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice); +#endif + if (!_py_slice) { + Py_DECREF(py_slice); + } + return result; + } + PyErr_Format(PyExc_TypeError, + "'%.200s' object does not support slice %.10s", + Py_TYPE(obj)->tp_name, value ? "assignment" : "deletion"); +bad: + return -1; +} + +/* SliceTupleAndList */ +#if CYTHON_COMPILING_IN_CPYTHON +static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop, Py_ssize_t* _length) { + Py_ssize_t start = *_start, stop = *_stop, length = *_length; + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + else if (stop > length) + stop = length; + *_length = stop - start; + *_start = start; + *_stop = stop; +} +static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) { + PyObject *v; + Py_ssize_t i; + for (i = 0; i < length; i++) { + v = dest[i] = src[i]; + Py_INCREF(v); + } +} +static CYTHON_INLINE PyObject* __Pyx_PyList_GetSlice( + PyObject* src, Py_ssize_t start, Py_ssize_t stop) { + PyObject* dest; + Py_ssize_t length = PyList_GET_SIZE(src); + __Pyx_crop_slice(&start, &stop, &length); + if (unlikely(length <= 0)) + return PyList_New(0); + dest = PyList_New(length); + if (unlikely(!dest)) + return NULL; + __Pyx_copy_object_array( + ((PyListObject*)src)->ob_item + start, + ((PyListObject*)dest)->ob_item, + length); + return dest; +} +static CYTHON_INLINE PyObject* __Pyx_PyTuple_GetSlice( + PyObject* src, Py_ssize_t start, Py_ssize_t stop) { + PyObject* dest; + Py_ssize_t length = PyTuple_GET_SIZE(src); + __Pyx_crop_slice(&start, &stop, &length); + if (unlikely(length <= 0)) + return PyTuple_New(0); + dest = PyTuple_New(length); + if (unlikely(!dest)) + return NULL; + __Pyx_copy_object_array( + ((PyTupleObject*)src)->ob_item + start, + ((PyTupleObject*)dest)->ob_item, + length); + return dest; +} +#endif + +/* PyExec */ +static CYTHON_INLINE PyObject* __Pyx_PyExec2(PyObject* o, PyObject* globals) { + return __Pyx_PyExec3(o, globals, NULL); +} +static PyObject* __Pyx_PyExec3(PyObject* o, PyObject* globals, PyObject* locals) { + PyObject* result; + PyObject* s = 0; + char *code = 0; + if (!globals || globals == Py_None) { + globals = __pyx_d; + } else if (!PyDict_Check(globals)) { + PyErr_Format(PyExc_TypeError, "exec() arg 2 must be a dict, not %.200s", + Py_TYPE(globals)->tp_name); + goto bad; + } + if (!locals || locals == Py_None) { + locals = globals; + } + if (__Pyx_PyDict_GetItemStr(globals, __pyx_n_s_builtins) == NULL) { + if (PyDict_SetItem(globals, __pyx_n_s_builtins, PyEval_GetBuiltins()) < 0) + goto bad; + } + if (PyCode_Check(o)) { + if (__Pyx_PyCode_HasFreeVars((PyCodeObject *)o)) { + PyErr_SetString(PyExc_TypeError, + "code object passed to exec() may not contain free variables"); + goto bad; + } + #if PY_VERSION_HEX < 0x030200B1 || (CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM < 0x07030400) + result = PyEval_EvalCode((PyCodeObject *)o, globals, locals); + #else + result = PyEval_EvalCode(o, globals, locals); + #endif + } else { + PyCompilerFlags cf; + cf.cf_flags = 0; +#if PY_VERSION_HEX >= 0x030800A3 + cf.cf_feature_version = PY_MINOR_VERSION; +#endif + if (PyUnicode_Check(o)) { + cf.cf_flags = PyCF_SOURCE_IS_UTF8; + s = PyUnicode_AsUTF8String(o); + if (!s) goto bad; + o = s; + #if PY_MAJOR_VERSION >= 3 + } else if (!PyBytes_Check(o)) { + #else + } else if (!PyString_Check(o)) { + #endif + PyErr_Format(PyExc_TypeError, + "exec: arg 1 must be string, bytes or code object, got %.200s", + Py_TYPE(o)->tp_name); + goto bad; + } + #if PY_MAJOR_VERSION >= 3 + code = PyBytes_AS_STRING(o); + #else + code = PyString_AS_STRING(o); + #endif + if (PyEval_MergeCompilerFlags(&cf)) { + result = PyRun_StringFlags(code, Py_file_input, globals, locals, &cf); + } else { + result = PyRun_String(code, Py_file_input, globals, locals); + } + Py_XDECREF(s); + } + return result; +bad: + Py_XDECREF(s); + return 0; +} + +/* None */ +static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) { + PyErr_Format(PyExc_UnboundLocalError, "local variable '%s' referenced before assignment", varname); +} + +/* HasAttr */ +static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { + PyObject *r; + if (unlikely(!__Pyx_PyBaseString_Check(n))) { + PyErr_SetString(PyExc_TypeError, + "hasattr(): attribute name must be string"); + return -1; + } + r = __Pyx_GetAttr(o, n); + if (unlikely(!r)) { + PyErr_Clear(); + return 0; + } else { + Py_DECREF(r); + return 1; + } +} + +/* decode_c_string */ +static CYTHON_INLINE PyObject* __Pyx_decode_c_string( + const char* cstring, Py_ssize_t start, Py_ssize_t stop, + const char* encoding, const char* errors, + PyObject* (*decode_func)(const char *s, Py_ssize_t size, const char *errors)) { + Py_ssize_t length; + if (unlikely((start < 0) | (stop < 0))) { + size_t slen = strlen(cstring); + if (unlikely(slen > (size_t) PY_SSIZE_T_MAX)) { + PyErr_SetString(PyExc_OverflowError, + "c-string too long to convert to Python"); + return NULL; + } + length = (Py_ssize_t) slen; + if (start < 0) { + start += length; + if (start < 0) + start = 0; + } + if (stop < 0) + stop += length; + } + if (unlikely(stop <= start)) + return __Pyx_NewRef(__pyx_empty_unicode); + length = stop - start; + cstring += start; + if (decode_func) { + return decode_func(cstring, length, errors); + } else { + return PyUnicode_Decode(cstring, length, encoding, errors); + } +} + +/* RaiseNoneIterError */ +static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { + PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); +} + +/* FastTypeChecks */ +#if CYTHON_COMPILING_IN_CPYTHON +static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { + while (a) { + a = a->tp_base; + if (a == b) + return 1; + } + return b == &PyBaseObject_Type; +} +static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { + PyObject *mro; + if (a == b) return 1; + mro = a->tp_mro; + if (likely(mro)) { + Py_ssize_t i, n; + n = PyTuple_GET_SIZE(mro); + for (i = 0; i < n; i++) { + if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) + return 1; + } + return 0; + } + return __Pyx_InBases(a, b); +} +#if PY_MAJOR_VERSION == 2 +static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { + PyObject *exception, *value, *tb; + int res; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ErrFetch(&exception, &value, &tb); + res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + if (!res) { + res = PyObject_IsSubclass(err, exc_type2); + if (unlikely(res == -1)) { + PyErr_WriteUnraisable(err); + res = 0; + } + } + __Pyx_ErrRestore(exception, value, tb); + return res; +} +#else +static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { + int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; + if (!res) { + res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); + } + return res; +} +#endif +static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { + Py_ssize_t i, n; + assert(PyExceptionClass_Check(exc_type)); + n = PyTuple_GET_SIZE(tuple); +#if PY_MAJOR_VERSION >= 3 + for (i=0; i= 3 + "'%.50s' object has no attribute '%U'", + tp->tp_name, attr_name); +#else + "'%.50s' object has no attribute '%.400s'", + tp->tp_name, PyString_AS_STRING(attr_name)); +#endif + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { + PyObject *descr; + PyTypeObject *tp = Py_TYPE(obj); + if (unlikely(!PyString_Check(attr_name))) { + return PyObject_GenericGetAttr(obj, attr_name); + } + assert(!tp->tp_dictoffset); + descr = _PyType_Lookup(tp, attr_name); + if (unlikely(!descr)) { + return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); + } + Py_INCREF(descr); + #if PY_MAJOR_VERSION < 3 + if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) + #endif + { + descrgetfunc f = Py_TYPE(descr)->tp_descr_get; + if (unlikely(f)) { + PyObject *res = f(descr, obj, (PyObject *)tp); + Py_DECREF(descr); + return res; + } + } + return descr; +} +#endif + +/* PyObject_GenericGetAttr */ +#if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 +static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { + if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { + return PyObject_GenericGetAttr(obj, attr_name); + } + return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); +} +#endif + +/* SetVTable */ +static int __Pyx_SetVtable(PyObject *dict, void *vtable) { +#if PY_VERSION_HEX >= 0x02070000 + PyObject *ob = PyCapsule_New(vtable, 0, 0); +#else + PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); +#endif + if (!ob) + goto bad; + if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) + goto bad; + Py_DECREF(ob); + return 0; +bad: + Py_XDECREF(ob); + return -1; +} + +/* TypeImport */ +#ifndef __PYX_HAVE_RT_ImportType_0_29_36 +#define __PYX_HAVE_RT_ImportType_0_29_36 +static PyTypeObject *__Pyx_ImportType_0_29_36(PyObject *module, const char *module_name, const char *class_name, + size_t size, size_t alignment, enum __Pyx_ImportType_CheckSize_0_29_36 check_size) +{ + PyObject *result = 0; + char warning[200]; + Py_ssize_t basicsize; + Py_ssize_t itemsize; +#ifdef Py_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; + } +#ifndef Py_LIMITED_API + basicsize = ((PyTypeObject *)result)->tp_basicsize; + itemsize = ((PyTypeObject *)result)->tp_itemsize; +#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; + 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); + goto bad; + } + if (check_size == __Pyx_ImportType_CheckSize_Error_0_29_36 && (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_0_29_36 && (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 + +/* PyObjectGetAttrStrNoError */ +static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + __Pyx_PyErr_Clear(); +} +static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { + PyObject *result; +#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 + PyTypeObject* tp = Py_TYPE(obj); + if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { + return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); + } +#endif + result = __Pyx_PyObject_GetAttrStr(obj, attr_name); + if (unlikely(!result)) { + __Pyx_PyObject_GetAttrStr_ClearAttributeError(); + } + return result; +} + +/* SetupReduce */ +static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { + int ret; + PyObject *name_attr; + name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name_2); + if (likely(name_attr)) { + ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); + } else { + ret = -1; + } + if (unlikely(ret < 0)) { + PyErr_Clear(); + ret = 0; + } + Py_XDECREF(name_attr); + return ret; +} +static int __Pyx_setup_reduce(PyObject* type_obj) { + int ret = 0; + PyObject *object_reduce = NULL; + PyObject *object_getstate = NULL; + PyObject *object_reduce_ex = NULL; + PyObject *reduce = NULL; + PyObject *reduce_ex = NULL; + PyObject *reduce_cython = NULL; + PyObject *setstate = NULL; + PyObject *setstate_cython = NULL; + PyObject *getstate = NULL; +#if CYTHON_USE_PYTYPE_LOOKUP + getstate = _PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate); +#else + getstate = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_getstate); + if (!getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (getstate) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_getstate = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_getstate); +#else + object_getstate = __Pyx_PyObject_GetAttrStrNoError((PyObject*)&PyBaseObject_Type, __pyx_n_s_getstate); + if (!object_getstate && PyErr_Occurred()) { + goto __PYX_BAD; + } +#endif + if (object_getstate != getstate) { + goto __PYX_GOOD; + } + } +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#else + object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; +#endif + reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; + if (reduce_ex == object_reduce_ex) { +#if CYTHON_USE_PYTYPE_LOOKUP + object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#else + object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; +#endif + reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; + if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { + reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); + if (likely(reduce_cython)) { + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + } else if (reduce == object_reduce || PyErr_Occurred()) { + goto __PYX_BAD; + } + setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); + if (!setstate) PyErr_Clear(); + if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { + setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); + if (likely(setstate_cython)) { + ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; + } else if (!setstate || PyErr_Occurred()) { + goto __PYX_BAD; + } + } + PyType_Modified((PyTypeObject*)type_obj); + } + } + goto __PYX_GOOD; +__PYX_BAD: + if (!PyErr_Occurred()) + PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); + ret = -1; +__PYX_GOOD: +#if !CYTHON_USE_PYTYPE_LOOKUP + Py_XDECREF(object_reduce); + Py_XDECREF(object_reduce_ex); + Py_XDECREF(object_getstate); + Py_XDECREF(getstate); +#endif + Py_XDECREF(reduce); + Py_XDECREF(reduce_ex); + Py_XDECREF(reduce_cython); + Py_XDECREF(setstate); + Py_XDECREF(setstate_cython); + return ret; +} + +/* CalculateMetaclass */ +static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { + Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); + for (i=0; i < nbases; i++) { + PyTypeObject *tmptype; + PyObject *tmp = PyTuple_GET_ITEM(bases, i); + tmptype = Py_TYPE(tmp); +#if PY_MAJOR_VERSION < 3 + if (tmptype == &PyClass_Type) + continue; +#endif + if (!metaclass) { + metaclass = tmptype; + continue; + } + if (PyType_IsSubtype(metaclass, tmptype)) + continue; + if (PyType_IsSubtype(tmptype, metaclass)) { + metaclass = tmptype; + continue; + } + PyErr_SetString(PyExc_TypeError, + "metaclass conflict: " + "the metaclass of a derived class " + "must be a (non-strict) subclass " + "of the metaclasses of all its bases"); + return NULL; + } + if (!metaclass) { +#if PY_MAJOR_VERSION < 3 + metaclass = &PyClass_Type; +#else + metaclass = &PyType_Type; +#endif + } + Py_INCREF((PyObject*) metaclass); + return (PyObject*) metaclass; +} + +/* Py3ClassCreate */ +static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, + PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { + PyObject *ns; + if (metaclass) { + PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare); + if (prep) { + PyObject *pargs = PyTuple_Pack(2, name, bases); + if (unlikely(!pargs)) { + Py_DECREF(prep); + return NULL; + } + ns = PyObject_Call(prep, pargs, mkw); + Py_DECREF(prep); + Py_DECREF(pargs); + } else { + if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + PyErr_Clear(); + ns = PyDict_New(); + } + } else { + ns = PyDict_New(); + } + if (unlikely(!ns)) + return NULL; + if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; + if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; + if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; + return ns; +bad: + Py_DECREF(ns); + return NULL; +} +static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, + PyObject *dict, PyObject *mkw, + int calculate_metaclass, int allow_py2_metaclass) { + PyObject *result, *margs; + PyObject *owned_metaclass = NULL; + if (allow_py2_metaclass) { + owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); + if (owned_metaclass) { + metaclass = owned_metaclass; + } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { + PyErr_Clear(); + } else { + return NULL; + } + } + if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { + metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); + Py_XDECREF(owned_metaclass); + if (unlikely(!metaclass)) + return NULL; + owned_metaclass = metaclass; + } + margs = PyTuple_Pack(3, name, bases, dict); + if (unlikely(!margs)) { + result = NULL; + } else { + result = PyObject_Call(metaclass, margs, mkw); + Py_DECREF(margs); + } + Py_XDECREF(owned_metaclass); + return result; +} + +/* ClassMethod */ +static PyObject* __Pyx_Method_ClassMethod(PyObject *method) { +#if CYTHON_COMPILING_IN_PYPY && PYPY_VERSION_NUM <= 0x05080000 + if (PyObject_TypeCheck(method, &PyWrapperDescr_Type)) { + return PyClassMethod_New(method); + } +#else +#if CYTHON_COMPILING_IN_PYSTON || CYTHON_COMPILING_IN_PYPY + if (PyMethodDescr_Check(method)) +#else + #if PY_MAJOR_VERSION == 2 + static PyTypeObject *methoddescr_type = NULL; + if (methoddescr_type == NULL) { + PyObject *meth = PyObject_GetAttrString((PyObject*)&PyList_Type, "append"); + if (!meth) return NULL; + methoddescr_type = Py_TYPE(meth); + Py_DECREF(meth); + } + #else + PyTypeObject *methoddescr_type = &PyMethodDescr_Type; + #endif + if (__Pyx_TypeCheck(method, methoddescr_type)) +#endif + { + PyMethodDescrObject *descr = (PyMethodDescrObject *)method; + #if PY_VERSION_HEX < 0x03020000 + PyTypeObject *d_type = descr->d_type; + #else + PyTypeObject *d_type = descr->d_common.d_type; + #endif + return PyDescr_NewClassMethod(d_type, descr->d_method); + } +#endif + else if (PyMethod_Check(method)) { + return PyClassMethod_New(PyMethod_GET_FUNCTION(method)); + } + else { + return PyClassMethod_New(method); + } +} + +/* GetNameInClass */ +static PyObject *__Pyx_GetGlobalNameAfterAttributeLookup(PyObject *name) { + PyObject *result; + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + if (unlikely(!__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) + return NULL; + __Pyx_PyErr_Clear(); + __Pyx_GetModuleGlobalNameUncached(result, name); + return result; +} +static PyObject *__Pyx__GetNameInClass(PyObject *nmspace, PyObject *name) { + PyObject *result; + result = __Pyx_PyObject_GetAttrStr(nmspace, name); + if (!result) { + result = __Pyx_GetGlobalNameAfterAttributeLookup(name); + } + return result; +} + +/* RegisterModuleCleanup */ +#if PY_MAJOR_VERSION < 3 || CYTHON_COMPILING_IN_PYPY +static PyObject* __pyx_module_cleanup_atexit(PyObject *module, CYTHON_UNUSED PyObject *unused) { + __pyx_module_cleanup(module); + Py_INCREF(Py_None); return Py_None; +} +static int __Pyx_RegisterCleanup(void) { + static PyMethodDef cleanup_def = { + "__cleanup", (PyCFunction)__pyx_module_cleanup_atexit, METH_NOARGS, 0}; + PyObject *cleanup_func = 0; + PyObject *atexit = 0; + PyObject *reg = 0; + PyObject *args = 0; + PyObject *res = 0; + int ret = -1; + cleanup_func = PyCFunction_New(&cleanup_def, 0); + if (!cleanup_func) + goto bad; + atexit = PyImport_ImportModule("atexit"); + if (!atexit) + goto bad; + reg = PyObject_GetAttrString(atexit, "_exithandlers"); + if (reg && PyList_Check(reg)) { + PyObject *a, *kw; + a = PyTuple_New(0); + kw = PyDict_New(); + if (!a || !kw) { + Py_XDECREF(a); + Py_XDECREF(kw); + goto bad; + } + args = PyTuple_Pack(3, cleanup_func, a, kw); + Py_DECREF(a); + Py_DECREF(kw); + if (!args) + goto bad; + ret = PyList_Insert(reg, 0, args); + } else { + if (!reg) + PyErr_Clear(); + Py_XDECREF(reg); + reg = PyObject_GetAttrString(atexit, "register"); + if (!reg) + goto bad; + args = PyTuple_Pack(1, cleanup_func); + if (!args) + goto bad; + res = PyObject_CallObject(reg, args); + if (!res) + goto bad; + ret = 0; + } +bad: + Py_XDECREF(cleanup_func); + Py_XDECREF(atexit); + Py_XDECREF(reg); + Py_XDECREF(args); + Py_XDECREF(res); + return ret; +} +#endif + +/* CLineInTraceback */ +#ifndef CYTHON_CLINE_IN_TRACEBACK +static int __Pyx_CLineForTraceback(CYTHON_UNUSED PyThreadState *tstate, int c_line) { + PyObject *use_cline; + PyObject *ptype, *pvalue, *ptraceback; +#if CYTHON_COMPILING_IN_CPYTHON + PyObject **cython_runtime_dict; +#endif + if (unlikely(!__pyx_cython_runtime)) { + return c_line; + } + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); +#if CYTHON_COMPILING_IN_CPYTHON + cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); + if (likely(cython_runtime_dict)) { + __PYX_PY_DICT_LOOKUP_IF_MODIFIED( + use_cline, *cython_runtime_dict, + __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) + } else +#endif + { + PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); + if (use_cline_obj) { + use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; + Py_DECREF(use_cline_obj); + } else { + PyErr_Clear(); + use_cline = NULL; + } + } + if (!use_cline) { + c_line = 0; + (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); + } + else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { + c_line = 0; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + return c_line; +} +#endif + +/* CodeObjectCache */ +static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { + int start = 0, mid = 0, end = count - 1; + if (end >= 0 && code_line > entries[end].code_line) { + return count; + } + while (start < end) { + mid = start + (end - start) / 2; + if (code_line < entries[mid].code_line) { + end = mid; + } else if (code_line > entries[mid].code_line) { + start = mid + 1; + } else { + return mid; + } + } + if (code_line <= entries[mid].code_line) { + return mid; + } else { + return mid + 1; + } +} +static PyCodeObject *__pyx_find_code_object(int code_line) { + PyCodeObject* code_object; + int pos; + if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { + return NULL; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { + return NULL; + } + code_object = __pyx_code_cache.entries[pos].code_object; + Py_INCREF(code_object); + return code_object; +} +static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { + int pos, i; + __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; + if (unlikely(!code_line)) { + return; + } + if (unlikely(!entries)) { + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); + if (likely(entries)) { + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = 64; + __pyx_code_cache.count = 1; + entries[0].code_line = code_line; + entries[0].code_object = code_object; + Py_INCREF(code_object); + } + return; + } + pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); + if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { + PyCodeObject* tmp = entries[pos].code_object; + entries[pos].code_object = code_object; + Py_DECREF(tmp); + return; + } + if (__pyx_code_cache.count == __pyx_code_cache.max_count) { + int new_max = __pyx_code_cache.max_count + 64; + entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( + __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); + if (unlikely(!entries)) { + return; + } + __pyx_code_cache.entries = entries; + __pyx_code_cache.max_count = new_max; + } + for (i=__pyx_code_cache.count; i>pos; i--) { + entries[i] = entries[i-1]; + } + entries[pos].code_line = code_line; + entries[pos].code_object = code_object; + __pyx_code_cache.count++; + Py_INCREF(code_object); +} + +/* AddTraceback */ +#include "compile.h" +#include "frameobject.h" +#include "traceback.h" +#if PY_VERSION_HEX >= 0x030b00a6 + #ifndef Py_BUILD_CORE + #define Py_BUILD_CORE 1 + #endif + #include "internal/pycore_frame.h" +#endif +static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( + const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = NULL; + PyObject *py_funcname = NULL; + #if PY_MAJOR_VERSION < 3 + PyObject *py_srcfile = NULL; + py_srcfile = PyString_FromString(filename); + if (!py_srcfile) goto bad; + #endif + if (c_line) { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + #else + py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); + if (!py_funcname) goto bad; + funcname = PyUnicode_AsUTF8(py_funcname); + if (!funcname) goto bad; + #endif + } + else { + #if PY_MAJOR_VERSION < 3 + py_funcname = PyString_FromString(funcname); + if (!py_funcname) goto bad; + #endif + } + #if PY_MAJOR_VERSION < 3 + py_code = __Pyx_PyCode_New( + 0, + 0, + 0, + 0, + 0, + __pyx_empty_bytes, /*PyObject *code,*/ + __pyx_empty_tuple, /*PyObject *consts,*/ + __pyx_empty_tuple, /*PyObject *names,*/ + __pyx_empty_tuple, /*PyObject *varnames,*/ + __pyx_empty_tuple, /*PyObject *freevars,*/ + __pyx_empty_tuple, /*PyObject *cellvars,*/ + py_srcfile, /*PyObject *filename,*/ + py_funcname, /*PyObject *name,*/ + py_line, + __pyx_empty_bytes /*PyObject *lnotab*/ + ); + Py_DECREF(py_srcfile); + #else + py_code = PyCode_NewEmpty(filename, funcname, py_line); + #endif + Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline + return py_code; +bad: + Py_XDECREF(py_funcname); + #if PY_MAJOR_VERSION < 3 + Py_XDECREF(py_srcfile); + #endif + return NULL; +} +static void __Pyx_AddTraceback(const char *funcname, int c_line, + int py_line, const char *filename) { + PyCodeObject *py_code = 0; + PyFrameObject *py_frame = 0; + PyThreadState *tstate = __Pyx_PyThreadState_Current; + PyObject *ptype, *pvalue, *ptraceback; + if (c_line) { + c_line = __Pyx_CLineForTraceback(tstate, c_line); + } + py_code = __pyx_find_code_object(c_line ? -c_line : py_line); + if (!py_code) { + __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); + py_code = __Pyx_CreateCodeObjectForTraceback( + funcname, c_line, py_line, filename); + if (!py_code) { + /* If the code object creation fails, then we should clear the + fetched exception references and propagate the new exception */ + Py_XDECREF(ptype); + Py_XDECREF(pvalue); + Py_XDECREF(ptraceback); + goto bad; + } + __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); + __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); + } + py_frame = PyFrame_New( + tstate, /*PyThreadState *tstate,*/ + py_code, /*PyCodeObject *code,*/ + __pyx_d, /*PyObject *globals,*/ + 0 /*PyObject *locals*/ + ); + if (!py_frame) goto bad; + __Pyx_PyFrame_SetLineNumber(py_frame, py_line); + PyTraceBack_Here(py_frame); +bad: + Py_XDECREF(py_code); + Py_XDECREF(py_frame); +} + +#if PY_MAJOR_VERSION < 3 +static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { + if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc_IS)) return __pyx_pw_8petsc4py_5PETSc_2IS_3__getbuffer__(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc_Vec)) return __pyx_pw_8petsc4py_5PETSc_3Vec_33__getbuffer__(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc__IS_buffer)) return __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_5__getbuffer__(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc__Vec_buffer)) return __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_5__getbuffer__(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_array_type)) return __pyx_array_getbuffer(obj, view, flags); + if (__Pyx_TypeCheck(obj, __pyx_memoryview_type)) return __pyx_memoryview_getbuffer(obj, view, flags); + PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); + return -1; +} +static void __Pyx_ReleaseBuffer(Py_buffer *view) { + PyObject *obj = view->obj; + if (!obj) return; + if (PyObject_CheckBuffer(obj)) { + PyBuffer_Release(view); + return; + } + if ((0)) {} + else if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc_IS)) __pyx_pw_8petsc4py_5PETSc_2IS_5__releasebuffer__(obj, view); + else if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc_Vec)) __pyx_pw_8petsc4py_5PETSc_3Vec_35__releasebuffer__(obj, view); + else if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc__IS_buffer)) __pyx_pw_8petsc4py_5PETSc_10_IS_buffer_7__releasebuffer__(obj, view); + else if (__Pyx_TypeCheck(obj, __pyx_ptype_8petsc4py_5PETSc__Vec_buffer)) __pyx_pw_8petsc4py_5PETSc_11_Vec_buffer_7__releasebuffer__(obj, view); + view->obj = NULL; + Py_DECREF(obj); +} +#endif + + +/* MemviewSliceIsContig */ +static int +__pyx_memviewslice_is_contig(const __Pyx_memviewslice mvs, char order, int ndim) +{ + int i, index, step, start; + Py_ssize_t itemsize = mvs.memview->view.itemsize; + if (order == 'F') { + step = 1; + start = 0; + } else { + step = -1; + start = ndim - 1; + } + for (i = 0; i < ndim; i++) { + index = start + step * i; + if (mvs.suboffsets[index] >= 0 || mvs.strides[index] != itemsize) + return 0; + itemsize *= mvs.shape[index]; + } + return 1; +} + +/* OverlappingSlices */ +static void +__pyx_get_array_memory_extents(__Pyx_memviewslice *slice, + void **out_start, void **out_end, + int ndim, size_t itemsize) +{ + char *start, *end; + int i; + start = end = slice->data; + for (i = 0; i < ndim; i++) { + Py_ssize_t stride = slice->strides[i]; + Py_ssize_t extent = slice->shape[i]; + if (extent == 0) { + *out_start = *out_end = start; + return; + } else { + if (stride > 0) + end += stride * (extent - 1); + else + start += stride * (extent - 1); + } + } + *out_start = start; + *out_end = end + itemsize; +} +static int +__pyx_slices_overlap(__Pyx_memviewslice *slice1, + __Pyx_memviewslice *slice2, + int ndim, size_t itemsize) +{ + void *start1, *end1, *start2, *end2; + __pyx_get_array_memory_extents(slice1, &start1, &end1, ndim, itemsize); + __pyx_get_array_memory_extents(slice2, &start2, &end2, ndim, itemsize); + return (start1 < end2) && (start2 < end1); +} + +/* Capsule */ +static CYTHON_INLINE PyObject * +__pyx_capsule_create(void *p, CYTHON_UNUSED const char *sig) +{ + PyObject *cobj; +#if PY_VERSION_HEX >= 0x02070000 + cobj = PyCapsule_New(p, sig, NULL); +#else + cobj = PyCObject_FromVoidPtr(p, NULL); +#endif + return cobj; +} + +/* CIntFromPyVerify */ +#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) +#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ + __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) +#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ + {\ + func_type value = func_value;\ + if (sizeof(target_type) < sizeof(func_type)) {\ + if (unlikely(value != (func_type) (target_type) value)) {\ + func_type zero = 0;\ + if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ + return (target_type) -1;\ + if (is_unsigned && unlikely(value < zero))\ + goto raise_neg_overflow;\ + else\ + goto raise_overflow;\ + }\ + }\ + return (target_type) value;\ + } + +/* IsLittleEndian */ +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) +{ + union { + uint32_t u32; + uint8_t u8[4]; + } S; + S.u32 = 0x01020304; + return S.u8[0] == 4; +} + +/* BufferFormatCheck */ +static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, + __Pyx_BufFmt_StackElem* stack, + __Pyx_TypeInfo* type) { + stack[0].field = &ctx->root; + stack[0].parent_offset = 0; + ctx->root.type = type; + ctx->root.name = "buffer dtype"; + ctx->root.offset = 0; + ctx->head = stack; + ctx->head->field = &ctx->root; + ctx->fmt_offset = 0; + ctx->head->parent_offset = 0; + ctx->new_packmode = '@'; + ctx->enc_packmode = '@'; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->is_complex = 0; + ctx->is_valid_array = 0; + ctx->struct_alignment = 0; + while (type->typegroup == 'S') { + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = 0; + type = type->fields->type; + } +} +static int __Pyx_BufFmt_ParseNumber(const char** ts) { + int count; + const char* t = *ts; + if (*t < '0' || *t > '9') { + return -1; + } else { + count = *t++ - '0'; + while (*t >= '0' && *t <= '9') { + count *= 10; + count += *t++ - '0'; + } + } + *ts = t; + return count; +} +static int __Pyx_BufFmt_ExpectNumber(const char **ts) { + int number = __Pyx_BufFmt_ParseNumber(ts); + if (number == -1) + PyErr_Format(PyExc_ValueError,\ + "Does not understand character buffer dtype format string ('%c')", **ts); + return number; +} +static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { + PyErr_Format(PyExc_ValueError, + "Unexpected format string character: '%c'", ch); +} +static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { + switch (ch) { + case '?': return "'bool'"; + case 'c': return "'char'"; + case 'b': return "'signed char'"; + case 'B': return "'unsigned char'"; + case 'h': return "'short'"; + case 'H': return "'unsigned short'"; + case 'i': return "'int'"; + case 'I': return "'unsigned int'"; + case 'l': return "'long'"; + case 'L': return "'unsigned long'"; + case 'q': return "'long long'"; + case 'Q': return "'unsigned long long'"; + case 'f': return (is_complex ? "'complex float'" : "'float'"); + case 'd': return (is_complex ? "'complex double'" : "'double'"); + case 'g': return (is_complex ? "'complex long double'" : "'long double'"); + case 'T': return "a struct"; + case 'O': return "Python object"; + case 'P': return "a pointer"; + case 's': case 'p': return "a string"; + case 0: return "end"; + default: return "unparseable format string"; + } +} +static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return 2; + case 'i': case 'I': case 'l': case 'L': return 4; + case 'q': case 'Q': return 8; + case 'f': return (is_complex ? 8 : 4); + case 'd': return (is_complex ? 16 : 8); + case 'g': { + PyErr_SetString(PyExc_ValueError, "Python does not define a standard format string size for long double ('g').."); + return 0; + } + case 'O': case 'P': return sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(short); + case 'i': case 'I': return sizeof(int); + case 'l': case 'L': return sizeof(long); + #ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(PY_LONG_LONG); + #endif + case 'f': return sizeof(float) * (is_complex ? 2 : 1); + case 'd': return sizeof(double) * (is_complex ? 2 : 1); + case 'g': return sizeof(long double) * (is_complex ? 2 : 1); + case 'O': case 'P': return sizeof(void*); + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +typedef struct { char c; short x; } __Pyx_st_short; +typedef struct { char c; int x; } __Pyx_st_int; +typedef struct { char c; long x; } __Pyx_st_long; +typedef struct { char c; float x; } __Pyx_st_float; +typedef struct { char c; double x; } __Pyx_st_double; +typedef struct { char c; long double x; } __Pyx_st_longdouble; +typedef struct { char c; void *x; } __Pyx_st_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { char c; PY_LONG_LONG x; } __Pyx_st_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToAlignment(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_st_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_st_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_st_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_st_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_st_float) - sizeof(float); + case 'd': return sizeof(__Pyx_st_double) - sizeof(double); + case 'g': return sizeof(__Pyx_st_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_st_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +/* These are for computing the padding at the end of the struct to align + on the first member of the struct. This will probably the same as above, + but we don't have any guarantees. + */ +typedef struct { short x; char c; } __Pyx_pad_short; +typedef struct { int x; char c; } __Pyx_pad_int; +typedef struct { long x; char c; } __Pyx_pad_long; +typedef struct { float x; char c; } __Pyx_pad_float; +typedef struct { double x; char c; } __Pyx_pad_double; +typedef struct { long double x; char c; } __Pyx_pad_longdouble; +typedef struct { void *x; char c; } __Pyx_pad_void_p; +#ifdef HAVE_LONG_LONG +typedef struct { PY_LONG_LONG x; char c; } __Pyx_pad_longlong; +#endif +static size_t __Pyx_BufFmt_TypeCharToPadding(char ch, CYTHON_UNUSED int is_complex) { + switch (ch) { + case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; + case 'h': case 'H': return sizeof(__Pyx_pad_short) - sizeof(short); + case 'i': case 'I': return sizeof(__Pyx_pad_int) - sizeof(int); + case 'l': case 'L': return sizeof(__Pyx_pad_long) - sizeof(long); +#ifdef HAVE_LONG_LONG + case 'q': case 'Q': return sizeof(__Pyx_pad_longlong) - sizeof(PY_LONG_LONG); +#endif + case 'f': return sizeof(__Pyx_pad_float) - sizeof(float); + case 'd': return sizeof(__Pyx_pad_double) - sizeof(double); + case 'g': return sizeof(__Pyx_pad_longdouble) - sizeof(long double); + case 'P': case 'O': return sizeof(__Pyx_pad_void_p) - sizeof(void*); + default: + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } +} +static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { + switch (ch) { + case 'c': + return 'H'; + case 'b': case 'h': case 'i': + case 'l': case 'q': case 's': case 'p': + return 'I'; + case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': + return 'U'; + case 'f': case 'd': case 'g': + return (is_complex ? 'C' : 'R'); + case 'O': + return 'O'; + case 'P': + return 'P'; + default: { + __Pyx_BufFmt_RaiseUnexpectedChar(ch); + return 0; + } + } +} +static void __Pyx_BufFmt_RaiseExpected(__Pyx_BufFmt_Context* ctx) { + if (ctx->head == NULL || ctx->head->field == &ctx->root) { + const char* expected; + const char* quote; + if (ctx->head == NULL) { + expected = "end"; + quote = ""; + } else { + expected = ctx->head->field->type->name; + quote = "'"; + } + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected %s%s%s but got %s", + quote, expected, quote, + __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex)); + } else { + __Pyx_StructField* field = ctx->head->field; + __Pyx_StructField* parent = (ctx->head - 1)->field; + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch, expected '%s' but got %s in '%s.%s'", + field->type->name, __Pyx_BufFmt_DescribeTypeChar(ctx->enc_type, ctx->is_complex), + parent->type->name, field->name); + } +} +static int __Pyx_BufFmt_ProcessTypeChunk(__Pyx_BufFmt_Context* ctx) { + char group; + size_t size, offset, arraysize = 1; + if (ctx->enc_type == 0) return 0; + if (ctx->head->field->type->arraysize[0]) { + int i, ndim = 0; + if (ctx->enc_type == 's' || ctx->enc_type == 'p') { + ctx->is_valid_array = ctx->head->field->type->ndim == 1; + ndim = 1; + if (ctx->enc_count != ctx->head->field->type->arraysize[0]) { + PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %zu", + ctx->head->field->type->arraysize[0], ctx->enc_count); + return -1; + } + } + if (!ctx->is_valid_array) { + PyErr_Format(PyExc_ValueError, "Expected %d dimensions, got %d", + ctx->head->field->type->ndim, ndim); + return -1; + } + for (i = 0; i < ctx->head->field->type->ndim; i++) { + arraysize *= ctx->head->field->type->arraysize[i]; + } + ctx->is_valid_array = 0; + ctx->enc_count = 1; + } + group = __Pyx_BufFmt_TypeCharToGroup(ctx->enc_type, ctx->is_complex); + do { + __Pyx_StructField* field = ctx->head->field; + __Pyx_TypeInfo* type = field->type; + if (ctx->enc_packmode == '@' || ctx->enc_packmode == '^') { + size = __Pyx_BufFmt_TypeCharToNativeSize(ctx->enc_type, ctx->is_complex); + } else { + size = __Pyx_BufFmt_TypeCharToStandardSize(ctx->enc_type, ctx->is_complex); + } + if (ctx->enc_packmode == '@') { + size_t align_at = __Pyx_BufFmt_TypeCharToAlignment(ctx->enc_type, ctx->is_complex); + size_t align_mod_offset; + if (align_at == 0) return -1; + align_mod_offset = ctx->fmt_offset % align_at; + if (align_mod_offset > 0) ctx->fmt_offset += align_at - align_mod_offset; + if (ctx->struct_alignment == 0) + ctx->struct_alignment = __Pyx_BufFmt_TypeCharToPadding(ctx->enc_type, + ctx->is_complex); + } + if (type->size != size || type->typegroup != group) { + if (type->typegroup == 'C' && type->fields != NULL) { + size_t parent_offset = ctx->head->parent_offset + field->offset; + ++ctx->head; + ctx->head->field = type->fields; + ctx->head->parent_offset = parent_offset; + continue; + } + if ((type->typegroup == 'H' || group == 'H') && type->size == size) { + } else { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + } + offset = ctx->head->parent_offset + field->offset; + if (ctx->fmt_offset != offset) { + PyErr_Format(PyExc_ValueError, + "Buffer dtype mismatch; next field is at offset %" CYTHON_FORMAT_SSIZE_T "d but %" CYTHON_FORMAT_SSIZE_T "d expected", + (Py_ssize_t)ctx->fmt_offset, (Py_ssize_t)offset); + return -1; + } + ctx->fmt_offset += size; + if (arraysize) + ctx->fmt_offset += (arraysize - 1) * size; + --ctx->enc_count; + while (1) { + if (field == &ctx->root) { + ctx->head = NULL; + if (ctx->enc_count != 0) { + __Pyx_BufFmt_RaiseExpected(ctx); + return -1; + } + break; + } + ctx->head->field = ++field; + if (field->type == NULL) { + --ctx->head; + field = ctx->head->field; + continue; + } else if (field->type->typegroup == 'S') { + size_t parent_offset = ctx->head->parent_offset + field->offset; + if (field->type->fields->type == NULL) continue; + field = field->type->fields; + ++ctx->head; + ctx->head->field = field; + ctx->head->parent_offset = parent_offset; + break; + } else { + break; + } + } + } while (ctx->enc_count); + ctx->enc_type = 0; + ctx->is_complex = 0; + return 0; +} +static PyObject * +__pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) +{ + const char *ts = *tsp; + int i = 0, number, ndim; + ++ts; + if (ctx->new_count != 1) { + PyErr_SetString(PyExc_ValueError, + "Cannot handle repeated arrays in format string"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ndim = ctx->head->field->type->ndim; + while (*ts && *ts != ')') { + switch (*ts) { + case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; + default: break; + } + number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + if (i < ndim && (size_t) number != ctx->head->field->type->arraysize[i]) + return PyErr_Format(PyExc_ValueError, + "Expected a dimension of size %zu, got %d", + ctx->head->field->type->arraysize[i], number); + if (*ts != ',' && *ts != ')') + return PyErr_Format(PyExc_ValueError, + "Expected a comma in format string, got '%c'", *ts); + if (*ts == ',') ts++; + i++; + } + if (i != ndim) + return PyErr_Format(PyExc_ValueError, "Expected %d dimension(s), got %d", + ctx->head->field->type->ndim, i); + if (!*ts) { + PyErr_SetString(PyExc_ValueError, + "Unexpected end of format string, expected ')'"); + return NULL; + } + ctx->is_valid_array = 1; + ctx->new_count = 1; + *tsp = ++ts; + return Py_None; +} +static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const char* ts) { + int got_Z = 0; + while (1) { + switch(*ts) { + case 0: + if (ctx->enc_type != 0 && ctx->head == NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + if (ctx->head != NULL) { + __Pyx_BufFmt_RaiseExpected(ctx); + return NULL; + } + return ts; + case ' ': + case '\r': + case '\n': + ++ts; + break; + case '<': + if (!__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '>': + case '!': + if (__Pyx_Is_Little_Endian()) { + PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); + return NULL; + } + ctx->new_packmode = '='; + ++ts; + break; + case '=': + case '@': + case '^': + ctx->new_packmode = *ts++; + break; + case 'T': + { + const char* ts_after_sub; + size_t i, struct_count = ctx->new_count; + size_t struct_alignment = ctx->struct_alignment; + ctx->new_count = 1; + ++ts; + if (*ts != '{') { + PyErr_SetString(PyExc_ValueError, "Buffer acquisition: Expected '{' after 'T'"); + return NULL; + } + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + ctx->enc_count = 0; + ctx->struct_alignment = 0; + ++ts; + ts_after_sub = ts; + for (i = 0; i != struct_count; ++i) { + ts_after_sub = __Pyx_BufFmt_CheckString(ctx, ts); + if (!ts_after_sub) return NULL; + } + ts = ts_after_sub; + if (struct_alignment) ctx->struct_alignment = struct_alignment; + } + break; + case '}': + { + size_t alignment = ctx->struct_alignment; + ++ts; + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_type = 0; + if (alignment && ctx->fmt_offset % alignment) { + ctx->fmt_offset += alignment - (ctx->fmt_offset % alignment); + } + } + return ts; + case 'x': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->fmt_offset += ctx->new_count; + ctx->new_count = 1; + ctx->enc_count = 0; + ctx->enc_type = 0; + ctx->enc_packmode = ctx->new_packmode; + ++ts; + break; + case 'Z': + got_Z = 1; + ++ts; + if (*ts != 'f' && *ts != 'd' && *ts != 'g') { + __Pyx_BufFmt_RaiseUnexpectedChar('Z'); + return NULL; + } + CYTHON_FALLTHROUGH; + case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': + case 'l': case 'L': case 'q': case 'Q': + case 'f': case 'd': case 'g': + case 'O': case 'p': + if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && + (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { + ctx->enc_count += ctx->new_count; + ctx->new_count = 1; + got_Z = 0; + ++ts; + break; + } + CYTHON_FALLTHROUGH; + case 's': + if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; + ctx->enc_count = ctx->new_count; + ctx->enc_packmode = ctx->new_packmode; + ctx->enc_type = *ts; + ctx->is_complex = got_Z; + ++ts; + ctx->new_count = 1; + got_Z = 0; + break; + case ':': + ++ts; + while(*ts != ':') ++ts; + ++ts; + break; + case '(': + if (!__pyx_buffmt_parse_array(ctx, &ts)) return NULL; + break; + default: + { + int number = __Pyx_BufFmt_ExpectNumber(&ts); + if (number == -1) return NULL; + ctx->new_count = (size_t)number; + } + } + } +} + +/* TypeInfoCompare */ + static int +__pyx_typeinfo_cmp(__Pyx_TypeInfo *a, __Pyx_TypeInfo *b) +{ + int i; + if (!a || !b) + return 0; + if (a == b) + return 1; + if (a->size != b->size || a->typegroup != b->typegroup || + a->is_unsigned != b->is_unsigned || a->ndim != b->ndim) { + if (a->typegroup == 'H' || b->typegroup == 'H') { + return a->size == b->size; + } else { + return 0; + } + } + if (a->ndim) { + for (i = 0; i < a->ndim; i++) + if (a->arraysize[i] != b->arraysize[i]) + return 0; + } + if (a->typegroup == 'S') { + if (a->flags != b->flags) + return 0; + if (a->fields || b->fields) { + if (!(a->fields && b->fields)) + return 0; + for (i = 0; a->fields[i].type && b->fields[i].type; i++) { + __Pyx_StructField *field_a = a->fields + i; + __Pyx_StructField *field_b = b->fields + i; + if (field_a->offset != field_b->offset || + !__pyx_typeinfo_cmp(field_a->type, field_b->type)) + return 0; + } + return !a->fields[i].type && !b->fields[i].type; + } + } + return 1; +} + +/* MemviewSliceValidateAndInit */ + static int +__pyx_check_strides(Py_buffer *buf, int dim, int ndim, int spec) +{ + if (buf->shape[dim] <= 1) + return 1; + if (buf->strides) { + if (spec & __Pyx_MEMVIEW_CONTIG) { + if (spec & (__Pyx_MEMVIEW_PTR|__Pyx_MEMVIEW_FULL)) { + if (unlikely(buf->strides[dim] != sizeof(void *))) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly contiguous " + "in dimension %d.", dim); + goto fail; + } + } else if (unlikely(buf->strides[dim] != buf->itemsize)) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_FOLLOW) { + Py_ssize_t stride = buf->strides[dim]; + if (stride < 0) + stride = -stride; + if (unlikely(stride < buf->itemsize)) { + PyErr_SetString(PyExc_ValueError, + "Buffer and memoryview are not contiguous " + "in the same dimension."); + goto fail; + } + } + } else { + if (unlikely(spec & __Pyx_MEMVIEW_CONTIG && dim != ndim - 1)) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not contiguous in " + "dimension %d", dim); + goto fail; + } else if (unlikely(spec & (__Pyx_MEMVIEW_PTR))) { + PyErr_Format(PyExc_ValueError, + "C-contiguous buffer is not indirect in " + "dimension %d", dim); + goto fail; + } else if (unlikely(buf->suboffsets)) { + PyErr_SetString(PyExc_ValueError, + "Buffer exposes suboffsets but no strides"); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_check_suboffsets(Py_buffer *buf, int dim, CYTHON_UNUSED int ndim, int spec) +{ + if (spec & __Pyx_MEMVIEW_DIRECT) { + if (unlikely(buf->suboffsets && buf->suboffsets[dim] >= 0)) { + PyErr_Format(PyExc_ValueError, + "Buffer not compatible with direct access " + "in dimension %d.", dim); + goto fail; + } + } + if (spec & __Pyx_MEMVIEW_PTR) { + if (unlikely(!buf->suboffsets || (buf->suboffsets[dim] < 0))) { + PyErr_Format(PyExc_ValueError, + "Buffer is not indirectly accessible " + "in dimension %d.", dim); + goto fail; + } + } + return 1; +fail: + return 0; +} +static int +__pyx_verify_contig(Py_buffer *buf, int ndim, int c_or_f_flag) +{ + int i; + if (c_or_f_flag & __Pyx_IS_F_CONTIG) { + Py_ssize_t stride = 1; + for (i = 0; i < ndim; i++) { + if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) { + PyErr_SetString(PyExc_ValueError, + "Buffer not fortran contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } else if (c_or_f_flag & __Pyx_IS_C_CONTIG) { + Py_ssize_t stride = 1; + for (i = ndim - 1; i >- 1; i--) { + if (unlikely(stride * buf->itemsize != buf->strides[i] && buf->shape[i] > 1)) { + PyErr_SetString(PyExc_ValueError, + "Buffer not C contiguous."); + goto fail; + } + stride = stride * buf->shape[i]; + } + } + return 1; +fail: + return 0; +} +static int __Pyx_ValidateAndInit_memviewslice( + int *axes_specs, + int c_or_f_flag, + int buf_flags, + int ndim, + __Pyx_TypeInfo *dtype, + __Pyx_BufFmt_StackElem stack[], + __Pyx_memviewslice *memviewslice, + PyObject *original_obj) +{ + struct __pyx_memoryview_obj *memview, *new_memview; + __Pyx_RefNannyDeclarations + Py_buffer *buf; + int i, spec = 0, retval = -1; + __Pyx_BufFmt_Context ctx; + int from_memoryview = __pyx_memoryview_check(original_obj); + __Pyx_RefNannySetupContext("ValidateAndInit_memviewslice", 0); + if (from_memoryview && __pyx_typeinfo_cmp(dtype, ((struct __pyx_memoryview_obj *) + original_obj)->typeinfo)) { + memview = (struct __pyx_memoryview_obj *) original_obj; + new_memview = NULL; + } else { + memview = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + original_obj, buf_flags, 0, dtype); + new_memview = memview; + if (unlikely(!memview)) + goto fail; + } + buf = &memview->view; + if (unlikely(buf->ndim != ndim)) { + PyErr_Format(PyExc_ValueError, + "Buffer has wrong number of dimensions (expected %d, got %d)", + ndim, buf->ndim); + goto fail; + } + if (new_memview) { + __Pyx_BufFmt_Init(&ctx, stack, dtype); + if (unlikely(!__Pyx_BufFmt_CheckString(&ctx, buf->format))) goto fail; + } + if (unlikely((unsigned) buf->itemsize != dtype->size)) { + PyErr_Format(PyExc_ValueError, + "Item size of buffer (%" CYTHON_FORMAT_SSIZE_T "u byte%s) " + "does not match size of '%s' (%" CYTHON_FORMAT_SSIZE_T "u byte%s)", + buf->itemsize, + (buf->itemsize > 1) ? "s" : "", + dtype->name, + dtype->size, + (dtype->size > 1) ? "s" : ""); + goto fail; + } + if (buf->len > 0) { + for (i = 0; i < ndim; i++) { + spec = axes_specs[i]; + if (unlikely(!__pyx_check_strides(buf, i, ndim, spec))) + goto fail; + if (unlikely(!__pyx_check_suboffsets(buf, i, ndim, spec))) + goto fail; + } + if (unlikely(buf->strides && !__pyx_verify_contig(buf, ndim, c_or_f_flag))) + goto fail; + } + if (unlikely(__Pyx_init_memviewslice(memview, ndim, memviewslice, + new_memview != NULL) == -1)) { + goto fail; + } + retval = 0; + goto no_fail; +fail: + Py_XDECREF(new_memview); + retval = -1; +no_fail: + __Pyx_RefNannyFinishContext(); + return retval; +} + +/* ObjectToMemviewSlice */ + static CYTHON_INLINE __Pyx_memviewslice __Pyx_PyObject_to_MemoryviewSlice_ds_nn_PetscInt(PyObject *obj, int writable_flag) { + __Pyx_memviewslice result = { 0, 0, { 0 }, { 0 }, { 0 } }; + __Pyx_BufFmt_StackElem stack[1]; + int axes_specs[] = { (__Pyx_MEMVIEW_DIRECT | __Pyx_MEMVIEW_STRIDED) }; + int retcode; + if (obj == Py_None) { + result.memview = (struct __pyx_memoryview_obj *) Py_None; + return result; + } + retcode = __Pyx_ValidateAndInit_memviewslice(axes_specs, 0, + PyBUF_RECORDS_RO | writable_flag, 1, + &__Pyx_TypeInfo_nn_PetscInt, stack, + &result, obj); + if (unlikely(retcode == -1)) + goto __pyx_fail; + return result; +__pyx_fail: + result.memview = NULL; + result.data = NULL; + return result; +} + +/* MemviewDtypeToObject */ + static CYTHON_INLINE PyObject *__pyx_memview_get_nn_PetscInt(const char *itemp) { + return (PyObject *) __Pyx_PyInt_From_PetscInt(*(PetscInt *) itemp); +} +static CYTHON_INLINE int __pyx_memview_set_nn_PetscInt(const char *itemp, PyObject *obj) { + PetscInt value = __Pyx_PyInt_As_PetscInt(obj); + if ((value == ((PetscInt)-1)) && PyErr_Occurred()) + return 0; + *(PetscInt *) itemp = value; + return 1; +} + +static PyObject* __pyx_convert__to_py_PetscEventPerfInfo(PetscEventPerfInfo s) { + PyObject* res; + PyObject* member; + res = __Pyx_PyDict_NewPresized(6); if (unlikely(!res)) return NULL; + member = __Pyx_PyInt_From_int(s.count); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_count, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.flops); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_flops, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.time); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_time, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.numMessages); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_numMessages, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.messageLength); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_messageLength, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.numReductions); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_numReductions, member) < 0)) goto bad; + Py_DECREF(member); + return res; + bad: + Py_XDECREF(member); + Py_DECREF(res); + return NULL; + } + static PyObject* __pyx_convert__to_py_struct____pyx_t_8petsc4py_5PETSc_DLDataType(struct __pyx_t_8petsc4py_5PETSc_DLDataType s) { + PyObject* res; + PyObject* member; + res = __Pyx_PyDict_NewPresized(3); if (unlikely(!res)) return NULL; + member = __Pyx_PyInt_From_uint8_t(s.code); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_code, member) < 0)) goto bad; + Py_DECREF(member); + member = __Pyx_PyInt_From_uint8_t(s.bits); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_bits, member) < 0)) goto bad; + Py_DECREF(member); + member = __Pyx_PyInt_From_uint16_t(s.lanes); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_lanes, member) < 0)) goto bad; + Py_DECREF(member); + return res; + bad: + Py_XDECREF(member); + Py_DECREF(res); + return NULL; + } + static PyObject* __pyx_convert__to_py_MatInfo(MatInfo s) { + PyObject* res; + PyObject* member; + res = __Pyx_PyDict_NewPresized(10); if (unlikely(!res)) return NULL; + member = PyFloat_FromDouble(s.block_size); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_block_size, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.nz_allocated); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_nz_allocated, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.nz_used); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_nz_used, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.nz_unneeded); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_nz_unneeded, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.memory); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_memory, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.assemblies); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_assemblies, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.mallocs); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_mallocs, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.fill_ratio_given); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_fill_ratio_given, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.fill_ratio_needed); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_fill_ratio_needed, member) < 0)) goto bad; + Py_DECREF(member); + member = PyFloat_FromDouble(s.factor_mallocs); if (unlikely(!member)) goto bad; + if (unlikely(PyDict_SetItem(res, __pyx_n_s_factor_mallocs, member) < 0)) goto bad; + Py_DECREF(member); + return res; + bad: + Py_XDECREF(member); + Py_DECREF(res); + return NULL; + } + /* MemviewSliceCopyTemplate */ + static __Pyx_memviewslice +__pyx_memoryview_copy_new_contig(const __Pyx_memviewslice *from_mvs, + const char *mode, int ndim, + size_t sizeof_dtype, int contig_flag, + int dtype_is_object) +{ + __Pyx_RefNannyDeclarations + int i; + __Pyx_memviewslice new_mvs = { 0, 0, { 0 }, { 0 }, { 0 } }; + struct __pyx_memoryview_obj *from_memview = from_mvs->memview; + Py_buffer *buf = &from_memview->view; + PyObject *shape_tuple = NULL; + PyObject *temp_int = NULL; + struct __pyx_array_obj *array_obj = NULL; + struct __pyx_memoryview_obj *memview_obj = NULL; + __Pyx_RefNannySetupContext("__pyx_memoryview_copy_new_contig", 0); + for (i = 0; i < ndim; i++) { + if (unlikely(from_mvs->suboffsets[i] >= 0)) { + PyErr_Format(PyExc_ValueError, "Cannot copy memoryview slice with " + "indirect dimensions (axis %d)", i); + goto fail; + } + } + shape_tuple = PyTuple_New(ndim); + if (unlikely(!shape_tuple)) { + goto fail; + } + __Pyx_GOTREF(shape_tuple); + for(i = 0; i < ndim; i++) { + temp_int = PyInt_FromSsize_t(from_mvs->shape[i]); + if(unlikely(!temp_int)) { + goto fail; + } else { + PyTuple_SET_ITEM(shape_tuple, i, temp_int); + temp_int = NULL; + } + } + array_obj = __pyx_array_new(shape_tuple, sizeof_dtype, buf->format, (char *) mode, NULL); + if (unlikely(!array_obj)) { + goto fail; + } + __Pyx_GOTREF(array_obj); + memview_obj = (struct __pyx_memoryview_obj *) __pyx_memoryview_new( + (PyObject *) array_obj, contig_flag, + dtype_is_object, + from_mvs->memview->typeinfo); + if (unlikely(!memview_obj)) + goto fail; + if (unlikely(__Pyx_init_memviewslice(memview_obj, ndim, &new_mvs, 1) < 0)) + goto fail; + if (unlikely(__pyx_memoryview_copy_contents(*from_mvs, new_mvs, ndim, ndim, + dtype_is_object) < 0)) + goto fail; + goto no_fail; +fail: + __Pyx_XDECREF(new_mvs.memview); + new_mvs.memview = NULL; + new_mvs.data = NULL; +no_fail: + __Pyx_XDECREF(shape_tuple); + __Pyx_XDECREF(temp_int); + __Pyx_XDECREF(array_obj); + __Pyx_RefNannyFinishContext(); + return new_mvs; +} + +/* CIntFromPy */ + static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { + return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { + return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { + return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int) 0; + case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) + case -2: + if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { + return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int) -1; + } + } else { + int val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int) -1; + val = __Pyx_PyInt_As_int(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int"); + return (int) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int"); + return (int) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int neg_one = (int) -1, const_zero = (int) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_InsertMode(InsertMode value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const InsertMode neg_one = (InsertMode) -1, const_zero = (InsertMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(InsertMode) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(InsertMode) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(InsertMode) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(InsertMode) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(InsertMode) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(InsertMode), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_ScatterMode(ScatterMode value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const ScatterMode neg_one = (ScatterMode) -1, const_zero = (ScatterMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(ScatterMode) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(ScatterMode) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(ScatterMode) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(ScatterMode) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(ScatterMode) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(ScatterMode), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_NormType(NormType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const NormType neg_one = (NormType) -1, const_zero = (NormType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(NormType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(NormType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(NormType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(NormType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(NormType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(NormType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscViewerFormat(PetscViewerFormat value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscViewerFormat neg_one = (PetscViewerFormat) -1, const_zero = (PetscViewerFormat) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscViewerFormat) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscViewerFormat) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscViewerFormat) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscViewerFormat) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscViewerFormat) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscViewerFormat), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscFileMode(PetscFileMode value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscFileMode neg_one = (PetscFileMode) -1, const_zero = (PetscFileMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscFileMode) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscFileMode) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscFileMode) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscFileMode) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscFileMode) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscFileMode), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscDeviceType(PetscDeviceType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscDeviceType neg_one = (PetscDeviceType) -1, const_zero = (PetscDeviceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscDeviceType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscDeviceType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscDeviceType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscDeviceType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscStreamType(PetscStreamType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscStreamType neg_one = (PetscStreamType) -1, const_zero = (PetscStreamType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscStreamType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscStreamType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscStreamType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscStreamType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscStreamType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscStreamType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscDeviceContextJoinMode(PetscDeviceContextJoinMode value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscDeviceContextJoinMode neg_one = (PetscDeviceContextJoinMode) -1, const_zero = (PetscDeviceContextJoinMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscDeviceContextJoinMode) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscDeviceContextJoinMode) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceContextJoinMode) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscDeviceContextJoinMode) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceContextJoinMode) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscDeviceContextJoinMode), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscInt __Pyx_PyInt_As_PetscInt(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscInt neg_one = (PetscInt) -1, const_zero = (PetscInt) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscInt) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscInt, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscInt) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscInt) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscInt, digit, digits[0]) + case 2: + if (8 * sizeof(PetscInt) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) >= 2 * PyLong_SHIFT) { + return (PetscInt) (((((PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscInt) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) >= 3 * PyLong_SHIFT) { + return (PetscInt) (((((((PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscInt) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) >= 4 * PyLong_SHIFT) { + return (PetscInt) (((((((((PetscInt)digits[3]) << PyLong_SHIFT) | (PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscInt) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscInt) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscInt, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscInt) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscInt, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscInt) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscInt, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscInt, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscInt) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 2 * PyLong_SHIFT) { + return (PetscInt) (((PetscInt)-1)*(((((PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscInt) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 2 * PyLong_SHIFT) { + return (PetscInt) ((((((PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscInt) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 3 * PyLong_SHIFT) { + return (PetscInt) (((PetscInt)-1)*(((((((PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscInt) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 3 * PyLong_SHIFT) { + return (PetscInt) ((((((((PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscInt) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 4 * PyLong_SHIFT) { + return (PetscInt) (((PetscInt)-1)*(((((((((PetscInt)digits[3]) << PyLong_SHIFT) | (PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscInt) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscInt, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscInt) - 1 > 4 * PyLong_SHIFT) { + return (PetscInt) ((((((((((PetscInt)digits[3]) << PyLong_SHIFT) | (PetscInt)digits[2]) << PyLong_SHIFT) | (PetscInt)digits[1]) << PyLong_SHIFT) | (PetscInt)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscInt) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscInt, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscInt) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscInt, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscInt val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscInt) -1; + } + } else { + PetscInt val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscInt) -1; + val = __Pyx_PyInt_As_PetscInt(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscInt"); + return (PetscInt) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscInt"); + return (PetscInt) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_ISGlobalToLocalMappingMode(ISGlobalToLocalMappingMode value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const ISGlobalToLocalMappingMode neg_one = (ISGlobalToLocalMappingMode) -1, const_zero = (ISGlobalToLocalMappingMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(ISGlobalToLocalMappingMode) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(ISGlobalToLocalMappingMode), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_VecOption(VecOption value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const VecOption neg_one = (VecOption) -1, const_zero = (VecOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(VecOption) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(VecOption) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(VecOption) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(VecOption) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(VecOption) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(VecOption), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatOption(MatOption value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatOption neg_one = (MatOption) -1, const_zero = (MatOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatOption) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatOption) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatOption) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatOption) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatOption) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatOption), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatAssemblyType(MatAssemblyType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatAssemblyType neg_one = (MatAssemblyType) -1, const_zero = (MatAssemblyType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatAssemblyType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatAssemblyType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatAssemblyType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatAssemblyType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatAssemblyType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatAssemblyType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatInfoType(MatInfoType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatInfoType neg_one = (MatInfoType) -1, const_zero = (MatInfoType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatInfoType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatInfoType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatInfoType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatInfoType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatInfoType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatInfoType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatStructure(MatStructure value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatStructure neg_one = (MatStructure) -1, const_zero = (MatStructure) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatStructure) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatStructure) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatStructure) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatStructure) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatStructure) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatStructure), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatDuplicateOption(MatDuplicateOption value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatDuplicateOption neg_one = (MatDuplicateOption) -1, const_zero = (MatDuplicateOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatDuplicateOption) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatDuplicateOption) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatDuplicateOption) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatDuplicateOption) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatDuplicateOption) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatDuplicateOption), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatFactorShiftType(MatFactorShiftType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatFactorShiftType neg_one = (MatFactorShiftType) -1, const_zero = (MatFactorShiftType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatFactorShiftType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatFactorShiftType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatFactorShiftType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatFactorShiftType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatFactorShiftType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatFactorShiftType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatSORType(MatSORType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatSORType neg_one = (MatSORType) -1, const_zero = (MatSORType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatSORType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatSORType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatSORType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatSORType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatSORType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatSORType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCSide(PCSide value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCSide neg_one = (PCSide) -1, const_zero = (PCSide) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCSide) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCSide) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCSide) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCSide) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCSide) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCSide), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCASMType(PCASMType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCASMType neg_one = (PCASMType) -1, const_zero = (PCASMType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCASMType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCASMType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCASMType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCASMType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCASMType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCASMType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCGASMType(PCGASMType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCGASMType neg_one = (PCGASMType) -1, const_zero = (PCGASMType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCGASMType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCGASMType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCGASMType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCGASMType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCGASMType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCGASMType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCMGType(PCMGType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCMGType neg_one = (PCMGType) -1, const_zero = (PCMGType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCMGType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCMGType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCMGType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCMGType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCMGCycleType(PCMGCycleType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCMGCycleType neg_one = (PCMGCycleType) -1, const_zero = (PCMGCycleType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCMGCycleType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCMGCycleType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGCycleType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCMGCycleType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGCycleType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCMGCycleType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCCompositeType(PCCompositeType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCCompositeType neg_one = (PCCompositeType) -1, const_zero = (PCCompositeType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCCompositeType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCCompositeType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCCompositeType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCCompositeType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCCompositeType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCCompositeType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFieldSplitSchurPreType(PCFieldSplitSchurPreType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFieldSplitSchurPreType neg_one = (PCFieldSplitSchurPreType) -1, const_zero = (PCFieldSplitSchurPreType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCFieldSplitSchurPreType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCFieldSplitSchurPreType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurPreType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCFieldSplitSchurPreType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurPreType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCFieldSplitSchurPreType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFieldSplitSchurFactType(PCFieldSplitSchurFactType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFieldSplitSchurFactType neg_one = (PCFieldSplitSchurFactType) -1, const_zero = (PCFieldSplitSchurFactType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCFieldSplitSchurFactType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCFieldSplitSchurFactType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurFactType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCFieldSplitSchurFactType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurFactType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCFieldSplitSchurFactType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCPatchConstructType(PCPatchConstructType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCPatchConstructType neg_one = (PCPatchConstructType) -1, const_zero = (PCPatchConstructType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCPatchConstructType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCPatchConstructType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCPatchConstructType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCPatchConstructType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCPatchConstructType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCPatchConstructType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCHPDDMCoarseCorrectionType(PCHPDDMCoarseCorrectionType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCHPDDMCoarseCorrectionType neg_one = (PCHPDDMCoarseCorrectionType) -1, const_zero = (PCHPDDMCoarseCorrectionType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCHPDDMCoarseCorrectionType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCHPDDMCoarseCorrectionType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCDeflationSpaceType(PCDeflationSpaceType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCDeflationSpaceType neg_one = (PCDeflationSpaceType) -1, const_zero = (PCDeflationSpaceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCDeflationSpaceType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCDeflationSpaceType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCDeflationSpaceType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCDeflationSpaceType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCDeflationSpaceType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCDeflationSpaceType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PCFailedReason(PCFailedReason value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFailedReason neg_one = (PCFailedReason) -1, const_zero = (PCFailedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PCFailedReason) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PCFailedReason) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFailedReason) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PCFailedReason) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFailedReason) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PCFailedReason), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_KSPNormType(KSPNormType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const KSPNormType neg_one = (KSPNormType) -1, const_zero = (KSPNormType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(KSPNormType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(KSPNormType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPNormType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(KSPNormType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPNormType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(KSPNormType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_KSPConvergedReason(KSPConvergedReason value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const KSPConvergedReason neg_one = (KSPConvergedReason) -1, const_zero = (KSPConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(KSPConvergedReason) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(KSPConvergedReason) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(KSPConvergedReason) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPConvergedReason) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(KSPConvergedReason), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_SNESNormSchedule(SNESNormSchedule value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const SNESNormSchedule neg_one = (SNESNormSchedule) -1, const_zero = (SNESNormSchedule) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(SNESNormSchedule) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(SNESNormSchedule) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESNormSchedule) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(SNESNormSchedule) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESNormSchedule) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(SNESNormSchedule), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_SNESConvergedReason(SNESConvergedReason value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const SNESConvergedReason neg_one = (SNESConvergedReason) -1, const_zero = (SNESConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(SNESConvergedReason) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(SNESConvergedReason) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(SNESConvergedReason) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESConvergedReason) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(SNESConvergedReason), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSProblemType(TSProblemType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSProblemType neg_one = (TSProblemType) -1, const_zero = (TSProblemType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(TSProblemType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(TSProblemType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSProblemType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TSProblemType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSProblemType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(TSProblemType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSEquationType(TSEquationType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSEquationType neg_one = (TSEquationType) -1, const_zero = (TSEquationType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(TSEquationType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(TSEquationType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSEquationType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TSEquationType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSEquationType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(TSEquationType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSExactFinalTimeOption(TSExactFinalTimeOption value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSExactFinalTimeOption neg_one = (TSExactFinalTimeOption) -1, const_zero = (TSExactFinalTimeOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(TSExactFinalTimeOption) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(TSExactFinalTimeOption) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSExactFinalTimeOption) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TSExactFinalTimeOption) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSExactFinalTimeOption) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(TSExactFinalTimeOption), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TSConvergedReason(TSConvergedReason value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSConvergedReason neg_one = (TSConvergedReason) -1, const_zero = (TSConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(TSConvergedReason) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(TSConvergedReason) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TSConvergedReason) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSConvergedReason) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(TSConvergedReason), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_TaoConvergedReason(TaoConvergedReason value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TaoConvergedReason neg_one = (TaoConvergedReason) -1, const_zero = (TaoConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(TaoConvergedReason) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(TaoConvergedReason) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TaoConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(TaoConvergedReason) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(TaoConvergedReason) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(TaoConvergedReason), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMBoundaryType(DMBoundaryType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMBoundaryType neg_one = (DMBoundaryType) -1, const_zero = (DMBoundaryType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMBoundaryType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMBoundaryType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMBoundaryType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMBoundaryType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMBoundaryType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMBoundaryType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMPolytopeType(DMPolytopeType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMPolytopeType neg_one = (DMPolytopeType) -1, const_zero = (DMPolytopeType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMPolytopeType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMPolytopeType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPolytopeType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMPolytopeType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPolytopeType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMPolytopeType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAStencilType(DMDAStencilType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAStencilType neg_one = (DMDAStencilType) -1, const_zero = (DMDAStencilType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMDAStencilType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMDAStencilType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAStencilType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMDAStencilType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAStencilType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMDAStencilType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAInterpolationType(DMDAInterpolationType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAInterpolationType neg_one = (DMDAInterpolationType) -1, const_zero = (DMDAInterpolationType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMDAInterpolationType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMDAInterpolationType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAInterpolationType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMDAInterpolationType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAInterpolationType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMDAInterpolationType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMDAElementType(DMDAElementType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAElementType neg_one = (DMDAElementType) -1, const_zero = (DMDAElementType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMDAElementType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMDAElementType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAElementType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMDAElementType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAElementType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMDAElementType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMPlexReorderDefaultFlag(DMPlexReorderDefaultFlag value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMPlexReorderDefaultFlag neg_one = (DMPlexReorderDefaultFlag) -1, const_zero = (DMPlexReorderDefaultFlag) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMPlexReorderDefaultFlag) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMPlexReorderDefaultFlag), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscBool __Pyx_PyInt_As_PetscBool(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscBool neg_one = (PetscBool) -1, const_zero = (PetscBool) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscBool) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscBool, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscBool) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscBool) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscBool, digit, digits[0]) + case 2: + if (8 * sizeof(PetscBool) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) >= 2 * PyLong_SHIFT) { + return (PetscBool) (((((PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscBool) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) >= 3 * PyLong_SHIFT) { + return (PetscBool) (((((((PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscBool) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) >= 4 * PyLong_SHIFT) { + return (PetscBool) (((((((((PetscBool)digits[3]) << PyLong_SHIFT) | (PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscBool) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscBool) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscBool, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscBool) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscBool, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscBool) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscBool, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscBool, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscBool) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 2 * PyLong_SHIFT) { + return (PetscBool) (((PetscBool)-1)*(((((PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscBool) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 2 * PyLong_SHIFT) { + return (PetscBool) ((((((PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscBool) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 3 * PyLong_SHIFT) { + return (PetscBool) (((PetscBool)-1)*(((((((PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscBool) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 3 * PyLong_SHIFT) { + return (PetscBool) ((((((((PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscBool) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 4 * PyLong_SHIFT) { + return (PetscBool) (((PetscBool)-1)*(((((((((PetscBool)digits[3]) << PyLong_SHIFT) | (PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscBool) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscBool, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscBool) - 1 > 4 * PyLong_SHIFT) { + return (PetscBool) ((((((((((PetscBool)digits[3]) << PyLong_SHIFT) | (PetscBool)digits[2]) << PyLong_SHIFT) | (PetscBool)digits[1]) << PyLong_SHIFT) | (PetscBool)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscBool) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscBool, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscBool) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscBool, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscBool val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscBool) -1; + } + } else { + PetscBool val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscBool) -1; + val = __Pyx_PyInt_As_PetscBool(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscBool"); + return (PetscBool) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscBool"); + return (PetscBool) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMStagStencilType(DMStagStencilType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMStagStencilType neg_one = (DMStagStencilType) -1, const_zero = (DMStagStencilType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMStagStencilType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMStagStencilType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMStagStencilType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMStagStencilType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMStagStencilLocation(DMStagStencilLocation value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMStagStencilLocation neg_one = (DMStagStencilLocation) -1, const_zero = (DMStagStencilLocation) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMStagStencilLocation) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMStagStencilLocation) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilLocation) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMStagStencilLocation) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilLocation) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMStagStencilLocation), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmType(DMSwarmType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmType neg_one = (DMSwarmType) -1, const_zero = (DMSwarmType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMSwarmType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMSwarmType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMSwarmType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMSwarmType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmMigrateType(DMSwarmMigrateType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmMigrateType neg_one = (DMSwarmMigrateType) -1, const_zero = (DMSwarmMigrateType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMSwarmMigrateType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMSwarmMigrateType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmMigrateType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMSwarmMigrateType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmMigrateType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMSwarmMigrateType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmCollectType(DMSwarmCollectType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmCollectType neg_one = (DMSwarmCollectType) -1, const_zero = (DMSwarmCollectType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMSwarmCollectType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMSwarmCollectType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmCollectType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMSwarmCollectType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmCollectType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMSwarmCollectType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_DMSwarmPICLayoutType(DMSwarmPICLayoutType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmPICLayoutType neg_one = (DMSwarmPICLayoutType) -1, const_zero = (DMSwarmPICLayoutType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(DMSwarmPICLayoutType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(DMSwarmPICLayoutType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmPICLayoutType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(DMSwarmPICLayoutType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmPICLayoutType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(DMSwarmPICLayoutType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(long), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscInt(PetscInt value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscInt neg_one = (PetscInt) -1, const_zero = (PetscInt) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscInt) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscInt) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscInt) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscInt) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscInt) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscInt), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE InsertMode __Pyx_PyInt_As_InsertMode(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const InsertMode neg_one = (InsertMode) -1, const_zero = (InsertMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(InsertMode) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(InsertMode, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (InsertMode) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (InsertMode) 0; + case 1: __PYX_VERIFY_RETURN_INT(InsertMode, digit, digits[0]) + case 2: + if (8 * sizeof(InsertMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) >= 2 * PyLong_SHIFT) { + return (InsertMode) (((((InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(InsertMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) >= 3 * PyLong_SHIFT) { + return (InsertMode) (((((((InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(InsertMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) >= 4 * PyLong_SHIFT) { + return (InsertMode) (((((((((InsertMode)digits[3]) << PyLong_SHIFT) | (InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (InsertMode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(InsertMode) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(InsertMode, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(InsertMode) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(InsertMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (InsertMode) 0; + case -1: __PYX_VERIFY_RETURN_INT(InsertMode, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(InsertMode, digit, +digits[0]) + case -2: + if (8 * sizeof(InsertMode) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 2 * PyLong_SHIFT) { + return (InsertMode) (((InsertMode)-1)*(((((InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(InsertMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 2 * PyLong_SHIFT) { + return (InsertMode) ((((((InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(InsertMode) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 3 * PyLong_SHIFT) { + return (InsertMode) (((InsertMode)-1)*(((((((InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(InsertMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 3 * PyLong_SHIFT) { + return (InsertMode) ((((((((InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(InsertMode) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 4 * PyLong_SHIFT) { + return (InsertMode) (((InsertMode)-1)*(((((((((InsertMode)digits[3]) << PyLong_SHIFT) | (InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(InsertMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(InsertMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(InsertMode) - 1 > 4 * PyLong_SHIFT) { + return (InsertMode) ((((((((((InsertMode)digits[3]) << PyLong_SHIFT) | (InsertMode)digits[2]) << PyLong_SHIFT) | (InsertMode)digits[1]) << PyLong_SHIFT) | (InsertMode)digits[0]))); + } + } + break; + } +#endif + if (sizeof(InsertMode) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(InsertMode, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(InsertMode) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(InsertMode, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + InsertMode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (InsertMode) -1; + } + } else { + InsertMode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (InsertMode) -1; + val = __Pyx_PyInt_As_InsertMode(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to InsertMode"); + return (InsertMode) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to InsertMode"); + return (InsertMode) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE ScatterMode __Pyx_PyInt_As_ScatterMode(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const ScatterMode neg_one = (ScatterMode) -1, const_zero = (ScatterMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(ScatterMode) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(ScatterMode, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (ScatterMode) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (ScatterMode) 0; + case 1: __PYX_VERIFY_RETURN_INT(ScatterMode, digit, digits[0]) + case 2: + if (8 * sizeof(ScatterMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) >= 2 * PyLong_SHIFT) { + return (ScatterMode) (((((ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(ScatterMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) >= 3 * PyLong_SHIFT) { + return (ScatterMode) (((((((ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(ScatterMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) >= 4 * PyLong_SHIFT) { + return (ScatterMode) (((((((((ScatterMode)digits[3]) << PyLong_SHIFT) | (ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (ScatterMode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(ScatterMode) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(ScatterMode, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(ScatterMode) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ScatterMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (ScatterMode) 0; + case -1: __PYX_VERIFY_RETURN_INT(ScatterMode, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(ScatterMode, digit, +digits[0]) + case -2: + if (8 * sizeof(ScatterMode) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 2 * PyLong_SHIFT) { + return (ScatterMode) (((ScatterMode)-1)*(((((ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(ScatterMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 2 * PyLong_SHIFT) { + return (ScatterMode) ((((((ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(ScatterMode) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 3 * PyLong_SHIFT) { + return (ScatterMode) (((ScatterMode)-1)*(((((((ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(ScatterMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 3 * PyLong_SHIFT) { + return (ScatterMode) ((((((((ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(ScatterMode) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 4 * PyLong_SHIFT) { + return (ScatterMode) (((ScatterMode)-1)*(((((((((ScatterMode)digits[3]) << PyLong_SHIFT) | (ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(ScatterMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ScatterMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ScatterMode) - 1 > 4 * PyLong_SHIFT) { + return (ScatterMode) ((((((((((ScatterMode)digits[3]) << PyLong_SHIFT) | (ScatterMode)digits[2]) << PyLong_SHIFT) | (ScatterMode)digits[1]) << PyLong_SHIFT) | (ScatterMode)digits[0]))); + } + } + break; + } +#endif + if (sizeof(ScatterMode) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(ScatterMode, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(ScatterMode) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ScatterMode, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + ScatterMode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (ScatterMode) -1; + } + } else { + ScatterMode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (ScatterMode) -1; + val = __Pyx_PyInt_As_ScatterMode(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to ScatterMode"); + return (ScatterMode) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to ScatterMode"); + return (ScatterMode) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscFileMode __Pyx_PyInt_As_PetscFileMode(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscFileMode neg_one = (PetscFileMode) -1, const_zero = (PetscFileMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscFileMode) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscFileMode) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscFileMode) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscFileMode, digit, digits[0]) + case 2: + if (8 * sizeof(PetscFileMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) >= 2 * PyLong_SHIFT) { + return (PetscFileMode) (((((PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscFileMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) >= 3 * PyLong_SHIFT) { + return (PetscFileMode) (((((((PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscFileMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) >= 4 * PyLong_SHIFT) { + return (PetscFileMode) (((((((((PetscFileMode)digits[3]) << PyLong_SHIFT) | (PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscFileMode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscFileMode) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscFileMode, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscFileMode) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscFileMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscFileMode) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscFileMode, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscFileMode, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscFileMode) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 2 * PyLong_SHIFT) { + return (PetscFileMode) (((PetscFileMode)-1)*(((((PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscFileMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 2 * PyLong_SHIFT) { + return (PetscFileMode) ((((((PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscFileMode) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 3 * PyLong_SHIFT) { + return (PetscFileMode) (((PetscFileMode)-1)*(((((((PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscFileMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 3 * PyLong_SHIFT) { + return (PetscFileMode) ((((((((PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscFileMode) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 4 * PyLong_SHIFT) { + return (PetscFileMode) (((PetscFileMode)-1)*(((((((((PetscFileMode)digits[3]) << PyLong_SHIFT) | (PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscFileMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscFileMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscFileMode) - 1 > 4 * PyLong_SHIFT) { + return (PetscFileMode) ((((((((((PetscFileMode)digits[3]) << PyLong_SHIFT) | (PetscFileMode)digits[2]) << PyLong_SHIFT) | (PetscFileMode)digits[1]) << PyLong_SHIFT) | (PetscFileMode)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscFileMode) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscFileMode, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscFileMode) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscFileMode, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscFileMode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscFileMode) -1; + } + } else { + PetscFileMode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscFileMode) -1; + val = __Pyx_PyInt_As_PetscFileMode(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscFileMode"); + return (PetscFileMode) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscFileMode"); + return (PetscFileMode) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscDeviceType __Pyx_PyInt_As_PetscDeviceType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscDeviceType neg_one = (PetscDeviceType) -1, const_zero = (PetscDeviceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscDeviceType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscDeviceType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscDeviceType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscDeviceType, digit, digits[0]) + case 2: + if (8 * sizeof(PetscDeviceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) >= 2 * PyLong_SHIFT) { + return (PetscDeviceType) (((((PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscDeviceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) >= 3 * PyLong_SHIFT) { + return (PetscDeviceType) (((((((PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscDeviceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) >= 4 * PyLong_SHIFT) { + return (PetscDeviceType) (((((((((PetscDeviceType)digits[3]) << PyLong_SHIFT) | (PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscDeviceType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscDeviceType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscDeviceType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscDeviceType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscDeviceType, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscDeviceType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 2 * PyLong_SHIFT) { + return (PetscDeviceType) (((PetscDeviceType)-1)*(((((PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscDeviceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 2 * PyLong_SHIFT) { + return (PetscDeviceType) ((((((PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscDeviceType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 3 * PyLong_SHIFT) { + return (PetscDeviceType) (((PetscDeviceType)-1)*(((((((PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscDeviceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 3 * PyLong_SHIFT) { + return (PetscDeviceType) ((((((((PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscDeviceType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 4 * PyLong_SHIFT) { + return (PetscDeviceType) (((PetscDeviceType)-1)*(((((((((PetscDeviceType)digits[3]) << PyLong_SHIFT) | (PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscDeviceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceType) - 1 > 4 * PyLong_SHIFT) { + return (PetscDeviceType) ((((((((((PetscDeviceType)digits[3]) << PyLong_SHIFT) | (PetscDeviceType)digits[2]) << PyLong_SHIFT) | (PetscDeviceType)digits[1]) << PyLong_SHIFT) | (PetscDeviceType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscDeviceType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscDeviceType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscDeviceType) -1; + } + } else { + PetscDeviceType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscDeviceType) -1; + val = __Pyx_PyInt_As_PetscDeviceType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscDeviceType"); + return (PetscDeviceType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscDeviceType"); + return (PetscDeviceType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscStreamType __Pyx_PyInt_As_PetscStreamType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscStreamType neg_one = (PetscStreamType) -1, const_zero = (PetscStreamType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscStreamType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscStreamType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscStreamType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscStreamType, digit, digits[0]) + case 2: + if (8 * sizeof(PetscStreamType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) >= 2 * PyLong_SHIFT) { + return (PetscStreamType) (((((PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscStreamType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) >= 3 * PyLong_SHIFT) { + return (PetscStreamType) (((((((PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscStreamType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) >= 4 * PyLong_SHIFT) { + return (PetscStreamType) (((((((((PetscStreamType)digits[3]) << PyLong_SHIFT) | (PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscStreamType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscStreamType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscStreamType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscStreamType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscStreamType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscStreamType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscStreamType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscStreamType, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscStreamType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 2 * PyLong_SHIFT) { + return (PetscStreamType) (((PetscStreamType)-1)*(((((PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscStreamType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 2 * PyLong_SHIFT) { + return (PetscStreamType) ((((((PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscStreamType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 3 * PyLong_SHIFT) { + return (PetscStreamType) (((PetscStreamType)-1)*(((((((PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscStreamType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 3 * PyLong_SHIFT) { + return (PetscStreamType) ((((((((PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscStreamType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 4 * PyLong_SHIFT) { + return (PetscStreamType) (((PetscStreamType)-1)*(((((((((PetscStreamType)digits[3]) << PyLong_SHIFT) | (PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscStreamType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscStreamType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscStreamType) - 1 > 4 * PyLong_SHIFT) { + return (PetscStreamType) ((((((((((PetscStreamType)digits[3]) << PyLong_SHIFT) | (PetscStreamType)digits[2]) << PyLong_SHIFT) | (PetscStreamType)digits[1]) << PyLong_SHIFT) | (PetscStreamType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscStreamType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscStreamType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscStreamType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscStreamType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscStreamType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscStreamType) -1; + } + } else { + PetscStreamType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscStreamType) -1; + val = __Pyx_PyInt_As_PetscStreamType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscStreamType"); + return (PetscStreamType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscStreamType"); + return (PetscStreamType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscDeviceContextJoinMode __Pyx_PyInt_As_PetscDeviceContextJoinMode(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscDeviceContextJoinMode neg_one = (PetscDeviceContextJoinMode) -1, const_zero = (PetscDeviceContextJoinMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscDeviceContextJoinMode) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscDeviceContextJoinMode) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscDeviceContextJoinMode) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, digit, digits[0]) + case 2: + if (8 * sizeof(PetscDeviceContextJoinMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) >= 2 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((((PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscDeviceContextJoinMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) >= 3 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((((((PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscDeviceContextJoinMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) >= 4 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((((((((PetscDeviceContextJoinMode)digits[3]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscDeviceContextJoinMode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscDeviceContextJoinMode) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceContextJoinMode, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceContextJoinMode) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceContextJoinMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscDeviceContextJoinMode) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 2 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((PetscDeviceContextJoinMode)-1)*(((((PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscDeviceContextJoinMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 2 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) ((((((PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 3 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((PetscDeviceContextJoinMode)-1)*(((((((PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscDeviceContextJoinMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 3 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) ((((((((PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 4 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) (((PetscDeviceContextJoinMode)-1)*(((((((((PetscDeviceContextJoinMode)digits[3]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscDeviceContextJoinMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscDeviceContextJoinMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscDeviceContextJoinMode) - 1 > 4 * PyLong_SHIFT) { + return (PetscDeviceContextJoinMode) ((((((((((PetscDeviceContextJoinMode)digits[3]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[2]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[1]) << PyLong_SHIFT) | (PetscDeviceContextJoinMode)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscDeviceContextJoinMode) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceContextJoinMode, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscDeviceContextJoinMode) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscDeviceContextJoinMode, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscDeviceContextJoinMode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscDeviceContextJoinMode) -1; + } + } else { + PetscDeviceContextJoinMode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscDeviceContextJoinMode) -1; + val = __Pyx_PyInt_As_PetscDeviceContextJoinMode(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscDeviceContextJoinMode"); + return (PetscDeviceContextJoinMode) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscDeviceContextJoinMode"); + return (PetscDeviceContextJoinMode) -1; +} + +/* TypeInfoToFormat */ + static struct __pyx_typeinfo_string __Pyx_TypeInfoToFormat(__Pyx_TypeInfo *type) { + struct __pyx_typeinfo_string result = { {0} }; + char *buf = (char *) result.string; + size_t size = type->size; + switch (type->typegroup) { + case 'H': + *buf = 'c'; + break; + case 'I': + case 'U': + if (size == 1) + *buf = (type->is_unsigned) ? 'B' : 'b'; + else if (size == 2) + *buf = (type->is_unsigned) ? 'H' : 'h'; + else if (size == 4) + *buf = (type->is_unsigned) ? 'I' : 'i'; + else if (size == 8) + *buf = (type->is_unsigned) ? 'Q' : 'q'; + break; + case 'P': + *buf = 'P'; + break; + case 'C': + { + __Pyx_TypeInfo complex_type = *type; + complex_type.typegroup = 'R'; + complex_type.size /= 2; + *buf++ = 'Z'; + *buf = __Pyx_TypeInfoToFormat(&complex_type).string[0]; + break; + } + case 'R': + if (size == 4) + *buf = 'f'; + else if (size == 8) + *buf = 'd'; + else + *buf = 'g'; + break; + } + return result; +} + +/* CIntFromPy */ + static CYTHON_INLINE int64_t __Pyx_PyInt_As_int64_t(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(int64_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(int64_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (int64_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int64_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(int64_t, digit, digits[0]) + case 2: + if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) >= 2 * PyLong_SHIFT) { + return (int64_t) (((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) >= 3 * PyLong_SHIFT) { + return (int64_t) (((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) >= 4 * PyLong_SHIFT) { + return (int64_t) (((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (int64_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(int64_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int64_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (int64_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(int64_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(int64_t, digit, +digits[0]) + case -2: + if (8 * sizeof(int64_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) { + return (int64_t) (((int64_t)-1)*(((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(int64_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) { + return (int64_t) ((((((int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(int64_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) { + return (int64_t) (((int64_t)-1)*(((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(int64_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) { + return (int64_t) ((((((((int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(int64_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT) { + return (int64_t) (((int64_t)-1)*(((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(int64_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(int64_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(int64_t) - 1 > 4 * PyLong_SHIFT) { + return (int64_t) ((((((((((int64_t)digits[3]) << PyLong_SHIFT) | (int64_t)digits[2]) << PyLong_SHIFT) | (int64_t)digits[1]) << PyLong_SHIFT) | (int64_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(int64_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(int64_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(int64_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + int64_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (int64_t) -1; + } + } else { + int64_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (int64_t) -1; + val = __Pyx_PyInt_As_int64_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to int64_t"); + return (int64_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to int64_t"); + return (int64_t) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscMemType(PetscMemType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscMemType neg_one = (PetscMemType) -1, const_zero = (PetscMemType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscMemType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscMemType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscMemType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscMemType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscMemType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscMemType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType neg_one = (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1, const_zero = (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int64_t(int64_t value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const int64_t neg_one = (int64_t) -1, const_zero = (int64_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(int64_t) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(int64_t) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int64_t) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(int64_t) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(int64_t) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(int64_t), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE MatStructure __Pyx_PyInt_As_MatStructure(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatStructure neg_one = (MatStructure) -1, const_zero = (MatStructure) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(MatStructure) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(MatStructure, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (MatStructure) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatStructure) 0; + case 1: __PYX_VERIFY_RETURN_INT(MatStructure, digit, digits[0]) + case 2: + if (8 * sizeof(MatStructure) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) >= 2 * PyLong_SHIFT) { + return (MatStructure) (((((MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(MatStructure) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) >= 3 * PyLong_SHIFT) { + return (MatStructure) (((((((MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(MatStructure) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) >= 4 * PyLong_SHIFT) { + return (MatStructure) (((((((((MatStructure)digits[3]) << PyLong_SHIFT) | (MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (MatStructure) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(MatStructure) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatStructure, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatStructure) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatStructure, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatStructure) 0; + case -1: __PYX_VERIFY_RETURN_INT(MatStructure, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(MatStructure, digit, +digits[0]) + case -2: + if (8 * sizeof(MatStructure) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 2 * PyLong_SHIFT) { + return (MatStructure) (((MatStructure)-1)*(((((MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(MatStructure) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 2 * PyLong_SHIFT) { + return (MatStructure) ((((((MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(MatStructure) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 3 * PyLong_SHIFT) { + return (MatStructure) (((MatStructure)-1)*(((((((MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(MatStructure) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 3 * PyLong_SHIFT) { + return (MatStructure) ((((((((MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(MatStructure) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 4 * PyLong_SHIFT) { + return (MatStructure) (((MatStructure)-1)*(((((((((MatStructure)digits[3]) << PyLong_SHIFT) | (MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(MatStructure) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatStructure, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatStructure) - 1 > 4 * PyLong_SHIFT) { + return (MatStructure) ((((((((((MatStructure)digits[3]) << PyLong_SHIFT) | (MatStructure)digits[2]) << PyLong_SHIFT) | (MatStructure)digits[1]) << PyLong_SHIFT) | (MatStructure)digits[0]))); + } + } + break; + } +#endif + if (sizeof(MatStructure) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatStructure, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatStructure) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatStructure, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + MatStructure val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (MatStructure) -1; + } + } else { + MatStructure val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (MatStructure) -1; + val = __Pyx_PyInt_As_MatStructure(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to MatStructure"); + return (MatStructure) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to MatStructure"); + return (MatStructure) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE MatAssemblyType __Pyx_PyInt_As_MatAssemblyType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatAssemblyType neg_one = (MatAssemblyType) -1, const_zero = (MatAssemblyType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(MatAssemblyType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (MatAssemblyType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatAssemblyType) 0; + case 1: __PYX_VERIFY_RETURN_INT(MatAssemblyType, digit, digits[0]) + case 2: + if (8 * sizeof(MatAssemblyType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) >= 2 * PyLong_SHIFT) { + return (MatAssemblyType) (((((MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(MatAssemblyType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) >= 3 * PyLong_SHIFT) { + return (MatAssemblyType) (((((((MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(MatAssemblyType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) >= 4 * PyLong_SHIFT) { + return (MatAssemblyType) (((((((((MatAssemblyType)digits[3]) << PyLong_SHIFT) | (MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (MatAssemblyType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(MatAssemblyType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatAssemblyType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatAssemblyType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatAssemblyType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatAssemblyType) 0; + case -1: __PYX_VERIFY_RETURN_INT(MatAssemblyType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(MatAssemblyType, digit, +digits[0]) + case -2: + if (8 * sizeof(MatAssemblyType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 2 * PyLong_SHIFT) { + return (MatAssemblyType) (((MatAssemblyType)-1)*(((((MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(MatAssemblyType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 2 * PyLong_SHIFT) { + return (MatAssemblyType) ((((((MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(MatAssemblyType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 3 * PyLong_SHIFT) { + return (MatAssemblyType) (((MatAssemblyType)-1)*(((((((MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(MatAssemblyType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 3 * PyLong_SHIFT) { + return (MatAssemblyType) ((((((((MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(MatAssemblyType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 4 * PyLong_SHIFT) { + return (MatAssemblyType) (((MatAssemblyType)-1)*(((((((((MatAssemblyType)digits[3]) << PyLong_SHIFT) | (MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(MatAssemblyType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatAssemblyType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatAssemblyType) - 1 > 4 * PyLong_SHIFT) { + return (MatAssemblyType) ((((((((((MatAssemblyType)digits[3]) << PyLong_SHIFT) | (MatAssemblyType)digits[2]) << PyLong_SHIFT) | (MatAssemblyType)digits[1]) << PyLong_SHIFT) | (MatAssemblyType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(MatAssemblyType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatAssemblyType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatAssemblyType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatAssemblyType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + MatAssemblyType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (MatAssemblyType) -1; + } + } else { + MatAssemblyType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (MatAssemblyType) -1; + val = __Pyx_PyInt_As_MatAssemblyType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to MatAssemblyType"); + return (MatAssemblyType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to MatAssemblyType"); + return (MatAssemblyType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE MatInfoType __Pyx_PyInt_As_MatInfoType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatInfoType neg_one = (MatInfoType) -1, const_zero = (MatInfoType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(MatInfoType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(MatInfoType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (MatInfoType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatInfoType) 0; + case 1: __PYX_VERIFY_RETURN_INT(MatInfoType, digit, digits[0]) + case 2: + if (8 * sizeof(MatInfoType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) >= 2 * PyLong_SHIFT) { + return (MatInfoType) (((((MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(MatInfoType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) >= 3 * PyLong_SHIFT) { + return (MatInfoType) (((((((MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(MatInfoType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) >= 4 * PyLong_SHIFT) { + return (MatInfoType) (((((((((MatInfoType)digits[3]) << PyLong_SHIFT) | (MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (MatInfoType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(MatInfoType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatInfoType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatInfoType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatInfoType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatInfoType) 0; + case -1: __PYX_VERIFY_RETURN_INT(MatInfoType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(MatInfoType, digit, +digits[0]) + case -2: + if (8 * sizeof(MatInfoType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 2 * PyLong_SHIFT) { + return (MatInfoType) (((MatInfoType)-1)*(((((MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(MatInfoType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 2 * PyLong_SHIFT) { + return (MatInfoType) ((((((MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(MatInfoType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 3 * PyLong_SHIFT) { + return (MatInfoType) (((MatInfoType)-1)*(((((((MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(MatInfoType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 3 * PyLong_SHIFT) { + return (MatInfoType) ((((((((MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(MatInfoType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 4 * PyLong_SHIFT) { + return (MatInfoType) (((MatInfoType)-1)*(((((((((MatInfoType)digits[3]) << PyLong_SHIFT) | (MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(MatInfoType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatInfoType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatInfoType) - 1 > 4 * PyLong_SHIFT) { + return (MatInfoType) ((((((((((MatInfoType)digits[3]) << PyLong_SHIFT) | (MatInfoType)digits[2]) << PyLong_SHIFT) | (MatInfoType)digits[1]) << PyLong_SHIFT) | (MatInfoType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(MatInfoType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatInfoType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatInfoType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatInfoType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + MatInfoType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (MatInfoType) -1; + } + } else { + MatInfoType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (MatInfoType) -1; + val = __Pyx_PyInt_As_MatInfoType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to MatInfoType"); + return (MatInfoType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to MatInfoType"); + return (MatInfoType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE MatFactorShiftType __Pyx_PyInt_As_MatFactorShiftType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatFactorShiftType neg_one = (MatFactorShiftType) -1, const_zero = (MatFactorShiftType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(MatFactorShiftType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (MatFactorShiftType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatFactorShiftType) 0; + case 1: __PYX_VERIFY_RETURN_INT(MatFactorShiftType, digit, digits[0]) + case 2: + if (8 * sizeof(MatFactorShiftType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) >= 2 * PyLong_SHIFT) { + return (MatFactorShiftType) (((((MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(MatFactorShiftType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) >= 3 * PyLong_SHIFT) { + return (MatFactorShiftType) (((((((MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(MatFactorShiftType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) >= 4 * PyLong_SHIFT) { + return (MatFactorShiftType) (((((((((MatFactorShiftType)digits[3]) << PyLong_SHIFT) | (MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (MatFactorShiftType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(MatFactorShiftType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatFactorShiftType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatFactorShiftType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatFactorShiftType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatFactorShiftType) 0; + case -1: __PYX_VERIFY_RETURN_INT(MatFactorShiftType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(MatFactorShiftType, digit, +digits[0]) + case -2: + if (8 * sizeof(MatFactorShiftType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 2 * PyLong_SHIFT) { + return (MatFactorShiftType) (((MatFactorShiftType)-1)*(((((MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(MatFactorShiftType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 2 * PyLong_SHIFT) { + return (MatFactorShiftType) ((((((MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(MatFactorShiftType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 3 * PyLong_SHIFT) { + return (MatFactorShiftType) (((MatFactorShiftType)-1)*(((((((MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(MatFactorShiftType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 3 * PyLong_SHIFT) { + return (MatFactorShiftType) ((((((((MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(MatFactorShiftType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 4 * PyLong_SHIFT) { + return (MatFactorShiftType) (((MatFactorShiftType)-1)*(((((((((MatFactorShiftType)digits[3]) << PyLong_SHIFT) | (MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(MatFactorShiftType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatFactorShiftType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatFactorShiftType) - 1 > 4 * PyLong_SHIFT) { + return (MatFactorShiftType) ((((((((((MatFactorShiftType)digits[3]) << PyLong_SHIFT) | (MatFactorShiftType)digits[2]) << PyLong_SHIFT) | (MatFactorShiftType)digits[1]) << PyLong_SHIFT) | (MatFactorShiftType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(MatFactorShiftType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatFactorShiftType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatFactorShiftType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatFactorShiftType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + MatFactorShiftType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (MatFactorShiftType) -1; + } + } else { + MatFactorShiftType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (MatFactorShiftType) -1; + val = __Pyx_PyInt_As_MatFactorShiftType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to MatFactorShiftType"); + return (MatFactorShiftType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to MatFactorShiftType"); + return (MatFactorShiftType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE KSPConvergedReason __Pyx_PyInt_As_KSPConvergedReason(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const KSPConvergedReason neg_one = (KSPConvergedReason) -1, const_zero = (KSPConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(KSPConvergedReason) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (KSPConvergedReason) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (KSPConvergedReason) 0; + case 1: __PYX_VERIFY_RETURN_INT(KSPConvergedReason, digit, digits[0]) + case 2: + if (8 * sizeof(KSPConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) >= 2 * PyLong_SHIFT) { + return (KSPConvergedReason) (((((KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(KSPConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) >= 3 * PyLong_SHIFT) { + return (KSPConvergedReason) (((((((KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(KSPConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) >= 4 * PyLong_SHIFT) { + return (KSPConvergedReason) (((((((((KSPConvergedReason)digits[3]) << PyLong_SHIFT) | (KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (KSPConvergedReason) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(KSPConvergedReason) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPConvergedReason, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPConvergedReason, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (KSPConvergedReason) 0; + case -1: __PYX_VERIFY_RETURN_INT(KSPConvergedReason, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(KSPConvergedReason, digit, +digits[0]) + case -2: + if (8 * sizeof(KSPConvergedReason) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (KSPConvergedReason) (((KSPConvergedReason)-1)*(((((KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(KSPConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (KSPConvergedReason) ((((((KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(KSPConvergedReason) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (KSPConvergedReason) (((KSPConvergedReason)-1)*(((((((KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(KSPConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (KSPConvergedReason) ((((((((KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(KSPConvergedReason) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (KSPConvergedReason) (((KSPConvergedReason)-1)*(((((((((KSPConvergedReason)digits[3]) << PyLong_SHIFT) | (KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(KSPConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (KSPConvergedReason) ((((((((((KSPConvergedReason)digits[3]) << PyLong_SHIFT) | (KSPConvergedReason)digits[2]) << PyLong_SHIFT) | (KSPConvergedReason)digits[1]) << PyLong_SHIFT) | (KSPConvergedReason)digits[0]))); + } + } + break; + } +#endif + if (sizeof(KSPConvergedReason) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPConvergedReason, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPConvergedReason) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPConvergedReason, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + KSPConvergedReason val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (KSPConvergedReason) -1; + } + } else { + KSPConvergedReason val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (KSPConvergedReason) -1; + val = __Pyx_PyInt_As_KSPConvergedReason(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to KSPConvergedReason"); + return (KSPConvergedReason) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to KSPConvergedReason"); + return (KSPConvergedReason) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE SNESConvergedReason __Pyx_PyInt_As_SNESConvergedReason(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const SNESConvergedReason neg_one = (SNESConvergedReason) -1, const_zero = (SNESConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(SNESConvergedReason) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (SNESConvergedReason) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (SNESConvergedReason) 0; + case 1: __PYX_VERIFY_RETURN_INT(SNESConvergedReason, digit, digits[0]) + case 2: + if (8 * sizeof(SNESConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) >= 2 * PyLong_SHIFT) { + return (SNESConvergedReason) (((((SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(SNESConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) >= 3 * PyLong_SHIFT) { + return (SNESConvergedReason) (((((((SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(SNESConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) >= 4 * PyLong_SHIFT) { + return (SNESConvergedReason) (((((((((SNESConvergedReason)digits[3]) << PyLong_SHIFT) | (SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (SNESConvergedReason) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(SNESConvergedReason) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESConvergedReason, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESConvergedReason, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (SNESConvergedReason) 0; + case -1: __PYX_VERIFY_RETURN_INT(SNESConvergedReason, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(SNESConvergedReason, digit, +digits[0]) + case -2: + if (8 * sizeof(SNESConvergedReason) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (SNESConvergedReason) (((SNESConvergedReason)-1)*(((((SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(SNESConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (SNESConvergedReason) ((((((SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(SNESConvergedReason) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (SNESConvergedReason) (((SNESConvergedReason)-1)*(((((((SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(SNESConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (SNESConvergedReason) ((((((((SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(SNESConvergedReason) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (SNESConvergedReason) (((SNESConvergedReason)-1)*(((((((((SNESConvergedReason)digits[3]) << PyLong_SHIFT) | (SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(SNESConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (SNESConvergedReason) ((((((((((SNESConvergedReason)digits[3]) << PyLong_SHIFT) | (SNESConvergedReason)digits[2]) << PyLong_SHIFT) | (SNESConvergedReason)digits[1]) << PyLong_SHIFT) | (SNESConvergedReason)digits[0]))); + } + } + break; + } +#endif + if (sizeof(SNESConvergedReason) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESConvergedReason, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESConvergedReason) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESConvergedReason, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + SNESConvergedReason val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (SNESConvergedReason) -1; + } + } else { + SNESConvergedReason val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (SNESConvergedReason) -1; + val = __Pyx_PyInt_As_SNESConvergedReason(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to SNESConvergedReason"); + return (SNESConvergedReason) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to SNESConvergedReason"); + return (SNESConvergedReason) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE TaoConvergedReason __Pyx_PyInt_As_TaoConvergedReason(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TaoConvergedReason neg_one = (TaoConvergedReason) -1, const_zero = (TaoConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(TaoConvergedReason) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (TaoConvergedReason) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TaoConvergedReason) 0; + case 1: __PYX_VERIFY_RETURN_INT(TaoConvergedReason, digit, digits[0]) + case 2: + if (8 * sizeof(TaoConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) >= 2 * PyLong_SHIFT) { + return (TaoConvergedReason) (((((TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(TaoConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) >= 3 * PyLong_SHIFT) { + return (TaoConvergedReason) (((((((TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(TaoConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) >= 4 * PyLong_SHIFT) { + return (TaoConvergedReason) (((((((((TaoConvergedReason)digits[3]) << PyLong_SHIFT) | (TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TaoConvergedReason) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(TaoConvergedReason) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(TaoConvergedReason, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TaoConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TaoConvergedReason, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TaoConvergedReason) 0; + case -1: __PYX_VERIFY_RETURN_INT(TaoConvergedReason, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(TaoConvergedReason, digit, +digits[0]) + case -2: + if (8 * sizeof(TaoConvergedReason) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (TaoConvergedReason) (((TaoConvergedReason)-1)*(((((TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(TaoConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (TaoConvergedReason) ((((((TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(TaoConvergedReason) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (TaoConvergedReason) (((TaoConvergedReason)-1)*(((((((TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(TaoConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (TaoConvergedReason) ((((((((TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(TaoConvergedReason) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (TaoConvergedReason) (((TaoConvergedReason)-1)*(((((((((TaoConvergedReason)digits[3]) << PyLong_SHIFT) | (TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(TaoConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TaoConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TaoConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (TaoConvergedReason) ((((((((((TaoConvergedReason)digits[3]) << PyLong_SHIFT) | (TaoConvergedReason)digits[2]) << PyLong_SHIFT) | (TaoConvergedReason)digits[1]) << PyLong_SHIFT) | (TaoConvergedReason)digits[0]))); + } + } + break; + } +#endif + if (sizeof(TaoConvergedReason) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(TaoConvergedReason, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TaoConvergedReason) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TaoConvergedReason, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + TaoConvergedReason val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (TaoConvergedReason) -1; + } + } else { + TaoConvergedReason val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TaoConvergedReason) -1; + val = __Pyx_PyInt_As_TaoConvergedReason(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to TaoConvergedReason"); + return (TaoConvergedReason) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to TaoConvergedReason"); + return (TaoConvergedReason) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMBoundaryType __Pyx_PyInt_As_DMBoundaryType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMBoundaryType neg_one = (DMBoundaryType) -1, const_zero = (DMBoundaryType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMBoundaryType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMBoundaryType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMBoundaryType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMBoundaryType, digit, digits[0]) + case 2: + if (8 * sizeof(DMBoundaryType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) >= 2 * PyLong_SHIFT) { + return (DMBoundaryType) (((((DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMBoundaryType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) >= 3 * PyLong_SHIFT) { + return (DMBoundaryType) (((((((DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMBoundaryType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) >= 4 * PyLong_SHIFT) { + return (DMBoundaryType) (((((((((DMBoundaryType)digits[3]) << PyLong_SHIFT) | (DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMBoundaryType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMBoundaryType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMBoundaryType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMBoundaryType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMBoundaryType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMBoundaryType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMBoundaryType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMBoundaryType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMBoundaryType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 2 * PyLong_SHIFT) { + return (DMBoundaryType) (((DMBoundaryType)-1)*(((((DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMBoundaryType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 2 * PyLong_SHIFT) { + return (DMBoundaryType) ((((((DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMBoundaryType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 3 * PyLong_SHIFT) { + return (DMBoundaryType) (((DMBoundaryType)-1)*(((((((DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMBoundaryType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 3 * PyLong_SHIFT) { + return (DMBoundaryType) ((((((((DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMBoundaryType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 4 * PyLong_SHIFT) { + return (DMBoundaryType) (((DMBoundaryType)-1)*(((((((((DMBoundaryType)digits[3]) << PyLong_SHIFT) | (DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMBoundaryType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMBoundaryType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMBoundaryType) - 1 > 4 * PyLong_SHIFT) { + return (DMBoundaryType) ((((((((((DMBoundaryType)digits[3]) << PyLong_SHIFT) | (DMBoundaryType)digits[2]) << PyLong_SHIFT) | (DMBoundaryType)digits[1]) << PyLong_SHIFT) | (DMBoundaryType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMBoundaryType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMBoundaryType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMBoundaryType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMBoundaryType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMBoundaryType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMBoundaryType) -1; + } + } else { + DMBoundaryType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMBoundaryType) -1; + val = __Pyx_PyInt_As_DMBoundaryType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMBoundaryType"); + return (DMBoundaryType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMBoundaryType"); + return (DMBoundaryType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMDAStencilType __Pyx_PyInt_As_DMDAStencilType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAStencilType neg_one = (DMDAStencilType) -1, const_zero = (DMDAStencilType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMDAStencilType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMDAStencilType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAStencilType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMDAStencilType, digit, digits[0]) + case 2: + if (8 * sizeof(DMDAStencilType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) >= 2 * PyLong_SHIFT) { + return (DMDAStencilType) (((((DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMDAStencilType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) >= 3 * PyLong_SHIFT) { + return (DMDAStencilType) (((((((DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMDAStencilType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) >= 4 * PyLong_SHIFT) { + return (DMDAStencilType) (((((((((DMDAStencilType)digits[3]) << PyLong_SHIFT) | (DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMDAStencilType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMDAStencilType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAStencilType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAStencilType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAStencilType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAStencilType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMDAStencilType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMDAStencilType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMDAStencilType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAStencilType) (((DMDAStencilType)-1)*(((((DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMDAStencilType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAStencilType) ((((((DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMDAStencilType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAStencilType) (((DMDAStencilType)-1)*(((((((DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMDAStencilType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAStencilType) ((((((((DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMDAStencilType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAStencilType) (((DMDAStencilType)-1)*(((((((((DMDAStencilType)digits[3]) << PyLong_SHIFT) | (DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMDAStencilType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAStencilType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAStencilType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAStencilType) ((((((((((DMDAStencilType)digits[3]) << PyLong_SHIFT) | (DMDAStencilType)digits[2]) << PyLong_SHIFT) | (DMDAStencilType)digits[1]) << PyLong_SHIFT) | (DMDAStencilType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMDAStencilType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAStencilType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAStencilType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAStencilType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMDAStencilType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMDAStencilType) -1; + } + } else { + DMDAStencilType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMDAStencilType) -1; + val = __Pyx_PyInt_As_DMDAStencilType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMDAStencilType"); + return (DMDAStencilType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMDAStencilType"); + return (DMDAStencilType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMDAInterpolationType __Pyx_PyInt_As_DMDAInterpolationType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAInterpolationType neg_one = (DMDAInterpolationType) -1, const_zero = (DMDAInterpolationType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMDAInterpolationType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMDAInterpolationType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAInterpolationType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, digit, digits[0]) + case 2: + if (8 * sizeof(DMDAInterpolationType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) >= 2 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((((DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMDAInterpolationType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) >= 3 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((((((DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMDAInterpolationType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) >= 4 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((((((((DMDAInterpolationType)digits[3]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMDAInterpolationType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMDAInterpolationType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAInterpolationType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAInterpolationType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAInterpolationType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAInterpolationType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMDAInterpolationType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((DMDAInterpolationType)-1)*(((((DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMDAInterpolationType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAInterpolationType) ((((((DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMDAInterpolationType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((DMDAInterpolationType)-1)*(((((((DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMDAInterpolationType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAInterpolationType) ((((((((DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMDAInterpolationType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAInterpolationType) (((DMDAInterpolationType)-1)*(((((((((DMDAInterpolationType)digits[3]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMDAInterpolationType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAInterpolationType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAInterpolationType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAInterpolationType) ((((((((((DMDAInterpolationType)digits[3]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[2]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[1]) << PyLong_SHIFT) | (DMDAInterpolationType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMDAInterpolationType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAInterpolationType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAInterpolationType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAInterpolationType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMDAInterpolationType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMDAInterpolationType) -1; + } + } else { + DMDAInterpolationType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMDAInterpolationType) -1; + val = __Pyx_PyInt_As_DMDAInterpolationType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMDAInterpolationType"); + return (DMDAInterpolationType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMDAInterpolationType"); + return (DMDAInterpolationType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMDAElementType __Pyx_PyInt_As_DMDAElementType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMDAElementType neg_one = (DMDAElementType) -1, const_zero = (DMDAElementType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMDAElementType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMDAElementType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAElementType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMDAElementType, digit, digits[0]) + case 2: + if (8 * sizeof(DMDAElementType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) >= 2 * PyLong_SHIFT) { + return (DMDAElementType) (((((DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMDAElementType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) >= 3 * PyLong_SHIFT) { + return (DMDAElementType) (((((((DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMDAElementType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) >= 4 * PyLong_SHIFT) { + return (DMDAElementType) (((((((((DMDAElementType)digits[3]) << PyLong_SHIFT) | (DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMDAElementType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMDAElementType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAElementType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAElementType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAElementType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMDAElementType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMDAElementType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMDAElementType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMDAElementType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAElementType) (((DMDAElementType)-1)*(((((DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMDAElementType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 2 * PyLong_SHIFT) { + return (DMDAElementType) ((((((DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMDAElementType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAElementType) (((DMDAElementType)-1)*(((((((DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMDAElementType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 3 * PyLong_SHIFT) { + return (DMDAElementType) ((((((((DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMDAElementType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAElementType) (((DMDAElementType)-1)*(((((((((DMDAElementType)digits[3]) << PyLong_SHIFT) | (DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMDAElementType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMDAElementType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMDAElementType) - 1 > 4 * PyLong_SHIFT) { + return (DMDAElementType) ((((((((((DMDAElementType)digits[3]) << PyLong_SHIFT) | (DMDAElementType)digits[2]) << PyLong_SHIFT) | (DMDAElementType)digits[1]) << PyLong_SHIFT) | (DMDAElementType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMDAElementType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAElementType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMDAElementType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMDAElementType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMDAElementType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMDAElementType) -1; + } + } else { + DMDAElementType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMDAElementType) -1; + val = __Pyx_PyInt_As_DMDAElementType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMDAElementType"); + return (DMDAElementType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMDAElementType"); + return (DMDAElementType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMStagStencilType __Pyx_PyInt_As_DMStagStencilType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMStagStencilType neg_one = (DMStagStencilType) -1, const_zero = (DMStagStencilType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMStagStencilType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMStagStencilType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMStagStencilType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMStagStencilType, digit, digits[0]) + case 2: + if (8 * sizeof(DMStagStencilType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) >= 2 * PyLong_SHIFT) { + return (DMStagStencilType) (((((DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMStagStencilType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) >= 3 * PyLong_SHIFT) { + return (DMStagStencilType) (((((((DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMStagStencilType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) >= 4 * PyLong_SHIFT) { + return (DMStagStencilType) (((((((((DMStagStencilType)digits[3]) << PyLong_SHIFT) | (DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMStagStencilType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMStagStencilType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMStagStencilType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMStagStencilType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMStagStencilType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMStagStencilType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 2 * PyLong_SHIFT) { + return (DMStagStencilType) (((DMStagStencilType)-1)*(((((DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMStagStencilType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 2 * PyLong_SHIFT) { + return (DMStagStencilType) ((((((DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMStagStencilType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 3 * PyLong_SHIFT) { + return (DMStagStencilType) (((DMStagStencilType)-1)*(((((((DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMStagStencilType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 3 * PyLong_SHIFT) { + return (DMStagStencilType) ((((((((DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMStagStencilType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 4 * PyLong_SHIFT) { + return (DMStagStencilType) (((DMStagStencilType)-1)*(((((((((DMStagStencilType)digits[3]) << PyLong_SHIFT) | (DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMStagStencilType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilType) - 1 > 4 * PyLong_SHIFT) { + return (DMStagStencilType) ((((((((((DMStagStencilType)digits[3]) << PyLong_SHIFT) | (DMStagStencilType)digits[2]) << PyLong_SHIFT) | (DMStagStencilType)digits[1]) << PyLong_SHIFT) | (DMStagStencilType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMStagStencilType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMStagStencilType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMStagStencilType) -1; + } + } else { + DMStagStencilType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMStagStencilType) -1; + val = __Pyx_PyInt_As_DMStagStencilType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMStagStencilType"); + return (DMStagStencilType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMStagStencilType"); + return (DMStagStencilType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMStagStencilLocation __Pyx_PyInt_As_DMStagStencilLocation(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMStagStencilLocation neg_one = (DMStagStencilLocation) -1, const_zero = (DMStagStencilLocation) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMStagStencilLocation) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMStagStencilLocation) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMStagStencilLocation) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, digit, digits[0]) + case 2: + if (8 * sizeof(DMStagStencilLocation) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) >= 2 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((((DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMStagStencilLocation) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) >= 3 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((((((DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMStagStencilLocation) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) >= 4 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((((((((DMStagStencilLocation)digits[3]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMStagStencilLocation) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMStagStencilLocation) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilLocation, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilLocation) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilLocation, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMStagStencilLocation) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, digit, +digits[0]) + case -2: + if (8 * sizeof(DMStagStencilLocation) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 2 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((DMStagStencilLocation)-1)*(((((DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMStagStencilLocation) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 2 * PyLong_SHIFT) { + return (DMStagStencilLocation) ((((((DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMStagStencilLocation) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 3 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((DMStagStencilLocation)-1)*(((((((DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMStagStencilLocation) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 3 * PyLong_SHIFT) { + return (DMStagStencilLocation) ((((((((DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMStagStencilLocation) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 4 * PyLong_SHIFT) { + return (DMStagStencilLocation) (((DMStagStencilLocation)-1)*(((((((((DMStagStencilLocation)digits[3]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMStagStencilLocation) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMStagStencilLocation, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMStagStencilLocation) - 1 > 4 * PyLong_SHIFT) { + return (DMStagStencilLocation) ((((((((((DMStagStencilLocation)digits[3]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[2]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[1]) << PyLong_SHIFT) | (DMStagStencilLocation)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMStagStencilLocation) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilLocation, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMStagStencilLocation) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMStagStencilLocation, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMStagStencilLocation val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMStagStencilLocation) -1; + } + } else { + DMStagStencilLocation val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMStagStencilLocation) -1; + val = __Pyx_PyInt_As_DMStagStencilLocation(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMStagStencilLocation"); + return (DMStagStencilLocation) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMStagStencilLocation"); + return (DMStagStencilLocation) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscClassId __Pyx_PyInt_As_PetscClassId(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscClassId neg_one = (PetscClassId) -1, const_zero = (PetscClassId) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscClassId) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscClassId, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscClassId) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscClassId) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscClassId, digit, digits[0]) + case 2: + if (8 * sizeof(PetscClassId) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) >= 2 * PyLong_SHIFT) { + return (PetscClassId) (((((PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscClassId) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) >= 3 * PyLong_SHIFT) { + return (PetscClassId) (((((((PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscClassId) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) >= 4 * PyLong_SHIFT) { + return (PetscClassId) (((((((((PetscClassId)digits[3]) << PyLong_SHIFT) | (PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscClassId) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscClassId) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscClassId, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscClassId) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscClassId, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscClassId) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscClassId, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscClassId, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscClassId) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 2 * PyLong_SHIFT) { + return (PetscClassId) (((PetscClassId)-1)*(((((PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscClassId) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 2 * PyLong_SHIFT) { + return (PetscClassId) ((((((PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscClassId) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 3 * PyLong_SHIFT) { + return (PetscClassId) (((PetscClassId)-1)*(((((((PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscClassId) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 3 * PyLong_SHIFT) { + return (PetscClassId) ((((((((PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscClassId) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 4 * PyLong_SHIFT) { + return (PetscClassId) (((PetscClassId)-1)*(((((((((PetscClassId)digits[3]) << PyLong_SHIFT) | (PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscClassId) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscClassId, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscClassId) - 1 > 4 * PyLong_SHIFT) { + return (PetscClassId) ((((((((((PetscClassId)digits[3]) << PyLong_SHIFT) | (PetscClassId)digits[2]) << PyLong_SHIFT) | (PetscClassId)digits[1]) << PyLong_SHIFT) | (PetscClassId)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscClassId) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscClassId, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscClassId) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscClassId, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscClassId val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscClassId) -1; + } + } else { + PetscClassId val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscClassId) -1; + val = __Pyx_PyInt_As_PetscClassId(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscClassId"); + return (PetscClassId) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscClassId"); + return (PetscClassId) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscLogStage(PetscLogStage value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscLogStage neg_one = (PetscLogStage) -1, const_zero = (PetscLogStage) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscLogStage) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscLogStage) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscLogStage) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscLogStage) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscLogStage) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscLogStage), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscClassId(PetscClassId value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscClassId neg_one = (PetscClassId) -1, const_zero = (PetscClassId) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscClassId) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscClassId) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscClassId) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscClassId) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscClassId) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscClassId), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscLogEvent(PetscLogEvent value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscLogEvent neg_one = (PetscLogEvent) -1, const_zero = (PetscLogEvent) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscLogEvent) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscLogEvent) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscLogEvent) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscLogEvent) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscLogEvent) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscLogEvent), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MPI_Fint(MPI_Fint value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MPI_Fint neg_one = (MPI_Fint) -1, const_zero = (MPI_Fint) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MPI_Fint) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MPI_Fint) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MPI_Fint) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MPI_Fint) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MPI_Fint) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MPI_Fint), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE PetscViewerFormat __Pyx_PyInt_As_PetscViewerFormat(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscViewerFormat neg_one = (PetscViewerFormat) -1, const_zero = (PetscViewerFormat) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PetscViewerFormat) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PetscViewerFormat) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscViewerFormat) 0; + case 1: __PYX_VERIFY_RETURN_INT(PetscViewerFormat, digit, digits[0]) + case 2: + if (8 * sizeof(PetscViewerFormat) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) >= 2 * PyLong_SHIFT) { + return (PetscViewerFormat) (((((PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PetscViewerFormat) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) >= 3 * PyLong_SHIFT) { + return (PetscViewerFormat) (((((((PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PetscViewerFormat) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) >= 4 * PyLong_SHIFT) { + return (PetscViewerFormat) (((((((((PetscViewerFormat)digits[3]) << PyLong_SHIFT) | (PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PetscViewerFormat) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PetscViewerFormat) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscViewerFormat, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscViewerFormat) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscViewerFormat, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PetscViewerFormat) 0; + case -1: __PYX_VERIFY_RETURN_INT(PetscViewerFormat, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PetscViewerFormat, digit, +digits[0]) + case -2: + if (8 * sizeof(PetscViewerFormat) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 2 * PyLong_SHIFT) { + return (PetscViewerFormat) (((PetscViewerFormat)-1)*(((((PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PetscViewerFormat) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 2 * PyLong_SHIFT) { + return (PetscViewerFormat) ((((((PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PetscViewerFormat) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 3 * PyLong_SHIFT) { + return (PetscViewerFormat) (((PetscViewerFormat)-1)*(((((((PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PetscViewerFormat) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 3 * PyLong_SHIFT) { + return (PetscViewerFormat) ((((((((PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PetscViewerFormat) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 4 * PyLong_SHIFT) { + return (PetscViewerFormat) (((PetscViewerFormat)-1)*(((((((((PetscViewerFormat)digits[3]) << PyLong_SHIFT) | (PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PetscViewerFormat) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PetscViewerFormat, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PetscViewerFormat) - 1 > 4 * PyLong_SHIFT) { + return (PetscViewerFormat) ((((((((((PetscViewerFormat)digits[3]) << PyLong_SHIFT) | (PetscViewerFormat)digits[2]) << PyLong_SHIFT) | (PetscViewerFormat)digits[1]) << PyLong_SHIFT) | (PetscViewerFormat)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PetscViewerFormat) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscViewerFormat, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscViewerFormat) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PetscViewerFormat, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PetscViewerFormat val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PetscViewerFormat) -1; + } + } else { + PetscViewerFormat val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PetscViewerFormat) -1; + val = __Pyx_PyInt_As_PetscViewerFormat(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PetscViewerFormat"); + return (PetscViewerFormat) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PetscViewerFormat"); + return (PetscViewerFormat) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_unsigned_long(unsigned long value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(unsigned long) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(unsigned long) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(unsigned long) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(unsigned long), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE unsigned long __Pyx_PyInt_As_unsigned_long(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const unsigned long neg_one = (unsigned long) -1, const_zero = (unsigned long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(unsigned long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(unsigned long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (unsigned long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (unsigned long) 0; + case 1: __PYX_VERIFY_RETURN_INT(unsigned long, digit, digits[0]) + case 2: + if (8 * sizeof(unsigned long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) >= 2 * PyLong_SHIFT) { + return (unsigned long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) >= 3 * PyLong_SHIFT) { + return (unsigned long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) >= 4 * PyLong_SHIFT) { + return (unsigned long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (unsigned long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(unsigned long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (unsigned long) 0; + case -1: __PYX_VERIFY_RETURN_INT(unsigned long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(unsigned long, digit, +digits[0]) + case -2: + if (8 * sizeof(unsigned long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT) { + return (unsigned long) (((unsigned long)-1)*(((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(unsigned long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT) { + return (unsigned long) ((((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(unsigned long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT) { + return (unsigned long) (((unsigned long)-1)*(((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT) { + return (unsigned long) ((((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(unsigned long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT) { + return (unsigned long) (((unsigned long)-1)*(((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(unsigned long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(unsigned long) - 1 > 4 * PyLong_SHIFT) { + return (unsigned long) ((((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(unsigned long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(unsigned long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(unsigned long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + unsigned long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (unsigned long) -1; + } + } else { + unsigned long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (unsigned long) -1; + val = __Pyx_PyInt_As_unsigned_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to unsigned long"); + return (unsigned long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to unsigned long"); + return (unsigned long) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE ISGlobalToLocalMappingMode __Pyx_PyInt_As_ISGlobalToLocalMappingMode(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const ISGlobalToLocalMappingMode neg_one = (ISGlobalToLocalMappingMode) -1, const_zero = (ISGlobalToLocalMappingMode) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(ISGlobalToLocalMappingMode) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (ISGlobalToLocalMappingMode) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (ISGlobalToLocalMappingMode) 0; + case 1: __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, digit, digits[0]) + case 2: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) >= 2 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((((ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) >= 3 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((((((ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) >= 4 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((((((((ISGlobalToLocalMappingMode)digits[3]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (ISGlobalToLocalMappingMode) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(ISGlobalToLocalMappingMode, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ISGlobalToLocalMappingMode, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (ISGlobalToLocalMappingMode) 0; + case -1: __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, digit, +digits[0]) + case -2: + if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 2 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((ISGlobalToLocalMappingMode)-1)*(((((ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 2 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) ((((((ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 3 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((ISGlobalToLocalMappingMode)-1)*(((((((ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 3 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) ((((((((ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 4 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) (((ISGlobalToLocalMappingMode)-1)*(((((((((ISGlobalToLocalMappingMode)digits[3]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(ISGlobalToLocalMappingMode) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(ISGlobalToLocalMappingMode, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(ISGlobalToLocalMappingMode) - 1 > 4 * PyLong_SHIFT) { + return (ISGlobalToLocalMappingMode) ((((((((((ISGlobalToLocalMappingMode)digits[3]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[2]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[1]) << PyLong_SHIFT) | (ISGlobalToLocalMappingMode)digits[0]))); + } + } + break; + } +#endif + if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(ISGlobalToLocalMappingMode, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(ISGlobalToLocalMappingMode) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(ISGlobalToLocalMappingMode, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + ISGlobalToLocalMappingMode val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (ISGlobalToLocalMappingMode) -1; + } + } else { + ISGlobalToLocalMappingMode val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (ISGlobalToLocalMappingMode) -1; + val = __Pyx_PyInt_As_ISGlobalToLocalMappingMode(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to ISGlobalToLocalMappingMode"); + return (ISGlobalToLocalMappingMode) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to ISGlobalToLocalMappingMode"); + return (ISGlobalToLocalMappingMode) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(size_t) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(size_t, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (size_t) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, digits[0]) + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 2 * PyLong_SHIFT) { + return (size_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 3 * PyLong_SHIFT) { + return (size_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) >= 4 * PyLong_SHIFT) { + return (size_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (size_t) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(size_t) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (size_t) 0; + case -1: __PYX_VERIFY_RETURN_INT(size_t, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(size_t, digit, +digits[0]) + case -2: + if (8 * sizeof(size_t) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(size_t) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + return (size_t) ((((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(size_t) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(size_t) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + return (size_t) ((((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(size_t) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) (((size_t)-1)*(((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(size_t) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(size_t, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(size_t) - 1 > 4 * PyLong_SHIFT) { + return (size_t) ((((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0]))); + } + } + break; + } +#endif + if (sizeof(size_t) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(size_t) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(size_t, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + size_t val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (size_t) -1; + } + } else { + size_t val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (size_t) -1; + val = __Pyx_PyInt_As_size_t(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to size_t"); + return (size_t) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to size_t"); + return (size_t) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint8_t(uint8_t value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const uint8_t neg_one = (uint8_t) -1, const_zero = (uint8_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(uint8_t) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(uint8_t) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint8_t) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(uint8_t) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint8_t) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(uint8_t), + little, !is_unsigned); + } +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_uint16_t(uint16_t value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const uint16_t neg_one = (uint16_t) -1, const_zero = (uint16_t) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(uint16_t) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(uint16_t) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint16_t) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(uint16_t) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(uint16_t) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(uint16_t), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType __Pyx_PyInt_As_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType neg_one = (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1, const_zero = (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) 0; + case 1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, digit, digits[0]) + case 2: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) >= 2 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) >= 3 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) >= 4 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) 0; + case -1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, digit, +digits[0]) + case -2: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 2 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)-1)*(((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 2 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) ((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 3 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)-1)*(((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 3 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) ((((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 4 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) (((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)-1)*(((((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) - 1 > 4 * PyLong_SHIFT) { + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) ((((((((((enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[3]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[2]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[1]) << PyLong_SHIFT) | (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1; + } + } else { + enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1; + val = __Pyx_PyInt_As_enum____pyx_t_8petsc4py_5PETSc_PetscDLDeviceType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType"); + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType"); + return (enum __pyx_t_8petsc4py_5PETSc_PetscDLDeviceType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE VecOption __Pyx_PyInt_As_VecOption(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const VecOption neg_one = (VecOption) -1, const_zero = (VecOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(VecOption) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(VecOption, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (VecOption) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (VecOption) 0; + case 1: __PYX_VERIFY_RETURN_INT(VecOption, digit, digits[0]) + case 2: + if (8 * sizeof(VecOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) >= 2 * PyLong_SHIFT) { + return (VecOption) (((((VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(VecOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) >= 3 * PyLong_SHIFT) { + return (VecOption) (((((((VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(VecOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) >= 4 * PyLong_SHIFT) { + return (VecOption) (((((((((VecOption)digits[3]) << PyLong_SHIFT) | (VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (VecOption) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(VecOption) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(VecOption, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(VecOption) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(VecOption, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (VecOption) 0; + case -1: __PYX_VERIFY_RETURN_INT(VecOption, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(VecOption, digit, +digits[0]) + case -2: + if (8 * sizeof(VecOption) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 2 * PyLong_SHIFT) { + return (VecOption) (((VecOption)-1)*(((((VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(VecOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 2 * PyLong_SHIFT) { + return (VecOption) ((((((VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(VecOption) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 3 * PyLong_SHIFT) { + return (VecOption) (((VecOption)-1)*(((((((VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(VecOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 3 * PyLong_SHIFT) { + return (VecOption) ((((((((VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(VecOption) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 4 * PyLong_SHIFT) { + return (VecOption) (((VecOption)-1)*(((((((((VecOption)digits[3]) << PyLong_SHIFT) | (VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(VecOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(VecOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(VecOption) - 1 > 4 * PyLong_SHIFT) { + return (VecOption) ((((((((((VecOption)digits[3]) << PyLong_SHIFT) | (VecOption)digits[2]) << PyLong_SHIFT) | (VecOption)digits[1]) << PyLong_SHIFT) | (VecOption)digits[0]))); + } + } + break; + } +#endif + if (sizeof(VecOption) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(VecOption, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(VecOption) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(VecOption, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + VecOption val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (VecOption) -1; + } + } else { + VecOption val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (VecOption) -1; + val = __Pyx_PyInt_As_VecOption(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to VecOption"); + return (VecOption) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to VecOption"); + return (VecOption) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscOffloadMask(PetscOffloadMask value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscOffloadMask neg_one = (PetscOffloadMask) -1, const_zero = (PetscOffloadMask) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscOffloadMask) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscOffloadMask) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscOffloadMask) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscOffloadMask) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscOffloadMask) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscOffloadMask), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE NormType __Pyx_PyInt_As_NormType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const NormType neg_one = (NormType) -1, const_zero = (NormType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(NormType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(NormType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (NormType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (NormType) 0; + case 1: __PYX_VERIFY_RETURN_INT(NormType, digit, digits[0]) + case 2: + if (8 * sizeof(NormType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) >= 2 * PyLong_SHIFT) { + return (NormType) (((((NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(NormType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) >= 3 * PyLong_SHIFT) { + return (NormType) (((((((NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(NormType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) >= 4 * PyLong_SHIFT) { + return (NormType) (((((((((NormType)digits[3]) << PyLong_SHIFT) | (NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (NormType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(NormType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(NormType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(NormType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(NormType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (NormType) 0; + case -1: __PYX_VERIFY_RETURN_INT(NormType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(NormType, digit, +digits[0]) + case -2: + if (8 * sizeof(NormType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 2 * PyLong_SHIFT) { + return (NormType) (((NormType)-1)*(((((NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(NormType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 2 * PyLong_SHIFT) { + return (NormType) ((((((NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(NormType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 3 * PyLong_SHIFT) { + return (NormType) (((NormType)-1)*(((((((NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(NormType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 3 * PyLong_SHIFT) { + return (NormType) ((((((((NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(NormType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 4 * PyLong_SHIFT) { + return (NormType) (((NormType)-1)*(((((((((NormType)digits[3]) << PyLong_SHIFT) | (NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(NormType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(NormType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(NormType) - 1 > 4 * PyLong_SHIFT) { + return (NormType) ((((((((((NormType)digits[3]) << PyLong_SHIFT) | (NormType)digits[2]) << PyLong_SHIFT) | (NormType)digits[1]) << PyLong_SHIFT) | (NormType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(NormType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(NormType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(NormType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(NormType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + NormType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (NormType) -1; + } + } else { + NormType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (NormType) -1; + val = __Pyx_PyInt_As_NormType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to NormType"); + return (NormType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to NormType"); + return (NormType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE MatOption __Pyx_PyInt_As_MatOption(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatOption neg_one = (MatOption) -1, const_zero = (MatOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(MatOption) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(MatOption, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (MatOption) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatOption) 0; + case 1: __PYX_VERIFY_RETURN_INT(MatOption, digit, digits[0]) + case 2: + if (8 * sizeof(MatOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) >= 2 * PyLong_SHIFT) { + return (MatOption) (((((MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(MatOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) >= 3 * PyLong_SHIFT) { + return (MatOption) (((((((MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(MatOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) >= 4 * PyLong_SHIFT) { + return (MatOption) (((((((((MatOption)digits[3]) << PyLong_SHIFT) | (MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (MatOption) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(MatOption) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatOption, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatOption) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatOption, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (MatOption) 0; + case -1: __PYX_VERIFY_RETURN_INT(MatOption, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(MatOption, digit, +digits[0]) + case -2: + if (8 * sizeof(MatOption) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 2 * PyLong_SHIFT) { + return (MatOption) (((MatOption)-1)*(((((MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(MatOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 2 * PyLong_SHIFT) { + return (MatOption) ((((((MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(MatOption) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 3 * PyLong_SHIFT) { + return (MatOption) (((MatOption)-1)*(((((((MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(MatOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 3 * PyLong_SHIFT) { + return (MatOption) ((((((((MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(MatOption) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 4 * PyLong_SHIFT) { + return (MatOption) (((MatOption)-1)*(((((((((MatOption)digits[3]) << PyLong_SHIFT) | (MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(MatOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(MatOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(MatOption) - 1 > 4 * PyLong_SHIFT) { + return (MatOption) ((((((((((MatOption)digits[3]) << PyLong_SHIFT) | (MatOption)digits[2]) << PyLong_SHIFT) | (MatOption)digits[1]) << PyLong_SHIFT) | (MatOption)digits[0]))); + } + } + break; + } +#endif + if (sizeof(MatOption) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(MatOption, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatOption) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(MatOption, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + MatOption val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (MatOption) -1; + } + } else { + MatOption val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (MatOption) -1; + val = __Pyx_PyInt_As_MatOption(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to MatOption"); + return (MatOption) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to MatOption"); + return (MatOption) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCFailedReason __Pyx_PyInt_As_PCFailedReason(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFailedReason neg_one = (PCFailedReason) -1, const_zero = (PCFailedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCFailedReason) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCFailedReason) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFailedReason) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCFailedReason, digit, digits[0]) + case 2: + if (8 * sizeof(PCFailedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) >= 2 * PyLong_SHIFT) { + return (PCFailedReason) (((((PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCFailedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) >= 3 * PyLong_SHIFT) { + return (PCFailedReason) (((((((PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCFailedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) >= 4 * PyLong_SHIFT) { + return (PCFailedReason) (((((((((PCFailedReason)digits[3]) << PyLong_SHIFT) | (PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCFailedReason) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCFailedReason) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFailedReason, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFailedReason) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFailedReason, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFailedReason) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCFailedReason, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCFailedReason, digit, +digits[0]) + case -2: + if (8 * sizeof(PCFailedReason) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 2 * PyLong_SHIFT) { + return (PCFailedReason) (((PCFailedReason)-1)*(((((PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCFailedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 2 * PyLong_SHIFT) { + return (PCFailedReason) ((((((PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCFailedReason) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 3 * PyLong_SHIFT) { + return (PCFailedReason) (((PCFailedReason)-1)*(((((((PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCFailedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 3 * PyLong_SHIFT) { + return (PCFailedReason) ((((((((PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCFailedReason) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 4 * PyLong_SHIFT) { + return (PCFailedReason) (((PCFailedReason)-1)*(((((((((PCFailedReason)digits[3]) << PyLong_SHIFT) | (PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCFailedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFailedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFailedReason) - 1 > 4 * PyLong_SHIFT) { + return (PCFailedReason) ((((((((((PCFailedReason)digits[3]) << PyLong_SHIFT) | (PCFailedReason)digits[2]) << PyLong_SHIFT) | (PCFailedReason)digits[1]) << PyLong_SHIFT) | (PCFailedReason)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCFailedReason) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFailedReason, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFailedReason) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFailedReason, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCFailedReason val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCFailedReason) -1; + } + } else { + PCFailedReason val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCFailedReason) -1; + val = __Pyx_PyInt_As_PCFailedReason(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCFailedReason"); + return (PCFailedReason) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCFailedReason"); + return (PCFailedReason) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCASMType __Pyx_PyInt_As_PCASMType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCASMType neg_one = (PCASMType) -1, const_zero = (PCASMType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCASMType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCASMType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCASMType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCASMType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCASMType, digit, digits[0]) + case 2: + if (8 * sizeof(PCASMType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) >= 2 * PyLong_SHIFT) { + return (PCASMType) (((((PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCASMType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) >= 3 * PyLong_SHIFT) { + return (PCASMType) (((((((PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCASMType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) >= 4 * PyLong_SHIFT) { + return (PCASMType) (((((((((PCASMType)digits[3]) << PyLong_SHIFT) | (PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCASMType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCASMType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCASMType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCASMType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCASMType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCASMType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCASMType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCASMType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCASMType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 2 * PyLong_SHIFT) { + return (PCASMType) (((PCASMType)-1)*(((((PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCASMType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 2 * PyLong_SHIFT) { + return (PCASMType) ((((((PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCASMType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 3 * PyLong_SHIFT) { + return (PCASMType) (((PCASMType)-1)*(((((((PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCASMType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 3 * PyLong_SHIFT) { + return (PCASMType) ((((((((PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCASMType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 4 * PyLong_SHIFT) { + return (PCASMType) (((PCASMType)-1)*(((((((((PCASMType)digits[3]) << PyLong_SHIFT) | (PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCASMType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCASMType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCASMType) - 1 > 4 * PyLong_SHIFT) { + return (PCASMType) ((((((((((PCASMType)digits[3]) << PyLong_SHIFT) | (PCASMType)digits[2]) << PyLong_SHIFT) | (PCASMType)digits[1]) << PyLong_SHIFT) | (PCASMType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCASMType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCASMType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCASMType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCASMType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCASMType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCASMType) -1; + } + } else { + PCASMType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCASMType) -1; + val = __Pyx_PyInt_As_PCASMType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCASMType"); + return (PCASMType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCASMType"); + return (PCASMType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCGASMType __Pyx_PyInt_As_PCGASMType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCGASMType neg_one = (PCGASMType) -1, const_zero = (PCGASMType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCGASMType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCGASMType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCGASMType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCGASMType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCGASMType, digit, digits[0]) + case 2: + if (8 * sizeof(PCGASMType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) >= 2 * PyLong_SHIFT) { + return (PCGASMType) (((((PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCGASMType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) >= 3 * PyLong_SHIFT) { + return (PCGASMType) (((((((PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCGASMType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) >= 4 * PyLong_SHIFT) { + return (PCGASMType) (((((((((PCGASMType)digits[3]) << PyLong_SHIFT) | (PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCGASMType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCGASMType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCGASMType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCGASMType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCGASMType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCGASMType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCGASMType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCGASMType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCGASMType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 2 * PyLong_SHIFT) { + return (PCGASMType) (((PCGASMType)-1)*(((((PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCGASMType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 2 * PyLong_SHIFT) { + return (PCGASMType) ((((((PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCGASMType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 3 * PyLong_SHIFT) { + return (PCGASMType) (((PCGASMType)-1)*(((((((PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCGASMType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 3 * PyLong_SHIFT) { + return (PCGASMType) ((((((((PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCGASMType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 4 * PyLong_SHIFT) { + return (PCGASMType) (((PCGASMType)-1)*(((((((((PCGASMType)digits[3]) << PyLong_SHIFT) | (PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCGASMType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCGASMType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCGASMType) - 1 > 4 * PyLong_SHIFT) { + return (PCGASMType) ((((((((((PCGASMType)digits[3]) << PyLong_SHIFT) | (PCGASMType)digits[2]) << PyLong_SHIFT) | (PCGASMType)digits[1]) << PyLong_SHIFT) | (PCGASMType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCGASMType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCGASMType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCGASMType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCGASMType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCGASMType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCGASMType) -1; + } + } else { + PCGASMType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCGASMType) -1; + val = __Pyx_PyInt_As_PCGASMType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCGASMType"); + return (PCGASMType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCGASMType"); + return (PCGASMType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCCompositeType __Pyx_PyInt_As_PCCompositeType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCCompositeType neg_one = (PCCompositeType) -1, const_zero = (PCCompositeType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCCompositeType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCCompositeType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCCompositeType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCCompositeType, digit, digits[0]) + case 2: + if (8 * sizeof(PCCompositeType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) >= 2 * PyLong_SHIFT) { + return (PCCompositeType) (((((PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCCompositeType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) >= 3 * PyLong_SHIFT) { + return (PCCompositeType) (((((((PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCCompositeType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) >= 4 * PyLong_SHIFT) { + return (PCCompositeType) (((((((((PCCompositeType)digits[3]) << PyLong_SHIFT) | (PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCCompositeType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCCompositeType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCCompositeType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCCompositeType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCCompositeType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCCompositeType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCCompositeType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCCompositeType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCCompositeType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 2 * PyLong_SHIFT) { + return (PCCompositeType) (((PCCompositeType)-1)*(((((PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCCompositeType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 2 * PyLong_SHIFT) { + return (PCCompositeType) ((((((PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCCompositeType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 3 * PyLong_SHIFT) { + return (PCCompositeType) (((PCCompositeType)-1)*(((((((PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCCompositeType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 3 * PyLong_SHIFT) { + return (PCCompositeType) ((((((((PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCCompositeType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 4 * PyLong_SHIFT) { + return (PCCompositeType) (((PCCompositeType)-1)*(((((((((PCCompositeType)digits[3]) << PyLong_SHIFT) | (PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCCompositeType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCCompositeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCCompositeType) - 1 > 4 * PyLong_SHIFT) { + return (PCCompositeType) ((((((((((PCCompositeType)digits[3]) << PyLong_SHIFT) | (PCCompositeType)digits[2]) << PyLong_SHIFT) | (PCCompositeType)digits[1]) << PyLong_SHIFT) | (PCCompositeType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCCompositeType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCCompositeType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCCompositeType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCCompositeType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCCompositeType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCCompositeType) -1; + } + } else { + PCCompositeType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCCompositeType) -1; + val = __Pyx_PyInt_As_PCCompositeType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCCompositeType"); + return (PCCompositeType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCCompositeType"); + return (PCCompositeType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCFieldSplitSchurFactType __Pyx_PyInt_As_PCFieldSplitSchurFactType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFieldSplitSchurFactType neg_one = (PCFieldSplitSchurFactType) -1, const_zero = (PCFieldSplitSchurFactType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCFieldSplitSchurFactType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCFieldSplitSchurFactType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFieldSplitSchurFactType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, digit, digits[0]) + case 2: + if (8 * sizeof(PCFieldSplitSchurFactType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) >= 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((((PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCFieldSplitSchurFactType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) >= 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((((((PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCFieldSplitSchurFactType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) >= 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((((((((PCFieldSplitSchurFactType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCFieldSplitSchurFactType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCFieldSplitSchurFactType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurFactType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurFactType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurFactType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFieldSplitSchurFactType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((PCFieldSplitSchurFactType)-1)*(((((PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCFieldSplitSchurFactType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) ((((((PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((PCFieldSplitSchurFactType)-1)*(((((((PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCFieldSplitSchurFactType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) ((((((((PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) (((PCFieldSplitSchurFactType)-1)*(((((((((PCFieldSplitSchurFactType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCFieldSplitSchurFactType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurFactType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurFactType) - 1 > 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurFactType) ((((((((((PCFieldSplitSchurFactType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurFactType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCFieldSplitSchurFactType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurFactType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurFactType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurFactType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCFieldSplitSchurFactType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCFieldSplitSchurFactType) -1; + } + } else { + PCFieldSplitSchurFactType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCFieldSplitSchurFactType) -1; + val = __Pyx_PyInt_As_PCFieldSplitSchurFactType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCFieldSplitSchurFactType"); + return (PCFieldSplitSchurFactType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCFieldSplitSchurFactType"); + return (PCFieldSplitSchurFactType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCFieldSplitSchurPreType __Pyx_PyInt_As_PCFieldSplitSchurPreType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCFieldSplitSchurPreType neg_one = (PCFieldSplitSchurPreType) -1, const_zero = (PCFieldSplitSchurPreType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCFieldSplitSchurPreType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCFieldSplitSchurPreType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFieldSplitSchurPreType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, digit, digits[0]) + case 2: + if (8 * sizeof(PCFieldSplitSchurPreType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) >= 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((((PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCFieldSplitSchurPreType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) >= 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((((((PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCFieldSplitSchurPreType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) >= 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((((((((PCFieldSplitSchurPreType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCFieldSplitSchurPreType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCFieldSplitSchurPreType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurPreType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurPreType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurPreType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCFieldSplitSchurPreType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((PCFieldSplitSchurPreType)-1)*(((((PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCFieldSplitSchurPreType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 2 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) ((((((PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((PCFieldSplitSchurPreType)-1)*(((((((PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCFieldSplitSchurPreType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 3 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) ((((((((PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) (((PCFieldSplitSchurPreType)-1)*(((((((((PCFieldSplitSchurPreType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCFieldSplitSchurPreType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCFieldSplitSchurPreType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCFieldSplitSchurPreType) - 1 > 4 * PyLong_SHIFT) { + return (PCFieldSplitSchurPreType) ((((((((((PCFieldSplitSchurPreType)digits[3]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[2]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[1]) << PyLong_SHIFT) | (PCFieldSplitSchurPreType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCFieldSplitSchurPreType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurPreType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCFieldSplitSchurPreType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCFieldSplitSchurPreType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCFieldSplitSchurPreType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCFieldSplitSchurPreType) -1; + } + } else { + PCFieldSplitSchurPreType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCFieldSplitSchurPreType) -1; + val = __Pyx_PyInt_As_PCFieldSplitSchurPreType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCFieldSplitSchurPreType"); + return (PCFieldSplitSchurPreType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCFieldSplitSchurPreType"); + return (PCFieldSplitSchurPreType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCMGType __Pyx_PyInt_As_PCMGType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCMGType neg_one = (PCMGType) -1, const_zero = (PCMGType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCMGType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCMGType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCMGType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCMGType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCMGType, digit, digits[0]) + case 2: + if (8 * sizeof(PCMGType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) >= 2 * PyLong_SHIFT) { + return (PCMGType) (((((PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCMGType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) >= 3 * PyLong_SHIFT) { + return (PCMGType) (((((((PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCMGType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) >= 4 * PyLong_SHIFT) { + return (PCMGType) (((((((((PCMGType)digits[3]) << PyLong_SHIFT) | (PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCMGType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCMGType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCMGType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCMGType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCMGType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCMGType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 2 * PyLong_SHIFT) { + return (PCMGType) (((PCMGType)-1)*(((((PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCMGType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 2 * PyLong_SHIFT) { + return (PCMGType) ((((((PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCMGType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 3 * PyLong_SHIFT) { + return (PCMGType) (((PCMGType)-1)*(((((((PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCMGType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 3 * PyLong_SHIFT) { + return (PCMGType) ((((((((PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCMGType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 4 * PyLong_SHIFT) { + return (PCMGType) (((PCMGType)-1)*(((((((((PCMGType)digits[3]) << PyLong_SHIFT) | (PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCMGType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGType) - 1 > 4 * PyLong_SHIFT) { + return (PCMGType) ((((((((((PCMGType)digits[3]) << PyLong_SHIFT) | (PCMGType)digits[2]) << PyLong_SHIFT) | (PCMGType)digits[1]) << PyLong_SHIFT) | (PCMGType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCMGType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCMGType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCMGType) -1; + } + } else { + PCMGType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCMGType) -1; + val = __Pyx_PyInt_As_PCMGType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCMGType"); + return (PCMGType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCMGType"); + return (PCMGType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCMGCycleType __Pyx_PyInt_As_PCMGCycleType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCMGCycleType neg_one = (PCMGCycleType) -1, const_zero = (PCMGCycleType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCMGCycleType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCMGCycleType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCMGCycleType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCMGCycleType, digit, digits[0]) + case 2: + if (8 * sizeof(PCMGCycleType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) >= 2 * PyLong_SHIFT) { + return (PCMGCycleType) (((((PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCMGCycleType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) >= 3 * PyLong_SHIFT) { + return (PCMGCycleType) (((((((PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCMGCycleType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) >= 4 * PyLong_SHIFT) { + return (PCMGCycleType) (((((((((PCMGCycleType)digits[3]) << PyLong_SHIFT) | (PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCMGCycleType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCMGCycleType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGCycleType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGCycleType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGCycleType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCMGCycleType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCMGCycleType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCMGCycleType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCMGCycleType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 2 * PyLong_SHIFT) { + return (PCMGCycleType) (((PCMGCycleType)-1)*(((((PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCMGCycleType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 2 * PyLong_SHIFT) { + return (PCMGCycleType) ((((((PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCMGCycleType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 3 * PyLong_SHIFT) { + return (PCMGCycleType) (((PCMGCycleType)-1)*(((((((PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCMGCycleType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 3 * PyLong_SHIFT) { + return (PCMGCycleType) ((((((((PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCMGCycleType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 4 * PyLong_SHIFT) { + return (PCMGCycleType) (((PCMGCycleType)-1)*(((((((((PCMGCycleType)digits[3]) << PyLong_SHIFT) | (PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCMGCycleType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCMGCycleType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCMGCycleType) - 1 > 4 * PyLong_SHIFT) { + return (PCMGCycleType) ((((((((((PCMGCycleType)digits[3]) << PyLong_SHIFT) | (PCMGCycleType)digits[2]) << PyLong_SHIFT) | (PCMGCycleType)digits[1]) << PyLong_SHIFT) | (PCMGCycleType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCMGCycleType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGCycleType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCMGCycleType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCMGCycleType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCMGCycleType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCMGCycleType) -1; + } + } else { + PCMGCycleType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCMGCycleType) -1; + val = __Pyx_PyInt_As_PCMGCycleType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCMGCycleType"); + return (PCMGCycleType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCMGCycleType"); + return (PCMGCycleType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCPatchConstructType __Pyx_PyInt_As_PCPatchConstructType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCPatchConstructType neg_one = (PCPatchConstructType) -1, const_zero = (PCPatchConstructType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCPatchConstructType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCPatchConstructType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCPatchConstructType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCPatchConstructType, digit, digits[0]) + case 2: + if (8 * sizeof(PCPatchConstructType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) >= 2 * PyLong_SHIFT) { + return (PCPatchConstructType) (((((PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCPatchConstructType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) >= 3 * PyLong_SHIFT) { + return (PCPatchConstructType) (((((((PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCPatchConstructType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) >= 4 * PyLong_SHIFT) { + return (PCPatchConstructType) (((((((((PCPatchConstructType)digits[3]) << PyLong_SHIFT) | (PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCPatchConstructType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCPatchConstructType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCPatchConstructType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCPatchConstructType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCPatchConstructType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCPatchConstructType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCPatchConstructType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCPatchConstructType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCPatchConstructType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 2 * PyLong_SHIFT) { + return (PCPatchConstructType) (((PCPatchConstructType)-1)*(((((PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCPatchConstructType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 2 * PyLong_SHIFT) { + return (PCPatchConstructType) ((((((PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCPatchConstructType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 3 * PyLong_SHIFT) { + return (PCPatchConstructType) (((PCPatchConstructType)-1)*(((((((PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCPatchConstructType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 3 * PyLong_SHIFT) { + return (PCPatchConstructType) ((((((((PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCPatchConstructType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 4 * PyLong_SHIFT) { + return (PCPatchConstructType) (((PCPatchConstructType)-1)*(((((((((PCPatchConstructType)digits[3]) << PyLong_SHIFT) | (PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCPatchConstructType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCPatchConstructType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCPatchConstructType) - 1 > 4 * PyLong_SHIFT) { + return (PCPatchConstructType) ((((((((((PCPatchConstructType)digits[3]) << PyLong_SHIFT) | (PCPatchConstructType)digits[2]) << PyLong_SHIFT) | (PCPatchConstructType)digits[1]) << PyLong_SHIFT) | (PCPatchConstructType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCPatchConstructType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCPatchConstructType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCPatchConstructType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCPatchConstructType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCPatchConstructType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCPatchConstructType) -1; + } + } else { + PCPatchConstructType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCPatchConstructType) -1; + val = __Pyx_PyInt_As_PCPatchConstructType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCPatchConstructType"); + return (PCPatchConstructType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCPatchConstructType"); + return (PCPatchConstructType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCHPDDMCoarseCorrectionType __Pyx_PyInt_As_PCHPDDMCoarseCorrectionType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCHPDDMCoarseCorrectionType neg_one = (PCHPDDMCoarseCorrectionType) -1, const_zero = (PCHPDDMCoarseCorrectionType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCHPDDMCoarseCorrectionType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCHPDDMCoarseCorrectionType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCHPDDMCoarseCorrectionType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, digit, digits[0]) + case 2: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) >= 2 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((((PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) >= 3 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((((((PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) >= 4 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((((((((PCHPDDMCoarseCorrectionType)digits[3]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCHPDDMCoarseCorrectionType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCHPDDMCoarseCorrectionType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCHPDDMCoarseCorrectionType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCHPDDMCoarseCorrectionType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 2 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((PCHPDDMCoarseCorrectionType)-1)*(((((PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 2 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) ((((((PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 3 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((PCHPDDMCoarseCorrectionType)-1)*(((((((PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 3 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) ((((((((PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 4 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) (((PCHPDDMCoarseCorrectionType)-1)*(((((((((PCHPDDMCoarseCorrectionType)digits[3]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCHPDDMCoarseCorrectionType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCHPDDMCoarseCorrectionType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCHPDDMCoarseCorrectionType) - 1 > 4 * PyLong_SHIFT) { + return (PCHPDDMCoarseCorrectionType) ((((((((((PCHPDDMCoarseCorrectionType)digits[3]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[2]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[1]) << PyLong_SHIFT) | (PCHPDDMCoarseCorrectionType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCHPDDMCoarseCorrectionType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCHPDDMCoarseCorrectionType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCHPDDMCoarseCorrectionType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCHPDDMCoarseCorrectionType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCHPDDMCoarseCorrectionType) -1; + } + } else { + PCHPDDMCoarseCorrectionType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCHPDDMCoarseCorrectionType) -1; + val = __Pyx_PyInt_As_PCHPDDMCoarseCorrectionType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCHPDDMCoarseCorrectionType"); + return (PCHPDDMCoarseCorrectionType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCHPDDMCoarseCorrectionType"); + return (PCHPDDMCoarseCorrectionType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCDeflationSpaceType __Pyx_PyInt_As_PCDeflationSpaceType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCDeflationSpaceType neg_one = (PCDeflationSpaceType) -1, const_zero = (PCDeflationSpaceType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCDeflationSpaceType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCDeflationSpaceType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCDeflationSpaceType) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, digit, digits[0]) + case 2: + if (8 * sizeof(PCDeflationSpaceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) >= 2 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((((PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCDeflationSpaceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) >= 3 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((((((PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCDeflationSpaceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) >= 4 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((((((((PCDeflationSpaceType)digits[3]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCDeflationSpaceType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCDeflationSpaceType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCDeflationSpaceType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCDeflationSpaceType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCDeflationSpaceType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCDeflationSpaceType) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, digit, +digits[0]) + case -2: + if (8 * sizeof(PCDeflationSpaceType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 2 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((PCDeflationSpaceType)-1)*(((((PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCDeflationSpaceType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 2 * PyLong_SHIFT) { + return (PCDeflationSpaceType) ((((((PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCDeflationSpaceType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 3 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((PCDeflationSpaceType)-1)*(((((((PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCDeflationSpaceType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 3 * PyLong_SHIFT) { + return (PCDeflationSpaceType) ((((((((PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCDeflationSpaceType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 4 * PyLong_SHIFT) { + return (PCDeflationSpaceType) (((PCDeflationSpaceType)-1)*(((((((((PCDeflationSpaceType)digits[3]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCDeflationSpaceType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCDeflationSpaceType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCDeflationSpaceType) - 1 > 4 * PyLong_SHIFT) { + return (PCDeflationSpaceType) ((((((((((PCDeflationSpaceType)digits[3]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[2]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[1]) << PyLong_SHIFT) | (PCDeflationSpaceType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCDeflationSpaceType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCDeflationSpaceType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCDeflationSpaceType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCDeflationSpaceType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCDeflationSpaceType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCDeflationSpaceType) -1; + } + } else { + PCDeflationSpaceType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCDeflationSpaceType) -1; + val = __Pyx_PyInt_As_PCDeflationSpaceType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCDeflationSpaceType"); + return (PCDeflationSpaceType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCDeflationSpaceType"); + return (PCDeflationSpaceType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE PCSide __Pyx_PyInt_As_PCSide(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PCSide neg_one = (PCSide) -1, const_zero = (PCSide) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(PCSide) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(PCSide, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (PCSide) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCSide) 0; + case 1: __PYX_VERIFY_RETURN_INT(PCSide, digit, digits[0]) + case 2: + if (8 * sizeof(PCSide) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) >= 2 * PyLong_SHIFT) { + return (PCSide) (((((PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(PCSide) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) >= 3 * PyLong_SHIFT) { + return (PCSide) (((((((PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(PCSide) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) >= 4 * PyLong_SHIFT) { + return (PCSide) (((((((((PCSide)digits[3]) << PyLong_SHIFT) | (PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (PCSide) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(PCSide) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCSide, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCSide) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCSide, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (PCSide) 0; + case -1: __PYX_VERIFY_RETURN_INT(PCSide, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(PCSide, digit, +digits[0]) + case -2: + if (8 * sizeof(PCSide) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 2 * PyLong_SHIFT) { + return (PCSide) (((PCSide)-1)*(((((PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(PCSide) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 2 * PyLong_SHIFT) { + return (PCSide) ((((((PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(PCSide) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 3 * PyLong_SHIFT) { + return (PCSide) (((PCSide)-1)*(((((((PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(PCSide) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 3 * PyLong_SHIFT) { + return (PCSide) ((((((((PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(PCSide) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 4 * PyLong_SHIFT) { + return (PCSide) (((PCSide)-1)*(((((((((PCSide)digits[3]) << PyLong_SHIFT) | (PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(PCSide) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(PCSide, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(PCSide) - 1 > 4 * PyLong_SHIFT) { + return (PCSide) ((((((((((PCSide)digits[3]) << PyLong_SHIFT) | (PCSide)digits[2]) << PyLong_SHIFT) | (PCSide)digits[1]) << PyLong_SHIFT) | (PCSide)digits[0]))); + } + } + break; + } +#endif + if (sizeof(PCSide) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(PCSide, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(PCSide) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(PCSide, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + PCSide val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (PCSide) -1; + } + } else { + PCSide val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (PCSide) -1; + val = __Pyx_PyInt_As_PCSide(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to PCSide"); + return (PCSide) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to PCSide"); + return (PCSide) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE KSPNormType __Pyx_PyInt_As_KSPNormType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const KSPNormType neg_one = (KSPNormType) -1, const_zero = (KSPNormType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(KSPNormType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(KSPNormType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (KSPNormType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (KSPNormType) 0; + case 1: __PYX_VERIFY_RETURN_INT(KSPNormType, digit, digits[0]) + case 2: + if (8 * sizeof(KSPNormType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) >= 2 * PyLong_SHIFT) { + return (KSPNormType) (((((KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(KSPNormType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) >= 3 * PyLong_SHIFT) { + return (KSPNormType) (((((((KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(KSPNormType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) >= 4 * PyLong_SHIFT) { + return (KSPNormType) (((((((((KSPNormType)digits[3]) << PyLong_SHIFT) | (KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (KSPNormType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(KSPNormType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPNormType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPNormType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPNormType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (KSPNormType) 0; + case -1: __PYX_VERIFY_RETURN_INT(KSPNormType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(KSPNormType, digit, +digits[0]) + case -2: + if (8 * sizeof(KSPNormType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 2 * PyLong_SHIFT) { + return (KSPNormType) (((KSPNormType)-1)*(((((KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(KSPNormType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 2 * PyLong_SHIFT) { + return (KSPNormType) ((((((KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(KSPNormType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 3 * PyLong_SHIFT) { + return (KSPNormType) (((KSPNormType)-1)*(((((((KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(KSPNormType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 3 * PyLong_SHIFT) { + return (KSPNormType) ((((((((KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(KSPNormType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 4 * PyLong_SHIFT) { + return (KSPNormType) (((KSPNormType)-1)*(((((((((KSPNormType)digits[3]) << PyLong_SHIFT) | (KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(KSPNormType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(KSPNormType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(KSPNormType) - 1 > 4 * PyLong_SHIFT) { + return (KSPNormType) ((((((((((KSPNormType)digits[3]) << PyLong_SHIFT) | (KSPNormType)digits[2]) << PyLong_SHIFT) | (KSPNormType)digits[1]) << PyLong_SHIFT) | (KSPNormType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(KSPNormType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPNormType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(KSPNormType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(KSPNormType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + KSPNormType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (KSPNormType) -1; + } + } else { + KSPNormType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (KSPNormType) -1; + val = __Pyx_PyInt_As_KSPNormType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to KSPNormType"); + return (KSPNormType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to KSPNormType"); + return (KSPNormType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE SNESNormSchedule __Pyx_PyInt_As_SNESNormSchedule(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const SNESNormSchedule neg_one = (SNESNormSchedule) -1, const_zero = (SNESNormSchedule) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(SNESNormSchedule) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (SNESNormSchedule) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (SNESNormSchedule) 0; + case 1: __PYX_VERIFY_RETURN_INT(SNESNormSchedule, digit, digits[0]) + case 2: + if (8 * sizeof(SNESNormSchedule) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) >= 2 * PyLong_SHIFT) { + return (SNESNormSchedule) (((((SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(SNESNormSchedule) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) >= 3 * PyLong_SHIFT) { + return (SNESNormSchedule) (((((((SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(SNESNormSchedule) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) >= 4 * PyLong_SHIFT) { + return (SNESNormSchedule) (((((((((SNESNormSchedule)digits[3]) << PyLong_SHIFT) | (SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (SNESNormSchedule) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(SNESNormSchedule) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESNormSchedule, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESNormSchedule) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESNormSchedule, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (SNESNormSchedule) 0; + case -1: __PYX_VERIFY_RETURN_INT(SNESNormSchedule, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(SNESNormSchedule, digit, +digits[0]) + case -2: + if (8 * sizeof(SNESNormSchedule) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 2 * PyLong_SHIFT) { + return (SNESNormSchedule) (((SNESNormSchedule)-1)*(((((SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(SNESNormSchedule) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 2 * PyLong_SHIFT) { + return (SNESNormSchedule) ((((((SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(SNESNormSchedule) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 3 * PyLong_SHIFT) { + return (SNESNormSchedule) (((SNESNormSchedule)-1)*(((((((SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(SNESNormSchedule) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 3 * PyLong_SHIFT) { + return (SNESNormSchedule) ((((((((SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(SNESNormSchedule) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 4 * PyLong_SHIFT) { + return (SNESNormSchedule) (((SNESNormSchedule)-1)*(((((((((SNESNormSchedule)digits[3]) << PyLong_SHIFT) | (SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(SNESNormSchedule) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(SNESNormSchedule, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(SNESNormSchedule) - 1 > 4 * PyLong_SHIFT) { + return (SNESNormSchedule) ((((((((((SNESNormSchedule)digits[3]) << PyLong_SHIFT) | (SNESNormSchedule)digits[2]) << PyLong_SHIFT) | (SNESNormSchedule)digits[1]) << PyLong_SHIFT) | (SNESNormSchedule)digits[0]))); + } + } + break; + } +#endif + if (sizeof(SNESNormSchedule) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESNormSchedule, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(SNESNormSchedule) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(SNESNormSchedule, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + SNESNormSchedule val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (SNESNormSchedule) -1; + } + } else { + SNESNormSchedule val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (SNESNormSchedule) -1; + val = __Pyx_PyInt_As_SNESNormSchedule(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to SNESNormSchedule"); + return (SNESNormSchedule) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to SNESNormSchedule"); + return (SNESNormSchedule) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE TSProblemType __Pyx_PyInt_As_TSProblemType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSProblemType neg_one = (TSProblemType) -1, const_zero = (TSProblemType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(TSProblemType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(TSProblemType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (TSProblemType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSProblemType) 0; + case 1: __PYX_VERIFY_RETURN_INT(TSProblemType, digit, digits[0]) + case 2: + if (8 * sizeof(TSProblemType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) >= 2 * PyLong_SHIFT) { + return (TSProblemType) (((((TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(TSProblemType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) >= 3 * PyLong_SHIFT) { + return (TSProblemType) (((((((TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(TSProblemType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) >= 4 * PyLong_SHIFT) { + return (TSProblemType) (((((((((TSProblemType)digits[3]) << PyLong_SHIFT) | (TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TSProblemType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(TSProblemType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSProblemType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSProblemType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSProblemType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSProblemType) 0; + case -1: __PYX_VERIFY_RETURN_INT(TSProblemType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(TSProblemType, digit, +digits[0]) + case -2: + if (8 * sizeof(TSProblemType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 2 * PyLong_SHIFT) { + return (TSProblemType) (((TSProblemType)-1)*(((((TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(TSProblemType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 2 * PyLong_SHIFT) { + return (TSProblemType) ((((((TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(TSProblemType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 3 * PyLong_SHIFT) { + return (TSProblemType) (((TSProblemType)-1)*(((((((TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(TSProblemType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 3 * PyLong_SHIFT) { + return (TSProblemType) ((((((((TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(TSProblemType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 4 * PyLong_SHIFT) { + return (TSProblemType) (((TSProblemType)-1)*(((((((((TSProblemType)digits[3]) << PyLong_SHIFT) | (TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(TSProblemType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSProblemType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSProblemType) - 1 > 4 * PyLong_SHIFT) { + return (TSProblemType) ((((((((((TSProblemType)digits[3]) << PyLong_SHIFT) | (TSProblemType)digits[2]) << PyLong_SHIFT) | (TSProblemType)digits[1]) << PyLong_SHIFT) | (TSProblemType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(TSProblemType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSProblemType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSProblemType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSProblemType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + TSProblemType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (TSProblemType) -1; + } + } else { + TSProblemType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TSProblemType) -1; + val = __Pyx_PyInt_As_TSProblemType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to TSProblemType"); + return (TSProblemType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to TSProblemType"); + return (TSProblemType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE TSEquationType __Pyx_PyInt_As_TSEquationType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSEquationType neg_one = (TSEquationType) -1, const_zero = (TSEquationType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(TSEquationType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(TSEquationType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (TSEquationType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSEquationType) 0; + case 1: __PYX_VERIFY_RETURN_INT(TSEquationType, digit, digits[0]) + case 2: + if (8 * sizeof(TSEquationType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) >= 2 * PyLong_SHIFT) { + return (TSEquationType) (((((TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(TSEquationType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) >= 3 * PyLong_SHIFT) { + return (TSEquationType) (((((((TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(TSEquationType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) >= 4 * PyLong_SHIFT) { + return (TSEquationType) (((((((((TSEquationType)digits[3]) << PyLong_SHIFT) | (TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TSEquationType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(TSEquationType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSEquationType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSEquationType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSEquationType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSEquationType) 0; + case -1: __PYX_VERIFY_RETURN_INT(TSEquationType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(TSEquationType, digit, +digits[0]) + case -2: + if (8 * sizeof(TSEquationType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 2 * PyLong_SHIFT) { + return (TSEquationType) (((TSEquationType)-1)*(((((TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(TSEquationType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 2 * PyLong_SHIFT) { + return (TSEquationType) ((((((TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(TSEquationType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 3 * PyLong_SHIFT) { + return (TSEquationType) (((TSEquationType)-1)*(((((((TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(TSEquationType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 3 * PyLong_SHIFT) { + return (TSEquationType) ((((((((TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(TSEquationType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 4 * PyLong_SHIFT) { + return (TSEquationType) (((TSEquationType)-1)*(((((((((TSEquationType)digits[3]) << PyLong_SHIFT) | (TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(TSEquationType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSEquationType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSEquationType) - 1 > 4 * PyLong_SHIFT) { + return (TSEquationType) ((((((((((TSEquationType)digits[3]) << PyLong_SHIFT) | (TSEquationType)digits[2]) << PyLong_SHIFT) | (TSEquationType)digits[1]) << PyLong_SHIFT) | (TSEquationType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(TSEquationType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSEquationType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSEquationType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSEquationType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + TSEquationType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (TSEquationType) -1; + } + } else { + TSEquationType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TSEquationType) -1; + val = __Pyx_PyInt_As_TSEquationType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to TSEquationType"); + return (TSEquationType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to TSEquationType"); + return (TSEquationType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE TSExactFinalTimeOption __Pyx_PyInt_As_TSExactFinalTimeOption(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSExactFinalTimeOption neg_one = (TSExactFinalTimeOption) -1, const_zero = (TSExactFinalTimeOption) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(TSExactFinalTimeOption) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (TSExactFinalTimeOption) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSExactFinalTimeOption) 0; + case 1: __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, digit, digits[0]) + case 2: + if (8 * sizeof(TSExactFinalTimeOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) >= 2 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((((TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(TSExactFinalTimeOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) >= 3 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((((((TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(TSExactFinalTimeOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) >= 4 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((((((((TSExactFinalTimeOption)digits[3]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TSExactFinalTimeOption) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(TSExactFinalTimeOption) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSExactFinalTimeOption, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSExactFinalTimeOption) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSExactFinalTimeOption, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSExactFinalTimeOption) 0; + case -1: __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, digit, +digits[0]) + case -2: + if (8 * sizeof(TSExactFinalTimeOption) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 2 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((TSExactFinalTimeOption)-1)*(((((TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(TSExactFinalTimeOption) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 2 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) ((((((TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(TSExactFinalTimeOption) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 3 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((TSExactFinalTimeOption)-1)*(((((((TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(TSExactFinalTimeOption) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 3 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) ((((((((TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(TSExactFinalTimeOption) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 4 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) (((TSExactFinalTimeOption)-1)*(((((((((TSExactFinalTimeOption)digits[3]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(TSExactFinalTimeOption) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSExactFinalTimeOption, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSExactFinalTimeOption) - 1 > 4 * PyLong_SHIFT) { + return (TSExactFinalTimeOption) ((((((((((TSExactFinalTimeOption)digits[3]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[2]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[1]) << PyLong_SHIFT) | (TSExactFinalTimeOption)digits[0]))); + } + } + break; + } +#endif + if (sizeof(TSExactFinalTimeOption) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSExactFinalTimeOption, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSExactFinalTimeOption) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSExactFinalTimeOption, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + TSExactFinalTimeOption val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (TSExactFinalTimeOption) -1; + } + } else { + TSExactFinalTimeOption val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TSExactFinalTimeOption) -1; + val = __Pyx_PyInt_As_TSExactFinalTimeOption(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to TSExactFinalTimeOption"); + return (TSExactFinalTimeOption) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to TSExactFinalTimeOption"); + return (TSExactFinalTimeOption) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE TSConvergedReason __Pyx_PyInt_As_TSConvergedReason(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const TSConvergedReason neg_one = (TSConvergedReason) -1, const_zero = (TSConvergedReason) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(TSConvergedReason) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (TSConvergedReason) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSConvergedReason) 0; + case 1: __PYX_VERIFY_RETURN_INT(TSConvergedReason, digit, digits[0]) + case 2: + if (8 * sizeof(TSConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) >= 2 * PyLong_SHIFT) { + return (TSConvergedReason) (((((TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(TSConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) >= 3 * PyLong_SHIFT) { + return (TSConvergedReason) (((((((TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(TSConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) >= 4 * PyLong_SHIFT) { + return (TSConvergedReason) (((((((((TSConvergedReason)digits[3]) << PyLong_SHIFT) | (TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (TSConvergedReason) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(TSConvergedReason) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSConvergedReason, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSConvergedReason) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSConvergedReason, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (TSConvergedReason) 0; + case -1: __PYX_VERIFY_RETURN_INT(TSConvergedReason, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(TSConvergedReason, digit, +digits[0]) + case -2: + if (8 * sizeof(TSConvergedReason) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (TSConvergedReason) (((TSConvergedReason)-1)*(((((TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(TSConvergedReason) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 2 * PyLong_SHIFT) { + return (TSConvergedReason) ((((((TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(TSConvergedReason) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (TSConvergedReason) (((TSConvergedReason)-1)*(((((((TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(TSConvergedReason) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 3 * PyLong_SHIFT) { + return (TSConvergedReason) ((((((((TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(TSConvergedReason) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (TSConvergedReason) (((TSConvergedReason)-1)*(((((((((TSConvergedReason)digits[3]) << PyLong_SHIFT) | (TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(TSConvergedReason) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(TSConvergedReason, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(TSConvergedReason) - 1 > 4 * PyLong_SHIFT) { + return (TSConvergedReason) ((((((((((TSConvergedReason)digits[3]) << PyLong_SHIFT) | (TSConvergedReason)digits[2]) << PyLong_SHIFT) | (TSConvergedReason)digits[1]) << PyLong_SHIFT) | (TSConvergedReason)digits[0]))); + } + } + break; + } +#endif + if (sizeof(TSConvergedReason) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(TSConvergedReason, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(TSConvergedReason) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(TSConvergedReason, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + TSConvergedReason val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (TSConvergedReason) -1; + } + } else { + TSConvergedReason val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (TSConvergedReason) -1; + val = __Pyx_PyInt_As_TSConvergedReason(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to TSConvergedReason"); + return (TSConvergedReason) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to TSConvergedReason"); + return (TSConvergedReason) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_PetscBool(PetscBool value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const PetscBool neg_one = (PetscBool) -1, const_zero = (PetscBool) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(PetscBool) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(PetscBool) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscBool) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(PetscBool) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(PetscBool) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(PetscBool), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE DMPolytopeType __Pyx_PyInt_As_DMPolytopeType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMPolytopeType neg_one = (DMPolytopeType) -1, const_zero = (DMPolytopeType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMPolytopeType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMPolytopeType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMPolytopeType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMPolytopeType, digit, digits[0]) + case 2: + if (8 * sizeof(DMPolytopeType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) >= 2 * PyLong_SHIFT) { + return (DMPolytopeType) (((((DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMPolytopeType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) >= 3 * PyLong_SHIFT) { + return (DMPolytopeType) (((((((DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMPolytopeType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) >= 4 * PyLong_SHIFT) { + return (DMPolytopeType) (((((((((DMPolytopeType)digits[3]) << PyLong_SHIFT) | (DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMPolytopeType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMPolytopeType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPolytopeType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPolytopeType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPolytopeType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMPolytopeType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMPolytopeType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMPolytopeType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMPolytopeType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 2 * PyLong_SHIFT) { + return (DMPolytopeType) (((DMPolytopeType)-1)*(((((DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMPolytopeType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 2 * PyLong_SHIFT) { + return (DMPolytopeType) ((((((DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMPolytopeType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 3 * PyLong_SHIFT) { + return (DMPolytopeType) (((DMPolytopeType)-1)*(((((((DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMPolytopeType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 3 * PyLong_SHIFT) { + return (DMPolytopeType) ((((((((DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMPolytopeType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 4 * PyLong_SHIFT) { + return (DMPolytopeType) (((DMPolytopeType)-1)*(((((((((DMPolytopeType)digits[3]) << PyLong_SHIFT) | (DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMPolytopeType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPolytopeType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPolytopeType) - 1 > 4 * PyLong_SHIFT) { + return (DMPolytopeType) ((((((((((DMPolytopeType)digits[3]) << PyLong_SHIFT) | (DMPolytopeType)digits[2]) << PyLong_SHIFT) | (DMPolytopeType)digits[1]) << PyLong_SHIFT) | (DMPolytopeType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMPolytopeType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPolytopeType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPolytopeType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPolytopeType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMPolytopeType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMPolytopeType) -1; + } + } else { + DMPolytopeType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMPolytopeType) -1; + val = __Pyx_PyInt_As_DMPolytopeType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMPolytopeType"); + return (DMPolytopeType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMPolytopeType"); + return (DMPolytopeType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMPlexReorderDefaultFlag __Pyx_PyInt_As_DMPlexReorderDefaultFlag(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMPlexReorderDefaultFlag neg_one = (DMPlexReorderDefaultFlag) -1, const_zero = (DMPlexReorderDefaultFlag) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMPlexReorderDefaultFlag) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMPlexReorderDefaultFlag) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMPlexReorderDefaultFlag) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, digit, digits[0]) + case 2: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) >= 2 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((((DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) >= 3 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((((((DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) >= 4 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((((((((DMPlexReorderDefaultFlag)digits[3]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMPlexReorderDefaultFlag) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPlexReorderDefaultFlag, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPlexReorderDefaultFlag, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMPlexReorderDefaultFlag) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, digit, +digits[0]) + case -2: + if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 2 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((DMPlexReorderDefaultFlag)-1)*(((((DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 2 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) ((((((DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 3 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((DMPlexReorderDefaultFlag)-1)*(((((((DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 3 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) ((((((((DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 4 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) (((DMPlexReorderDefaultFlag)-1)*(((((((((DMPlexReorderDefaultFlag)digits[3]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMPlexReorderDefaultFlag) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMPlexReorderDefaultFlag, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMPlexReorderDefaultFlag) - 1 > 4 * PyLong_SHIFT) { + return (DMPlexReorderDefaultFlag) ((((((((((DMPlexReorderDefaultFlag)digits[3]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[2]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[1]) << PyLong_SHIFT) | (DMPlexReorderDefaultFlag)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPlexReorderDefaultFlag, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMPlexReorderDefaultFlag) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMPlexReorderDefaultFlag, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMPlexReorderDefaultFlag val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMPlexReorderDefaultFlag) -1; + } + } else { + DMPlexReorderDefaultFlag val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMPlexReorderDefaultFlag) -1; + val = __Pyx_PyInt_As_DMPlexReorderDefaultFlag(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMPlexReorderDefaultFlag"); + return (DMPlexReorderDefaultFlag) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMPlexReorderDefaultFlag"); + return (DMPlexReorderDefaultFlag) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMSwarmType __Pyx_PyInt_As_DMSwarmType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmType neg_one = (DMSwarmType) -1, const_zero = (DMSwarmType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMSwarmType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMSwarmType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMSwarmType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMSwarmType, digit, digits[0]) + case 2: + if (8 * sizeof(DMSwarmType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) >= 2 * PyLong_SHIFT) { + return (DMSwarmType) (((((DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMSwarmType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) >= 3 * PyLong_SHIFT) { + return (DMSwarmType) (((((((DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMSwarmType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) >= 4 * PyLong_SHIFT) { + return (DMSwarmType) (((((((((DMSwarmType)digits[3]) << PyLong_SHIFT) | (DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMSwarmType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMSwarmType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMSwarmType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMSwarmType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMSwarmType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMSwarmType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 2 * PyLong_SHIFT) { + return (DMSwarmType) (((DMSwarmType)-1)*(((((DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMSwarmType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 2 * PyLong_SHIFT) { + return (DMSwarmType) ((((((DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMSwarmType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 3 * PyLong_SHIFT) { + return (DMSwarmType) (((DMSwarmType)-1)*(((((((DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMSwarmType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 3 * PyLong_SHIFT) { + return (DMSwarmType) ((((((((DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMSwarmType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 4 * PyLong_SHIFT) { + return (DMSwarmType) (((DMSwarmType)-1)*(((((((((DMSwarmType)digits[3]) << PyLong_SHIFT) | (DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMSwarmType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmType) - 1 > 4 * PyLong_SHIFT) { + return (DMSwarmType) ((((((((((DMSwarmType)digits[3]) << PyLong_SHIFT) | (DMSwarmType)digits[2]) << PyLong_SHIFT) | (DMSwarmType)digits[1]) << PyLong_SHIFT) | (DMSwarmType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMSwarmType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMSwarmType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMSwarmType) -1; + } + } else { + DMSwarmType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMSwarmType) -1; + val = __Pyx_PyInt_As_DMSwarmType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMSwarmType"); + return (DMSwarmType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMSwarmType"); + return (DMSwarmType) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE DMSwarmPICLayoutType __Pyx_PyInt_As_DMSwarmPICLayoutType(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const DMSwarmPICLayoutType neg_one = (DMSwarmPICLayoutType) -1, const_zero = (DMSwarmPICLayoutType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(DMSwarmPICLayoutType) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (DMSwarmPICLayoutType) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMSwarmPICLayoutType) 0; + case 1: __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, digit, digits[0]) + case 2: + if (8 * sizeof(DMSwarmPICLayoutType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) >= 2 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((((DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(DMSwarmPICLayoutType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) >= 3 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((((((DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(DMSwarmPICLayoutType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) >= 4 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((((((((DMSwarmPICLayoutType)digits[3]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (DMSwarmPICLayoutType) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(DMSwarmPICLayoutType) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmPICLayoutType, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmPICLayoutType) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmPICLayoutType, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (DMSwarmPICLayoutType) 0; + case -1: __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, digit, +digits[0]) + case -2: + if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 2 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((DMSwarmPICLayoutType)-1)*(((((DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(DMSwarmPICLayoutType) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 2 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) ((((((DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 3 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((DMSwarmPICLayoutType)-1)*(((((((DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(DMSwarmPICLayoutType) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 3 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) ((((((((DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 4 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) (((DMSwarmPICLayoutType)-1)*(((((((((DMSwarmPICLayoutType)digits[3]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(DMSwarmPICLayoutType) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(DMSwarmPICLayoutType, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(DMSwarmPICLayoutType) - 1 > 4 * PyLong_SHIFT) { + return (DMSwarmPICLayoutType) ((((((((((DMSwarmPICLayoutType)digits[3]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[2]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[1]) << PyLong_SHIFT) | (DMSwarmPICLayoutType)digits[0]))); + } + } + break; + } +#endif + if (sizeof(DMSwarmPICLayoutType) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmPICLayoutType, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(DMSwarmPICLayoutType) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(DMSwarmPICLayoutType, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + DMSwarmPICLayoutType val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (DMSwarmPICLayoutType) -1; + } + } else { + DMSwarmPICLayoutType val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (DMSwarmPICLayoutType) -1; + val = __Pyx_PyInt_As_DMSwarmPICLayoutType(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to DMSwarmPICLayoutType"); + return (DMSwarmPICLayoutType) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to DMSwarmPICLayoutType"); + return (DMSwarmPICLayoutType) -1; +} + +/* CIntToPy */ + static CYTHON_INLINE PyObject* __Pyx_PyInt_From_MatProductType(MatProductType value) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const MatProductType neg_one = (MatProductType) -1, const_zero = (MatProductType) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; + if (is_unsigned) { + if (sizeof(MatProductType) < sizeof(long)) { + return PyInt_FromLong((long) value); + } else if (sizeof(MatProductType) <= sizeof(unsigned long)) { + return PyLong_FromUnsignedLong((unsigned long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatProductType) <= sizeof(unsigned PY_LONG_LONG)) { + return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); +#endif + } + } else { + if (sizeof(MatProductType) <= sizeof(long)) { + return PyInt_FromLong((long) value); +#ifdef HAVE_LONG_LONG + } else if (sizeof(MatProductType) <= sizeof(PY_LONG_LONG)) { + return PyLong_FromLongLong((PY_LONG_LONG) value); +#endif + } + } + { + int one = 1; int little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&value; + return _PyLong_FromByteArray(bytes, sizeof(MatProductType), + little, !is_unsigned); + } +} + +/* CIntFromPy */ + static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const long neg_one = (long) -1, const_zero = (long) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(long) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (long) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { + return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { + return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { + return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (long) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(long) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (long) 0; + case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) + case -2: + if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(long) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(long) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(long) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { + return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); + } + } + break; + } +#endif + if (sizeof(long) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + long val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (long) -1; + } + } else { + long val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (long) -1; + val = __Pyx_PyInt_As_long(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to long"); + return (long) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to long"); + return (long) -1; +} + +/* CIntFromPy */ + static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) { +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wconversion" +#endif + const char neg_one = (char) -1, const_zero = (char) 0; +#ifdef __Pyx_HAS_GCC_DIAGNOSTIC +#pragma GCC diagnostic pop +#endif + const int is_unsigned = neg_one > const_zero; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x))) { + if (sizeof(char) < sizeof(long)) { + __PYX_VERIFY_RETURN_INT(char, long, PyInt_AS_LONG(x)) + } else { + long val = PyInt_AS_LONG(x); + if (is_unsigned && unlikely(val < 0)) { + goto raise_neg_overflow; + } + return (char) val; + } + } else +#endif + if (likely(PyLong_Check(x))) { + if (is_unsigned) { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case 1: __PYX_VERIFY_RETURN_INT(char, digit, digits[0]) + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 2 * PyLong_SHIFT) { + return (char) (((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 3 * PyLong_SHIFT) { + return (char) (((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) >= 4 * PyLong_SHIFT) { + return (char) (((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0])); + } + } + break; + } +#endif +#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030C00A7 + if (unlikely(Py_SIZE(x) < 0)) { + goto raise_neg_overflow; + } +#else + { + int result = PyObject_RichCompareBool(x, Py_False, Py_LT); + if (unlikely(result < 0)) + return (char) -1; + if (unlikely(result == 1)) + goto raise_neg_overflow; + } +#endif + if (sizeof(char) <= sizeof(unsigned long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned long, PyLong_AsUnsignedLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(unsigned PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) +#endif + } + } else { +#if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)x)->ob_digit; + switch (Py_SIZE(x)) { + case 0: return (char) 0; + case -1: __PYX_VERIFY_RETURN_INT(char, sdigit, (sdigit) (-(sdigit)digits[0])) + case 1: __PYX_VERIFY_RETURN_INT(char, digit, +digits[0]) + case -2: + if (8 * sizeof(char) - 1 > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 2: + if (8 * sizeof(char) > 1 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + return (char) ((((((char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -3: + if (8 * sizeof(char) - 1 > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 3: + if (8 * sizeof(char) > 2 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + return (char) ((((((((char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case -4: + if (8 * sizeof(char) - 1 > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) (((char)-1)*(((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + case 4: + if (8 * sizeof(char) > 3 * PyLong_SHIFT) { + if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { + __PYX_VERIFY_RETURN_INT(char, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) + } else if (8 * sizeof(char) - 1 > 4 * PyLong_SHIFT) { + return (char) ((((((((((char)digits[3]) << PyLong_SHIFT) | (char)digits[2]) << PyLong_SHIFT) | (char)digits[1]) << PyLong_SHIFT) | (char)digits[0]))); + } + } + break; + } +#endif + if (sizeof(char) <= sizeof(long)) { + __PYX_VERIFY_RETURN_INT_EXC(char, long, PyLong_AsLong(x)) +#ifdef HAVE_LONG_LONG + } else if (sizeof(char) <= sizeof(PY_LONG_LONG)) { + __PYX_VERIFY_RETURN_INT_EXC(char, PY_LONG_LONG, PyLong_AsLongLong(x)) +#endif + } + } + { +#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) + PyErr_SetString(PyExc_RuntimeError, + "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); +#else + char val; + PyObject *v = __Pyx_PyNumber_IntOrLong(x); + #if PY_MAJOR_VERSION < 3 + if (likely(v) && !PyLong_Check(v)) { + PyObject *tmp = v; + v = PyNumber_Long(tmp); + Py_DECREF(tmp); + } + #endif + if (likely(v)) { + int one = 1; int is_little = (int)*(unsigned char *)&one; + unsigned char *bytes = (unsigned char *)&val; + int ret = _PyLong_AsByteArray((PyLongObject *)v, + bytes, sizeof(val), + is_little, !is_unsigned); + Py_DECREF(v); + if (likely(!ret)) + return val; + } +#endif + return (char) -1; + } + } else { + char val; + PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); + if (!tmp) return (char) -1; + val = __Pyx_PyInt_As_char(tmp); + Py_DECREF(tmp); + return val; + } +raise_overflow: + PyErr_SetString(PyExc_OverflowError, + "value too large to convert to char"); + return (char) -1; +raise_neg_overflow: + PyErr_SetString(PyExc_OverflowError, + "can't convert negative value to char"); + return (char) -1; +} + +/* CheckBinaryVersion */ + static int __Pyx_check_binary_version(void) { + char ctversion[5]; + int same=1, i, found_dot; + const char* rt_from_call = Py_GetVersion(); + PyOS_snprintf(ctversion, 5, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION); + found_dot = 0; + for (i = 0; i < 4; i++) { + if (!ctversion[i]) { + same = (rt_from_call[i] < '0' || rt_from_call[i] > '9'); + break; + } + if (rt_from_call[i] != ctversion[i]) { + same = 0; + break; + } + } + if (!same) { + char rtversion[5] = {'\0'}; + char message[200]; + for (i=0; i<4; ++i) { + if (rt_from_call[i] == '.') { + if (found_dot) break; + found_dot = 1; + } else if (rt_from_call[i] < '0' || rt_from_call[i] > '9') { + break; + } + rtversion[i] = rt_from_call[i]; + } + PyOS_snprintf(message, sizeof(message), + "compiletime version %s of module '%.100s' " + "does not match runtime version %s", + ctversion, __Pyx_MODULE_NAME, rtversion); + return PyErr_WarnEx(NULL, message, 1); + } + return 0; +} + +/* FunctionExport */ + static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig) { + PyObject *d = 0; + PyObject *cobj = 0; + union { + void (*fp)(void); + void *p; + } tmp; + d = PyObject_GetAttrString(__pyx_m, (char *)"__pyx_capi__"); + if (!d) { + PyErr_Clear(); + d = PyDict_New(); + if (!d) + goto bad; + Py_INCREF(d); + if (PyModule_AddObject(__pyx_m, (char *)"__pyx_capi__", d) < 0) + goto bad; + } + tmp.fp = f; +#if PY_VERSION_HEX >= 0x02070000 + cobj = PyCapsule_New(tmp.p, sig, 0); +#else + cobj = PyCObject_FromVoidPtrAndDesc(tmp.p, (void *)sig, 0); +#endif + if (!cobj) + goto bad; + if (PyDict_SetItemString(d, name, cobj) < 0) + goto bad; + Py_DECREF(cobj); + Py_DECREF(d); + return 0; +bad: + Py_XDECREF(cobj); + Py_XDECREF(d); + return -1; +} + +/* InitStrings */ + static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { + while (t->p) { + #if PY_MAJOR_VERSION < 3 + if (t->is_unicode) { + *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); + } else if (t->intern) { + *t->p = PyString_InternFromString(t->s); + } else { + *t->p = PyString_FromStringAndSize(t->s, t->n - 1); + } + #else + if (t->is_unicode | t->is_str) { + if (t->intern) { + *t->p = PyUnicode_InternFromString(t->s); + } else if (t->encoding) { + *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); + } else { + *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); + } + } else { + *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); + } + #endif + if (!*t->p) + return -1; + if (PyObject_Hash(*t->p) == -1) + return -1; + ++t; + } + return 0; +} + +static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { + return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); +} +static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { + Py_ssize_t ignore; + return __Pyx_PyObject_AsStringAndSize(o, &ignore); +} +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT +#if !CYTHON_PEP393_ENABLED +static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + char* defenc_c; + PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); + if (!defenc) return NULL; + defenc_c = PyBytes_AS_STRING(defenc); +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + { + char* end = defenc_c + PyBytes_GET_SIZE(defenc); + char* c; + for (c = defenc_c; c < end; c++) { + if ((unsigned char) (*c) >= 128) { + PyUnicode_AsASCIIString(o); + return NULL; + } + } + } +#endif + *length = PyBytes_GET_SIZE(defenc); + return defenc_c; +} +#else +static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { + if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + if (likely(PyUnicode_IS_ASCII(o))) { + *length = PyUnicode_GET_LENGTH(o); + return PyUnicode_AsUTF8(o); + } else { + PyUnicode_AsASCIIString(o); + return NULL; + } +#else + return PyUnicode_AsUTF8AndSize(o, length); +#endif +} +#endif +#endif +static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { +#if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT + if ( +#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII + __Pyx_sys_getdefaultencoding_not_ascii && +#endif + PyUnicode_Check(o)) { + return __Pyx_PyUnicode_AsStringAndSize(o, length); + } else +#endif +#if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) + if (PyByteArray_Check(o)) { + *length = PyByteArray_GET_SIZE(o); + return PyByteArray_AS_STRING(o); + } else +#endif + { + char* result; + int r = PyBytes_AsStringAndSize(o, &result, length); + if (unlikely(r < 0)) { + return NULL; + } else { + return result; + } + } +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { + int is_true = x == Py_True; + if (is_true | (x == Py_False) | (x == Py_None)) return is_true; + else return PyObject_IsTrue(x); +} +static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { + int retval; + if (unlikely(!x)) return -1; + retval = __Pyx_PyObject_IsTrue(x); + Py_DECREF(x); + return retval; +} +static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { +#if PY_MAJOR_VERSION >= 3 + if (PyLong_Check(result)) { + if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, + "__int__ returned non-int (type %.200s). " + "The ability to return an instance of a strict subclass of int " + "is deprecated, and may be removed in a future version of Python.", + Py_TYPE(result)->tp_name)) { + Py_DECREF(result); + return NULL; + } + return result; + } +#endif + PyErr_Format(PyExc_TypeError, + "__%.4s__ returned non-%.4s (type %.200s)", + type_name, type_name, Py_TYPE(result)->tp_name); + Py_DECREF(result); + return NULL; +} +static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { +#if CYTHON_USE_TYPE_SLOTS + PyNumberMethods *m; +#endif + const char *name = NULL; + PyObject *res = NULL; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_Check(x) || PyLong_Check(x))) +#else + if (likely(PyLong_Check(x))) +#endif + return __Pyx_NewRef(x); +#if CYTHON_USE_TYPE_SLOTS + m = Py_TYPE(x)->tp_as_number; + #if PY_MAJOR_VERSION < 3 + if (m && m->nb_int) { + name = "int"; + res = m->nb_int(x); + } + else if (m && m->nb_long) { + name = "long"; + res = m->nb_long(x); + } + #else + if (likely(m && m->nb_int)) { + name = "int"; + res = m->nb_int(x); + } + #endif +#else + if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { + res = PyNumber_Int(x); + } +#endif + if (likely(res)) { +#if PY_MAJOR_VERSION < 3 + if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { +#else + if (unlikely(!PyLong_CheckExact(res))) { +#endif + return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); + } + } + else if (!PyErr_Occurred()) { + PyErr_SetString(PyExc_TypeError, + "an integer is required"); + } + return res; +} +static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { + Py_ssize_t ival; + PyObject *x; +#if PY_MAJOR_VERSION < 3 + if (likely(PyInt_CheckExact(b))) { + if (sizeof(Py_ssize_t) >= sizeof(long)) + return PyInt_AS_LONG(b); + else + return PyInt_AsSsize_t(b); + } +#endif + if (likely(PyLong_CheckExact(b))) { + #if CYTHON_USE_PYLONG_INTERNALS + const digit* digits = ((PyLongObject*)b)->ob_digit; + const Py_ssize_t size = Py_SIZE(b); + if (likely(__Pyx_sst_abs(size) <= 1)) { + ival = likely(size) ? digits[0] : 0; + if (size == -1) ival = -ival; + return ival; + } else { + switch (size) { + case 2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -2: + if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -3: + if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case 4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + case -4: + if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { + return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); + } + break; + } + } + #endif + return PyLong_AsSsize_t(b); + } + x = PyNumber_Index(b); + if (!x) return -1; + ival = PyInt_AsSsize_t(x); + Py_DECREF(x); + return ival; +} +static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { + if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { + return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); +#if PY_MAJOR_VERSION < 3 + } else if (likely(PyInt_CheckExact(o))) { + return PyInt_AS_LONG(o); +#endif + } else { + Py_ssize_t ival; + PyObject *x; + x = PyNumber_Index(o); + if (!x) return -1; + ival = PyInt_AsLong(x); + Py_DECREF(x); + return ival; + } +} +static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { + return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); +} +static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { + return PyInt_FromSize_t(ival); +} + + +#endif /* Py_PYTHON_H */ diff --git a/petsc-PETSc_cython0.29.36.h b/petsc-PETSc_cython0.29.36.h new file mode 100644 index 0000000..cd725ae --- /dev/null +++ b/petsc-PETSc_cython0.29.36.h @@ -0,0 +1,505 @@ +/* Generated by Cython 0.29.36 */ + +#ifndef __PYX_HAVE__petsc4py__PETSc +#define __PYX_HAVE__petsc4py__PETSc + +#include "Python.h" +struct PyPetscCommObject; +struct PyPetscObjectObject; +struct PyPetscViewerObject; +struct PyPetscRandomObject; +struct PyPetscDeviceObject; +struct PyPetscDeviceContextObject; +struct PyPetscISObject; +struct PyPetscLGMapObject; +struct PyPetscSFObject; +struct PyPetscVecObject; +struct PyPetscSpaceObject; +struct PyPetscDualSpaceObject; +struct PyPetscFEObject; +struct PyPetscQuadObject; +struct PyPetscScatterObject; +struct PyPetscSectionObject; +struct PyPetscMatObject; +struct PyPetscMatPartitioningObject; +struct PyPetscNullSpaceObject; +struct PyPetscPCObject; +struct PyPetscKSPObject; +struct PyPetscSNESObject; +struct PyPetscTSObject; +struct PyPetscTAOObject; +struct PyPetscAOObject; +struct PyPetscDMObject; +struct PyPetscDMPlexTransformObject; +struct PyPetscDSObject; +struct PyPetscPartitionerObject; +struct PyPetscDMLabelObject; + +/* "petsc4py/PETSc.pxd":112 + * # -------------------------------------------------------------------- + * + * ctypedef public api class Comm [ # <<<<<<<<<<<<<< + * type PyPetscComm_Type, + * object PyPetscCommObject, + */ +struct PyPetscCommObject { + PyObject_HEAD + MPI_Comm comm; + int isdup; + PyObject *base; +}; +typedef struct PyPetscCommObject PyPetscCommObject; + +/* "petsc4py/PETSc.pxd":120 + * cdef object base + * + * ctypedef public api class Object [ # <<<<<<<<<<<<<< + * type PyPetscObject_Type, + * object PyPetscObjectObject, + */ +struct PyPetscObjectObject { + PyObject_HEAD + struct __pyx_vtabstruct_8petsc4py_5PETSc_Object *__pyx_vtab; + PyObject *__weakref__; + PyObject *__pyx___dummy__; + PetscObject oval; + PetscObject *obj; +}; +typedef struct PyPetscObjectObject PyPetscObjectObject; + +/* "petsc4py/PETSc.pxd":132 + * cdef object get_dict(self) + * + * ctypedef public api class Viewer(Object) [ # <<<<<<<<<<<<<< + * type PyPetscViewer_Type, + * object PyPetscViewerObject, + */ +struct PyPetscViewerObject { + struct PyPetscObjectObject __pyx_base; + PetscViewer vwr; +}; +typedef struct PyPetscViewerObject PyPetscViewerObject; + +/* "petsc4py/PETSc.pxd":138 + * cdef PetscViewer vwr + * + * ctypedef public api class Random(Object) [ # <<<<<<<<<<<<<< + * type PyPetscRandom_Type, + * object PyPetscRandomObject, + */ +struct PyPetscRandomObject { + struct PyPetscObjectObject __pyx_base; + PetscRandom rnd; +}; +typedef struct PyPetscRandomObject PyPetscRandomObject; + +/* "petsc4py/PETSc.pxd":144 + * cdef PetscRandom rnd + * + * ctypedef public api class Device [ # <<<<<<<<<<<<<< + * type PyPetscDevice_Type, + * object PyPetscDeviceObject, + */ +struct PyPetscDeviceObject { + PyObject_HEAD + PetscDevice device; + PyObject *__weakref__; +}; +typedef struct PyPetscDeviceObject PyPetscDeviceObject; + +/* "petsc4py/PETSc.pxd":151 + * cdef object __weakref__ + * + * ctypedef public api class DeviceContext(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDeviceContext_Type, + * object PyPetscDeviceContextObject, + */ +struct PyPetscDeviceContextObject { + struct PyPetscObjectObject __pyx_base; + PetscDeviceContext dctx; +}; +typedef struct PyPetscDeviceContextObject PyPetscDeviceContextObject; + +/* "petsc4py/PETSc.pxd":157 + * cdef PetscDeviceContext dctx + * + * ctypedef public api class IS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscIS_Type, + * object PyPetscISObject, + */ +struct PyPetscISObject { + struct PyPetscObjectObject __pyx_base; + IS iset; +}; +typedef struct PyPetscISObject PyPetscISObject; + +/* "petsc4py/PETSc.pxd":163 + * cdef PetscIS iset + * + * ctypedef public api class LGMap(Object) [ # <<<<<<<<<<<<<< + * type PyPetscLGMap_Type, + * object PyPetscLGMapObject, + */ +struct PyPetscLGMapObject { + struct PyPetscObjectObject __pyx_base; + ISLocalToGlobalMapping lgm; +}; +typedef struct PyPetscLGMapObject PyPetscLGMapObject; + +/* "petsc4py/PETSc.pxd":169 + * cdef PetscLGMap lgm + * + * ctypedef public api class SF(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSF_Type, + * object PyPetscSFObject, + */ +struct PyPetscSFObject { + struct PyPetscObjectObject __pyx_base; + PetscSF sf; +}; +typedef struct PyPetscSFObject PyPetscSFObject; + +/* "petsc4py/PETSc.pxd":175 + * cdef PetscSF sf + * + * ctypedef public api class Vec(Object) [ # <<<<<<<<<<<<<< + * type PyPetscVec_Type, + * object PyPetscVecObject, + */ +struct PyPetscVecObject { + struct PyPetscObjectObject __pyx_base; + Vec vec; +}; +typedef struct PyPetscVecObject PyPetscVecObject; + +/* "petsc4py/PETSc.pxd":181 + * cdef PetscVec vec + * + * ctypedef public api class Space(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSpace_Type, + * object PyPetscSpaceObject, + */ +struct PyPetscSpaceObject { + struct PyPetscObjectObject __pyx_base; + PetscSpace space; +}; +typedef struct PyPetscSpaceObject PyPetscSpaceObject; + +/* "petsc4py/PETSc.pxd":187 + * cdef PetscSpace space + * + * ctypedef public api class DualSpace(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDualSpace_Type, + * object PyPetscDualSpaceObject, + */ +struct PyPetscDualSpaceObject { + struct PyPetscObjectObject __pyx_base; + PetscDualSpace dualspace; +}; +typedef struct PyPetscDualSpaceObject PyPetscDualSpaceObject; + +/* "petsc4py/PETSc.pxd":193 + * cdef PetscDualSpace dualspace + * + * ctypedef public api class FE(Object) [ # <<<<<<<<<<<<<< + * type PyPetscFE_Type, + * object PyPetscFEObject, + */ +struct PyPetscFEObject { + struct PyPetscObjectObject __pyx_base; + PetscFE fe; +}; +typedef struct PyPetscFEObject PyPetscFEObject; + +/* "petsc4py/PETSc.pxd":199 + * cdef PetscFE fe + * + * ctypedef public api class Quad(Object) [ # <<<<<<<<<<<<<< + * type PyPetscQuad_Type, + * object PyPetscQuadObject, + */ +struct PyPetscQuadObject { + struct PyPetscObjectObject __pyx_base; + PetscQuadrature quad; +}; +typedef struct PyPetscQuadObject PyPetscQuadObject; + +/* "petsc4py/PETSc.pxd":205 + * cdef PetscQuadrature quad + * + * ctypedef public api class Scatter(Object) [ # <<<<<<<<<<<<<< + * type PyPetscScatter_Type, + * object PyPetscScatterObject, + */ +struct PyPetscScatterObject { + struct PyPetscObjectObject __pyx_base; + VecScatter sct; +}; +typedef struct PyPetscScatterObject PyPetscScatterObject; + +/* "petsc4py/PETSc.pxd":211 + * cdef PetscScatter sct + * + * ctypedef public api class Section(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSection_Type, + * object PyPetscSectionObject, + */ +struct PyPetscSectionObject { + struct PyPetscObjectObject __pyx_base; + PetscSection sec; +}; +typedef struct PyPetscSectionObject PyPetscSectionObject; + +/* "petsc4py/PETSc.pxd":217 + * cdef PetscSection sec + * + * ctypedef public api class Mat(Object) [ # <<<<<<<<<<<<<< + * type PyPetscMat_Type, + * object PyPetscMatObject, + */ +struct PyPetscMatObject { + struct PyPetscObjectObject __pyx_base; + Mat mat; +}; +typedef struct PyPetscMatObject PyPetscMatObject; + +/* "petsc4py/PETSc.pxd":223 + * cdef PetscMat mat + * + * ctypedef public api class MatPartitioning(Object) [ # <<<<<<<<<<<<<< + * type PyPetscMatPartitioning_Type, + * object PyPetscMatPartitioningObject, + */ +struct PyPetscMatPartitioningObject { + struct PyPetscObjectObject __pyx_base; + MatPartitioning part; +}; +typedef struct PyPetscMatPartitioningObject PyPetscMatPartitioningObject; + +/* "petsc4py/PETSc.pxd":229 + * cdef PetscMatPartitioning part + * + * ctypedef public api class NullSpace(Object) [ # <<<<<<<<<<<<<< + * type PyPetscNullSpace_Type, + * object PyPetscNullSpaceObject, + */ +struct PyPetscNullSpaceObject { + struct PyPetscObjectObject __pyx_base; + MatNullSpace nsp; +}; +typedef struct PyPetscNullSpaceObject PyPetscNullSpaceObject; + +/* "petsc4py/PETSc.pxd":235 + * cdef PetscNullSpace nsp + * + * ctypedef public api class PC(Object) [ # <<<<<<<<<<<<<< + * type PyPetscPC_Type, + * object PyPetscPCObject, + */ +struct PyPetscPCObject { + struct PyPetscObjectObject __pyx_base; + PC pc; +}; +typedef struct PyPetscPCObject PyPetscPCObject; + +/* "petsc4py/PETSc.pxd":241 + * cdef PetscPC pc + * + * ctypedef public api class KSP(Object) [ # <<<<<<<<<<<<<< + * type PyPetscKSP_Type, + * object PyPetscKSPObject, + */ +struct PyPetscKSPObject { + struct PyPetscObjectObject __pyx_base; + KSP ksp; +}; +typedef struct PyPetscKSPObject PyPetscKSPObject; + +/* "petsc4py/PETSc.pxd":247 + * cdef PetscKSP ksp + * + * ctypedef public api class SNES(Object) [ # <<<<<<<<<<<<<< + * type PyPetscSNES_Type, + * object PyPetscSNESObject, + */ +struct PyPetscSNESObject { + struct PyPetscObjectObject __pyx_base; + SNES snes; +}; +typedef struct PyPetscSNESObject PyPetscSNESObject; + +/* "petsc4py/PETSc.pxd":253 + * cdef PetscSNES snes + * + * ctypedef public api class TS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscTS_Type, + * object PyPetscTSObject, + */ +struct PyPetscTSObject { + struct PyPetscObjectObject __pyx_base; + TS ts; +}; +typedef struct PyPetscTSObject PyPetscTSObject; + +/* "petsc4py/PETSc.pxd":259 + * cdef PetscTS ts + * + * ctypedef public api class TAO(Object) [ # <<<<<<<<<<<<<< + * type PyPetscTAO_Type, + * object PyPetscTAOObject, + */ +struct PyPetscTAOObject { + struct PyPetscObjectObject __pyx_base; + Tao tao; +}; +typedef struct PyPetscTAOObject PyPetscTAOObject; + +/* "petsc4py/PETSc.pxd":265 + * cdef PetscTAO tao + * + * ctypedef public api class AO(Object) [ # <<<<<<<<<<<<<< + * type PyPetscAO_Type, + * object PyPetscAOObject, + */ +struct PyPetscAOObject { + struct PyPetscObjectObject __pyx_base; + AO ao; +}; +typedef struct PyPetscAOObject PyPetscAOObject; + +/* "petsc4py/PETSc.pxd":271 + * cdef PetscAO ao + * + * ctypedef public api class DM(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDM_Type, + * object PyPetscDMObject, + */ +struct PyPetscDMObject { + struct PyPetscObjectObject __pyx_base; + DM dm; +}; +typedef struct PyPetscDMObject PyPetscDMObject; + +/* "petsc4py/PETSc.pxd":277 + * cdef PetscDM dm + * + * ctypedef public api class DMPlexTransform(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDMPlexTransform_Type, + * object PyPetscDMPlexTransformObject, + */ +struct PyPetscDMPlexTransformObject { + struct PyPetscObjectObject __pyx_base; + DMPlexTransform tr; +}; +typedef struct PyPetscDMPlexTransformObject PyPetscDMPlexTransformObject; + +/* "petsc4py/PETSc.pxd":283 + * cdef PetscDMPlexTransform tr + * + * ctypedef public api class DS(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDS_Type, + * object PyPetscDSObject, + */ +struct PyPetscDSObject { + struct PyPetscObjectObject __pyx_base; + PetscDS ds; +}; +typedef struct PyPetscDSObject PyPetscDSObject; + +/* "petsc4py/PETSc.pxd":289 + * cdef PetscDS ds + * + * ctypedef public api class Partitioner(Object) [ # <<<<<<<<<<<<<< + * type PyPetscPartitioner_Type, + * object PyPetscPartitionerObject, + */ +struct PyPetscPartitionerObject { + struct PyPetscObjectObject __pyx_base; + PetscPartitioner part; +}; +typedef struct PyPetscPartitionerObject PyPetscPartitionerObject; + +/* "petsc4py/PETSc.pxd":295 + * cdef PetscPartitioner part + * + * ctypedef public api class DMLabel(Object) [ # <<<<<<<<<<<<<< + * type PyPetscDMLabel_Type, + * object PyPetscDMLabelObject, + */ +struct PyPetscDMLabelObject { + struct PyPetscObjectObject __pyx_base; + DMLabel dmlabel; +}; +typedef struct PyPetscDMLabelObject PyPetscDMLabelObject; + +#ifndef __PYX_HAVE_API__petsc4py__PETSc + +#ifndef __PYX_EXTERN_C + #ifdef __cplusplus + #define __PYX_EXTERN_C extern "C" + #else + #define __PYX_EXTERN_C extern + #endif +#endif + +#ifndef DL_IMPORT + #define DL_IMPORT(_T) _T +#endif + +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscComm_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscObject_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscViewer_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscRandom_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDevice_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDeviceContext_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscIS_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscLGMap_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSF_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscVec_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSpace_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDualSpace_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscFE_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscQuad_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscScatter_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSection_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscMat_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscMatPartitioning_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscNullSpace_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscPC_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscKSP_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscSNES_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscTS_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscTAO_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscAO_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDM_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDMPlexTransform_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDS_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscPartitioner_Type; +__PYX_EXTERN_C DL_IMPORT(PyTypeObject) PyPetscDMLabel_Type; + +__PYX_EXTERN_C PetscErrorCode MatPythonGetContext(Mat, void **); +__PYX_EXTERN_C PetscErrorCode MatPythonSetContext(Mat, void *); +__PYX_EXTERN_C PetscErrorCode PCPythonGetContext(PC, void **); +__PYX_EXTERN_C PetscErrorCode PCPythonSetContext(PC, void *); +__PYX_EXTERN_C PetscErrorCode KSPPythonGetContext(KSP, void **); +__PYX_EXTERN_C PetscErrorCode KSPPythonSetContext(KSP, void *); +__PYX_EXTERN_C PetscErrorCode SNESPythonGetContext(SNES, void **); +__PYX_EXTERN_C PetscErrorCode SNESPythonSetContext(SNES, void *); +__PYX_EXTERN_C PetscErrorCode TSPythonGetContext(TS, void **); +__PYX_EXTERN_C PetscErrorCode TSPythonSetContext(TS, void *); +__PYX_EXTERN_C PetscErrorCode TaoPythonGetContext(Tao, void **); +__PYX_EXTERN_C PetscErrorCode TaoPythonSetContext(Tao, void *); +__PYX_EXTERN_C PetscErrorCode PetscPythonRegisterAll(void); + +#endif /* !__PYX_HAVE_API__petsc4py__PETSc */ + +/* WARNING: the interface of the module init function changed in CPython 3.5. */ +/* It now returns a PyModuleDef instance instead of a PyModule instance. */ + +#if PY_MAJOR_VERSION < 3 +PyMODINIT_FUNC initPETSc(void); +#else +PyMODINIT_FUNC PyInit_PETSc(void); +#endif + +#endif /* !__PYX_HAVE__petsc4py__PETSc */ diff --git a/petsc.spec b/petsc.spec index 73ca57d..4497136 100644 --- a/petsc.spec +++ b/petsc.spec @@ -281,25 +281,32 @@ %global mpichversion %(rpm -qi mpich | awk -F': ' '/Version/ {print $2}') %global openmpiversion %(rpm -qi openmpi | awk -F': ' '/Version/ {print $2}') %global majorver 3 -%global releasever 3.18 +%global releasever 3.19 Name: petsc Summary: Portable Extensible Toolkit for Scientific Computation -Version: %{releasever}.5 +Version: %{releasever}.4 Release: %autorelease License: BSD URL: https://petsc.org/ Source0: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-with-docs-%{version}.tar.gz Source1: https://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc4py-%{version}.tar.gz +# These files have been generated by Cython-0.29.36 +# PETSC-3.19 is not compatible with Cython-3.0.0 yet +# See https://gitlab.com/petsc/petsc/-/issues/1431 +Source2: %{name}-PETSc_cython0.29.36.c +Source3: %{name}-PETSc_cython0.29.36.h +Source4: %{name}-PETSc_api_cython0.29.36.h + ## Remove rpath flags Patch0: %{name}-3.11-no-rpath.patch ## Rename library name for 64-bit integer package Patch1: %{name}-lib64.patch Patch2: %{name}-3.18.5-fix_make_compatibility.patch -Patch3: %{name}-3.18.0-fix_mumps_includes.patch -Patch4: %{name}-3.18.0-fix_metis64.patch +Patch3: %{name}-3.19.4-fix_mumps_includes.patch +Patch4: %{name}-3.19.4-fix_metis64.patch Patch5: %{name}-3.15.0-fix_sundials_version.patch Patch6: %{name}-3.14.1-fix_pkgconfig_file.patch Patch7: %{name}-3.17.0-avoid_fake_MKL_detection.patch @@ -451,7 +458,12 @@ BuildRequires: python3-wheel BuildRequires: hdf5-openmpi-devel BuildRequires: scalapack-openmpi-devel BuildRequires: ptscotch-openmpi-devel -BuildRequires: python3-numpy, python3-Cython +BuildRequires: python3-numpy +%if 0%{?rhel} || 0%{?fedora} < 39 +BuildRequires: python3-Cython +%else +BuildRequires: python3-pip +%endif Requires: petsc-openmpi%{?_isa} Requires: hdf5-openmpi%{?_isa} Requires: scalapack-openmpi%{?_isa} @@ -479,7 +491,12 @@ BuildRequires: python3-wheel BuildRequires: hdf5-mpich-devel BuildRequires: scalapack-mpich-devel BuildRequires: ptscotch-mpich-devel -BuildRequires: python3-numpy, python3-Cython +BuildRequires: python3-numpy +%if 0%{?rhel} || 0%{?fedora} < 39 +BuildRequires: python3-Cython +%else +BuildRequires: python3-pip +%endif Requires: petsc-mpich%{?_isa} Requires: hdf5-mpich%{?_isa} Requires: scalapack-openmpi%{?_isa} @@ -562,6 +579,16 @@ Portable Extensible Toolkit for Scientific Computation (developer files). cp -a petsc4py-%{version}/* %{name}-%{version}/ rm -rf %{name}-%{version}/*.egg-info rm -rf petsc4py-%{version} + +%if 0%{?fedora} > 37 +rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc.c +install -pm 644 %{SOURCE2} %{name}-%{version}/src/binding/petsc4py/src/PETSc.c +rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc.h +install -pm 644 %{SOURCE3} %{name}-%{version}/src/binding/petsc4py/src/PETSc.h +rm -f %{name}-%{version}/src/binding/petsc4py/src/PETSc_api.h +install -pm 644 %{SOURCE4} %{name}-%{version}/src/binding/petsc4py/src/PETSc_api.h +%endif + %if 0%{?fedora} for i in `find . -name 'setup.py' -o -name 'configure' -o -name '*.py'`; do %py3_shebang_fix $i @@ -570,11 +597,11 @@ done %endif pushd %{name}-%{version} -%patch -P 2 -p1 -b .backup +#patch -P 2 -p1 -b .backup %patch -P 7 -p1 -b .backup %if 0%{?python3_version_nodots} >= 312 -%patch -P 8 -p1 -b .backup +#patch -P 8 -p1 -b .backup %endif popd diff --git a/sources b/sources index 50b06b4..6776e51 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (petsc-with-docs-3.18.5.tar.gz) = bc201ada4f90ab9ddbcd52c7c16892bc1f5d75396904da4810fcf41cc65b98906c4e0252e39c3c6c17381daf967e7475d5d4a79ef48ffdee0f9d8c9ee00bbe52 -SHA512 (petsc4py-3.18.5.tar.gz) = 1043f6d3de5fc023c83ab5cc0d8bb877f612afb27cd11759d95af58f98dd8a4f4ab75ce454f69447d75cf4c7071e1fa7626b3995e3c00c15d5baa794ffc2edbf +SHA512 (petsc-with-docs-3.19.4.tar.gz) = 34011695e33594541132957afffc4f8c94ce3ff71e6322c76630a8afd39a2e91c8ac36c33bd1d749792a0167ee18a742d205b54269eceec2f5cbf01e5ae12809 +SHA512 (petsc4py-3.19.4.tar.gz) = f6ffd84fff1124636b362cdf304137b37f2227a1a188206d70c78ba2bb90032088f0275a5be68c6e6b603e38cb27965fc08bf3f2cf001d63f29675cc984f9d1c